@reuters-graphics/graphics-components 1.0.30 → 1.1.1
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 +26 -38
- 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 +2 -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/_main.scss +1 -1
- 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,40 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
|
|
3
|
+
import Value from './Value.jsx';
|
|
4
|
+
|
|
5
|
+
const Key = ({ value, name, map, themeName, setTheme, theme }) => {
|
|
6
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
7
|
+
return (
|
|
8
|
+
<div className="key">
|
|
9
|
+
<button
|
|
10
|
+
className={isOpen ? 'open' : ''}
|
|
11
|
+
onClick={() => setIsOpen((o) => !o)}
|
|
12
|
+
>
|
|
13
|
+
<div>
|
|
14
|
+
<span className="material-symbols-outlined">
|
|
15
|
+
{isOpen ? 'expand_less' : 'expand_more'}
|
|
16
|
+
</span>
|
|
17
|
+
</div>{' '}
|
|
18
|
+
{name}
|
|
19
|
+
</button>
|
|
20
|
+
|
|
21
|
+
{Object.entries(value).map(([key, value]) => {
|
|
22
|
+
const props = {
|
|
23
|
+
theme,
|
|
24
|
+
setTheme,
|
|
25
|
+
name: key,
|
|
26
|
+
themeName,
|
|
27
|
+
map: map + '.' + key,
|
|
28
|
+
value,
|
|
29
|
+
key: themeName + map + key,
|
|
30
|
+
};
|
|
31
|
+
if (!isOpen) return null;
|
|
32
|
+
if (typeof value === 'object')
|
|
33
|
+
return <Key {...props} key={props.key} />;
|
|
34
|
+
return <Value {...props} key={props.key} />;
|
|
35
|
+
})}
|
|
36
|
+
</div>
|
|
37
|
+
);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export default Key;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { cloneDeep, set } from 'lodash-es';
|
|
3
|
+
|
|
4
|
+
import ColourPicker from './ColourPicker.jsx';
|
|
5
|
+
|
|
6
|
+
const Input = ({ value, onChange }) => {
|
|
7
|
+
// Number type
|
|
8
|
+
// this is buggy...
|
|
9
|
+
// if ((value || value === 0) && !isNaN(value)) return <input type="number" value={value} onChange={(e) => onChange(Number(e.target.value))}/>;
|
|
10
|
+
// Colour type
|
|
11
|
+
if (!/var\(.*\)/i.test(value) && CSS.supports('color', value))
|
|
12
|
+
return <ColourPicker colour={value} onChange={onChange} />;
|
|
13
|
+
// Text for the rest...
|
|
14
|
+
return (
|
|
15
|
+
<input
|
|
16
|
+
type="text"
|
|
17
|
+
value={value}
|
|
18
|
+
onChange={(e) => onChange(e.target.value)}
|
|
19
|
+
/>
|
|
20
|
+
);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const Value = ({ value, name, map, themeName, theme, setTheme }) => {
|
|
24
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
25
|
+
|
|
26
|
+
const onChange = (newValue) => {
|
|
27
|
+
const mutableTheme = cloneDeep(theme);
|
|
28
|
+
set(mutableTheme, map, newValue);
|
|
29
|
+
setTheme(mutableTheme);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const isColour = !/var\(.*\)/i.test(value) && CSS.supports('color', value);
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<div className="value">
|
|
36
|
+
<label>
|
|
37
|
+
<div>
|
|
38
|
+
<button
|
|
39
|
+
className={isOpen ? 'open' : ''}
|
|
40
|
+
onClick={() => setIsOpen((o) => !o)}
|
|
41
|
+
>
|
|
42
|
+
<div>
|
|
43
|
+
<span className="material-symbols-outlined">
|
|
44
|
+
{isOpen ? 'expand_less' : 'expand_more'}
|
|
45
|
+
</span>
|
|
46
|
+
</div>{' '}
|
|
47
|
+
{isColour && <div style={{ background: value }}></div>} {name}
|
|
48
|
+
</button>
|
|
49
|
+
</div>
|
|
50
|
+
</label>
|
|
51
|
+
{isOpen && (
|
|
52
|
+
<div className="input-container">
|
|
53
|
+
<Input value={value} key={themeName + map} onChange={onChange} />
|
|
54
|
+
</div>
|
|
55
|
+
)}
|
|
56
|
+
</div>
|
|
57
|
+
);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export default Value;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
.customiser :global {
|
|
2
|
+
p {
|
|
3
|
+
font-size: 14px;
|
|
4
|
+
color: #666;
|
|
5
|
+
}
|
|
6
|
+
div.key > button,
|
|
7
|
+
div.value > label > div > button {
|
|
8
|
+
background-color: transparent;
|
|
9
|
+
border: 0;
|
|
10
|
+
padding: 0;
|
|
11
|
+
cursor: pointer;
|
|
12
|
+
vertical-align: middle;
|
|
13
|
+
display: inline-flex;
|
|
14
|
+
div {
|
|
15
|
+
margin-right: 4px;
|
|
16
|
+
background-color: #fff;
|
|
17
|
+
border: 1px solid #bbb;
|
|
18
|
+
color: #777;
|
|
19
|
+
font-size: 1rem;
|
|
20
|
+
line-height: 1rem;
|
|
21
|
+
transition: all 0.2s;
|
|
22
|
+
width: 1.2rem;
|
|
23
|
+
height: 1.2rem;
|
|
24
|
+
display: inline-flex;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
align-items: center;
|
|
27
|
+
border-radius: 4px;
|
|
28
|
+
span {
|
|
29
|
+
display: inline-block;
|
|
30
|
+
font-size: 1rem;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
&.open {
|
|
34
|
+
div {
|
|
35
|
+
// background-color: #666;
|
|
36
|
+
// border: 1px solid #bbb;
|
|
37
|
+
color: #333;
|
|
38
|
+
font-weight: bold;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
div.key {
|
|
43
|
+
div.key {
|
|
44
|
+
padding-left: 10px;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
div.value {
|
|
48
|
+
padding-left: 10px;
|
|
49
|
+
div.input-container {
|
|
50
|
+
padding-left: 0px;
|
|
51
|
+
}
|
|
52
|
+
input {
|
|
53
|
+
width: 100%;
|
|
54
|
+
outline: 0 !important;
|
|
55
|
+
margin: 5px 0 5px;
|
|
56
|
+
padding: 2px 5px;
|
|
57
|
+
background-color: rgb(245, 242, 240);
|
|
58
|
+
padding: 5px 5px !important;
|
|
59
|
+
border: 1px solid #ccc !important;
|
|
60
|
+
border-radius: 4px;
|
|
61
|
+
}
|
|
62
|
+
input[type='color'] {
|
|
63
|
+
width: 40px;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.colourpicker :global {
|
|
69
|
+
width: 160px;
|
|
70
|
+
margin-bottom: 10px;
|
|
71
|
+
.react-colorful {
|
|
72
|
+
height: 120px;
|
|
73
|
+
width: 160px;
|
|
74
|
+
border: 1px solid #666;
|
|
75
|
+
border-radius: 4px;
|
|
76
|
+
overflow: hidden;
|
|
77
|
+
}
|
|
78
|
+
.react-colorful__saturation {
|
|
79
|
+
border-radius: 0;
|
|
80
|
+
}
|
|
81
|
+
.react-colorful__hue {
|
|
82
|
+
height: 20px;
|
|
83
|
+
border-radius: 0;
|
|
84
|
+
}
|
|
85
|
+
.react-colorful__pointer {
|
|
86
|
+
width: 20px;
|
|
87
|
+
height: 20px;
|
|
88
|
+
}
|
|
89
|
+
input {
|
|
90
|
+
width: 100%;
|
|
91
|
+
margin-bottom: 5px !important;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import { PrismLight as SyntaxHighlighter } from 'react-syntax-highlighter';
|
|
4
|
+
import VariableTable from '../CSSVariables/VariableTable';
|
|
5
|
+
// @ts-ignore scss
|
|
6
|
+
import classes from './styles.module.scss';
|
|
7
|
+
import darkTheme from '../../../../components/Theme/themes/dark';
|
|
8
|
+
import lightTheme from '../../../../components/Theme/themes/light';
|
|
9
|
+
import prism from 'react-syntax-highlighter/dist/esm/styles/prism/prism';
|
|
10
|
+
import scss from 'react-syntax-highlighter/dist/esm/languages/prism/scss';
|
|
11
|
+
import svelteSyntax from '../../../../../.storybook/svelte-highlighting';
|
|
12
|
+
import { updatedDiff } from 'deep-object-diff';
|
|
13
|
+
|
|
14
|
+
SyntaxHighlighter.registerLanguage('svelte', svelteSyntax);
|
|
15
|
+
SyntaxHighlighter.registerLanguage('scss', scss);
|
|
16
|
+
|
|
17
|
+
const NewTheme = ({ theme, themeName }) => {
|
|
18
|
+
const originalTheme = themeName === 'light' ? lightTheme : darkTheme;
|
|
19
|
+
const updates = updatedDiff(originalTheme, theme);
|
|
20
|
+
|
|
21
|
+
const bgChanged = theme.colour.background !== lightTheme.colour.background;
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<div className={classes.newtheme}>
|
|
25
|
+
<p>
|
|
26
|
+
Use the code below to adapt the <code>Theme</code> component for your
|
|
27
|
+
new design:
|
|
28
|
+
</p>
|
|
29
|
+
<SyntaxHighlighter language="svelte" style={prism}>
|
|
30
|
+
{`<Theme
|
|
31
|
+
base="${themeName}"
|
|
32
|
+
theme={${JSON.stringify(updates, null, 2).replaceAll('"', "'")}}
|
|
33
|
+
>
|
|
34
|
+
<!-- ... -->
|
|
35
|
+
</Theme>
|
|
36
|
+
`}
|
|
37
|
+
</SyntaxHighlighter>
|
|
38
|
+
{bgChanged && (
|
|
39
|
+
<SyntaxHighlighter
|
|
40
|
+
language="scss"
|
|
41
|
+
style={prism}
|
|
42
|
+
customStyle={{ maxHeight: '140px' }}
|
|
43
|
+
>
|
|
44
|
+
{`// global.scss
|
|
45
|
+
body {
|
|
46
|
+
background-color: ${theme.colour.background};
|
|
47
|
+
}`}
|
|
48
|
+
</SyntaxHighlighter>
|
|
49
|
+
)}
|
|
50
|
+
<VariableTable theme={theme} />
|
|
51
|
+
</div>
|
|
52
|
+
);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export default NewTheme;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
|
|
3
|
+
import Customiser from './Customiser/Customiser';
|
|
4
|
+
import NewTheme from './NewTheme/NewTheme.jsx';
|
|
5
|
+
import ThemeSwitch from './ThemeSwitch/Switch';
|
|
6
|
+
import { Unstyled } from '@storybook/blocks';
|
|
7
|
+
// @ts-ignore scss
|
|
8
|
+
import classes from './styles.module.scss';
|
|
9
|
+
import { cloneDeep } from 'lodash-es';
|
|
10
|
+
import darkTheme from '../../../components/Theme/themes/dark';
|
|
11
|
+
import lightTheme from '../../../components/Theme/themes/light';
|
|
12
|
+
|
|
13
|
+
const ThemeBuilder = (_props) => {
|
|
14
|
+
const [themeName, setThemeName] = useState('light');
|
|
15
|
+
const [theme, setTheme] = useState(cloneDeep(lightTheme));
|
|
16
|
+
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
const newTheme = themeName === 'light' ? lightTheme : darkTheme;
|
|
19
|
+
setTheme(cloneDeep(newTheme));
|
|
20
|
+
}, [themeName]);
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<Unstyled>
|
|
24
|
+
<div className={classes.themebuilder}>
|
|
25
|
+
<div className="column">
|
|
26
|
+
<ThemeSwitch setThemeName={setThemeName} themeName={themeName} />
|
|
27
|
+
<Customiser
|
|
28
|
+
theme={theme}
|
|
29
|
+
setTheme={setTheme}
|
|
30
|
+
themeName={themeName}
|
|
31
|
+
key={themeName}
|
|
32
|
+
/>
|
|
33
|
+
</div>
|
|
34
|
+
<div className="column">
|
|
35
|
+
<NewTheme theme={theme} themeName={themeName} />
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</Unstyled>
|
|
39
|
+
);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export default ThemeBuilder;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
// @ts-ignore scss
|
|
4
|
+
import classes from './styles.module.scss';
|
|
5
|
+
|
|
6
|
+
const ThemeSwitch = ({ themeName, setThemeName }) => {
|
|
7
|
+
return (
|
|
8
|
+
<div className={classes.switch}>
|
|
9
|
+
<p>Choose a base theme:</p>
|
|
10
|
+
<div className="container">
|
|
11
|
+
<button
|
|
12
|
+
className={themeName === 'light' ? 'active' : ''}
|
|
13
|
+
onClick={() => setThemeName('light')}
|
|
14
|
+
>
|
|
15
|
+
<span className="material-symbols-outlined">light_mode</span>
|
|
16
|
+
</button>
|
|
17
|
+
<button
|
|
18
|
+
className={themeName === 'dark' ? 'active' : ''}
|
|
19
|
+
onClick={() => setThemeName('dark')}
|
|
20
|
+
>
|
|
21
|
+
<span className="material-symbols-outlined">dark_mode</span>
|
|
22
|
+
</button>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export default ThemeSwitch;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
.switch :global {
|
|
2
|
+
margin-bottom: 12px;
|
|
3
|
+
p {
|
|
4
|
+
font-size: 14px;
|
|
5
|
+
color: #666;
|
|
6
|
+
}
|
|
7
|
+
div {
|
|
8
|
+
border: 1px solid #999;
|
|
9
|
+
display: inline-block;
|
|
10
|
+
border-radius: 50px;
|
|
11
|
+
overflow: hidden;
|
|
12
|
+
padding: 0;
|
|
13
|
+
}
|
|
14
|
+
button {
|
|
15
|
+
padding: 5px 22px;
|
|
16
|
+
background-color: #efefef;
|
|
17
|
+
color: #999;
|
|
18
|
+
cursor: pointer;
|
|
19
|
+
border: 0;
|
|
20
|
+
display: inline-flex;
|
|
21
|
+
justify-content: center;
|
|
22
|
+
align-items: center;
|
|
23
|
+
&:hover {
|
|
24
|
+
color: #333;
|
|
25
|
+
}
|
|
26
|
+
span {
|
|
27
|
+
font-size: 1.2rem;
|
|
28
|
+
line-height: 1.2rem;
|
|
29
|
+
}
|
|
30
|
+
&.active {
|
|
31
|
+
background-color: #fff;
|
|
32
|
+
color: rgb(0, 119, 170);
|
|
33
|
+
font-weight: bold;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
&:first-child {
|
|
37
|
+
border-right: 1px solid #999;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
.themebuilder :global {
|
|
2
|
+
margin: 2rem 0;
|
|
3
|
+
display: grid;
|
|
4
|
+
grid-auto-flow: column;
|
|
5
|
+
grid-auto-columns: 1fr;
|
|
6
|
+
gap: 80px;
|
|
7
|
+
|
|
8
|
+
div.column {
|
|
9
|
+
min-width: 200px;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
pre {
|
|
13
|
+
background-color: #ddd;
|
|
14
|
+
width: 100%;
|
|
15
|
+
height: 400px;
|
|
16
|
+
margin: 0;
|
|
17
|
+
border-radius: 4px;
|
|
18
|
+
border: 1px solid #ccc;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
import { parameters } from '../utils/docsPage.js';
|
|
3
|
+
|
|
4
|
+
import startImg from './imgs/scss-start.png';
|
|
5
|
+
import highlightImg from './imgs/scss-highlight.png';
|
|
6
|
+
import inspectorImg from './imgs/scss-inspector.png';
|
|
7
|
+
import changeImg from './imgs/scss-change.png';
|
|
8
|
+
import testImg from './imgs/scss-test.png';
|
|
9
|
+
import winningImg from './imgs/scss-winning.png';
|
|
10
|
+
|
|
11
|
+
<Meta
|
|
12
|
+
title="Guides/Customising components with SCSS"
|
|
13
|
+
parameters={{ ...parameters }}
|
|
14
|
+
/>
|
|
15
|
+
|
|
16
|
+

|
|
17
|
+
|
|
18
|
+
# Customising components with SCSS
|
|
19
|
+
|
|
20
|
+
One of the most powerful ways to customise components isn't props or, even, Svelte.
|
|
21
|
+
|
|
22
|
+
<p className="sbdocs-p">
|
|
23
|
+
<span className="highlight bold">
|
|
24
|
+
It’s SCSS and your web inspector!
|
|
25
|
+
</span>
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
## How's that??
|
|
29
|
+
|
|
30
|
+
Let's say you wanted to change our `BeforeAfter` component. You want the text overlays to be at the bottom of the image instead of the top like this:
|
|
31
|
+
|
|
32
|
+
<img src={startImg} width="600" />
|
|
33
|
+
|
|
34
|
+
The first thing you should do is <span className="highlight">check out the elements you want to change in your web inspector</span> and see if CSS can make the change you want.
|
|
35
|
+
|
|
36
|
+
<img src={highlightImg} width="300" style={{ margin: '0 0 1rem' }} />
|
|
37
|
+
|
|
38
|
+
<img src={inspectorImg} width="100%" />
|
|
39
|
+
|
|
40
|
+
In our case, we want to change the absolute position of those elements. To test that'll actually work, we can <span className="highlight">try it directly in the inspector first!</span>
|
|
41
|
+
|
|
42
|
+
<img src={changeImg} width="500" style={{ margin: '0 0 1rem' }} />
|
|
43
|
+
|
|
44
|
+
<img src={testImg} width="600" style={{ margin: '0 0 1rem' }} />
|
|
45
|
+
|
|
46
|
+
Now that we know we can change what we need through CSS it's time to write some SCSS, either in your `global.scss` file or directly in a component like `App.svelte`.
|
|
47
|
+
|
|
48
|
+
First, let's look at the class of the style rule we changed in the inspector:
|
|
49
|
+
|
|
50
|
+
`figure.before-after-container.s-khJY-w4TYkp5 .overlay-container.before.s-khJY-w4TYkp5`
|
|
51
|
+
|
|
52
|
+
One thing we always need to do is <span className="highlight">strip out any Svelte class names</span>, i.e., those weird `.s-khJY-w4TYkp5` classes. Why? Those are random classes Svelte adds to CSS, and we can't guarantee they won't change.
|
|
53
|
+
|
|
54
|
+
That leaves us with:
|
|
55
|
+
|
|
56
|
+
`figure.before-after-container .overlay-container.before`
|
|
57
|
+
|
|
58
|
+
But we need our style rule to _beat_ the original style in the CSS cascade, and right now, it's less specific without those class names we stripped.
|
|
59
|
+
|
|
60
|
+
The easiest way to make sure your style rule wins out is to <span className="highlight">add an ID either directly to the element or to a parent</span>. In our case, let's add an ID through the `BeforeAfter` `id` prop. Now we can use it! (For extra credit, though, we'll drop the `.before` so our new style rule applies to _both_ overlays.)
|
|
61
|
+
|
|
62
|
+
```scss
|
|
63
|
+
figure#my-before-after .overlay-container {
|
|
64
|
+
bottom: 0;
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Now our selector is more specific. We win!
|
|
69
|
+
|
|
70
|
+
If you don't see a way to add an ID through a component's props, then just wrap the component in a `div` in your code:
|
|
71
|
+
|
|
72
|
+
```svelte
|
|
73
|
+
<div id="my-before-after">
|
|
74
|
+
<BeforeAfter />
|
|
75
|
+
</div>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
... and use that, instead!
|
|
79
|
+
|
|
80
|
+
```scss
|
|
81
|
+
div#my-before-after figure .overlay-container {
|
|
82
|
+
bottom: 0;
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
We can <span className="highlight">confirm the new style rule is winning by looking at its order back in our web inspector!</span>
|
|
87
|
+
|
|
88
|
+
<img src={winningImg} width="500" style={{ margin: '0 0 1rem' }} />
|
|
89
|
+
|
|
90
|
+
Done!
|
|
91
|
+
|
|
92
|
+
#### Can I just... `important!` it?
|
|
93
|
+
|
|
94
|
+
Yep, as a last result. Just be sure your style rule is **very specific** and not something generic that might apply to other elements like `div.container`.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
import { parameters } from '../utils/docsPage.js';
|
|
3
|
+
|
|
4
|
+
<Meta title="Guides/Getting help" parameters={{ ...parameters }} />
|
|
5
|
+
|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
# Getting help
|
|
9
|
+
|
|
10
|
+
🚨 **If you're on deadline**, talk to your editor who can point you to the nearest developer.
|
|
11
|
+
|
|
12
|
+
If you're _off_ deadline, we use GitHub issues to track things that need fixing up or could be improved. Use one of the links below to create a new issue.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
### Is something wrong in the code?
|
|
17
|
+
|
|
18
|
+
🏷️ [Click here](https://github.com/reuters-graphics/graphics-components/issues/new?labels=%F0%9F%90%9B%20bug&assignees=hobbes7878) to create an issue on GitHub and report any bugs you've found. It's **very** helpful if you also share a link to any repo you're working in where you've spotted the bug.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
### Is something wrong in the docs?
|
|
23
|
+
|
|
24
|
+
🏷️ [Click here](https://github.com/reuters-graphics/graphics-components/issues/new?labels=%F0%9F%93%9A%20documentation&assignees=hobbes7878) and tell us which docs are incorrect, unclear or could otherwise be improved.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
### Have an idea for a new component or how to improve an existing one?
|
|
29
|
+
|
|
30
|
+
🏷️ [Click here](https://github.com/reuters-graphics/graphics-components/issues/new?labels=%F0%9F%9A%80%20new%20feature&assignees=hobbes7878) and tell us more.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
import { parameters } from '../utils/docsPage.js';
|
|
3
|
+
|
|
4
|
+
<Meta title="Guides/Using with Google docs" parameters={{ ...parameters }} />
|
|
5
|
+
|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
# Using with Google docs
|
|
9
|
+
|
|
10
|
+
Most of the default examples in these docs show how to use components by passing data into them directly through props. In the Kit, though, you likely won't be hard-coding things like text strings in your code and instead will get them from a Google Doc.
|
|
11
|
+
|
|
12
|
+
It's usually easy to use a Google Doc to fill in the props for our components, but it may mean you need to write a tiny bit of code to translate strings from a doc into the data type our component's props expect.
|
|
13
|
+
|
|
14
|
+
Let's look at a basic component, a `ProfileCard`, with a demo that looks like this in the docs:
|
|
15
|
+
|
|
16
|
+
```svelte
|
|
17
|
+
<script>
|
|
18
|
+
import { ProfileCard } from '@reuters-graphics/graphics-components';
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<ProfileCard
|
|
22
|
+
name="Tom"
|
|
23
|
+
img="https://cats.com/cat1.jpg"
|
|
24
|
+
birthday="{new Date('2020-09-25')}"
|
|
25
|
+
bio="Some notes.\n\nWith multiple paragraphs."
|
|
26
|
+
isStaff="{true}"
|
|
27
|
+
/>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The data for the component's props includes strings, a date and a boolean.
|
|
31
|
+
|
|
32
|
+
In our Google doc, we might fill out a block for this component like this:
|
|
33
|
+
|
|
34
|
+
```yaml
|
|
35
|
+
Type: profile-card
|
|
36
|
+
Name: Tom
|
|
37
|
+
Image: images/tom-the-cat.jpg
|
|
38
|
+
Birthday: 2020-09-25
|
|
39
|
+
Bio: Some notes.
|
|
40
|
+
|
|
41
|
+
With multiple paragraphs.
|
|
42
|
+
:end
|
|
43
|
+
Staff: true
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Now we can tie that data into your blocks loop like this:
|
|
47
|
+
|
|
48
|
+
```svelte
|
|
49
|
+
<script>
|
|
50
|
+
// These are usually already imported for you
|
|
51
|
+
import { assets } from '$app/paths';
|
|
52
|
+
import content from '$locales/en/content.json';
|
|
53
|
+
|
|
54
|
+
import { ProfileCard } from '@reuters-graphics/graphics-components';
|
|
55
|
+
</script>
|
|
56
|
+
|
|
57
|
+
{#each content.blocks as block}
|
|
58
|
+
{#if block.Type}
|
|
59
|
+
<!-- ... -->
|
|
60
|
+
{:else if block.Type === 'profile-card'}
|
|
61
|
+
<ProfileCard
|
|
62
|
+
name="{block.Name}"
|
|
63
|
+
img="{`${assets}/${block.Image}`}"
|
|
64
|
+
birthday="{new Date(block.Birthday)}"
|
|
65
|
+
bio="{block.Bio}"
|
|
66
|
+
isStaff="{block.Staff === 'true'}"
|
|
67
|
+
/>
|
|
68
|
+
|
|
69
|
+
<!-- ... -->
|
|
70
|
+
{/if}
|
|
71
|
+
{/each}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Notice how we're coercing some of our data from strings into other data types: a boolean for `isStaff`, a date for `birthday` and an absolute path for `img`.
|