summaryrefslogtreecommitdiff
path: root/src/components/jet/item/LargeStoryCardItem.svelte
diff options
context:
space:
mode:
authorrxliuli <rxliuli@gmail.com>2025-11-04 05:03:50 +0800
committerrxliuli <rxliuli@gmail.com>2025-11-04 05:03:50 +0800
commitbce557cc2dc767628bed6aac87301a1be7c5431b (patch)
treeb51a051228d01fe3306cd7626d4a96768aadb944 /src/components/jet/item/LargeStoryCardItem.svelte
init commit
Diffstat (limited to 'src/components/jet/item/LargeStoryCardItem.svelte')
-rw-r--r--src/components/jet/item/LargeStoryCardItem.svelte38
1 files changed, 38 insertions, 0 deletions
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 @@
+<script lang="ts">
+ import type { TodayCard } from '@jet-app/app-store/api/models';
+
+ import Hero from '~/components/hero/Hero.svelte';
+ import type { NamedProfile } from '~/config/components/artwork';
+ import mediaQueries from '~/utils/media-queries';
+ import { isRtl } from '~/utils/locale';
+
+ export let item: TodayCard;
+
+ let profile: NamedProfile;
+
+ $: isXSmallViewport = $mediaQueries === 'xsmall';
+ $: artwork = item.heroMedia?.artworks[0];
+ $: video = isXSmallViewport ? null : item.heroMedia?.videos[0];
+ $: ({ backgroundColor, clickAction, heading, inlineDescription, title } =
+ item);
+ $: profile = isXSmallViewport
+ ? 'large-hero-story-card-portrait'
+ : isRtl()
+ ? 'large-hero-story-card-rtl'
+ : 'large-hero-story-card';
+</script>
+
+<Hero
+ {artwork}
+ {backgroundColor}
+ {title}
+ {video}
+ action={clickAction}
+ eyebrow={heading}
+ subtitle={inlineDescription}
+ pinArtworkToVerticalMiddle={true}
+ pinArtworkToHorizontalEnd={true}
+ pinTextToVerticalStart={isRtl()}
+ profileOverride={profile}
+ isMediaDark={item.style !== 'white'}
+/>