@reuters-graphics/graphics-components 1.0.29 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/cssVariables/cssVariables.mdx +42 -0
- package/dist/actions/resizeObserver/resizeObserver.mdx +22 -0
- package/dist/{@types/components → components}/@types/global.d.ts +2 -2
- package/dist/components/@types/global.js +0 -1
- package/dist/components/AdSlot/@types/ads.js +0 -1
- package/dist/components/AdSlot/AdScripts.svelte +12 -15
- package/dist/components/AdSlot/AdScripts.svelte.d.ts +16 -0
- package/dist/components/AdSlot/AdSlot.svelte +30 -25
- package/dist/{@types/components → components}/AdSlot/AdSlot.svelte.d.ts +4 -2
- package/dist/components/AdSlot/InlineAd.stories.svelte +21 -0
- package/dist/components/AdSlot/InlineAd.stories.svelte.d.ts +16 -0
- package/dist/components/AdSlot/InlineAd.svelte +6 -9
- package/dist/{@types/components → components}/AdSlot/InlineAd.svelte.d.ts +5 -3
- package/dist/components/AdSlot/LeaderboardAd.stories.svelte +35 -0
- package/dist/components/AdSlot/LeaderboardAd.stories.svelte.d.ts +25 -0
- package/dist/components/AdSlot/LeaderboardAd.svelte +26 -29
- package/dist/{@types/components → components}/AdSlot/LeaderboardAd.svelte.d.ts +4 -2
- package/dist/components/AdSlot/OneTrust.svelte +34 -34
- package/dist/components/AdSlot/OneTrust.svelte.d.ts +16 -0
- package/dist/components/AdSlot/ResponsiveAd.svelte +40 -43
- package/dist/{@types/components → components}/AdSlot/ResponsiveAd.svelte.d.ts +4 -2
- package/dist/components/AdSlot/SponsorshipAd.stories.svelte +26 -0
- package/dist/components/AdSlot/SponsorshipAd.stories.svelte.d.ts +25 -0
- package/dist/components/AdSlot/SponsorshipAd.svelte +8 -13
- package/dist/{@types/components → components}/AdSlot/SponsorshipAd.svelte.d.ts +4 -2
- package/dist/components/AdSlot/adScripts/bootstrap.js +12 -7
- package/dist/components/AdSlot/adScripts/getParameterByName.d.ts +2 -0
- package/dist/components/AdSlot/adScripts/getParameterByName.js +0 -1
- package/dist/components/AdSlot/adScripts/ias.js +1 -1
- package/dist/components/AdSlot/adScripts/loadScript.js +5 -2
- package/dist/components/AdSlot/stories/docs/inline.md +46 -0
- package/dist/components/AdSlot/stories/docs/leaderboard.md +21 -0
- package/dist/components/AdSlot/stories/docs/sponsorship.md +27 -0
- package/dist/components/AdSlot/utils.js +0 -1
- package/dist/components/Analytics/Analytics.stories.svelte +42 -0
- package/dist/components/Analytics/Analytics.stories.svelte.d.ts +25 -0
- package/dist/components/Analytics/Analytics.svelte +5 -8
- package/dist/{@types/components → components}/Analytics/Analytics.svelte.d.ts +4 -2
- package/dist/components/Analytics/providers/chartbeat.js +0 -1
- package/dist/components/Analytics/providers/ga.js +1 -1
- package/dist/components/Analytics/providers/index.js +0 -1
- package/dist/components/Analytics/stories/docs/component.md +11 -0
- package/dist/components/Analytics/stories/docs/environments.md +17 -0
- package/dist/components/Analytics/stories/docs/multipage.md +31 -0
- package/dist/components/Article/Article.stories.svelte +122 -0
- package/dist/components/Article/Article.stories.svelte.d.ts +16 -0
- package/dist/components/Article/Article.svelte +13 -22
- package/dist/{@types/components → components}/Article/Article.svelte.d.ts +4 -2
- package/dist/components/Article/stories/docs/component.md +13 -0
- package/dist/components/Article/stories/docs/customWellWidths.md +87 -0
- package/dist/components/BeforeAfter/BeforeAfter.stories.svelte +116 -0
- package/dist/components/BeforeAfter/BeforeAfter.stories.svelte.d.ts +25 -0
- package/dist/components/BeforeAfter/BeforeAfter.svelte +52 -108
- package/dist/{@types/components → components}/BeforeAfter/BeforeAfter.svelte.d.ts +4 -2
- package/dist/components/BeforeAfter/stories/docs/ariaDescriptions.md +35 -0
- package/dist/components/BeforeAfter/stories/docs/component.md +15 -0
- package/dist/components/BeforeAfter/stories/docs/withOverlays.md +33 -0
- package/dist/components/BeforeAfter/stories/myrne-after.jpg +0 -0
- package/dist/components/BeforeAfter/stories/myrne-before.jpg +0 -0
- package/dist/components/Block/Block.stories.svelte +173 -0
- package/dist/components/Block/Block.stories.svelte.d.ts +25 -0
- package/dist/components/Block/Block.svelte +5 -11
- package/dist/{@types/components → components}/Block/Block.svelte.d.ts +4 -2
- package/dist/components/Block/stories/docs/component.md +15 -0
- package/dist/components/Block/stories/docs/customLayouts.md +13 -0
- package/dist/components/Block/stories/docs/snapWidths.md +50 -0
- package/dist/components/BodyText/BodyText.stories.svelte +269 -0
- package/dist/components/BodyText/BodyText.stories.svelte.d.ts +25 -0
- package/dist/components/BodyText/BodyText.svelte +5 -12
- package/dist/{@types/components → components}/BodyText/BodyText.svelte.d.ts +4 -2
- package/dist/components/BodyText/stories/docs/component.md +33 -0
- package/dist/components/Byline/Byline.stories.svelte +43 -0
- package/dist/components/Byline/Byline.stories.svelte.d.ts +25 -0
- package/dist/components/Byline/Byline.svelte +19 -50
- package/dist/{@types/components → components}/Byline/Byline.svelte.d.ts +5 -3
- package/dist/components/Byline/stories/docs/component.md +19 -0
- package/dist/components/DatawrapperChart/DatawrapperChart.stories.svelte +57 -0
- package/dist/components/DatawrapperChart/DatawrapperChart.stories.svelte.d.ts +25 -0
- package/dist/components/DatawrapperChart/DatawrapperChart.svelte +28 -68
- package/dist/{@types/components → components}/DatawrapperChart/DatawrapperChart.svelte.d.ts +4 -2
- package/dist/components/DatawrapperChart/stories/docs/component.md +25 -0
- package/dist/components/DatawrapperChart/stories/docs/withChatter.md +5 -0
- package/dist/components/DocumentCloud/DocumentCloud.stories.svelte +39 -0
- package/dist/components/DocumentCloud/DocumentCloud.stories.svelte.d.ts +25 -0
- package/dist/components/DocumentCloud/DocumentCloud.svelte +5 -19
- package/dist/{@types/components → components}/DocumentCloud/DocumentCloud.svelte.d.ts +4 -2
- package/dist/components/DocumentCloud/stories/docs/component.md +17 -0
- package/dist/components/EmbedPreviewerLink/EmbedPreviewerLink.stories.svelte +27 -0
- package/dist/components/EmbedPreviewerLink/EmbedPreviewerLink.stories.svelte.d.ts +25 -0
- package/dist/components/EmbedPreviewerLink/EmbedPreviewerLink.svelte +2 -2
- package/dist/{@types/components → components}/EmbedPreviewerLink/EmbedPreviewerLink.svelte.d.ts +4 -2
- package/dist/components/EmbedPreviewerLink/stories/docs/component.md +11 -0
- package/dist/components/EndNotes/EndNotes.stories.svelte +37 -0
- package/dist/components/EndNotes/EndNotes.stories.svelte.d.ts +25 -0
- package/dist/components/EndNotes/EndNotes.svelte +3 -8
- package/dist/{@types/components → components}/EndNotes/EndNotes.svelte.d.ts +4 -2
- package/dist/{@types/components → components}/EndNotes/docProps.d.ts +4 -4
- package/dist/components/EndNotes/docProps.js +0 -1
- package/dist/components/EndNotes/stories/docs/component.md +24 -0
- package/dist/components/FeaturePhoto/FeaturePhoto.stories.svelte +75 -0
- package/dist/components/FeaturePhoto/FeaturePhoto.stories.svelte.d.ts +25 -0
- package/dist/components/FeaturePhoto/FeaturePhoto.svelte +27 -66
- package/dist/{@types/components → components}/FeaturePhoto/FeaturePhoto.svelte.d.ts +4 -2
- package/dist/components/FeaturePhoto/stories/docs/component.md +16 -0
- package/dist/components/FeaturePhoto/stories/docs/missingAltText.md +1 -0
- package/dist/components/FeaturePhoto/stories/docs/quickit.md +38 -0
- package/dist/components/FeaturePhoto/stories/shark.jpg +0 -0
- package/dist/components/Framer/Framer.stories.svelte +29 -0
- package/dist/{@types/components/Framer/Framer.svelte.d.ts → components/Framer/Framer.stories.svelte.d.ts} +6 -10
- package/dist/components/Framer/Framer.svelte +8 -15
- package/dist/components/Framer/Framer.svelte.d.ts +31 -0
- package/dist/components/Framer/Resizer/index.svelte +1 -3
- package/dist/{@types/components/SiteHeader/MobileMenu → components/Framer/Resizer}/index.svelte.d.ts +10 -8
- package/dist/{@types/components → components}/Framer/Typeahead/fuzzy.d.ts +1 -1
- package/dist/components/Framer/Typeahead/fuzzy.js +1 -1
- package/dist/components/Framer/Typeahead/index.svelte +21 -34
- package/dist/{@types/components → components}/Framer/Typeahead/index.svelte.d.ts +34 -32
- package/dist/{@types/components → components}/Framer/stores.d.ts +0 -1
- package/dist/components/Framer/stories/docs/component.md +11 -0
- package/dist/components/GraphicBlock/AriaHidden.svelte +1 -4
- package/dist/{@types/components → components}/GraphicBlock/AriaHidden.svelte.d.ts +4 -2
- package/dist/components/GraphicBlock/GraphicBlock.stories.svelte +122 -0
- package/dist/components/GraphicBlock/GraphicBlock.stories.svelte.d.ts +25 -0
- package/dist/components/GraphicBlock/GraphicBlock.svelte +13 -63
- package/dist/{@types/components → components}/GraphicBlock/GraphicBlock.svelte.d.ts +4 -2
- package/dist/components/GraphicBlock/TextBlock.svelte +3 -4
- package/dist/{@types/components → components}/GraphicBlock/TextBlock.svelte.d.ts +4 -2
- package/dist/components/GraphicBlock/stories/ai2svelte/ai-chart.svelte +632 -0
- package/dist/components/GraphicBlock/stories/ai2svelte/ai-chart.svelte.d.ts +25 -0
- package/dist/components/GraphicBlock/stories/docs/ai2svelte.md +19 -0
- package/dist/components/GraphicBlock/stories/docs/aria.md +56 -0
- package/dist/components/GraphicBlock/stories/docs/component.md +20 -0
- package/dist/components/GraphicBlock/stories/docs/customText.md +14 -0
- package/dist/components/GraphicBlock/stories/docs/quickit.md +35 -0
- package/dist/components/GraphicBlock/stories/imgs/ai-chart-md.png +0 -0
- package/dist/components/GraphicBlock/stories/imgs/ai-chart-sm.png +0 -0
- package/dist/components/GraphicBlock/stories/imgs/ai-chart-xs.png +0 -0
- package/dist/components/GraphicBlock/stories/placeholder.png +0 -0
- package/dist/components/Headline/Headline.stories.svelte +131 -0
- package/dist/components/Headline/Headline.stories.svelte.d.ts +25 -0
- package/dist/components/Headline/Headline.svelte +29 -60
- package/dist/{@types/components → components}/Headline/Headline.svelte.d.ts +6 -4
- package/dist/components/Headline/stories/crown.png +0 -0
- package/dist/components/Headline/stories/docs/component.md +13 -0
- package/dist/components/Headline/stories/docs/customHed.md +31 -0
- package/dist/components/Headline/stories/docs/withByline.md +13 -0
- package/dist/components/Headline/stories/docs/withCrownGraphic.md +24 -0
- package/dist/components/Headline/stories/docs/withCrownImage.md +21 -0
- package/dist/components/Headline/stories/docs/withDek.md +11 -0
- package/dist/components/Headline/stories/graphic-lg.png +0 -0
- package/dist/components/Headline/stories/graphic-md.png +0 -0
- package/dist/components/Headline/stories/graphic-sm.png +0 -0
- package/dist/components/Headline/stories/graphic-xl.png +0 -0
- package/dist/components/Headline/stories/graphic-xs.png +0 -0
- package/dist/components/Headline/stories/graphic.svelte +958 -0
- package/dist/components/Headline/stories/graphic.svelte.d.ts +25 -0
- package/dist/components/HeroHeadline/Hero.stories.svelte +335 -0
- package/dist/components/HeroHeadline/Hero.stories.svelte.d.ts +25 -0
- package/dist/components/HeroHeadline/Hero.svelte +37 -98
- package/dist/{@types/components → components}/HeroHeadline/Hero.svelte.d.ts +8 -6
- package/dist/components/HeroHeadline/stories/docs/backgroundGraphic.md +84 -0
- package/dist/components/HeroHeadline/stories/docs/backgroundVideo.md +51 -0
- package/dist/components/HeroHeadline/stories/docs/component.md +20 -0
- package/dist/components/HeroHeadline/stories/docs/customHed.md +43 -0
- package/dist/components/HeroHeadline/stories/docs/inlineGraphic.md +38 -0
- package/dist/components/HeroHeadline/stories/docs/inlinePhoto.md +34 -0
- package/dist/components/HeroHeadline/stories/docs/inlineVideo.md +34 -0
- package/dist/components/HeroHeadline/stories/docs/transparentHeader.md +17 -0
- package/dist/components/HeroHeadline/stories/eurovis.jpeg +0 -0
- package/dist/components/HeroHeadline/stories/graphics/CRASH_1-lg.jpeg +0 -0
- package/dist/components/HeroHeadline/stories/graphics/CRASH_1-md.jpeg +0 -0
- package/dist/components/HeroHeadline/stories/graphics/CRASH_1-sm.jpeg +0 -0
- package/dist/components/HeroHeadline/stories/graphics/CRASH_1-xl.jpeg +0 -0
- package/dist/components/HeroHeadline/stories/graphics/CRASH_1-xl_copy.jpeg +0 -0
- package/dist/components/HeroHeadline/stories/graphics/CRASH_1-xs.jpeg +0 -0
- package/dist/components/HeroHeadline/stories/graphics/crash.svelte +637 -0
- package/dist/components/HeroHeadline/stories/graphics/crash.svelte.d.ts +25 -0
- package/dist/components/HeroHeadline/stories/graphics/quake-map-top-lg.jpeg +0 -0
- package/dist/components/HeroHeadline/stories/graphics/quake-map-top-md.jpeg +0 -0
- package/dist/components/HeroHeadline/stories/graphics/quake-map-top-sm.jpeg +0 -0
- package/dist/components/HeroHeadline/stories/graphics/quake-map-top-xl.jpeg +0 -0
- package/dist/components/HeroHeadline/stories/graphics/quake-map-top-xs.jpeg +0 -0
- package/dist/components/HeroHeadline/stories/graphics/quakemap.svelte +865 -0
- package/dist/components/HeroHeadline/stories/graphics/quakemap.svelte.d.ts +25 -0
- package/dist/components/HeroHeadline/stories/polar.jpg +0 -0
- package/dist/components/InfoBox/InfoBox.stories.svelte +51 -0
- package/dist/components/InfoBox/InfoBox.stories.svelte.d.ts +25 -0
- package/dist/components/InfoBox/InfoBox.svelte +11 -34
- package/dist/{@types/components → components}/InfoBox/InfoBox.svelte.d.ts +4 -2
- package/dist/components/InfoBox/stories/docs/component.md +17 -0
- package/dist/components/Markdown/Markdown.stories.svelte +31 -0
- package/dist/components/Markdown/Markdown.stories.svelte.d.ts +25 -0
- package/dist/components/Markdown/Markdown.svelte +14 -15
- package/dist/{@types/components → components}/Markdown/Markdown.svelte.d.ts +4 -2
- package/dist/{@types/components → components}/Markdown/stores.d.ts +0 -1
- package/dist/components/Markdown/stores.js +0 -1
- package/dist/components/Markdown/stories/docs/component.md +39 -0
- package/dist/components/PaddingReset/PaddingReset.stories.svelte +45 -0
- package/dist/components/PaddingReset/PaddingReset.stories.svelte.d.ts +25 -0
- package/dist/components/PaddingReset/PaddingReset.svelte +2 -1
- package/dist/{@types/components → components}/PaddingReset/PaddingReset.svelte.d.ts +6 -4
- package/dist/components/PaddingReset/stories/docs/component.md +35 -0
- package/dist/components/PhotoCarousel/PhotoCarousel.stories.svelte +80 -0
- package/dist/components/PhotoCarousel/PhotoCarousel.stories.svelte.d.ts +25 -0
- package/dist/components/PhotoCarousel/PhotoCarousel.svelte +31 -62
- package/dist/{@types/components → components}/PhotoCarousel/PhotoCarousel.svelte.d.ts +6 -4
- package/dist/components/PhotoCarousel/stories/docs/component.md +21 -0
- package/dist/components/PhotoCarousel/stories/docs/withCustom.md +27 -0
- package/dist/components/PhotoCarousel/stories/photos.json +72 -0
- package/dist/components/PhotoPack/PhotoPack.stories.svelte +153 -0
- package/dist/components/PhotoPack/PhotoPack.stories.svelte.d.ts +25 -0
- package/dist/components/PhotoPack/PhotoPack.svelte +30 -62
- package/dist/{@types/components → components}/PhotoPack/PhotoPack.svelte.d.ts +4 -2
- package/dist/{@types/components → components}/PhotoPack/docProps.d.ts +7 -7
- package/dist/components/PhotoPack/docProps.js +7 -10
- package/dist/components/PhotoPack/stories/docs/component.md +45 -0
- package/dist/components/PhotoPack/stories/docs/missingAltText.md +1 -0
- package/dist/components/PhotoPack/stories/docs/quickit.md +67 -0
- package/dist/components/PymChild/PymChild.stories.svelte +23 -0
- package/dist/components/PymChild/PymChild.stories.svelte.d.ts +25 -0
- package/dist/components/PymChild/PymChild.svelte +6 -7
- package/dist/{@types/components → components}/PymChild/PymChild.svelte.d.ts +4 -2
- package/dist/components/PymChild/stores.d.ts +1 -0
- package/dist/components/PymChild/stories/docs/component.md +28 -0
- package/dist/components/ReferralBlock/ReferralBlock.stories.svelte +69 -0
- package/dist/components/ReferralBlock/ReferralBlock.stories.svelte.d.ts +25 -0
- package/dist/components/ReferralBlock/ReferralBlock.svelte +33 -64
- package/dist/{@types/components → components}/ReferralBlock/ReferralBlock.svelte.d.ts +4 -2
- package/dist/components/ReferralBlock/stories/docs/collection.md +7 -0
- package/dist/components/ReferralBlock/stories/docs/component.md +15 -0
- package/dist/components/ReutersGraphicsLogo/ReutersGraphicsLogo.stories.svelte +22 -0
- package/dist/components/ReutersGraphicsLogo/ReutersGraphicsLogo.stories.svelte.d.ts +25 -0
- package/dist/components/ReutersGraphicsLogo/ReutersGraphicsLogo.svelte +22 -17
- package/dist/{@types/components → components}/ReutersGraphicsLogo/ReutersGraphicsLogo.svelte.d.ts +4 -2
- package/dist/components/ReutersGraphicsLogo/stories/docs/component.md +11 -0
- package/dist/components/ReutersLogo/ReutersLogo.stories.svelte +26 -0
- package/dist/components/ReutersLogo/ReutersLogo.stories.svelte.d.ts +25 -0
- package/dist/components/ReutersLogo/ReutersLogo.svelte +5 -7
- package/dist/{@types/components → components}/ReutersLogo/ReutersLogo.svelte.d.ts +4 -2
- package/dist/components/ReutersLogo/stories/docs/component.md +9 -0
- package/dist/components/SEO/SEO.stories.svelte +45 -0
- package/dist/components/SEO/SEO.stories.svelte.d.ts +25 -0
- package/dist/components/SEO/SEO.svelte +55 -110
- package/dist/{@types/components → components}/SEO/SEO.svelte.d.ts +4 -2
- package/dist/components/SEO/stories/docs/component.md +26 -0
- package/dist/components/SEO/stories/docs/quickit.md +29 -0
- package/dist/{@types/components → components}/Scroller/Background.svelte.d.ts +4 -2
- package/dist/components/Scroller/Embedded/Background.svelte +1 -1
- package/dist/{@types/components → components}/Scroller/Embedded/Background.svelte.d.ts +4 -2
- package/dist/components/Scroller/Embedded/Foreground.svelte +2 -2
- package/dist/{@types/components → components}/Scroller/Embedded/Foreground.svelte.d.ts +4 -2
- package/dist/components/Scroller/Embedded/index.svelte +8 -16
- package/dist/{@types/components → components}/Scroller/Embedded/index.svelte.d.ts +4 -2
- package/dist/components/Scroller/Foreground.svelte +1 -1
- package/dist/{@types/components → components}/Scroller/Foreground.svelte.d.ts +4 -2
- package/dist/components/Scroller/Scroller.stories.svelte +182 -0
- package/dist/components/Scroller/Scroller.stories.svelte.d.ts +25 -0
- package/dist/components/Scroller/Scroller.svelte +22 -97
- package/dist/{@types/components → components}/Scroller/Scroller.svelte.d.ts +4 -2
- package/dist/{@types/components → components}/Scroller/docProps.d.ts +3 -3
- package/dist/components/Scroller/docProps.js +0 -1
- package/dist/components/Scroller/stories/components/ai2svelte/ai-scroller-1.svelte +138 -0
- package/dist/components/Scroller/stories/components/ai2svelte/ai-scroller-1.svelte.d.ts +25 -0
- package/dist/components/Scroller/stories/components/ai2svelte/ai-scroller-2.svelte +282 -0
- package/dist/components/Scroller/stories/components/ai2svelte/ai-scroller-2.svelte.d.ts +25 -0
- package/dist/components/Scroller/stories/components/ai2svelte/ai-scroller-3.svelte +282 -0
- package/dist/components/Scroller/stories/components/ai2svelte/ai-scroller-3.svelte.d.ts +25 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-1-lg.png +0 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-1-md.png +0 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-1-sm.png +0 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-1-xl.png +0 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-1-xs.png +0 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-2-lg.png +0 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-2-md.png +0 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-2-sm.png +0 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-2-xl.png +0 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-2-xs.png +0 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-3-lg.png +0 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-3-md.png +0 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-3-sm.png +0 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-3-xl.png +0 -0
- package/dist/components/Scroller/stories/components/ai2svelte/images/step-3-xs.png +0 -0
- package/dist/components/Scroller/stories/components/basic/InteractiveForeground.svelte +13 -0
- package/dist/components/Scroller/stories/components/basic/InteractiveForeground.svelte.d.ts +25 -0
- package/dist/components/Scroller/stories/components/basic/Step.svelte +12 -0
- package/dist/components/Scroller/stories/components/basic/Step.svelte.d.ts +25 -0
- package/dist/components/Scroller/stories/docs/ai2svelte.md +124 -0
- package/dist/components/Scroller/stories/docs/component.md +39 -0
- package/dist/components/Scroller/stories/docs/interactive.md +36 -0
- package/dist/components/Scroller/stories/docs/quickit.md +60 -0
- package/dist/{@types/components → components}/SearchInput/MagnifyingGlass.svelte.d.ts +4 -2
- package/dist/components/SearchInput/SearchInput.stories.svelte +22 -0
- package/dist/components/SearchInput/SearchInput.stories.svelte.d.ts +25 -0
- package/dist/components/SearchInput/SearchInput.svelte +12 -16
- package/dist/{@types/components → components}/SearchInput/SearchInput.svelte.d.ts +4 -2
- package/dist/{@types/components → components}/SearchInput/X.svelte.d.ts +4 -2
- package/dist/components/SearchInput/stories/docs/component.md +17 -0
- package/dist/components/SimpleTimeline/SimpleTimeline.stories.svelte +110 -0
- package/dist/components/SimpleTimeline/SimpleTimeline.stories.svelte.d.ts +25 -0
- package/dist/components/SimpleTimeline/SimpleTimeline.svelte +12 -31
- package/dist/{@types/components → components}/SimpleTimeline/SimpleTimeline.svelte.d.ts +4 -2
- package/dist/components/SimpleTimeline/stories/docs/component.md +24 -0
- package/dist/components/SiteFooter/CompanyLinks.svelte +0 -6
- package/dist/{@types/components → components}/SiteFooter/CompanyLinks.svelte.d.ts +6 -4
- package/dist/components/SiteFooter/LegalLinks.svelte +0 -6
- package/dist/{@types/components → components}/SiteFooter/LegalLinks.svelte.d.ts +6 -4
- package/dist/components/SiteFooter/QuickLinks.svelte +0 -5
- package/dist/{@types/components → components}/SiteFooter/QuickLinks.svelte.d.ts +6 -4
- package/dist/components/SiteFooter/Referrals/IntersectionObserver.svelte +1 -1
- package/dist/{@types/components → components}/SiteFooter/Referrals/IntersectionObserver.svelte.d.ts +14 -12
- package/dist/components/SiteFooter/Referrals/Link.svelte +0 -2
- package/dist/{@types/components → components}/SiteFooter/Referrals/Link.svelte.d.ts +4 -2
- package/dist/{@types/components → components}/SiteFooter/Referrals/Referrals.svelte.d.ts +6 -4
- package/dist/components/SiteFooter/Referrals/index.svelte +1 -1
- package/dist/{@types/components/SiteHeader/NavBar → components/SiteFooter/Referrals}/index.svelte.d.ts +6 -4
- package/dist/components/SiteFooter/SiteFooter.stories.svelte +80 -0
- package/dist/components/SiteFooter/SiteFooter.stories.svelte.d.ts +25 -0
- package/dist/components/SiteFooter/SiteFooter.svelte +23 -31
- package/dist/{@types/components → components}/SiteFooter/SiteFooter.svelte.d.ts +4 -2
- package/dist/components/SiteFooter/data.json +209 -209
- package/dist/components/SiteFooter/stories/docs/component.md +11 -0
- package/dist/components/SiteFooter/stories/docs/customReferrals.md +26 -0
- package/dist/components/SiteFooter/stories/docs/darkTheme.md +11 -0
- package/dist/components/SiteFooter/stories/docs/removeReferrals.md +9 -0
- package/dist/{@types/components → components}/SiteFooter/svgs/Facebook.svelte.d.ts +6 -4
- package/dist/{@types/components → components}/SiteFooter/svgs/Graphics.svelte.d.ts +4 -2
- package/dist/{@types/components → components}/SiteFooter/svgs/Instagram.svelte.d.ts +6 -4
- package/dist/{@types/components → components}/SiteFooter/svgs/LinkedIn.svelte.d.ts +6 -4
- package/dist/{@types/components → components}/SiteFooter/svgs/Pictures.svelte.d.ts +4 -2
- package/dist/{@types/components → components}/SiteFooter/svgs/Twitter.svelte.d.ts +6 -4
- package/dist/{@types/components → components}/SiteFooter/svgs/Videos.svelte.d.ts +4 -2
- package/dist/{@types/components → components}/SiteFooter/svgs/YouTube.svelte.d.ts +6 -4
- package/dist/components/SiteHeader/MobileMenu/index.svelte +0 -5
- package/dist/{@types/components/Framer/Resizer → components/SiteHeader/MobileMenu}/index.svelte.d.ts +10 -8
- package/dist/{@types/components → components}/SiteHeader/NavBar/DownArrow.svelte.d.ts +6 -4
- package/dist/components/SiteHeader/NavBar/NavDropdown/MoreDropdown.svelte +1 -4
- package/dist/{@types/components → components}/SiteHeader/NavBar/NavDropdown/MoreDropdown.svelte.d.ts +6 -4
- package/dist/components/SiteHeader/NavBar/NavDropdown/SectionDropdown.svelte +4 -8
- package/dist/{@types/components → components}/SiteHeader/NavBar/NavDropdown/SectionDropdown.svelte.d.ts +6 -4
- package/dist/components/SiteHeader/NavBar/NavDropdown/Spinner/index.svelte +0 -1
- package/dist/{@types/components → components}/SiteHeader/NavBar/NavDropdown/Spinner/index.svelte.d.ts +4 -2
- package/dist/components/SiteHeader/NavBar/NavDropdown/StoryCard/index.svelte +1 -2
- package/dist/{@types/components → components}/SiteHeader/NavBar/NavDropdown/StoryCard/index.svelte.d.ts +6 -4
- package/dist/components/SiteHeader/NavBar/NavDropdown/index.svelte +1 -9
- package/dist/{@types/components → components}/SiteHeader/NavBar/NavDropdown/index.svelte.d.ts +6 -4
- package/dist/components/SiteHeader/NavBar/index.svelte +2 -8
- package/dist/{@types/components/SiteFooter/Referrals → components/SiteHeader/NavBar}/index.svelte.d.ts +6 -4
- package/dist/components/SiteHeader/SiteHeader.stories.svelte +47 -0
- package/dist/components/SiteHeader/SiteHeader.stories.svelte.d.ts +25 -0
- package/dist/components/SiteHeader/SiteHeader.svelte +26 -35
- package/dist/{@types/components → components}/SiteHeader/SiteHeader.svelte.d.ts +4 -2
- package/dist/components/SiteHeader/data.json +347 -1
- package/dist/components/SiteHeader/scss/_breakpoints.scss +31 -11
- package/dist/components/SiteHeader/scss/_colors.scss +3 -3
- package/dist/components/SiteHeader/scss/_grids.scss +12 -12
- package/dist/components/SiteHeader/scss/_z-indexes.scss +9 -9
- package/dist/components/SiteHeader/stories/docs/component.md +11 -0
- package/dist/components/SiteHeader/stories/docs/darkTheme.md +11 -0
- package/dist/components/SiteHeader/svgs/Close.svelte +2 -1
- package/dist/{@types/components → components}/SiteHeader/svgs/Close.svelte.d.ts +4 -2
- package/dist/{@types/components → components}/SiteHeader/svgs/Menu.svelte.d.ts +6 -4
- package/dist/components/SiteHeadline/SiteHeadline.stories.svelte +67 -0
- package/dist/components/SiteHeadline/SiteHeadline.stories.svelte.d.ts +38 -0
- package/dist/components/SiteHeadline/SiteHeadline.svelte +22 -63
- package/dist/{@types/components → components}/SiteHeadline/SiteHeadline.svelte.d.ts +4 -2
- package/dist/components/SiteHeadline/stories/docs/component.md +21 -0
- package/dist/components/SiteHeadline/stories/docs/quickit.md +30 -0
- package/dist/components/Spinner/Spinner.stories.svelte +31 -0
- package/dist/components/Spinner/Spinner.stories.svelte.d.ts +25 -0
- package/dist/components/Spinner/Spinner.svelte +1 -14
- package/dist/{@types/components → components}/Spinner/Spinner.svelte.d.ts +4 -2
- package/dist/components/Spinner/stories/docs/component.md +15 -0
- package/dist/components/Table/LeftArrow.svelte +2 -1
- package/dist/{@types/components → components}/Table/LeftArrow.svelte.d.ts +4 -2
- package/dist/components/Table/Pagination.svelte +10 -28
- package/dist/{@types/components → components}/Table/Pagination.svelte.d.ts +4 -2
- package/dist/components/Table/RightArrow.svelte +2 -1
- package/dist/{@types/components → components}/Table/RightArrow.svelte.d.ts +4 -2
- package/dist/components/Table/Select.svelte +4 -12
- package/dist/{@types/components → components}/Table/Select.svelte.d.ts +4 -2
- package/dist/components/Table/SortArrow.svelte +1 -5
- package/dist/{@types/components → components}/Table/SortArrow.svelte.d.ts +4 -2
- package/dist/components/Table/Table.stories.svelte +169 -0
- package/dist/components/Table/Table.stories.svelte.d.ts +25 -0
- package/dist/components/Table/Table.svelte +58 -152
- package/dist/{@types/components → components}/Table/Table.svelte.d.ts +4 -2
- package/dist/components/Table/stories/docs/both.md +13 -0
- package/dist/components/Table/stories/docs/component.md +14 -0
- package/dist/components/Table/stories/docs/filter.md +11 -0
- package/dist/components/Table/stories/docs/format.md +21 -0
- package/dist/components/Table/stories/docs/metadata.md +14 -0
- package/dist/components/Table/stories/docs/paginate.md +14 -0
- package/dist/components/Table/stories/docs/search.md +11 -0
- package/dist/components/Table/stories/docs/sort.md +14 -0
- package/dist/components/Table/stories/docs/style.md +23 -0
- package/dist/components/Table/stories/docs/truncate.md +11 -0
- package/dist/components/Table/stories/homeRuns.json +42 -0
- package/dist/components/Table/stories/pressFreedom.json +887 -0
- package/dist/components/Table/stories/richestWomen.json +42 -0
- package/dist/{@types/components → components}/Table/utils.d.ts +0 -2
- package/dist/components/Table/utils.js +2 -2
- package/dist/{@types/components → components}/Theme/@types/component.d.ts +8 -8
- package/dist/components/Theme/@types/component.js +0 -3
- package/dist/components/Theme/Theme.stories.svelte +145 -0
- package/dist/components/Theme/Theme.stories.svelte.d.ts +16 -0
- package/dist/components/Theme/Theme.svelte +7 -22
- package/dist/{@types/components → components}/Theme/Theme.svelte.d.ts +4 -2
- package/dist/components/Theme/stories/ThemedPage.svelte +43 -0
- package/dist/components/Theme/stories/ThemedPage.svelte.d.ts +25 -0
- package/dist/components/Theme/stories/docs/component.md +15 -0
- package/dist/components/Theme/stories/docs/customise-font.md +52 -0
- package/dist/components/Theme/stories/docs/customise.md +28 -0
- package/dist/components/Theme/stories/docs/gfonts.png +0 -0
- package/dist/components/Theme/stories/docs/inheritance.md +17 -0
- package/dist/components/Theme/stories/docs/pattern.md +40 -0
- package/dist/components/Theme/themes/common.d.ts +2 -0
- package/dist/components/Theme/themes/dark.d.ts +2 -0
- package/dist/components/Theme/themes/light.d.ts +2 -0
- package/dist/components/Theme/utils/flatten.js +2 -3
- package/dist/components/ToolsHeader/ToolsHeader.stories.svelte +31 -0
- package/dist/components/ToolsHeader/ToolsHeader.stories.svelte.d.ts +25 -0
- package/dist/components/ToolsHeader/ToolsHeader.svelte +10 -27
- package/dist/{@types/components → components}/ToolsHeader/ToolsHeader.svelte.d.ts +4 -2
- package/dist/components/ToolsHeader/stories/docs/component.md +13 -0
- package/dist/components/Video/Controls.svelte +12 -10
- package/dist/{@types/components → components}/Video/Controls.svelte.d.ts +4 -2
- package/dist/components/Video/Video.stories.svelte +95 -0
- package/dist/components/Video/Video.stories.svelte.d.ts +25 -0
- package/dist/components/Video/Video.svelte +81 -143
- package/dist/{@types/components → components}/Video/Video.svelte.d.ts +4 -2
- package/dist/components/Video/docs.svx +275 -0
- package/dist/components/Video/stories/docs/component.md +15 -0
- package/dist/components/Video/stories/docs/controls.md +38 -0
- package/dist/components/Video/stories/docs/playAndLoop.md +28 -0
- package/dist/components/Video/stories/docs/withSound.md +36 -0
- package/dist/components/Video/stories/videos/silent-video.mp4 +0 -0
- package/dist/components/Video/stories/videos/sound-video.mp4 +0 -0
- package/dist/components/Visible/Visible.stories.svelte +30 -0
- package/dist/components/Visible/Visible.stories.svelte.d.ts +25 -0
- package/dist/components/Visible/Visible.svelte +25 -36
- package/dist/{@types/components → components}/Visible/Visible.svelte.d.ts +4 -2
- package/dist/components/Visible/stories/docs/component.md +19 -0
- package/dist/components/Visible/stories/snippets/default.svelte +11 -0
- package/dist/components/Visible/stories/snippets/default.svelte.d.ts +25 -0
- package/dist/docs/actions/intro.mdx +16 -0
- package/dist/docs/contributing/component-guidelines.mdx +170 -0
- package/dist/docs/contributing/quickstart.mdx +48 -0
- package/dist/docs/contributing/story-recipes/basic-story.mdx +79 -0
- package/dist/docs/contributing/story-recipes/source-code.png +0 -0
- package/dist/docs/contributing/story-recipes/story-with-custom-controls.mdx +48 -0
- package/dist/docs/contributing/story-recipes/story-with-custom-docs.mdx +132 -0
- package/dist/docs/contributing/story-recipes/story-with-media.mdx +52 -0
- package/dist/docs/contributing/writing-component-stories.mdx +34 -0
- package/dist/docs/contributing/writing-docs-stories.mdx +39 -0
- package/dist/docs/docStyles.scss +11 -0
- package/dist/docs/docs-components/CopyColourTable/ImportSnippet.d.ts +6 -0
- package/dist/docs/docs-components/CopyColourTable/ImportSnippet.jsx +54 -0
- package/dist/docs/docs-components/CopyColourTable/Table.d.ts +10 -0
- package/dist/docs/docs-components/CopyColourTable/Table.jsx +106 -0
- package/dist/docs/docs-components/CopyColourTable/styles.module.scss +180 -0
- package/dist/docs/docs-components/CopyTable/Table.d.ts +10 -0
- package/dist/docs/docs-components/CopyTable/Table.jsx +99 -0
- package/dist/docs/docs-components/CopyTable/styles.module.scss +129 -0
- package/dist/docs/docs-components/MdxTheme/Theme.d.ts +3 -0
- package/dist/docs/docs-components/MdxTheme/Theme.jsx +29 -0
- package/dist/docs/docs-components/Mermaid/Mermaid.d.ts +2 -0
- package/dist/docs/docs-components/Mermaid/Mermaid.jsx +32 -0
- package/dist/docs/docs-components/ThemeBuilder/CSSVariables/VariableTable.d.ts +3 -0
- package/dist/docs/docs-components/ThemeBuilder/CSSVariables/VariableTable.jsx +21 -0
- package/dist/docs/docs-components/ThemeBuilder/Customiser/ColourPicker.d.ts +6 -0
- package/dist/docs/docs-components/ThemeBuilder/Customiser/ColourPicker.jsx +25 -0
- package/dist/docs/docs-components/ThemeBuilder/Customiser/Customiser.d.ts +7 -0
- package/dist/docs/docs-components/ThemeBuilder/Customiser/Customiser.jsx +27 -0
- package/dist/docs/docs-components/ThemeBuilder/Customiser/Key.d.ts +10 -0
- package/dist/docs/docs-components/ThemeBuilder/Customiser/Key.jsx +40 -0
- package/dist/docs/docs-components/ThemeBuilder/Customiser/Value.d.ts +10 -0
- package/dist/docs/docs-components/ThemeBuilder/Customiser/Value.jsx +60 -0
- package/dist/docs/docs-components/ThemeBuilder/Customiser/styles.module.scss +93 -0
- package/dist/docs/docs-components/ThemeBuilder/NewTheme/NewTheme.d.ts +6 -0
- package/dist/docs/docs-components/ThemeBuilder/NewTheme/NewTheme.jsx +55 -0
- package/dist/docs/docs-components/ThemeBuilder/NewTheme/styles.module.scss +9 -0
- package/dist/docs/docs-components/ThemeBuilder/ThemeBuilder.d.ts +3 -0
- package/dist/docs/docs-components/ThemeBuilder/ThemeBuilder.jsx +42 -0
- package/dist/docs/docs-components/ThemeBuilder/ThemeSwitch/Switch.d.ts +6 -0
- package/dist/docs/docs-components/ThemeBuilder/ThemeSwitch/Switch.jsx +28 -0
- package/dist/docs/docs-components/ThemeBuilder/ThemeSwitch/styles.module.scss +40 -0
- package/dist/docs/docs-components/ThemeBuilder/styles.module.scss +20 -0
- package/dist/docs/guides/customising-with-scss.mdx +94 -0
- package/dist/docs/guides/getting-help.mdx +30 -0
- package/dist/docs/guides/google-docs.mdx +74 -0
- package/dist/docs/guides/graphics-kit.mdx +56 -0
- package/dist/docs/guides/imgs/argstable.png +0 -0
- package/dist/docs/guides/imgs/copy-code.png +0 -0
- package/dist/docs/guides/imgs/frame.png +0 -0
- package/dist/docs/guides/imgs/intro.png +0 -0
- package/dist/docs/guides/imgs/more-stories.png +0 -0
- package/dist/docs/guides/imgs/prop.png +0 -0
- package/dist/docs/guides/imgs/quickit.png +0 -0
- package/dist/docs/guides/imgs/scss-change.png +0 -0
- package/dist/docs/guides/imgs/scss-highlight.png +0 -0
- package/dist/docs/guides/imgs/scss-inspector.png +0 -0
- package/dist/docs/guides/imgs/scss-start.png +0 -0
- package/dist/docs/guides/imgs/scss-test.png +0 -0
- package/dist/docs/guides/imgs/scss-winning.png +0 -0
- package/dist/docs/guides/imgs/slots.png +0 -0
- package/dist/docs/guides/imgs/stories.png +0 -0
- package/dist/docs/guides/using-docs.mdx +58 -0
- package/dist/docs/intro.mdx +38 -0
- package/dist/docs/layout/article-well.jpg +0 -0
- package/dist/docs/layout/intro.mdx +29 -0
- package/dist/docs/styles/colours/intro.mdx +24 -0
- package/dist/docs/styles/colours/primary.mdx +165 -0
- package/dist/docs/styles/colours/thematic.mdx +26 -0
- package/dist/docs/styles/intro.mdx +23 -0
- package/dist/docs/styles/tokens/accessibility/main.mdx +19 -0
- package/dist/docs/styles/tokens/backgrounds/main.mdx +20 -0
- package/dist/docs/styles/tokens/borders/main.mdx +46 -0
- package/dist/docs/styles/tokens/flexbox/main.mdx +113 -0
- package/dist/docs/styles/tokens/interactivity/_main.mdx +29 -0
- package/dist/docs/styles/tokens/intro.mdx +128 -0
- package/dist/docs/styles/tokens/layout/main.mdx +73 -0
- package/dist/docs/styles/tokens/sizing/main.mdx +64 -0
- package/dist/docs/styles/tokens/spacers/main.mdx +58 -0
- package/dist/docs/styles/tokens/styles.scss +9 -0
- package/dist/docs/styles/tokens/typography/main.mdx +147 -0
- package/dist/docs/styles/tokens/typography/styles.scss +9 -0
- package/dist/docs/styles/tokens/variables/main.mdx +29 -0
- package/dist/docs/theme-builder/theme-builder.mdx +14 -0
- package/dist/docs/theming/css-variables.mdx +107 -0
- package/dist/docs/utils/docsPage.d.ts +25 -0
- package/dist/docs/utils/docsPage.js +13 -0
- package/dist/docs/utils/parseCss.d.ts +3 -0
- package/dist/docs/utils/parseCss.js +48 -0
- package/dist/docs/utils/withParams.d.ts +15 -0
- package/dist/docs/utils/withParams.js +46 -0
- package/dist/globals.d.ts +6 -6
- package/dist/index.js +2 -6
- package/dist/scss/fonts/_font-faces.scss +46 -23
- package/dist/scss/reset/_normalize.scss +1 -0
- package/package.json +66 -310
- package/dist/@types/components/AdSlot/AdScripts.svelte.d.ts +0 -23
- package/dist/@types/components/AdSlot/OneTrust.svelte.d.ts +0 -23
- package/dist/@types/components/AdSlot/adScripts/getParameterByName.d.ts +0 -2
- package/dist/@types/components/PymChild/stores.d.ts +0 -2
- package/dist/@types/components/Theme/themes/common.d.ts +0 -2
- package/dist/@types/components/Theme/themes/dark.d.ts +0 -2
- package/dist/@types/components/Theme/themes/light.d.ts +0 -2
- /package/dist/{@types/actions → actions}/cssVariables/index.d.ts +0 -0
- /package/dist/{@types/actions → actions}/resizeObserver/index.d.ts +0 -0
- /package/dist/{@types/components → components}/AdSlot/@types/ads.d.ts +0 -0
- /package/dist/{@types/components → components}/AdSlot/adScripts/bootstrap.d.ts +0 -0
- /package/dist/{@types/components → components}/AdSlot/adScripts/ias.d.ts +0 -0
- /package/dist/{@types/components → components}/AdSlot/adScripts/loadScript.d.ts +0 -0
- /package/dist/{@types/components → components}/AdSlot/utils.d.ts +0 -0
- /package/dist/{@types/components → components}/Analytics/providers/chartbeat.d.ts +0 -0
- /package/dist/{@types/components → components}/Analytics/providers/ga.d.ts +0 -0
- /package/dist/{@types/components → components}/Analytics/providers/index.d.ts +0 -0
- /package/dist/{@types/components → components}/Framer/uniqNames.d.ts +0 -0
- /package/dist/{@types/components → components}/SiteHeader/NavBar/NavDropdown/StoryCard/time.d.ts +0 -0
- /package/dist/{@types/components → components}/SiteHeader/NavBar/utils/index.d.ts +0 -0
- /package/dist/{@types/components → components}/Theme/utils/flatten.d.ts +0 -0
- /package/dist/{@types/components → components}/Theme/utils/merge.d.ts +0 -0
- /package/dist/{@types/index.d.ts → index.d.ts} +0 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
import { parameters } from '../utils/docsPage.js';
|
|
3
|
+
|
|
4
|
+
<Meta
|
|
5
|
+
title="Contributing/Component guidelines"
|
|
6
|
+
parameters={{ ...parameters }}
|
|
7
|
+
/>
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
# Component guidelines
|
|
12
|
+
|
|
13
|
+
## Dependencies
|
|
14
|
+
|
|
15
|
+
Components should be written for any Svelte context. If your component needs, for example, values from SvelteKit stores, these should be passed in as props.
|
|
16
|
+
|
|
17
|
+
## Typescript
|
|
18
|
+
|
|
19
|
+
By default, component's are written in TypeScript, which adds robust type-checking and helpful hints for people using your component in editors like Visual Studio Code.
|
|
20
|
+
|
|
21
|
+
> If you've never used TypeScript, you can check out the [5-minute intro](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html). If you're still uneasy writing TypeScript, don't sweat it! Just write your component in plain JavaScript/Svelte. We'll convert at least your component's props to TypeScript as part of the PR review.
|
|
22
|
+
|
|
23
|
+
### Typing and documenting component props
|
|
24
|
+
|
|
25
|
+
Document props using [JSDoc comments](https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html) (be sure to mark required props) and type props with TypeScript.
|
|
26
|
+
|
|
27
|
+
Here are a few examples:
|
|
28
|
+
|
|
29
|
+
#### Typing simple props
|
|
30
|
+
|
|
31
|
+
```svelte
|
|
32
|
+
<script lang="ts">
|
|
33
|
+
/** Height of the component */
|
|
34
|
+
export let height: number = 250;
|
|
35
|
+
/** Text colour */
|
|
36
|
+
export let colour: string = 'blue';
|
|
37
|
+
</script>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
#### Documenting required props
|
|
41
|
+
|
|
42
|
+
```svelte
|
|
43
|
+
<script lang="ts">
|
|
44
|
+
/**
|
|
45
|
+
* Image source
|
|
46
|
+
* @required
|
|
47
|
+
*/
|
|
48
|
+
export let src: string;
|
|
49
|
+
/**
|
|
50
|
+
* AltText for the image
|
|
51
|
+
* @required
|
|
52
|
+
*/
|
|
53
|
+
export let altText: string;
|
|
54
|
+
</script>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
#### Custom types for props
|
|
58
|
+
|
|
59
|
+
```svelte
|
|
60
|
+
<script lang="ts">
|
|
61
|
+
type ContainerWidth = 'normal' | 'wide' | 'wider' | 'widest' | 'fluid';
|
|
62
|
+
|
|
63
|
+
/** Width of the component within the text well. */
|
|
64
|
+
export let width: ContainerWidth = 'normal';
|
|
65
|
+
|
|
66
|
+
interface Person {
|
|
67
|
+
name: string;
|
|
68
|
+
age: number;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Array of people
|
|
73
|
+
* @required
|
|
74
|
+
*/
|
|
75
|
+
export let people: Person[];
|
|
76
|
+
</script>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
#### Future syntax
|
|
80
|
+
|
|
81
|
+
Using some future syntax like [optional chaining](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining) in your components currently breaks the automatic discovery of JSDoc comments in your component, which are used to fill in the [ArgsTable](https://storybook.js.org/docs/react/writing-docs/doc-block-argstable).
|
|
82
|
+
|
|
83
|
+
So instead of...
|
|
84
|
+
|
|
85
|
+
```javascript
|
|
86
|
+
const prop = myObject?.myOptionalProp;
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
...unfortunately, use something old-fashioned like...
|
|
90
|
+
|
|
91
|
+
```javascript
|
|
92
|
+
const prop = myObject.myOptionalProp ? myObject.myOptionalProp : null;
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
If your component docs still aren't working, check if you're using other future-JS sytax, for now.
|
|
96
|
+
|
|
97
|
+
## Styles
|
|
98
|
+
|
|
99
|
+
### Theming
|
|
100
|
+
|
|
101
|
+
Always respect styles set by the [`Theme`](/?path=/docs/theming-theme--default) component by using [CSS variables](?path=/docs/scss-css-variables--page) where they apply to your component.
|
|
102
|
+
|
|
103
|
+
Always set [fallback values](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties#custom_property_fallback_values) for the default light theme.
|
|
104
|
+
|
|
105
|
+
### SCSS
|
|
106
|
+
|
|
107
|
+
Use SCSS with the `lang` attribute to write your styles.
|
|
108
|
+
|
|
109
|
+
```svelte
|
|
110
|
+
<button>My component</button>
|
|
111
|
+
|
|
112
|
+
<style lang="scss">
|
|
113
|
+
button {
|
|
114
|
+
color: blue;
|
|
115
|
+
}
|
|
116
|
+
</style>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Scope
|
|
120
|
+
|
|
121
|
+
Styles should **always** be scoped to your components.
|
|
122
|
+
|
|
123
|
+
```svelte
|
|
124
|
+
<button>My component</button>
|
|
125
|
+
|
|
126
|
+
<style lang="scss">
|
|
127
|
+
button {
|
|
128
|
+
color: blue;
|
|
129
|
+
}
|
|
130
|
+
</style>
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
In rare cases, you can use the SCSS `:global` operator to style child elements in your component, but those rules should still be scoped below a parent element.
|
|
134
|
+
|
|
135
|
+
```svelte
|
|
136
|
+
<svg></svg>
|
|
137
|
+
|
|
138
|
+
<style lang="scss">
|
|
139
|
+
svg {
|
|
140
|
+
:global(path) {
|
|
141
|
+
stroke: black;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
</style>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### CSS variables
|
|
148
|
+
|
|
149
|
+
Use [CSS variables](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties) and props to allow better theming of your components.
|
|
150
|
+
|
|
151
|
+
```svelte
|
|
152
|
+
<script>
|
|
153
|
+
export let textColour = '#333';
|
|
154
|
+
</script>
|
|
155
|
+
|
|
156
|
+
<div style="--textColour: {textColour};">
|
|
157
|
+
<h3>My title</h3>
|
|
158
|
+
<p>My text.</p>
|
|
159
|
+
<p></p>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
<style lang="scss">
|
|
163
|
+
div {
|
|
164
|
+
h3,
|
|
165
|
+
p {
|
|
166
|
+
color: var(--textColour, #333);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
</style>
|
|
170
|
+
```
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
import { parameters } from '../utils/docsPage.js';
|
|
3
|
+
|
|
4
|
+
<Meta title="Contributing/Quickstart" parameters={{ ...parameters }} />
|
|
5
|
+
|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
# Contributing
|
|
9
|
+
|
|
10
|
+
Reuters Graphics team members can contribute new components, and we welcome pull requests for any of our existing components from the community.
|
|
11
|
+
|
|
12
|
+
Components are documented (and tested) using [Storybook](https://storybook.js.org).
|
|
13
|
+
|
|
14
|
+
## Adding a new chart component
|
|
15
|
+
|
|
16
|
+
### Prereqs
|
|
17
|
+
|
|
18
|
+
Before you start, it's probably a good idea to read up a bit on [Storybook](https://storybook.js.org/docs/svelte/get-started/introduction), the framework used to document components.
|
|
19
|
+
|
|
20
|
+
### Quickstart
|
|
21
|
+
|
|
22
|
+
Make a new git branch for your new component, like...
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
git checkout -b my-component
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
This library includes a basic template for creating and documenting your component with Storybook you can use to get started.
|
|
29
|
+
|
|
30
|
+
Just run...
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
yarn new
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
... which will create a new directory for your component and copy over an example Svelte component and story page.
|
|
37
|
+
|
|
38
|
+
To start developing your component, start the dev server with...
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
yarn start
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
When you're ready to share your chart, commit your branch to GitHub, make a PR and we'll get it published!
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
git push origin my-chart
|
|
48
|
+
```
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
import { parameters } from '../../utils/docsPage.js';
|
|
3
|
+
|
|
4
|
+
<Meta
|
|
5
|
+
title="Contributing/Recipes: Basic story"
|
|
6
|
+
parameters={{ ...parameters }}
|
|
7
|
+
/>
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
# Recipes: Basic story
|
|
12
|
+
|
|
13
|
+
To make a basic story, you'll need to setup a few things from storybook's Svelte [Component Story Framework (CSF)](https://storybook.js.org/docs/svelte/api/csf) library.
|
|
14
|
+
|
|
15
|
+
Once you've setup the `Meta` and `Template` components as below, you can write a `Story` component with an `args` prop. In that `args` prop you can pass values that will be used to fill in your component's props.
|
|
16
|
+
|
|
17
|
+
```svelte
|
|
18
|
+
<!-- YourComponent.stories.svelte -->
|
|
19
|
+
<script>
|
|
20
|
+
import { Meta, Template, Story } from '@storybook/addon-svelte-csf';
|
|
21
|
+
|
|
22
|
+
import YourComponent from './YourComponent.svelte';
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<Meta title="Components/YourComponent" component="{YourComponent}" />
|
|
26
|
+
|
|
27
|
+
<Template let:args>
|
|
28
|
+
<YourComponent {...args} />
|
|
29
|
+
</Template>
|
|
30
|
+
|
|
31
|
+
<Story
|
|
32
|
+
name="Default"
|
|
33
|
+
args="{{
|
|
34
|
+
width: 'normal',
|
|
35
|
+
}}"
|
|
36
|
+
/>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
For example, the `width` property in the `Story` args above would be passed to your component as though you'd written it like this:
|
|
40
|
+
|
|
41
|
+
```svelte
|
|
42
|
+
<YourComponent width="normal" />
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
You can define additional stories with _different_ args to show how your component will render with different props like:
|
|
46
|
+
|
|
47
|
+
```svelte
|
|
48
|
+
<!-- ... -->
|
|
49
|
+
|
|
50
|
+
<Story
|
|
51
|
+
name="Default"
|
|
52
|
+
args="{{
|
|
53
|
+
width: 'normal',
|
|
54
|
+
}}"
|
|
55
|
+
/>
|
|
56
|
+
|
|
57
|
+
<Story
|
|
58
|
+
name="Extra wide"
|
|
59
|
+
args="{{
|
|
60
|
+
width: 'wider',
|
|
61
|
+
}}"
|
|
62
|
+
/>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
If you want even more control, you can skip the `args` and pass your component directly into the `Story` with whatever props you need:
|
|
66
|
+
|
|
67
|
+
```svelte
|
|
68
|
+
<Story name="Super custom">
|
|
69
|
+
<YourComponent
|
|
70
|
+
width="fluid"
|
|
71
|
+
data="{[
|
|
72
|
+
{ id: 'UK', value: 65 },
|
|
73
|
+
{ id: 'USA', value: 265 },
|
|
74
|
+
]}"
|
|
75
|
+
/>
|
|
76
|
+
</Story>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
> **Pro tip:** If you pass your component in directly, your users won't be able to control its props using Storybook's built-in [controls panel](https://storybook.js.org/docs/svelte/essentials/controls), so it's always best to start with a default example using `args`.
|
|
Binary file
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
import { parameters } from '../../utils/docsPage.js';
|
|
3
|
+
|
|
4
|
+
<Meta
|
|
5
|
+
title="Contributing/Recipes: Story with custom controls"
|
|
6
|
+
parameters={{ ...parameters }}
|
|
7
|
+
/>
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
# Recipes: Story with custom controls
|
|
12
|
+
|
|
13
|
+
You can customise the controls in Storybook's built-in [controls panel](https://storybook.js.org/docs/svelte/essentials/controls) by passing [argTypes](https://storybook.js.org/docs/svelte/api/argtypes) to `Meta` like this:
|
|
14
|
+
|
|
15
|
+
```svelte
|
|
16
|
+
<!-- YourComponent.stories.svelte -->
|
|
17
|
+
<script>
|
|
18
|
+
import { Meta, Template, Story } from '@storybook/addon-svelte-csf';
|
|
19
|
+
|
|
20
|
+
import YourComponent from './YourComponent.svelte';
|
|
21
|
+
|
|
22
|
+
const meta = {
|
|
23
|
+
argTypes: {
|
|
24
|
+
// A colour picker for the component's "colour" prop
|
|
25
|
+
colour: { control: 'color' },
|
|
26
|
+
// A range picker for the "height" prop
|
|
27
|
+
height: { control: { type: 'range', min: 5, max: 100, step: 5 } },
|
|
28
|
+
// A custom dropdown for the "width" prop
|
|
29
|
+
width: {
|
|
30
|
+
control: 'select',
|
|
31
|
+
options: ['normal', 'wide', 'wider', 'widest', 'fluid'],
|
|
32
|
+
},
|
|
33
|
+
// Turn off control for the "data" prop
|
|
34
|
+
data: { control: false },
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<Meta title="Components/YourComponent" component="{YourComponent}" {...meta} />
|
|
40
|
+
|
|
41
|
+
<template let:args>
|
|
42
|
+
<YourComponent {...args} />
|
|
43
|
+
</template>
|
|
44
|
+
|
|
45
|
+
<Story name="Default" />
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Read more about Storybook's custom controls options [here](https://storybook.js.org/docs/svelte/essentials/controls).
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
import { parameters } from '../../utils/docsPage.js';
|
|
3
|
+
|
|
4
|
+
import SourceCodeImg from './source-code.png';
|
|
5
|
+
|
|
6
|
+
import '../../docStyles.scss';
|
|
7
|
+
|
|
8
|
+
<Meta
|
|
9
|
+
title="Contributing/Recipes: Story with custom docs"
|
|
10
|
+
parameters={{ ...parameters }}
|
|
11
|
+
/>
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+
|
|
15
|
+
# Recipes: Story with custom docs
|
|
16
|
+
|
|
17
|
+
You can add custom markdown to your story page by importing and using markdown files.
|
|
18
|
+
|
|
19
|
+
First, create a markdown file in a `stories` directory in your component folder like this:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
YourComponent/
|
|
23
|
+
YourComponent.svelte
|
|
24
|
+
YourComponent.stories.svelte
|
|
25
|
+
stories/
|
|
26
|
+
docs/
|
|
27
|
+
component.md
|
|
28
|
+
someStory.md
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Now, import your markdown file in your story page component and attach it to either the `Meta` (for the top docs that introduce your component) or any individual `Story` using one of our handy docs utils.
|
|
32
|
+
|
|
33
|
+
```svelte
|
|
34
|
+
<!-- YourComponent.stories.svelte -->
|
|
35
|
+
<script>
|
|
36
|
+
import { Meta, Template, Story } from '@storybook/addon-svelte-csf';
|
|
37
|
+
|
|
38
|
+
import YourComponent from './YourComponent.svelte';
|
|
39
|
+
|
|
40
|
+
// Import markdown files.
|
|
41
|
+
// Note: the "?raw" in the imports below is important!!
|
|
42
|
+
import componentDocs from './stories/docs/component.md?raw';
|
|
43
|
+
import someStoryDocs from './stories/docs/someStory.md?raw';
|
|
44
|
+
|
|
45
|
+
import { withComponentDocs, withStoryDocs } from '$docs/utils/withParams';
|
|
46
|
+
|
|
47
|
+
const meta = {
|
|
48
|
+
...withComponentDocs(componentDocs),
|
|
49
|
+
};
|
|
50
|
+
</script>
|
|
51
|
+
|
|
52
|
+
<Meta title="Components/YourComponent" component="{YourComponent}" {...meta} />
|
|
53
|
+
|
|
54
|
+
<template let:args>
|
|
55
|
+
<YourComponent {...args} />
|
|
56
|
+
</template>
|
|
57
|
+
|
|
58
|
+
<!-- The first story will use the component docs in Meta... -->
|
|
59
|
+
<Story name="Basic" args="{{ width: 'normal' }}" />
|
|
60
|
+
|
|
61
|
+
<!-- Additional stories can use other docs now. -->
|
|
62
|
+
<Story
|
|
63
|
+
name="Another story"
|
|
64
|
+
args="{{ width: 'normal' }}"
|
|
65
|
+
{...withStoryDocs(someStoryDocs)}
|
|
66
|
+
/>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Customising copyable source code
|
|
70
|
+
|
|
71
|
+
If you need to, you can customise the "Copy" source code available below a component story's iframe window.
|
|
72
|
+
|
|
73
|
+
<img className="feature" src={SourceCodeImg} width="80%" />
|
|
74
|
+
|
|
75
|
+
First, add a snippet file in a `stories` directory in your component folder like this:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
YourComponent/
|
|
79
|
+
YourComponent.svelte
|
|
80
|
+
YourComponent.stories.svelte
|
|
81
|
+
stories/
|
|
82
|
+
snippets/
|
|
83
|
+
default.svelte
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Now, import your snippet file in your story page component and attach it to any individual `Story` using our docs utils.
|
|
87
|
+
|
|
88
|
+
```svelte
|
|
89
|
+
<script>
|
|
90
|
+
import { Meta, Template, Story } from '@storybook/addon-svelte-csf';
|
|
91
|
+
|
|
92
|
+
import YourComponent from './YourComponent.svelte';
|
|
93
|
+
|
|
94
|
+
// Import snippet file.
|
|
95
|
+
// Note: the "?raw" in the import below is important!!
|
|
96
|
+
import defaultSource from './stories/snippets/default.svelte?raw';
|
|
97
|
+
|
|
98
|
+
import { withSource } from '$docs/utils/withParams';
|
|
99
|
+
|
|
100
|
+
const meta = {
|
|
101
|
+
title: 'Components/YourComponent',
|
|
102
|
+
component: YourComponent,
|
|
103
|
+
};
|
|
104
|
+
</script>
|
|
105
|
+
|
|
106
|
+
<meta {...meta} />
|
|
107
|
+
|
|
108
|
+
<template let:args>
|
|
109
|
+
<YourComponent {...args} />
|
|
110
|
+
</template>
|
|
111
|
+
|
|
112
|
+
<!-- Pass source in inside an object keyed by your snippet's language, e.g., svelte, scss, etc. -->
|
|
113
|
+
<Story
|
|
114
|
+
name="Basic"
|
|
115
|
+
args="{{ width: 'normal' }}"
|
|
116
|
+
{...withSource({ svelte: defaultSnippet })}
|
|
117
|
+
/>
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
> **Pro tip:** If you pass your source code in directly, the code won't change prop values when users play with Storybook's built-in [controls panel](https://storybook.js.org/docs/svelte/essentials/controls), so it's best to start with a default example using the generated source code.
|
|
121
|
+
|
|
122
|
+
If you're adding source code AND custom docs to a story, you can chain `withSource` and `withComponentDocs` like this:
|
|
123
|
+
|
|
124
|
+
```svelte
|
|
125
|
+
<!-- ... -->
|
|
126
|
+
|
|
127
|
+
<Story
|
|
128
|
+
name="Extra wide"
|
|
129
|
+
args="{{ width: 'wider' }}"
|
|
130
|
+
{...withComponentDocs(componentDocs, withSource({ svelte: defaultSnippet }))}
|
|
131
|
+
/>
|
|
132
|
+
```
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
import { parameters } from '../../utils/docsPage.js';
|
|
3
|
+
|
|
4
|
+
<Meta
|
|
5
|
+
title="Contributing/Recipes: Story with media"
|
|
6
|
+
parameters={{ ...parameters }}
|
|
7
|
+
/>
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
# Recipes: Story with media
|
|
12
|
+
|
|
13
|
+
To use media files in your stories, import them directly.
|
|
14
|
+
|
|
15
|
+
First, add a media file in a `stories` directory in your component folder like this:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
YourComponent/
|
|
19
|
+
YourComponent.svelte
|
|
20
|
+
YourComponent.stories.svelte
|
|
21
|
+
stories/
|
|
22
|
+
imgs/
|
|
23
|
+
myImage.jpg
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Now, import your media file directly in your code, which will resolve to the URL of the file.
|
|
27
|
+
|
|
28
|
+
```svelte
|
|
29
|
+
<!-- YourComponent.stories.svelte -->
|
|
30
|
+
<script>
|
|
31
|
+
import { Meta, Template, Story } from '@storybook/addon-svelte-csf';
|
|
32
|
+
|
|
33
|
+
import YourComponent from './YourComponent.svelte';
|
|
34
|
+
|
|
35
|
+
// 🖼️ Import media you need in stories directly in code!
|
|
36
|
+
import myImageSrc from './stories/imgs/myImage.jpg';
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<Meta title="Components/YourComponent" component="{YourComponent}" />
|
|
40
|
+
|
|
41
|
+
<template let:args>
|
|
42
|
+
<YourComponent {...args} />
|
|
43
|
+
</template>
|
|
44
|
+
|
|
45
|
+
<Story
|
|
46
|
+
name="Basic"
|
|
47
|
+
args="{{
|
|
48
|
+
src: myImageSrc,
|
|
49
|
+
altText: 'My image in the component',
|
|
50
|
+
}}"
|
|
51
|
+
/>
|
|
52
|
+
```
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
import { parameters } from '../utils/docsPage.js';
|
|
3
|
+
|
|
4
|
+
<Meta title="Contributing/Writing stories" parameters={{ ...parameters }} />
|
|
5
|
+
|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
# Writing component stories
|
|
9
|
+
|
|
10
|
+
As well as writing your component, you should also document how to use it using Storybook "stories."
|
|
11
|
+
|
|
12
|
+
## What's a story?
|
|
13
|
+
|
|
14
|
+
Paraphrasing [Storybook's definition](https://storybook.js.org/docs/svelte/writing-stories/introduction): A story captures the rendered state of a Svelte component, given certain props. Translation: It's a demo of what your component can do.
|
|
15
|
+
|
|
16
|
+
In Storybook, you create a story page for your component, which can itself contain several "stories" or demos of how your component works.
|
|
17
|
+
|
|
18
|
+
To make a story page, you'll create a `*.stories.svelte` file next to your component like this:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
src/
|
|
22
|
+
components/
|
|
23
|
+
YourComponent/
|
|
24
|
+
YourComponent.svelte
|
|
25
|
+
YourComponent.stories.svelte
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Your component's story page will then have at least one story that shows how it can be used.
|
|
29
|
+
|
|
30
|
+
## How do I write stories?
|
|
31
|
+
|
|
32
|
+
Read through the recipes docs for some common examples of how you may want to write and customise your stories.
|
|
33
|
+
|
|
34
|
+
If you're comparing the recipes to Storybook's own docs, note that all the examples use "Svelte Native" story format. (Storybook is technically a React-first tool that's been retrofit to also support a number of other frameworks, including Svelte.)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
import { parameters } from '../utils/docsPage.js';
|
|
3
|
+
|
|
4
|
+
<Meta title="Contributing/Writing docs pages" parameters={{ ...parameters }} />
|
|
5
|
+
|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
# Writing docs-only pages
|
|
9
|
+
|
|
10
|
+
You can write docs-only pages in simple markdown using MDX format.
|
|
11
|
+
|
|
12
|
+
> MDX is _technically_ a mixture of markdown and React. Unforuntately, there isn't a native Svelte option for markdown pages in Storybook yet. Good news, though, you won't _really_ need to know React to use it. Just write in markdown and follow the template below for the React bits you'll need.
|
|
13
|
+
|
|
14
|
+
### Quickstart
|
|
15
|
+
|
|
16
|
+
Make a new `.stories.mdx` file for your docs page in the `src/docs/` directory.
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
src/
|
|
20
|
+
docs/
|
|
21
|
+
my-docs.stories.mdx
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Add the following at the top of the file and customise the `title` property in the `Meta` component for where you want the page to live in the Storybook nav.
|
|
25
|
+
|
|
26
|
+
```markdown
|
|
27
|
+
import { Meta } from '@storybook/addon-docs';
|
|
28
|
+
import { parameters } from '$docs/utils/docsPage.js';
|
|
29
|
+
|
|
30
|
+
<Meta title="SCSS/Special rules" parameters={{ ...parameters }} />
|
|
31
|
+
|
|
32
|
+

|
|
33
|
+
|
|
34
|
+
# My docs page
|
|
35
|
+
|
|
36
|
+
Your docs TK...
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
From there, write whatever you need in markdown.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
|
|
3
|
+
import SyntaxHighlighter from 'react-syntax-highlighter/dist/esm/prism-light';
|
|
4
|
+
// @ts-ignore scss
|
|
5
|
+
import classes from './styles.module.scss';
|
|
6
|
+
import prism from 'react-syntax-highlighter/dist/esm/styles/prism/prism';
|
|
7
|
+
import scss from 'react-syntax-highlighter/dist/esm/languages/prism/scss';
|
|
8
|
+
|
|
9
|
+
SyntaxHighlighter.registerLanguage('scss', scss);
|
|
10
|
+
|
|
11
|
+
const formatPartial = (partial) => {
|
|
12
|
+
return partial.replace(/\/_/, '/').replace(/\.scss$/, '');
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const Copyable = (props) => {
|
|
16
|
+
const [copied, setCopied] = useState(false);
|
|
17
|
+
|
|
18
|
+
let timeout;
|
|
19
|
+
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (timeout) clearTimeout(timeout);
|
|
22
|
+
timeout = setTimeout(() => {
|
|
23
|
+
setCopied(false);
|
|
24
|
+
}, 1500);
|
|
25
|
+
}, [copied]);
|
|
26
|
+
|
|
27
|
+
const handleClick = async ({ partial }) => {
|
|
28
|
+
const copyText = `@import "@reuters-graphics/graphics-components/scss/colours/${formatPartial(partial)}";`;
|
|
29
|
+
await navigator.clipboard.writeText(copyText);
|
|
30
|
+
setCopied(true);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
return (
|
|
34
|
+
<button className="copy-btn" onClick={() => handleClick(props)}>
|
|
35
|
+
<span className="material-symbols-outlined">content_copy</span>
|
|
36
|
+
{copied && <span className="copy-tag">Copied</span>}
|
|
37
|
+
</button>
|
|
38
|
+
);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const ImportSnippet = ({ included = false, partial = 'thematic/_tr.scss' }) => {
|
|
42
|
+
return included ?
|
|
43
|
+
<div className={classes.importsnippet}>
|
|
44
|
+
<p>Included</p>
|
|
45
|
+
</div>
|
|
46
|
+
: <div className={classes.importsnippet}>
|
|
47
|
+
<SyntaxHighlighter language="scss" style={prism}>
|
|
48
|
+
{`// global.scss \n@import "@reuters-graphics/graphics-components/scss/colours/${formatPartial(partial)}";`}
|
|
49
|
+
</SyntaxHighlighter>
|
|
50
|
+
<Copyable partial={partial} />
|
|
51
|
+
</div>;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export default ImportSnippet;
|