@reuters-graphics/graphics-components 2.0.2 → 3.0.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 +4 -5
- package/dist/actions/cssVariables/index.d.ts +2 -2
- package/dist/actions/cssVariables/index.js +14 -16
- package/dist/actions/resizeObserver/index.d.ts +1 -1
- package/dist/actions/resizeObserver/index.js +18 -20
- package/dist/actions/resizeObserver/resizeObserver.mdx +1 -1
- package/dist/app.html +11 -0
- package/dist/components/@types/global.d.ts +9 -7
- package/dist/components/AdSlot/AdScripts.svelte +15 -12
- package/dist/components/AdSlot/AdScripts.svelte.d.ts +16 -14
- package/dist/components/AdSlot/AdSlot.svelte +53 -31
- package/dist/components/AdSlot/AdSlot.svelte.d.ts +10 -21
- package/dist/components/AdSlot/{stories/docs/inline.md → InlineAd.mdx} +14 -4
- package/dist/components/AdSlot/InlineAd.stories.svelte +11 -14
- package/dist/components/AdSlot/InlineAd.stories.svelte.d.ts +17 -21
- package/dist/components/AdSlot/InlineAd.svelte +18 -7
- package/dist/components/AdSlot/InlineAd.svelte.d.ts +12 -20
- package/dist/components/AdSlot/{stories/docs/leaderboard.md → LeaderboardAd.mdx} +10 -0
- package/dist/components/AdSlot/LeaderboardAd.stories.svelte +13 -16
- package/dist/components/AdSlot/LeaderboardAd.stories.svelte.d.ts +17 -21
- package/dist/components/AdSlot/LeaderboardAd.svelte +45 -29
- package/dist/components/AdSlot/LeaderboardAd.svelte.d.ts +10 -19
- package/dist/components/AdSlot/OneTrust.svelte +39 -34
- package/dist/components/AdSlot/OneTrust.svelte.d.ts +16 -14
- package/dist/components/AdSlot/ResponsiveAd.svelte +69 -45
- package/dist/components/AdSlot/ResponsiveAd.svelte.d.ts +6 -18
- package/dist/components/AdSlot/{stories/docs/sponsorship.md → SponsorshipAd.mdx} +11 -1
- package/dist/components/AdSlot/SponsorshipAd.stories.svelte +11 -15
- package/dist/components/AdSlot/SponsorshipAd.stories.svelte.d.ts +17 -21
- package/dist/components/AdSlot/SponsorshipAd.svelte +21 -7
- package/dist/components/AdSlot/SponsorshipAd.svelte.d.ts +14 -22
- package/dist/components/Analytics/Analytics.mdx +73 -0
- package/dist/components/Analytics/Analytics.stories.svelte +11 -31
- package/dist/components/Analytics/Analytics.stories.svelte.d.ts +17 -21
- package/dist/components/Analytics/Analytics.svelte +27 -11
- package/dist/components/Analytics/Analytics.svelte.d.ts +14 -23
- package/dist/components/Article/Article.mdx +117 -0
- package/dist/components/Article/Article.stories.svelte +39 -40
- package/dist/components/Article/Article.stories.svelte.d.ts +17 -21
- package/dist/components/Article/Article.svelte +50 -20
- package/dist/components/Article/Article.svelte.d.ts +26 -34
- package/dist/components/BeforeAfter/BeforeAfter.mdx +111 -0
- package/dist/components/BeforeAfter/BeforeAfter.stories.svelte +38 -80
- package/dist/components/BeforeAfter/BeforeAfter.stories.svelte.d.ts +17 -30
- package/dist/components/BeforeAfter/BeforeAfter.svelte +240 -141
- package/dist/components/BeforeAfter/BeforeAfter.svelte.d.ts +60 -62
- package/dist/components/Block/Block.mdx +99 -0
- package/dist/components/Block/Block.stories.svelte +82 -72
- package/dist/components/Block/Block.stories.svelte.d.ts +17 -30
- package/dist/components/Block/Block.svelte +33 -11
- package/dist/components/Block/Block.svelte.d.ts +20 -25
- package/dist/components/BodyText/BodyText.mdx +115 -0
- package/dist/components/BodyText/BodyText.stories.svelte +28 -194
- package/dist/components/BodyText/BodyText.stories.svelte.d.ts +17 -21
- package/dist/components/BodyText/BodyText.svelte +14 -7
- package/dist/components/BodyText/BodyText.svelte.d.ts +11 -24
- package/dist/components/Byline/Byline.mdx +110 -0
- package/dist/components/Byline/Byline.stories.svelte +50 -26
- package/dist/components/Byline/Byline.stories.svelte.d.ts +17 -27
- package/dist/components/Byline/Byline.svelte +109 -43
- package/dist/components/Byline/Byline.svelte.d.ts +48 -48
- package/dist/components/DatawrapperChart/{stories/docs/component.md → DatawrapperChart.mdx} +20 -0
- package/dist/components/DatawrapperChart/DatawrapperChart.stories.svelte +31 -39
- package/dist/components/DatawrapperChart/DatawrapperChart.stories.svelte.d.ts +17 -27
- package/dist/components/DatawrapperChart/DatawrapperChart.svelte +94 -40
- package/dist/components/DatawrapperChart/DatawrapperChart.svelte.d.ts +42 -53
- package/dist/components/DocumentCloud/DocumentCloud.mdx +26 -0
- package/dist/components/DocumentCloud/DocumentCloud.stories.svelte +16 -25
- package/dist/components/DocumentCloud/DocumentCloud.stories.svelte.d.ts +17 -27
- package/dist/components/DocumentCloud/DocumentCloud.svelte +31 -10
- package/dist/components/DocumentCloud/DocumentCloud.svelte.d.ts +21 -30
- package/dist/components/EmbedPreviewerLink/EmbedPreviewerLink.mdx +19 -0
- package/dist/components/EmbedPreviewerLink/EmbedPreviewerLink.stories.svelte +11 -18
- package/dist/components/EmbedPreviewerLink/EmbedPreviewerLink.stories.svelte.d.ts +17 -21
- package/dist/components/EmbedPreviewerLink/EmbedPreviewerLink.svelte +9 -4
- package/dist/components/EmbedPreviewerLink/EmbedPreviewerLink.svelte.d.ts +5 -17
- package/dist/components/EndNotes/EndNotes.mdx +67 -0
- package/dist/components/EndNotes/EndNotes.stories.svelte +10 -15
- package/dist/components/EndNotes/EndNotes.stories.svelte.d.ts +17 -21
- package/dist/components/EndNotes/EndNotes.svelte +30 -14
- package/dist/components/EndNotes/EndNotes.svelte.d.ts +19 -31
- package/dist/components/FeaturePhoto/FeaturePhoto.mdx +72 -0
- package/dist/components/FeaturePhoto/FeaturePhoto.stories.svelte +24 -49
- package/dist/components/FeaturePhoto/FeaturePhoto.stories.svelte.d.ts +17 -31
- package/dist/components/FeaturePhoto/FeaturePhoto.svelte +108 -43
- package/dist/components/FeaturePhoto/FeaturePhoto.svelte.d.ts +57 -58
- package/dist/components/Framer/Framer.mdx +19 -0
- package/dist/components/Framer/Framer.stories.svelte +11 -18
- package/dist/components/Framer/Framer.stories.svelte.d.ts +17 -21
- package/dist/components/Framer/Framer.svelte +97 -69
- package/dist/components/Framer/Framer.svelte.d.ts +8 -30
- package/dist/components/Framer/Resizer/index.svelte +54 -41
- package/dist/components/Framer/Resizer/index.svelte.d.ts +7 -28
- package/dist/components/Framer/Typeahead/Search.svelte +101 -0
- package/dist/components/Framer/Typeahead/Search.svelte.d.ts +18 -0
- package/dist/components/Framer/Typeahead/fuzzy.d.ts +22 -9
- package/dist/components/Framer/Typeahead/fuzzy.js +70 -129
- package/dist/components/Framer/Typeahead/index.svelte +133 -121
- package/dist/components/Framer/Typeahead/index.svelte.d.ts +31 -138
- package/dist/components/Framer/stores.d.ts +1 -1
- package/dist/components/Framer/stores.js +0 -1
- package/dist/components/Framer/stories/docs/component.md +1 -1
- package/dist/components/Framer/uniqNames.d.ts +1 -1
- package/dist/components/Framer/uniqNames.js +45 -49
- package/dist/components/GraphicBlock/GraphicBlock.mdx +215 -0
- package/dist/components/GraphicBlock/GraphicBlock.stories.svelte +80 -60
- package/dist/components/GraphicBlock/GraphicBlock.stories.svelte.d.ts +17 -31
- package/dist/components/GraphicBlock/GraphicBlock.svelte +130 -69
- package/dist/components/GraphicBlock/GraphicBlock.svelte.d.ts +50 -65
- package/dist/components/GraphicBlock/components/AriaHidden.svelte +22 -0
- package/dist/components/GraphicBlock/components/AriaHidden.svelte.d.ts +12 -0
- package/dist/components/GraphicBlock/components/TextBlock.svelte +23 -0
- package/dist/components/GraphicBlock/components/TextBlock.svelte.d.ts +11 -0
- package/dist/components/GraphicBlock/{stories → demo}/ai2svelte/ai-chart.svelte +7 -11
- package/dist/components/GraphicBlock/demo/ai2svelte/ai-chart.svelte.d.ts +3 -0
- package/dist/components/Headline/Headline.mdx +150 -0
- package/dist/components/Headline/Headline.stories.svelte +78 -92
- package/dist/components/Headline/Headline.stories.svelte.d.ts +17 -31
- package/dist/components/Headline/Headline.svelte +108 -49
- package/dist/components/Headline/Headline.svelte.d.ts +42 -53
- package/dist/components/Headline/{stories → demo}/graphic.svelte +8 -9
- package/dist/components/Headline/demo/graphic.svelte.d.ts +6 -0
- package/dist/components/HeroHeadline/HeroHeadline.mdx +329 -0
- package/dist/components/HeroHeadline/HeroHeadline.stories.svelte +264 -0
- package/dist/components/HeroHeadline/HeroHeadline.stories.svelte.d.ts +19 -0
- package/dist/components/HeroHeadline/HeroHeadline.svelte +277 -0
- package/dist/components/HeroHeadline/HeroHeadline.svelte.d.ts +84 -0
- package/dist/components/HeroHeadline/{stories → demo}/graphics/crash.svelte +8 -15
- package/dist/components/HeroHeadline/demo/graphics/crash.svelte.d.ts +6 -0
- package/dist/components/HeroHeadline/{stories → demo}/graphics/quakemap.svelte +7 -7
- package/dist/components/HeroHeadline/demo/graphics/quakemap.svelte.d.ts +6 -0
- package/dist/components/InfoBox/InfoBox.mdx +122 -0
- package/dist/components/InfoBox/InfoBox.stories.svelte +86 -38
- package/dist/components/InfoBox/InfoBox.stories.svelte.d.ts +17 -31
- package/dist/components/InfoBox/InfoBox.svelte +69 -21
- package/dist/components/InfoBox/InfoBox.svelte.d.ts +41 -45
- package/dist/components/PaddingReset/PaddingReset.mdx +53 -0
- package/dist/components/PaddingReset/PaddingReset.stories.svelte +33 -33
- package/dist/components/PaddingReset/PaddingReset.stories.svelte.d.ts +17 -21
- package/dist/components/PaddingReset/PaddingReset.svelte +17 -7
- package/dist/components/PaddingReset/PaddingReset.svelte.d.ts +14 -29
- package/dist/components/PaddingReset/shark.jpg +0 -0
- package/dist/components/PhotoPack/PhotoPack.mdx +125 -0
- package/dist/components/PhotoPack/PhotoPack.stories.svelte +69 -108
- package/dist/components/PhotoPack/PhotoPack.stories.svelte.d.ts +17 -31
- package/dist/components/PhotoPack/PhotoPack.svelte +85 -43
- package/dist/components/PhotoPack/PhotoPack.svelte.d.ts +32 -52
- package/dist/components/PhotoPack/utils.d.ts +2 -0
- package/dist/components/PhotoPack/utils.js +17 -0
- package/dist/components/PymChild/PymChild.mdx +33 -0
- package/dist/components/PymChild/PymChild.stories.svelte +8 -17
- package/dist/components/PymChild/PymChild.stories.svelte.d.ts +17 -21
- package/dist/components/PymChild/PymChild.svelte +16 -9
- package/dist/components/PymChild/PymChild.svelte.d.ts +7 -18
- package/dist/components/PymChild/state.svelte.d.ts +6 -0
- package/dist/components/PymChild/state.svelte.js +1 -0
- package/dist/components/ReferralBlock/ReferralBlock.mdx +44 -0
- package/dist/components/ReferralBlock/ReferralBlock.stories.svelte +35 -45
- package/dist/components/ReferralBlock/ReferralBlock.stories.svelte.d.ts +17 -35
- package/dist/components/ReferralBlock/ReferralBlock.svelte +113 -66
- package/dist/components/ReferralBlock/ReferralBlock.svelte.d.ts +36 -41
- package/dist/components/ReutersGraphicsLogo/ReutersGraphicsLogo.mdx +21 -0
- package/dist/components/ReutersGraphicsLogo/ReutersGraphicsLogo.stories.svelte +12 -17
- package/dist/components/ReutersGraphicsLogo/ReutersGraphicsLogo.stories.svelte.d.ts +17 -21
- package/dist/components/ReutersGraphicsLogo/ReutersGraphicsLogo.svelte +15 -3
- package/dist/components/ReutersGraphicsLogo/ReutersGraphicsLogo.svelte.d.ts +11 -20
- package/dist/components/ReutersLogo/ReutersLogo.mdx +19 -0
- package/dist/components/ReutersLogo/ReutersLogo.stories.svelte +12 -20
- package/dist/components/ReutersLogo/ReutersLogo.stories.svelte.d.ts +17 -29
- package/dist/components/ReutersLogo/ReutersLogo.svelte +30 -19
- package/dist/components/ReutersLogo/ReutersLogo.svelte.d.ts +11 -20
- package/dist/components/SEO/SEO.mdx +80 -0
- package/dist/components/SEO/SEO.stories.svelte +18 -36
- package/dist/components/SEO/SEO.stories.svelte.d.ts +16 -22
- package/dist/components/SEO/SEO.svelte +151 -91
- package/dist/components/SEO/SEO.svelte.d.ts +53 -71
- package/dist/components/Scroller/Background.svelte +14 -10
- package/dist/components/Scroller/Background.svelte.d.ts +8 -20
- package/dist/components/Scroller/Embedded/Background.svelte +13 -9
- package/dist/components/Scroller/Embedded/Background.svelte.d.ts +7 -19
- package/dist/components/Scroller/Embedded/Foreground.svelte +16 -11
- package/dist/components/Scroller/Embedded/Foreground.svelte.d.ts +6 -18
- package/dist/components/Scroller/Embedded/index.svelte +18 -5
- package/dist/components/Scroller/Embedded/index.svelte.d.ts +8 -19
- package/dist/components/Scroller/Foreground.svelte +14 -9
- package/dist/components/Scroller/Foreground.svelte.d.ts +5 -17
- package/dist/components/Scroller/Scroller.mdx +279 -0
- package/dist/components/Scroller/Scroller.stories.svelte +107 -100
- package/dist/components/Scroller/Scroller.stories.svelte.d.ts +17 -38
- package/dist/components/Scroller/Scroller.svelte +121 -44
- package/dist/components/Scroller/Scroller.svelte.d.ts +66 -83
- package/dist/components/Scroller/ScrollerBase/index.svelte +267 -0
- package/dist/components/Scroller/ScrollerBase/index.svelte.d.ts +32 -0
- package/dist/components/Scroller/demo/components/ai2svelte/ai-foreground.svelte +118 -0
- package/dist/components/Scroller/demo/components/ai2svelte/ai-foreground.svelte.d.ts +6 -0
- package/dist/components/Scroller/{stories → demo}/components/ai2svelte/ai-scroller-1.svelte +4 -14
- package/dist/components/Scroller/demo/components/ai2svelte/ai-scroller-1.svelte.d.ts +3 -0
- package/dist/components/Scroller/{stories → demo}/components/ai2svelte/ai-scroller-2.svelte +3 -3
- package/dist/components/Scroller/demo/components/ai2svelte/ai-scroller-2.svelte.d.ts +3 -0
- package/dist/components/Scroller/{stories → demo}/components/ai2svelte/ai-scroller-3.svelte +3 -3
- package/dist/components/Scroller/demo/components/ai2svelte/ai-scroller-3.svelte.d.ts +3 -0
- package/dist/components/Scroller/demo/components/ai2svelte/images/Body-issues-key-xs.png +0 -0
- package/dist/components/Scroller/demo/components/basic/InteractiveForeground.svelte +17 -0
- package/dist/components/Scroller/demo/components/basic/InteractiveForeground.svelte.d.ts +6 -0
- package/dist/components/Scroller/demo/components/basic/Step.svelte +16 -0
- package/dist/components/Scroller/demo/components/basic/Step.svelte.d.ts +6 -0
- package/dist/components/SearchInput/SearchInput.mdx +29 -0
- package/dist/components/SearchInput/SearchInput.stories.svelte +20 -15
- package/dist/components/SearchInput/SearchInput.stories.svelte.d.ts +17 -21
- package/dist/components/SearchInput/SearchInput.svelte +31 -20
- package/dist/components/SearchInput/SearchInput.svelte.d.ts +9 -23
- package/dist/components/SearchInput/components/MagnifyingGlass.svelte.d.ts +26 -0
- package/dist/components/SearchInput/components/X.svelte.d.ts +26 -0
- package/dist/components/SimpleTimeline/SimpleTimeline.mdx +119 -0
- package/dist/components/SimpleTimeline/SimpleTimeline.stories.svelte +28 -36
- package/dist/components/SimpleTimeline/SimpleTimeline.stories.svelte.d.ts +17 -29
- package/dist/components/SimpleTimeline/SimpleTimeline.svelte +51 -15
- package/dist/components/SimpleTimeline/SimpleTimeline.svelte.d.ts +34 -44
- package/dist/components/SiteFooter/CompanyLinks.svelte +34 -6
- package/dist/components/SiteFooter/CompanyLinks.svelte.d.ts +11 -24
- package/dist/components/SiteFooter/LegalLinks.svelte +42 -9
- package/dist/components/SiteFooter/LegalLinks.svelte.d.ts +18 -24
- package/dist/components/SiteFooter/QuickLinks.svelte +60 -15
- package/dist/components/SiteFooter/QuickLinks.svelte.d.ts +27 -24
- package/dist/components/SiteFooter/SiteFooter.mdx +45 -0
- package/dist/components/SiteFooter/SiteFooter.stories.svelte +11 -31
- package/dist/components/SiteFooter/SiteFooter.stories.svelte.d.ts +17 -21
- package/dist/components/SiteFooter/SiteFooter.svelte +45 -31
- package/dist/components/SiteFooter/SiteFooter.svelte.d.ts +9 -20
- package/dist/components/SiteFooter/data.json +2 -2
- package/dist/components/SiteFooter/svgs/Facebook.svelte +6 -2
- package/dist/components/SiteFooter/svgs/Facebook.svelte.d.ts +5 -24
- package/dist/components/SiteFooter/svgs/Graphics.svelte.d.ts +22 -21
- package/dist/components/SiteFooter/svgs/Instagram.svelte +6 -2
- package/dist/components/SiteFooter/svgs/Instagram.svelte.d.ts +5 -24
- package/dist/components/SiteFooter/svgs/LinkedIn.svelte +6 -2
- package/dist/components/SiteFooter/svgs/LinkedIn.svelte.d.ts +5 -24
- package/dist/components/SiteFooter/svgs/Pictures.svelte.d.ts +22 -21
- package/dist/components/SiteFooter/svgs/Twitter.svelte +6 -2
- package/dist/components/SiteFooter/svgs/Twitter.svelte.d.ts +5 -24
- package/dist/components/SiteFooter/svgs/Videos.svelte.d.ts +22 -21
- package/dist/components/SiteFooter/svgs/YouTube.svelte +6 -2
- package/dist/components/SiteFooter/svgs/YouTube.svelte.d.ts +5 -24
- package/dist/components/SiteHeader/MobileMenu/index.svelte +45 -12
- package/dist/components/SiteHeader/MobileMenu/index.svelte.d.ts +7 -28
- package/dist/components/SiteHeader/NavBar/DownArrow.svelte +7 -3
- package/dist/components/SiteHeader/NavBar/DownArrow.svelte.d.ts +5 -24
- package/dist/components/SiteHeader/NavBar/NavDropdown/MoreDropdown.svelte +11 -7
- package/dist/components/SiteHeader/NavBar/NavDropdown/MoreDropdown.svelte.d.ts +5 -25
- package/dist/components/SiteHeader/NavBar/NavDropdown/SectionDropdown.svelte +13 -9
- package/dist/components/SiteHeader/NavBar/NavDropdown/SectionDropdown.svelte.d.ts +5 -26
- package/dist/components/SiteHeader/NavBar/NavDropdown/Spinner/index.svelte +1 -0
- package/dist/components/SiteHeader/NavBar/NavDropdown/Spinner/index.svelte.d.ts +22 -21
- package/dist/components/SiteHeader/NavBar/NavDropdown/StoryCard/index.svelte +10 -20
- package/dist/components/SiteHeader/NavBar/NavDropdown/StoryCard/index.svelte.d.ts +4 -24
- package/dist/components/SiteHeader/NavBar/NavDropdown/StoryCard/time.d.ts +2 -1
- package/dist/components/SiteHeader/NavBar/NavDropdown/StoryCard/time.js +36 -45
- package/dist/components/SiteHeader/NavBar/NavDropdown/index.svelte +65 -22
- package/dist/components/SiteHeader/NavBar/NavDropdown/index.svelte.d.ts +7 -28
- package/dist/components/SiteHeader/NavBar/index.svelte +46 -40
- package/dist/components/SiteHeader/NavBar/index.svelte.d.ts +5 -25
- package/dist/components/SiteHeader/NavBar/utils/index.d.ts +1 -1
- package/dist/components/SiteHeader/NavBar/utils/index.js +1 -2
- package/dist/components/SiteHeader/SiteHeader.mdx +33 -0
- package/dist/components/SiteHeader/SiteHeader.stories.svelte +27 -26
- package/dist/components/SiteHeader/SiteHeader.stories.svelte.d.ts +17 -28
- package/dist/components/SiteHeader/SiteHeader.svelte +64 -39
- package/dist/components/SiteHeader/SiteHeader.svelte.d.ts +3 -16
- package/dist/components/SiteHeader/scss/_grids.scss +49 -17
- package/dist/components/SiteHeader/svgs/Close.svelte.d.ts +22 -21
- package/dist/components/SiteHeader/svgs/Menu.svelte +6 -2
- package/dist/components/SiteHeader/svgs/Menu.svelte.d.ts +5 -24
- package/dist/components/SiteHeadline/SiteHeadline.mdx +66 -0
- package/dist/components/SiteHeadline/SiteHeadline.stories.svelte +17 -35
- package/dist/components/SiteHeadline/SiteHeadline.stories.svelte.d.ts +17 -36
- package/dist/components/SiteHeadline/SiteHeadline.svelte +59 -26
- package/dist/components/SiteHeadline/SiteHeadline.svelte.d.ts +31 -54
- package/dist/components/Spinner/Spinner.mdx +25 -0
- package/dist/components/Spinner/Spinner.stories.svelte +17 -25
- package/dist/components/Spinner/Spinner.stories.svelte.d.ts +17 -58
- package/dist/components/Spinner/Spinner.svelte +30 -6
- package/dist/components/Spinner/Spinner.svelte.d.ts +23 -30
- package/dist/components/Table/Table.mdx +177 -0
- package/dist/components/Table/Table.stories.svelte +56 -79
- package/dist/components/Table/Table.stories.svelte.d.ts +17 -27
- package/dist/components/Table/Table.svelte +201 -134
- package/dist/components/Table/Table.svelte.d.ts +50 -94
- package/dist/components/Table/components/LeftArrow.svelte.d.ts +26 -0
- package/dist/components/Table/{Pagination.svelte → components/Pagination.svelte} +48 -21
- package/dist/components/Table/components/Pagination.svelte.d.ts +21 -0
- package/dist/components/Table/components/RightArrow.svelte.d.ts +26 -0
- package/dist/components/Table/{Select.svelte → components/Select.svelte} +25 -13
- package/dist/components/Table/components/Select.svelte.d.ts +16 -0
- package/dist/components/Table/{SortArrow.svelte → components/SortArrow.svelte} +19 -4
- package/dist/components/Table/components/SortArrow.svelte.d.ts +16 -0
- package/dist/components/Table/utils.d.ts +39 -3
- package/dist/components/Table/utils.js +80 -26
- package/dist/components/Theme/@types/component.d.ts +5 -6
- package/dist/components/Theme/Theme.mdx +164 -0
- package/dist/components/Theme/Theme.stories.svelte +55 -57
- package/dist/components/Theme/Theme.stories.svelte.d.ts +17 -30
- package/dist/components/Theme/Theme.svelte +45 -11
- package/dist/components/Theme/Theme.svelte.d.ts +19 -28
- package/dist/components/Theme/demo/ThemedPage.svelte +36 -0
- package/dist/components/Theme/demo/ThemedPage.svelte.d.ts +26 -0
- package/dist/components/Theme/themes/common.d.ts +26 -1
- package/dist/components/Theme/themes/dark.d.ts +12 -1
- package/dist/components/Theme/themes/light.d.ts +12 -1
- package/dist/components/Theme/utils/flatten.d.ts +1 -1
- package/dist/components/Theme/utils/flatten.js +27 -33
- package/dist/components/Theme/utils/merge.d.ts +2 -1
- package/dist/components/Theme/utils/merge.js +16 -15
- package/dist/components/ToolsHeader/ToolsHeader.mdx +23 -0
- package/dist/components/ToolsHeader/ToolsHeader.stories.svelte +10 -16
- package/dist/components/ToolsHeader/ToolsHeader.stories.svelte.d.ts +17 -21
- package/dist/components/ToolsHeader/ToolsHeader.svelte +57 -16
- package/dist/components/ToolsHeader/ToolsHeader.svelte.d.ts +34 -38
- package/dist/components/Video/Video.mdx +155 -0
- package/dist/components/Video/Video.stories.svelte +72 -56
- package/dist/components/Video/Video.stories.svelte.d.ts +17 -21
- package/dist/components/Video/Video.svelte +277 -192
- package/dist/components/Video/Video.svelte.d.ts +53 -77
- package/dist/components/Video/types.d.ts +1 -0
- package/dist/components/Video/types.js +1 -0
- package/dist/components/Video/utils.d.ts +3 -0
- package/dist/components/Video/utils.js +13 -0
- package/dist/components/Visible/Visible.mdx +33 -0
- package/dist/components/Visible/Visible.stories.svelte +18 -22
- package/dist/components/Visible/Visible.stories.svelte.d.ts +17 -21
- package/dist/components/Visible/Visible.svelte +74 -37
- package/dist/components/Visible/Visible.svelte.d.ts +23 -31
- package/dist/docs/contributing/component-guidelines.mdx +19 -48
- package/dist/docs/contributing/quickstart.mdx +2 -12
- package/dist/docs/contributing/writing-component-stories.mdx +5 -6
- package/dist/docs/docs-components/ThemeBuilder/Customiser/Value.jsx +2 -1
- package/dist/docs/docs-components/ThemeBuilder/ThemeBuilder.jsx +1 -1
- package/dist/docs/guides/archieml.mdx +18 -18
- package/dist/docs/guides/graphics-kit.mdx +5 -5
- package/dist/docs/guides/svelte-components.mdx +9 -9
- package/dist/docs/intro.mdx +2 -2
- package/dist/docs/styles/intro.mdx +1 -1
- package/dist/docs/theming/css-variables.mdx +7 -7
- package/dist/docs/utils/css-to-js/index.d.ts +2 -0
- package/dist/docs/utils/css-to-js/index.js +388 -0
- package/dist/docs/utils/parseCss.d.ts +3 -3
- package/dist/docs/utils/parseCss.js +37 -43
- package/dist/index.d.ts +43 -45
- package/dist/index.js +5 -12
- package/dist/journalize.d.ts +19 -0
- package/dist/scss/tokens/text/mixins/_font-family.scss +2 -1
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.js +12 -0
- package/package.json +59 -77
- package/dist/components/Analytics/stories/docs/component.md +0 -11
- package/dist/components/Analytics/stories/docs/environments.md +0 -17
- package/dist/components/Analytics/stories/docs/multipage.md +0 -31
- package/dist/components/Article/stories/docs/component.md +0 -13
- package/dist/components/Article/stories/docs/customWellWidths.md +0 -87
- package/dist/components/BeforeAfter/stories/docs/ariaDescriptions.md +0 -35
- package/dist/components/BeforeAfter/stories/docs/component.md +0 -15
- package/dist/components/BeforeAfter/stories/docs/withOverlays.md +0 -33
- package/dist/components/Block/stories/docs/component.md +0 -15
- package/dist/components/Block/stories/docs/customLayouts.md +0 -13
- package/dist/components/Block/stories/docs/snapWidths.md +0 -50
- package/dist/components/BodyText/stories/docs/component.md +0 -46
- package/dist/components/Byline/stories/docs/component.md +0 -19
- package/dist/components/DatawrapperChart/stories/docs/withChatter.md +0 -5
- package/dist/components/DocumentCloud/stories/docs/component.md +0 -17
- package/dist/components/EmbedPreviewerLink/stories/docs/component.md +0 -11
- package/dist/components/EndNotes/stories/docs/component.md +0 -24
- package/dist/components/FeaturePhoto/stories/docs/archieML.md +0 -37
- package/dist/components/FeaturePhoto/stories/docs/component.md +0 -16
- package/dist/components/FeaturePhoto/stories/docs/missingAltText.md +0 -1
- package/dist/components/GraphicBlock/AriaHidden.svelte +0 -10
- package/dist/components/GraphicBlock/AriaHidden.svelte.d.ts +0 -22
- package/dist/components/GraphicBlock/TextBlock.svelte +0 -11
- package/dist/components/GraphicBlock/TextBlock.svelte.d.ts +0 -21
- package/dist/components/GraphicBlock/stories/ai2svelte/ai-chart.svelte.d.ts +0 -25
- package/dist/components/GraphicBlock/stories/docs/ai2svelte.md +0 -19
- package/dist/components/GraphicBlock/stories/docs/archieML.md +0 -40
- package/dist/components/GraphicBlock/stories/docs/aria.md +0 -56
- package/dist/components/GraphicBlock/stories/docs/component.md +0 -20
- package/dist/components/GraphicBlock/stories/docs/customText.md +0 -14
- package/dist/components/Headline/stories/docs/component.md +0 -13
- package/dist/components/Headline/stories/docs/customHed.md +0 -31
- package/dist/components/Headline/stories/docs/withByline.md +0 -13
- package/dist/components/Headline/stories/docs/withCrownGraphic.md +0 -24
- package/dist/components/Headline/stories/docs/withCrownImage.md +0 -21
- package/dist/components/Headline/stories/docs/withDek.md +0 -11
- package/dist/components/Headline/stories/graphic.svelte.d.ts +0 -25
- package/dist/components/HeroHeadline/Hero.stories.svelte +0 -322
- package/dist/components/HeroHeadline/Hero.stories.svelte.d.ts +0 -42
- package/dist/components/HeroHeadline/Hero.svelte +0 -193
- package/dist/components/HeroHeadline/Hero.svelte.d.ts +0 -75
- package/dist/components/HeroHeadline/stories/docs/backgroundGraphic.md +0 -84
- package/dist/components/HeroHeadline/stories/docs/backgroundVideo.md +0 -51
- package/dist/components/HeroHeadline/stories/docs/component.md +0 -20
- package/dist/components/HeroHeadline/stories/docs/customHed.md +0 -43
- package/dist/components/HeroHeadline/stories/docs/inlineGraphic.md +0 -38
- package/dist/components/HeroHeadline/stories/docs/inlinePhoto.md +0 -34
- package/dist/components/HeroHeadline/stories/docs/inlineVideo.md +0 -34
- package/dist/components/HeroHeadline/stories/docs/transparentHeader.md +0 -17
- package/dist/components/HeroHeadline/stories/graphics/crash.svelte.d.ts +0 -25
- package/dist/components/HeroHeadline/stories/graphics/quakemap.svelte.d.ts +0 -25
- package/dist/components/InfoBox/stories/docs/component.md +0 -17
- package/dist/components/Markdown/Markdown.stories.svelte +0 -28
- package/dist/components/Markdown/Markdown.stories.svelte.d.ts +0 -23
- package/dist/components/Markdown/Markdown.svelte +0 -34
- package/dist/components/Markdown/Markdown.svelte.d.ts +0 -20
- package/dist/components/Markdown/stores.d.ts +0 -23
- package/dist/components/Markdown/stores.js +0 -24
- package/dist/components/Markdown/stories/docs/component.md +0 -39
- package/dist/components/PaddingReset/stories/docs/component.md +0 -35
- package/dist/components/PhotoCarousel/PhotoCarousel.stories.svelte +0 -72
- package/dist/components/PhotoCarousel/PhotoCarousel.stories.svelte.d.ts +0 -29
- package/dist/components/PhotoCarousel/PhotoCarousel.svelte +0 -202
- package/dist/components/PhotoCarousel/PhotoCarousel.svelte.d.ts +0 -78
- package/dist/components/PhotoCarousel/stories/docs/component.md +0 -21
- package/dist/components/PhotoCarousel/stories/docs/withCustom.md +0 -27
- package/dist/components/PhotoCarousel/stories/photos.json +0 -72
- package/dist/components/PhotoPack/stories/docs/archieML.md +0 -63
- package/dist/components/PhotoPack/stories/docs/component.md +0 -45
- package/dist/components/PhotoPack/stories/docs/missingAltText.md +0 -1
- package/dist/components/PymChild/stores.d.ts +0 -1
- package/dist/components/PymChild/stores.js +0 -3
- package/dist/components/PymChild/stories/docs/component.md +0 -28
- package/dist/components/ReferralBlock/stories/docs/collection.md +0 -7
- package/dist/components/ReferralBlock/stories/docs/component.md +0 -15
- package/dist/components/ReutersGraphicsLogo/stories/docs/component.md +0 -11
- package/dist/components/ReutersLogo/stories/docs/component.md +0 -9
- package/dist/components/SEO/stories/docs/archieML.md +0 -36
- package/dist/components/SEO/stories/docs/component.md +0 -26
- package/dist/components/Scroller/stories/components/ai2svelte/ai-scroller-1.svelte.d.ts +0 -25
- package/dist/components/Scroller/stories/components/ai2svelte/ai-scroller-2.svelte.d.ts +0 -25
- package/dist/components/Scroller/stories/components/ai2svelte/ai-scroller-3.svelte.d.ts +0 -25
- package/dist/components/Scroller/stories/components/basic/InteractiveForeground.svelte +0 -13
- package/dist/components/Scroller/stories/components/basic/InteractiveForeground.svelte.d.ts +0 -25
- package/dist/components/Scroller/stories/components/basic/Step.svelte +0 -12
- package/dist/components/Scroller/stories/components/basic/Step.svelte.d.ts +0 -25
- package/dist/components/Scroller/stories/docs/ai2svelte.md +0 -42
- package/dist/components/Scroller/stories/docs/archieML.md +0 -87
- package/dist/components/Scroller/stories/docs/component.md +0 -39
- package/dist/components/Scroller/stories/docs/interactive.md +0 -36
- package/dist/components/SearchInput/MagnifyingGlass.svelte.d.ts +0 -25
- package/dist/components/SearchInput/X.svelte.d.ts +0 -25
- package/dist/components/SearchInput/stories/docs/component.md +0 -17
- package/dist/components/SimpleTimeline/stories/docs/component.md +0 -24
- package/dist/components/SiteFooter/stories/docs/component.md +0 -11
- package/dist/components/SiteFooter/stories/docs/darkTheme.md +0 -11
- package/dist/components/SiteFooter/stories/docs/removeReferrals.md +0 -9
- package/dist/components/SiteHeader/stories/docs/component.md +0 -11
- package/dist/components/SiteHeader/stories/docs/darkTheme.md +0 -11
- package/dist/components/SiteHeadline/stories/docs/archieML.md +0 -26
- package/dist/components/SiteHeadline/stories/docs/component.md +0 -21
- package/dist/components/Spinner/stories/docs/component.md +0 -15
- package/dist/components/Table/LeftArrow.svelte.d.ts +0 -25
- package/dist/components/Table/Pagination.svelte.d.ts +0 -33
- package/dist/components/Table/RightArrow.svelte.d.ts +0 -25
- package/dist/components/Table/Select.svelte.d.ts +0 -28
- package/dist/components/Table/SortArrow.svelte.d.ts +0 -22
- package/dist/components/Table/stories/docs/both.md +0 -13
- package/dist/components/Table/stories/docs/component.md +0 -14
- package/dist/components/Table/stories/docs/filter.md +0 -11
- package/dist/components/Table/stories/docs/format.md +0 -21
- package/dist/components/Table/stories/docs/metadata.md +0 -14
- package/dist/components/Table/stories/docs/paginate.md +0 -14
- package/dist/components/Table/stories/docs/search.md +0 -11
- package/dist/components/Table/stories/docs/sort.md +0 -14
- package/dist/components/Table/stories/docs/style.md +0 -23
- package/dist/components/Table/stories/docs/truncate.md +0 -11
- package/dist/components/Theme/stories/ThemedPage.svelte +0 -43
- package/dist/components/Theme/stories/ThemedPage.svelte.d.ts +0 -25
- package/dist/components/Theme/stories/docs/component.md +0 -15
- package/dist/components/Theme/stories/docs/customise-font.md +0 -52
- package/dist/components/Theme/stories/docs/customise.md +0 -28
- package/dist/components/Theme/stories/docs/gfonts.png +0 -0
- package/dist/components/Theme/stories/docs/inheritance.md +0 -17
- package/dist/components/Theme/stories/docs/pattern.md +0 -40
- package/dist/components/ToolsHeader/stories/docs/component.md +0 -13
- package/dist/components/Video/Controls.svelte +0 -75
- package/dist/components/Video/Controls.svelte.d.ts +0 -47
- package/dist/components/Video/docs.svx +0 -275
- package/dist/components/Video/stories/docs/component.md +0 -15
- package/dist/components/Video/stories/docs/controls.md +0 -38
- package/dist/components/Video/stories/docs/playAndLoop.md +0 -28
- package/dist/components/Video/stories/docs/withSound.md +0 -36
- package/dist/components/Visible/stories/docs/component.md +0 -19
- package/dist/components/Visible/stories/snippets/default.svelte +0 -11
- package/dist/components/Visible/stories/snippets/default.svelte.d.ts +0 -25
- package/dist/docs/contributing/story-recipes/basic-story.mdx +0 -77
- package/dist/docs/contributing/story-recipes/source-code.png +0 -0
- package/dist/docs/contributing/story-recipes/story-with-custom-controls.mdx +0 -46
- package/dist/docs/contributing/story-recipes/story-with-custom-docs.mdx +0 -130
- package/dist/docs/contributing/story-recipes/story-with-media.mdx +0 -50
- package/dist/docs/contributing/writing-docs-stories.mdx +0 -35
- package/dist/docs/utils/withParams.d.ts +0 -15
- package/dist/docs/utils/withParams.js +0 -46
- /package/dist/components/BeforeAfter/{stories → images}/myrne-after.jpg +0 -0
- /package/dist/components/BeforeAfter/{stories → images}/myrne-before.jpg +0 -0
- /package/dist/components/FeaturePhoto/{stories → images}/shark.jpg +0 -0
- /package/dist/components/GraphicBlock/{stories → demo}/imgs/ai-chart-md.png +0 -0
- /package/dist/components/GraphicBlock/{stories → demo}/imgs/ai-chart-sm.png +0 -0
- /package/dist/components/GraphicBlock/{stories → demo}/imgs/ai-chart-xs.png +0 -0
- /package/dist/components/GraphicBlock/{stories → demo}/placeholder.png +0 -0
- /package/dist/components/Headline/{stories → demo}/crown.png +0 -0
- /package/dist/components/Headline/{stories → demo}/graphic-lg.png +0 -0
- /package/dist/components/Headline/{stories → demo}/graphic-md.png +0 -0
- /package/dist/components/Headline/{stories → demo}/graphic-sm.png +0 -0
- /package/dist/components/Headline/{stories → demo}/graphic-xl.png +0 -0
- /package/dist/components/Headline/{stories → demo}/graphic-xs.png +0 -0
- /package/dist/components/HeroHeadline/{stories → demo}/eurovis.jpeg +0 -0
- /package/dist/components/HeroHeadline/{stories → demo}/graphics/CRASH_1-lg.jpeg +0 -0
- /package/dist/components/HeroHeadline/{stories → demo}/graphics/CRASH_1-md.jpeg +0 -0
- /package/dist/components/HeroHeadline/{stories → demo}/graphics/CRASH_1-sm.jpeg +0 -0
- /package/dist/components/HeroHeadline/{stories → demo}/graphics/CRASH_1-xl.jpeg +0 -0
- /package/dist/components/HeroHeadline/{stories → demo}/graphics/CRASH_1-xl_copy.jpeg +0 -0
- /package/dist/components/HeroHeadline/{stories → demo}/graphics/CRASH_1-xs.jpeg +0 -0
- /package/dist/components/HeroHeadline/{stories → demo}/graphics/quake-map-top-lg.jpeg +0 -0
- /package/dist/components/HeroHeadline/{stories → demo}/graphics/quake-map-top-md.jpeg +0 -0
- /package/dist/components/HeroHeadline/{stories → demo}/graphics/quake-map-top-sm.jpeg +0 -0
- /package/dist/components/HeroHeadline/{stories → demo}/graphics/quake-map-top-xl.jpeg +0 -0
- /package/dist/components/HeroHeadline/{stories → demo}/graphics/quake-map-top-xs.jpeg +0 -0
- /package/dist/components/HeroHeadline/{stories → demo}/polar.jpg +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-1-lg.png +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-1-md.png +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-1-sm.png +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-1-xl.png +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-1-xs.png +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-2-lg.png +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-2-md.png +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-2-sm.png +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-2-xl.png +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-2-xs.png +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-3-lg.png +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-3-md.png +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-3-sm.png +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-3-xl.png +0 -0
- /package/dist/components/Scroller/{stories → demo}/components/ai2svelte/images/step-3-xs.png +0 -0
- /package/dist/components/SearchInput/{MagnifyingGlass.svelte → components/MagnifyingGlass.svelte} +0 -0
- /package/dist/components/SearchInput/{X.svelte → components/X.svelte} +0 -0
- /package/dist/components/Table/{LeftArrow.svelte → components/LeftArrow.svelte} +0 -0
- /package/dist/components/Table/{RightArrow.svelte → components/RightArrow.svelte} +0 -0
- /package/dist/components/Table/{stories → demo}/homeRuns.json +0 -0
- /package/dist/components/Table/{stories → demo}/pressFreedom.json +0 -0
- /package/dist/components/Table/{stories → demo}/richestWomen.json +0 -0
- /package/dist/components/Video/{stories/videos → demo}/silent-video.mp4 +0 -0
- /package/dist/components/Video/{stories/videos → demo}/sound-video.mp4 +0 -0
|
@@ -1,175 +1,274 @@
|
|
|
1
1
|
<!-- @component `BeforeAfter` [Read the docs.](https://reuters-graphics.github.io/graphics-components/?path=/docs/components-graphics-beforeafter--docs) -->
|
|
2
|
-
<script
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
2
|
+
<script lang="ts">
|
|
3
|
+
import { type Snippet } from 'svelte';
|
|
4
|
+
import { throttle } from 'es-toolkit';
|
|
5
|
+
|
|
6
|
+
import Block from '../Block/Block.svelte';
|
|
7
|
+
import PaddingReset from '../PaddingReset/PaddingReset.svelte';
|
|
8
|
+
import type { ContainerWidth } from '../@types/global';
|
|
9
|
+
import { random4 } from '../../utils/';
|
|
10
|
+
|
|
11
|
+
interface Props {
|
|
12
|
+
/** Width of the chart within the text well. Options: wide, wider, widest, fluid */
|
|
13
|
+
width?: ContainerWidth;
|
|
14
|
+
/** Height of the component */
|
|
15
|
+
height?: number;
|
|
16
|
+
/**
|
|
17
|
+
* If set, makes the height a ratio of the component's width.
|
|
18
|
+
*/
|
|
19
|
+
heightRatio?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Before image source
|
|
22
|
+
*/
|
|
23
|
+
beforeSrc: string;
|
|
24
|
+
/**
|
|
25
|
+
* Before image altText
|
|
26
|
+
*/
|
|
27
|
+
beforeAlt: string;
|
|
28
|
+
/**
|
|
29
|
+
* After image source
|
|
30
|
+
*/
|
|
31
|
+
afterSrc: string;
|
|
32
|
+
/**
|
|
33
|
+
* After image altText
|
|
34
|
+
*/
|
|
35
|
+
afterAlt: string;
|
|
36
|
+
/**
|
|
37
|
+
* Class to target with SCSS.
|
|
38
|
+
*/
|
|
39
|
+
class?: string;
|
|
40
|
+
/** Drag handle colour */
|
|
41
|
+
handleColour?: string;
|
|
42
|
+
/** Drag handle opacity */
|
|
43
|
+
handleInactiveOpacity?: number;
|
|
44
|
+
/** Margin at the edge of the image to stop dragging */
|
|
45
|
+
handleMargin?: number;
|
|
46
|
+
/** Percentage of the component width the handle will travel ona key press */
|
|
47
|
+
keyPressStep?: number;
|
|
48
|
+
/** Initial offset of the handle, between 0 and 1. */
|
|
49
|
+
offset?: number;
|
|
50
|
+
/** ID to target with SCSS. */
|
|
51
|
+
id?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Optional snippet for a custom overlay for the before image.
|
|
54
|
+
*/
|
|
55
|
+
beforeOverlay?: Snippet;
|
|
56
|
+
/**
|
|
57
|
+
* Optional snippet for a custom overlay for the after image.
|
|
58
|
+
*/
|
|
59
|
+
afterOverlay?: Snippet;
|
|
60
|
+
/**
|
|
61
|
+
* Optional snippet for a custom caption.
|
|
62
|
+
*/
|
|
63
|
+
caption?: Snippet;
|
|
64
|
+
/** Custom ARIA label language to label the component. */
|
|
65
|
+
ariaLabel?: string;
|
|
56
66
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
67
|
+
|
|
68
|
+
let {
|
|
69
|
+
width = 'normal',
|
|
70
|
+
height = 600,
|
|
71
|
+
heightRatio,
|
|
72
|
+
beforeSrc,
|
|
73
|
+
beforeAlt,
|
|
74
|
+
afterSrc,
|
|
75
|
+
afterAlt,
|
|
76
|
+
class: cls = '',
|
|
77
|
+
handleColour = 'white',
|
|
78
|
+
handleInactiveOpacity = 0.9,
|
|
79
|
+
handleMargin = 20,
|
|
80
|
+
keyPressStep = 0.05,
|
|
81
|
+
offset = 0.5,
|
|
82
|
+
id = 'before-after-' + random4() + random4(),
|
|
83
|
+
beforeOverlay,
|
|
84
|
+
afterOverlay,
|
|
85
|
+
caption,
|
|
86
|
+
ariaLabel = 'Stacked before and after images with an adjustable slider',
|
|
87
|
+
}: Props = $props();
|
|
88
|
+
|
|
89
|
+
/** DOM nodes are undefined until the component is mounted — in other words, you should read it inside an effect or an event handler, but not during component initialisation.
|
|
90
|
+
*/
|
|
91
|
+
let img: HTMLImageElement | undefined = $state(undefined);
|
|
92
|
+
|
|
93
|
+
/** Defaults with an empty DOMRect with all values set to 0 */
|
|
94
|
+
let imgOffset: DOMRect = $state(new DOMRect());
|
|
95
|
+
let sliding = false;
|
|
96
|
+
let figure: HTMLElement | undefined = $state(undefined);
|
|
97
|
+
let beforeOverlayWidth = $state(0);
|
|
98
|
+
let isFocused = false;
|
|
99
|
+
let containerWidth: number = $state(0); // Defaults to 0
|
|
100
|
+
|
|
101
|
+
let containerHeight = $derived(
|
|
102
|
+
containerWidth && heightRatio ? containerWidth * heightRatio : height
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
let w = $derived(imgOffset.width);
|
|
106
|
+
let x = $derived(w * offset);
|
|
107
|
+
let figStyle = $derived(`width:100%;height:${containerHeight}px;`);
|
|
108
|
+
const imgStyle = 'width:100%;height:100%;';
|
|
109
|
+
let beforeOverlayClip = $derived(
|
|
110
|
+
x < beforeOverlayWidth ? Math.abs(x - beforeOverlayWidth) : 0
|
|
111
|
+
);
|
|
112
|
+
|
|
113
|
+
/** Toggle `isFocused` */
|
|
114
|
+
const onfocus = () => (isFocused = true);
|
|
115
|
+
const onblur = () => (isFocused = false);
|
|
116
|
+
|
|
117
|
+
/** Handle left or right arrows being pressed */
|
|
118
|
+
const handleKeyDown = (e: KeyboardEvent) => {
|
|
119
|
+
if (!isFocused) return;
|
|
120
|
+
const { code, key } = e;
|
|
121
|
+
const margin = handleMargin / w;
|
|
122
|
+
if (code === 'ArrowRight' || key === 'ArrowRight') {
|
|
123
|
+
offset = Math.min(1 - margin, offset + keyPressStep);
|
|
124
|
+
} else if (code === 'ArrowLeft' || key === 'ArrowLeft') {
|
|
125
|
+
offset = Math.max(0 + margin, offset - keyPressStep);
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
/** Measure image and set image offset */
|
|
130
|
+
const measureImage = () => {
|
|
131
|
+
if (img && img.complete) imgOffset = img.getBoundingClientRect();
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
/** Reset image offset on resize */
|
|
135
|
+
const resize = () => {
|
|
136
|
+
measureImage();
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
/** Measure image and set image offset on load */
|
|
140
|
+
const measureLoadedImage = (e: Event) => {
|
|
141
|
+
if (e.type === 'load') {
|
|
142
|
+
imgOffset = (e.target as HTMLImageElement).getBoundingClientRect();
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
/** Move the slider */
|
|
147
|
+
const move = (e: MouseEvent | TouchEvent) => {
|
|
148
|
+
if (sliding && imgOffset) {
|
|
149
|
+
const el =
|
|
150
|
+
e instanceof TouchEvent && e.touches ? e.touches[0] : (e as MouseEvent);
|
|
151
|
+
const figureOffset =
|
|
152
|
+
figure ?
|
|
153
|
+
parseInt(window.getComputedStyle(figure).marginLeft.slice(0, -2))
|
|
154
|
+
: 0;
|
|
155
|
+
let x = el.pageX - figureOffset - imgOffset.left;
|
|
156
|
+
x =
|
|
157
|
+
x < handleMargin ? handleMargin
|
|
158
|
+
: x > w - handleMargin ? w - handleMargin
|
|
159
|
+
: x;
|
|
160
|
+
offset = x / w;
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
/** Starts the slider */
|
|
165
|
+
const start = (e: MouseEvent | TouchEvent) => {
|
|
166
|
+
sliding = true;
|
|
167
|
+
move(e);
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
/** Sets `sliding` to `false`*/
|
|
171
|
+
const end = () => {
|
|
172
|
+
sliding = false;
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
/** Keep this warning since these values are often read from an ArchieML doc, which will not trigger typescript errors even if required values don't exist */
|
|
176
|
+
if (!(beforeSrc && beforeAlt && afterSrc && afterAlt)) {
|
|
177
|
+
console.warn('Missing required src or alt props for BeforeAfter component');
|
|
65
178
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
console.warn("Missing required src or alt props for BeforeAfter component");
|
|
76
|
-
}
|
|
77
|
-
onMount(() => {
|
|
78
|
-
const interval = setInterval(() => {
|
|
79
|
-
if (imgOffset) clearInterval(interval);
|
|
80
|
-
if (img && img.complete && !imgOffset) measureImage();
|
|
81
|
-
}, 50);
|
|
82
|
-
});
|
|
179
|
+
|
|
180
|
+
/** @TODO - Double check if this onMount is still necessary */
|
|
181
|
+
// onMount(() => {
|
|
182
|
+
// // This is necessary b/c on:load doesn't reliably fire on the image...
|
|
183
|
+
// const interval = setInterval(() => {
|
|
184
|
+
// if (imgOffset) clearInterval(interval);
|
|
185
|
+
// if (img && img.complete && !imgOffset) measureImage();
|
|
186
|
+
// }, 50);
|
|
187
|
+
// });
|
|
83
188
|
</script>
|
|
84
189
|
|
|
85
190
|
<svelte:window
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
191
|
+
ontouchmove={move}
|
|
192
|
+
ontouchend={end}
|
|
193
|
+
onmousemove={move}
|
|
194
|
+
onmouseup={end}
|
|
195
|
+
onresize={throttle(resize, 100)}
|
|
196
|
+
onkeydown={handleKeyDown}
|
|
92
197
|
/>
|
|
93
198
|
|
|
199
|
+
<!-- Since we usually read these values from ArchieML, check that they exist -->
|
|
94
200
|
{#if beforeSrc && beforeAlt && afterSrc && afterAlt}
|
|
95
201
|
<Block {width} {id} class="photo before-after fmy-6 {cls}">
|
|
96
|
-
<div
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
>
|
|
100
|
-
<!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
|
|
101
|
-
<figure
|
|
102
|
-
style="{figStyle}"
|
|
202
|
+
<div style="height: {containerHeight}px;" bind:clientWidth={containerWidth}>
|
|
203
|
+
<button
|
|
204
|
+
style={figStyle}
|
|
103
205
|
class="before-after-container relative overflow-hidden my-0 mx-auto"
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
bind:this=
|
|
107
|
-
aria-
|
|
206
|
+
ontouchstart={start}
|
|
207
|
+
onmousedown={start}
|
|
208
|
+
bind:this={figure}
|
|
209
|
+
aria-label={ariaLabel}
|
|
108
210
|
>
|
|
109
211
|
<img
|
|
110
|
-
bind:this=
|
|
111
|
-
src=
|
|
112
|
-
alt=
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
style="{imgStyle}"
|
|
212
|
+
bind:this={img}
|
|
213
|
+
src={afterSrc}
|
|
214
|
+
alt={afterAlt}
|
|
215
|
+
onload={measureLoadedImage}
|
|
216
|
+
style={imgStyle}
|
|
116
217
|
class="after absolute block m-0 max-w-full object-cover"
|
|
117
|
-
aria-describedby=
|
|
118
|
-
|
|
218
|
+
aria-describedby={beforeOverlay ?
|
|
219
|
+
`${id}-before-description`
|
|
220
|
+
: undefined}
|
|
119
221
|
/>
|
|
120
222
|
|
|
121
223
|
<img
|
|
122
|
-
src=
|
|
123
|
-
alt=
|
|
124
|
-
on:mousedown|preventDefault
|
|
224
|
+
src={beforeSrc}
|
|
225
|
+
alt={beforeAlt}
|
|
125
226
|
style="clip: rect(0 {x}px {containerHeight}px 0);{imgStyle}"
|
|
126
227
|
class="before absolute block m-0 max-w-full object-cover"
|
|
127
|
-
aria-describedby=
|
|
128
|
-
|
|
228
|
+
aria-describedby={afterOverlay ?
|
|
229
|
+
`${id}-after-description`
|
|
230
|
+
: undefined}
|
|
129
231
|
/>
|
|
130
|
-
{#if
|
|
232
|
+
{#if beforeOverlay}
|
|
131
233
|
<div
|
|
132
|
-
id="
|
|
234
|
+
id="{id}-before-description"
|
|
133
235
|
class="overlay-container before absolute"
|
|
134
|
-
bind:clientWidth=
|
|
236
|
+
bind:clientWidth={beforeOverlayWidth}
|
|
135
237
|
style="clip-path: inset(0 {beforeOverlayClip}px 0 0);"
|
|
136
238
|
>
|
|
137
239
|
<!-- Overlay for before image -->
|
|
138
|
-
|
|
139
|
-
name="beforeOverlay"
|
|
140
|
-
description="{`${id}-before-description`}"
|
|
141
|
-
/>
|
|
240
|
+
{@render beforeOverlay()}
|
|
142
241
|
</div>
|
|
143
242
|
{/if}
|
|
144
|
-
{#if
|
|
145
|
-
<div
|
|
243
|
+
{#if afterOverlay}
|
|
244
|
+
<div
|
|
245
|
+
id="{id}-after-description"
|
|
246
|
+
class="overlay-container after absolute"
|
|
247
|
+
>
|
|
146
248
|
<!-- Overlay for after image -->
|
|
147
|
-
|
|
148
|
-
name="afterOverlay"
|
|
149
|
-
description="{`${id}-after-description`}"
|
|
150
|
-
/>
|
|
249
|
+
{@render afterOverlay()}
|
|
151
250
|
</div>
|
|
152
251
|
{/if}
|
|
153
252
|
<div
|
|
154
253
|
tabindex="0"
|
|
155
254
|
role="slider"
|
|
156
|
-
aria-valuenow=
|
|
255
|
+
aria-valuenow={Math.round(offset * 100)}
|
|
157
256
|
class="handle"
|
|
158
257
|
style="left: calc({offset *
|
|
159
258
|
100}% - 20px); --before-after-handle-colour: {handleColour}; --before-after-handle-inactive-opacity: {handleInactiveOpacity};"
|
|
160
|
-
|
|
161
|
-
|
|
259
|
+
{onfocus}
|
|
260
|
+
{onblur}
|
|
162
261
|
>
|
|
163
262
|
<div class="arrow-left"></div>
|
|
164
263
|
<div class="arrow-right"></div>
|
|
165
264
|
</div>
|
|
166
|
-
</
|
|
265
|
+
</button>
|
|
167
266
|
</div>
|
|
168
|
-
{#if
|
|
169
|
-
<PaddingReset containerIsFluid=
|
|
170
|
-
<aside class="before-after-caption mx-auto" id=
|
|
267
|
+
{#if caption}
|
|
268
|
+
<PaddingReset containerIsFluid={width === 'fluid'}>
|
|
269
|
+
<aside class="before-after-caption mx-auto" id={`${id}-caption`}>
|
|
171
270
|
<!-- Caption for image credits -->
|
|
172
|
-
|
|
271
|
+
{@render caption()}
|
|
173
272
|
</aside>
|
|
174
273
|
</PaddingReset>
|
|
175
274
|
{/if}
|
|
@@ -183,35 +282,35 @@ https://utopia.fyi/space/calculator/?c=320,18,1.125,1280,21,1.25,7,3,&s=0.75|0.5
|
|
|
183
282
|
https://utopia.fyi/space/calculator/?c=320,18,1.125,1280,21,1.25,7,3,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12
|
|
184
283
|
*/
|
|
185
284
|
/* Scales by 1.125 */
|
|
186
|
-
|
|
285
|
+
button.before-after-container {
|
|
187
286
|
box-sizing: content-box;
|
|
188
287
|
}
|
|
189
|
-
|
|
288
|
+
button.before-after-container img {
|
|
190
289
|
top: 0;
|
|
191
290
|
left: 0;
|
|
192
291
|
z-index: 20;
|
|
193
292
|
user-select: none;
|
|
194
293
|
}
|
|
195
|
-
|
|
294
|
+
button.before-after-container img.after {
|
|
196
295
|
z-index: 21;
|
|
197
296
|
}
|
|
198
|
-
|
|
297
|
+
button.before-after-container img.before {
|
|
199
298
|
z-index: 22;
|
|
200
299
|
}
|
|
201
|
-
|
|
202
|
-
|
|
300
|
+
button.before-after-container .overlay-container {
|
|
301
|
+
top: 0;
|
|
203
302
|
}
|
|
204
|
-
|
|
303
|
+
button.before-after-container .overlay-container :global(:first-child) {
|
|
205
304
|
margin-top: 0;
|
|
206
305
|
}
|
|
207
|
-
|
|
306
|
+
button.before-after-container .overlay-container :global(:last-child) {
|
|
208
307
|
margin-bottom: 0;
|
|
209
308
|
}
|
|
210
|
-
|
|
309
|
+
button.before-after-container .overlay-container.before {
|
|
211
310
|
left: 0;
|
|
212
311
|
z-index: 23;
|
|
213
312
|
}
|
|
214
|
-
|
|
313
|
+
button.before-after-container .overlay-container.after {
|
|
215
314
|
right: 0;
|
|
216
315
|
z-index: 21;
|
|
217
316
|
}
|
|
@@ -267,7 +366,7 @@ figure.before-after-container .overlay-container.after {
|
|
|
267
366
|
border-right: 10px solid var(--before-after-handle-colour);
|
|
268
367
|
}
|
|
269
368
|
|
|
270
|
-
|
|
369
|
+
.before-after-caption :global(p) {
|
|
271
370
|
font-family: var(--theme-font-family-note);
|
|
272
371
|
color: var(--theme-colour-text-secondary);
|
|
273
372
|
font-size: var(--theme-font-size-xs);
|
|
@@ -1,64 +1,62 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type Snippet } from 'svelte';
|
|
2
2
|
import type { ContainerWidth } from '../@types/global';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
export type BeforeAfterProps = typeof __propDef.props;
|
|
59
|
-
export type BeforeAfterEvents = typeof __propDef.events;
|
|
60
|
-
export type BeforeAfterSlots = typeof __propDef.slots;
|
|
61
|
-
/** `BeforeAfter` [Read the docs.](https://reuters-graphics.github.io/graphics-components/?path=/docs/components-graphics-beforeafter--docs) */
|
|
62
|
-
export default class BeforeAfter extends SvelteComponent<BeforeAfterProps, BeforeAfterEvents, BeforeAfterSlots> {
|
|
3
|
+
interface Props {
|
|
4
|
+
/** Width of the chart within the text well. Options: wide, wider, widest, fluid */
|
|
5
|
+
width?: ContainerWidth;
|
|
6
|
+
/** Height of the component */
|
|
7
|
+
height?: number;
|
|
8
|
+
/**
|
|
9
|
+
* If set, makes the height a ratio of the component's width.
|
|
10
|
+
*/
|
|
11
|
+
heightRatio?: number;
|
|
12
|
+
/**
|
|
13
|
+
* Before image source
|
|
14
|
+
*/
|
|
15
|
+
beforeSrc: string;
|
|
16
|
+
/**
|
|
17
|
+
* Before image altText
|
|
18
|
+
*/
|
|
19
|
+
beforeAlt: string;
|
|
20
|
+
/**
|
|
21
|
+
* After image source
|
|
22
|
+
*/
|
|
23
|
+
afterSrc: string;
|
|
24
|
+
/**
|
|
25
|
+
* After image altText
|
|
26
|
+
*/
|
|
27
|
+
afterAlt: string;
|
|
28
|
+
/**
|
|
29
|
+
* Class to target with SCSS.
|
|
30
|
+
*/
|
|
31
|
+
class?: string;
|
|
32
|
+
/** Drag handle colour */
|
|
33
|
+
handleColour?: string;
|
|
34
|
+
/** Drag handle opacity */
|
|
35
|
+
handleInactiveOpacity?: number;
|
|
36
|
+
/** Margin at the edge of the image to stop dragging */
|
|
37
|
+
handleMargin?: number;
|
|
38
|
+
/** Percentage of the component width the handle will travel ona key press */
|
|
39
|
+
keyPressStep?: number;
|
|
40
|
+
/** Initial offset of the handle, between 0 and 1. */
|
|
41
|
+
offset?: number;
|
|
42
|
+
/** ID to target with SCSS. */
|
|
43
|
+
id?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Optional snippet for a custom overlay for the before image.
|
|
46
|
+
*/
|
|
47
|
+
beforeOverlay?: Snippet;
|
|
48
|
+
/**
|
|
49
|
+
* Optional snippet for a custom overlay for the after image.
|
|
50
|
+
*/
|
|
51
|
+
afterOverlay?: Snippet;
|
|
52
|
+
/**
|
|
53
|
+
* Optional snippet for a custom caption.
|
|
54
|
+
*/
|
|
55
|
+
caption?: Snippet;
|
|
56
|
+
/** Custom ARIA label language to label the component. */
|
|
57
|
+
ariaLabel?: string;
|
|
63
58
|
}
|
|
64
|
-
|
|
59
|
+
/** `BeforeAfter` [Read the docs.](https://reuters-graphics.github.io/graphics-components/?path=/docs/components-graphics-beforeafter--docs) */
|
|
60
|
+
declare const BeforeAfter: import("svelte").Component<Props, {}, "">;
|
|
61
|
+
type BeforeAfter = ReturnType<typeof BeforeAfter>;
|
|
62
|
+
export default BeforeAfter;
|