@blateral/b.kit 2.3.0-beta.1.4 → 2.3.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/lib/components/base/icons/Icons.d.ts +66 -0
- package/lib/components/base/icons/Icons.d.ts.map +1 -0
- package/{types → lib}/components/fields/FilterField.d.ts.map +1 -1
- package/lib/components/sections/NumberList.d.ts +36 -0
- package/lib/components/sections/NumberList.d.ts.map +1 -0
- package/{types → lib}/components/sections/header/Header.d.ts +3 -3
- package/lib/components/sections/header/Header.d.ts.map +1 -0
- package/lib/components/sections/navigation/menu/variations/MenuFlyout.d.ts.map +1 -0
- package/lib/components/sections/navigation/menu/variations/MenuLarge.d.ts.map +1 -0
- package/{types → lib}/components/typography/Callout.d.ts +2 -2
- package/lib/components/typography/Callout.d.ts.map +1 -0
- package/lib/index.d.ts +158 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.es.js +2 -0
- package/lib/index.es.js.map +1 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -0
- package/{types → lib}/utils/styles.d.ts +8 -1
- package/lib/utils/styles.d.ts.map +1 -0
- package/{types → lib}/utils/useEqualSheetHeight.d.ts +9 -2
- package/lib/utils/useEqualSheetHeight.d.ts.map +1 -0
- package/{types → lib}/utils/useMediaQuery.d.ts +4 -0
- package/{types → lib}/utils/useMediaQuery.d.ts.map +1 -1
- package/package.json +5 -19
- package/base/package.json +0 -7
- package/blocks/package.json +0 -7
- package/buttons/package.json +0 -7
- package/cjs/Actions-6dd616e0.js +0 -2
- package/cjs/Actions-6dd616e0.js.map +0 -1
- package/cjs/Bdot-d898ba3b.js +0 -2
- package/cjs/Bdot-d898ba3b.js.map +0 -1
- package/cjs/Button-72747f63.js +0 -2
- package/cjs/Button-72747f63.js.map +0 -1
- package/cjs/ButtonGhost-046437c5.js +0 -2
- package/cjs/ButtonGhost-046437c5.js.map +0 -1
- package/cjs/Callout-2713f870.js +0 -2
- package/cjs/Callout-2713f870.js.map +0 -1
- package/cjs/Checkbox-14000bf0.js +0 -2
- package/cjs/Checkbox-14000bf0.js.map +0 -1
- package/cjs/ClockFilled-2483aa4a.js +0 -2
- package/cjs/ClockFilled-2483aa4a.js.map +0 -1
- package/cjs/Control-eead1a4c.js +0 -2
- package/cjs/Control-eead1a4c.js.map +0 -1
- package/cjs/Copy-e860efe7.js +0 -2
- package/cjs/Copy-e860efe7.js.map +0 -1
- package/cjs/EventBlock-10b9d78d.js +0 -2
- package/cjs/EventBlock-10b9d78d.js.map +0 -1
- package/cjs/FileUpload-ece8bb07.js +0 -2
- package/cjs/FileUpload-ece8bb07.js.map +0 -1
- package/cjs/Filter-d6d90b8b.js +0 -2
- package/cjs/Filter-d6d90b8b.js.map +0 -1
- package/cjs/FilterField-cf9e2f16.js +0 -2
- package/cjs/FilterField-cf9e2f16.js.map +0 -1
- package/cjs/Grid-39b12e21.js +0 -2
- package/cjs/Grid-39b12e21.js.map +0 -1
- package/cjs/Image-d9681be0.js +0 -2
- package/cjs/Image-d9681be0.js.map +0 -1
- package/cjs/InfoList-577f3c57.js +0 -2
- package/cjs/InfoList-577f3c57.js.map +0 -1
- package/cjs/LanguageSwitcher-47e25e95.js +0 -2
- package/cjs/LanguageSwitcher-47e25e95.js.map +0 -1
- package/cjs/LibThemeProvider-fb99fd6d.js +0 -2
- package/cjs/LibThemeProvider-fb99fd6d.js.map +0 -1
- package/cjs/Link-70143bb7.js +0 -2
- package/cjs/Link-70143bb7.js.map +0 -1
- package/cjs/Navigation-3f5d6088.js +0 -2
- package/cjs/Navigation-3f5d6088.js.map +0 -1
- package/cjs/POICard-492bf8d0.js +0 -2
- package/cjs/POICard-492bf8d0.js.map +0 -1
- package/cjs/Pointer-3588eadf.js +0 -2
- package/cjs/Pointer-3588eadf.js.map +0 -1
- package/cjs/SocialList-da77e994.js +0 -2
- package/cjs/SocialList-da77e994.js.map +0 -1
- package/cjs/TableBlock-a5b16e8f.js +0 -2
- package/cjs/TableBlock-a5b16e8f.js.map +0 -1
- package/cjs/Tag-5c72cc0d.js +0 -2
- package/cjs/Tag-5c72cc0d.js.map +0 -1
- package/cjs/VideoBlock-301997a9.js +0 -2
- package/cjs/VideoBlock-301997a9.js.map +0 -1
- package/cjs/VideoCard-405b518a.js +0 -2
- package/cjs/VideoCard-405b518a.js.map +0 -1
- package/cjs/Wrapper-91748bdb.js +0 -2
- package/cjs/Wrapper-91748bdb.js.map +0 -1
- package/cjs/arrays-c272ed59.js +0 -2
- package/cjs/arrays-c272ed59.js.map +0 -1
- package/cjs/base.js +0 -2
- package/cjs/base.js.map +0 -1
- package/cjs/blocks.js +0 -2
- package/cjs/blocks.js.map +0 -1
- package/cjs/buttons.js +0 -2
- package/cjs/buttons.js.map +0 -1
- package/cjs/clamp-bd21d587.js +0 -2
- package/cjs/clamp-bd21d587.js.map +0 -1
- package/cjs/concat-f387d848.js +0 -2
- package/cjs/concat-f387d848.js.map +0 -1
- package/cjs/cookies.js +0 -2
- package/cjs/cookies.js.map +0 -1
- package/cjs/escape-1ef8dd83.js +0 -2
- package/cjs/escape-1ef8dd83.js.map +0 -1
- package/cjs/fields.js +0 -2
- package/cjs/fields.js.map +0 -1
- package/cjs/footer.js +0 -2
- package/cjs/footer.js.map +0 -1
- package/cjs/hexRgbConverter-91b28aea.js +0 -2
- package/cjs/hexRgbConverter-91b28aea.js.map +0 -1
- package/cjs/hooks.js +0 -2
- package/cjs/hooks.js.map +0 -1
- package/cjs/icons.js +0 -2
- package/cjs/icons.js.map +0 -1
- package/cjs/index.js +0 -2
- package/cjs/index.js.map +0 -1
- package/cjs/navigation-bf154e6e.js +0 -2
- package/cjs/navigation-bf154e6e.js.map +0 -1
- package/cjs/navigation.js +0 -2
- package/cjs/navigation.js.map +0 -1
- package/cjs/sections.js +0 -2
- package/cjs/sections.js.map +0 -1
- package/cjs/sections_events.js +0 -2
- package/cjs/sections_events.js.map +0 -1
- package/cjs/sections_forms.js +0 -2
- package/cjs/sections_forms.js.map +0 -1
- package/cjs/sections_jobs.js +0 -2
- package/cjs/sections_jobs.js.map +0 -1
- package/cjs/sections_news.js +0 -2
- package/cjs/sections_news.js.map +0 -1
- package/cjs/sections_pois.js +0 -2
- package/cjs/sections_pois.js.map +0 -1
- package/cjs/statusFormatter-0393122b.js +0 -2
- package/cjs/statusFormatter-0393122b.js.map +0 -1
- package/cjs/structuredData-0b1278a9.js +0 -2
- package/cjs/structuredData-0b1278a9.js.map +0 -1
- package/cjs/styles-0f1a0aea.js +0 -2
- package/cjs/styles-0f1a0aea.js.map +0 -1
- package/cjs/typography.js +0 -2
- package/cjs/typography.js.map +0 -1
- package/cjs/urlParams-7525f638.js +0 -2
- package/cjs/urlParams-7525f638.js.map +0 -1
- package/cjs/useCookieConsent-0bf94751.js +0 -2
- package/cjs/useCookieConsent-0bf94751.js.map +0 -1
- package/cjs/useEqualSheetHeight-cfd4176e.js +0 -2
- package/cjs/useEqualSheetHeight-cfd4176e.js.map +0 -1
- package/cjs/useGeolocation-d8946470.js +0 -2
- package/cjs/useGeolocation-d8946470.js.map +0 -1
- package/cjs/useIE-aef9decc.js +0 -2
- package/cjs/useIE-aef9decc.js.map +0 -1
- package/cjs/useLazyInput-f71c221b.js +0 -2
- package/cjs/useLazyInput-f71c221b.js.map +0 -1
- package/cjs/useLeafletMap-2e608b01.js +0 -2
- package/cjs/useLeafletMap-2e608b01.js.map +0 -1
- package/cjs/useMediaQuery-d4f81f88.js +0 -2
- package/cjs/useMediaQuery-d4f81f88.js.map +0 -1
- package/cjs/useMounted-0bba9869.js +0 -2
- package/cjs/useMounted-0bba9869.js.map +0 -1
- package/cjs/useObserverSupport-5ab320dd.js +0 -2
- package/cjs/useObserverSupport-5ab320dd.js.map +0 -1
- package/cjs/useScrollTo-fdd665da.js +0 -2
- package/cjs/useScrollTo-fdd665da.js.map +0 -1
- package/cjs/useUpdateEffect-4d233e2c.js +0 -2
- package/cjs/useUpdateEffect-4d233e2c.js.map +0 -1
- package/cookies/package.json +0 -7
- package/esm/Actions-3f06c2e9.js +0 -57
- package/esm/Actions-3f06c2e9.js.map +0 -1
- package/esm/Bdot-fae262fc.js +0 -24
- package/esm/Bdot-fae262fc.js.map +0 -1
- package/esm/Button-ab1a4e79.js +0 -115
- package/esm/Button-ab1a4e79.js.map +0 -1
- package/esm/ButtonGhost-5b498dba.js +0 -112
- package/esm/ButtonGhost-5b498dba.js.map +0 -1
- package/esm/Callout-389fed95.js +0 -99
- package/esm/Callout-389fed95.js.map +0 -1
- package/esm/Checkbox-957d8f33.js +0 -135
- package/esm/Checkbox-957d8f33.js.map +0 -1
- package/esm/ClockFilled-6bae80dc.js +0 -1793
- package/esm/ClockFilled-6bae80dc.js.map +0 -1
- package/esm/Control-57a287dc.js +0 -52
- package/esm/Control-57a287dc.js.map +0 -1
- package/esm/Copy-fb124972.js +0 -270
- package/esm/Copy-fb124972.js.map +0 -1
- package/esm/EventBlock-0109da13.js +0 -132
- package/esm/EventBlock-0109da13.js.map +0 -1
- package/esm/FileUpload-4ba0a672.js +0 -4790
- package/esm/FileUpload-4ba0a672.js.map +0 -1
- package/esm/Filter-fec6dc5c.js +0 -32
- package/esm/Filter-fec6dc5c.js.map +0 -1
- package/esm/FilterField-03097694.js +0 -129
- package/esm/FilterField-03097694.js.map +0 -1
- package/esm/Grid-151498da.js +0 -203
- package/esm/Grid-151498da.js.map +0 -1
- package/esm/Image-b538f659.js +0 -193
- package/esm/Image-b538f659.js.map +0 -1
- package/esm/InfoList-616d17fd.js +0 -74
- package/esm/InfoList-616d17fd.js.map +0 -1
- package/esm/LanguageSwitcher-058e0145.js +0 -70
- package/esm/LanguageSwitcher-058e0145.js.map +0 -1
- package/esm/LibThemeProvider-a38c5bf1.js +0 -115
- package/esm/LibThemeProvider-a38c5bf1.js.map +0 -1
- package/esm/Link-0a1e35d6.js +0 -60
- package/esm/Link-0a1e35d6.js.map +0 -1
- package/esm/Navigation-13dce48c.js +0 -1664
- package/esm/Navigation-13dce48c.js.map +0 -1
- package/esm/POICard-392a2c3a.js +0 -116
- package/esm/POICard-392a2c3a.js.map +0 -1
- package/esm/Pointer-bc68154f.js +0 -111
- package/esm/Pointer-bc68154f.js.map +0 -1
- package/esm/SocialList-4396cad9.js +0 -61
- package/esm/SocialList-4396cad9.js.map +0 -1
- package/esm/TableBlock-26530c71.js +0 -159
- package/esm/TableBlock-26530c71.js.map +0 -1
- package/esm/Tag-72424779.js +0 -67
- package/esm/Tag-72424779.js.map +0 -1
- package/esm/VideoBlock-b3f4ae27.js +0 -624
- package/esm/VideoBlock-b3f4ae27.js.map +0 -1
- package/esm/VideoCard-3fd368ef.js +0 -160
- package/esm/VideoCard-3fd368ef.js.map +0 -1
- package/esm/Wrapper-29347885.js +0 -224
- package/esm/Wrapper-29347885.js.map +0 -1
- package/esm/arrays-65b644ef.js +0 -17
- package/esm/arrays-65b644ef.js.map +0 -1
- package/esm/base.js +0 -11
- package/esm/base.js.map +0 -1
- package/esm/blocks.js +0 -26
- package/esm/blocks.js.map +0 -1
- package/esm/buttons.js +0 -12
- package/esm/buttons.js.map +0 -1
- package/esm/clamp-12d37b65.js +0 -10
- package/esm/clamp-12d37b65.js.map +0 -1
- package/esm/concat-ab3c66f2.js +0 -40
- package/esm/concat-ab3c66f2.js.map +0 -1
- package/esm/cookies.js +0 -270
- package/esm/cookies.js.map +0 -1
- package/esm/escape-cbff9c25.js +0 -6
- package/esm/escape-cbff9c25.js.map +0 -1
- package/esm/fields.js +0 -190
- package/esm/fields.js.map +0 -1
- package/esm/footer.js +0 -301
- package/esm/footer.js.map +0 -1
- package/esm/hexRgbConverter-edb91624.js +0 -36
- package/esm/hexRgbConverter-edb91624.js.map +0 -1
- package/esm/hooks.js +0 -531
- package/esm/hooks.js.map +0 -1
- package/esm/icons.js +0 -4
- package/esm/icons.js.map +0 -1
- package/esm/index.js +0 -7
- package/esm/index.js.map +0 -1
- package/esm/navigation-a2998143.js +0 -132
- package/esm/navigation-a2998143.js.map +0 -1
- package/esm/navigation.js +0 -159
- package/esm/navigation.js.map +0 -1
- package/esm/sections.js +0 -3914
- package/esm/sections.js.map +0 -1
- package/esm/sections_events.js +0 -573
- package/esm/sections_events.js.map +0 -1
- package/esm/sections_forms.js +0 -1405
- package/esm/sections_forms.js.map +0 -1
- package/esm/sections_jobs.js +0 -508
- package/esm/sections_jobs.js.map +0 -1
- package/esm/sections_news.js +0 -1023
- package/esm/sections_news.js.map +0 -1
- package/esm/sections_pois.js +0 -719
- package/esm/sections_pois.js.map +0 -1
- package/esm/statusFormatter-9be0fbff.js +0 -255
- package/esm/statusFormatter-9be0fbff.js.map +0 -1
- package/esm/structuredData-87423414.js +0 -117
- package/esm/structuredData-87423414.js.map +0 -1
- package/esm/styles-f6c54818.js +0 -462
- package/esm/styles-f6c54818.js.map +0 -1
- package/esm/typography.js +0 -11
- package/esm/typography.js.map +0 -1
- package/esm/urlParams-9cfdaf71.js +0 -51
- package/esm/urlParams-9cfdaf71.js.map +0 -1
- package/esm/useCookieConsent-8caef116.js +0 -339
- package/esm/useCookieConsent-8caef116.js.map +0 -1
- package/esm/useEqualSheetHeight-c18cebd3.js +0 -196
- package/esm/useEqualSheetHeight-c18cebd3.js.map +0 -1
- package/esm/useGeolocation-f9f073cc.js +0 -95
- package/esm/useGeolocation-f9f073cc.js.map +0 -1
- package/esm/useIE-a9c56989.js +0 -15
- package/esm/useIE-a9c56989.js.map +0 -1
- package/esm/useLazyInput-e66fc5be.js +0 -85
- package/esm/useLazyInput-e66fc5be.js.map +0 -1
- package/esm/useLeafletMap-6dea7a8e.js +0 -300
- package/esm/useLeafletMap-6dea7a8e.js.map +0 -1
- package/esm/useMediaQuery-0d473a9c.js +0 -109
- package/esm/useMediaQuery-0d473a9c.js.map +0 -1
- package/esm/useMounted-1e4cc87b.js +0 -12
- package/esm/useMounted-1e4cc87b.js.map +0 -1
- package/esm/useObserverSupport-02bce7f5.js +0 -19
- package/esm/useObserverSupport-02bce7f5.js.map +0 -1
- package/esm/useScrollTo-70af34bf.js +0 -57
- package/esm/useScrollTo-70af34bf.js.map +0 -1
- package/esm/useUpdateEffect-824c0c84.js +0 -18
- package/esm/useUpdateEffect-824c0c84.js.map +0 -1
- package/fields/package.json +0 -7
- package/footer/package.json +0 -7
- package/hooks/package.json +0 -7
- package/icons/package.json +0 -7
- package/navigation/package.json +0 -7
- package/sections/events/package.json +0 -7
- package/sections/forms/package.json +0 -7
- package/sections/jobs/package.json +0 -7
- package/sections/news/package.json +0 -7
- package/sections/package.json +0 -7
- package/sections/pois/package.json +0 -7
- package/types/base.d.ts +0 -5
- package/types/base.d.ts.map +0 -1
- package/types/blocks.d.ts +0 -18
- package/types/blocks.d.ts.map +0 -1
- package/types/buttons.d.ts +0 -6
- package/types/buttons.d.ts.map +0 -1
- package/types/components/sections/NumberList.d.ts +0 -31
- package/types/components/sections/NumberList.d.ts.map +0 -1
- package/types/components/sections/header/Header.d.ts.map +0 -1
- package/types/components/sections/navigation/menu/variations/MenuFlyout.d.ts.map +0 -1
- package/types/components/sections/navigation/menu/variations/MenuLarge.d.ts.map +0 -1
- package/types/components/typography/Callout.d.ts.map +0 -1
- package/types/cookies.d.ts +0 -3
- package/types/cookies.d.ts.map +0 -1
- package/types/fields.d.ts +0 -14
- package/types/fields.d.ts.map +0 -1
- package/types/footer.d.ts +0 -4
- package/types/footer.d.ts.map +0 -1
- package/types/hooks.d.ts +0 -35
- package/types/hooks.d.ts.map +0 -1
- package/types/icons.d.ts +0 -66
- package/types/icons.d.ts.map +0 -1
- package/types/index.d.ts +0 -18
- package/types/index.d.ts.map +0 -1
- package/types/navigation.d.ts +0 -10
- package/types/navigation.d.ts.map +0 -1
- package/types/sections.d.ts +0 -32
- package/types/sections.d.ts.map +0 -1
- package/types/sections_events.d.ts +0 -4
- package/types/sections_events.d.ts.map +0 -1
- package/types/sections_forms.d.ts +0 -3
- package/types/sections_forms.d.ts.map +0 -1
- package/types/sections_jobs.d.ts +0 -3
- package/types/sections_jobs.d.ts.map +0 -1
- package/types/sections_news.d.ts +0 -10
- package/types/sections_news.d.ts.map +0 -1
- package/types/sections_pois.d.ts +0 -4
- package/types/sections_pois.d.ts.map +0 -1
- package/types/typography.d.ts +0 -6
- package/types/typography.d.ts.map +0 -1
- package/types/utils/styles.d.ts.map +0 -1
- package/types/utils/useEqualSheetHeight.d.ts.map +0 -1
- package/typography/package.json +0 -7
- /package/{types → lib}/components/base/Grid.d.ts +0 -0
- /package/{types → lib}/components/base/Grid.d.ts.map +0 -0
- /package/{types → lib}/components/base/Section.d.ts +0 -0
- /package/{types → lib}/components/base/Section.d.ts.map +0 -0
- /package/{types → lib}/components/base/Wrapper.d.ts +0 -0
- /package/{types → lib}/components/base/Wrapper.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/AngleDown.d.ts +0 -0
- /package/{types → lib}/components/base/icons/AngleDown.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/AngleLeft.d.ts +0 -0
- /package/{types → lib}/components/base/icons/AngleLeft.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/AngleRight.d.ts +0 -0
- /package/{types → lib}/components/base/icons/AngleRight.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/AngleUp.d.ts +0 -0
- /package/{types → lib}/components/base/icons/AngleUp.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/ArrowDown.d.ts +0 -0
- /package/{types → lib}/components/base/icons/ArrowDown.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/ArrowLeft.d.ts +0 -0
- /package/{types → lib}/components/base/icons/ArrowLeft.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/ArrowLeftGhost.d.ts +0 -0
- /package/{types → lib}/components/base/icons/ArrowLeftGhost.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/ArrowLeftRight.d.ts +0 -0
- /package/{types → lib}/components/base/icons/ArrowLeftRight.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/ArrowRight.d.ts +0 -0
- /package/{types → lib}/components/base/icons/ArrowRight.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/ArrowRightGhost.d.ts +0 -0
- /package/{types → lib}/components/base/icons/ArrowRightGhost.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/ArrowUp.d.ts +0 -0
- /package/{types → lib}/components/base/icons/ArrowUp.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/BoxArrowUpRight.d.ts +0 -0
- /package/{types → lib}/components/base/icons/BoxArrowUpRight.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/CalendarToday.d.ts +0 -0
- /package/{types → lib}/components/base/icons/CalendarToday.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Category.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Category.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Check.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Check.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Clock.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Clock.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/ClockFilled.d.ts +0 -0
- /package/{types → lib}/components/base/icons/ClockFilled.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Computer.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Computer.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Cross.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Cross.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/CrossSmall.d.ts +0 -0
- /package/{types → lib}/components/base/icons/CrossSmall.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/CurrentLocation.d.ts +0 -0
- /package/{types → lib}/components/base/icons/CurrentLocation.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/DateRange.d.ts +0 -0
- /package/{types → lib}/components/base/icons/DateRange.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/DeleteForever.d.ts +0 -0
- /package/{types → lib}/components/base/icons/DeleteForever.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/External.d.ts +0 -0
- /package/{types → lib}/components/base/icons/External.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Filter.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Filter.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/FlyTo.d.ts +0 -0
- /package/{types → lib}/components/base/icons/FlyTo.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Info.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Info.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Language.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Language.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/LocationPin.d.ts +0 -0
- /package/{types → lib}/components/base/icons/LocationPin.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/LocationSearch.d.ts +0 -0
- /package/{types → lib}/components/base/icons/LocationSearch.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Magnifier.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Magnifier.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Mail.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Mail.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Map.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Map.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/MenuBurger.d.ts +0 -0
- /package/{types → lib}/components/base/icons/MenuBurger.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Minus.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Minus.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Money.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Money.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/MyLocation.d.ts +0 -0
- /package/{types → lib}/components/base/icons/MyLocation.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Person.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Person.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Phone.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Phone.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Place.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Place.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Play.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Play.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Plus.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Plus.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Route.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Route.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/Star.d.ts +0 -0
- /package/{types → lib}/components/base/icons/Star.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/ToggleOff.d.ts +0 -0
- /package/{types → lib}/components/base/icons/ToggleOff.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/ToggleOn.d.ts +0 -0
- /package/{types → lib}/components/base/icons/ToggleOn.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/UnfoldMore.d.ts +0 -0
- /package/{types → lib}/components/base/icons/UnfoldMore.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/files/Excel.d.ts +0 -0
- /package/{types → lib}/components/base/icons/files/Excel.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/files/Image.d.ts +0 -0
- /package/{types → lib}/components/base/icons/files/Image.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/files/Pdf.d.ts +0 -0
- /package/{types → lib}/components/base/icons/files/Pdf.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/files/PowerPoint.d.ts +0 -0
- /package/{types → lib}/components/base/icons/files/PowerPoint.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/files/UploadFile.d.ts +0 -0
- /package/{types → lib}/components/base/icons/files/UploadFile.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/files/Word.d.ts +0 -0
- /package/{types → lib}/components/base/icons/files/Word.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/files/Zip.d.ts +0 -0
- /package/{types → lib}/components/base/icons/files/Zip.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/socials/Facebook.d.ts +0 -0
- /package/{types → lib}/components/base/icons/socials/Facebook.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/socials/Instagram.d.ts +0 -0
- /package/{types → lib}/components/base/icons/socials/Instagram.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/socials/LinkedIn.d.ts +0 -0
- /package/{types → lib}/components/base/icons/socials/LinkedIn.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/socials/Twitter.d.ts +0 -0
- /package/{types → lib}/components/base/icons/socials/Twitter.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/socials/Xing.d.ts +0 -0
- /package/{types → lib}/components/base/icons/socials/Xing.d.ts.map +0 -0
- /package/{types → lib}/components/base/icons/socials/Youtube.d.ts +0 -0
- /package/{types → lib}/components/base/icons/socials/Youtube.d.ts.map +0 -0
- /package/{types → lib}/components/base/nl2br.d.ts +0 -0
- /package/{types → lib}/components/base/nl2br.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/Actions.d.ts +0 -0
- /package/{types → lib}/components/blocks/Actions.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/Alert.d.ts +0 -0
- /package/{types → lib}/components/blocks/Alert.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/Bdot.d.ts +0 -0
- /package/{types → lib}/components/blocks/Bdot.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/CookieConsent.d.ts +0 -0
- /package/{types → lib}/components/blocks/CookieConsent.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/EventBlock.d.ts +0 -0
- /package/{types → lib}/components/blocks/EventBlock.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/Fact.d.ts +0 -0
- /package/{types → lib}/components/blocks/Fact.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/Feature.d.ts +0 -0
- /package/{types → lib}/components/blocks/Feature.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/Image.d.ts +0 -0
- /package/{types → lib}/components/blocks/Image.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/InfoList.d.ts +0 -0
- /package/{types → lib}/components/blocks/InfoList.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/IntroBlock.d.ts +0 -0
- /package/{types → lib}/components/blocks/IntroBlock.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/JobCard.d.ts +0 -0
- /package/{types → lib}/components/blocks/JobCard.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/LanguageSwitcher.d.ts +0 -0
- /package/{types → lib}/components/blocks/LanguageSwitcher.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/NavBlock.d.ts +0 -0
- /package/{types → lib}/components/blocks/NavBlock.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/NewsCard.d.ts +0 -0
- /package/{types → lib}/components/blocks/NewsCard.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/POICard.d.ts +0 -0
- /package/{types → lib}/components/blocks/POICard.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/POIFacts.d.ts +0 -0
- /package/{types → lib}/components/blocks/POIFacts.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/PriceTag.d.ts +0 -0
- /package/{types → lib}/components/blocks/PriceTag.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/PromotionCard.d.ts +0 -0
- /package/{types → lib}/components/blocks/PromotionCard.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/SocialList.d.ts +0 -0
- /package/{types → lib}/components/blocks/SocialList.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/TableBlock.d.ts +0 -0
- /package/{types → lib}/components/blocks/TableBlock.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/Tag.d.ts +0 -0
- /package/{types → lib}/components/blocks/Tag.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/Title.d.ts +0 -0
- /package/{types → lib}/components/blocks/Title.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/VideoBlock.d.ts +0 -0
- /package/{types → lib}/components/blocks/VideoBlock.d.ts.map +0 -0
- /package/{types → lib}/components/blocks/VideoCard.d.ts +0 -0
- /package/{types → lib}/components/blocks/VideoCard.d.ts.map +0 -0
- /package/{types → lib}/components/buttons/Button.d.ts +0 -0
- /package/{types → lib}/components/buttons/Button.d.ts.map +0 -0
- /package/{types → lib}/components/buttons/ButtonGhost.d.ts +0 -0
- /package/{types → lib}/components/buttons/ButtonGhost.d.ts.map +0 -0
- /package/{types → lib}/components/buttons/Control.d.ts +0 -0
- /package/{types → lib}/components/buttons/Control.d.ts.map +0 -0
- /package/{types → lib}/components/buttons/Pointer.d.ts +0 -0
- /package/{types → lib}/components/buttons/Pointer.d.ts.map +0 -0
- /package/{types → lib}/components/debug/DebugLines.d.ts +0 -0
- /package/{types → lib}/components/debug/DebugLines.d.ts.map +0 -0
- /package/{types → lib}/components/examples/hooks/ArrayHookExample.d.ts +0 -0
- /package/{types → lib}/components/examples/hooks/ArrayHookExample.d.ts.map +0 -0
- /package/{types → lib}/components/examples/hooks/IntervalHookExample.d.ts +0 -0
- /package/{types → lib}/components/examples/hooks/IntervalHookExample.d.ts.map +0 -0
- /package/{types → lib}/components/fields/Checkbox.d.ts +0 -0
- /package/{types → lib}/components/fields/Checkbox.d.ts.map +0 -0
- /package/{types → lib}/components/fields/CompactForm.d.ts +0 -0
- /package/{types → lib}/components/fields/CompactForm.d.ts.map +0 -0
- /package/{types → lib}/components/fields/Datepicker.d.ts +0 -0
- /package/{types → lib}/components/fields/Datepicker.d.ts.map +0 -0
- /package/{types → lib}/components/fields/FileUpload.d.ts +0 -0
- /package/{types → lib}/components/fields/FileUpload.d.ts.map +0 -0
- /package/{types → lib}/components/fields/FilterField.d.ts +0 -0
- /package/{types → lib}/components/fields/FormField.d.ts +0 -0
- /package/{types → lib}/components/fields/FormField.d.ts.map +0 -0
- /package/{types → lib}/components/fields/LocationField.d.ts +0 -0
- /package/{types → lib}/components/fields/LocationField.d.ts.map +0 -0
- /package/{types → lib}/components/fields/Radio.d.ts +0 -0
- /package/{types → lib}/components/fields/Radio.d.ts.map +0 -0
- /package/{types → lib}/components/fields/SearchInput.d.ts +0 -0
- /package/{types → lib}/components/fields/SearchInput.d.ts.map +0 -0
- /package/{types → lib}/components/fields/SelectDropdown.d.ts +0 -0
- /package/{types → lib}/components/fields/SelectDropdown.d.ts.map +0 -0
- /package/{types → lib}/components/fields/Textarea.d.ts +0 -0
- /package/{types → lib}/components/fields/Textarea.d.ts.map +0 -0
- /package/{types → lib}/components/fields/Textfield.d.ts +0 -0
- /package/{types → lib}/components/fields/Textfield.d.ts.map +0 -0
- /package/{types → lib}/components/sections/Accordion.d.ts +0 -0
- /package/{types → lib}/components/sections/Accordion.d.ts.map +0 -0
- /package/{types → lib}/components/sections/AlertList.d.ts +0 -0
- /package/{types → lib}/components/sections/AlertList.d.ts.map +0 -0
- /package/{types → lib}/components/sections/Article.d.ts +0 -0
- /package/{types → lib}/components/sections/Article.d.ts.map +0 -0
- /package/{types → lib}/components/sections/CallToAction.d.ts +0 -0
- /package/{types → lib}/components/sections/CallToAction.d.ts.map +0 -0
- /package/{types → lib}/components/sections/CardList.d.ts +0 -0
- /package/{types → lib}/components/sections/CardList.d.ts.map +0 -0
- /package/{types → lib}/components/sections/ComparisonSlider.d.ts +0 -0
- /package/{types → lib}/components/sections/ComparisonSlider.d.ts.map +0 -0
- /package/{types → lib}/components/sections/CrossPromotion.d.ts +0 -0
- /package/{types → lib}/components/sections/CrossPromotion.d.ts.map +0 -0
- /package/{types → lib}/components/sections/FactGrid.d.ts +0 -0
- /package/{types → lib}/components/sections/FactGrid.d.ts.map +0 -0
- /package/{types → lib}/components/sections/FactList.d.ts +0 -0
- /package/{types → lib}/components/sections/FactList.d.ts.map +0 -0
- /package/{types → lib}/components/sections/FeatureList.d.ts +0 -0
- /package/{types → lib}/components/sections/FeatureList.d.ts.map +0 -0
- /package/{types → lib}/components/sections/Gallery.d.ts +0 -0
- /package/{types → lib}/components/sections/Gallery.d.ts.map +0 -0
- /package/{types → lib}/components/sections/IconList.d.ts +0 -0
- /package/{types → lib}/components/sections/IconList.d.ts.map +0 -0
- /package/{types → lib}/components/sections/IndexList.d.ts +0 -0
- /package/{types → lib}/components/sections/IndexList.d.ts.map +0 -0
- /package/{types → lib}/components/sections/Intro.d.ts +0 -0
- /package/{types → lib}/components/sections/Intro.d.ts.map +0 -0
- /package/{types → lib}/components/sections/Map.d.ts +0 -0
- /package/{types → lib}/components/sections/Map.d.ts.map +0 -0
- /package/{types → lib}/components/sections/NavList.d.ts +0 -0
- /package/{types → lib}/components/sections/NavList.d.ts.map +0 -0
- /package/{types → lib}/components/sections/NewsletterForm.d.ts +0 -0
- /package/{types → lib}/components/sections/NewsletterForm.d.ts.map +0 -0
- /package/{types → lib}/components/sections/ParallaxBackground.d.ts +0 -0
- /package/{types → lib}/components/sections/ParallaxBackground.d.ts.map +0 -0
- /package/{types → lib}/components/sections/Poster.d.ts +0 -0
- /package/{types → lib}/components/sections/Poster.d.ts.map +0 -0
- /package/{types → lib}/components/sections/PriceList.d.ts +0 -0
- /package/{types → lib}/components/sections/PriceList.d.ts.map +0 -0
- /package/{types → lib}/components/sections/PriceTable.d.ts +0 -0
- /package/{types → lib}/components/sections/PriceTable.d.ts.map +0 -0
- /package/{types → lib}/components/sections/Quote.d.ts +0 -0
- /package/{types → lib}/components/sections/Quote.d.ts.map +0 -0
- /package/{types → lib}/components/sections/RawVideo.d.ts +0 -0
- /package/{types → lib}/components/sections/RawVideo.d.ts.map +0 -0
- /package/{types → lib}/components/sections/SimpleImage.d.ts +0 -0
- /package/{types → lib}/components/sections/SimpleImage.d.ts.map +0 -0
- /package/{types → lib}/components/sections/SocialWall.d.ts +0 -0
- /package/{types → lib}/components/sections/SocialWall.d.ts.map +0 -0
- /package/{types → lib}/components/sections/Table.d.ts +0 -0
- /package/{types → lib}/components/sections/Table.d.ts.map +0 -0
- /package/{types → lib}/components/sections/Teaser.d.ts +0 -0
- /package/{types → lib}/components/sections/Teaser.d.ts.map +0 -0
- /package/{types → lib}/components/sections/TeaserWide.d.ts +0 -0
- /package/{types → lib}/components/sections/TeaserWide.d.ts.map +0 -0
- /package/{types → lib}/components/sections/Timeline.d.ts +0 -0
- /package/{types → lib}/components/sections/Timeline.d.ts.map +0 -0
- /package/{types → lib}/components/sections/Video.d.ts +0 -0
- /package/{types → lib}/components/sections/Video.d.ts.map +0 -0
- /package/{types → lib}/components/sections/events/EventDetail.d.ts +0 -0
- /package/{types → lib}/components/sections/events/EventDetail.d.ts.map +0 -0
- /package/{types → lib}/components/sections/events/EventList.d.ts +0 -0
- /package/{types → lib}/components/sections/events/EventList.d.ts.map +0 -0
- /package/{types → lib}/components/sections/events/EventOverview.d.ts +0 -0
- /package/{types → lib}/components/sections/events/EventOverview.d.ts.map +0 -0
- /package/{types → lib}/components/sections/footer/Footer.d.ts +0 -0
- /package/{types → lib}/components/sections/footer/Footer.d.ts.map +0 -0
- /package/{types → lib}/components/sections/footer/partials/FooterBottomBar.d.ts +0 -0
- /package/{types → lib}/components/sections/footer/partials/FooterBottomBar.d.ts.map +0 -0
- /package/{types → lib}/components/sections/footer/partials/FooterColumn.d.ts +0 -0
- /package/{types → lib}/components/sections/footer/partials/FooterColumn.d.ts.map +0 -0
- /package/{types → lib}/components/sections/footer/partials/index.d.ts +0 -0
- /package/{types → lib}/components/sections/footer/partials/index.d.ts.map +0 -0
- /package/{types → lib}/components/sections/footer/skeletons/FooterArticle.d.ts +0 -0
- /package/{types → lib}/components/sections/footer/skeletons/FooterArticle.d.ts.map +0 -0
- /package/{types → lib}/components/sections/footer/skeletons/FooterBottomGrid.d.ts +0 -0
- /package/{types → lib}/components/sections/footer/skeletons/FooterBottomGrid.d.ts.map +0 -0
- /package/{types → lib}/components/sections/footer/skeletons/index.d.ts +0 -0
- /package/{types → lib}/components/sections/footer/skeletons/index.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/DynamicForm.d.ts +0 -0
- /package/{types → lib}/components/sections/form/DynamicForm.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/renderer/areaRenderer.d.ts +0 -0
- /package/{types → lib}/components/sections/form/renderer/areaRenderer.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/renderer/datepickerRenderer.d.ts +0 -0
- /package/{types → lib}/components/sections/form/renderer/datepickerRenderer.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/renderer/fieldGroupRenderer.d.ts +0 -0
- /package/{types → lib}/components/sections/form/renderer/fieldGroupRenderer.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/renderer/fieldRenderer.d.ts +0 -0
- /package/{types → lib}/components/sections/form/renderer/fieldRenderer.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/renderer/locationRenderer.d.ts +0 -0
- /package/{types → lib}/components/sections/form/renderer/locationRenderer.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/renderer/selectRenderer.d.ts +0 -0
- /package/{types → lib}/components/sections/form/renderer/selectRenderer.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/renderer/uploadRenderer.d.ts +0 -0
- /package/{types → lib}/components/sections/form/renderer/uploadRenderer.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/validators/areaValidator.d.ts +0 -0
- /package/{types → lib}/components/sections/form/validators/areaValidator.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/validators/datepickerValidator.d.ts +0 -0
- /package/{types → lib}/components/sections/form/validators/datepickerValidator.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/validators/fieldGroupValidator.d.ts +0 -0
- /package/{types → lib}/components/sections/form/validators/fieldGroupValidator.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/validators/fieldValidator.d.ts +0 -0
- /package/{types → lib}/components/sections/form/validators/fieldValidator.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/validators/locationValidator.d.ts +0 -0
- /package/{types → lib}/components/sections/form/validators/locationValidator.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/validators/selectValidator.d.ts +0 -0
- /package/{types → lib}/components/sections/form/validators/selectValidator.d.ts.map +0 -0
- /package/{types → lib}/components/sections/form/validators/uploadValidator.d.ts +0 -0
- /package/{types → lib}/components/sections/form/validators/uploadValidator.d.ts.map +0 -0
- /package/{types → lib}/components/sections/header/HeaderKenBurns.d.ts +0 -0
- /package/{types → lib}/components/sections/header/HeaderKenBurns.d.ts.map +0 -0
- /package/{types → lib}/components/sections/header/HeaderPoster.d.ts +0 -0
- /package/{types → lib}/components/sections/header/HeaderPoster.d.ts.map +0 -0
- /package/{types → lib}/components/sections/header/HeaderVideo.d.ts +0 -0
- /package/{types → lib}/components/sections/header/HeaderVideo.d.ts.map +0 -0
- /package/{types → lib}/components/sections/jobs/JobArticle.d.ts +0 -0
- /package/{types → lib}/components/sections/jobs/JobArticle.d.ts.map +0 -0
- /package/{types → lib}/components/sections/jobs/JobList.d.ts +0 -0
- /package/{types → lib}/components/sections/jobs/JobList.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/NavBar.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/NavBar.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/Navigation.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/Navigation.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/menu/Menu.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/menu/Menu.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/menu/variations/MenuFlyout.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/menu/variations/MenuLarge.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/partials/MenuFooter.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/partials/MenuFooter.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/partials/MenuHeader.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/partials/MenuHeader.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/partials/NavBarBottom.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/partials/NavBarBottom.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/partials/NavBarMain.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/partials/NavBarMain.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/partials/NavBarTop.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/partials/NavBarTop.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/partials/index.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/partials/index.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/skeletons/BarBreadCrumbs.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/skeletons/BarBreadCrumbs.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/skeletons/BarColumn.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/skeletons/BarColumn.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/skeletons/BarLogo.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/skeletons/BarLogo.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/skeletons/BarMenuToggle.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/skeletons/BarMenuToggle.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/skeletons/BarNavList.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/skeletons/BarNavList.d.ts.map +0 -0
- /package/{types → lib}/components/sections/navigation/skeletons/index.d.ts +0 -0
- /package/{types → lib}/components/sections/navigation/skeletons/index.d.ts.map +0 -0
- /package/{types → lib}/components/sections/news/NewsAuthorCard.d.ts +0 -0
- /package/{types → lib}/components/sections/news/NewsAuthorCard.d.ts.map +0 -0
- /package/{types → lib}/components/sections/news/NewsFooter.d.ts +0 -0
- /package/{types → lib}/components/sections/news/NewsFooter.d.ts.map +0 -0
- /package/{types → lib}/components/sections/news/NewsImages.d.ts +0 -0
- /package/{types → lib}/components/sections/news/NewsImages.d.ts.map +0 -0
- /package/{types → lib}/components/sections/news/NewsIntro.d.ts +0 -0
- /package/{types → lib}/components/sections/news/NewsIntro.d.ts.map +0 -0
- /package/{types → lib}/components/sections/news/NewsList.d.ts +0 -0
- /package/{types → lib}/components/sections/news/NewsList.d.ts.map +0 -0
- /package/{types → lib}/components/sections/news/NewsOverview.d.ts +0 -0
- /package/{types → lib}/components/sections/news/NewsOverview.d.ts.map +0 -0
- /package/{types → lib}/components/sections/news/NewsTable.d.ts +0 -0
- /package/{types → lib}/components/sections/news/NewsTable.d.ts.map +0 -0
- /package/{types → lib}/components/sections/news/NewsText.d.ts +0 -0
- /package/{types → lib}/components/sections/news/NewsText.d.ts.map +0 -0
- /package/{types → lib}/components/sections/news/NewsVideo.d.ts +0 -0
- /package/{types → lib}/components/sections/news/NewsVideo.d.ts.map +0 -0
- /package/{types → lib}/components/sections/pois/PointOfInterestDetail.d.ts +0 -0
- /package/{types → lib}/components/sections/pois/PointOfInterestDetail.d.ts.map +0 -0
- /package/{types → lib}/components/sections/pois/PointOfInterestMap.d.ts +0 -0
- /package/{types → lib}/components/sections/pois/PointOfInterestMap.d.ts.map +0 -0
- /package/{types → lib}/components/sections/pois/PointOfInterestOverview.d.ts +0 -0
- /package/{types → lib}/components/sections/pois/PointOfInterestOverview.d.ts.map +0 -0
- /package/{types → lib}/components/typography/Copy.d.ts +0 -0
- /package/{types → lib}/components/typography/Copy.d.ts.map +0 -0
- /package/{types → lib}/components/typography/Heading.d.ts +0 -0
- /package/{types → lib}/components/typography/Heading.d.ts.map +0 -0
- /package/{types → lib}/components/typography/Link.d.ts +0 -0
- /package/{types → lib}/components/typography/Link.d.ts.map +0 -0
- /package/{types → lib}/utils/LibThemeProvider.d.ts +0 -0
- /package/{types → lib}/utils/LibThemeProvider.d.ts.map +0 -0
- /package/{types → lib}/utils/arrays.d.ts +0 -0
- /package/{types → lib}/utils/arrays.d.ts.map +0 -0
- /package/{types → lib}/utils/backgroundImage.d.ts +0 -0
- /package/{types → lib}/utils/backgroundImage.d.ts.map +0 -0
- /package/{types → lib}/utils/clamp.d.ts +0 -0
- /package/{types → lib}/utils/clamp.d.ts.map +0 -0
- /package/{types → lib}/utils/concat.d.ts +0 -0
- /package/{types → lib}/utils/concat.d.ts.map +0 -0
- /package/{types → lib}/utils/cookie-consent/cookie.d.ts +0 -0
- /package/{types → lib}/utils/cookie-consent/cookie.d.ts.map +0 -0
- /package/{types → lib}/utils/cookie-consent/mutations.d.ts +0 -0
- /package/{types → lib}/utils/cookie-consent/mutations.d.ts.map +0 -0
- /package/{types → lib}/utils/cookie-consent/useCookieConsent.d.ts +0 -0
- /package/{types → lib}/utils/cookie-consent/useCookieConsent.d.ts.map +0 -0
- /package/{types → lib}/utils/dataURI.d.ts +0 -0
- /package/{types → lib}/utils/dataURI.d.ts.map +0 -0
- /package/{types → lib}/utils/escape.d.ts +0 -0
- /package/{types → lib}/utils/escape.d.ts.map +0 -0
- /package/{types → lib}/utils/filters.d.ts +0 -0
- /package/{types → lib}/utils/filters.d.ts.map +0 -0
- /package/{types → lib}/utils/fontLoading.d.ts +0 -0
- /package/{types → lib}/utils/fontLoading.d.ts.map +0 -0
- /package/{types → lib}/utils/formFieldText.d.ts +0 -0
- /package/{types → lib}/utils/formFieldText.d.ts.map +0 -0
- /package/{types → lib}/utils/getLinkIcon.d.ts +0 -0
- /package/{types → lib}/utils/getLinkIcon.d.ts.map +0 -0
- /package/{types → lib}/utils/hexRgbConverter.d.ts +0 -0
- /package/{types → lib}/utils/hexRgbConverter.d.ts.map +0 -0
- /package/{types → lib}/utils/menuHooks.d.ts +0 -0
- /package/{types → lib}/utils/menuHooks.d.ts.map +0 -0
- /package/{types → lib}/utils/navigation.d.ts +0 -0
- /package/{types → lib}/utils/navigation.d.ts.map +0 -0
- /package/{types → lib}/utils/statusFormatter.d.ts +0 -0
- /package/{types → lib}/utils/statusFormatter.d.ts.map +0 -0
- /package/{types → lib}/utils/storyHelpers.d.ts +0 -0
- /package/{types → lib}/utils/storyHelpers.d.ts.map +0 -0
- /package/{types → lib}/utils/structuredData.d.ts +0 -0
- /package/{types → lib}/utils/structuredData.d.ts.map +0 -0
- /package/{types → lib}/utils/types.d.ts +0 -0
- /package/{types → lib}/utils/types.d.ts.map +0 -0
- /package/{types → lib}/utils/urlParams.d.ts +0 -0
- /package/{types → lib}/utils/urlParams.d.ts.map +0 -0
- /package/{types → lib}/utils/useArray.d.ts +0 -0
- /package/{types → lib}/utils/useArray.d.ts.map +0 -0
- /package/{types → lib}/utils/useDebounce.d.ts +0 -0
- /package/{types → lib}/utils/useDebounce.d.ts.map +0 -0
- /package/{types → lib}/utils/useFontsLoaded.d.ts +0 -0
- /package/{types → lib}/utils/useFontsLoaded.d.ts.map +0 -0
- /package/{types → lib}/utils/useGeolocation.d.ts +0 -0
- /package/{types → lib}/utils/useGeolocation.d.ts.map +0 -0
- /package/{types → lib}/utils/useIE.d.ts +0 -0
- /package/{types → lib}/utils/useIE.d.ts.map +0 -0
- /package/{types → lib}/utils/useImgPreload.d.ts +0 -0
- /package/{types → lib}/utils/useImgPreload.d.ts.map +0 -0
- /package/{types → lib}/utils/useInterval.d.ts +0 -0
- /package/{types → lib}/utils/useInterval.d.ts.map +0 -0
- /package/{types → lib}/utils/useItemHeight.d.ts +0 -0
- /package/{types → lib}/utils/useItemHeight.d.ts.map +0 -0
- /package/{types → lib}/utils/useLazyInput.d.ts +0 -0
- /package/{types → lib}/utils/useLazyInput.d.ts.map +0 -0
- /package/{types → lib}/utils/useLeafletMap.d.ts +0 -0
- /package/{types → lib}/utils/useLeafletMap.d.ts.map +0 -0
- /package/{types → lib}/utils/useMounted.d.ts +0 -0
- /package/{types → lib}/utils/useMounted.d.ts.map +0 -0
- /package/{types → lib}/utils/useObserverSupport.d.ts +0 -0
- /package/{types → lib}/utils/useObserverSupport.d.ts.map +0 -0
- /package/{types → lib}/utils/usePageScroll.d.ts +0 -0
- /package/{types → lib}/utils/usePageScroll.d.ts.map +0 -0
- /package/{types → lib}/utils/useParams.d.ts +0 -0
- /package/{types → lib}/utils/useParams.d.ts.map +0 -0
- /package/{types → lib}/utils/usePoster.d.ts +0 -0
- /package/{types → lib}/utils/usePoster.d.ts.map +0 -0
- /package/{types → lib}/utils/usePrevious.d.ts +0 -0
- /package/{types → lib}/utils/usePrevious.d.ts.map +0 -0
- /package/{types → lib}/utils/useResizeThrottle.d.ts +0 -0
- /package/{types → lib}/utils/useResizeThrottle.d.ts.map +0 -0
- /package/{types → lib}/utils/useScroll.d.ts +0 -0
- /package/{types → lib}/utils/useScroll.d.ts.map +0 -0
- /package/{types → lib}/utils/useScrollIntoView.d.ts +0 -0
- /package/{types → lib}/utils/useScrollIntoView.d.ts.map +0 -0
- /package/{types → lib}/utils/useScrollThrottle.d.ts +0 -0
- /package/{types → lib}/utils/useScrollThrottle.d.ts.map +0 -0
- /package/{types → lib}/utils/useScrollTo.d.ts +0 -0
- /package/{types → lib}/utils/useScrollTo.d.ts.map +0 -0
- /package/{types → lib}/utils/useTimeout.d.ts +0 -0
- /package/{types → lib}/utils/useTimeout.d.ts.map +0 -0
- /package/{types → lib}/utils/useTouch.d.ts +0 -0
- /package/{types → lib}/utils/useTouch.d.ts.map +0 -0
- /package/{types → lib}/utils/useUpdateEffect.d.ts +0 -0
- /package/{types → lib}/utils/useUpdateEffect.d.ts.map +0 -0
package/cjs/sections.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sections.js","sources":["../src/components/sections/Accordion.tsx","../src/components/blocks/Alert.tsx","../src/components/sections/AlertList.tsx","../src/components/sections/Article.tsx","../src/components/sections/CallToAction.tsx","../src/components/sections/CardList.tsx","../src/components/sections/ComparisonSlider.tsx","../src/components/blocks/PromotionCard.tsx","../src/components/sections/CrossPromotion.tsx","../src/components/blocks/Fact.tsx","../src/components/sections/FactGrid.tsx","../src/components/sections/FactList.tsx","../src/components/blocks/Feature.tsx","../src/components/sections/FeatureList.tsx","../src/components/sections/Gallery.tsx","../src/components/sections/header/Header.tsx","../src/components/sections/IconList.tsx","../src/components/sections/IndexList.tsx","../src/components/sections/Intro.tsx","../src/components/sections/Map.tsx","../src/components/blocks/NavBlock.tsx","../src/components/sections/NavList.tsx","../src/components/sections/NumberList.tsx","../src/components/sections/ParallaxBackground.tsx","../src/components/sections/Poster.tsx","../src/components/sections/PriceList.tsx","../src/components/blocks/PriceTag.tsx","../src/components/sections/PriceTable.tsx","../src/components/sections/Quote.tsx","../src/components/sections/SimpleImage.tsx","../src/components/sections/SocialWall.tsx","../src/components/sections/Table.tsx","../src/components/sections/Teaser.tsx","../src/components/sections/TeaserWide.tsx","../src/components/sections/Timeline.tsx","../src/components/sections/Video.tsx","../src/components/sections/RawVideo.tsx"],"sourcesContent":["import Plus from 'components/base/icons/Plus';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Copy from 'components/typography/Copy';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { spacings, getColors as color, mq } from 'utils/styles';\nimport Minus from 'components/base/icons/Minus';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { generateFAQ } from 'utils/structuredData';\nimport Grid, { gridSettings } from 'components/base/Grid';\n\nconst AccordionContainer = styled.div`\n margin: 0;\n padding: 0;\n\n & > * + * {\n margin-top: ${spacings.nudge}px;\n }\n`;\n\nconst View = styled.details``;\n\nconst AccordionHead = styled.summary<{\n isInverted?: boolean;\n hasBg?: boolean;\n}>`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n padding: ${spacings.nudge * 2}px;\n margin: 0;\n border: none;\n outline: none;\n background: none;\n user-select: none;\n list-style: none;\n\n background: ${({ isInverted, hasBg, theme }) =>\n isInverted || hasBg\n ? color(theme).elementBg.light\n : color(theme).elementBg.medium};\n\n cursor: pointer;\n transition: background 0.2s ease-in-out;\n\n @media ${mq.medium} {\n padding: ${spacings.nudge * 3}px;\n }\n\n &::-webkit-details-marker {\n display: none;\n }\n\n &::marker {\n display: none;\n }\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n background: ${({ theme, isInverted, hasBg }) =>\n isInverted || hasBg\n ? color(theme).elementBg.lightHover\n : color(theme).elementBg.mediumHover};\n }\n }\n\n &:focus {\n background: ${({ theme, isInverted, hasBg }) =>\n isInverted || hasBg\n ? color(theme).elementBg.lightHover\n : color(theme).elementBg.mediumHover};\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n`;\n\nconst Column = styled(Copy)`\n flex: 1 1 0;\n`;\n\nconst AccordionText = styled.div<{\n isInverted?: boolean;\n hasBg?: boolean;\n hasAside?: boolean;\n}>`\n display: flex;\n flex-direction: column;\n padding: ${spacings.nudge * 2}px;\n margin-top: 2px;\n background: ${({ isInverted, hasBg, theme }) =>\n isInverted || hasBg\n ? color(theme).elementBg.light\n : color(theme).elementBg.medium};\n\n & > * {\n max-width: 880px;\n }\n\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n\n @media ${mq.medium} {\n padding: ${spacings.nudge * 3}px;\n }\n\n @media ${mq.semilarge} {\n flex-direction: row;\n\n & > * + * {\n margin-top: 0px;\n margin-left: ${gridSettings.gutter}px;\n }\n }\n`;\n\ninterface AccordionItem {\n label?: string;\n text?: string;\n aside?: string;\n}\n\nconst AccordionBlock: React.FC<\n AccordionItem & {\n isSelected?: boolean;\n onClick?: () => void;\n isInverted?: boolean;\n hasBg?: boolean;\n itemIcon?: (props: { isSelected: boolean }) => React.ReactNode;\n className?: string;\n }\n> = ({\n label,\n text,\n aside,\n isSelected,\n onClick,\n hasBg,\n isInverted,\n itemIcon,\n className,\n}) => {\n const { colors } = useLibTheme();\n\n return (\n <View open={isSelected} onToggle={onClick} className={className}>\n <AccordionHead isInverted={isInverted} hasBg={hasBg}>\n <Copy renderAs=\"span\" size=\"big\" type=\"copy-b\">\n {label}\n </Copy>\n <span>\n {itemIcon ? (\n itemIcon({ isSelected: isSelected || false })\n ) : isSelected ? (\n <Minus iconColor={colors.text.default} />\n ) : (\n <Plus iconColor={colors.text.default} />\n )}\n </span>\n </AccordionHead>\n <AccordionText\n isInverted={isInverted}\n hasBg={hasBg}\n hasAside={!!aside}\n >\n {text && <Column type=\"copy\" innerHTML={text} />}\n {aside && <Column type=\"copy\" innerHTML={aside} />}\n </AccordionText>\n </View>\n );\n};\n\nconst Accordion: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of accordion items */\n items?: AccordionItem[];\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom item state icon */\n itemIcon?: (props: { isSelected: boolean }) => React.ReactNode;\n}> = ({ anchorId, items, bgMode, itemIcon }) => {\n const [currentItems, setCurrentItems] = React.useState<number[]>([]);\n\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n {items && generateFAQ(items)}\n <Wrapper addWhitespace>\n <Grid.Row gutter={0}>\n <Grid.Col>\n <AccordionContainer aria-label=\"Accordion Control Group Buttons\">\n {items?.map(({ label, text, aside }, i) => {\n const isSelected =\n currentItems.indexOf(i) !== -1;\n return (\n <AccordionBlock\n key={`${label}_${i}`}\n isSelected={isSelected}\n label={label}\n text={text}\n aside={aside}\n onClick={() => {\n setCurrentItems((prev) => {\n const copy = [...prev];\n const index = copy.indexOf(i);\n if (index === -1) {\n copy.push(i);\n } else {\n copy.splice(index, 1);\n }\n return copy;\n });\n }}\n isInverted={isInverted}\n hasBg={hasBg}\n itemIcon={itemIcon}\n />\n );\n })}\n </AccordionContainer>\n </Grid.Col>\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const AccordionComponent = Accordion;\nexport default withLibTheme(Accordion);\n","import Copy from 'components/typography/Copy';\nimport Link, { LinkProps } from 'components/typography/Link';\nimport React from 'react';\nimport styled from 'styled-components';\nimport {\n getColors as color,\n getGlobals as global,\n spacings,\n} from 'utils/styles';\nimport StatusFormatter from '../../utils/statusFormatter';\nimport Info from '../base/icons/Info';\n\nconst View = styled.div<{ isInverted?: boolean }>`\n display: -ms-grid;\n display: grid;\n\n -ms-grid-columns: min-content 1fr;\n grid-template-columns: min-content 1fr;\n -ms-grid-rows: min-content 1fr;\n grid-auto-rows: min-content 1fr;\n\n text-decoration: none;\n\n position: relative;\n border: 2px solid\n ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n\n color: ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n\n padding: ${spacings.nudge * 3}px;\n\n text-align: left;\n width: 100%;\n cursor: pointer;\n\n transition: color ease-in-out 0.2s, border 0.2s ease-in-out;\n\n & > * + * {\n margin-left: ${spacings.nudge * 3}px;\n }\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n border: 2px solid\n ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.invertedHover\n : color(theme).primary.hover};\n color: ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.invertedHover\n : color(theme).primary.hover};\n }\n }\n`;\n\nconst Icon = styled.div`\n display: flex;\n align-items: center;\n\n & > * {\n height: 48px;\n width: 48px;\n }\n`;\n\nconst MainLabel = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst Content = styled.div`\n margin-top: ${spacings.nudge}px;\n\n & > * + * {\n margin-top: ${spacings.nudge}px;\n }\n`;\n\nconst Title = styled(Copy)`\n display: inline-block;\n`;\n\nconst ViewLink = styled(Link)`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n && {\n margin: 0;\n }\n\n &:focus-within {\n outline: dotted 2px\n ${({ isInverted, theme }) =>\n isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n outline-offset: 4px;\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n box-shadow: none;\n }\n`;\n\nexport interface AlertProps {\n /** Invert colors for use on dark backgrounds */\n isInverted?: boolean;\n\n /** Alert title text */\n title?: string;\n\n /** Alert date */\n date?: Date;\n\n /** Additional description text (richtext) */\n description?: string;\n\n /** Alert link that covers hole element */\n link?: LinkProps;\n\n /** Function to inject custom alert icon */\n customIcon?: (props: { isInverted?: boolean }) => React.ReactNode;\n}\n\nconst Alert: React.FC<AlertProps & { className?: string }> = ({\n isInverted,\n title,\n date,\n description,\n link,\n customIcon,\n className,\n}) => {\n let formattedDate = '';\n if (date) {\n const formatter = new StatusFormatter(\n date.getTime(),\n '',\n 'dd. MMMM yyyy',\n 'hh:mm',\n 'de'\n );\n formattedDate = formatter.getFormattedDate();\n }\n\n return (\n <View isInverted={isInverted} data-sheet=\"alert\" className={className}>\n <Icon>{customIcon ? customIcon({ isInverted }) : <Info />}</Icon>\n <MainLabel>\n {title && (\n <Title textColor=\"inherit\" size=\"medium\" type=\"copy-b\">\n {title}\n </Title>\n )}\n </MainLabel>\n <span />\n <Content>\n {description && (\n <Copy\n isInverted={isInverted}\n size=\"small\"\n innerHTML={description}\n />\n )}\n {date && (\n <Copy size=\"small\" isInverted={isInverted}>\n {formattedDate}\n </Copy>\n )}\n </Content>\n {link && (\n <ViewLink\n {...link}\n ariaLabel={link?.href ? title : undefined}\n />\n )}\n </View>\n );\n};\n\nexport default Alert;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { mq, spacings } from 'utils/styles';\nimport Wrapper from 'components/base/Wrapper';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Alert, { AlertProps } from '../blocks/Alert';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\n\nconst List = styled.ul`\n margin-top: -${spacings.nudge * 2}px;\n margin-left: -${spacings.nudge * 2}px;\n padding: 0;\n list-style: none;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: center;\n flex-wrap: wrap;\n\n @media ${mq.medium} {\n margin-top: -${spacings.spacer}px;\n margin-left: -${spacings.spacer}px;\n }\n`;\n\nconst ListItem = styled.li<{ itemsPerRow: number }>`\n padding-top: ${spacings.nudge * 2}px;\n padding-left: ${spacings.nudge * 2}px;\n flex: 1 1 100%;\n\n @media ${mq.medium} {\n flex: 0 1 50%;\n max-width: 50%;\n\n padding-top: ${spacings.spacer}px;\n padding-left: ${spacings.spacer}px;\n }\n\n @media ${mq.large} {\n flex: 0 1 ${({ itemsPerRow }) => (1 / itemsPerRow) * 100}%;\n max-width: 600px;\n\n padding-top: ${spacings.spacer}px;\n padding-left: ${spacings.spacer}px;\n }\n`;\n\nconst AlertList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of alert items */\n items?: Pick<AlertProps, 'title' | 'date' | 'description' | 'link'>[];\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom alert icon */\n customIcon?: (props: { isInverted?: boolean }) => React.ReactNode;\n}> = ({ anchorId, items, bgMode, customIcon }) => {\n const { colors } = useLibTheme();\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n const alertCount = items?.length || 0;\n const itemsPerRow = alertCount % 3 === 1 || alertCount === 2 ? 2 : 3;\n\n const { sheetRefs: alertRefs } = useEqualSheetHeight<HTMLLIElement>({\n listLength: alertCount,\n identifiers: ['[data-sheet=\"alert\"]'],\n responsive: {\n small: 1,\n medium: 2,\n semilarge: 2,\n large: itemsPerRow,\n xlarge: itemsPerRow,\n },\n });\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <List>\n {items?.map((item, i) => (\n <ListItem\n key={i}\n itemsPerRow={itemsPerRow}\n ref={alertRefs[i]}\n >\n <Alert\n {...item}\n isInverted={isInverted}\n customIcon={customIcon}\n />\n </ListItem>\n ))}\n </List>\n </Wrapper>\n </Section>\n );\n};\n\nexport const AlertListComponent = AlertList;\nexport default withLibTheme(AlertList);\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Title, { TitleSize } from 'components/blocks/Title';\nimport Copy from 'components/typography/Copy';\nimport Wrapper from 'components/base/Wrapper';\nimport { spacings, mq } from 'utils/styles';\nimport Actions from 'components/blocks/Actions';\nimport { HeadlineTag } from 'components/typography/Heading';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Grid from 'components/base/Grid';\n\nconst StyledTitle = styled(Title)`\n &:not(:last-child) {\n margin-bottom: ${spacings.spacer}px;\n }\n\n @media ${mq.semilarge} {\n max-width: 880px;\n }\n`;\n\nconst ContentText = styled(Copy)`\n text-align: left;\n`;\n\nconst StyledActions = styled(Actions)`\n margin-top: ${spacings.spacer}px;\n`;\n\nconst Article: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n /** Main title text */\n title?: string;\n /** Main title HTML tag type (h2, h3, h4...) */\n titleAs?: HeadlineTag;\n /** Main title size */\n titleSize?: TitleSize;\n /** Superior title that stands above main title */\n superTitle?: string;\n /** Superior title HTML tag type (h3, h4 ...) */\n superTitleAs?: HeadlineTag;\n /** Bold intro text underneath the title (limited richtext capabilites) */\n intro?: string;\n /** Main article richtext */\n text?: string;\n /** Additional article richtext in a second column */\n asideText?: string;\n /** Controls width of left text column (8/12 or 6/12) */\n halfAside?: boolean;\n\n /** Section background */\n bgMode?: 'full' | 'splitted' | 'inverted';\n\n /** Function to inject custom primary button */\n primaryAction?: (isInverted?: boolean) => React.ReactNode;\n /** Function to inject custom secondary button */\n secondaryAction?: (isInverted?: boolean) => React.ReactNode;\n}> = ({\n anchorId,\n title,\n titleAs = 'h2',\n titleSize = 'heading-2',\n superTitle,\n superTitleAs,\n intro,\n text,\n asideText,\n halfAside,\n bgMode,\n primaryAction,\n secondaryAction,\n}) => {\n const { colors } = useLibTheme();\n\n const isInverted = bgMode === 'inverted';\n const hasContent = intro || text || asideText;\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode)}\n >\n <Wrapper clampWidth=\"normal\" addWhitespace>\n {(title || superTitle) && (\n <StyledTitle\n title={title}\n titleAs={titleAs}\n titleSize={titleSize}\n superTitle={superTitle}\n superTitleAs={superTitleAs}\n colorMode={isInverted ? 'inverted' : 'default'}\n />\n )}\n {hasContent && (\n <Grid.Row valign=\"top\">\n <Grid.Col\n semilarge={{ span: halfAside ? 6 / 12 : 8 / 12 }}\n >\n {intro && (\n <ContentText\n type=\"copy-b\"\n isInverted={isInverted}\n innerHTML={intro}\n />\n )}\n {text && (\n <ContentText\n type=\"copy\"\n isInverted={isInverted}\n innerHTML={text}\n />\n )}\n </Grid.Col>\n {asideText && (\n <Grid.Col\n semilarge={{\n span: halfAside ? 6 / 12 : 4 / 12,\n }}\n >\n <ContentText\n type=\"copy\"\n isInverted={isInverted}\n innerHTML={asideText}\n />\n </Grid.Col>\n )}\n </Grid.Row>\n )}\n {(primaryAction || secondaryAction) && (\n <StyledActions\n primary={primaryAction && primaryAction(isInverted)}\n secondary={\n secondaryAction && secondaryAction(isInverted)\n }\n />\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const ArticleComponent = Article;\nexport default withLibTheme(Article);\n","import React, { FC, useContext } from 'react';\nimport styled, { ThemeContext } from 'styled-components';\n\nimport {\n getColors as color,\n getGlobals as global,\n mq,\n spacings,\n} from 'utils/styles';\nimport Copy from 'components/typography/Copy';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport { HeadlineTag } from 'components/typography/Heading';\nimport IntroBlock from 'components/blocks/IntroBlock';\nimport Actions from 'components/blocks/Actions';\nimport { withLibTheme } from 'utils/LibThemeProvider';\nimport { gridSettings, getGridWidth } from 'components/base/Grid';\n\nconst ContactView = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 0 auto;\n width: 100%;\n\n text-align: left;\n hyphens: auto;\n overflow-wrap: break-word;\n\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n\n @media ${mq.semilarge} {\n flex-direction: row;\n\n & > * + * {\n margin-top: 0px;\n margin-left: ${gridSettings.gutter}px;\n }\n }\n`;\n\nconst Avatar = styled.img<{ isInverted?: boolean }>`\n align-self: center;\n display: block;\n border: solid 1px transparent;\n border-radius: 50%;\n width: 180px;\n height: 180px;\n\n background: ${({ theme, isInverted }) =>\n isInverted\n ? global(theme).sections.imagePlaceholderBg.inverted\n : global(theme).sections.imagePlaceholderBg.default};\n\n @media ${mq.semilarge} {\n display: block;\n width: 190px;\n height: 190px;\n }\n`;\n\nconst Description = styled(Copy)`\n text-align: center;\n\n .icon-label {\n flex-direction: column;\n }\n\n .icon-label > * + * {\n margin-left: 0;\n margin-top: ${spacings.nudge * 2}px;\n }\n\n & > * {\n justify-content: center;\n }\n\n @media ${mq.semilarge} {\n text-align: left;\n\n & > * {\n justify-content: left;\n }\n\n .icon-label {\n flex-direction: row;\n }\n\n .icon-label > * + * {\n margin-left: ${spacings.nudge * 2}px;\n margin-top: 0;\n }\n }\n`;\n\nexport interface ContactBoxProps {\n isInverted?: boolean;\n description?: string;\n avatar?: { src: string; alt: string };\n}\n\nconst ContactBox: FC<ContactBoxProps & { className?: string }> = ({\n isInverted,\n description,\n avatar,\n className,\n}) => {\n return (\n <ContactView className={className}>\n <Avatar\n src={avatar?.src}\n alt={avatar?.alt}\n isInverted={isInverted}\n />\n {description && (\n <Description\n type=\"copy\"\n isInverted={isInverted}\n innerHTML={description}\n />\n )}\n </ContactView>\n );\n};\n\nconst StyledIntro = styled(IntroBlock)<{ hasDecorator?: boolean }>`\n max-width: 880px;\n margin-right: auto;\n margin-left: auto;\n\n @media ${mq.xlarge} {\n & > *:first-child {\n min-height: ${({ hasDecorator }) => hasDecorator && '110px'};\n }\n }\n`;\n\nconst StyledContactBox = styled(ContactBox)`\n margin-top: ${spacings.spacer}px;\n\n @media ${mq.semilarge} {\n max-width: ${getGridWidth({ cols: 8 })};\n margin-right: auto;\n margin-left: auto;\n }\n\n @media ${mq.large} {\n max-width: ${getGridWidth({ cols: 6 })};\n }\n`;\n\nconst StyledActions = styled(Actions)`\n margin-top: ${spacings.spacer}px;\n\n @media ${mq.medium} {\n display: block;\n text-align: center;\n }\n`;\n\nconst NewsletterWrapper = styled.div`\n width: 100%;\n margin: 0 auto;\n margin-top: ${spacings.spacer}px;\n\n @media ${mq.semilarge} {\n max-width: 400px;\n }\n`;\n\nconst Badge = styled.div`\n display: none;\n position: relative;\n height: 241px;\n width: 241px;\n margin-left: auto;\n margin-bottom: -135px;\n z-index: 3;\n\n @media ${mq.xlarge} {\n display: block;\n margin-right: ${1440 * (1 / 28) + 'px'};\n }\n`;\n\nexport const CallToAction: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n /** Main title text */\n title?: string;\n /** Main title HTML tag type (h2, h3, h4...) */\n titleAs?: HeadlineTag;\n /** Superior title that stands above main title */\n superTitle?: string;\n /** Superior title HTML tag type (h3, h4 ...) */\n superTitleAs?: HeadlineTag;\n /** Bold text underneath the title (limited richtext capabilites) */\n text?: string;\n /** Props for contact area */\n contact?: ContactBoxProps;\n /** Show Newsletter defined by inject function newsFormMain. Only visible if React node is defined! */\n hasNewsletter?: boolean;\n /** Badge decorator visible only on large screens */\n badge?: React.ReactNode;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom primary button */\n primaryAction?: (isInverted?: boolean) => React.ReactNode;\n /** Function to inject custom secondary button */\n secondaryAction?: (isInverted?: boolean) => React.ReactNode;\n /** Function to inject newsletter form */\n newsFormMain?: (isInverted?: boolean) => React.ReactNode;\n}> = ({\n anchorId,\n title,\n titleAs = 'h2',\n superTitle,\n superTitleAs,\n text,\n contact,\n badge,\n primaryAction,\n secondaryAction,\n hasNewsletter,\n newsFormMain,\n bgMode,\n}) => {\n const theme = useContext(ThemeContext);\n const isInverted = bgMode === 'inverted';\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? color(theme).sectionBg.dark\n : color(theme).sectionBg.medium\n }\n bgMode={bgMode ? mapToBgMode(bgMode, true) : 'full'}\n >\n <Wrapper addWhitespace clampWidth=\"normal\">\n {badge && <Badge>{badge}</Badge>}\n {title && (\n <StyledIntro\n isCentered\n colorMode={isInverted ? 'inverted' : 'default'}\n title={title}\n titleAs={titleAs}\n superTitle={superTitle}\n superTitleAs={superTitleAs}\n hasDecorator={!!badge}\n text={text}\n />\n )}\n\n {contact && (\n <StyledContactBox\n isInverted={isInverted}\n description={contact.description}\n avatar={contact.avatar}\n />\n )}\n {newsFormMain && hasNewsletter && (\n <NewsletterWrapper>\n {newsFormMain(isInverted)}\n </NewsletterWrapper>\n )}\n {(primaryAction || secondaryAction) && (\n <StyledActions\n primary={primaryAction && primaryAction(isInverted)}\n secondary={\n secondaryAction && secondaryAction(isInverted)\n }\n />\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const CallToActionComponent = CallToAction;\nexport default withLibTheme(CallToAction);\n","import Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Copy from 'components/typography/Copy';\nimport Link, { LinkProps } from 'components/typography/Link';\nimport React from 'react';\nimport styled, { css } from 'styled-components';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport {\n spacings,\n getColors as color,\n mq,\n getGlobals as global,\n} from 'utils/styles';\n\nconst View = styled.div<{\n isInverted?: boolean;\n cardColor?: string;\n hasLink?: boolean;\n}>`\n display: flex;\n flex-direction: column;\n justify-content: center;\n position: relative;\n color: ${({ theme }) => color(theme).text.inverted};\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n min-height: 110px;\n\n overflow: hidden;\n\n @media ${mq.medium} {\n display: block;\n padding-top: 85%;\n }\n`;\n\nconst SolidView = styled(View)`\n background-color: ${({ theme, isInverted, cardColor }) =>\n cardColor\n ? cardColor\n : isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n\n transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;\n\n ${({ hasLink }) =>\n hasLink &&\n css`\n cursor: pointer;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n box-shadow: 0 2px 24px 0 rgba(0, 0, 0, 0.35);\n }\n }\n `}\n`;\n\nconst ImageView = styled(View)`\n transition: box-shadow 0.2s ease-in-out;\n\n ${({ hasLink }) =>\n hasLink &&\n css`\n @media (hover: hover) and (pointer: fine) {\n cursor: pointer;\n\n img {\n -webkit-backface-visibility: hidden;\n -ms-transform: translateZ(0); /* IE 9 */\n -webkit-transform: translateZ(\n 0\n ); /* Chrome, Safari, Opera */\n transform: translateZ(0);\n transform-origin: center;\n transition: transform 0.2s ease-in-out;\n }\n\n &:hover {\n box-shadow: 0 2px 24px 0 rgba(0, 0, 0, 0.35);\n\n img {\n transform: scale(1.03);\n }\n }\n }\n `}\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n background: ${({ theme }) => global(theme).sections.imageTextGradient};\n pointer-events: none;\n }\n\n @media ${mq.medium} {\n padding-top: 0;\n }\n`;\n\nconst StyledImage = styled(Image)`\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n\n display: block;\n width: 100%;\n height: 100%;\n\n object-fit: cover;\n object-position: center;\n\n @media ${mq.medium} {\n position: relative;\n }\n`;\n\nconst Content = styled.div<{ hasIcon?: boolean }>`\n z-index: 1;\n\n padding: ${spacings.nudge * 3}px;\n\n display: flex;\n flex-direction: row;\n align-items: center;\n\n & > * + * {\n margin-left: ${spacings.spacer}px;\n }\n\n @media ${mq.medium} {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: hidden;\n\n display: flex;\n flex-direction: ${({ hasIcon }) => (hasIcon ? 'column' : 'row')};\n justify-content: space-between;\n align-items: ${({ hasIcon }) => (hasIcon ? 'flex-start' : 'flex-end')};\n\n & > * + * {\n margin-left: 0;\n }\n }\n`;\n\nconst TextContainer = styled.div`\n width: 100%;\n overflow: hidden;\n\n & > * + * {\n margin-top: ${spacings.nudge / 2}px;\n }\n`;\n\nconst Title = styled(Copy)`\n display: inline-block;\n max-width: 100%;\n\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n text-overflow: ellipsis;\n overflow: hidden;\n`;\n\nconst Footer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n & > * + * {\n margin-left: ${spacings.nudge * 2}px;\n }\n`;\n\nconst SubLabel = styled(Copy)`\n display: inline-block;\n\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n`;\n\nconst Icon = styled.div`\n height: 100%;\n max-height: 60px;\n min-height: 40px;\n min-width: 40px;\n\n * {\n height: 100%;\n }\n\n svg,\n img {\n width: 100%;\n }\n\n @media ${mq.medium} {\n svg,\n img {\n width: auto;\n }\n }\n`;\n\nconst CardLink = styled(Link)<{ isInverted?: boolean }>`\n z-index: 1;\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n outline-color: ${({ theme }) => color(theme).primary.default};\n\n &:focus {\n border: 2px dotted ${({ theme }) => color(theme).primary.invertedHover};\n outline-offset: 4px;\n\n color: ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.invertedHover\n : color(theme).primary.hover};\n }\n`;\n\nexport interface CardProps {\n isInverted?: boolean;\n title?: string;\n subLabel?: string;\n image?: ImageProps;\n link?: LinkProps;\n decorator?: (props: { isInverted?: boolean }) => React.ReactNode;\n cardColor?: string;\n customIcon?: (props: { isInverted?: boolean }) => React.ReactNode;\n}\n\nconst Card: React.FC<\n Omit<CardProps, 'coverSpace' | 'ratios'> & {\n className?: string;\n }\n> = ({\n isInverted,\n title,\n subLabel,\n image,\n link,\n decorator,\n cardColor,\n customIcon,\n}) => {\n const { colors } = useLibTheme();\n const CardView = image && image.small ? ImageView : SolidView;\n const defaultCardColor = isInverted\n ? colors.primary.inverted\n : colors.primary.default;\n\n return (\n <CardView\n isInverted={isInverted}\n cardColor={cardColor || defaultCardColor}\n hasLink={!!link?.href}\n >\n {image?.small && (\n <StyledImage\n {...image}\n coverSpace\n isInverted={isInverted}\n ratios={{\n small: { w: 352, h: 108 },\n medium: { w: 286, h: 244 },\n }}\n />\n )}\n <Content hasIcon={!!customIcon}>\n {customIcon ? <Icon>{customIcon({})}</Icon> : ''}\n <TextContainer>\n {title && (\n <Title size=\"big\" type=\"copy\" isInverted>\n {title}\n </Title>\n )}\n {subLabel && (\n <Footer>\n <SubLabel type=\"copy-b\" size=\"big\" isInverted>\n {subLabel}\n </SubLabel>\n {decorator ? decorator({ isInverted }) : undefined}\n </Footer>\n )}\n </TextContainer>\n </Content>\n {link?.href && (\n <CardLink\n isInverted={isInverted}\n {...link}\n ariaLabel={title || undefined}\n />\n )}\n </CardView>\n );\n};\n\nconst List = styled.ul`\n padding: 0;\n margin-top: -${spacings.nudge * 2}px;\n margin-left: -${spacings.nudge * 2}px;\n list-style: none;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: center;\n flex-wrap: wrap;\n\n @media ${mq.medium} {\n margin-top: -${spacings.spacer}px;\n margin-left: -${spacings.spacer}px;\n }\n`;\n\nconst CardItem = styled.li<{ isEqual?: boolean; threeCols?: boolean }>`\n padding-top: ${spacings.nudge * 2}px;\n padding-left: ${spacings.nudge * 2}px;\n\n width: 100%;\n\n @media ${mq.medium} {\n flex: 0 0 50%;\n max-width: 370px;\n padding-top: ${spacings.spacer}px;\n padding-left: ${spacings.spacer}px;\n }\n\n @media ${mq.semilarge} {\n flex: 0 0 33.33%;\n }\n\n @media (min-width: 75em) {\n flex: ${({ isEqual, threeCols }) =>\n threeCols ? '0 0 33.33%' : isEqual && '0 0 25%'};\n }\n`;\n\nconst CardList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array with card item settings */\n items?: Omit<CardProps, 'decorator' | 'isInverted'>[];\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom decoration icon */\n decorator?: (props: { isInverted?: boolean }) => React.ReactNode;\n\n /** Force maximal three items per row */\n maxThreeCols?: boolean;\n}> = ({ anchorId, items, bgMode, decorator, maxThreeCols }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n\n return (\n <Section\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n addSeperation\n >\n <Wrapper addWhitespace>\n <List>\n {items?.map((item, i) => (\n <CardItem\n key={i}\n isEqual={items.length % 2 === 0}\n threeCols={maxThreeCols}\n >\n <Card\n {...item}\n isInverted={isInverted}\n decorator={decorator}\n />\n </CardItem>\n ))}\n </List>\n </Wrapper>\n </Section>\n );\n};\n\nexport const CardListComponent = CardList;\nexport default withLibTheme(CardList);\n","import React, { FC, useEffect, useRef, useState } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport { getColors as color, spacings } from 'utils/styles';\nimport ArrowLeftRight from 'components/base/icons/ArrowLeftRight';\nimport Copy from 'components/typography/Copy';\nimport useIE from 'utils/useIE';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\n\nconst clamp = (num: number, min: number, max: number) => {\n return Math.min(Math.max(num, min), max);\n};\n\nconst Images = styled.div`\n position: relative;\n cursor: col-resize;\n & > * {\n pointer-events: none;\n user-select: none;\n }\n`;\n\nconst BackgroundImg = styled(Image)`\n position: relative;\n display: block;\n width: 100%;\n`;\n\nconst ForegroundContainer = styled.div<{\n hasTransition?: boolean;\n initalValue?: number;\n hasAnim?: boolean;\n}>`\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 50%;\n overflow: hidden;\n transition: width ${({ hasTransition }) => (hasTransition ? 0.1 : 0)}s\n ease-in-out;\n ${({ hasAnim, initalValue }) =>\n hasAnim &&\n css`\n animation-name: ForegroundAnim;\n animation-duration: 5s;\n animation-iteration-count: 1;\n animation-play-state: ${hasAnim && 'running'};\n animation-timing-function: ease-in-out;\n @keyframes ForegroundAnim {\n 0% {\n width: ${initalValue\n ? clamp(initalValue * 100, 0, 100) + '%'\n : '50%'};\n }\n 33% {\n width: ${initalValue\n ? clamp(initalValue * 100 + 10, 0, 100) + '%'\n : '60%'};\n }\n 66% {\n width: ${initalValue\n ? clamp(initalValue * 100 - 10, 0, 100) + '%'\n : '40%'};\n }\n 100% {\n width: ${initalValue ? initalValue * 100 + '%' : '50%'};\n }\n }\n `}\n`;\n\nconst ForegroundImg = styled(Image)`\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n max-width: none;\n object-fit: cover;\n\n img {\n height: auto;\n width: auto;\n }\n`;\n\nconst ForegroundOverlay = styled.div<{ color: string }>`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: ${({ color }) => color};\n`;\n\nconst ImageLabel = styled(Copy)<{ bgColor?: string }>`\n height: ${spacings.spacer}px;\n padding: ${spacings.nudge}px ${spacings.spacer}px ${spacings.spacer}px\n ${spacings.spacer}px;\n background: ${({ bgColor }) => bgColor && bgColor};\n`;\n\nconst ForegroundLabel = styled(ImageLabel)`\n position: absolute;\n bottom: ${spacings.spacer}px;\n left: ${spacings.spacer}px;\n pointer-events: none;\n white-space: nowrap;\n`;\n\nconst BackgroundLabel = styled(ImageLabel)`\n position: absolute;\n bottom: ${spacings.spacer}px;\n right: ${spacings.spacer}px;\n pointer-events: none;\n white-space: nowrap;\n`;\n\nconst ControlContainer = styled.div<{\n hasTransition?: boolean;\n hasAnim?: boolean;\n initalValue?: number;\n}>`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n transition: left ${({ hasTransition }) => (hasTransition ? 0.1 : 0)}s\n ease-in-out;\n ${({ hasAnim, initalValue }) =>\n hasAnim &&\n css`\n animation-name: ControlAnim;\n animation-duration: 5s;\n animation-iteration-count: 1;\n animation-play-state: ${hasAnim && 'running'};\n animation-timing-function: ease-in-out;\n @keyframes ControlAnim {\n 0% {\n left: ${initalValue\n ? clamp(initalValue * 100, 0, 100) + '%'\n : '50%'};\n }\n 33% {\n left: ${initalValue\n ? clamp(initalValue * 100 + 10, 0, 100) + '%'\n : '60%'};\n }\n 66% {\n left: ${initalValue\n ? clamp(initalValue * 100 - 10, 0, 100) + '%'\n : '40%'};\n }\n 100% {\n left: ${initalValue ? initalValue * 100 + '%' : '50%'};\n }\n }\n `}\n`;\n\nconst Control = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 54px;\n width: 54px;\n border: solid 2px ${({ theme }) => color(theme).elementBg.light};\n border-radius: 50%;\n background-color: ${({ theme }) => color(theme).elementBg.medium};\n`;\n\nconst ComparisonSlider: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n bgMode?: 'full' | 'inverted' | 'splitted';\n initialValue?: number;\n foregroundImg?: ImageProps;\n backgroundImg?: ImageProps;\n foregroundLabel?: string;\n backgroundLabel?: string;\n overlayColor?: string;\n labelColor?: string;\n dragControl?: React.ReactNode;\n enableControlAnim?: boolean;\n}> = ({\n anchorId,\n bgMode,\n initialValue,\n foregroundImg,\n backgroundImg,\n foregroundLabel,\n backgroundLabel,\n overlayColor = 'rgba(0, 0 , 0, 0.2)',\n labelColor = 'rgba(0, 0 , 0, 0.3)',\n dragControl,\n enableControlAnim,\n}) => {\n const isIE = useIE(true);\n const [slideValue, setSlideValue] = useState<number>(\n initialValue ? Math.min(Math.max(initialValue, 0), 1) : 0.5\n );\n const [isHolding, setIsHolding] = useState<boolean>(false);\n const [isDragging, setIsDragging] = useState<boolean>(false);\n const [interacted, setInteracted] = useState<boolean>(true);\n const [sideOffset, setSideOffset] = useState<number>(0);\n const controlRef = useRef<HTMLDivElement | null>(null);\n const { colors } = useLibTheme();\n\n useEffect(() => {\n if (controlRef.current) {\n setSideOffset(controlRef.current.offsetWidth / 2);\n }\n }, []);\n\n useEffect(() => {\n const handleInitalLoad = () => {\n const options = {\n rootMargin: '0px',\n threshold: 1.0,\n };\n\n const observer = new IntersectionObserver((entries, observer) => {\n if (enableControlAnim && entries[0]?.isIntersecting) {\n // if control is first fully visible\n observer.unobserve(entries[0]?.target);\n setInteracted(false);\n }\n }, options);\n if (controlRef.current) observer.observe(controlRef.current);\n window.removeEventListener('load', handleInitalLoad);\n };\n\n // wait unitl user has scrolled once\n if (!isIE) {\n if (document.readyState === 'complete') handleInitalLoad();\n else window.addEventListener('load', handleInitalLoad);\n }\n\n return () => {\n window.removeEventListener('load', handleInitalLoad);\n };\n }, [enableControlAnim, isIE]);\n\n const setCurrentPos = (target: EventTarget & Element, clientX: number) => {\n if (target && clientX) {\n const relativeClientX = clientX - target.getBoundingClientRect().x;\n\n // check side offset\n if (\n relativeClientX >= sideOffset &&\n relativeClientX <=\n target.getBoundingClientRect().width - sideOffset\n ) {\n let percentage =\n relativeClientX / target.getBoundingClientRect().width;\n percentage = Math.min(Math.max(percentage, 0), 1);\n\n setSlideValue(percentage);\n }\n }\n };\n\n const handleClick = (ev: React.MouseEvent) => {\n const target = ev.currentTarget;\n if (target && ev.clientX) {\n setCurrentPos(target, ev.clientX);\n setInteracted(true);\n }\n };\n\n const handleMouseMove = (ev: React.MouseEvent) => {\n const target = ev.currentTarget;\n if (target && ev.clientX && isHolding) {\n setIsDragging(true);\n setInteracted(true);\n if (isDragging) setCurrentPos(target, ev.clientX);\n }\n };\n\n const handleTouchMove = (ev: React.TouchEvent<HTMLDivElement>) => {\n const target = ev.currentTarget;\n if (target && ev.touches[0]?.clientX) {\n setInteracted(true);\n setCurrentPos(target, ev.touches[0]?.clientX);\n }\n };\n\n const isInverted = bgMode === 'inverted';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode)}\n >\n <Wrapper>\n {backgroundImg && foregroundImg && (\n <Images\n onClick={handleClick}\n onMouseMove={handleMouseMove}\n onMouseDown={() => {\n setIsDragging(false);\n setIsHolding(true);\n }}\n onMouseUp={() => {\n setIsDragging(false);\n setIsHolding(false);\n }}\n onMouseLeave={() => {\n setIsHolding(false);\n setIsDragging(false);\n }}\n onTouchMove={handleTouchMove}\n onTouchStart={() => setIsHolding(true)}\n onTouchEnd={() => setIsHolding(false)}\n >\n <BackgroundImg {...backgroundImg} />\n {backgroundLabel && (\n <BackgroundLabel\n textColor={colors.text.inverted}\n bgColor={labelColor}\n >\n {backgroundLabel}\n </BackgroundLabel>\n )}\n <ForegroundContainer\n hasTransition={!isHolding}\n hasAnim={!interacted}\n initalValue={initialValue}\n style={{ width: slideValue * 100 + '%' }}\n >\n <ForegroundImg {...foregroundImg} />\n {foregroundLabel && (\n <ForegroundLabel\n textColor={colors.text.inverted}\n bgColor={labelColor}\n >\n {foregroundLabel}\n </ForegroundLabel>\n )}\n <ForegroundOverlay color={overlayColor} />\n </ForegroundContainer>\n <ControlContainer\n ref={controlRef}\n hasTransition={!isHolding}\n hasAnim={!interacted}\n initalValue={initialValue}\n style={{ left: slideValue * 100 + '%' }}\n >\n {dragControl ? (\n dragControl\n ) : (\n <Control>\n <ArrowLeftRight\n iconColor={colors.elementBg.light}\n />\n </Control>\n )}\n </ControlContainer>\n </Images>\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const ComparisonSliderComponent = ComparisonSlider;\nexport default withLibTheme(ComparisonSlider);\n","import React, { forwardRef } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport styled, { css } from 'styled-components';\n\nimport {\n spacings,\n getGlobals as global,\n mq,\n withRange,\n getColors as color,\n} from 'utils/styles';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Link, { LinkProps } from 'components/typography/Link';\nimport Title from 'components/blocks/Title';\nimport External from 'components/base/icons/External';\nimport { HeadlineTag } from 'components/typography/Heading';\n\nconst View = styled(Link)<{\n clickable?: boolean;\n}>`\n display: block;\n position: relative;\n width: 100%;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n overflow: hidden;\n outline: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n background: ${({ theme }) => global(theme).sections.imageTextGradient};\n pointer-events: none;\n }\n\n ${({ clickable, theme, isInverted }) =>\n clickable &&\n css`\n transition: box-shadow 0.2s ease-in-out;\n cursor: pointer;\n\n &:hover {\n box-shadow: 0 2px 24px 0 rgba(0, 0, 0, 0.35);\n }\n\n &:focus {\n box-shadow: 0 2px 24px 0 rgba(0, 0, 0, 0.35);\n outline: solid 2px\n ${isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n outline-offset: 4px;\n\n color: ${isInverted\n ? color(theme).primary.invertedHover\n : color(theme).primary.hover};\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n box-shadow: none;\n }\n `}\n`;\n\nconst StyledImage = styled(Image)`\n width: 100%;\n height: 100%;\n min-height: 300px;\n\n img {\n height: 100%;\n }\n`;\n\nconst IntroContainer = styled.div`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: auto;\n z-index: 1;\n\n padding: ${spacings.spacer}px ${spacings.nudge * 3}px;\n\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n\n /* required to align items at flex-end in ie11 */\n &:before {\n content: '';\n display: block;\n flex: 1 0 0px;\n }\n\n @media ${mq.medium} {\n padding: ${spacings.nudge * 5}px ${spacings.spacer}px;\n }\n`;\n\nconst StyledTitle = styled(Title)<{ clampTitle?: boolean }>`\n max-width: ${({ clampTitle }) =>\n clampTitle && (13 / 28) * spacings.wrapper + 'px'};\n`;\n\nconst ExternalIconHolder = styled.span`\n margin-left: ${spacings.nudge * 2}px;\n\n & > * {\n display: inline-block;\n }\n`;\n\nconst Icon = styled.div`\n ${withRange([60, 100], 'height')};\n ${withRange([60, 100], 'width')};\n\n position: absolute;\n top: ${spacings.nudge * 3}px;\n left: ${spacings.nudge * 3}px;\n\n & > * {\n ${withRange([60, 100], 'height')};\n ${withRange([60, 100], 'width')};\n }\n\n color: ${({ theme }) => color(theme).text.inverted};\n`;\n\nexport interface PromotionCardProps {\n /** Setup Card for dark backgrounds */\n isInverted?: boolean;\n /** Card image settings */\n image: ImageProps;\n /** Card title */\n title?: string;\n /** Card title HTML tag type (h2, h3, h4...) */\n titleAs?: HeadlineTag;\n /** Superior card title that stands above main title */\n superTitle?: string;\n /** Superior card title HTML tag type (h3, h4 ...) */\n superTitleAs?: HeadlineTag;\n /** Href path */\n href?: string;\n /** Advanced href options */\n link?: LinkProps;\n /** Inject custom icon that indicates an external link */\n externalLinkIcon?: React.ReactNode;\n\n /** Function to inject icon in top left corner */\n icon?: (props: { isInverted?: boolean }) => React.ReactNode;\n}\n\nconst PromotionCard = forwardRef<\n HTMLAnchorElement,\n PromotionCardProps & { className?: string }\n>(\n (\n {\n isInverted,\n image,\n title,\n titleAs,\n superTitle,\n superTitleAs,\n href,\n link,\n externalLinkIcon,\n icon,\n className,\n },\n ref\n ) => {\n // fallback for older versions\n let linkObj = link;\n if (href && !link) {\n linkObj = {\n href: href,\n isExternal: false,\n };\n }\n\n const externalIconString = ReactDOMServer.renderToString(\n <ExternalIconHolder>\n {externalLinkIcon || <External />}\n </ExternalIconHolder>\n );\n\n return (\n <View\n ref={ref}\n clickable={!!href || !!link}\n {...linkObj}\n className={className}\n >\n <StyledImage {...image} isInverted={isInverted} coverSpace />\n {icon && <Icon>{icon({ isInverted })}</Icon>}\n {title && (\n <IntroContainer>\n <StyledTitle\n colorMode=\"onImage\"\n superTitle={superTitle}\n superTitleAs={superTitleAs}\n title={\n linkObj?.isExternal\n ? title + externalIconString\n : title\n }\n titleAs={titleAs || 'div'}\n clampTitle\n />\n </IntroContainer>\n )}\n </View>\n );\n }\n);\n\nPromotionCard.displayName = 'PromotionCard';\n\nexport default PromotionCard;\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nimport Grid, { gridSettings } from 'components/base/Grid';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\n\nimport PromotionCard, {\n PromotionCardProps,\n} from 'components/blocks/PromotionCard';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\n\nconst Card = styled(PromotionCard)<{ isMain?: boolean }>`\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n\n height: ${({ isMain }) => isMain && '100%'};\n\n flex: 1 0 auto;\n\n & + & {\n margin-top: ${gridSettings.gutter}px;\n }\n`;\n\nconst CrossPromotion: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Promotion card settings in main grid column (default: on right side). The size prop controls the width. */\n main?: Array<\n Omit<PromotionCardProps, 'externalLinkIcon' | 'isInverted'> & {\n size?: 'full' | 'half';\n }\n >;\n\n /** Promotion card settings in second grid column (default: on left side). The size prop controls the width. */\n aside?: Array<\n Omit<PromotionCardProps, 'externalLinkIcon' | 'isInverted'> & {\n size?: 'full' | 'half';\n }\n >;\n\n /** Section background */\n bgMode?: 'full' | 'inverted' | 'splitted';\n\n /** Switching order of main and aside columns */\n isMirrored?: boolean;\n\n /** Inject custom icon that indicates an external link */\n externalLinkIcon?: React.ReactNode;\n}> = ({ anchorId, main, aside, bgMode, isMirrored, externalLinkIcon }) => {\n const { colors } = useLibTheme();\n\n const isInverted = bgMode === 'inverted';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, false, isMirrored)}\n >\n <Wrapper clampWidth=\"normal\" addWhitespace>\n {aside ? (\n isMirrored ? (\n <Grid.Row>\n <Grid.Col semilarge={{ span: 6 / 12 }}>\n {main &&\n main.map((card, i) => (\n <Card\n key={i}\n isMain\n {...card}\n externalLinkIcon={externalLinkIcon}\n isInverted={isInverted}\n />\n ))}\n </Grid.Col>\n <Grid.Col semilarge={{ span: 6 / 12 }}>\n {aside.map((card, i) => (\n <Card\n key={i}\n {...card}\n externalLinkIcon={externalLinkIcon}\n isInverted={isInverted}\n />\n ))}\n </Grid.Col>\n </Grid.Row>\n ) : (\n <Grid.Row>\n <Grid.Col semilarge={{ span: 6 / 12 }}>\n {aside.map((card, i) => (\n <Card\n key={i}\n {...card}\n externalLinkIcon={externalLinkIcon}\n isInverted={isInverted}\n />\n ))}\n </Grid.Col>\n <Grid.Col semilarge={{ span: 6 / 12 }}>\n {main &&\n main.map((card, i) => (\n <Card\n key={i}\n isMain\n {...card}\n externalLinkIcon={externalLinkIcon}\n isInverted={isInverted}\n />\n ))}\n </Grid.Col>\n </Grid.Row>\n )\n ) : (\n main && (\n <Grid.Row>\n {main.map((card, i) => (\n <Grid.Col\n semilarge={{\n span:\n (card.size === 'half' ? 6 : 12) /\n 12,\n }}\n key={i}\n >\n <Card\n key={i}\n {...card}\n externalLinkIcon={externalLinkIcon}\n isInverted={isInverted}\n />\n </Grid.Col>\n ))}\n </Grid.Row>\n )\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const CrossPromotionComponent = CrossPromotion;\nexport default withLibTheme(CrossPromotion);\n","import React, { forwardRef } from 'react';\nimport styled from 'styled-components';\n\nimport { spacings, getGlobals as global } from 'utils/styles';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Copy from 'components/typography/Copy';\n\nconst View = styled.div``;\n\nconst ImageContainer = styled.div<{ isCentered?: boolean }>`\n display: flex;\n justify-content: ${({ isCentered }) =>\n isCentered ? 'center' : 'flex-start'};\n margin-bottom: ${spacings.nudge * 3}px;\n max-width: 100%;\n`;\n\nconst StyledImage = styled(Image)`\n overflow: hidden;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n`;\n\nconst Content = styled.div<{ isCentered?: boolean }>`\n text-align: ${({ isCentered }) => isCentered && 'center'};\n\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst Title = styled(Copy)``;\n\nconst SubTitle = styled(Copy)``;\n\nconst Text = styled(Copy)`\n ${SubTitle} + & {\n margin-top: ${spacings.nudge}px;\n }\n`;\n\nexport interface FactProps {\n isInverted?: boolean;\n isCentered?: boolean;\n title?: string;\n subTitle?: string;\n text?: string;\n image?: ImageProps;\n}\n\nconst Fact = forwardRef<\n HTMLDivElement,\n FactProps & {\n className?: string;\n }\n>(\n (\n {\n isInverted = false,\n isCentered = false,\n title,\n subTitle,\n text,\n image,\n className,\n },\n ref\n ) => {\n return (\n <View ref={ref} className={className}>\n {image?.small && (\n <ImageContainer isCentered={isCentered}>\n <StyledImage\n isInverted={isInverted}\n small={image.small}\n medium={image.medium}\n semilarge={image.semilarge}\n large={image.large}\n xlarge={image.xlarge}\n alt={image.alt}\n coverSpace={image.coverSpace}\n ratios={image.ratios}\n showPlaceholder={image.showPlaceholder}\n />\n </ImageContainer>\n )}\n <Content isCentered={isCentered}>\n {title && (\n <Title\n type=\"copy-b\"\n size=\"big\"\n isInverted={isInverted}\n data-sheet=\"title\"\n >\n {title}\n </Title>\n )}\n {subTitle && (\n <SubTitle\n type=\"copy-b\"\n isInverted={isInverted}\n data-sheet=\"subtitle\"\n >\n {subTitle}\n </SubTitle>\n )}\n {text && (\n <Text\n type=\"copy\"\n isInverted={isInverted}\n data-sheet=\"text\"\n innerHTML={text}\n />\n )}\n </Content>\n </View>\n );\n }\n);\n\nFact.displayName = 'Fact';\n\nexport default Fact;\n","import React, { FC } from 'react';\nimport styled from 'styled-components';\n\nimport { mq } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Fact, { FactProps } from 'components/blocks/Fact';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport Grid from 'components/base/Grid';\n\nconst FactFill = styled.div`\n display: none;\n\n @media ${mq.large} {\n display: block;\n }\n`;\n\nconst FactGrid: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Controls amount columns on large screens */\n columns?: 3 | 4 | 6;\n\n /** Array with fact card data */\n facts?: Array<Omit<FactProps, 'isInverted' | 'isCentered'>>;\n\n /** Section background */\n bgMode?: 'full' | 'inverted' | 'splitted';\n\n /** Center text inside fact card items */\n isCentered?: boolean;\n}> = ({ anchorId, columns = 3, facts, bgMode, isCentered }) => {\n const { colors } = useLibTheme();\n const factCount = facts?.length || 0;\n\n const isInverted = bgMode === 'inverted';\n\n const { sheetRefs: cardRefs } = useEqualSheetHeight<HTMLDivElement>({\n listLength: factCount,\n identifiers: ['[data-sheet=\"title\"]', '[data-sheet=\"subtitle\"]'],\n responsive: {\n small: 1,\n medium: columns < 3 ? columns : 3,\n semilarge: columns < 4 ? columns : 4,\n large: columns,\n xlarge: columns,\n },\n });\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode)}\n >\n <Wrapper clampWidth=\"normal\" addWhitespace>\n <Grid.Row>\n {facts &&\n facts.map((fact, i) => {\n if (\n fact?.title ||\n fact?.subTitle ||\n fact?.image ||\n fact?.text\n ) {\n return (\n <Grid.Col\n key={i}\n medium={{ span: 4 / 12 }}\n semilarge={\n columns > 3\n ? { span: 3 / 12 }\n : { span: 4 / 12 }\n }\n large={{ span: 12 / columns / 12 }}\n >\n <Fact\n key={i}\n ref={cardRefs[i]}\n {...fact}\n isCentered={isCentered}\n isInverted={isInverted}\n />\n </Grid.Col>\n );\n } else {\n return (\n <Grid.Col\n key={i}\n medium={{ span: 4 / 12 }}\n semilarge={\n columns > 3\n ? { span: 3 / 12 }\n : { span: 4 / 12 }\n }\n large={{ span: 12 / columns / 12 }}\n >\n <FactFill ref={cardRefs[i]} key={i} />\n </Grid.Col>\n );\n }\n })}\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const FactGridComponent = FactGrid;\nexport default withLibTheme(FactGrid);\n","import React from 'react';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport styled from 'styled-components';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { spacings, getColors as color, mq } from 'utils/styles';\nimport Wrapper from 'components/base/Wrapper';\nimport Copy from 'components/typography/Copy';\n\nconst FactsContainer = styled.ul`\n padding: 0;\n margin: 0;\n\n list-style-type: none;\n\n & > * + * {\n margin-top: ${spacings.nudge}px;\n }\n`;\n\nconst FactItem = styled.li<{ hasText?: boolean; hasBack?: boolean }>`\n padding: ${spacings.nudge * 2}px;\n\n background: ${({ theme, hasBack }) =>\n hasBack ? color(theme).elementBg.light : color(theme).elementBg.medium};\n\n display: flex;\n flex-direction: row;\n align-items: ${({ hasText }) => (hasText ? 'flex-start' : 'center')};\n\n @media ${mq.medium} {\n padding: ${spacings.nudge * 3}px;\n }\n`;\n\nconst Icon = styled.img`\n margin-right: ${spacings.nudge * 3}px;\n display: block;\n max-width: ${spacings.nudge * 5}px;\n\n @media ${mq.medium} {\n margin-right: ${spacings.spacer}px;\n }\n`;\n\nconst ContentBlock = styled.div`\n & > * + * {\n margin-top: ${spacings.nudge * 2}px;\n }\n`;\n\nconst Description = styled(Copy)`\n max-width: 880px;\n`;\n\nconst FactList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array with fact item data */\n facts?: Array<{\n label?: string;\n text?: string;\n }>;\n\n /** Icon for each fact item */\n icon?: { src: string; alt?: string };\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, facts, icon, bgMode }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBack = isInverted || bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode === 'full'\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"normal\" addWhitespace>\n {facts && (\n <FactsContainer>\n {facts.map(({ label, text }, i) => {\n return (\n <FactItem\n key={i}\n hasText={!!text}\n hasBack={hasBack}\n >\n {icon && (\n <Icon\n src={icon.src}\n alt={icon.alt || ''}\n />\n )}\n <ContentBlock>\n {label && (\n <Copy type=\"copy-b\">{label}</Copy>\n )}\n {text && (\n <Description\n type=\"copy\"\n innerHTML={text}\n />\n )}\n </ContentBlock>\n </FactItem>\n );\n })}\n </FactsContainer>\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const FactListComponent = FactList;\nexport default withLibTheme(FactList);\n","import React, { forwardRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport {\n mq,\n spacings,\n getGlobals as global,\n getFonts as font,\n} from 'utils/styles';\n\nimport Copy, { copyStyle } from 'components/typography/Copy';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Link, { LinkProps } from 'components/typography/Link';\n\nconst View = styled.div<{ isCentered?: boolean }>`\n min-width: 270px;\n padding-bottom: ${spacings.nudge}px;\n text-align: ${({ isCentered }) => isCentered && 'center'};\n\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n`;\n\nconst TitleLink = styled(Link)<{ href?: string }>`\n display: inline-block;\n ${copyStyle('copy-b', 'big')}\n\n color: ${({ theme, isInverted }) =>\n isInverted\n ? font(theme)['copy-b'].big.colorInverted\n : font(theme)['copy-b'].big.color};\n text-decoration: none;\n\n ${({ href, isInverted, theme }) =>\n !href &&\n css`\n &:hover {\n color: ${isInverted\n ? font(theme)['copy-b'].big.colorInverted\n : font(theme)['copy-b'].big.color};\n }\n `}\n`;\n\nconst ImageContainer = styled(Link)<{ isCentered?: boolean }>`\n display: flex;\n justify-content: ${({ isCentered }) =>\n isCentered ? 'center' : 'flex-start'};\n width: 100%;\n`;\n\nconst StyledImage = styled(Image)`\n overflow: hidden;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n`;\n\nconst ArticleContent = styled.div<{ isCentered?: boolean }>`\n text-align: ${({ isCentered }) => isCentered && 'center'};\n\n & > * + * {\n margin-top: ${spacings.nudge * 2}px;\n }\n\n @media ${mq.medium} {\n & > * {\n max-width: 95%;\n margin-right: ${({ isCentered }) => isCentered && 'auto'};\n margin-left: ${({ isCentered }) => isCentered && 'auto'};\n }\n }\n`;\n\nconst Action = styled.div`\n max-width: 100%;\n`;\n\nexport interface FeatureProps {\n /** Invert color and background for darker themes */\n isInverted?: boolean;\n\n /** Center all texts */\n isCentered?: boolean;\n\n /** Image on item's top */\n image?: ImageProps;\n\n /** Item title text underneath the image */\n title?: string;\n\n /** Small item description text (richtext) */\n description?: string;\n\n /** Item intro text (partial richtext cause it's always bold) */\n intro?: string;\n\n /** Item's main text (richtext) */\n text?: string;\n\n /** Item link settings */\n link?: LinkProps;\n\n /** Function to inject custom primary button */\n action?: (isInverted?: boolean) => React.ReactNode;\n}\n\nconst Feature = forwardRef<\n HTMLDivElement,\n FeatureProps & {\n className?: string;\n }\n>(\n (\n {\n title,\n description,\n intro,\n text,\n link,\n image,\n isInverted = false,\n isCentered = false,\n action,\n className,\n },\n ref\n ) => {\n return (\n <View ref={ref} isCentered={isCentered} className={className}>\n {image?.small && (\n <ImageContainer {...link} isCentered={isCentered}>\n <StyledImage\n small={image.small}\n medium={image.medium}\n semilarge={image.semilarge}\n large={image.large}\n xlarge={image.xlarge}\n alt={image.alt}\n ratios={image.ratios}\n coverSpace={\n image.coverSpace === undefined\n ? true\n : image.coverSpace\n }\n isInverted={isInverted}\n />\n </ImageContainer>\n )}\n <TitleLink\n {...link}\n isInverted={isInverted}\n ariaLabel={title}\n data-sheet=\"title\"\n >\n {title}\n </TitleLink>\n <Copy\n size=\"small\"\n isInverted={isInverted}\n data-sheet=\"desc\"\n innerHTML={description}\n />\n <ArticleContent isCentered={isCentered}>\n <Copy\n type=\"copy-b\"\n isInverted={isInverted}\n innerHTML={intro}\n data-sheet=\"intro\"\n />\n <Copy\n type=\"copy\"\n size=\"medium\"\n isInverted={isInverted}\n innerHTML={text}\n data-sheet=\"text\"\n />\n </ArticleContent>\n {action && <Action>{action(isInverted)}</Action>}\n </View>\n );\n }\n);\n\nFeature.displayName = 'Feature';\n\nexport default Feature;\n","import React, { useMemo } from 'react';\n\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Feature, { FeatureProps } from 'components/blocks/Feature';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport Grid from 'components/base/Grid';\n\nconst FeatureList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Center texts in every feature item */\n isCentered?: boolean;\n\n /** Array with feature item content */\n features?: FeatureProps[];\n\n /** If not defined the component falls back to legacy logic: Uneven items = max 3 per row, even items = max 2 per row */\n columns?: 2 | 3;\n\n /** Section background */\n bgMode?: 'full' | 'splitted' | 'inverted';\n}> = ({ anchorId, features, bgMode, isCentered = false, columns }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const featureCount = features?.length || 0;\n\n const isHalf = useMemo(() => {\n if (columns) {\n return columns === 2;\n }\n\n // legacy logic\n return features && features.length % 2 === 0;\n }, [features, columns]);\n\n const { sheetRefs: cardRefs } = useEqualSheetHeight<HTMLDivElement>({\n listLength: featureCount,\n identifiers: [\n '[data-sheet=\"title\"]',\n '[data-sheet=\"desc\"]',\n '[data-sheet=\"intro\"]',\n '[data-sheet=\"text\"]',\n ],\n responsive: {\n small: 1,\n medium: 1,\n semilarge: 2,\n large: isHalf ? 2 : 3,\n xlarge: isHalf ? 2 : 3,\n },\n });\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode)}\n >\n <Wrapper addWhitespace clampWidth=\"normal\">\n <Grid.Row\n halign={isHalf || featureCount <= 2 ? 'center' : 'left'}\n >\n {features?.map((feature, i) => (\n <Grid.Col\n semilarge={{ span: 6 / 12 }}\n large={{\n span: isHalf ? 5 / 12 : 4 / 12,\n }}\n key={i}\n >\n <Feature\n ref={cardRefs[i]}\n {...feature}\n isCentered={isCentered}\n isInverted={isInverted}\n />\n </Grid.Col>\n ))}\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const FeatureListComponent = FeatureList;\nexport default withLibTheme(FeatureList);\n","import React, { FC } from 'react';\nimport styled from 'styled-components';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport { getGlobals as global } from 'utils/styles';\nimport Grid from 'components/base/Grid';\n\nconst StyledImage = styled(Image)`\n width: 100%;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n overflow: hidden;\n\n picture > img {\n width: 100%;\n height: 100%;\n }\n`;\n\ntype ImageType = Omit<ImageProps, 'coverSpace'> & { isFull?: boolean };\n\nconst Gallery: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of image settings */\n images?: Array<ImageType>;\n\n /** Section background */\n bgMode?: 'full' | 'splitted' | 'inverted';\n}> = ({ anchorId, bgMode, images }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode)}\n >\n <Wrapper addWhitespace>\n <Grid.Row>\n {images?.map((img, i) => (\n <Grid.Col\n key={i}\n semilarge={{\n span: img.isFull ? 12 / 12 : 6 / 12,\n }}\n >\n <StyledImage\n {...img}\n coverSpace\n isInverted={isInverted}\n />\n </Grid.Col>\n ))}\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const GalleryComponent = Gallery;\nexport default withLibTheme(Gallery);\n","import React, { FC } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { CalloutTag } from 'components/typography/Callout';\nimport { mq, spacings, withRange } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport HeaderKenBurns from './HeaderKenBurns';\nimport HeaderPoster from './HeaderPoster';\nimport Actions from 'components/blocks/Actions';\nimport HeaderVideo from './HeaderVideo';\nimport Copy from 'components/typography/Copy';\nimport Heading from 'components/typography/Heading';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport { ImageProps } from 'components/blocks/Image';\nimport {\n generateNavbarIdent as genIdent,\n getFullNavbarHeights as getNavHeight,\n} from '../navigation/Navigation';\n\nconst Poster: FC<{\n isInverted?: boolean;\n videoUrl?: string;\n images?: Omit<ImageProps, 'ratios' | 'coverSpace'>[];\n focus?: HeaderFocus;\n kenBurnsZoom?: number;\n kenBurnsZoomPoint?: [number, number];\n kenBurnsInterval?: number;\n onImageChange?: (image?: Omit<ImageProps, 'ratios' | 'coverSpace'>) => void;\n className?: string;\n children?: React.ReactNode;\n}> = ({\n isInverted,\n videoUrl,\n images,\n focus,\n kenBurnsZoom,\n kenBurnsZoomPoint,\n kenBurnsInterval,\n onImageChange,\n className,\n children,\n}) => {\n switch (true) {\n case !!videoUrl: {\n return (\n <HeaderVideo\n isInverted={isInverted}\n videoUrl={videoUrl}\n focus={focus}\n placeholderImg={images?.[0]}\n className={className}\n >\n {children}\n </HeaderVideo>\n );\n }\n\n case images && images.length > 1: {\n return (\n <HeaderKenBurns\n images={images || []}\n zoom={kenBurnsZoom}\n zoomPoint={kenBurnsZoomPoint}\n interval={kenBurnsInterval}\n onImageChange={onImageChange}\n className={className}\n >\n {children}\n </HeaderKenBurns>\n );\n }\n\n // single image\n case images && images.length === 1: {\n return (\n <HeaderPoster\n isInverted={isInverted}\n bgImage={images?.[0]}\n focus={focus}\n className={className}\n >\n {children}\n </HeaderPoster>\n );\n }\n\n default: {\n return <div>{children}</div>;\n }\n }\n};\n\nconst genHeightStyles = (isFull: boolean) => css`\n // Doing some crazy shit to calculate curent navbar height in CSS\n ${({ theme }) => {\n // navbar main only\n const mainIdent = genIdent({\n pageFlow: 'beforeContent',\n hasMain: true,\n });\n\n // navbar main and top\n const mainTopIdent = genIdent({\n pageFlow: 'beforeContent',\n hasMain: true,\n hasTop: true,\n });\n\n // navbar main and bottom\n const mainBottomIdent = genIdent({\n pageFlow: 'beforeContent',\n hasMain: true,\n hasBottom: true,\n });\n\n // full navbar with all bars\n const fullIdent = genIdent({\n pageFlow: 'beforeContent',\n hasTop: true,\n hasMain: true,\n hasBottom: true,\n });\n\n const navMainHeight = getNavHeight(theme, mainIdent).large;\n const navMainTopHeight = getNavHeight(theme, mainTopIdent).large;\n const navMainBottomHeight = getNavHeight(theme, mainBottomIdent).large;\n const navFullHeight = getNavHeight(theme, fullIdent).large;\n\n const mapToSelector = (idents: string[]) => {\n return idents.map((id) => `[data-navbar-ident*='${id}']`).join('');\n };\n\n const refHeight = isFull ? '100vh' : '80vh';\n\n return css`\n & > ${StyledPoster} {\n min-height: 500px;\n height: ${refHeight};\n }\n\n // with main navbar element\n header${mapToSelector(mainIdent.split('-'))} + & {\n & > ${StyledPoster} {\n height: calc(${refHeight} - ${navMainHeight[0]}px);\n }\n }\n\n // with main and top navbar elements\n header${mapToSelector(mainTopIdent.split('-'))} + & {\n & > ${StyledPoster} {\n height: calc(${refHeight} - ${navMainTopHeight[0]}px);\n }\n }\n\n // with main and bottom navbar elements\n header${mapToSelector(mainBottomIdent.split('-'))} + & {\n & > ${StyledPoster} {\n height: calc(${refHeight} - ${navMainBottomHeight[0]}px);\n }\n }\n\n // with all navbar elements\n header${mapToSelector(fullIdent.split('-'))} + & {\n & > ${StyledPoster} {\n height: calc(${refHeight} - ${navFullHeight[0]}px);\n }\n }\n\n @media ${mq.semilarge} {\n // with main navbar element\n header${mapToSelector(mainIdent.split('-'))} + & {\n & > ${StyledPoster} {\n height: calc(${refHeight} - ${navMainHeight[1]}px);\n }\n }\n\n // with main and top navbar elements\n header${mapToSelector(mainTopIdent.split('-'))} + & {\n & > ${StyledPoster} {\n height: calc(${refHeight} - ${navMainTopHeight[1]}px);\n }\n }\n\n // with main and bottom navbar elements\n header${mapToSelector(mainBottomIdent.split('-'))} + & {\n & > ${StyledPoster} {\n height: calc(\n ${refHeight} - ${navMainBottomHeight[1]}px\n );\n }\n }\n\n // with all navbar elements\n header${mapToSelector(fullIdent.split('-'))} + & {\n & > ${StyledPoster} {\n height: calc(${refHeight} - ${navFullHeight[1]}px);\n }\n }\n }\n `;\n }}\n`;\n\nconst HeaderSection = styled(Section)`\n position: relative;\n ${genHeightStyles(true)}\n\n header + & {\n ${withRange([0], 'padding-top')}\n ${withRange([0], 'margin-top')}\n }\n`;\n\nconst HeaderSectionSmall = styled(Section)`\n position: relative;\n ${genHeightStyles(false)}\n\n header + & {\n ${withRange([0], 'padding-top')}\n ${withRange([0], 'margin-top')}\n }\n`;\n\nconst StyledPoster = styled(Poster)`\n position: relative;\n height: 100vh;\n max-height: 1300px;\n max-width: ${spacings.wrapperLarge}px;\n margin: 0 auto;\n`;\n\nconst Overlay = styled.div<{ bgValue?: string; textOnImage?: boolean }>`\n display: ${({ textOnImage }) => (textOnImage ? 'block' : 'none')};\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: ${({ bgValue }) => bgValue && bgValue};\n z-index: 2;\n\n @media ${mq.medium} {\n display: block;\n }\n`;\n\nconst Content = styled.div<{ isCentered?: boolean; textOnImage?: boolean }>`\n display: none;\n max-width: ${spacings.wrapper}px;\n margin: 0 auto;\n\n ${({ textOnImage, isCentered }) =>\n textOnImage &&\n css`\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: ${isCentered && 'center'};\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: ${spacings.spacer}px;\n z-index: 2;\n\n & > * {\n margin-top: ${spacings.spacer}px;\n max-width: 880px;\n }\n `}\n\n @media ${mq.medium} {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: ${({ isCentered }) => isCentered && 'center'};\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: ${spacings.spacer * 2}px;\n z-index: 2;\n\n & > * {\n margin-top: ${spacings.spacer}px;\n max-width: 880px;\n }\n }\n`;\n\nconst ContentMobile = styled.div`\n padding: ${spacings.spacer}px ${spacings.nudge * 2}px;\n\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n\n @media ${mq.medium} {\n display: none;\n }\n`;\n\nconst Title = styled(Heading)<{ isCentered?: boolean }>`\n text-align: ${({ isCentered }) => isCentered && 'center'};\n\n @media ${mq.medium} {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3; /* number of lines to show */\n line-clamp: 3;\n -webkit-box-orient: vertical;\n }\n`;\n\nconst Text = styled(Copy)<{ isCentered?: boolean }>`\n text-align: ${({ isCentered }) => isCentered && 'center'};\n\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 4; /* number of lines to show */\n line-clamp: 4;\n -webkit-box-orient: vertical;\n`;\n\nconst StyledActions = styled(Actions)<{ isCentered?: boolean }>`\n @media ${mq.medium} {\n display: block;\n text-align: ${({ isCentered }) => isCentered && 'center'};\n }\n`;\n\nexport type HeaderSize = 'full' | 'small';\nexport type HeaderImage = Omit<ImageProps, 'ratios' | 'coverSpace'> & {\n zoomPoint?: [number, number];\n zoom?: number;\n};\nexport type HeaderFocus = [\n 'left' | 'center' | 'right',\n 'top' | 'center' | 'bottom'\n];\n\nconst Header: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Header image height size (full=100vh, small=80vh) */\n size?: HeaderSize;\n\n /** Focus point of header image / video */\n focusPoint?: HeaderFocus;\n\n /** Center content */\n isCentered?: boolean;\n\n /** Header title on image */\n title?: string;\n\n /** Header title HTML tag type (h2, h3, h4...) */\n titleAs?: CalloutTag;\n\n /** Header text on image */\n text?: string;\n\n /** Force text on image on all screen widths */\n textOnImage?: boolean;\n\n /** Function to inject custom primary button */\n primaryAction?: (isInverted?: boolean) => React.ReactNode;\n\n /** Function to inject custom secondary button */\n secondaryAction?: (isInverted?: boolean) => React.ReactNode;\n\n /** Array of image settings */\n images?: HeaderImage[];\n\n /** CSS value of custom image overlay to help seperate the text from the background */\n customImgOverlay?: string;\n\n /** URL to header video. First image in images array can be used as fallback */\n videoUrl?: string;\n\n /** Ken burns effect zoom */\n kenBurnsZoom?: number;\n\n /** Global zoom point for all images with ken burns effect. x and y values in the range from 0 - 1 */\n kenBurnsZoomPoint?: [number, number];\n\n /** Time between each image in ken burns mode */\n kenBurnsInterval?: number;\n\n /** Callback called on image change */\n onImageChange?: (image?: Omit<ImageProps, 'ratios' | 'coverSpace'>) => void;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({\n anchorId,\n size = 'full',\n focusPoint = ['center', 'center'],\n isCentered,\n title,\n titleAs,\n text,\n primaryAction,\n secondaryAction,\n videoUrl,\n images,\n customImgOverlay,\n kenBurnsZoom = 1.08,\n kenBurnsZoomPoint = [0.5, 0.5],\n kenBurnsInterval = 10000,\n onImageChange,\n bgMode,\n textOnImage,\n}) => {\n const { globals, colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasContent = title || text || primaryAction || secondaryAction;\n\n const overlay = hasContent\n ? customImgOverlay || globals.sections.imageTextGradient\n : undefined;\n\n const Section = size === 'full' ? HeaderSection : HeaderSectionSmall;\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <StyledPoster\n isInverted={isInverted}\n images={images}\n videoUrl={videoUrl}\n kenBurnsInterval={kenBurnsInterval}\n kenBurnsZoom={kenBurnsZoom}\n kenBurnsZoomPoint={kenBurnsZoomPoint}\n onImageChange={onImageChange}\n focus={focusPoint}\n >\n {hasContent && (\n <React.Fragment>\n <Overlay bgValue={overlay} textOnImage={textOnImage} />\n <Content\n isCentered={isCentered}\n textOnImage={textOnImage}\n >\n {title && (\n <Title\n isInverted\n size=\"heading-1\"\n isCentered={isCentered}\n renderAs={titleAs}\n innerHTML={title}\n />\n )}\n {text && (\n <Text\n isInverted\n isCentered={isCentered}\n type=\"copy-b\"\n size=\"big\"\n innerHTML={text}\n />\n )}\n {(primaryAction || secondaryAction) && (\n <StyledActions\n isCentered={isCentered}\n primary={\n primaryAction && primaryAction(true)\n }\n secondary={\n secondaryAction && secondaryAction(true)\n }\n />\n )}\n </Content>\n </React.Fragment>\n )}\n </StyledPoster>\n {hasContent && !textOnImage && (\n <ContentMobile>\n {title && (\n <Title\n size=\"heading-1\"\n isCentered={isCentered}\n renderAs={titleAs}\n innerHTML={title}\n isInverted={isInverted}\n />\n )}\n {text && (\n <Text\n type=\"copy-b\"\n size=\"big\"\n isCentered={isCentered}\n innerHTML={text}\n isInverted={isInverted}\n />\n )}\n {(primaryAction || secondaryAction) && (\n <StyledActions\n isCentered={isCentered}\n primary={primaryAction && primaryAction(isInverted)}\n secondary={\n secondaryAction && secondaryAction(isInverted)\n }\n />\n )}\n </ContentMobile>\n )}\n </Section>\n );\n};\n\nexport const HeaderComponent = Header;\nexport default withLibTheme(Header);\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\n\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport { mq, spacings, getColors as color } from 'utils/styles';\nimport Actions from 'components/blocks/Actions';\nimport Pointer from 'components/buttons/Pointer';\nimport Link, { LinkProps } from 'components/typography/Link';\nimport Image from 'components/blocks/Image';\n\nconst StyledSection = styled(Section)<{ isCentered?: boolean }>`\n margin: 0 auto;\n\n @media ${mq.semilarge} {\n margin: ${({ isCentered }) => (isCentered ? '0 auto' : '0')};\n\n text-align: ${({ isCentered }) => (isCentered ? 'center' : 'left')};\n }\n`;\n\nconst ItemContainer = styled.div<{ isCentered?: boolean }>`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n text-align: center;\n\n &:not(:last-child) {\n margin-bottom: ${spacings.spacer}px;\n }\n\n @media ${mq.semilarge} {\n justify-content: ${({ isCentered }) =>\n isCentered ? 'center' : 'flex-start'};\n }\n`;\n\nconst Items = styled.ul<{ isVisible?: boolean; isCentered?: boolean }>`\n display: ${({ isVisible }) => (isVisible ? 'flex' : 'block')};\n align-items: center;\n justify-content: ${({ isCentered }) =>\n isCentered ? 'center' : 'flex-start'};\n\n flex-wrap: wrap;\n padding: 0;\n margin: 0;\n margin-top: -${spacings.nudge * 2}px;\n margin-left: -${spacings.nudge * 2}px;\n\n list-style: none;\n\n @media ${mq.medium} {\n margin-top: -${spacings.spacer}px;\n margin-left: -${spacings.spacer}px;\n\n & > * {\n flex: 0 1 auto;\n }\n }\n`;\n\nconst Item = styled.li<{\n isVisible?: boolean;\n index: number;\n}>`\n padding-top: ${spacings.nudge * 2}px;\n padding-left: ${spacings.nudge * 2}px;\n\n display: ${({ index, isVisible }) =>\n isVisible || index < 6 ? 'block' : 'none'};\n\n & > img {\n width: 100%;\n }\n\n @media ${mq.medium} {\n padding-top: ${spacings.spacer}px;\n padding-left: ${spacings.spacer}px;\n\n & > img {\n width: auto;\n }\n }\n\n @media ${mq.semilarge} {\n display: ${({ index, isVisible }) =>\n isVisible || index < 8 ? 'block' : 'none'};\n }\n\n @media ${mq.large} {\n display: ${({ index, isVisible }) =>\n isVisible || index < 10 ? 'block' : 'none'};\n }\n`;\n\nconst ItemLink = styled(Link)<{ isInverted?: boolean }>`\n display: block;\n outline-color: ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n`;\n\nconst ShowMore = styled.div<{ itemCount?: number; isCentered?: boolean }>`\n display: ${({ itemCount }) =>\n itemCount && itemCount > 6 ? 'block' : 'none'};\n\n background: none;\n border: none;\n text-align: ${({ isCentered }) => (isCentered ? 'center' : 'left')};\n\n @media ${mq.semilarge} {\n display: ${({ itemCount }) =>\n itemCount && itemCount > 8 ? 'block' : 'none'};\n }\n\n @media ${mq.large} {\n display: ${({ itemCount }) =>\n itemCount && itemCount > 10 ? 'block' : 'none'};\n }\n`;\n\nconst StyledActions = styled(Actions)<{ isCentered?: boolean }>`\n margin-top: ${spacings.spacer}px;\n\n @media ${mq.medium} {\n display: block;\n text-align: ${({ isCentered }) => isCentered && 'center'};\n }\n`;\n\nexport interface IconListItem {\n src: string;\n alt?: string;\n link?: LinkProps;\n ratio?: { h: number; w: number };\n showPlaceholder?: boolean;\n}\n\nconst IconList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array with icon items data */\n items?: Array<IconListItem>;\n\n /** Function to inject custom primary button */\n primaryAction?: (isInverted?: boolean) => React.ReactNode;\n\n /** Function to inject custom secondary button */\n secondaryAction?: (isInverted?: boolean) => React.ReactNode;\n\n /** Function to inject custom toggle button */\n toggle?: (props: {\n isInverted?: boolean;\n isToggled?: boolean;\n showLessText?: string;\n showMoreText?: string;\n clickHandler?: (ev?: React.SyntheticEvent<HTMLButtonElement>) => void;\n additionalProps?: Record<string, any>;\n }) => React.ReactNode;\n\n /** Custom text for toggle button in folded state */\n showMoreText?: string;\n\n /** Custom text for toggle button in expanded state */\n showLessText?: string;\n\n /** Center all icons and texts */\n isCentered?: boolean;\n\n /** Enable toggle feature */\n enableToggle?: boolean;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({\n anchorId,\n items,\n isCentered = false,\n primaryAction,\n secondaryAction,\n toggle,\n showLessText = 'show less',\n showMoreText = 'show more',\n enableToggle,\n bgMode,\n}) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const [showMore, setShowMore] = useState<boolean>(!enableToggle);\n\n const handleToggleClick = () => {\n setShowMore((prev) => !prev);\n };\n\n return (\n <StyledSection\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n isCentered={isCentered}\n >\n <Wrapper clampWidth=\"normal\" addWhitespace>\n <ItemContainer isCentered={isCentered}>\n <Items\n isVisible={!showMore ? true : showMore === true}\n isCentered={isCentered}\n >\n {items?.map(\n ({ src, link, alt, ratio, showPlaceholder }, i) => (\n <Item isVisible={showMore} index={i} key={i}>\n <ItemLink\n {...link}\n isInverted={isInverted}\n ariaLabel={alt}\n >\n <Image\n data-img-loaded={false}\n isInverted={isInverted}\n small={src}\n alt={alt}\n ratios={\n ratio\n ? { small: ratio }\n : undefined\n }\n showPlaceholder={showPlaceholder}\n />\n </ItemLink>\n </Item>\n )\n )}\n </Items>\n </ItemContainer>\n {enableToggle && (\n <ShowMore\n isCentered={isCentered}\n itemCount={items?.length || 0}\n >\n {toggle ? (\n toggle({\n isInverted,\n showLessText,\n showMoreText,\n isToggled: showMore,\n clickHandler: handleToggleClick,\n additionalProps: { 'aria-pressed': showMore },\n })\n ) : (\n <Pointer.View\n as=\"button\"\n isInverted={isInverted}\n aria-pressed={showMore}\n onClick={() => handleToggleClick()}\n >\n <Pointer.Label>\n {showMore ? showLessText : showMoreText}\n </Pointer.Label>\n </Pointer.View>\n )}\n </ShowMore>\n )}\n\n {(primaryAction || secondaryAction) && (\n <StyledActions\n isCentered={isCentered}\n primary={primaryAction && primaryAction(isInverted)}\n secondary={\n secondaryAction && secondaryAction(isInverted)\n }\n />\n )}\n </Wrapper>\n </StyledSection>\n );\n};\n\nexport const IconListComponent = IconList;\nexport default withLibTheme(IconList);\n","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport { copyStyle } from 'components/typography/Copy';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { getColors as color, spacings } from 'utils/styles';\nimport Link, { LinkProps } from 'components/typography/Link';\nimport ArrowDown from 'components/base/icons/ArrowDown';\nimport { useScrollTo } from 'utils/useScrollTo';\nimport { getFullNavbarHeights, getNavbarState } from './navigation/Navigation';\nimport { useMediaQueries } from 'utils/useMediaQuery';\n\nconst List = styled.ul<{ hasBg?: boolean; isInverted?: boolean }>`\n margin: 0;\n padding: 0;\n list-style: none;\n\n max-width: 880px;\n\n & > li + li {\n border-top: 1px solid\n ${({ theme, hasBg, isInverted }) =>\n hasBg && !isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.medium};\n }\n\n & > li:first-child {\n border-top: 1px solid\n ${({ theme, hasBg, isInverted }) =>\n hasBg && !isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.medium};\n }\n\n & > li:last-child {\n border-bottom: 1px solid\n ${({ theme, hasBg, isInverted }) =>\n hasBg && !isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.medium};\n }\n`;\n\nconst ListItem = styled.li``;\n\nconst IndexLink = styled(Link)<{ isInverted?: boolean }>`\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n padding: ${spacings.nudge}px 0;\n\n ${copyStyle('copy', 'big')}\n`;\n\nconst LinkLabel = styled.span`\n display: inline-block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nconst IconWrapper = styled.span`\n display: inline-block;\n\n margin-left: ${spacings.nudge * 2}px;\n`;\n\nexport interface IndexItem {\n label?: string;\n link?: LinkProps;\n}\n\nconst IndexList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of index item settings */\n items?: IndexItem[];\n\n /** Section background */\n bgMode?: 'inverted' | 'full';\n\n /** Function to inject custom icon decorator */\n customIcon?: (props: { isInverted?: boolean }) => React.ReactNode;\n\n /** Top offset for scroll to clicked item. Default: auto */\n scrollToOffset?: number;\n}> = ({ anchorId, items, bgMode, customIcon, scrollToOffset }) => {\n const { colors, theme } = useLibTheme();\n const setTargetPos = useScrollTo(500);\n const { semilarge } = useMediaQueries();\n\n const [topOffset, setTopOffset] = useState<number>(0);\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const handleLinkClick = (ev: React.SyntheticEvent<HTMLAnchorElement>) => {\n if (!ev?.currentTarget) return;\n\n ev.preventDefault();\n const href = ev.currentTarget.getAttribute('href') as string;\n\n if (!href) return;\n\n const target = document.getElementById(href.split('#')?.[1] || href);\n if (target) {\n setTargetPos(\n target.getBoundingClientRect().top +\n window.scrollY -\n (scrollToOffset || topOffset)\n );\n }\n\n if (window) {\n const url = new URL(window.location as any);\n url.hash = href.split('#')[1];\n window.history.pushState({}, '', url as any);\n }\n };\n\n useEffect(() => {\n if (scrollToOffset) return;\n\n // if header is defined get navbar height and generate top offset\n const header = document.querySelector('header[data-navbar-ident]');\n const navbarIdent = header?.getAttribute('data-navbar-ident');\n if (!navbarIdent) return;\n\n const { isStickable } = getNavbarState(navbarIdent);\n if (!isStickable) return;\n\n // calculate offset from navbar height\n const navbarHeights = getFullNavbarHeights(theme, navbarIdent);\n\n if (semilarge) setTopOffset(navbarHeights.small[1] + spacings.spacer);\n else setTopOffset(navbarHeights.small[0] + spacings.spacer);\n }, [theme, semilarge, scrollToOffset]);\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <List hasBg={hasBg} isInverted={isInverted}>\n {items?.map((item, i) => (\n <ListItem key={i}>\n <IndexLink\n {...item.link}\n isInverted={isInverted}\n onClick={handleLinkClick}\n >\n <LinkLabel>{item.label}</LinkLabel>\n <IconWrapper>\n {customIcon ? (\n customIcon({ isInverted })\n ) : (\n <ArrowDown />\n )}\n </IconWrapper>\n </IndexLink>\n </ListItem>\n ))}\n </List>\n </Wrapper>\n </Section>\n );\n};\n\nexport const IndexListComponent = IndexList;\nexport default withLibTheme(IndexList);\n","import React from 'react';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport IntroBlock from 'components/blocks/IntroBlock';\nimport { HeadlineTag } from 'components/typography/Heading';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { ImageProps } from 'components/blocks/Image';\nimport { TitleSize } from 'components/blocks/Title';\n\nconst Intro: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Main title text */\n title?: string;\n\n /** Main title HTML tag type (h2, h3, h4...) */\n titleAs?: HeadlineTag;\n\n /** Main title style */\n titleSize?: TitleSize;\n\n /** Superior title that stands above main title */\n superTitle?: string;\n\n /** Superior title HTML tag type (h3, h4 ...) */\n superTitleAs?: HeadlineTag;\n\n /** Intro text under headline (richtext) */\n abstract?: string;\n\n /** Main text (richtext) */\n text?: string;\n\n /** Images for different screen sizes. coverSpace defaults to true */\n image?: ImageProps;\n\n /** Function to inject custom primary button */\n primaryAction?: (isInverted?: boolean) => React.ReactNode;\n\n /** Function to inject custom secondary button */\n secondaryAction?: (isInverted?: boolean) => React.ReactNode;\n\n /** Center text and actions */\n isCentered?: boolean;\n\n /** Allow reduced section spacing to next section */\n isStackable?: boolean;\n\n /** Clamp title to a width of max 8 grid cols. */\n clampTitle?: boolean;\n\n /** Section background */\n bgMode?: 'inverted' | 'full' | 'splitted';\n className?: string;\n}> = ({\n anchorId,\n title,\n titleAs,\n titleSize = 'heading-2',\n superTitle,\n superTitleAs,\n abstract,\n text,\n primaryAction,\n secondaryAction,\n isCentered = false,\n isStackable = false,\n bgMode,\n image,\n}) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n\n // set default ratio settings\n if (image && !image?.ratios) {\n image.ratios = {\n small: { h: 1, w: 1 },\n };\n }\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n isStackable={isStackable}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode)}\n >\n <Wrapper clampWidth=\"normal\" addWhitespace>\n <IntroBlock\n title={title}\n titleAs={titleAs}\n titleSize={titleSize}\n superTitle={superTitle}\n superTitleAs={superTitleAs}\n abstract={abstract}\n text={text}\n colorMode={isInverted ? 'inverted' : 'default'}\n secondaryAction={secondaryAction}\n primaryAction={primaryAction}\n isCentered={isCentered}\n image={image}\n clampTitle\n clampAbstract\n clampText\n />\n </Wrapper>\n </Section>\n );\n};\n\nexport const IntroComponent = Intro;\nexport default withLibTheme(Intro);\n","import React, { FC, useEffect, useMemo, useState } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n mq,\n spacings,\n getColors as color,\n getFonts as font,\n getGlobals as global,\n withRange,\n} from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Grid, { getGridWidth, gridSettings } from 'components/base/Grid';\nimport Wrapper, { wrapperWhitespace } from 'components/base/Wrapper';\n\nimport IntroBlock from 'components/blocks/IntroBlock';\n\nimport Copy, { copyStyle } from 'components/typography/Copy';\nimport { HeadlineTag } from 'components/typography/Heading';\n\nimport Phone from 'components/base/icons/Phone';\nimport Mail from 'components/base/icons/Mail';\n\nimport { generateLocalBusiness } from 'utils/structuredData';\nimport Link from 'components/typography/Link';\nimport LocationPin from 'components/base/icons/LocationPin';\nimport Control from 'components/buttons/Control';\nimport * as Icons from 'icons';\nimport { getSVGDataImg as getSVGData } from 'utils/dataURI';\nimport useLeafletMap from 'utils/useLeafletMap';\nimport { isValidArray } from 'utils/arrays';\n\ninterface Address {\n street: string;\n postalCode: string;\n city?: string;\n country: string;\n}\n\nconst MapSection = styled(Section)`\n position: relative;\n min-height: 500px;\n z-index: 0;\n`;\n\nconst MapContainer = styled.div<{ isMirrored?: boolean }>`\n position: relative;\n top: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n z-index: 0;\n\n height: 100%;\n min-height: 230px;\n\n @media ${mq.semilarge} {\n position: absolute;\n /** \n calculate width of 6 grid cols (grid width = viewport width without wrapper paddings)\n and add left or right wrapper padding afterwards\n */\n width: calc(\n ${getGridWidth({\n cols: 6,\n gridWidth: `100% - ${wrapperWhitespace * 2}px `,\n })} + ${wrapperWhitespace}px\n );\n left: ${({ isMirrored }) => (isMirrored ? 'auto' : '0')};\n right: ${({ isMirrored }) => (isMirrored ? '0' : 'auto')};\n }\n\n @media ${mq.xlarge} {\n width: calc(50% - ${gridSettings.gutter}px ${wrapperWhitespace}px);\n }\n\n @media ${mq.xxlarge} {\n width: calc(\n ${spacings.wrapperLarge / 2}px - ${gridSettings.gutter}px +\n ${wrapperWhitespace}px\n );\n\n left: ${({ isMirrored }) => (isMirrored ? 'auto' : '50%')};\n right: ${({ isMirrored }) => (isMirrored ? '50%' : 'auto')};\n\n ${({ isMirrored }) =>\n css`\n transform: translateX(\n calc(\n ${isMirrored\n ? `(100% + ${gridSettings.gutter}px) - `\n : `(-100% - ${gridSettings.gutter}px) + `}\n (${wrapperWhitespace}px)\n )\n );\n `};\n }\n`;\n\nconst CardWrapper = styled(Wrapper)`\n pointer-events: none;\n`;\n\nconst CardContainer = styled.div<{ isMirrored?: boolean }>`\n display: flex;\n flex-direction: row;\n position: relative;\n width: 100%;\n pointer-events: all;\n\n ${({ theme }) =>\n withRange(\n global(theme).sections.seperation.padding.default,\n 'padding-bottom'\n )}\n\n @media ${mq.semilarge} {\n ${({ theme }) =>\n withRange(\n global(theme).sections.seperation.padding.default,\n 'padding-top'\n )}\n }\n`;\n\nconst InfoCardView = styled.div`\n min-height: 100px;\n pointer-events: all;\n\n flex: 1 0 80%;\n max-width: 80%;\n\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n`;\n\nconst CardHeader = styled.div`\n display: flex;\n`;\n\nconst ContactList = styled.ul<{ isInverted?: boolean }>`\n padding: 0;\n list-style-type: none;\n color: ${({ theme, isInverted }) =>\n isInverted ? color(theme).text.inverted : color(theme).text.default};\n\n li {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0;\n margin: 0;\n }\n\n li + li {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n span:first-child {\n flex: 0 0 30px;\n max-width: 30px;\n\n & > * {\n max-width: 100%;\n }\n }\n`;\n\nconst ContactListLink = styled(Link)`\n display: block;\n\n ${copyStyle('copy-b', 'big')}\n color: ${({ theme, isInverted }) =>\n isInverted\n ? font(theme)['copy-b'].big.colorInverted\n : font(theme)['copy-b'].big.color};\n\n * + & {\n margin-left: ${spacings.nudge * 1.5}px;\n }\n`;\n\nconst AddressContainer = styled.div<{ hasIcon?: boolean }>`\n display: -ms-grid;\n display: grid;\n\n ${({ hasIcon }) => css`\n -ms-grid-columns: ${hasIcon ? 'min-content' : ''} 1fr;\n grid-template-columns: ${hasIcon ? 'min-content' : ''} 1fr;\n -ms-grid-rows: ${hasIcon ? 'min-content' : ''} 1fr;\n grid-auto-rows: ${hasIcon ? 'min-content' : ''} 1fr;\n `}\n\n & > * + * {\n margin-left: ${spacings.nudge * 2}px;\n }\n`;\n\nconst CompanyInfo: FC<{\n isInverted?: boolean;\n companyName: string;\n address?: Address;\n customIcon?: (isInverted?: boolean) => React.ReactNode;\n}> = ({ isInverted, companyName, address, customIcon }) => {\n return (\n <AddressContainer hasIcon={!!customIcon}>\n {customIcon && <span> {customIcon()} </span>}\n <div>\n <Copy type=\"copy-b\" size=\"big\" isInverted={isInverted}>\n {companyName}\n </Copy>\n {address && (\n <Copy type=\"copy-b\" size=\"big\" isInverted={isInverted}>\n <div>{address.street}</div>\n <div>{`${address.postalCode} ${address.city}`}</div>\n <div>{address.country}</div>\n </Copy>\n )}\n </div>\n </AddressContainer>\n );\n};\n\nconst Desc = styled(Copy)`\n @media ${mq.semilarge} {\n margin-top: ${spacings.spacer * 2.5}px;\n }\n`;\n\nconst LocationInfoCard: FC<\n MapLocation & {\n isInverted?: boolean;\n }\n> = ({\n isInverted,\n title,\n titleAs,\n superTitle,\n superTitleAs,\n companyName,\n address,\n addressIcon,\n contact,\n description,\n}) => {\n const { colors } = useLibTheme();\n\n const addressIconContent = addressIcon ? (\n addressIcon({ isInverted })\n ) : (\n <LocationPin\n iconColor={isInverted ? colors.text.inverted : colors.text.default}\n />\n );\n\n const phoneIconContent = contact?.telephone?.icon ? (\n contact.telephone.icon({\n isInverted,\n })\n ) : (\n <Phone />\n );\n\n const mailIconContent = contact?.email?.icon ? (\n contact.email.icon({ isInverted })\n ) : (\n <Mail />\n );\n\n return (\n <InfoCardView>\n <CardHeader>\n <IntroBlock\n colorMode={isInverted ? 'inverted' : 'default'}\n title={title}\n titleAs={titleAs}\n superTitle={superTitle}\n superTitleAs={superTitleAs}\n />\n </CardHeader>\n {companyName && (\n <CompanyInfo\n companyName={companyName || ''}\n address={address}\n customIcon={\n addressIconContent\n ? () => addressIconContent\n : undefined\n }\n isInverted={isInverted}\n />\n )}\n {contact && (\n <ContactList isInverted={isInverted}>\n {contact?.telephone?.label && (\n <li>\n {phoneIconContent && (\n <span>{phoneIconContent}</span>\n )}\n <ContactListLink\n isInverted={isInverted}\n href={`tel:${\n contact.telephone.link ||\n contact.telephone.label\n }`}\n >\n {contact.telephone?.label}\n </ContactListLink>\n </li>\n )}\n {contact?.email?.label && (\n <li>\n {mailIconContent && <span>{mailIconContent}</span>}\n <ContactListLink\n isInverted={isInverted}\n href={`mailto:${\n contact?.email.link || contact.email.label\n }`}\n >\n {contact?.email.label}\n </ContactListLink>\n </li>\n )}\n </ContactList>\n )}\n\n <Desc isInverted={isInverted} innerHTML={description} />\n </InfoCardView>\n );\n};\n\nconst Controls = styled.div`\n flex: 1 0 20%;\n max-width: 20%;\n display: flex;\n flex-direction: column;\n align-self: flex-start;\n margin-left: auto;\n text-align: right;\n\n & > * + * {\n margin-top: ${spacings.nudge}px;\n }\n`;\n\nconst FylToCtrlContainer = styled.button`\n position: absolute;\n top: 0;\n right: 0;\n z-index: 1000;\n background: none;\n border: none;\n margin: 0;\n padding: 0;\n\n margin-top: ${spacings.spacer}px;\n margin-right: ${spacings.spacer}px;\n color: ${({ theme }) => color(theme).elementBg.dark};\n\n cursor: pointer;\n`;\n\nexport interface LocationIcon {\n url: string;\n size: [number, number];\n anchor: [number, number];\n\n sizeActive: [number, number];\n anchorActive: [number, number];\n}\n\nexport interface MapLocation {\n id: string;\n position: [number, number];\n icon?: LocationIcon;\n\n title?: string; // Rich Text\n titleAs?: HeadlineTag;\n superTitle?: string;\n superTitleAs?: HeadlineTag;\n\n companyName?: string;\n address?: Address;\n addressIcon?: (props: { isInverted?: boolean }) => React.ReactNode;\n contact?: {\n telephone?: {\n link?: string;\n label?: string;\n icon?: (props: { isInverted?: boolean }) => React.ReactNode;\n };\n email?: {\n link?: string;\n label?: string;\n icon?: (props: { isInverted?: boolean }) => React.ReactNode;\n };\n };\n image?: string[];\n description?: string;\n}\n\nconst Map: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Switch horizontal order of map and location info text */\n isMirrored?: boolean;\n\n /** Map tile provider */\n provider?: string;\n\n /** Map attribution text (richtext) */\n attribution?: string;\n\n /** Initial center of the map */\n center?: [number, number];\n\n /** Initial map zoom */\n zoom?: number;\n\n /** Zoom if map jumps to location */\n flyToZoom?: number;\n\n /** Initial location */\n initialLocation?: string;\n\n /** Array of location settings */\n locations?: Array<MapLocation>;\n\n /** Show all markers on first load */\n allMarkersOnInit?: boolean;\n\n /** Map container padding for show all markers */\n fitBoundsPadding?: [number, number];\n\n /** Icon element for flight to the current active location */\n flyToControl?: React.ReactNode;\n\n /** Injection function to replace default control button */\n controlNext?: (props: {\n isInverted?: boolean;\n isActive?: boolean;\n name?: string;\n clickHandler?: (ev: React.SyntheticEvent<HTMLButtonElement>) => void;\n }) => React.ReactNode;\n\n /** Injection function to replace default control button */\n controlPrev?: (props: {\n isInverted?: boolean;\n isActive?: boolean;\n name?: string;\n clickHandler?: (ev: React.SyntheticEvent<HTMLButtonElement>) => void;\n }) => React.ReactNode;\n}> = ({\n anchorId,\n bgMode,\n isMirrored = false,\n provider,\n attribution,\n center = [51.505, -0.09],\n zoom = 5,\n flyToZoom,\n initialLocation,\n locations,\n allMarkersOnInit = false,\n fitBoundsPadding,\n flyToControl,\n controlNext,\n controlPrev,\n}) => {\n const { colors } = useLibTheme();\n\n const [activeLocationId, setActiveLocationId] = useState<string>(\n initialLocation || ''\n );\n const [isDirty, setIsDirty] = useState<boolean>(false);\n const activeLocation = useMemo(\n () => locations?.find((l) => l.id === activeLocationId),\n [activeLocationId, locations]\n );\n\n const hasBg = bgMode === 'full';\n const isInverted = bgMode === 'inverted';\n\n const defaultMarker: LocationIcon = {\n size: [28, 28],\n anchor: [14, 28],\n sizeActive: [70, 70],\n anchorActive: [35, 70],\n url: getSVGData(<LocationPin />),\n };\n const {\n isLoaded,\n setContainer: setMapContainer,\n flyToActive,\n showAllMarkers,\n } = useLeafletMap({\n url: provider,\n attribution,\n center,\n zoom,\n activeMarkerId: activeLocationId,\n markers: locations?.map(({ id, position, icon }) => ({\n id,\n position,\n icon: icon || defaultMarker,\n isInteractive: true,\n })),\n fitBoundsPadding,\n onMarkerClick: setActiveLocationId,\n });\n\n const goToNext = () => {\n setActiveLocationId((prev) => {\n if (!locations) return prev;\n const currentIndex = locations.findIndex(\n (l) => l.id === activeLocationId\n );\n if (currentIndex === -1) return prev;\n\n // get new index\n const newIndex = (currentIndex + 1) % locations.length;\n return locations[newIndex].id;\n });\n };\n\n const goToPrevious = () => {\n setActiveLocationId((prev) => {\n if (!locations) return prev;\n const currentIndex = locations.findIndex(\n (l) => l.id === activeLocationId\n );\n if (currentIndex === -1) return prev;\n\n // get new index\n const newIndex =\n currentIndex - 1 < 0 ? locations.length - 1 : currentIndex - 1;\n return locations[newIndex].id;\n });\n };\n\n useEffect(() => {\n if (isLoaded && !isDirty) {\n if (allMarkersOnInit) showAllMarkers();\n } else {\n flyToActive(flyToZoom);\n }\n }, [\n activeLocationId,\n allMarkersOnInit,\n flyToActive,\n flyToZoom,\n initialLocation,\n isDirty,\n isLoaded,\n showAllMarkers,\n ]);\n\n useEffect(() => {\n if (!isDirty && activeLocationId !== initialLocation) setIsDirty(true);\n }, [activeLocationId, initialLocation, isDirty]);\n\n return (\n <MapSection\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n {locations && generateLocalBusiness(locations)}\n <MapContainer ref={setMapContainer} isMirrored={isMirrored}>\n {flyToControl && (\n <FylToCtrlContainer\n onClick={(ev) => {\n ev.stopPropagation();\n flyToActive(flyToZoom);\n }}\n >\n {flyToControl}\n </FylToCtrlContainer>\n )}\n </MapContainer>\n\n <CardWrapper addWhitespace clampWidth=\"normal\">\n <Grid.Row>\n <Grid.Col\n semilarge={{\n span: 6 / 12,\n move: (isMirrored ? 6 : 0) / 12,\n }}\n ></Grid.Col>\n <Grid.Col\n semilarge={{\n span: 6 / 12,\n move: (isMirrored ? -6 : 0) / 12,\n }}\n >\n <CardContainer isMirrored={isMirrored}>\n {isValidArray(locations, false) && (\n <React.Fragment>\n {activeLocation && (\n <LocationInfoCard\n {...activeLocation}\n isInverted={isInverted}\n />\n )}\n {locations.length > 1 && (\n <Controls>\n {controlNext ? (\n controlNext({\n isInverted,\n isActive: true,\n clickHandler: goToNext,\n name: 'control_next_head',\n })\n ) : (\n <Control\n isInverted={isInverted}\n isDisabled={false}\n onClick={goToNext}\n >\n <Icons.ArrowRightGhost />\n </Control>\n )}\n {controlPrev ? (\n controlPrev({\n isInverted,\n isActive: true,\n clickHandler: goToPrevious,\n name: 'control_prev_head',\n })\n ) : (\n <Control\n isInverted={isInverted}\n isDisabled={false}\n onClick={goToPrevious}\n >\n <Icons.ArrowLeftGhost />\n </Control>\n )}\n </Controls>\n )}\n </React.Fragment>\n )}\n </CardContainer>\n </Grid.Col>\n </Grid.Row>\n </CardWrapper>\n </MapSection>\n );\n};\n\nexport const MapComponent = Map;\nexport default withLibTheme(Map);\n","import Copy from 'components/typography/Copy';\nimport Link, { LinkProps } from 'components/typography/Link';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { getColors as color, mq, spacings } from 'utils/styles';\n\nconst View = styled(Link)<{ isInverted?: boolean; hasIcon?: boolean }>`\n display: -ms-grid;\n display: grid;\n\n -ms-grid-columns: ${({ hasIcon }) => (hasIcon ? 'min-content 1fr' : '1fr')};\n grid-template-columns: ${({ hasIcon }) =>\n hasIcon ? 'min-content 1fr' : '1fr'};\n -ms-grid-rows: min-content 1fr;\n grid-auto-rows: min-content 1fr;\n\n cursor: pointer;\n text-decoration: none;\n color: ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n\n outline-color: ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n\n transition: all ease-in-out 0.2s;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n color: ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.invertedHover\n : color(theme).primary.hover};\n }\n }\n`;\n\nconst MainLabel = styled.div<{ hasIcon?: boolean }>`\n display: flex;\n align-items: center;\n margin-left: ${({ hasIcon }) => hasIcon && `${spacings.nudge * 3}px`};\n`;\n\nconst Text = styled(Copy)<{ hasIcon?: boolean }>`\n margin-top: ${({ hasIcon }) =>\n hasIcon ? spacings.nudge : spacings.nudge * 2}px;\n margin-left: ${({ hasIcon }) => hasIcon && `${spacings.nudge * 3}px`};\n`;\n\nconst Icon = styled.div`\n display: flex;\n align-items: center;\n\n & > * {\n height: 48px;\n width: 48px;\n }\n`;\n\nconst Title = styled(Copy)`\n display: inline-block;\n`;\n\nconst TitleIcon = styled.span`\n display: inline-block;\n margin-left: ${spacings.nudge * 2}px;\n\n @media ${mq.medium} {\n margin-left: ${spacings.nudge * 3}px;\n }\n`;\n\nexport interface NavBlockProps {\n /** Invert colors for use on dark backgrounds */\n isInverted?: boolean;\n\n /** Navigation title */\n title?: string;\n\n /** Navigation text (richtext) */\n text?: string;\n\n /** Link settings */\n link?: LinkProps;\n\n /** Function to inject custom icon node */\n customIcon?: (props: { isInverted?: boolean }) => React.ReactNode;\n\n /** Function to inject custom title icon decorator node */\n customTitleIcon?: (props: { isInverted?: boolean }) => React.ReactNode;\n\n className?: string;\n}\n\nconst NavBlock: React.FC<NavBlockProps> = ({\n isInverted = false,\n title,\n text,\n link,\n customIcon,\n customTitleIcon,\n className,\n}) => {\n return (\n <View\n {...link}\n isInverted={isInverted}\n hasIcon={!!customIcon}\n className={className}\n >\n {customIcon ? <Icon>{customIcon({})}</Icon> : ''}\n <MainLabel hasIcon={!!customIcon}>\n {title && (\n <Title textColor=\"inherit\" size=\"medium\" type=\"copy-b\">\n {title}\n {title && customTitleIcon && (\n <TitleIcon>\n {customTitleIcon({ isInverted })}\n </TitleIcon>\n )}\n </Title>\n )}\n </MainLabel>\n {text && (\n <>\n <span />\n <Text\n size=\"small\"\n isInverted={isInverted}\n innerHTML={text}\n hasIcon={!!customIcon}\n />\n </>\n )}\n </View>\n );\n};\n\nexport default NavBlock;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport NavBlock, { NavBlockProps } from 'components/blocks/NavBlock';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { mq, spacings } from 'utils/styles';\n\nconst List = styled.ul`\n margin: 0;\n margin-top: -${spacings.spacer}px;\n margin-left: -${spacings.spacer}px;\n padding: 0;\n list-style: none;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n flex-wrap: wrap;\n\n @media ${mq.medium} {\n margin-top: -${spacings.spacer * 2}px;\n }\n`;\n\nconst ListItem = styled.li`\n padding-top: ${spacings.spacer}px;\n padding-left: ${spacings.spacer}px;\n flex: 1 0 100%;\n\n @media ${mq.medium} {\n flex: 0 0 50%;\n max-width: 50%;\n padding-top: ${spacings.spacer * 2}px;\n }\n\n @media ${mq.large} {\n flex: 0 0 33.33%;\n max-width: 33.33%;\n }\n\n // print version\n @media print {\n flex: 0 0 50%;\n max-width: 50%;\n padding-top: ${spacings.spacer * 2}px;\n }\n`;\n\nexport type NavItem = Omit<\n NavBlockProps,\n 'isInverted' | 'customTitleIcon' | 'className'\n>;\n\nconst NavList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of navigation item settings */\n items?: NavItem[];\n\n /** Section backgrounds */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom title decorator icon */\n customTitleIcon?: (props: { isInverted?: boolean }) => React.ReactNode;\n}> = ({ anchorId, items, bgMode, customTitleIcon }) => {\n const { colors } = useLibTheme();\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <List>\n {items?.map((item, i) => (\n <ListItem key={i}>\n <NavBlock\n {...item}\n isInverted={isInverted}\n customTitleIcon={customTitleIcon}\n />\n </ListItem>\n ))}\n </List>\n </Wrapper>\n </Section>\n );\n};\n\nexport const NavListComponent = NavList;\nexport default withLibTheme(NavList);\n","import Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Callout from 'components/typography/Callout';\nimport Heading from 'components/typography/Heading';\nimport React, { useContext } from 'react';\nimport styled, { ThemeContext } from 'styled-components';\nimport { getColors as color, mq, spacings, withRange } from 'utils/styles';\nimport { withLibTheme } from 'utils/LibThemeProvider';\n\nconst View = styled.div`\n text-align: center;\n\n & > * {\n margin: 0 auto;\n }\n\n @media ${mq.semilarge} {\n text-align: left;\n\n & > * {\n margin: 0;\n }\n }\n`;\n\nconst Icon = styled.img`\n display: block;\n max-width: 140px;\n max-height: 140px;\n\n margin-bottom: ${spacings.nudge * 2}px;\n`;\n\nconst NumberContainer = styled.div<{ height: number }>`\n max-width: max-content;\n min-height: 90px;\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n\n @media ${mq.semilarge} {\n min-height: 100px;\n }\n\n /* margin-bottom: ${spacings.nudge * 2}px; */\n\n @media ${mq.large} {\n min-height: 120px;\n }\n`;\n\nconst Number = styled(Callout)<{ isInverted?: boolean; stringLength: number }>`\n max-height: 140px;\n ${({ stringLength }) =>\n stringLength <= 6\n ? withRange([72, 120], 'font-size')\n : stringLength >= 10\n ? withRange([33, 42], 'font-size')\n : withRange([52, 72], 'font-size')}\n\n color: ${({ isInverted, theme }) =>\n isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n`;\n\nconst Label = styled(Heading)`\n max-width: 80%;\n`;\n\nconst IconBlock: React.FC<{\n icon?: { src: string; alt?: string };\n number?: string;\n label?: string;\n isInverted?: boolean;\n}> = ({ icon, label, number, isInverted }) => {\n const theme = useContext(ThemeContext);\n\n const stringLength = number ? number.length : 0;\n\n return (\n <View>\n {icon && <Icon src={icon.src} alt={icon.alt} />}\n <NumberContainer height={0}>\n <Number\n renderAs=\"div\"\n stringLength={stringLength}\n isInverted={isInverted}\n >\n {number}\n </Number>\n </NumberContainer>\n <Label\n size=\"super\"\n textColor={\n isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default\n }\n >\n {label}\n </Label>\n </View>\n );\n};\n\nconst ContentContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n flex-wrap: wrap;\n\n margin: -${spacings.spacer}px;\n margin-top: -${spacings.spacer * 2}px;\n\n @media ${mq.semilarge} {\n margin-top: -${spacings.spacer}px;\n }\n\n & > * {\n padding: ${spacings.spacer}px;\n padding-top: ${spacings.spacer * 2}px;\n\n @media ${mq.semilarge} {\n padding-top: ${spacings.spacer}px;\n }\n\n flex-basis: 100%;\n\n @media ${mq.semilarge} {\n flex: 0 0 50%;\n }\n\n @media ${mq.large} {\n flex: 0 1 33.33%;\n }\n }\n`;\n\nconst NumberList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n items?: {\n icon?: { src: string; alt?: string };\n number?: string;\n label?: string;\n }[];\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, items, bgMode }) => {\n const theme = useContext(ThemeContext);\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? color(theme).sectionBg.dark\n : hasBg\n ? color(theme).sectionBg.medium\n : color(theme).sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <ContentContainer>\n {items?.map((item, i) => {\n return (\n <IconBlock\n {...item}\n key={i}\n isInverted={isInverted}\n />\n );\n })}\n </ContentContainer>\n </Wrapper>\n </Section>\n );\n};\n\nexport const NumberListComponent = NumberList;\nexport default withLibTheme(NumberList);\n","import React, { FC, useEffect, useRef, useState } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport { spacings } from 'utils/styles';\n\nconst View = styled.section`\n position: relative;\n width: 100vw;\n z-index: -1;\n`;\n\nconst Parallax = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n margin-left: 0;\n width: 100%;\n`;\n\nconst Content = styled.div<{\n contentWidth?: number;\n hAlign?: 'left' | 'center' | 'right';\n}>`\n margin-left: ${({ hAlign }) =>\n (hAlign === 'right' || hAlign === 'center') && 'auto'};\n margin-right: ${({ hAlign }) =>\n (hAlign === 'left' || hAlign === 'center') && 'auto'};\n\n width: ${({ contentWidth }) =>\n contentWidth\n ? contentWidth === -1\n ? 'auto'\n : contentWidth * 100 + '%'\n : undefined};\n\n max-width: ${spacings.wrapperLarge}px;\n overflow: hidden;\n\n & > * {\n width: ${({ contentWidth }) => contentWidth !== -1 && '100%'};\n }\n`;\n\nconst StyledImage = styled(Image)<{\n coverSpace?: boolean;\n hAlign?: 'left' | 'center' | 'right';\n}>`\n max-width: ${({ coverSpace }) => !coverSpace && 'none'};\n float: ${({ hAlign }) =>\n hAlign === 'left' || hAlign === 'right' ? hAlign : undefined};\n ${({ coverSpace, hAlign }) =>\n !coverSpace &&\n hAlign === 'center' &&\n css`\n transform: translateX(-50%);\n margin-left: 50%;\n `}\n`;\n\nexport type ParallaxWidth = '1/4' | 'half' | '3/4' | 'full' | 'auto';\n\nconst ParallaxBackground: FC<{\n image?: ImageProps;\n hAlign?: 'left' | 'center' | 'right';\n contentWidth?: ParallaxWidth | number;\n moveRatio?: number;\n direction?: 'down' | 'up';\n className?: string;\n}> = ({\n image,\n hAlign = 'left',\n contentWidth = 1,\n moveRatio = 0.2,\n direction = 'up',\n className,\n}) => {\n const [isLoaded, setIsLoaded] = useState<boolean>(false);\n const [yTransform, setYTransform] = useState<number>(0);\n // const cRef = useRef<HTMLDivElement>(null);\n const [cRef, setContainerRef] = useState<HTMLElement | null>(null);\n const parallaxRef = useRef<HTMLDivElement>(null);\n\n let width = 1;\n if (typeof contentWidth === 'string') {\n switch (contentWidth) {\n case '1/4': {\n width = 0.25;\n break;\n }\n\n case 'half': {\n width = 0.5;\n break;\n }\n\n case '3/4': {\n width = 0.75;\n break;\n }\n\n case 'auto': {\n width = -1;\n break;\n }\n\n default:\n case 'full': {\n width = 1;\n break;\n }\n }\n } else if (!isNaN(contentWidth)) {\n width = contentWidth;\n }\n\n useEffect(() => {\n setIsLoaded(true);\n }, []);\n\n useEffect(() => {\n const prevEl = cRef?.previousElementSibling;\n if (prevEl) {\n const bgIdent = (prevEl as HTMLElement).dataset.bgIdent;\n const stackIdent = (prevEl as HTMLElement).dataset.stackIdent;\n\n if (bgIdent) {\n // set data background from previous element\n cRef?.setAttribute('data-bg-ident', bgIdent);\n }\n\n if (stackIdent) {\n // set data stack flag from previous element\n cRef?.setAttribute('data-stack-ident', stackIdent);\n }\n }\n }, [cRef]);\n\n useEffect(() => {\n const handleScroll = () => {\n if (!cRef) return;\n\n const containerPos = cRef.getBoundingClientRect().top;\n const ratio = containerPos * moveRatio;\n const offset = ratio * (direction === 'up' ? 1 : -1);\n\n setYTransform(offset);\n };\n\n handleScroll();\n window.addEventListener('scroll', handleScroll);\n\n return () => {\n window.removeEventListener('scroll', handleScroll);\n };\n }, [cRef, direction, moveRatio]);\n\n return (\n <>\n {isLoaded && (\n <View ref={setContainerRef} data-bg-ident=\"transparent\">\n <Parallax\n ref={parallaxRef}\n style={{\n transform: `translate3d(0px, ${yTransform}px, 0px)`,\n }}\n className={className}\n >\n <Content hAlign={hAlign} contentWidth={width}>\n {image && (\n <StyledImage\n hAlign={hAlign}\n coverSpace={width !== -1}\n {...image}\n />\n )}\n </Content>\n </Parallax>\n </View>\n )}\n </>\n );\n};\n\nexport default ParallaxBackground;\n","import React, { FC } from 'react';\nimport styled from 'styled-components';\n\nimport Section from 'components/base/Section';\nimport Wrapper, { wrapperWhitespace } from 'components/base/Wrapper';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport { spacings, getGlobals as global } from 'utils/styles';\nimport IntroBlock from 'components/blocks/IntroBlock';\nimport { HeadlineTag } from 'components/typography/Heading';\nimport { withLibTheme } from 'utils/LibThemeProvider';\n\nconst Container = styled.figure<{\n hasContent?: boolean;\n verticallyCentered?: boolean;\n}>`\n position: relative;\n width: 100%;\n max-height: 550px;\n padding: 0;\n margin: 0;\n\n &:after {\n content: ${({ hasContent }) => hasContent && '\"\"'};\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n background: ${({ theme, verticallyCentered }) =>\n verticallyCentered\n ? global(theme).sections.imageTextGradientCentered\n : global(theme).sections.imageTextGradient};\n pointer-events: none;\n z-index: 0;\n }\n`;\n\nconst StyledImage = styled(Image)`\n img {\n height: 550px;\n }\n`;\n\nconst Intro = styled(IntroBlock)<{\n verticallyCentered?: boolean;\n horizontallyCentered?: boolean;\n}>`\n position: absolute;\n bottom: ${({ verticallyCentered }) => !verticallyCentered && '0'};\n top: ${({ verticallyCentered }) => verticallyCentered && '50%'};\n left: 50%;\n right: 0;\n max-height: 100%;\n max-width: ${spacings.wrapper}px;\n\n padding: ${wrapperWhitespace + spacings.nudge * 2}px;\n z-index: 1;\n\n transform: ${({ verticallyCentered }) =>\n verticallyCentered ? 'translate(-50%, -50%)' : 'translateX(-50%)'};\n`;\n\nconst Poster: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Clamp width of poster image to content wrapper or large wrapper */\n width?: 'full' | 'content';\n\n /** The poster image settings */\n image: Omit<ImageProps, 'coverSpace' | 'ratios'>;\n\n /** Main title text */\n title?: string;\n\n /** Main title HTML tag type (h2, h3, h4...) */\n titleAs?: HeadlineTag;\n\n /** Superior title that stands above main title */\n superTitle?: string;\n\n /** Superior title HTML tag type (h3, h4 ...) */\n superTitleAs?: HeadlineTag;\n\n /** Text underneath the title (richtext) */\n text?: string;\n\n /** Function to inject custom primary button */\n primaryAction?: (isInverted?: boolean) => React.ReactNode;\n\n /** Function to inject custom secondary button */\n secondaryAction?: (isInverted?: boolean) => React.ReactNode;\n\n /** Align text and actions vertically */\n verticallyCentered?: boolean;\n\n /** Align text and actions horizontally */\n horizontallyCentered?: boolean;\n}> = ({\n anchorId,\n width = 'content',\n title,\n titleAs,\n superTitle,\n superTitleAs,\n text,\n primaryAction,\n secondaryAction,\n image,\n verticallyCentered,\n horizontallyCentered,\n}) => {\n const isCentered = verticallyCentered && horizontallyCentered;\n\n return (\n <Section anchorId={anchorId} bgColor=\"image\" bgMode=\"full\">\n <Wrapper clampWidth={width === 'content' ? 'normal' : 'large'}>\n <Container\n hasContent={!!title || !!text}\n verticallyCentered={verticallyCentered}\n >\n <StyledImage {...image} coverSpace ratios={undefined} />\n {title && (\n <Intro\n verticallyCentered={verticallyCentered}\n horizontallyCentered={horizontallyCentered}\n renderAs=\"figcaption\"\n colorMode=\"onImage\"\n title={title}\n titleAs={titleAs}\n superTitle={superTitle}\n superTitleAs={superTitleAs}\n text={text}\n secondaryAction={secondaryAction}\n primaryAction={primaryAction}\n clampTitle\n maxTitleLines={3}\n clampText\n maxTextLines={4}\n isCentered={horizontallyCentered || isCentered}\n />\n )}\n </Container>\n </Wrapper>\n </Section>\n );\n};\n\nexport const PosterComponent = Poster;\nexport default withLibTheme(Poster);\n","import React from 'react';\nimport styled from 'styled-components';\nimport { getColors as color, mq, spacings } from 'utils/styles';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Copy from 'components/typography/Copy';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\n\nconst ItemList = styled.ul`\n margin: 0;\n padding: 0;\n list-style: none;\n\n & > * + * {\n margin-top: ${spacings.nudge}px;\n }\n`;\n\nconst ItemBlock = styled.li<{ hasBg?: boolean }>`\n max-width: 100%;\n padding: ${spacings.nudge * 2}px;\n\n background: ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n\n & > * + * {\n margin-top: ${spacings.nudge * 2}px;\n }\n\n @media ${mq.semilarge} {\n padding: ${spacings.nudge * 3}px;\n }\n`;\n\nconst ListHead = styled.div`\n display: flex;\n justify-content: space-between;\n\n & > * + * {\n margin-left: ${spacings.nudge * 2}px;\n }\n`;\n\nconst Title = styled(Copy)`\n max-width: 880px;\n`;\n\nconst Price = styled(Copy)`\n white-space: nowrap;\n`;\n\nconst Description = styled(Copy)`\n max-width: 880px;\n`;\n\nexport interface PriceItems {\n /** Title of the price item */\n title?: string;\n /** Description text of price item (richtext) */\n text?: string;\n /** The price value (Currency not included) */\n price?: string;\n}\n\nexport const PriceBlock: React.FC<PriceItems & { hasBg?: boolean }> = ({\n text,\n price,\n hasBg = false,\n title,\n}) => {\n return (\n <ItemBlock hasBg={hasBg}>\n <ListHead>\n {title && <Title type=\"copy-b\">{title}</Title>}\n {price && <Price type=\"copy-b\">{price}</Price>}\n </ListHead>\n {text && <Description type=\"copy\" innerHTML={text} />}\n </ItemBlock>\n );\n};\n\nconst PriceList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array with price items */\n items?: PriceItems[];\n\n /** Section background */\n bgMode?: 'inverted' | 'full';\n}> = ({ anchorId, bgMode, items }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBack = isInverted || bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode === 'full'\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <ItemList>\n {items?.map((item, i) => (\n <PriceBlock key={i} {...item} hasBg={hasBack} />\n ))}\n </ItemList>\n </Wrapper>\n </Section>\n );\n};\n\nexport const PriceListComponent = PriceList;\nexport default withLibTheme(PriceList);\n","import {\n spacings,\n getColors as color,\n getGlobals as global,\n} from 'utils/styles';\nimport React, { forwardRef } from 'react';\nimport styled from 'styled-components';\nimport Copy from 'components/typography/Copy';\nimport Actions from './Actions';\nimport Callout from 'components/typography/Callout';\n\nconst View = styled.div<{\n isInverted?: boolean;\n isCentered?: boolean;\n hasBg?: boolean;\n isHighlighted?: boolean;\n}>`\n padding: ${spacings.spacer}px;\n\n border: 1px solid transparent;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n\n background: ${({ theme, hasBg, isInverted, isHighlighted }) =>\n isInverted\n ? isHighlighted\n ? color(theme).primary.inverted\n : color(theme).elementBg.medium\n : isHighlighted\n ? color(theme).primary.default\n : hasBg\n ? color(theme).elementBg.light\n : color(theme).elementBg.medium};\n\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n text-align: ${({ isCentered }) => (isCentered ? 'center' : 'left')};\n\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst StyledActions = styled(Actions)`\n display: block;\n margin-top: auto;\n padding-top: ${spacings.spacer}px;\n text-align: center;\n`;\n\nexport interface PriceTagProps {\n title?: string;\n superTitle?: string;\n text?: string;\n action?: (props: {\n isInverted?: boolean;\n isHighlighted?: boolean;\n }) => React.ReactNode;\n isInverted?: boolean;\n isCentered?: boolean;\n hasBackground?: boolean;\n isHighlighted?: boolean;\n}\n\nconst PriceTag = forwardRef<\n HTMLDivElement,\n PriceTagProps & { className?: string }\n>(\n (\n {\n superTitle,\n title,\n text,\n action,\n isInverted,\n isCentered,\n isHighlighted,\n hasBackground,\n className,\n },\n ref\n ) => {\n const inverted = isHighlighted ? !isInverted : false;\n\n return (\n <View\n ref={ref}\n isInverted={isInverted}\n isCentered={isCentered}\n isHighlighted={isHighlighted}\n hasBg={hasBackground}\n className={className}\n >\n {superTitle && (\n <Copy\n type=\"copy-b\"\n size=\"big\"\n isInverted={inverted}\n innerHTML={superTitle}\n data-sheet=\"superTitle\"\n />\n )}\n {title && (\n <Callout\n renderAs=\"div\"\n size=\"big\"\n isInverted={inverted}\n innerHTML={title}\n data-sheet=\"title\"\n />\n )}\n {text && (\n <Copy\n size=\"medium\"\n isInverted={inverted}\n innerHTML={text}\n data-sheet=\"desc\"\n />\n )}\n <StyledActions\n mode=\"cover\"\n primary={\n action &&\n action({\n isInverted: inverted,\n isHighlighted: isHighlighted,\n })\n }\n />\n </View>\n );\n }\n);\n\nPriceTag.displayName = 'PriceTag';\n\nexport default PriceTag;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport PriceTag, { PriceTagProps } from 'components/blocks/PriceTag';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport { gridSettings } from 'components/base/Grid';\nimport { mq } from 'utils/styles';\n\nconst Tag = styled(PriceTag)`\n min-height: 500px;\n`;\n\nconst Items = styled.div`\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n\n margin-top: -${gridSettings.gutter}px;\n margin-left: -${gridSettings.gutter}px;\n\n & > * {\n flex: 1 1 25%;\n min-width: 286px;\n max-width: 320px;\n margin-top: ${gridSettings.gutter}px;\n margin-left: ${gridSettings.gutter}px;\n }\n\n @media ${mq.large} {\n & > * {\n max-width: 286px;\n }\n }\n`;\n\nconst PriceTable: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n /** Array of PriceTag card items */\n items: Array<Omit<PriceTagProps, 'isInverted'>>;\n /** Center text inside card items */\n isCentered?: boolean;\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, items, isCentered, bgMode }) => {\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n const priceTagCount = items?.length || 0;\n\n const { colors } = useLibTheme();\n\n const { sheetRefs: cardRefs } = useEqualSheetHeight<HTMLDivElement>({\n listLength: priceTagCount,\n identifiers: [\n '[data-sheet=\"superTitle\"]',\n '[data-sheet=\"title\"]',\n '[data-sheet=\"desc\"]',\n ],\n responsive: {\n small: 1,\n medium: 1,\n semilarge: 2,\n large: 3,\n xlarge: 3,\n },\n });\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode)}\n >\n <Wrapper addWhitespace>\n <Items>\n {items?.map((item, i) => (\n <Tag\n key={i}\n ref={cardRefs[i]}\n {...item}\n isInverted={isInverted}\n isCentered={isCentered}\n hasBackground={hasBg}\n />\n ))}\n </Items>\n </Wrapper>\n </Section>\n );\n};\n\nexport const PriceTableComponent = PriceTable;\nexport default withLibTheme(PriceTable);\n","import React, { FC } from 'react';\nimport styled from 'styled-components';\n\nimport { mq, spacings } from 'utils/styles';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Callout from 'components/typography/Callout';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Copy from 'components/typography/Copy';\n\nconst Content = styled.figure`\n margin: 0;\n padding: 0;\n\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n\n @media ${mq.medium} {\n max-width: 960px;\n margin: 0 auto;\n }\n`;\n\nconst Text = styled(Callout)`\n text-align: center;\n margin-left: 0;\n margin-right: 0;\n padding: 0;\n`;\n\nconst Source = styled(Copy)`\n text-align: center;\n margin-left: 0;\n margin-right: 0;\n padding: 0;\n`;\n\nconst Quote: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Text of the blockquote (richtext) */\n text?: string;\n\n /** Source of the quote e.g. author (richtext) */\n source?: string;\n\n /** URL for additional cite informations */\n citeUrl?: string;\n\n /** Section backgrounds */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, bgMode, text, source, citeUrl }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode === 'full'\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"normal\" addWhitespace>\n <Content>\n {text && (\n <Text\n size=\"small\"\n renderAs=\"blockquote\"\n isInverted={isInverted}\n innerHTML={text}\n {...{ cite: citeUrl }}\n />\n )}\n {source && (\n <Source\n isInverted={isInverted}\n renderAs=\"figcaption\"\n innerHTML={source}\n />\n )}\n </Content>\n </Wrapper>\n </Section>\n );\n};\n\nexport const QuoteComponent = Quote;\nexport default withLibTheme(Quote);\n","import React, { FC, useContext } from 'react';\nimport styled, { ThemeContext } from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Wrapper from 'components/base/Wrapper';\nimport { getColors } from 'utils/styles';\nimport { withLibTheme } from 'utils/LibThemeProvider';\n\nconst ImageWrapper = styled(Wrapper)<{ hAlign?: 'left' | 'center' | 'right' }>`\n display: flex;\n justify-content: ${({ hAlign }) => {\n switch (hAlign) {\n case 'center':\n return 'center';\n case 'right':\n return 'flex-end';\n default:\n return 'flex-start';\n }\n }};\n`;\n\nconst SimpleImage: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Image settings */\n image?: ImageProps;\n\n /** Horizontal alignment of the image */\n hAlign?: 'left' | 'center' | 'right';\n\n /** Allow reduced section spacing to next section */\n isStackable?: boolean;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, image, hAlign = 'left', bgMode, isStackable }) => {\n const theme = useContext(ThemeContext);\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n isStackable={isStackable}\n bgColor={\n isInverted\n ? getColors(theme).sectionBg.dark\n : hasBg\n ? getColors(theme).sectionBg.medium\n : getColors(theme).sectionBg.light\n }\n bgMode={mapToBgMode(bgMode)}\n >\n <ImageWrapper hAlign={hAlign}>\n {image && <Image {...image} />}\n </ImageWrapper>\n </Section>\n );\n};\n\nexport const SimpleImageComponent = SimpleImage;\nexport default withLibTheme(SimpleImage);\n","import React from 'react';\nimport styled from 'styled-components';\nimport {\n getColors as color,\n mq,\n spacings,\n getGlobals as global,\n} from 'utils/styles';\n\nimport Instagram from 'components/base/icons/socials/Instagram';\nimport Heading from 'components/typography/Heading';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Link, { LinkProps } from 'components/typography/Link';\nimport { gridSettings } from 'components/base/Grid';\nimport Image, { ImageProps } from 'components/blocks/Image';\n\nconst Cards = styled.ul`\n display: flex;\n flex-wrap: wrap;\n margin: 0;\n padding: 0;\n list-style: none;\n\n margin-top: -${spacings.spacer}px;\n margin-left: -${spacings.spacer}px;\n\n & > * {\n flex: 1 1 100%;\n margin-top: ${spacings.spacer}px;\n margin-left: ${spacings.spacer}px;\n }\n\n @media ${mq.medium} {\n & > * {\n flex: 1 1 calc(50% - ${gridSettings.gutter}px);\n max-width: calc(50% - ${gridSettings.gutter}px);\n }\n }\n\n @media ${mq.large} {\n & > * {\n flex: 1 1 calc(${(1 / 3) * 100}% - ${gridSettings.gutter}px);\n max-width: calc(${(1 / 3) * 100}% - ${gridSettings.gutter}px);\n }\n }\n`;\n\nconst Item = styled.li`\n display: block;\n position: relative;\n padding: 0;\n`;\n\nconst Card = styled(Link)<{ isInverted?: boolean }>`\n position: relative;\n display: block;\n text-decoration: none;\n color: '#fff';\n outline-color: ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n overflow: hidden;\n\n &:before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).secondary.inverted\n : color(theme).secondary.default};\n\n opacity: 0;\n pointer-events: none;\n z-index: 1;\n transition: opacity 0.2s ease-in-out;\n }\n\n &:hover {\n &:before {\n opacity: 1;\n pointer-events: all;\n }\n }\n\n &:focus {\n &:before {\n opacity: 1;\n pointer-events: all;\n }\n }\n`;\n\nconst StyledImage = styled(Image)`\n display: block;\n height: 100%;\n z-index: 0;\n`;\n\nconst TextContainer = styled.div`\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n transform: translate(-50%, -50%);\n text-align: center;\n\n padding: ${spacings.nudge * 2}px;\n\n opacity: 0;\n pointer-events: none;\n z-index: 2;\n transition: opacity 0.2s ease-in-out;\n\n & > * + * {\n margin-top: ${spacings.nudge * 2}px;\n }\n\n ${Card}:hover & {\n opacity: 1;\n pointer-events: all;\n }\n\n ${Card}:focus & {\n opacity: 1;\n pointer-events: all;\n }\n`;\n\nconst FollowUs = styled(Heading)`\n text-transform: uppercase;\n`;\n\nconst InstagramIcon = styled.div`\n position: absolute;\n left: 20px;\n bottom: 20px;\n color: ${({ theme }) => color(theme).text.inverted};\n z-index: 2;\n\n & > * {\n fill: #fff;\n\n ${Card}:hover & {\n color: ${({ theme }) => color(theme).text.inverted};\n }\n }\n`;\n\nconst SocialWall: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array with item settings */\n items?: Array<{\n link?: LinkProps;\n image?: Omit<ImageProps, 'coverSpace' | 'ratio'>;\n }>;\n\n /** Text for main social media follow call */\n followUs?: string;\n\n /** Text for e.g. social media hashtag */\n hashTag?: string;\n\n /** Function to inject custom social icon on bottom left corner */\n socialIcon?: React.ReactNode;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, items, hashTag, followUs, socialIcon, bgMode }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n addSeperation\n >\n <Wrapper addWhitespace>\n <Cards>\n {items?.map((item, i) => (\n <Item key={i}>\n <Card\n isExternal\n {...item.link}\n isInverted={isInverted}\n ariaLabel={item?.image?.alt}\n >\n {item.image && (\n <StyledImage\n {...item.image}\n coverSpace\n ratios={{\n small: { w: 1, h: 1 },\n }}\n isInverted={isInverted}\n />\n )}\n <TextContainer>\n <FollowUs size=\"super\" isInverted>\n {followUs\n ? followUs\n : 'Follow Us On Instagram'}\n </FollowUs>\n {hashTag && (\n <Heading size=\"heading-2\" isInverted>\n {hashTag}\n </Heading>\n )}\n </TextContainer>\n <InstagramIcon>\n {socialIcon || <Instagram />}\n </InstagramIcon>\n </Card>\n </Item>\n ))}\n </Cards>\n </Wrapper>\n </Section>\n );\n};\n\nexport const SocialWallComponent = SocialWall;\nexport default withLibTheme(SocialWall);\n","import React from 'react';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport TableBlock, { TableProps } from 'components/blocks/TableBlock';\nimport styled from 'styled-components';\nimport { spacings } from 'utils/styles';\n\nconst TableWrapper = styled(Wrapper)`\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n`;\n\nconst Table: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Table rows and columns */\n tableItems: TableProps[];\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, bgMode, tableItems }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full' || isInverted;\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <TableWrapper>\n {tableItems.map((item, i) => {\n return (\n <TableBlock\n key={i}\n {...item}\n isInverted={isInverted}\n hasBack={hasBg}\n />\n );\n })}\n </TableWrapper>\n </Section>\n );\n};\n\nexport const TableComponent = Table;\nexport default withLibTheme(Table);\n","import React, { FC, useRef, useState } from 'react';\nimport styled from 'styled-components';\n\nimport Grid from 'components/base/Grid';\nimport { HeadlineTag } from 'components/typography/Heading';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Copy from 'components/typography/Copy';\nimport Wrapper from 'components/base/Wrapper';\nimport Section, { BgMode } from 'components/base/Section';\nimport {\n mq,\n spacings,\n getGlobals as global,\n getFonts as font,\n} from 'utils/styles';\nimport Actions from 'components/blocks/Actions';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport IntroBlock from 'components/blocks/IntroBlock';\nimport VideoBlock, { VideoAspectRatios } from 'components/blocks/VideoBlock';\nimport { isValidArray } from 'utils/arrays';\nimport { useObserverSupport } from 'utils/useObserverSupport';\nimport useUpdateEffect from 'utils/useUpdateEffect';\n\nconst Figure = styled.figure`\n display: flex;\n flex-direction: column;\n position: relative;\n height: 100%;\n width: 100%;\n margin: 0;\n padding: 0;\n\n & > * + * {\n margin-top: ${spacings.nudge}px;\n }\n\n @media ${mq.semilarge} {\n & > * + * {\n margin-top: ${spacings.nudge * 2}px;\n }\n }\n`;\n\nconst StyledImage = styled(Image)`\n position: relative;\n width: 100%;\n height: 100%;\n\n @media ${mq.semilarge} {\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n overflow: hidden;\n }\n`;\n\nconst Video = styled(VideoBlock)<{\n ratios?: VideoAspectRatios;\n isVisible?: boolean;\n}>`\n display: ${({ isVisible }) => (isVisible ? 'block' : 'none')};\n width: 100%;\n height: 100%;\n`;\n\nconst Description = styled(Copy)<{\n isInverted?: boolean;\n isSplitted?: boolean;\n isMirrored?: boolean;\n}>`\n display: block;\n\n @media ${mq.semilarge} {\n padding-left: ${spacings.nudge * 2}px;\n padding-right: ${spacings.nudge * 2}px;\n margin-left: ${({ isMirrored }) => isMirrored && 'auto'};\n margin-right: ${({ isMirrored }) => !isMirrored && 'auto'};\n max-width: ${({ isSplitted }) => isSplitted && '81.5%'};\n\n color: ${({ theme, isInverted, isSplitted }) =>\n isInverted && !isSplitted\n ? font(theme).copy.small.colorInverted\n : font(theme).copy.small.color};\n }\n\n @media ${mq.xlarge} {\n max-width: ${({ isSplitted }) => isSplitted && '69.5%'};\n }\n`;\n\nconst StyledActions = styled(Actions)`\n &:not(:first-child) {\n margin-top: ${spacings.spacer}px;\n }\n`;\n\nconst Teaser: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Switch text and image columns */\n isMirrored?: boolean;\n\n /** Superior title that stands above main title */\n superTitle?: string;\n\n /** Superior title HTML tag type (h3, h4 ...) */\n superTitleAs?: HeadlineTag;\n\n /** Main title text */\n title?: string;\n\n /** Main title HTML tag type (h2, h3, h4...) */\n titleAs?: HeadlineTag;\n\n /** Images for different screen sizes */\n image?: Omit<ImageProps, 'coverSpace'>;\n\n /**\n * Use video instead of an image. Until video is loaded images defined in the image prop are used.\n * Multiple video urls can be used to loaded different file formats\n */\n video?: {\n urls: string[];\n aspectRatios?: VideoAspectRatios;\n };\n\n /** Image or video description text (richtext) */\n description?: string;\n\n /** Main richtext */\n text?: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted' | 'splitted' | 'inverted-splitted';\n\n /** Function to inject custom primary button */\n primaryAction?: (isInverted?: boolean) => React.ReactNode;\n\n /** Function to inject custom secondary button */\n secondaryAction?: (isInverted?: boolean) => React.ReactNode;\n}> = ({\n anchorId,\n isMirrored = false,\n bgMode,\n superTitle,\n superTitleAs,\n title,\n titleAs,\n image,\n video,\n description,\n text,\n primaryAction,\n secondaryAction,\n}) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted' || bgMode === 'inverted-splitted';\n const isSplitted = bgMode === 'splitted' || bgMode === 'inverted-splitted';\n const hasVideo = isValidArray(video?.urls, false);\n\n const viewRef = useRef<HTMLDivElement | null>(null);\n const [isLoaded, setLoaded] = useState(!image?.small || false);\n const [isVideoActive, setVideoActive] = useState<boolean>(false);\n const isObserverSupported = useObserverSupport();\n\n useUpdateEffect(() => {\n if (!viewRef.current || !hasVideo) return;\n if (!isObserverSupported) {\n setVideoActive(true);\n return;\n }\n\n const observer = new IntersectionObserver(\n (entries, observer) => {\n const [entry] = entries;\n\n if (entry.isIntersecting) {\n observer.unobserve(entry.target);\n setVideoActive(true);\n }\n },\n {\n rootMargin: '200px 0px 200px 0px',\n }\n );\n\n const viewEl = viewRef.current;\n observer.observe(viewEl);\n\n return () => {\n if (viewEl) observer.unobserve(viewEl);\n };\n }, [isObserverSupported]);\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToTeaserBgMode(bgMode, false, isMirrored)}\n >\n <Wrapper addWhitespace clampWidth=\"normal\">\n <Grid.Row valign=\"center\">\n <Grid.Col\n semilarge={{\n span: 6 / 12,\n move: (isMirrored ? 6 : 0) / 12,\n }}\n xlarge={{\n span: 7 / 12,\n move: (isMirrored ? 5 : 0) / 12,\n }}\n >\n {(image?.small || hasVideo) && (\n <Figure ref={viewRef}>\n {image?.small && (!video || !isLoaded) && (\n <StyledImage\n {...image}\n isInverted={isInverted}\n coverSpace\n />\n )}\n {hasVideo && (\n <Video\n urls={\n isVideoActive\n ? video?.urls\n : undefined\n }\n muted\n autoPlay\n loop\n onCanPlayThrough={() => setLoaded(true)}\n ratios={video?.aspectRatios}\n isVisible={isLoaded}\n isInverted={isInverted}\n />\n )}\n {description && (\n <Description\n size=\"small\"\n renderAs=\"figcaption\"\n isInverted={isInverted}\n isSplitted={isSplitted}\n isMirrored={isMirrored}\n innerHTML={description}\n />\n )}\n </Figure>\n )}\n </Grid.Col>\n\n <Grid.Col\n semilarge={{\n span: 6 / 12,\n move: (isMirrored ? -6 : 0) / 12,\n }}\n xlarge={{\n span: 5 / 12,\n move: (isMirrored ? -7 : 0) / 12,\n }}\n >\n <IntroBlock\n titleHyphens\n title={title}\n titleAs={titleAs}\n superTitle={superTitle}\n superTitleAs={superTitleAs}\n text={text}\n colorMode={isInverted ? 'inverted' : 'default'}\n />\n {(primaryAction || secondaryAction) && (\n <StyledActions\n primary={\n primaryAction && primaryAction(isInverted)\n }\n secondary={\n secondaryAction &&\n secondaryAction(isInverted)\n }\n />\n )}\n </Grid.Col>\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const mapToTeaserBgMode = (\n mode?: 'full' | 'splitted' | 'inverted' | 'inverted-splitted',\n preventSplit = false,\n isMirrored = false\n): BgMode | undefined => {\n switch (mode) {\n case 'full':\n return 'full';\n case 'inverted':\n return 'inverted';\n case 'splitted': {\n if (!preventSplit)\n return isMirrored ? 'larger-left' : 'larger-right';\n else return undefined;\n }\n case 'inverted-splitted': {\n if (!preventSplit)\n return isMirrored ? 'larger-left' : 'larger-right';\n else return undefined;\n }\n\n default:\n return undefined;\n }\n};\n\nexport const TeaserComponent = Teaser;\nexport default withLibTheme(Teaser);\n","import React, { FC, useRef, useState } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Grid, { getGridWidth } from 'components/base/Grid';\nimport { HeadlineTag } from 'components/typography/Heading';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Wrapper, { wrapperWhitespace } from 'components/base/Wrapper';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport { mq, spacings, withRange, getGlobals as global } from 'utils/styles';\nimport Actions from 'components/blocks/Actions';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport IntroBlock from 'components/blocks/IntroBlock';\nimport VideoBlock, { VideoAspectRatios } from 'components/blocks/VideoBlock';\nimport { isValidArray } from 'utils/arrays';\nimport { useObserverSupport } from 'utils/useObserverSupport';\nimport useUpdateEffect from 'utils/useUpdateEffect';\n\n/**\n * calculate single grid col from relative content wrapper\n * (grid width = wrapper width without paddings)\n * */\nconst getGridColOfContent = () => {\n return css`\n ${getGridWidth({\n cols: 1,\n gridWidth: `${spacings.wrapper - wrapperWhitespace * 2}px `,\n })}\n `;\n};\n\nconst WideVideo = styled(VideoBlock)<{\n isMirrored?: boolean;\n isVisible?: boolean;\n}>`\n display: ${({ isVisible }) => (isVisible ? 'block' : 'none')};\n position: relative;\n top: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n\n min-height: 400px;\n object-fit: cover;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n\n @media ${mq.semilarge} {\n position: absolute;\n /** \n calculate width of 6 grid cols (grid width = viewport width without wrapper paddings)\n and add left or right wrapper padding afterwards\n */\n width: calc(\n ${getGridWidth({\n cols: 6,\n gridWidth: `100% - ${wrapperWhitespace * 2}px `,\n })} + ${wrapperWhitespace}px\n );\n left: ${({ isMirrored }) => (isMirrored ? 'auto' : '0')};\n right: ${({ isMirrored }) => (isMirrored ? '0' : 'auto')};\n }\n\n @media ${mq.xlarge} {\n /** \n calculate width of 1 grid cols\n and add left or right wrapper padding afterwards. Then add this to 50% of current\n viewport width.\n */\n width: calc(50% + ${getGridColOfContent()} + ${wrapperWhitespace}px);\n }\n\n @media ${mq.xxlarge} {\n /** \n calculate width of 1 grid cols\n and add left or right wrapper padding afterwards. Then add this to 50% of large wrapper width.\n */\n width: calc(\n ${spacings.wrapperLarge / 2}px + ${getGridColOfContent()} +\n ${wrapperWhitespace}px\n );\n\n left: ${({ isMirrored }) => (isMirrored ? 'auto' : '50%')};\n right: ${({ isMirrored }) => (isMirrored ? '50%' : 'auto')};\n\n ${({ isMirrored }) =>\n css`\n transform: translateX(\n calc(\n ${isMirrored ? '100% - ' : '-100% + '}\n (${getGridColOfContent()} + ${wrapperWhitespace}px)\n )\n );\n `};\n }\n`;\n\nconst WideImage = styled(Image)<{ isMirrored?: boolean }>`\n position: relative;\n top: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n\n height: 100%;\n min-height: 400px;\n\n img {\n height: 100%;\n }\n\n @media ${mq.semilarge} {\n position: absolute;\n /** \n calculate width of 6 grid cols (grid width = viewport width without wrapper paddings)\n and add left or right wrapper padding afterwards\n */\n width: calc(\n ${getGridWidth({\n cols: 6,\n gridWidth: `100% - ${wrapperWhitespace * 2}px `,\n })} + ${wrapperWhitespace}px\n );\n left: ${({ isMirrored }) => (isMirrored ? 'auto' : '0')};\n right: ${({ isMirrored }) => (isMirrored ? '0' : 'auto')};\n }\n\n @media ${mq.xlarge} {\n /** \n calculate width of 1 grid cols\n and add left or right wrapper padding afterwards. Then add this to 50% of current\n viewport width.\n */\n width: calc(50% + ${getGridColOfContent()} + ${wrapperWhitespace}px);\n }\n\n @media ${mq.xxlarge} {\n /** \n calculate width of 1 grid cols\n and add left or right wrapper padding afterwards. Then add this to 50% of large wrapper width.\n */\n width: calc(\n ${spacings.wrapperLarge / 2}px + ${getGridColOfContent()} +\n ${wrapperWhitespace}px\n );\n\n left: ${({ isMirrored }) => (isMirrored ? 'auto' : '50%')};\n right: ${({ isMirrored }) => (isMirrored ? '50%' : 'auto')};\n\n ${({ isMirrored }) =>\n css`\n transform: translateX(\n calc(\n ${isMirrored ? '100% - ' : '-100% + '}\n (${getGridColOfContent()} + ${wrapperWhitespace}px)\n )\n );\n `};\n }\n`;\n\nconst Content = styled.div`\n ${({ theme }) =>\n withRange(\n global(theme).sections.seperation.padding.default,\n 'padding-bottom'\n )}\n\n @media ${mq.semilarge} {\n ${({ theme }) =>\n withRange(\n global(theme).sections.seperation.padding.default,\n 'padding-top'\n )}\n }\n`;\n\nconst StyledActions = styled(Actions)`\n &:not(:first-child) {\n margin-top: ${spacings.spacer}px;\n }\n`;\n\nconst TeaserWide: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Switch text and image columns */\n isMirrored?: boolean;\n\n /** Superior title that stands above main title */\n superTitle?: string;\n\n /** Superior title HTML tag type (h3, h4 ...) */\n superTitleAs?: HeadlineTag;\n\n /** Main title text */\n title?: string;\n\n /** Main title HTML tag type (h2, h3, h4...) */\n titleAs?: HeadlineTag;\n\n /** Images for different screen sizes */\n image?: Omit<ImageProps, 'coverSpace'>;\n\n /**\n * Use video instead of an image. Until video is loaded images defined in the image prop are used.\n * Multiple video urls can be used to loaded different file formats\n */\n video?: {\n urls: string[];\n aspectRatios?: VideoAspectRatios;\n };\n\n /** Main richtext */\n text?: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom primary button */\n primaryAction?: (isInverted?: boolean) => React.ReactNode;\n\n /** Function to inject custom secondary button */\n secondaryAction?: (isInverted?: boolean) => React.ReactNode;\n}> = ({\n anchorId,\n isMirrored = false,\n superTitle,\n superTitleAs,\n title,\n titleAs,\n image,\n video,\n text,\n primaryAction,\n secondaryAction,\n bgMode,\n}) => {\n const { colors } = useLibTheme();\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n const hasVideo = isValidArray(video?.urls, false);\n\n const viewRef = useRef<HTMLDivElement | null>(null);\n const [isLoaded, setLoaded] = useState(!image?.small || false);\n const [isVideoActive, setVideoActive] = useState<boolean>(false);\n const isObserverSupported = useObserverSupport();\n\n useUpdateEffect(() => {\n if (!viewRef.current || !hasVideo) return;\n if (!isObserverSupported) {\n setVideoActive(true);\n return;\n }\n\n const observer = new IntersectionObserver(\n (entries, observer) => {\n const [entry] = entries;\n\n if (entry.isIntersecting) {\n observer.unobserve(entry.target);\n setVideoActive(true);\n }\n },\n {\n rootMargin: '200px 0px 200px 0px',\n }\n );\n\n const viewEl = viewRef.current;\n observer.observe(viewEl);\n\n return () => {\n if (viewEl) observer.unobserve(viewEl);\n };\n }, [isObserverSupported]);\n\n return (\n <Section\n ref={viewRef}\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n {image?.small && (!video || !isLoaded) && (\n <WideImage\n coverSpace\n {...image}\n isMirrored={isMirrored}\n isInverted={isInverted}\n />\n )}\n {hasVideo && (\n <WideVideo\n urls={isVideoActive ? video?.urls : undefined}\n muted\n autoPlay\n loop\n onCanPlayThrough={() => setLoaded(true)}\n isVisible={isLoaded}\n isInverted={isInverted}\n isMirrored={isMirrored}\n ratios={video?.aspectRatios}\n />\n )}\n <Wrapper clampWidth=\"normal\" addWhitespace>\n <Grid.Row valign=\"center\">\n <Grid.Col\n semilarge={{\n span: 6 / 12,\n move: (isMirrored ? 6 : 0) / 12,\n }}\n xlarge={{\n span: 7 / 12,\n move: (isMirrored ? 5 : 0) / 12,\n }}\n ></Grid.Col>\n <Grid.Col\n semilarge={{\n span: 6 / 12,\n move: (isMirrored ? -6 : 0) / 12,\n }}\n xlarge={{\n span: 5 / 12,\n move: (isMirrored ? -7 : 0) / 12,\n }}\n >\n <Content>\n <IntroBlock\n titleHyphens\n title={title}\n titleAs={titleAs}\n superTitle={superTitle}\n superTitleAs={superTitleAs}\n text={text}\n colorMode={isInverted ? 'inverted' : 'default'}\n />\n {(primaryAction || secondaryAction) && (\n <StyledActions\n primary={\n primaryAction &&\n primaryAction(isInverted)\n }\n secondary={\n secondaryAction &&\n secondaryAction(isInverted)\n }\n />\n )}\n </Content>\n </Grid.Col>\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const TeaserWideComponent = TeaserWide;\nexport default withLibTheme(TeaserWide);\n","import Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Copy from 'components/typography/Copy';\nimport Heading from 'components/typography/Heading';\nimport React, {\n createRef,\n MutableRefObject,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport styled, { ThemeContext } from 'styled-components';\nimport { getColors as color, mq, spacings } from 'utils/styles';\nimport { useObserverSupport } from 'utils/useObserverSupport';\nimport { withLibTheme } from 'utils/LibThemeProvider';\n\nconst TimelineBlock = styled.div<{\n isSwitched?: boolean;\n isActive?: boolean;\n isInverted?: boolean;\n}>`\n position: relative;\n\n @media ${mq.large} {\n text-align: ${({ isSwitched }) => (isSwitched ? 'left' : 'right')};\n }\n\n &:after {\n content: '';\n width: 10px;\n height: 10px;\n\n box-sizing: content-box;\n border: 2px solid\n ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.dark};\n border-radius: 50%;\n\n background: ${({ theme, isActive, isInverted }) =>\n isActive\n ? isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.dark\n : isInverted\n ? color(theme).elementBg.dark\n : color(theme).elementBg.light};\n\n position: absolute;\n top: 16px;\n left: 0px;\n\n transition: all 0.2s ease-in-out;\n\n @media ${mq.large} {\n left: ${({ isSwitched }) => (!isSwitched ? '50%' : 'auto')};\n right: ${({ isSwitched }) => isSwitched && '50%'};\n transform: translateX(\n ${({ isSwitched }) => (isSwitched ? '50%' : '-50%')}\n );\n }\n }\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n width: 2px;\n min-height: 160px;\n height: 100%;\n background: ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.dark};\n left: 5px;\n\n @media ${mq.large} {\n left: 50%;\n transform: translateX(-50%);\n }\n }\n\n &:first-child {\n padding-top: 0;\n\n &:before {\n top: 16px;\n }\n }\n`;\n\nconst TimelineText = styled.div<{\n isSwitched?: boolean;\n}>`\n position: relative;\n padding-left: ${spacings.nudge * 3 + 2}px;\n padding-bottom: ${spacings.spacer}px;\n\n @media ${mq.large} {\n max-width: 50%;\n\n margin-left: ${({ isSwitched }) => isSwitched && '50%'};\n margin-right: ${({ isSwitched }) => !isSwitched && '50%'};\n\n padding: ${({ isSwitched }) =>\n isSwitched\n ? `${spacings.spacer}px 0 ${spacings.spacer * 1.75}px ${\n spacings.spacer\n }px`\n : `${spacings.spacer}px ${spacings.spacer}px ${\n spacings.spacer * 1.75\n }px 0`};\n }\n\n &:first-child {\n padding-top: 0;\n }\n\n & > * + * {\n margin-top: ${spacings.nudge * 2}px;\n }\n`;\n\nconst ItemTitle = styled(Heading)``;\n\nconst ItemTextBlock = styled(Copy)``;\n\nconst Timeline: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n items?: { label?: string; title?: string; text?: string }[];\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, bgMode, items }) => {\n const theme = useContext(ThemeContext);\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const [targetRefs, setTargetRefs] = useState<\n MutableRefObject<HTMLDivElement>[]\n >([]);\n const observerSupported = useObserverSupport();\n const observerRef = useRef<IntersectionObserver | null>(null);\n\n const [activeItem, setActiveItem] = useState<number>(0);\n\n useEffect(() => {\n if (observerSupported && targetRefs && targetRefs.length > 0) {\n const options = {\n rootMargin: '-50% 0% -50% 0%',\n threshold: 0,\n };\n\n observerRef.current = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n const index = targetRefs?.findIndex(\n (t) => t.current === entry.target\n );\n setActiveItem(index);\n }\n });\n }, options);\n\n for (let i = 0; i < targetRefs.length; i++) {\n observerRef.current.observe(targetRefs[i].current);\n }\n }\n\n return () => {\n observerRef.current?.disconnect();\n };\n }, [targetRefs, observerSupported]);\n\n useEffect(() => {\n setTargetRefs(() =>\n Array(items?.length)\n .fill(null)\n .map((_, i) => targetRefs[i] || createRef())\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items?.length]);\n\n return (\n <Section\n anchorId={anchorId}\n bgColor={\n isInverted\n ? color(theme).sectionBg.dark\n : hasBg\n ? color(theme).sectionBg.medium\n : 'transparent'\n }\n bgMode={mapToBgMode(bgMode, true)}\n addSeperation\n >\n <Wrapper addWhitespace>\n {items &&\n items.map((item, i) => {\n return (\n <TimelineBlock\n ref={targetRefs[i]}\n isActive={activeItem === i}\n isSwitched={i % 2 === 0}\n isInverted={isInverted}\n key={i}\n >\n <TimelineText isSwitched={i % 2 === 0}>\n <ItemTitle\n size=\"heading-2\"\n textColor={\n isInverted\n ? color(theme).text.inverted\n : color(theme).text.default\n }\n >\n {item.label}\n </ItemTitle>\n\n <ItemTextBlock\n type=\"copy-b\"\n size=\"big\"\n isInverted={isInverted}\n >\n {item.title}\n </ItemTextBlock>\n <ItemTextBlock\n innerHTML={item.text}\n isInverted={isInverted}\n />\n </TimelineText>\n </TimelineBlock>\n );\n })}\n </Wrapper>\n </Section>\n );\n};\n\nexport const TimelineComponent = Timeline;\nexport default withLibTheme(Timeline);\n","import React from 'react';\nimport Section, { mapToBgMode } from 'components/base/Section';\n\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Wrapper from 'components/base/Wrapper';\nimport { ImageProps } from 'components/blocks/Image';\n\nimport VideoCard from 'components/blocks/VideoCard';\n\nconst Video: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n bgImage: Omit<ImageProps, 'ratios' | 'coverSpace'>;\n embedId: string;\n\n consentText?: string;\n consentAction?: (props: {\n handleClick?: () => void;\n consentProps: Record<string, string>;\n }) => React.ReactNode;\n\n playIcon?: React.ReactNode;\n bgMode?: 'full' | 'inverted' | 'splitted';\n}> = ({\n anchorId,\n bgMode,\n bgImage,\n embedId,\n playIcon,\n consentText,\n consentAction,\n}) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n\n return (\n <Section\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode)}\n addSeperation\n >\n <Wrapper addWhitespace>\n <VideoCard\n bgImage={bgImage}\n embedId={embedId}\n playIcon={playIcon}\n consentText={consentText}\n consentAction={consentAction}\n />\n </Wrapper>\n </Section>\n );\n};\n\nexport const VideoComponent = Video;\nexport default withLibTheme(Video);\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\n\nimport { getColors as color, getGlobals as global, mq } from 'utils/styles';\nimport Play from 'components/base/icons/Play';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Wrapper from 'components/base/Wrapper';\nimport VideoBlock from 'components/blocks/VideoBlock';\nimport { ImageProps } from 'components/blocks/Image';\nimport { isValidArray } from 'utils/arrays';\n\nconst VideoContainer = styled.div<{ isInverted?: boolean }>`\n position: relative;\n cursor: pointer;\n`;\n\nconst Overlay = styled.div<{ bgImage?: ImageProps; isInverted?: boolean }>`\n position: relative;\n padding-top: ${`calc(100% / (16 / 9))`};\n background: ${({ theme, isInverted }) =>\n isInverted\n ? global(theme).sections.imagePlaceholderBg.inverted\n : global(theme).sections.imagePlaceholderBg.default};\n\n background-image: ${({ bgImage }) =>\n bgImage?.small && `url(\"${bgImage.small}\")`};\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n overflow: hidden;\n\n @media ${mq.medium} {\n text-align: left;\n\n background-image: ${({ bgImage }) =>\n bgImage?.medium && `url(\"${bgImage.medium}\")`};\n }\n\n @media ${mq.semilarge} {\n background-image: ${({ bgImage }) =>\n bgImage?.semilarge && `url(\"${bgImage.semilarge}\")`};\n }\n\n @media ${mq.large} {\n background-image: ${({ bgImage }) =>\n bgImage?.large && `url(\"${bgImage.large}\")`};\n }\n\n @media ${mq.xlarge} {\n background-image: ${({ bgImage }) =>\n bgImage?.xlarge && `url(\"${bgImage.xlarge}\")`};\n }\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n pointer-events: none;\n\n background: linear-gradient(\n 358.19deg,\n rgba(29, 34, 35, 0.52) 12.37%,\n rgba(29, 34, 35, 0) 59.02%\n );\n }\n`;\n\nconst VideoControls = styled.button`\n display: block;\n border: none;\n background: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: ${({ theme }) => color(theme).elementBg.light};\n z-index: 1;\n padding: 0;\n\n cursor: pointer;\n\n & > * {\n opacity: 0.8;\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n height: 80px;\n width: 80px;\n\n color: ${({ theme }) => color(theme).elementBg.dark};\n }\n\n ${Overlay}:hover > & > * {\n transform: scale(1.05);\n opacity: 1;\n }\n\n ${Overlay}:active > & > * {\n transform: scale(0.95);\n opacity: 1;\n }\n\n &:focus {\n outline: 2px solid ${({ theme }) => color(theme).primary.default};\n border-radius: 50%;\n opacity: 1;\n\n & > * {\n color: ${({ theme }) => color(theme).primary.default};\n }\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n box-shadow: none;\n }\n`;\n\nconst Video = styled(VideoBlock)<{ isVisible?: boolean }>`\n opacity: ${({ isVisible }) => (isVisible ? 1 : 0)};\n pointer-events: ${({ isVisible }) => (isVisible ? 'all' : 'none')};\n`;\n\nconst RawVideo: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** URL to video sources */\n videoUrls?: string[];\n\n /** Placeholder image */\n placeholderImg?: Omit<ImageProps, 'ratios' | 'coverSpace'>;\n\n /** Enable autoplay without user interaction */\n autoplay?: boolean;\n\n /** Playing video in loop */\n loop?: boolean;\n\n /** Section background */\n bgMode?: 'full' | 'inverted' | 'splitted';\n\n /** Video play icon */\n playIcon?: React.ReactNode;\n}> = ({\n anchorId,\n bgMode,\n videoUrls,\n placeholderImg,\n playIcon,\n autoplay,\n loop,\n}) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const [isStarted, setIsStarted] = useState<boolean>(autoplay || false);\n\n return (\n <Section\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode)}\n addSeperation\n >\n <Wrapper addWhitespace>\n <VideoContainer\n onClick={() => {\n if (isValidArray(videoUrls, false)) {\n setIsStarted(true);\n }\n }}\n >\n {isStarted && (\n <Video\n isVisible={isStarted || !placeholderImg?.small}\n controls={!autoplay}\n autoPlay\n loop={loop}\n muted={autoplay}\n ratios={{ small: 16 / 9 }}\n urls={videoUrls}\n isInverted={isInverted}\n />\n )}\n {!isStarted && (\n <Overlay\n bgImage={placeholderImg}\n isInverted={isInverted}\n >\n <VideoControls>\n {playIcon || <Play iconColor=\"#000\" />}\n </VideoControls>\n </Overlay>\n )}\n </VideoContainer>\n </Wrapper>\n </Section>\n );\n};\n\nexport const RawVideoComponent = RawVideo;\nexport default withLibTheme(RawVideo);\n"],"names":["AccordionContainer","styled","div","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","spacings","nudge","View","details","templateObject_2","AccordionHead","summary","templateObject_3","_a","isInverted","hasBg","theme","color","getColors","elementBg","light","medium","mq","lightHover","mediumHover","Column","Copy","templateObject_4","AccordionText","templateObject_5","spacer","semilarge","gridSettings","gutter","AccordionBlock","label","text","aside","isSelected","onClick","itemIcon","className","colors","useLibTheme","React","createElement","open","onToggle","renderAs","size","type","Minus","iconColor","default","Plus","hasAside","innerHTML","Accordion$1","withLibTheme","anchorId","items","bgMode","_b","useState","currentItems","setCurrentItems","Section","addSeperation","bgColor","sectionBg","dark","mapToBgMode","generateFAQ","Wrapper","addWhitespace","Grid","Row","Col","map","i","indexOf","key","concat","prev","copy","__spreadArray","index","push","splice","primary","inverted","global","sections","edgeRadius","invertedHover","hover","Icon","MainLabel","Content","Title","ViewLink","Link","templateObject_6","Alert","title","date","description","link","customIcon","formattedDate","StatusFormatter","getTime","getFormattedDate","Info","textColor","__assign","ariaLabel","href","undefined","List","ul","ListItem","li","large","itemsPerRow","AlertList$1","alertCount","length","alertRefs","useEqualSheetHeight","listLength","identifiers","responsive","small","xlarge","item","ref","StyledTitle","ContentText","StyledActions","Actions","Article$1","titleAs","_c","titleSize","superTitle","superTitleAs","intro","asideText","halfAside","primaryAction","secondaryAction","hasContent","clampWidth","colorMode","valign","span","secondary","ContactView","Avatar","img","getGlobals","imagePlaceholderBg","Description","StyledIntro","IntroBlock","hasDecorator","StyledContactBox","avatar","src","alt","getGridWidth","cols","NewsletterWrapper","templateObject_7","Badge","templateObject_8","CallToAction$1","contact","badge","hasNewsletter","newsFormMain","useContext","ThemeContext","isCentered","SolidView","cardColor","hasLink","css","ImageView","imageTextGradient","StyledImage","Image","hasIcon","TextContainer","templateObject_9","Footer","SubLabel","templateObject_11","templateObject_12","CardLink","templateObject_13","Card","subLabel","image","decorator","CardView","defaultCardColor","coverSpace","ratios","w","h","templateObject_14","CardItem","templateObject_15","isEqual","threeCols","CardList$1","maxThreeCols","clamp","num","min","max","Math","Images","BackgroundImg","ForegroundContainer","hasTransition","hasAnim","initalValue","ForegroundImg","ForegroundOverlay","ImageLabel","ForegroundLabel","BackgroundLabel","ControlContainer","templateObject_10","Control","ComparisonSlider$1","initialValue","foregroundImg","backgroundImg","foregroundLabel","backgroundLabel","overlayColor","labelColor","dragControl","enableControlAnim","isIE","useIE","_d","slideValue","setSlideValue","_e","isHolding","setIsHolding","_f","isDragging","setIsDragging","_g","interacted","setInteracted","_h","sideOffset","setSideOffset","controlRef","useRef","useEffect","current","offsetWidth","handleInitalLoad","observer","IntersectionObserver","entries","isIntersecting","unobserve","target","rootMargin","threshold","observe","window","removeEventListener","document","readyState","addEventListener","setCurrentPos","clientX","relativeClientX","getBoundingClientRect","x","width","percentage","ev","currentTarget","onMouseMove","onMouseDown","onMouseUp","onMouseLeave","onTouchMove","touches","onTouchStart","onTouchEnd","style","left","ArrowLeftRight","clickable","IntroContainer","clampTitle","wrapper","ExternalIconHolder","withRange","PromotionCard","forwardRef","externalLinkIcon","icon","linkObj","isExternal","externalIconString","ReactDOMServer","renderToString","External","isMain","CrossPromotion$1","main","isMirrored","card","ImageContainer","SubTitle","Text","Fact","subTitle","showPlaceholder","FactFill","FactGrid$1","columns","facts","factCount","cardRefs","fact","FactsContainer","FactItem","hasBack","hasText","ContentBlock","FactList$1","TitleLink","copyStyle","font","getFonts","big","colorInverted","ArticleContent","Action","Feature","action","features","featureCount","isHalf","useMemo","halign","feature","Gallery$1","images","isFull","genHeightStyles","mainIdent","genIdent","pageFlow","hasMain","mainTopIdent","hasTop","mainBottomIdent","hasBottom","fullIdent","navMainHeight","getNavHeight","getFullNavbarHeights","navMainTopHeight","navMainBottomHeight","navFullHeight","mapToSelector","idents","id","join","refHeight","StyledPoster","split","HeaderSection","HeaderSectionSmall","videoUrl","focus","kenBurnsZoom","kenBurnsZoomPoint","kenBurnsInterval","onImageChange","children","HeaderVideo","placeholderImg","HeaderKenBurns","zoom","zoomPoint","interval","HeaderPoster","bgImage","wrapperLarge","Overlay","textOnImage","bgValue","ContentMobile","Heading","Header$1","focusPoint","customImgOverlay","globals","overlay","Fragment","StyledSection","ItemContainer","Items","isVisible","Item","ItemLink","ShowMore","itemCount","IconList$1","toggle","showLessText","showMoreText","enableToggle","showMore","setShowMore","handleToggleClick","ratio","isToggled","clickHandler","additionalProps","Pointer","as","Label","IndexLink","LinkLabel","IconWrapper","IndexList$1","scrollToOffset","setTargetPos","useScrollTo","useMediaQueries","topOffset","setTopOffset","handleLinkClick","preventDefault","getAttribute","getElementById","top","scrollY","url","URL","location","hash","history","pushState","header","querySelector","navbarIdent","getNavbarState","navbarHeights","ArrowDown","abstract","isStackable","clampAbstract","clampText","MapSection","MapContainer","gridWidth","wrapperWhitespace","xxlarge","CardWrapper","CardContainer","seperation","padding","InfoCardView","CardHeader","ContactList","ContactListLink","AddressContainer","CompanyInfo","companyName","address","street","postalCode","city","country","Desc","LocationInfoCard","addressIcon","addressIconContent","LocationPin","phoneIconContent","telephone","Phone","mailIconContent","email","Mail","Controls","FylToCtrlContainer","button","Map$1","provider","attribution","center","flyToZoom","initialLocation","locations","allMarkersOnInit","fitBoundsPadding","flyToControl","controlNext","controlPrev","activeLocationId","setActiveLocationId","isDirty","setIsDirty","activeLocation","find","l","defaultMarker","anchor","sizeActive","anchorActive","getSVGData","getSVGDataImg","useLeafletMap","activeMarkerId","markers","position","isInteractive","onMarkerClick","isLoaded","setMapContainer","setContainer","flyToActive","showAllMarkers","goToNext","currentIndex","findIndex","newIndex","goToPrevious","generateLocalBusiness","stopPropagation","move","isValidArray","isActive","name","isDisabled","Icons","ArrowRightGhost","TitleIcon","NavBlock","customTitleIcon","NavList$1","NumberContainer","Number","Callout","stringLength","IconBlock","number","height","ContentContainer","NumberList$1","section","Parallax","hAlign","contentWidth","Container","figure","verticallyCentered","imageTextGradientCentered","Intro","Poster$1","horizontallyCentered","maxTitleLines","maxTextLines","ItemList","ItemBlock","ListHead","Price","PriceBlock","price","PriceList$1","isHighlighted","PriceTag","hasBackground","mode","Tag","PriceTable$1","priceTagCount","Source","Quote$1","source","citeUrl","cite","ImageWrapper","SimpleImage$1","Cards","FollowUs","InstagramIcon","SocialWall$1","hashTag","followUs","socialIcon","Instagram","TableWrapper","Table$1","tableItems","TableBlock","Figure","Video","VideoBlock","isSplitted","mapToTeaserBgMode","preventSplit","Teaser$1","video","hasVideo","urls","viewRef","setLoaded","isVideoActive","setVideoActive","isObserverSupported","useObserverSupport","useUpdateEffect","entry","viewEl","muted","autoPlay","loop","onCanPlayThrough","aspectRatios","titleHyphens","getGridColOfContent","WideVideo","WideImage","TeaserWide$1","TimelineBlock","isSwitched","TimelineText","ItemTitle","ItemTextBlock","Timeline$1","targetRefs","setTargetRefs","observerSupported","observerRef","activeItem","setActiveItem","forEach","t","disconnect","Array","fill","_","createRef","embedId","playIcon","consentText","consentAction","VideoCard","VideoContainer","VideoControls","RawVideo$1","videoUrls","autoplay","isStarted","setIsStarted","controls","Play","moveRatio","direction","setIsLoaded","yTransform","setYTransform","cRef","setContainerRef","parallaxRef","isNaN","prevEl","previousElementSibling","bgIdent","dataset","stackIdent","setAttribute","handleScroll","containerPos","transform"],"mappings":"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"}
|