From bce557cc2dc767628bed6aac87301a1be7c5431b Mon Sep 17 00:00:00 2001 From: rxliuli Date: Tue, 4 Nov 2025 05:03:50 +0800 Subject: init commit --- src/components/jet/Video.svelte | 66 +++ src/components/jet/action/ExternalUrlAction.svelte | 52 +++ src/components/jet/action/FlowAction.svelte | 41 ++ .../jet/action/ShelfBasedPageScrollAction.svelte | 51 +++ src/components/jet/badge/ContentRatingBadge.svelte | 61 +++ .../jet/item/AccessibilityFeaturesItem.svelte | 159 +++++++ .../jet/item/AccessibilityParagraphItem.svelte | 22 + .../jet/item/Annotation/AnnotationItem.svelte | 17 + .../Annotation/LegacyAnnotationRenderer.svelte | 146 +++++++ .../Annotation/ModernAnnotationItemRenderer.svelte | 114 +++++ src/components/jet/item/AppEventItem.svelte | 176 ++++++++ src/components/jet/item/ArcadeFooterItem.svelte | 83 ++++ src/components/jet/item/BannerItem.svelte | 37 ++ src/components/jet/item/BrickItem.svelte | 300 +++++++++++++ src/components/jet/item/ContentModal.svelte | 39 ++ src/components/jet/item/EditorialCardItem.svelte | 41 ++ src/components/jet/item/FooterLockupItem.svelte | 93 +++++ src/components/jet/item/HeroCarouselItem.svelte | 60 +++ src/components/jet/item/InAppPurchaseLockup.svelte | 74 ++++ src/components/jet/item/LargeBrickItem.svelte | 106 +++++ .../jet/item/LargeHeroBreakoutItem.svelte | 268 ++++++++++++ .../jet/item/LargeImageLockupItem.svelte | 130 ++++++ src/components/jet/item/LargeLockupItem.svelte | 121 ++++++ src/components/jet/item/LargeStoryCardItem.svelte | 38 ++ src/components/jet/item/LinkableTextItem.svelte | 88 ++++ .../jet/item/MediumImageLockupItem.svelte | 118 ++++++ src/components/jet/item/MediumLockupItem.svelte | 96 +++++ .../MediumStoryCard/EditorialStoryCardItem.svelte | 304 ++++++++++++++ src/components/jet/item/MediumStoryCardItem.svelte | 27 ++ .../jet/item/MixedMediaLockupItem.svelte | 39 ++ src/components/jet/item/ParagraphShelfItem.svelte | 21 + src/components/jet/item/PosterLockupItem.svelte | 121 ++++++ src/components/jet/item/PrivacyHeaderItem.svelte | 41 ++ src/components/jet/item/PrivacyTypeItem.svelte | 193 +++++++++ src/components/jet/item/ProductBadgeItem.svelte | 188 +++++++++ .../jet/item/ProductCapabilityItem.svelte | 84 ++++ .../item/ProductMedia/ProductMediaMacItem.svelte | 31 ++ .../item/ProductMedia/ProductMediaPadItem.svelte | 89 ++++ .../item/ProductMedia/ProductMediaPhoneItem.svelte | 142 +++++++ .../item/ProductMedia/ProductMediaTVItem.svelte | 34 ++ .../ProductMedia/ProductMediaVisionItem.svelte | 38 ++ .../item/ProductMedia/ProductMediaWatchItem.svelte | 50 +++ src/components/jet/item/ProductPageLinkItem.svelte | 68 +++ src/components/jet/item/ProductRatingsItem.svelte | 37 ++ .../ProductReview/EditorsChoiceReviewItem.svelte | 99 +++++ .../jet/item/ProductReview/UserReviewItem.svelte | 25 ++ src/components/jet/item/ReviewItem.svelte | 237 +++++++++++ src/components/jet/item/SearchLinkItem.svelte | 47 +++ .../item/SearchResult/AppSearchResultItem.svelte | 392 +++++++++++++++++ src/components/jet/item/SmallBreakoutItem.svelte | 187 +++++++++ src/components/jet/item/SmallLockupItem.svelte | 110 +++++ .../jet/item/SmallLockupWithOrdinalItem.svelte | 176 ++++++++ .../SmallStoryCardMediaBrandedSingleApp.svelte | 69 +++ .../jet/item/SmallStoryCardWithArtworkItem.svelte | 87 ++++ .../jet/item/SmallStoryCardWithMediaAppIcon.svelte | 156 +++++++ .../jet/item/SmallStoryCardWithMediaItem.svelte | 104 +++++ .../jet/item/SmallStoryCardWithMediaRiver.svelte | 118 ++++++ src/components/jet/item/TitledParagraphItem.svelte | 175 ++++++++ src/components/jet/item/TrailersLockupItem.svelte | 51 +++ .../jet/marker-shelf/ProductTopLockup.svelte | 463 +++++++++++++++++++++ .../shelf/AccessibilityDeveloperLinkShelf.svelte | 36 ++ .../jet/shelf/AccessibilityFeaturesShelf.svelte | 35 ++ .../jet/shelf/AccessibilityHeaderShelf.svelte | 182 ++++++++ src/components/jet/shelf/ActionShelf.svelte | 80 ++++ src/components/jet/shelf/AnnotationShelf.svelte | 49 +++ .../jet/shelf/AppEventDetailShelf.svelte | 290 +++++++++++++ src/components/jet/shelf/AppPromotionShelf.svelte | 47 +++ src/components/jet/shelf/AppShowcaseShelf.svelte | 29 ++ .../jet/shelf/AppTrailerLockupShelf.svelte | 48 +++ src/components/jet/shelf/ArcadeFooterShelf.svelte | 32 ++ src/components/jet/shelf/BannerShelf.svelte | 35 ++ src/components/jet/shelf/BrickShelf.svelte | 31 ++ src/components/jet/shelf/CategoryBrickShelf.svelte | 28 ++ src/components/jet/shelf/EditorialCardShelf.svelte | 32 ++ src/components/jet/shelf/EditorialLinkShelf.svelte | 122 ++++++ src/components/jet/shelf/FallbackShelf.svelte | 39 ++ src/components/jet/shelf/FramedArtworkShelf.svelte | 98 +++++ src/components/jet/shelf/FramedVideoShelf.svelte | 78 ++++ src/components/jet/shelf/HeroCarouselShelf.svelte | 38 ++ .../jet/shelf/HorizontalRuleShelf.svelte | 54 +++ src/components/jet/shelf/HorizontalShelf.svelte | 53 +++ .../jet/shelf/InAppPurchaseLockupShelf.svelte | 31 ++ src/components/jet/shelf/LargeBrickShelf.svelte | 26 ++ .../jet/shelf/LargeHeroBreakoutShelf.svelte | 31 ++ .../jet/shelf/LargeImageLockupShelf.svelte | 30 ++ src/components/jet/shelf/LargeLockupShelf.svelte | 28 ++ .../jet/shelf/LargeStoryCardShelf.svelte | 32 ++ src/components/jet/shelf/LinkableTextShelf.svelte | 43 ++ src/components/jet/shelf/MarkerShelf.svelte | 36 ++ .../jet/shelf/MediumImageLockupShelf.svelte | 28 ++ src/components/jet/shelf/MediumLockupShelf.svelte | 31 ++ .../jet/shelf/MediumStoryCardShelf.svelte | 31 ++ src/components/jet/shelf/PageHeaderShelf.svelte | 34 ++ src/components/jet/shelf/ParagraphShelf.svelte | 52 +++ src/components/jet/shelf/PosterLockupShelf.svelte | 31 ++ src/components/jet/shelf/PrivacyFooterShelf.svelte | 40 ++ src/components/jet/shelf/PrivacyHeaderShelf.svelte | 145 +++++++ src/components/jet/shelf/PrivacyTypeShelf.svelte | 29 ++ src/components/jet/shelf/ProductBadgeShelf.svelte | 59 +++ .../jet/shelf/ProductCapabilityShelf.svelte | 31 ++ .../jet/shelf/ProductDescriptionShelf.svelte | 95 +++++ src/components/jet/shelf/ProductMediaShelf.svelte | 269 ++++++++++++ .../jet/shelf/ProductPageLinkShelf.svelte | 59 +++ .../jet/shelf/ProductRatingsShelf.svelte | 29 ++ src/components/jet/shelf/ProductReviewShelf.svelte | 38 ++ src/components/jet/shelf/QuoteShelf.svelte | 80 ++++ .../jet/shelf/ReviewsContainerShelf.svelte | 84 ++++ src/components/jet/shelf/ReviewsShelf.svelte | 28 ++ src/components/jet/shelf/RibbonBarShelf.svelte | 135 ++++++ src/components/jet/shelf/SearchLinkShelf.svelte | 26 ++ src/components/jet/shelf/SearchResultShelf.svelte | 49 +++ src/components/jet/shelf/Shelf.svelte | 320 ++++++++++++++ src/components/jet/shelf/SmallBreakoutShelf.svelte | 32 ++ src/components/jet/shelf/SmallBrickShelf.svelte | 26 ++ src/components/jet/shelf/SmallLockupShelf.svelte | 54 +++ .../jet/shelf/SmallStoryCardShelf.svelte | 66 +++ .../jet/shelf/TitledParagraphShelf.svelte | 118 ++++++ src/components/jet/shelf/TodayCardShelf.svelte | 187 +++++++++ src/components/jet/shelf/UberShelf.svelte | 40 ++ src/components/jet/today-card/TodayCard.svelte | 401 ++++++++++++++++++ .../jet/today-card/TodayCardMedia.svelte | 49 +++ .../jet/today-card/TodayCardOverlay.svelte | 48 +++ .../jet/today-card/background-color-utils.ts | 54 +++ .../today-card/media/TodayCardMediaAppEvent.svelte | 78 ++++ .../today-card/media/TodayCardMediaAppIcon.svelte | 62 +++ .../media/TodayCardMediaBrandedSingleApp.svelte | 41 ++ .../jet/today-card/media/TodayCardMediaList.svelte | 86 ++++ .../today-card/media/TodayCardMediaRiver.svelte | 78 ++++ .../today-card/media/TodayCardMediaVideo.svelte | 72 ++++ .../media/TodayCardMediaWithArtwork.svelte | 100 +++++ .../overlay/TodayCardLockupListOverlay.svelte | 42 ++ .../jet/web-navigation/CategoryTabItem.svelte | 67 +++ .../web-navigation/PlatformSelectorDropdown.svelte | 88 ++++ .../jet/web-navigation/PlatformSelectorItem.svelte | 97 +++++ 134 files changed, 11902 insertions(+) create mode 100644 src/components/jet/Video.svelte create mode 100644 src/components/jet/action/ExternalUrlAction.svelte create mode 100644 src/components/jet/action/FlowAction.svelte create mode 100644 src/components/jet/action/ShelfBasedPageScrollAction.svelte create mode 100644 src/components/jet/badge/ContentRatingBadge.svelte create mode 100644 src/components/jet/item/AccessibilityFeaturesItem.svelte create mode 100644 src/components/jet/item/AccessibilityParagraphItem.svelte create mode 100644 src/components/jet/item/Annotation/AnnotationItem.svelte create mode 100644 src/components/jet/item/Annotation/LegacyAnnotationRenderer.svelte create mode 100644 src/components/jet/item/Annotation/ModernAnnotationItemRenderer.svelte create mode 100644 src/components/jet/item/AppEventItem.svelte create mode 100644 src/components/jet/item/ArcadeFooterItem.svelte create mode 100644 src/components/jet/item/BannerItem.svelte create mode 100644 src/components/jet/item/BrickItem.svelte create mode 100644 src/components/jet/item/ContentModal.svelte create mode 100644 src/components/jet/item/EditorialCardItem.svelte create mode 100644 src/components/jet/item/FooterLockupItem.svelte create mode 100644 src/components/jet/item/HeroCarouselItem.svelte create mode 100644 src/components/jet/item/InAppPurchaseLockup.svelte create mode 100644 src/components/jet/item/LargeBrickItem.svelte create mode 100644 src/components/jet/item/LargeHeroBreakoutItem.svelte create mode 100644 src/components/jet/item/LargeImageLockupItem.svelte create mode 100644 src/components/jet/item/LargeLockupItem.svelte create mode 100644 src/components/jet/item/LargeStoryCardItem.svelte create mode 100644 src/components/jet/item/LinkableTextItem.svelte create mode 100644 src/components/jet/item/MediumImageLockupItem.svelte create mode 100644 src/components/jet/item/MediumLockupItem.svelte create mode 100644 src/components/jet/item/MediumStoryCard/EditorialStoryCardItem.svelte create mode 100644 src/components/jet/item/MediumStoryCardItem.svelte create mode 100644 src/components/jet/item/MixedMediaLockupItem.svelte create mode 100644 src/components/jet/item/ParagraphShelfItem.svelte create mode 100644 src/components/jet/item/PosterLockupItem.svelte create mode 100644 src/components/jet/item/PrivacyHeaderItem.svelte create mode 100644 src/components/jet/item/PrivacyTypeItem.svelte create mode 100644 src/components/jet/item/ProductBadgeItem.svelte create mode 100644 src/components/jet/item/ProductCapabilityItem.svelte create mode 100644 src/components/jet/item/ProductMedia/ProductMediaMacItem.svelte create mode 100644 src/components/jet/item/ProductMedia/ProductMediaPadItem.svelte create mode 100644 src/components/jet/item/ProductMedia/ProductMediaPhoneItem.svelte create mode 100644 src/components/jet/item/ProductMedia/ProductMediaTVItem.svelte create mode 100644 src/components/jet/item/ProductMedia/ProductMediaVisionItem.svelte create mode 100644 src/components/jet/item/ProductMedia/ProductMediaWatchItem.svelte create mode 100644 src/components/jet/item/ProductPageLinkItem.svelte create mode 100644 src/components/jet/item/ProductRatingsItem.svelte create mode 100644 src/components/jet/item/ProductReview/EditorsChoiceReviewItem.svelte create mode 100644 src/components/jet/item/ProductReview/UserReviewItem.svelte create mode 100644 src/components/jet/item/ReviewItem.svelte create mode 100644 src/components/jet/item/SearchLinkItem.svelte create mode 100644 src/components/jet/item/SearchResult/AppSearchResultItem.svelte create mode 100644 src/components/jet/item/SmallBreakoutItem.svelte create mode 100644 src/components/jet/item/SmallLockupItem.svelte create mode 100644 src/components/jet/item/SmallLockupWithOrdinalItem.svelte create mode 100644 src/components/jet/item/SmallStoryCardMediaBrandedSingleApp.svelte create mode 100644 src/components/jet/item/SmallStoryCardWithArtworkItem.svelte create mode 100644 src/components/jet/item/SmallStoryCardWithMediaAppIcon.svelte create mode 100644 src/components/jet/item/SmallStoryCardWithMediaItem.svelte create mode 100644 src/components/jet/item/SmallStoryCardWithMediaRiver.svelte create mode 100644 src/components/jet/item/TitledParagraphItem.svelte create mode 100644 src/components/jet/item/TrailersLockupItem.svelte create mode 100644 src/components/jet/marker-shelf/ProductTopLockup.svelte create mode 100644 src/components/jet/shelf/AccessibilityDeveloperLinkShelf.svelte create mode 100644 src/components/jet/shelf/AccessibilityFeaturesShelf.svelte create mode 100644 src/components/jet/shelf/AccessibilityHeaderShelf.svelte create mode 100644 src/components/jet/shelf/ActionShelf.svelte create mode 100644 src/components/jet/shelf/AnnotationShelf.svelte create mode 100644 src/components/jet/shelf/AppEventDetailShelf.svelte create mode 100644 src/components/jet/shelf/AppPromotionShelf.svelte create mode 100644 src/components/jet/shelf/AppShowcaseShelf.svelte create mode 100644 src/components/jet/shelf/AppTrailerLockupShelf.svelte create mode 100644 src/components/jet/shelf/ArcadeFooterShelf.svelte create mode 100644 src/components/jet/shelf/BannerShelf.svelte create mode 100644 src/components/jet/shelf/BrickShelf.svelte create mode 100644 src/components/jet/shelf/CategoryBrickShelf.svelte create mode 100644 src/components/jet/shelf/EditorialCardShelf.svelte create mode 100644 src/components/jet/shelf/EditorialLinkShelf.svelte create mode 100644 src/components/jet/shelf/FallbackShelf.svelte create mode 100644 src/components/jet/shelf/FramedArtworkShelf.svelte create mode 100644 src/components/jet/shelf/FramedVideoShelf.svelte create mode 100644 src/components/jet/shelf/HeroCarouselShelf.svelte create mode 100644 src/components/jet/shelf/HorizontalRuleShelf.svelte create mode 100644 src/components/jet/shelf/HorizontalShelf.svelte create mode 100644 src/components/jet/shelf/InAppPurchaseLockupShelf.svelte create mode 100644 src/components/jet/shelf/LargeBrickShelf.svelte create mode 100644 src/components/jet/shelf/LargeHeroBreakoutShelf.svelte create mode 100644 src/components/jet/shelf/LargeImageLockupShelf.svelte create mode 100644 src/components/jet/shelf/LargeLockupShelf.svelte create mode 100644 src/components/jet/shelf/LargeStoryCardShelf.svelte create mode 100644 src/components/jet/shelf/LinkableTextShelf.svelte create mode 100644 src/components/jet/shelf/MarkerShelf.svelte create mode 100644 src/components/jet/shelf/MediumImageLockupShelf.svelte create mode 100644 src/components/jet/shelf/MediumLockupShelf.svelte create mode 100644 src/components/jet/shelf/MediumStoryCardShelf.svelte create mode 100644 src/components/jet/shelf/PageHeaderShelf.svelte create mode 100644 src/components/jet/shelf/ParagraphShelf.svelte create mode 100644 src/components/jet/shelf/PosterLockupShelf.svelte create mode 100644 src/components/jet/shelf/PrivacyFooterShelf.svelte create mode 100644 src/components/jet/shelf/PrivacyHeaderShelf.svelte create mode 100644 src/components/jet/shelf/PrivacyTypeShelf.svelte create mode 100644 src/components/jet/shelf/ProductBadgeShelf.svelte create mode 100644 src/components/jet/shelf/ProductCapabilityShelf.svelte create mode 100644 src/components/jet/shelf/ProductDescriptionShelf.svelte create mode 100644 src/components/jet/shelf/ProductMediaShelf.svelte create mode 100644 src/components/jet/shelf/ProductPageLinkShelf.svelte create mode 100644 src/components/jet/shelf/ProductRatingsShelf.svelte create mode 100644 src/components/jet/shelf/ProductReviewShelf.svelte create mode 100644 src/components/jet/shelf/QuoteShelf.svelte create mode 100644 src/components/jet/shelf/ReviewsContainerShelf.svelte create mode 100644 src/components/jet/shelf/ReviewsShelf.svelte create mode 100644 src/components/jet/shelf/RibbonBarShelf.svelte create mode 100644 src/components/jet/shelf/SearchLinkShelf.svelte create mode 100644 src/components/jet/shelf/SearchResultShelf.svelte create mode 100644 src/components/jet/shelf/Shelf.svelte create mode 100644 src/components/jet/shelf/SmallBreakoutShelf.svelte create mode 100644 src/components/jet/shelf/SmallBrickShelf.svelte create mode 100644 src/components/jet/shelf/SmallLockupShelf.svelte create mode 100644 src/components/jet/shelf/SmallStoryCardShelf.svelte create mode 100644 src/components/jet/shelf/TitledParagraphShelf.svelte create mode 100644 src/components/jet/shelf/TodayCardShelf.svelte create mode 100644 src/components/jet/shelf/UberShelf.svelte create mode 100644 src/components/jet/today-card/TodayCard.svelte create mode 100644 src/components/jet/today-card/TodayCardMedia.svelte create mode 100644 src/components/jet/today-card/TodayCardOverlay.svelte create mode 100644 src/components/jet/today-card/background-color-utils.ts create mode 100644 src/components/jet/today-card/media/TodayCardMediaAppEvent.svelte create mode 100644 src/components/jet/today-card/media/TodayCardMediaAppIcon.svelte create mode 100644 src/components/jet/today-card/media/TodayCardMediaBrandedSingleApp.svelte create mode 100644 src/components/jet/today-card/media/TodayCardMediaList.svelte create mode 100644 src/components/jet/today-card/media/TodayCardMediaRiver.svelte create mode 100644 src/components/jet/today-card/media/TodayCardMediaVideo.svelte create mode 100644 src/components/jet/today-card/media/TodayCardMediaWithArtwork.svelte create mode 100644 src/components/jet/today-card/overlay/TodayCardLockupListOverlay.svelte create mode 100644 src/components/jet/web-navigation/CategoryTabItem.svelte create mode 100644 src/components/jet/web-navigation/PlatformSelectorDropdown.svelte create mode 100644 src/components/jet/web-navigation/PlatformSelectorItem.svelte (limited to 'src/components/jet') diff --git a/src/components/jet/Video.svelte b/src/components/jet/Video.svelte new file mode 100644 index 0000000..8d2e4f3 --- /dev/null +++ b/src/components/jet/Video.svelte @@ -0,0 +1,66 @@ + + + + + +
+ + + diff --git a/src/components/jet/action/ExternalUrlAction.svelte b/src/components/jet/action/ExternalUrlAction.svelte new file mode 100644 index 0000000..e8a2ad6 --- /dev/null +++ b/src/components/jet/action/ExternalUrlAction.svelte @@ -0,0 +1,52 @@ + + + + + {#if includeArrowIcon} + + + diff --git a/src/components/jet/action/FlowAction.svelte b/src/components/jet/action/FlowAction.svelte new file mode 100644 index 0000000..3e55e82 --- /dev/null +++ b/src/components/jet/action/FlowAction.svelte @@ -0,0 +1,41 @@ + + + + + diff --git a/src/components/jet/action/ShelfBasedPageScrollAction.svelte b/src/components/jet/action/ShelfBasedPageScrollAction.svelte new file mode 100644 index 0000000..9c1c13e --- /dev/null +++ b/src/components/jet/action/ShelfBasedPageScrollAction.svelte @@ -0,0 +1,51 @@ + + + + +{#if destination.shelfId} + + + +{:else} + +{/if} diff --git a/src/components/jet/badge/ContentRatingBadge.svelte b/src/components/jet/badge/ContentRatingBadge.svelte new file mode 100644 index 0000000..ff3a2c3 --- /dev/null +++ b/src/components/jet/badge/ContentRatingBadge.svelte @@ -0,0 +1,61 @@ + + + + +{#if artwork && isSystemImageArtwork(artwork)} +
+ +
+{:else} + + {badge.content.contentRating} + +{/if} + + diff --git a/src/components/jet/item/AccessibilityFeaturesItem.svelte b/src/components/jet/item/AccessibilityFeaturesItem.svelte new file mode 100644 index 0000000..bcbeb6c --- /dev/null +++ b/src/components/jet/item/AccessibilityFeaturesItem.svelte @@ -0,0 +1,159 @@ + + +
+ {#if !isDetailView} + {#if item.artwork && isSystemImageArtwork(item.artwork)} + + {/if} +

{item.title}

+ {/if} + +
    1 && !isDetailView}> + {#each item.features as feature} +
  • + {#if isSystemImageArtwork(feature.artwork)} + + {/if} +
    +

    {feature.title}

    + {#if feature.description} + + {feature.description} + + {/if} +
    +
  • + {/each} +
+
+ + diff --git a/src/components/jet/item/AccessibilityParagraphItem.svelte b/src/components/jet/item/AccessibilityParagraphItem.svelte new file mode 100644 index 0000000..836b52f --- /dev/null +++ b/src/components/jet/item/AccessibilityParagraphItem.svelte @@ -0,0 +1,22 @@ + + +
+

+ +

+
+ + diff --git a/src/components/jet/item/Annotation/AnnotationItem.svelte b/src/components/jet/item/Annotation/AnnotationItem.svelte new file mode 100644 index 0000000..38bb269 --- /dev/null +++ b/src/components/jet/item/Annotation/AnnotationItem.svelte @@ -0,0 +1,17 @@ + + +{#if shouldRenderModernAnnotation} + +{:else} + +{/if} diff --git a/src/components/jet/item/Annotation/LegacyAnnotationRenderer.svelte b/src/components/jet/item/Annotation/LegacyAnnotationRenderer.svelte new file mode 100644 index 0000000..fc6586f --- /dev/null +++ b/src/components/jet/item/Annotation/LegacyAnnotationRenderer.svelte @@ -0,0 +1,146 @@ + + +{#if shouldRenderAsDefinitionList(items)} +
+ {#each items as annotationItem} +
{annotationItem.heading}
+
{annotationItem.text}
+ {/each} +
+{:else if shouldRenderAsOrderedList(items)} +
    + {#each items as annotationItem} + {#if annotationItem.textPairs} + {#each annotationItem.textPairs as [text, subtext]} +
  1. + {text} + {subtext} +
  2. + {/each} + {:else} +
  3. {annotationItem.text}
  4. + {/if} + {/each} +
+{:else if shouldRenderAsUnorderedList(items)} +
    + {#each items as annotationItem} +
  • + + {annotationItem.text} + +
  • + {/each} +
+{:else if shouldRenderAsDefinitionListWithHeading(items)} + {@const [heading, ...remainingItems] = items} +
+

{heading.text}

+ +
+ {#each remainingItems as annotationItem} +
{annotationItem.heading}
+
{annotationItem.text}
+ {/each} +
+
+{:else} +
+
    + {#each items as annotationItem} +
  • {annotationItem.text}
  • + {/each} +
+ {#if isSome(linkAction) && isFlowAction(linkAction)} + + {linkAction.title} + + {/if} +
+{/if} + + diff --git a/src/components/jet/item/Annotation/ModernAnnotationItemRenderer.svelte b/src/components/jet/item/Annotation/ModernAnnotationItemRenderer.svelte new file mode 100644 index 0000000..20611d3 --- /dev/null +++ b/src/components/jet/item/Annotation/ModernAnnotationItemRenderer.svelte @@ -0,0 +1,114 @@ + + +
    + {#each items as annotationItem} +
  • + {#if annotationItem.$kind === 'textEncapsulation'} +
    + {annotationItem.text} +
    + {:else if annotationItem.$kind === 'linkableText'} +
    + {@html sanitizeHtml( + formatStyledText( + annotationItem.linkableText.styledText.rawText, + ), + )} +
    + {:else if annotationItem.$kind === 'artwork'} + {#if isSystemImageArtwork(annotationItem.artwork)} +
    + +
    + {/if} + {:else if annotationItem.$kind === 'textPair'} +
    + {annotationItem.leadingText} + + {annotationItem.trailingText} + +
    + {:else if annotationItem.$kind === 'button'} +
    + + {annotationItem.action.title} + +
    + {:else if annotationItem.$kind === 'spacer'} +
    + {/if} +
  • + {/each} +
+ + diff --git a/src/components/jet/item/AppEventItem.svelte b/src/components/jet/item/AppEventItem.svelte new file mode 100644 index 0000000..c1e5e5a --- /dev/null +++ b/src/components/jet/item/AppEventItem.svelte @@ -0,0 +1,176 @@ + + +
+ + + + +
+ + +
+ {#if video} +
+
+ {:else if artwork} +
+ +
+ {/if} + +
+ +
+ +
+

{item.kind}

+ +

{item.title}

+ + +

{item.detail}

+
+
+
+
+
+ + {#if item.lockup && shouldShowLockup} +
+ +
+ {/if} +
+
+ + diff --git a/src/components/jet/item/ArcadeFooterItem.svelte b/src/components/jet/item/ArcadeFooterItem.svelte new file mode 100644 index 0000000..94fe61d --- /dev/null +++ b/src/components/jet/item/ArcadeFooterItem.svelte @@ -0,0 +1,83 @@ + + + +
+ {#if icons.length} + + {/if} + + +
+
+ + diff --git a/src/components/jet/item/BannerItem.svelte b/src/components/jet/item/BannerItem.svelte new file mode 100644 index 0000000..819f621 --- /dev/null +++ b/src/components/jet/item/BannerItem.svelte @@ -0,0 +1,37 @@ + + + + + diff --git a/src/components/jet/item/BrickItem.svelte b/src/components/jet/item/BrickItem.svelte new file mode 100644 index 0000000..a9e6319 --- /dev/null +++ b/src/components/jet/item/BrickItem.svelte @@ -0,0 +1,300 @@ + + + +
+ + {#if artwork} + + {:else if backgroundGradientCssVars} +
+ {/if} + + {#if item.title} + + {/if} + +
+ + + {#if !artwork && collectionIcons} +
    + {#each collectionIcons?.slice(0, 8) as collectionIcon} +
  • + +
  • + {/each} +
+ {/if} +
+ + + {#if item.shortEditorialDescription} +

+ {item.shortEditorialDescription} +

+ {/if} +
+ + + diff --git a/src/components/jet/item/ContentModal.svelte b/src/components/jet/item/ContentModal.svelte new file mode 100644 index 0000000..486937d --- /dev/null +++ b/src/components/jet/item/ContentModal.svelte @@ -0,0 +1,39 @@ + + + + + diff --git a/src/components/jet/item/EditorialCardItem.svelte b/src/components/jet/item/EditorialCardItem.svelte new file mode 100644 index 0000000..2998b05 --- /dev/null +++ b/src/components/jet/item/EditorialCardItem.svelte @@ -0,0 +1,41 @@ + + + + + {#if item.appEventFormattedDates} + + {:else} + {item.caption} + {/if} + + + + {#if item.lockup} + + {/if} + + diff --git a/src/components/jet/item/FooterLockupItem.svelte b/src/components/jet/item/FooterLockupItem.svelte new file mode 100644 index 0000000..848885d --- /dev/null +++ b/src/components/jet/item/FooterLockupItem.svelte @@ -0,0 +1,93 @@ + + + + + diff --git a/src/components/jet/item/HeroCarouselItem.svelte b/src/components/jet/item/HeroCarouselItem.svelte new file mode 100644 index 0000000..295aa8a --- /dev/null +++ b/src/components/jet/item/HeroCarouselItem.svelte @@ -0,0 +1,60 @@ + + + + + + {#if overlayLockup && overlayType === 'singleModule'} + + {:else if callToActionText && !isPortraitLayout} +
+ + {callToActionText} + +
+ {/if} +
+
+ + diff --git a/src/components/jet/item/InAppPurchaseLockup.svelte b/src/components/jet/item/InAppPurchaseLockup.svelte new file mode 100644 index 0000000..29b7196 --- /dev/null +++ b/src/components/jet/item/InAppPurchaseLockup.svelte @@ -0,0 +1,74 @@ + + +
+
+
+ + +
+ + diff --git a/src/components/jet/item/LargeBrickItem.svelte b/src/components/jet/item/LargeBrickItem.svelte new file mode 100644 index 0000000..5ce9974 --- /dev/null +++ b/src/components/jet/item/LargeBrickItem.svelte @@ -0,0 +1,106 @@ + + + + + {#if artwork} +
+ +
+ {:else} +
+ {/if} + +
+ +
+ + + + + + diff --git a/src/components/jet/item/LargeHeroBreakoutItem.svelte b/src/components/jet/item/LargeHeroBreakoutItem.svelte new file mode 100644 index 0000000..d07eec8 --- /dev/null +++ b/src/components/jet/item/LargeHeroBreakoutItem.svelte @@ -0,0 +1,268 @@ + + + + +
+ {#if video && $mediaQueries !== 'xsmall' && !canUseRTLArtwork} +
+ +
+ +
+ {#if item.details?.badge} + +

{item.details.badge}

+
+ {/if} + + {#if item.details.title} + +

{@html sanitizeHtml(item.details.title)}

+
+ {/if} + + {#if item.details.description} + +

{@html sanitizeHtml(item.details.description)}

+
+ {/if} + + {#if isSome(action) && isFlowAction(action)} + + {action.title} + + + {/if} + + {#if shouldShowCollectionIcons} +
    + {#each collectionIcons.slice(0, 6) as collectionIcon} +
  • + +
  • + {/each} +
+ {/if} +
+ + + + diff --git a/src/components/jet/item/LargeImageLockupItem.svelte b/src/components/jet/item/LargeImageLockupItem.svelte new file mode 100644 index 0000000..1df51c2 --- /dev/null +++ b/src/components/jet/item/LargeImageLockupItem.svelte @@ -0,0 +1,130 @@ + + + + +
+
+ +
+ + {#if item.lockup} +
+ {#if item.lockup.icon} +
+ +
+ {/if} + + +
+ {/if} + +
+ +
+
+
+
+ + diff --git a/src/components/jet/item/LargeLockupItem.svelte b/src/components/jet/item/LargeLockupItem.svelte new file mode 100644 index 0000000..93adc6e --- /dev/null +++ b/src/components/jet/item/LargeLockupItem.svelte @@ -0,0 +1,121 @@ + + + +
+
+ +
+ + + + {#if destination} +
+ + {$i18n.t('ASE.Web.AppStore.View')} + +
+ {/if} +
+
+ + diff --git a/src/components/jet/item/LargeStoryCardItem.svelte b/src/components/jet/item/LargeStoryCardItem.svelte new file mode 100644 index 0000000..66079c2 --- /dev/null +++ b/src/components/jet/item/LargeStoryCardItem.svelte @@ -0,0 +1,38 @@ + + + diff --git a/src/components/jet/item/LinkableTextItem.svelte b/src/components/jet/item/LinkableTextItem.svelte new file mode 100644 index 0000000..a5a3e74 --- /dev/null +++ b/src/components/jet/item/LinkableTextItem.svelte @@ -0,0 +1,88 @@ + + +{#each fragments as fragment} + {#if fragment.action} + + {fragment.text} + + {:else if fragment.isTrailingPunctuation} + {fragment.text} + {:else} + {@html sanitizeHtml(fragment.text)} + {/if} +{/each} + + diff --git a/src/components/jet/item/MediumImageLockupItem.svelte b/src/components/jet/item/MediumImageLockupItem.svelte new file mode 100644 index 0000000..8b93453 --- /dev/null +++ b/src/components/jet/item/MediumImageLockupItem.svelte @@ -0,0 +1,118 @@ + + + +
+ +
+ +
+ + {#if item.lockup} +
+ {#if item.lockup.icon} +
+ +
+ {/if} + + +
+ {/if} + + +
+
+
+ + diff --git a/src/components/jet/item/MediumLockupItem.svelte b/src/components/jet/item/MediumLockupItem.svelte new file mode 100644 index 0000000..be70acb --- /dev/null +++ b/src/components/jet/item/MediumLockupItem.svelte @@ -0,0 +1,96 @@ + + + +
+
+ +
+ + +
+
+ + diff --git a/src/components/jet/item/MediumStoryCard/EditorialStoryCardItem.svelte b/src/components/jet/item/MediumStoryCard/EditorialStoryCardItem.svelte new file mode 100644 index 0000000..7b7807c --- /dev/null +++ b/src/components/jet/item/MediumStoryCard/EditorialStoryCardItem.svelte @@ -0,0 +1,304 @@ + + + +
+ {#if item.artwork} +
+ + + +
+ {/if} +
+
+ {#if item.badge} +

{item.badge.title}

+ {/if} + + {#if item.title} +

{@html sanitizeHtml(item.title)}

+ {/if} + + {#if item.description} +

{@html sanitizeHtml(item.description)}

+ {/if} +
+ + {#if collectionIcons && !item.editorialDisplayOptions.suppressLockup} +
+
    + {#each collectionIcons as collectionIcon} +
  • + +
  • + {/each} +
+ + {#if !hasMultipleCollectionIcons} + + + {#if destination} +
+ + {$i18n.t('ASE.Web.AppStore.View')} + +
+ {/if} + {/if} +
+ {/if} +
+
+
+
+ + diff --git a/src/components/jet/item/MediumStoryCardItem.svelte b/src/components/jet/item/MediumStoryCardItem.svelte new file mode 100644 index 0000000..80ead7d --- /dev/null +++ b/src/components/jet/item/MediumStoryCardItem.svelte @@ -0,0 +1,27 @@ + + + + +{#if isEditorialStoryCard(item)} + +{:else if isSmallStoryCardWithMediaItem(item)} + +{/if} diff --git a/src/components/jet/item/MixedMediaLockupItem.svelte b/src/components/jet/item/MixedMediaLockupItem.svelte new file mode 100644 index 0000000..4874419 --- /dev/null +++ b/src/components/jet/item/MixedMediaLockupItem.svelte @@ -0,0 +1,39 @@ + + +
+
+ {#if video} +
+ +
+ + diff --git a/src/components/jet/item/ParagraphShelfItem.svelte b/src/components/jet/item/ParagraphShelfItem.svelte new file mode 100644 index 0000000..9adf09c --- /dev/null +++ b/src/components/jet/item/ParagraphShelfItem.svelte @@ -0,0 +1,21 @@ + + +

+ {@html he.decode(item.text)} +

+ + diff --git a/src/components/jet/item/PosterLockupItem.svelte b/src/components/jet/item/PosterLockupItem.svelte new file mode 100644 index 0000000..08b34e2 --- /dev/null +++ b/src/components/jet/item/PosterLockupItem.svelte @@ -0,0 +1,121 @@ + + + + +
+
+ {#if item.epicHeading} +
+ +
+ {/if} + + {#if item.posterVideo} +
+
+ {:else if item.posterArtwork} +
+ +
+ {/if} +
+ +
+
+ +
+ + + {item.footerText} + {#if item.tertiaryTitle} + | {item.tertiaryTitle} + {/if} + +
+
+
+
+ + diff --git a/src/components/jet/item/PrivacyHeaderItem.svelte b/src/components/jet/item/PrivacyHeaderItem.svelte new file mode 100644 index 0000000..f9611a6 --- /dev/null +++ b/src/components/jet/item/PrivacyHeaderItem.svelte @@ -0,0 +1,41 @@ + + +
+

+ +

+ + {#if item.supplementaryItems.length} +
+ {#each item.supplementaryItems as supItem} +

+ +

+ {/each} +
+ {/if} +
+ + diff --git a/src/components/jet/item/PrivacyTypeItem.svelte b/src/components/jet/item/PrivacyTypeItem.svelte new file mode 100644 index 0000000..5e63966 --- /dev/null +++ b/src/components/jet/item/PrivacyTypeItem.svelte @@ -0,0 +1,193 @@ + + +
+ {#if item.artwork && isSystemImageArtwork(item.artwork)} + + {/if} + +

{item.title}

+

{item.detail}

+ +
    1 && !isDetailView}> + {#each item.categories as category} +
  • + {#if isSystemImageArtwork(category.artwork)} + + {/if} + {category.title} +
  • + {/each} +
+ + {#each item.purposes as purpose} +
+

{purpose.title}

+ + {#each purpose.categories as category} +
  • + {#if isSystemImageArtwork(category.artwork)} + + {/if} + + {category.title} + +
      + {#each category.dataTypes as type} +
    • {type}
    • + {/each} +
    +
  • + {/each} +
    + {/each} +
    + + diff --git a/src/components/jet/item/ProductBadgeItem.svelte b/src/components/jet/item/ProductBadgeItem.svelte new file mode 100644 index 0000000..fa32e6f --- /dev/null +++ b/src/components/jet/item/ProductBadgeItem.svelte @@ -0,0 +1,188 @@ + + + +
    +
    +
    + + {item.heading} + +
    + +
    + {#if isContentRatingBadge(item)} + + {:else if isParagraph} + {content.paragraphText} + {:else if isRating && !content.rating} + + {content.ratingFormatted} + + {:else if isEditorsChoice} + + + + + + {item.accessibilityTitle} + + + + + + {:else if artwork && hasImageArtwork} + + {:else if artwork && isSystemImageArtwork(artwork)} + + {:else if isController} + + {/if} + + {#if isRating && content.rating} + + + {:else} + {item.caption} + {/if} +
    +
    +
    +
    + + diff --git a/src/components/jet/item/ProductCapabilityItem.svelte b/src/components/jet/item/ProductCapabilityItem.svelte new file mode 100644 index 0000000..21e97cd --- /dev/null +++ b/src/components/jet/item/ProductCapabilityItem.svelte @@ -0,0 +1,84 @@ + + +
    +
    + +
    + + +
    + + diff --git a/src/components/jet/item/ProductMedia/ProductMediaMacItem.svelte b/src/components/jet/item/ProductMedia/ProductMediaMacItem.svelte new file mode 100644 index 0000000..516ed32 --- /dev/null +++ b/src/components/jet/item/ProductMedia/ProductMediaMacItem.svelte @@ -0,0 +1,31 @@ + + +{#if item.screenshot} +
    + +
    +{:else if item.video} +
    +
    +{/if} + + diff --git a/src/components/jet/item/ProductMedia/ProductMediaPadItem.svelte b/src/components/jet/item/ProductMedia/ProductMediaPadItem.svelte new file mode 100644 index 0000000..6b9886c --- /dev/null +++ b/src/components/jet/item/ProductMedia/ProductMediaPadItem.svelte @@ -0,0 +1,89 @@ + + +{#if item.screenshot || item.video} +
    +
    + {#if item.screenshot} + + {:else if item.video} +
    +
    +{/if} + + diff --git a/src/components/jet/item/ProductMedia/ProductMediaPhoneItem.svelte b/src/components/jet/item/ProductMedia/ProductMediaPhoneItem.svelte new file mode 100644 index 0000000..255b663 --- /dev/null +++ b/src/components/jet/item/ProductMedia/ProductMediaPhoneItem.svelte @@ -0,0 +1,142 @@ + + +{#if item.screenshot || item.video} +
    +
    + {#if item.screenshot} + + {:else if item.video} +
    +
    +{/if} + + diff --git a/src/components/jet/item/ProductMedia/ProductMediaTVItem.svelte b/src/components/jet/item/ProductMedia/ProductMediaTVItem.svelte new file mode 100644 index 0000000..7f7fd7a --- /dev/null +++ b/src/components/jet/item/ProductMedia/ProductMediaTVItem.svelte @@ -0,0 +1,34 @@ + + +{#if item.screenshot || item.video} +
    +
    + {#if item.screenshot} + + {:else if item.video} +
    +
    +{/if} + + diff --git a/src/components/jet/item/ProductMedia/ProductMediaVisionItem.svelte b/src/components/jet/item/ProductMedia/ProductMediaVisionItem.svelte new file mode 100644 index 0000000..e893dd6 --- /dev/null +++ b/src/components/jet/item/ProductMedia/ProductMediaVisionItem.svelte @@ -0,0 +1,38 @@ + + +{#if item.screenshot || item.video} +
    +
    + {#if item.screenshot} + + {:else if item.video} +
    +
    +{/if} + + diff --git a/src/components/jet/item/ProductMedia/ProductMediaWatchItem.svelte b/src/components/jet/item/ProductMedia/ProductMediaWatchItem.svelte new file mode 100644 index 0000000..0a4b50e --- /dev/null +++ b/src/components/jet/item/ProductMedia/ProductMediaWatchItem.svelte @@ -0,0 +1,50 @@ + + +{#if item.screenshot} +
    +
    + +
    +
    +{/if} + + diff --git a/src/components/jet/item/ProductPageLinkItem.svelte b/src/components/jet/item/ProductPageLinkItem.svelte new file mode 100644 index 0000000..be4bb16 --- /dev/null +++ b/src/components/jet/item/ProductPageLinkItem.svelte @@ -0,0 +1,68 @@ + + +{#if canRenderContainer} + +{/if} + + diff --git a/src/components/jet/item/ProductRatingsItem.svelte b/src/components/jet/item/ProductRatingsItem.svelte new file mode 100644 index 0000000..0345993 --- /dev/null +++ b/src/components/jet/item/ProductRatingsItem.svelte @@ -0,0 +1,37 @@ + + +
    + {#if item.totalNumberOfRatings === 0} + {item.status} + {:else} + + {/if} +
    + + diff --git a/src/components/jet/item/ProductReview/EditorsChoiceReviewItem.svelte b/src/components/jet/item/ProductReview/EditorsChoiceReviewItem.svelte new file mode 100644 index 0000000..2bb6a06 --- /dev/null +++ b/src/components/jet/item/ProductReview/EditorsChoiceReviewItem.svelte @@ -0,0 +1,99 @@ + + + + +
    + + + {#if isDetailView} +

    {item.review.notes}

    + {:else} + + {/if} +
    + +{#if !isDetailView} + + + + + + + +{/if} + + diff --git a/src/components/jet/item/ProductReview/UserReviewItem.svelte b/src/components/jet/item/ProductReview/UserReviewItem.svelte new file mode 100644 index 0000000..472dd1f --- /dev/null +++ b/src/components/jet/item/ProductReview/UserReviewItem.svelte @@ -0,0 +1,25 @@ + + + + + diff --git a/src/components/jet/item/ReviewItem.svelte b/src/components/jet/item/ReviewItem.svelte new file mode 100644 index 0000000..7f406c8 --- /dev/null +++ b/src/components/jet/item/ReviewItem.svelte @@ -0,0 +1,237 @@ + + +
    +
    +
    + {#if !isDetailView} +

    + + {title} + +

    + {/if} + + +
    + +
    + + + +

    + {reviewerName} +

    +
    +
    +
    + + {#if isDetailView} +

    + {@html sanitizeHtml(reviewContents, { + allowedTags: [''], + keepChildrenWhenRemovingParent: true, + })} + + {#if response} +

    +
    + + {$i18n.t( + 'ASE.Web.AppStore.Review.DeveloperResponse', + )} + + + +
    + + {@html sanitizeHtml(responseContents, { + allowedTags: [''], + keepChildrenWhenRemovingParent: true, + })} +
    + {/if} +

    + {:else} +
    + + + {#if item.response} +
    + + {$i18n.t('ASE.Web.AppStore.Review.DeveloperResponse')} + + +
    + {/if} +
    + {/if} +
    + +{#if !isDetailView} + + + + + + + +{/if} + + diff --git a/src/components/jet/item/SearchLinkItem.svelte b/src/components/jet/item/SearchLinkItem.svelte new file mode 100644 index 0000000..cd60512 --- /dev/null +++ b/src/components/jet/item/SearchLinkItem.svelte @@ -0,0 +1,47 @@ + + +{#if isFlowAction(item.clickAction)} + +{/if} + + diff --git a/src/components/jet/item/SearchResult/AppSearchResultItem.svelte b/src/components/jet/item/SearchResult/AppSearchResultItem.svelte new file mode 100644 index 0000000..c36e5fc --- /dev/null +++ b/src/components/jet/item/SearchResult/AppSearchResultItem.svelte @@ -0,0 +1,392 @@ + + + + + +
    +
    + {#if item.lockup.icon} +
    + +
    + {/if} + + + +
    + + {$i18n.t('ASE.Web.AppStore.View')} + +
    +
    + +
    + {#each media as mediaItem} + {#if 'videoUrl' in mediaItem} +
    +
    + {:else} + + {/if} + {/each} +
    +
    +
    + + diff --git a/src/components/jet/item/SmallBreakoutItem.svelte b/src/components/jet/item/SmallBreakoutItem.svelte new file mode 100644 index 0000000..311fbef --- /dev/null +++ b/src/components/jet/item/SmallBreakoutItem.svelte @@ -0,0 +1,187 @@ + + + + +
    + {#if iconArtwork} +
    + +
    + {/if} + +
    + {#if item.details?.badge} + +

    {item.details.badge}

    +
    + {/if} + + {#if item.details.title} + +

    {item.details.title}

    +
    + {/if} + + {#if item.details.description} + +

    {item.details.description}

    +
    + {/if} + + {#if isSome(action) && isFlowAction(action)} + + {action.title} + + + {/if} +
    +
    +
    +
    + + diff --git a/src/components/jet/item/SmallLockupItem.svelte b/src/components/jet/item/SmallLockupItem.svelte new file mode 100644 index 0000000..b235652 --- /dev/null +++ b/src/components/jet/item/SmallLockupItem.svelte @@ -0,0 +1,110 @@ + + +
    + + {#if item.icon} +
    + +
    + {/if} + + + + +
    +
    + + diff --git a/src/components/jet/item/SmallLockupWithOrdinalItem.svelte b/src/components/jet/item/SmallLockupWithOrdinalItem.svelte new file mode 100644 index 0000000..9fb796c --- /dev/null +++ b/src/components/jet/item/SmallLockupWithOrdinalItem.svelte @@ -0,0 +1,176 @@ + + + + + +
    + {#if item.ordinal} +
    + {item.ordinal} +
    + {/if} + + {#if item.icon} +
    + +
    + {/if} + + +
    + + {$i18n.t('ASE.Web.AppStore.View')} + +
    +
    +
    + + diff --git a/src/components/jet/item/SmallStoryCardMediaBrandedSingleApp.svelte b/src/components/jet/item/SmallStoryCardMediaBrandedSingleApp.svelte new file mode 100644 index 0000000..ce7784b --- /dev/null +++ b/src/components/jet/item/SmallStoryCardMediaBrandedSingleApp.svelte @@ -0,0 +1,69 @@ + + + + +
    + + + + + +
    +

    {item.heading}

    +

    {item.title}

    +

    {item.inlineDescription}

    +
    +
    +
    + + diff --git a/src/components/jet/item/SmallStoryCardWithArtworkItem.svelte b/src/components/jet/item/SmallStoryCardWithArtworkItem.svelte new file mode 100644 index 0000000..bcd7333 --- /dev/null +++ b/src/components/jet/item/SmallStoryCardWithArtworkItem.svelte @@ -0,0 +1,87 @@ + + + + +
    + + + + + + +
    + {#if item.badge?.title} +

    {item.badge.title}

    + {/if} + + {#if item.title} +

    {@html sanitizeHtml(item.title)}

    + {/if} +
    +
    +
    +
    + + diff --git a/src/components/jet/item/SmallStoryCardWithMediaAppIcon.svelte b/src/components/jet/item/SmallStoryCardWithMediaAppIcon.svelte new file mode 100644 index 0000000..5b20e1c --- /dev/null +++ b/src/components/jet/item/SmallStoryCardWithMediaAppIcon.svelte @@ -0,0 +1,156 @@ + + + + + + +
    +
    + + {#if artwork} + + {:else} +
    +
    + +
    + +
    + +
    +
    + {/if} +
    + + +
    +

    {item.heading}

    +

    {item.title}

    +
    + + + diff --git a/src/components/jet/item/SmallStoryCardWithMediaItem.svelte b/src/components/jet/item/SmallStoryCardWithMediaItem.svelte new file mode 100644 index 0000000..4901744 --- /dev/null +++ b/src/components/jet/item/SmallStoryCardWithMediaItem.svelte @@ -0,0 +1,104 @@ + + + + +
    + + + {#if artwork} +
    + +
    + {/if} +
    + +
    +

    {item.heading}

    + +

    {item.title}

    +
    + + {#if item.inlineDescription} + +

    {item.inlineDescription}

    +
    + {/if} +
    +
    +
    + + diff --git a/src/components/jet/item/SmallStoryCardWithMediaRiver.svelte b/src/components/jet/item/SmallStoryCardWithMediaRiver.svelte new file mode 100644 index 0000000..038f504 --- /dev/null +++ b/src/components/jet/item/SmallStoryCardWithMediaRiver.svelte @@ -0,0 +1,118 @@ + + + + + + +
    + +
    +
    + +
    + {#if eyebrow} +

    {eyebrow}

    + {/if} + + {#if title} +

    {title}

    + {/if} +
    +
    + + diff --git a/src/components/jet/item/TitledParagraphItem.svelte b/src/components/jet/item/TitledParagraphItem.svelte new file mode 100644 index 0000000..ad8e4bc --- /dev/null +++ b/src/components/jet/item/TitledParagraphItem.svelte @@ -0,0 +1,175 @@ + + + + +
    +
    +

    + {#if item.text} + {#if !isTruncated || isDetailView} + {item.text} + {:else} + + (isTruncated = detail.truncated)} + > + {@html sanitizeHtml(item.text)} + + + {#if isTruncated} + + {/if} + {/if} + {/if} +

    + + +
    +
    + + diff --git a/src/components/jet/item/TrailersLockupItem.svelte b/src/components/jet/item/TrailersLockupItem.svelte new file mode 100644 index 0000000..6b2ee42 --- /dev/null +++ b/src/components/jet/item/TrailersLockupItem.svelte @@ -0,0 +1,51 @@ + + +
    + {#if video} +
    +
    + {/if} + + +
    + + diff --git a/src/components/jet/marker-shelf/ProductTopLockup.svelte b/src/components/jet/marker-shelf/ProductTopLockup.svelte new file mode 100644 index 0000000..e56e5b0 --- /dev/null +++ b/src/components/jet/marker-shelf/ProductTopLockup.svelte @@ -0,0 +1,463 @@ + + + + + +
    +
    +
    + +
    + {#if lockup.icon} + + {/if} + +
    + {#if supportsArcade} + + {:else if lockup.editorialTagline} +

    {lockup.editorialTagline}

    + {/if} + +

    + {lockup.title} +

    + +

    + {lockup.subtitle} +

    + + {#if exclusivityText} +

    + {$i18n.t(exclusivityText)} +

    + {/if} + + {#if attributes.length > 0} +

    + {attributes} +

    + {/if} + + {#if page.canonicalURL && (shouldShowLaunchNativeButton || shouldShowShareButton)} +
    + {#if shouldShowLaunchNativeButton} + + + + {/if} + + {#if shouldShowShareButton} + + + {/if} +
    + {/if} +
    +
    +
    + + +{#if banner} + + + +{/if} + +{#if supportsArcade} + + + +{/if} + + diff --git a/src/components/jet/shelf/AccessibilityDeveloperLinkShelf.svelte b/src/components/jet/shelf/AccessibilityDeveloperLinkShelf.svelte new file mode 100644 index 0000000..c1e7b2e --- /dev/null +++ b/src/components/jet/shelf/AccessibilityDeveloperLinkShelf.svelte @@ -0,0 +1,36 @@ + + + + + + + diff --git a/src/components/jet/shelf/AccessibilityFeaturesShelf.svelte b/src/components/jet/shelf/AccessibilityFeaturesShelf.svelte new file mode 100644 index 0000000..cb2fed8 --- /dev/null +++ b/src/components/jet/shelf/AccessibilityFeaturesShelf.svelte @@ -0,0 +1,35 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/AccessibilityHeaderShelf.svelte b/src/components/jet/shelf/AccessibilityHeaderShelf.svelte new file mode 100644 index 0000000..990c507 --- /dev/null +++ b/src/components/jet/shelf/AccessibilityHeaderShelf.svelte @@ -0,0 +1,182 @@ + + + + + +
    + {#if shelf.title} + {#if destination} + + {:else} + + {/if} + {/if} + + {#if pageData} + + + + + + + + {/if} +
    + +
    +
    + +
    +
    +
    + + diff --git a/src/components/jet/shelf/ActionShelf.svelte b/src/components/jet/shelf/ActionShelf.svelte new file mode 100644 index 0000000..847438f --- /dev/null +++ b/src/components/jet/shelf/ActionShelf.svelte @@ -0,0 +1,80 @@ + + + + + + + {@const action = item} + {@const artwork = item.artwork} + {@const title = item.title} + +
    + + {#if artwork} + + {/if} + {title} + +
    +
    +
    + + diff --git a/src/components/jet/shelf/AnnotationShelf.svelte b/src/components/jet/shelf/AnnotationShelf.svelte new file mode 100644 index 0000000..e11de72 --- /dev/null +++ b/src/components/jet/shelf/AnnotationShelf.svelte @@ -0,0 +1,49 @@ + + + + + +
    + +
    {item.title}
    + + {#if item.summary} + + + {item.summary} + + + + + {:else} + + {/if} +
    +
    +
    + + diff --git a/src/components/jet/shelf/AppEventDetailShelf.svelte b/src/components/jet/shelf/AppEventDetailShelf.svelte new file mode 100644 index 0000000..2ae84eb --- /dev/null +++ b/src/components/jet/shelf/AppEventDetailShelf.svelte @@ -0,0 +1,290 @@ + + + + + +
    + {#if video} +
    +
    + {:else if artwork} +
    + +
    + {/if} + + {#if isXSmallViewport} +
    + +
    + {:else} +
    + {/if} + +
    + +
    + +
    +
    +

    {appEvent.kind}

    +

    {appEvent.title}

    +

    + {appEvent.detail} +

    + {#if requirements} + {requirements} + {/if} +
    + + {#if lockup} +
    + + + {#if urlToLaunchNatively} + + {/if} + + +
    + {/if} +
    +
    + + + diff --git a/src/components/jet/shelf/AppPromotionShelf.svelte b/src/components/jet/shelf/AppPromotionShelf.svelte new file mode 100644 index 0000000..48590cb --- /dev/null +++ b/src/components/jet/shelf/AppPromotionShelf.svelte @@ -0,0 +1,47 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/AppShowcaseShelf.svelte b/src/components/jet/shelf/AppShowcaseShelf.svelte new file mode 100644 index 0000000..095acf2 --- /dev/null +++ b/src/components/jet/shelf/AppShowcaseShelf.svelte @@ -0,0 +1,29 @@ + + + + + + + diff --git a/src/components/jet/shelf/AppTrailerLockupShelf.svelte b/src/components/jet/shelf/AppTrailerLockupShelf.svelte new file mode 100644 index 0000000..f516074 --- /dev/null +++ b/src/components/jet/shelf/AppTrailerLockupShelf.svelte @@ -0,0 +1,48 @@ + + + + + + + {#if isMixedMediaLockup(item)} + + {:else} + + {/if} + + diff --git a/src/components/jet/shelf/ArcadeFooterShelf.svelte b/src/components/jet/shelf/ArcadeFooterShelf.svelte new file mode 100644 index 0000000..dc46740 --- /dev/null +++ b/src/components/jet/shelf/ArcadeFooterShelf.svelte @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/BannerShelf.svelte b/src/components/jet/shelf/BannerShelf.svelte new file mode 100644 index 0000000..84289c9 --- /dev/null +++ b/src/components/jet/shelf/BannerShelf.svelte @@ -0,0 +1,35 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/BrickShelf.svelte b/src/components/jet/shelf/BrickShelf.svelte new file mode 100644 index 0000000..4bd55e5 --- /dev/null +++ b/src/components/jet/shelf/BrickShelf.svelte @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/CategoryBrickShelf.svelte b/src/components/jet/shelf/CategoryBrickShelf.svelte new file mode 100644 index 0000000..22ca86b --- /dev/null +++ b/src/components/jet/shelf/CategoryBrickShelf.svelte @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/EditorialCardShelf.svelte b/src/components/jet/shelf/EditorialCardShelf.svelte new file mode 100644 index 0000000..efbd71d --- /dev/null +++ b/src/components/jet/shelf/EditorialCardShelf.svelte @@ -0,0 +1,32 @@ + + + + + + + diff --git a/src/components/jet/shelf/EditorialLinkShelf.svelte b/src/components/jet/shelf/EditorialLinkShelf.svelte new file mode 100644 index 0000000..0946462 --- /dev/null +++ b/src/components/jet/shelf/EditorialLinkShelf.svelte @@ -0,0 +1,122 @@ + + + + + +
    + + +
    + {descriptionText} + {summaryText} +
    + + +
    +
    +
    +
    + + diff --git a/src/components/jet/shelf/FallbackShelf.svelte b/src/components/jet/shelf/FallbackShelf.svelte new file mode 100644 index 0000000..c7e4200 --- /dev/null +++ b/src/components/jet/shelf/FallbackShelf.svelte @@ -0,0 +1,39 @@ + + + + + + +
    + {isPlaceholder + ? `🔄 Placeholder for ${shelf.placeholderContentType}` + : `🚧 ${shelf.contentType}`} +
    +
    +
    + + diff --git a/src/components/jet/shelf/FramedArtworkShelf.svelte b/src/components/jet/shelf/FramedArtworkShelf.svelte new file mode 100644 index 0000000..16f7c48 --- /dev/null +++ b/src/components/jet/shelf/FramedArtworkShelf.svelte @@ -0,0 +1,98 @@ + + + + + +
    +
    + +
    + + {#if caption} +
    + {@html sanitizeHtml(caption)} +
    + {/if} +
    +
    + + diff --git a/src/components/jet/shelf/FramedVideoShelf.svelte b/src/components/jet/shelf/FramedVideoShelf.svelte new file mode 100644 index 0000000..a685d39 --- /dev/null +++ b/src/components/jet/shelf/FramedVideoShelf.svelte @@ -0,0 +1,78 @@ + + + + + +
    +
    +
    + + {#if caption} +
    + {@html sanitizeHtml(caption)} +
    + {/if} +
    +
    + + diff --git a/src/components/jet/shelf/HeroCarouselShelf.svelte b/src/components/jet/shelf/HeroCarouselShelf.svelte new file mode 100644 index 0000000..31a0287 --- /dev/null +++ b/src/components/jet/shelf/HeroCarouselShelf.svelte @@ -0,0 +1,38 @@ + + + + + + + diff --git a/src/components/jet/shelf/HorizontalRuleShelf.svelte b/src/components/jet/shelf/HorizontalRuleShelf.svelte new file mode 100644 index 0000000..3313ff2 --- /dev/null +++ b/src/components/jet/shelf/HorizontalRuleShelf.svelte @@ -0,0 +1,54 @@ + + + + + +
    +
    + + diff --git a/src/components/jet/shelf/HorizontalShelf.svelte b/src/components/jet/shelf/HorizontalShelf.svelte new file mode 100644 index 0000000..1addb31 --- /dev/null +++ b/src/components/jet/shelf/HorizontalShelf.svelte @@ -0,0 +1,53 @@ + + +
    + + + + + +
    + + diff --git a/src/components/jet/shelf/InAppPurchaseLockupShelf.svelte b/src/components/jet/shelf/InAppPurchaseLockupShelf.svelte new file mode 100644 index 0000000..bf2e75e --- /dev/null +++ b/src/components/jet/shelf/InAppPurchaseLockupShelf.svelte @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/LargeBrickShelf.svelte b/src/components/jet/shelf/LargeBrickShelf.svelte new file mode 100644 index 0000000..eea1044 --- /dev/null +++ b/src/components/jet/shelf/LargeBrickShelf.svelte @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/LargeHeroBreakoutShelf.svelte b/src/components/jet/shelf/LargeHeroBreakoutShelf.svelte new file mode 100644 index 0000000..a0dfe9c --- /dev/null +++ b/src/components/jet/shelf/LargeHeroBreakoutShelf.svelte @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/LargeImageLockupShelf.svelte b/src/components/jet/shelf/LargeImageLockupShelf.svelte new file mode 100644 index 0000000..fd192fb --- /dev/null +++ b/src/components/jet/shelf/LargeImageLockupShelf.svelte @@ -0,0 +1,30 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/LargeLockupShelf.svelte b/src/components/jet/shelf/LargeLockupShelf.svelte new file mode 100644 index 0000000..dedd1fe --- /dev/null +++ b/src/components/jet/shelf/LargeLockupShelf.svelte @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/LargeStoryCardShelf.svelte b/src/components/jet/shelf/LargeStoryCardShelf.svelte new file mode 100644 index 0000000..c1a1e57 --- /dev/null +++ b/src/components/jet/shelf/LargeStoryCardShelf.svelte @@ -0,0 +1,32 @@ + + + + + + + diff --git a/src/components/jet/shelf/LinkableTextShelf.svelte b/src/components/jet/shelf/LinkableTextShelf.svelte new file mode 100644 index 0000000..dcfde36 --- /dev/null +++ b/src/components/jet/shelf/LinkableTextShelf.svelte @@ -0,0 +1,43 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/MarkerShelf.svelte b/src/components/jet/shelf/MarkerShelf.svelte new file mode 100644 index 0000000..c719235 --- /dev/null +++ b/src/components/jet/shelf/MarkerShelf.svelte @@ -0,0 +1,36 @@ + + + + +{#if shelf.marker === 'productTopLockup'} + +{/if} diff --git a/src/components/jet/shelf/MediumImageLockupShelf.svelte b/src/components/jet/shelf/MediumImageLockupShelf.svelte new file mode 100644 index 0000000..f7b1316 --- /dev/null +++ b/src/components/jet/shelf/MediumImageLockupShelf.svelte @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/MediumLockupShelf.svelte b/src/components/jet/shelf/MediumLockupShelf.svelte new file mode 100644 index 0000000..186acb2 --- /dev/null +++ b/src/components/jet/shelf/MediumLockupShelf.svelte @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/MediumStoryCardShelf.svelte b/src/components/jet/shelf/MediumStoryCardShelf.svelte new file mode 100644 index 0000000..35c3ec3 --- /dev/null +++ b/src/components/jet/shelf/MediumStoryCardShelf.svelte @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/PageHeaderShelf.svelte b/src/components/jet/shelf/PageHeaderShelf.svelte new file mode 100644 index 0000000..59c99b2 --- /dev/null +++ b/src/components/jet/shelf/PageHeaderShelf.svelte @@ -0,0 +1,34 @@ + + + + + +
    + +
    +
    + + diff --git a/src/components/jet/shelf/ParagraphShelf.svelte b/src/components/jet/shelf/ParagraphShelf.svelte new file mode 100644 index 0000000..777338e --- /dev/null +++ b/src/components/jet/shelf/ParagraphShelf.svelte @@ -0,0 +1,52 @@ + + + + + +
    + {#if shelf.title} +

    {shelf.title}

    + {/if} +
    + +
    + {#each shelf.items as item} + + {/each} +
    +
    + + diff --git a/src/components/jet/shelf/PosterLockupShelf.svelte b/src/components/jet/shelf/PosterLockupShelf.svelte new file mode 100644 index 0000000..101c1d6 --- /dev/null +++ b/src/components/jet/shelf/PosterLockupShelf.svelte @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/PrivacyFooterShelf.svelte b/src/components/jet/shelf/PrivacyFooterShelf.svelte new file mode 100644 index 0000000..dccade6 --- /dev/null +++ b/src/components/jet/shelf/PrivacyFooterShelf.svelte @@ -0,0 +1,40 @@ + + + + + +

    + +

    +
    + + diff --git a/src/components/jet/shelf/PrivacyHeaderShelf.svelte b/src/components/jet/shelf/PrivacyHeaderShelf.svelte new file mode 100644 index 0000000..5ace666 --- /dev/null +++ b/src/components/jet/shelf/PrivacyHeaderShelf.svelte @@ -0,0 +1,145 @@ + + + + + +
    + {#if shelf.title} + + {/if} + + {#if pageData} + + + + + + + + {/if} +
    + +
    +
    + +
    +
    +
    + + diff --git a/src/components/jet/shelf/PrivacyTypeShelf.svelte b/src/components/jet/shelf/PrivacyTypeShelf.svelte new file mode 100644 index 0000000..3817251 --- /dev/null +++ b/src/components/jet/shelf/PrivacyTypeShelf.svelte @@ -0,0 +1,29 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/ProductBadgeShelf.svelte b/src/components/jet/shelf/ProductBadgeShelf.svelte new file mode 100644 index 0000000..cded0b7 --- /dev/null +++ b/src/components/jet/shelf/ProductBadgeShelf.svelte @@ -0,0 +1,59 @@ + + + + + +
    + + + +
    +
    + + diff --git a/src/components/jet/shelf/ProductCapabilityShelf.svelte b/src/components/jet/shelf/ProductCapabilityShelf.svelte new file mode 100644 index 0000000..6a4307a --- /dev/null +++ b/src/components/jet/shelf/ProductCapabilityShelf.svelte @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/ProductDescriptionShelf.svelte b/src/components/jet/shelf/ProductDescriptionShelf.svelte new file mode 100644 index 0000000..7cddcee --- /dev/null +++ b/src/components/jet/shelf/ProductDescriptionShelf.svelte @@ -0,0 +1,95 @@ + + + + + +
    +

    + {#if isOpen} + {@html sanitizeHtml(description)} + {:else} + + {@html sanitizeHtml(description)} + + {/if} + + {#if !isOpen} + + {/if} +

    +
    +
    + + diff --git a/src/components/jet/shelf/ProductMediaShelf.svelte b/src/components/jet/shelf/ProductMediaShelf.svelte new file mode 100644 index 0000000..f57fee7 --- /dev/null +++ b/src/components/jet/shelf/ProductMediaShelf.svelte @@ -0,0 +1,269 @@ + + + + + + {#if appPlatform === 'vision'} + + + + {:else if appPlatform === 'phone' || appPlatform === 'messages'} + + + + {:else if appPlatform === 'pad'} + + + + {:else if appPlatform === 'mac'} + + + + {:else if appPlatform === 'tv'} + + + + {:else if appPlatform === 'watch'} + + + + {:else} + + + + {/if} + + {#if appPlatform && shouldShowPlatform} +
    + +
    + {$i18n.t(platformToDescriptionMap[appPlatform])} +
    +
    + {/if} +
    + +{#if shelf.expandedMedia && allPlatforms && allPlatforms.length > 1} +
    + {#if !shouldDisplayExpandedMedia} + + {/if} + {#if shouldDisplayExpandedMedia} +
    + {#each shelf.expandedMedia as expandedMediaShelf} + + {/each} +
    + {/if} +
    +{/if} + +{#if !isExpandedMedia} +
    +{/if} + + diff --git a/src/components/jet/shelf/ProductPageLinkShelf.svelte b/src/components/jet/shelf/ProductPageLinkShelf.svelte new file mode 100644 index 0000000..7b41e80 --- /dev/null +++ b/src/components/jet/shelf/ProductPageLinkShelf.svelte @@ -0,0 +1,59 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/ProductRatingsShelf.svelte b/src/components/jet/shelf/ProductRatingsShelf.svelte new file mode 100644 index 0000000..8f09ab5 --- /dev/null +++ b/src/components/jet/shelf/ProductRatingsShelf.svelte @@ -0,0 +1,29 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/ProductReviewShelf.svelte b/src/components/jet/shelf/ProductReviewShelf.svelte new file mode 100644 index 0000000..6bc4ecb --- /dev/null +++ b/src/components/jet/shelf/ProductReviewShelf.svelte @@ -0,0 +1,38 @@ + + + + + + + {#if isUserReviewItem(item)} + + {:else if isEditorsChoiceReviewItem(item)} + + {/if} + + diff --git a/src/components/jet/shelf/QuoteShelf.svelte b/src/components/jet/shelf/QuoteShelf.svelte new file mode 100644 index 0000000..3a14f4f --- /dev/null +++ b/src/components/jet/shelf/QuoteShelf.svelte @@ -0,0 +1,80 @@ + + + + + +
    +
    +
    + {item.text} +
    + {item.credit} +
    +
    +
    + + diff --git a/src/components/jet/shelf/ReviewsContainerShelf.svelte b/src/components/jet/shelf/ReviewsContainerShelf.svelte new file mode 100644 index 0000000..a55fe40 --- /dev/null +++ b/src/components/jet/shelf/ReviewsContainerShelf.svelte @@ -0,0 +1,84 @@ + + + + + +
    + {#if productAction} +
    + + {productAction.title} + +
    + {/if} + + + + +
    + +
    +
    +
    +
    + + diff --git a/src/components/jet/shelf/ReviewsShelf.svelte b/src/components/jet/shelf/ReviewsShelf.svelte new file mode 100644 index 0000000..8304444 --- /dev/null +++ b/src/components/jet/shelf/ReviewsShelf.svelte @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/RibbonBarShelf.svelte b/src/components/jet/shelf/RibbonBarShelf.svelte new file mode 100644 index 0000000..44a8ae9 --- /dev/null +++ b/src/components/jet/shelf/RibbonBarShelf.svelte @@ -0,0 +1,135 @@ + + + + + +
    +
      + {#each shelf.items as ribbonBarItem} + {@const action = ribbonBarItem.clickAction} + {@const artwork = ribbonBarItem.artwork} + {@const title = ribbonBarItem.title} +
    • + + {#if artwork} +
      + {#if isSystemImageArtwork(artwork)} + + {:else} + + {/if} +
      + {/if} + {title} +
      +
    • + {/each} +
    +
    +
    + + diff --git a/src/components/jet/shelf/SearchLinkShelf.svelte b/src/components/jet/shelf/SearchLinkShelf.svelte new file mode 100644 index 0000000..6b29780 --- /dev/null +++ b/src/components/jet/shelf/SearchLinkShelf.svelte @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/SearchResultShelf.svelte b/src/components/jet/shelf/SearchResultShelf.svelte new file mode 100644 index 0000000..9c15d3e --- /dev/null +++ b/src/components/jet/shelf/SearchResultShelf.svelte @@ -0,0 +1,49 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/Shelf.svelte b/src/components/jet/shelf/Shelf.svelte new file mode 100644 index 0000000..6cbb0f6 --- /dev/null +++ b/src/components/jet/shelf/Shelf.svelte @@ -0,0 +1,320 @@ + + + + +{#if isAccessibilityHeaderShelf(shelf)} + +{:else if isAccessibilityFeaturesShelf(shelf)} + +{:else if isAccessibilityDeveloperLinkShelf(shelf)} + +{:else if isActionShelf(shelf)} + +{:else if isAnnotationShelf(shelf)} + +{:else if isAppEventDetailShelf(shelf)} + +{:else if isAppPromotionShelf(shelf)} + +{:else if isAppShowcaseShelf(shelf)} + +{:else if isAppTrailerLockupShelf(shelf)} + +{:else if isArcadeFooterShelf(shelf)} + +{:else if isBannerShelf(shelf)} + + +{:else if isBrickShelf(shelf)} + +{:else if isCategoryBrickShelf(shelf)} + +{:else if isEditorialCardShelf(shelf)} + +{:else if isEditorialLinkShelf(shelf)} + +{:else if isFramedArtworkShelf(shelf)} + +{:else if isFramedVideoShelf(shelf)} + +{:else if isHeroCarouselShelf(shelf)} + +{:else if isHorizontalRuleShelf(shelf)} + +{:else if isInAppPurchaseLockupShelf(shelf)} + +{:else if isLargeHeroBreakoutShelf(shelf)} + +{:else if isLargeBrickShelf(shelf)} + +{:else if isLargeImageLockupShelf(shelf)} + +{:else if isLargeLockupShelf(shelf)} + +{:else if isLargeStoryCardShelf(shelf)} + +{:else if isLinkableTextShelf(shelf)} + +{:else if isProductDescriptionShelf(shelf)} + +{:else if isMediumImageLockupShelf(shelf)} + +{:else if isMediumLockupShelf(shelf)} + +{:else if isMediumStoryCardShelf(shelf)} + +{:else if isPosterLockupShelf(shelf)} + +{:else if isProductBadgeShelf(shelf)} + +{:else if isPageHeaderShelf(shelf)} + +{:else if isParagraphShelf(shelf)} + +{:else if isPrivacyHeaderShelf(shelf)} + +{:else if isPrivacyFooterShelf(shelf)} + +{:else if isPrivacyTypeShelf(shelf)} + +{:else if isProductMediaShelf(shelf)} + +{:else if isProductRatingsShelf(shelf)} + +{:else if isProductReviewShelf(shelf)} + +{:else if isRibbonBarShelf(shelf)} + +{:else if isSearchLinkShelf(shelf)} + +{:else if isSearchResultShelf(shelf)} + +{:else if isSmallBreakoutShelf(shelf)} + +{:else if isSmallBrickShelf(shelf)} + +{:else if isSmallStoryCardShelf(shelf)} + +{:else if isSmallLockupShelf(shelf)} + +{:else if isProductCapabilityShelf(shelf)} + +{:else if isProductPageLinkShelf(shelf)} + +{:else if isQuoteShelf(shelf)} + +{:else if isReviewsContainerShelf(shelf)} + +{:else if isReviewsShelf(shelf)} + +{:else if isTodayCardShelf(shelf)} + +{:else if isTitledParagraphShelf(shelf)} + +{:else if isUberShelf(shelf)} + +{:else if isMarkerShelf(shelf)} + +{:else if isFallbackShelf(shelf)} + +{/if} diff --git a/src/components/jet/shelf/SmallBreakoutShelf.svelte b/src/components/jet/shelf/SmallBreakoutShelf.svelte new file mode 100644 index 0000000..095cf7f --- /dev/null +++ b/src/components/jet/shelf/SmallBreakoutShelf.svelte @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/SmallBrickShelf.svelte b/src/components/jet/shelf/SmallBrickShelf.svelte new file mode 100644 index 0000000..34426cf --- /dev/null +++ b/src/components/jet/shelf/SmallBrickShelf.svelte @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/src/components/jet/shelf/SmallLockupShelf.svelte b/src/components/jet/shelf/SmallLockupShelf.svelte new file mode 100644 index 0000000..e286671 --- /dev/null +++ b/src/components/jet/shelf/SmallLockupShelf.svelte @@ -0,0 +1,54 @@ + + + + + + + {#if isSmallLockupWithOrdinalItem(item)} + + {:else} + + {/if} + + diff --git a/src/components/jet/shelf/SmallStoryCardShelf.svelte b/src/components/jet/shelf/SmallStoryCardShelf.svelte new file mode 100644 index 0000000..c1a85ad --- /dev/null +++ b/src/components/jet/shelf/SmallStoryCardShelf.svelte @@ -0,0 +1,66 @@ + + + + + + + {#if isSmallStoryCardWithMediaRiver(item)} + + {:else if isSmallStoryCardWithMediaAppIcon(item)} + + {:else if isSmallStoryCardMediaBrandedSingleApp(item)} + + {:else if isSmallStoryCardWithMediaItem(item)} + + {:else if isSmallStoryCardWithArtworkItem(item)} + + {/if} + + diff --git a/src/components/jet/shelf/TitledParagraphShelf.svelte b/src/components/jet/shelf/TitledParagraphShelf.svelte new file mode 100644 index 0000000..41c1d74 --- /dev/null +++ b/src/components/jet/shelf/TitledParagraphShelf.svelte @@ -0,0 +1,118 @@ + + + + + +
    + {#if shelf.title} + + {/if} + + {#if pageData} + + + +
      + {#each pageData.shelves as shelf} + {#each shelf.items || [] as item} + {#if isTitledParagraphItem(item)} +
    • + +
    • + {/if} + {/each} + {/each} +
    +
    +
    +
    + {/if} +
    + + {#each shelf.items as item} + + {/each} +
    + + diff --git a/src/components/jet/shelf/TodayCardShelf.svelte b/src/components/jet/shelf/TodayCardShelf.svelte new file mode 100644 index 0000000..e872112 --- /dev/null +++ b/src/components/jet/shelf/TodayCardShelf.svelte @@ -0,0 +1,187 @@ + + + + + +
    +
    = 2} + class:today-card-row__stretch-first-nowrap={shouldStretchFirstCardNoWrap && + shelf.items.length >= 2} + class:today-card-row__stretch-last-wrap={!shouldStretchFirstCardWrap && + shelf.items.length >= 2} + class:today-card-row__stretch-last-nowrap={!shouldStretchFirstCardNoWrap && + shelf.items.length >= 2} + class:today-card-row__1-card={shelf.items.length == 1} + class:today-card-row__2-card={shelf.items.length == 2} + class:today-card-row__3-card={shelf.items.length == 3} + class:today-card-row__4-card={shelf.items.length >= 4} + > + {#each shelf.items.slice(0, 4) as card} +
    + +
    + {/each} +
    +
    +
    + + diff --git a/src/components/jet/shelf/UberShelf.svelte b/src/components/jet/shelf/UberShelf.svelte new file mode 100644 index 0000000..6cdf004 --- /dev/null +++ b/src/components/jet/shelf/UberShelf.svelte @@ -0,0 +1,40 @@ + + + + +{#if artwork} + +
    + +
    +
    +{/if} + + diff --git a/src/components/jet/today-card/TodayCard.svelte b/src/components/jet/today-card/TodayCard.svelte new file mode 100644 index 0000000..84d760f --- /dev/null +++ b/src/components/jet/today-card/TodayCard.svelte @@ -0,0 +1,401 @@ + + + + +
    + {#if media && !useListStyle} + + {/if} + +
    +
    + +
    + {#if useBlurryProtectionLayer} +
    + {/if} + +
    + {#if heading && !titleArtwork} +

    + + {heading} + +

    + {/if} + + {#if titleArtwork} +
    + +
    + {/if} + + {#if title && !titleArtwork} +

    + + {@html sanitizeHtml(title)} + +

    + {/if} + + {#if inlineDescription} + +

    + {@html sanitizeHtml(inlineDescription)} +

    +
    + {/if} +
    +
    + + + {#if overlay} +
    + +
    + {/if} +
    +
    + + {#if media && useListStyle} + + {/if} +
    + + + diff --git a/src/components/jet/today-card/TodayCardMedia.svelte b/src/components/jet/today-card/TodayCardMedia.svelte new file mode 100644 index 0000000..99f444f --- /dev/null +++ b/src/components/jet/today-card/TodayCardMedia.svelte @@ -0,0 +1,49 @@ + + +{#if isTodayCardMediaAppEvent(media)} + +{:else if isTodayCardMediAppIcon(media)} + +{:else if isTodayCardMediaBrandedSingleApp(media)} + +{:else if isTodayCardMediaList(media)} + +{:else if isTodayCardMediaWithArtwork(media)} + +{:else if isTodayCardMediaRiver(media)} + +{:else if isTodayCardMediaVideo(media)} + +{/if} diff --git a/src/components/jet/today-card/TodayCardOverlay.svelte b/src/components/jet/today-card/TodayCardOverlay.svelte new file mode 100644 index 0000000..4e3c405 --- /dev/null +++ b/src/components/jet/today-card/TodayCardOverlay.svelte @@ -0,0 +1,48 @@ + + + + +{#if isLockupOverlay(overlay)} +
    + +
    +{:else if isLockupListOverlay(overlay)} + +{/if} + + diff --git a/src/components/jet/today-card/background-color-utils.ts b/src/components/jet/today-card/background-color-utils.ts new file mode 100644 index 0000000..c2c0fe6 --- /dev/null +++ b/src/components/jet/today-card/background-color-utils.ts @@ -0,0 +1,54 @@ +import { type Optional, isSome } from '@jet/environment/types/optional'; +import type { + Color, + TodayCardMedia, + TodayCardMediaWithArtwork, +} from '@jet-app/app-store/api/models'; + +import { isTodayCardMediaBrandedSingleApp } from './media/TodayCardMediaBrandedSingleApp.svelte'; +import { isTodayCardMediaAppEvent } from './media/TodayCardMediaAppEvent.svelte'; +import { isTodayCardMediaWithArtwork } from './media/TodayCardMediaWithArtwork.svelte'; + +const DEFAULT_COLOR: Color = { + type: 'named', + name: 'defaultBackground', +}; + +function getBackgroundFromMediaWithArtwork( + media: TodayCardMediaWithArtwork, +): Optional { + return ( + media.videos[0]?.preview.backgroundColor ?? + media.artworks[0]?.backgroundColor + ); +} + +/** + * Onyx App Store alternative to the `bestBackgroundColor` method that exists on + * the {@linkcode TodayCardMedia} type + * + * This is necessary because the functions on those class instances are not + * carried over to the client when serializing the view-model, making them + * impossible to call in a consistent way from our codebase + */ +export function bestBackgroundColor(media: Optional): Color { + if (isSome(media)) { + if (isTodayCardMediaAppEvent(media)) { + return media.tintColor; + } + + if (isTodayCardMediaBrandedSingleApp(media)) { + return ( + getBackgroundFromMediaWithArtwork(media) ?? + media.icon.backgroundColor ?? + DEFAULT_COLOR + ); + } + + if (isTodayCardMediaWithArtwork(media)) { + return getBackgroundFromMediaWithArtwork(media) ?? DEFAULT_COLOR; + } + } + + return DEFAULT_COLOR; +} diff --git a/src/components/jet/today-card/media/TodayCardMediaAppEvent.svelte b/src/components/jet/today-card/media/TodayCardMediaAppEvent.svelte new file mode 100644 index 0000000..1faa933 --- /dev/null +++ b/src/components/jet/today-card/media/TodayCardMediaAppEvent.svelte @@ -0,0 +1,78 @@ + + + + +
    + + + + +
    + {#if media.videos.length > 0} + + {:else if media.artworks.length > 0} + + {/if} +
    +
    + + diff --git a/src/components/jet/today-card/media/TodayCardMediaAppIcon.svelte b/src/components/jet/today-card/media/TodayCardMediaAppIcon.svelte new file mode 100644 index 0000000..a6db985 --- /dev/null +++ b/src/components/jet/today-card/media/TodayCardMediaAppIcon.svelte @@ -0,0 +1,62 @@ + + + + +
    +
    + +
    +
    + + diff --git a/src/components/jet/today-card/media/TodayCardMediaBrandedSingleApp.svelte b/src/components/jet/today-card/media/TodayCardMediaBrandedSingleApp.svelte new file mode 100644 index 0000000..dfdaa0f --- /dev/null +++ b/src/components/jet/today-card/media/TodayCardMediaBrandedSingleApp.svelte @@ -0,0 +1,41 @@ + + + + +{#if media.videos.length > 0} + +{:else if media.artworks.length > 0} + +{/if} diff --git a/src/components/jet/today-card/media/TodayCardMediaList.svelte b/src/components/jet/today-card/media/TodayCardMediaList.svelte new file mode 100644 index 0000000..00f8688 --- /dev/null +++ b/src/components/jet/today-card/media/TodayCardMediaList.svelte @@ -0,0 +1,86 @@ + + + + +
    +
      + {#each media.lockups as item} +
    • + +
    • + {/each} +
    +
    + + diff --git a/src/components/jet/today-card/media/TodayCardMediaRiver.svelte b/src/components/jet/today-card/media/TodayCardMediaRiver.svelte new file mode 100644 index 0000000..d3f9666 --- /dev/null +++ b/src/components/jet/today-card/media/TodayCardMediaRiver.svelte @@ -0,0 +1,78 @@ + + + + +
    + {#if icons.length} + + {/if} +
    + + diff --git a/src/components/jet/today-card/media/TodayCardMediaVideo.svelte b/src/components/jet/today-card/media/TodayCardMediaVideo.svelte new file mode 100644 index 0000000..f2524c6 --- /dev/null +++ b/src/components/jet/today-card/media/TodayCardMediaVideo.svelte @@ -0,0 +1,72 @@ + + + + +{#if videoToDisplay} +
    +
    +{/if} + + diff --git a/src/components/jet/today-card/media/TodayCardMediaWithArtwork.svelte b/src/components/jet/today-card/media/TodayCardMediaWithArtwork.svelte new file mode 100644 index 0000000..e604708 --- /dev/null +++ b/src/components/jet/today-card/media/TodayCardMediaWithArtwork.svelte @@ -0,0 +1,100 @@ + + + + +{#if artworkProfile} + +{:else} +
    +
    + +
    + +
    + +
    +
    +{/if} + + diff --git a/src/components/jet/today-card/overlay/TodayCardLockupListOverlay.svelte b/src/components/jet/today-card/overlay/TodayCardLockupListOverlay.svelte new file mode 100644 index 0000000..1e7d297 --- /dev/null +++ b/src/components/jet/today-card/overlay/TodayCardLockupListOverlay.svelte @@ -0,0 +1,42 @@ + + + + +
    + {#each overlay.lockups as lockup} + + + + {/each} +
    + + diff --git a/src/components/jet/web-navigation/CategoryTabItem.svelte b/src/components/jet/web-navigation/CategoryTabItem.svelte new file mode 100644 index 0000000..61f2570 --- /dev/null +++ b/src/components/jet/web-navigation/CategoryTabItem.svelte @@ -0,0 +1,67 @@ + + + + + + + +
    + + + + + diff --git a/src/components/jet/web-navigation/PlatformSelectorDropdown.svelte b/src/components/jet/web-navigation/PlatformSelectorDropdown.svelte new file mode 100644 index 0000000..f0fe666 --- /dev/null +++ b/src/components/jet/web-navigation/PlatformSelectorDropdown.svelte @@ -0,0 +1,88 @@ + + +{#if activeSelector} + +{/if} + + diff --git a/src/components/jet/web-navigation/PlatformSelectorItem.svelte b/src/components/jet/web-navigation/PlatformSelectorItem.svelte new file mode 100644 index 0000000..9b72fda --- /dev/null +++ b/src/components/jet/web-navigation/PlatformSelectorItem.svelte @@ -0,0 +1,97 @@ + + + + + {#if isSome(artwork) && isSystemImageArtwork(artwork)} +
    + +
    + {/if} + + + {action.title} + + + {#if action.destination && isSearchResultsPageIntent(action.destination)} + + + + {/if} +
    +
    + + -- cgit v1.2.3