From c9b4c7d86c95f7996f0a833481a440503b66111e Mon Sep 17 00:00:00 2001 From: MinamiFunakoshiTR Date: Tue, 18 Mar 2025 14:06:36 -0700 Subject: [PATCH 1/5] sets up headline docs --- src/components/Headline/Headline.mdx | 137 ++++++++++++++++++ .../Headline/Headline.stories.svelte | 128 +++++++--------- src/components/Headline/Headline.svelte | 21 ++- .../Headline/{stories => demo}/crown.png | Bin .../Headline/{stories => demo}/graphic-lg.png | Bin .../Headline/{stories => demo}/graphic-md.png | Bin .../Headline/{stories => demo}/graphic-sm.png | Bin .../Headline/{stories => demo}/graphic-xl.png | Bin .../Headline/{stories => demo}/graphic-xs.png | Bin .../Headline/{stories => demo}/graphic.svelte | 12 +- .../Headline/stories/docs/component.md | 13 -- .../Headline/stories/docs/customHed.md | 31 ---- .../Headline/stories/docs/withByline.md | 13 -- .../Headline/stories/docs/withCrownGraphic.md | 24 --- .../Headline/stories/docs/withCrownImage.md | 21 --- .../Headline/stories/docs/withDek.md | 11 -- 16 files changed, 204 insertions(+), 207 deletions(-) create mode 100644 src/components/Headline/Headline.mdx rename src/components/Headline/{stories => demo}/crown.png (100%) rename src/components/Headline/{stories => demo}/graphic-lg.png (100%) rename src/components/Headline/{stories => demo}/graphic-md.png (100%) rename src/components/Headline/{stories => demo}/graphic-sm.png (100%) rename src/components/Headline/{stories => demo}/graphic-xl.png (100%) rename src/components/Headline/{stories => demo}/graphic-xs.png (100%) rename src/components/Headline/{stories => demo}/graphic.svelte (98%) delete mode 100644 src/components/Headline/stories/docs/component.md delete mode 100644 src/components/Headline/stories/docs/customHed.md delete mode 100644 src/components/Headline/stories/docs/withByline.md delete mode 100644 src/components/Headline/stories/docs/withCrownGraphic.md delete mode 100644 src/components/Headline/stories/docs/withCrownImage.md delete mode 100644 src/components/Headline/stories/docs/withDek.md diff --git a/src/components/Headline/Headline.mdx b/src/components/Headline/Headline.mdx new file mode 100644 index 00000000..afbdf0b8 --- /dev/null +++ b/src/components/Headline/Headline.mdx @@ -0,0 +1,137 @@ +import { Meta, Canvas } from '@storybook/blocks'; + +import * as HeadlineStories from './Headline.stories.svelte'; + + + +# Headline + +The `Headline` component creates the Reuters Graphics headline. + +```svelte + + + +``` + + + +## Dek + +```svelte + + + +``` + +## With byline + +```svelte + + + +``` + +## With custom hed +Use the `hed` and/or `dek` named slots to override those elements with completely custom markup. + +```svelte + + + +

+ The secret to + “The Nutcracker's” + success +

+

+ How “The Nutcracker” ballet became anAmerican holday stapleand a financial pillar of ballet companies across the country +

+
+ + +``` + +## With crown image + +Add a crown image in the `crown` named slot and override the headline in the `hed` named slot. + +```svelte + + + + + Illustration of Europe + +

Europa

+
+``` + +## With crown graphic + +Add a full graphic or any other component in the crown. + +```svelte + + + + +
+ +
+
+``` diff --git a/src/components/Headline/Headline.stories.svelte b/src/components/Headline/Headline.stories.svelte index 720d119b..76ff4ec0 100644 --- a/src/components/Headline/Headline.stories.svelte +++ b/src/components/Headline/Headline.stories.svelte @@ -1,28 +1,10 @@ - - - + - + - + {#snippet hed()} -

+

The secret to “The Nutcracker's” success

- {/snippet} + {/snippet} {#snippet dek()} -

+

How “The Nutcracker” ballet became anAmerican holday stapleand a financial pillar of ballet companies across the country

- {/snippet} + {/snippet}
-
- - + + > + {#snippet crown()} - Illustration of Europe - {/snippet} - + {/snippet} + {#snippet hed()} -

Europa

- {/snippet} +

Europa

+ {/snippet}
- + {#snippet crown()} -
+
- {/snippet} + {/snippet} + + diff --git a/src/components/Headline/Headline.svelte b/src/components/Headline/Headline.svelte index ef10aa1b..3a2e39b0 100644 --- a/src/components/Headline/Headline.svelte +++ b/src/components/Headline/Headline.svelte @@ -1,4 +1,3 @@ - -
+
{#if width && width >= 0 && width < 510}
@@ -22,7 +22,7 @@
- import { Headline } from '@reuters-graphics/graphics-components'; - - - -``` diff --git a/src/components/Headline/stories/docs/customHed.md b/src/components/Headline/stories/docs/customHed.md deleted file mode 100644 index 25228bd3..00000000 --- a/src/components/Headline/stories/docs/customHed.md +++ /dev/null @@ -1,31 +0,0 @@ -Use the `hed` and/or `dek` named slots to override those elements with completely custom markup. - -```svelte - - - -

- The secret to - “The Nutcracker's” - success -

-

- How “The Nutcracker” ballet became anAmerican holday stapleand a financial pillar of ballet companies across the country -

-
- - -``` diff --git a/src/components/Headline/stories/docs/withByline.md b/src/components/Headline/stories/docs/withByline.md deleted file mode 100644 index eff73515..00000000 --- a/src/components/Headline/stories/docs/withByline.md +++ /dev/null @@ -1,13 +0,0 @@ -```svelte - - - -``` diff --git a/src/components/Headline/stories/docs/withCrownGraphic.md b/src/components/Headline/stories/docs/withCrownGraphic.md deleted file mode 100644 index 48a7099a..00000000 --- a/src/components/Headline/stories/docs/withCrownGraphic.md +++ /dev/null @@ -1,24 +0,0 @@ -Add a full graphic or any other component in the crown. - -```svelte - - - - -
- -
-
-``` diff --git a/src/components/Headline/stories/docs/withCrownImage.md b/src/components/Headline/stories/docs/withCrownImage.md deleted file mode 100644 index f705d9cb..00000000 --- a/src/components/Headline/stories/docs/withCrownImage.md +++ /dev/null @@ -1,21 +0,0 @@ -Add a crown image in the `crown` named slot and override the headline in the `hed` named slot. - -```svelte - - - - - Illustration of Europe - -

Europa

-
-``` diff --git a/src/components/Headline/stories/docs/withDek.md b/src/components/Headline/stories/docs/withDek.md deleted file mode 100644 index 63b808c7..00000000 --- a/src/components/Headline/stories/docs/withDek.md +++ /dev/null @@ -1,11 +0,0 @@ -```svelte - - - -``` From 2f7c40f6c18eb4c7f0e83256a417253a897e7980 Mon Sep 17 00:00:00 2001 From: MinamiFunakoshiTR Date: Tue, 18 Mar 2025 14:17:31 -0700 Subject: [PATCH 2/5] migrated Headline.svelte --- .../Headline/Headline.stories.svelte | 5 +- src/components/Headline/Headline.svelte | 123 +++++++++--------- 2 files changed, 65 insertions(+), 63 deletions(-) diff --git a/src/components/Headline/Headline.stories.svelte b/src/components/Headline/Headline.stories.svelte index 76ff4ec0..3610b645 100644 --- a/src/components/Headline/Headline.stories.svelte +++ b/src/components/Headline/Headline.stories.svelte @@ -54,14 +54,14 @@ - {#snippet hed()} + {#snippet customHed()}

The secret to “The Nutcracker's” success

{/snippet} - {#snippet dek()} + {#snippet customDek()}

How “The Nutcracker” ballet became anAmerican holday staple - > {#snippet crown()} diff --git a/src/components/Headline/Headline.svelte b/src/components/Headline/Headline.svelte index 3a2e39b0..7b8fbb6b 100644 --- a/src/components/Headline/Headline.svelte +++ b/src/components/Headline/Headline.svelte @@ -1,59 +1,62 @@

- {#if $$slots.crown} + {#if crown}
- - + + {@render crown()}
{/if}
@@ -90,18 +93,18 @@ {section}

{/if} - {#if $$slots.hed} - - + {#if customHed} + + {@render customHed()} {:else}

{/if} - {#if $$slots.dek} - + {#if customDek} +
- + {@render customDek()}
{:else if dek}
@@ -109,9 +112,9 @@
{/if}
- {#if $$slots.byline} + {#if byline} - + {@render byline()} {:else if authors.length > 0 || publishTime} Date: Tue, 18 Mar 2025 14:46:42 -0700 Subject: [PATCH 3/5] set up snippets in Headline.svelte, working on docs --- src/components/Headline/Headline.mdx | 5 +-- .../Headline/Headline.stories.svelte | 4 +-- src/components/Headline/Headline.svelte | 36 ++++++++----------- 3 files changed, 20 insertions(+), 25 deletions(-) diff --git a/src/components/Headline/Headline.mdx b/src/components/Headline/Headline.mdx index afbdf0b8..4e9fdf5c 100644 --- a/src/components/Headline/Headline.mdx +++ b/src/components/Headline/Headline.mdx @@ -52,8 +52,9 @@ The `Headline` component creates the Reuters Graphics headline. /> ``` -## With custom hed -Use the `hed` and/or `dek` named slots to override those elements with completely custom markup. +## With custom hed + +Use the `hed` and/or `dek` [snippets](https://svelte.dev/docs/svelte/snippet) to override those elements with completely custom markup. ```svelte ``` -## Dek - -```svelte - - - -``` - -## With byline +## With authors and publish time ```svelte -

- The secret to - “The Nutcracker's” - success -

-

- How “The Nutcracker” ballet became anAmerican holday stapleand a financial pillar of ballet companies across the country -

+ + {#snippet hed()} +

+ The secret to + “The Nutcracker's” + success +

+ {/snippet} + + + {#snippet dek()} +

+ How “The Nutcracker” ballet became anAmerican holday stapleand a financial pillar of ballet companies across the country +

+ {/snippet}
+ ``` + + ## With crown image -Add a crown image in the `crown` named slot and override the headline in the `hed` named slot. +To add a crown image, use the `crown` [snippet](https://svelte.dev/docs/svelte/snippet). ```svelte - + - Illustration of Europe - -

Europa

+ {#snippet crown()} + Illustration of Europe + {/snippet}
``` + + ## With crown graphic Add a full graphic or any other component in the crown. @@ -103,8 +127,9 @@ Add a full graphic or any other component in the crown. ```svelte -
- -
+ {#snippet crown()} + + + {/snippet}
``` + + diff --git a/src/components/Headline/Headline.stories.svelte b/src/components/Headline/Headline.stories.svelte index f2637248..0b48df75 100644 --- a/src/components/Headline/Headline.stories.svelte +++ b/src/components/Headline/Headline.stories.svelte @@ -32,25 +32,20 @@ }} /> - + - - - - { + return `mailto:${author.replace(' ', '')}@example.com`; + }} /> - + {#snippet hed()}

@@ -70,7 +65,11 @@ - + {#snippet crown()} Illustration of Europe {/snippet} - - {#snippet hed()} -

Europa

- {/snippet}
@@ -99,9 +94,7 @@ > {#snippet crown()} -
- -
+ {/snippet} diff --git a/src/components/Headline/Headline.svelte b/src/components/Headline/Headline.svelte index 02a8d7ef..07e77005 100644 --- a/src/components/Headline/Headline.svelte +++ b/src/components/Headline/Headline.svelte @@ -12,44 +12,60 @@ interface Props { /** Headline, parsed as an _inline_ markdown string in an `h1` element OR as a custom snippet. */ hed: string | Snippet; - /** Custom byline snippet */ - byline?: Snippet; + /** Add extra classes to the block tag to target it with custom CSS. */ class?: string; /** Headline size: small, normal, big, bigger, biggest */ hedSize?: HeadlineSize; /** Dek, parsed as a markdown string OR as a custom snippet. */ dek?: string | Snippet; - /** Custom crown snippet */ - crown?: Snippet; + /** Section title */ section?: string; /** Array of author names, which will be slugified to create links to Reuters author pages */ authors?: string[]; - /** - * Custom function that returns an author page URL. - */ - getAuthorPage?: (author: string) => string; + /** Publish time as a datetime string. */ publishTime?: string; /** Update time as a datetime string. */ updateTime?: string; /** Width of the headline: normal, wide, wider, widest */ width?: 'normal' | 'wide' | 'wider' | 'widest'; + /** + * Custom function that returns an author page URL. + */ + getAuthorPage?: (author: string) => string; + /** Custom crown snippet */ + crown?: Snippet; + /** + * Optional snippet for a custom byline. + */ + byline?: Snippet; + /** + * Optional snippet for a custom published dateline. + */ + published?: Snippet; + /** + * Optional snippet for a custom updated dateline. + */ + updated?: Snippet; } let { hed = 'Reuters Graphics Interactive', - byline, class: cls = '', hedSize = 'normal', dek, - crown, section, authors = [], publishTime = '', updateTime = '', width = 'normal', + getAuthorPage, + crown, + byline, + published, + updated, }: Props = $props(); // Set the headline text size class based on the `hedSize` prop @@ -116,6 +132,9 @@ {authors} {publishTime} {updateTime} + {getAuthorPage} + {published} + {updated} align="center" /> {:else if byline}