@orangesk/orange-design-system 2.0.0-beta.2 → 2.0.0-beta.21
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/README.md +346 -19
- package/build/components/Accordion/style.css +2 -0
- package/build/components/Accordion/style.css.map +1 -0
- package/build/components/Alert/style.css +2 -0
- package/build/components/Alert/style.css.map +1 -0
- package/build/components/AnchorNavigation/style.css +1 -1
- package/build/components/AnchorNavigation/style.css.map +1 -1
- package/build/components/Bar/style.css +2 -0
- package/build/components/Bar/style.css.map +1 -0
- package/build/components/BlockAction/style.css +2 -0
- package/build/components/BlockAction/style.css.map +1 -0
- package/build/components/BodyBanner/style.css +1 -1
- package/build/components/BodyBanner/style.css.map +1 -1
- package/build/components/Breadcrumbs/style.css +2 -0
- package/build/components/Breadcrumbs/style.css.map +1 -0
- package/build/components/Button/style.css +2 -0
- package/build/components/Button/style.css.map +1 -0
- package/build/components/Buttons/style.css +2 -0
- package/build/components/Buttons/style.css.map +1 -0
- package/build/components/Card/style.css +2 -0
- package/build/components/Card/style.css.map +1 -0
- package/build/components/Carousel/style.css +1 -1
- package/build/components/Carousel/style.css.map +1 -1
- package/build/components/CarouselHero/style.css +2 -0
- package/build/components/CarouselHero/style.css.map +1 -0
- package/build/components/CarouselPromotions/style.css +2 -0
- package/build/components/CarouselPromotions/style.css.map +1 -0
- package/build/components/CartTable/style.css +1 -1
- package/build/components/CartTable/style.css.map +1 -1
- package/build/components/Container/style.css +2 -0
- package/build/components/Container/style.css.map +1 -0
- package/build/components/Controls/style.css +2 -0
- package/build/components/Controls/style.css.map +1 -0
- package/build/components/Cover/style.css +2 -0
- package/build/components/Cover/style.css.map +1 -0
- package/build/components/Divider/style.css +2 -0
- package/build/components/Divider/style.css.map +1 -0
- package/build/components/DocumentationSidebar/style.css +1 -1
- package/build/components/DocumentationSidebar/style.css.map +1 -1
- package/build/components/Dropdown/style.css +1 -1
- package/build/components/Dropdown/style.css.map +1 -1
- package/build/components/Expander/style.css +2 -0
- package/build/components/Expander/style.css.map +1 -0
- package/build/components/FeatureAccordion/style.css +1 -1
- package/build/components/FeatureAccordion/style.css.map +1 -1
- package/build/components/Footer/style.css +1 -1
- package/build/components/Footer/style.css.map +1 -1
- package/build/components/Gauge/style.css +2 -0
- package/build/components/Gauge/style.css.map +1 -0
- package/build/components/Grid/style.css +1 -1
- package/build/components/Grid/style.css.map +1 -1
- package/build/components/Hero/style.css +1 -1
- package/build/components/Hero/style.css.map +1 -1
- package/build/components/Icon/style.css +2 -0
- package/build/components/Icon/style.css.map +1 -0
- package/build/components/IconList/style.css +1 -1
- package/build/components/IconList/style.css.map +1 -1
- package/build/components/Image/style.css +2 -0
- package/build/components/Image/style.css.map +1 -0
- package/build/components/Link/style.css +2 -0
- package/build/components/Link/style.css.map +1 -0
- package/build/components/List/style.css +2 -0
- package/build/components/List/style.css.map +1 -0
- package/build/components/Loader/style.css +2 -0
- package/build/components/Loader/style.css.map +1 -0
- package/build/components/Megamenu/style.css +2 -0
- package/build/components/Megamenu/style.css.map +1 -0
- package/build/components/Modal/style.css +2 -0
- package/build/components/Modal/style.css.map +1 -0
- package/build/components/Pagination/style.css +2 -0
- package/build/components/Pagination/style.css.map +1 -0
- package/build/components/Pill/style.css +2 -0
- package/build/components/Pill/style.css.map +1 -0
- package/build/components/Preview/style.css +1 -1
- package/build/components/Preview/style.css.map +1 -1
- package/build/components/Progress/style.css +2 -0
- package/build/components/Progress/style.css.map +1 -0
- package/build/components/PromoBanner/style.css +1 -1
- package/build/components/PromoBanner/style.css.map +1 -1
- package/build/components/PromotionCard/style.css +2 -0
- package/build/components/PromotionCard/style.css.map +1 -0
- package/build/components/Section/style.css +2 -0
- package/build/components/Section/style.css.map +1 -0
- package/build/components/Skeleton/style.css +2 -0
- package/build/components/Skeleton/style.css.map +1 -0
- package/build/components/SkipLink/style.css +2 -0
- package/build/components/SkipLink/style.css.map +1 -0
- package/build/components/SocialButton/style.css +2 -0
- package/build/components/SocialButton/style.css.map +1 -0
- package/build/components/Stepbar/style.css +2 -0
- package/build/components/Stepbar/style.css.map +1 -0
- package/build/components/Sticker/style.css +2 -0
- package/build/components/Sticker/style.css.map +1 -0
- package/build/components/Table/style.css +2 -0
- package/build/components/Table/style.css.map +1 -0
- package/build/components/Tabs/style.css +2 -0
- package/build/components/Tabs/style.css.map +1 -0
- package/build/components/Tag/style.css +2 -0
- package/build/components/Tag/style.css.map +1 -0
- package/build/components/Testimonial/style.css +2 -0
- package/build/components/Testimonial/style.css.map +1 -0
- package/build/components/Tile/style.css +2 -0
- package/build/components/Tile/style.css.map +1 -0
- package/build/components/Tooltip/style.css +1 -1
- package/build/components/Tooltip/style.css.map +1 -1
- package/build/components/index.js +1 -23
- package/build/components/index.js.map +1 -1
- package/build/components/tsconfig.tsbuildinfo +1 -1
- package/build/components/types/index.d.ts +1497 -0
- package/build/components/types/src/components/Accordion/Accordion.d.ts +2 -2
- package/build/components/types/src/components/Accordion/Accordion.static.d.ts +1 -0
- package/build/components/types/src/components/Alert/Alert.d.ts +0 -2
- package/build/components/types/src/components/AnchorNavigation/AnchorNavigation.d.ts +1 -2
- package/build/components/types/src/components/AnchorNavigation/AnchorNavigation.static.d.ts +20 -17
- package/build/components/types/src/components/BlockAction/BlockAction.d.ts +2 -0
- package/build/components/types/src/components/BlockAction/Context.d.ts +2 -0
- package/build/components/types/src/components/BodyBanner/BodyBanner.d.ts +10 -10
- package/build/components/types/src/components/Breadcrumbs/Breadcrumbs.d.ts +0 -2
- package/build/components/types/src/components/Button/Button.d.ts +1 -1
- package/build/components/types/src/components/Button/index.d.ts +3 -4
- package/build/components/types/src/components/Card/Card.d.ts +2 -1
- package/build/components/types/src/components/Card/CardSection.d.ts +2 -2
- package/build/components/types/src/components/Card/index.d.ts +1 -0
- package/build/components/types/src/components/Carousel/Carousel.d.ts +4 -2
- package/build/components/types/src/components/Carousel/Carousel.static.d.ts +61 -7
- package/build/components/types/src/components/Carousel/constants.d.ts +2 -0
- package/build/components/types/src/components/CarouselHero/CarouselHero.d.ts +17 -0
- package/build/components/types/src/components/CarouselHero/CarouselHero.static.d.ts +47 -0
- package/build/components/types/src/components/CarouselHero/CarouselHeroItem.d.ts +8 -0
- package/build/components/types/src/components/CarouselHero/constants.d.ts +33 -0
- package/build/components/types/src/components/CarouselHero/index.d.ts +2 -0
- package/build/components/types/src/components/CarouselPromotions/CarouselPromotions.d.ts +0 -1
- package/build/components/types/src/components/Controls/Controls.d.ts +0 -1
- package/build/components/types/src/components/Cover/Cover.d.ts +3 -3
- package/build/components/types/src/components/Divider/Divider.d.ts +0 -4
- package/build/components/types/src/components/DocumentationSidebar/DocumentationSidebar.d.ts +1 -0
- package/build/components/types/src/components/Expander/Expander.d.ts +2 -5
- package/build/components/types/src/components/FeatureAccordion/FeatureAccordion.d.ts +1 -3
- package/build/components/types/src/components/Footer/Footer.d.ts +1 -5
- package/build/components/types/src/components/Footer/PlanObnovy.d.ts +1 -0
- package/build/components/types/src/components/Footer/constants.d.ts +10 -0
- package/build/components/types/src/components/Footer/data.d.ts +6 -0
- package/build/components/types/src/components/Forms/InputStepper/InputStepper.d.ts +0 -1
- package/build/components/types/src/components/Forms/Select/index.d.ts +1 -1
- package/build/components/types/src/components/Grid/Grid.d.ts +1 -1
- package/build/components/types/src/components/Grid/GridCol.d.ts +1 -1
- package/build/components/types/src/components/Hero/Hero.d.ts +0 -3
- package/build/components/types/src/components/Icon/IconSearch.d.ts +2 -2
- package/build/components/types/src/components/Icon/IconSearchWrapper.d.ts +1 -1
- package/build/components/types/src/components/Icon/iconSearchTags.d.ts +259 -252
- package/build/components/types/src/components/Link/Link.d.ts +2 -2
- package/build/components/types/src/components/Megamenu/Megamenu.d.ts +6 -1
- package/build/components/types/src/components/Megamenu/MegamenuBlog.d.ts +2 -1
- package/build/components/types/src/components/Megamenu/constants.d.ts +4 -0
- package/build/components/types/src/components/Megamenu/static.d.ts +2 -3
- package/build/components/types/src/components/Modal/Modal.d.ts +0 -4
- package/build/components/types/src/components/Modal/ModalBody.d.ts +3 -3
- package/build/components/types/src/components/Modal/ModalProductHeader.d.ts +2 -0
- package/build/components/types/src/components/Modal/index.d.ts +0 -1
- package/build/components/types/src/components/Pagination/Pagination.d.ts +2 -5
- package/build/components/types/src/components/Pagination/Separator.d.ts +2 -2
- package/build/components/types/src/components/Pill/Pill.d.ts +3 -1
- package/build/components/types/src/components/Preview/Preview.d.ts +1 -1
- package/build/components/types/src/components/Preview/PreviewGenerator.d.ts +1 -0
- package/build/components/types/src/components/Preview/index.d.ts +1 -1
- package/build/components/types/src/components/Progress/Progress.d.ts +0 -1
- package/build/components/types/src/components/PromoBanner/PromoBanner.d.ts +9 -6
- package/build/components/types/src/components/PromotionCard/PromotionCard.d.ts +3 -3
- package/build/components/types/src/components/Section/Section.d.ts +4 -1
- package/build/components/types/src/components/SocialButton/SocialButton.d.ts +13 -0
- package/build/components/types/src/components/SocialButton/index.d.ts +1 -0
- package/build/components/types/src/components/Stepbar/Stepbar.d.ts +0 -2
- package/build/components/types/src/components/Table/Row.d.ts +1 -2
- package/build/components/types/src/components/Table/Table.d.ts +2 -2
- package/build/components/types/src/components/Table/docsData.d.ts +2 -0
- package/build/components/types/src/components/Table/types.d.ts +1 -0
- package/build/components/types/src/components/Tabs/Tabs.d.ts +0 -2
- package/build/components/types/src/components/Tag/Tag.d.ts +0 -2
- package/build/components/types/src/components/Tile/Tile.d.ts +2 -1
- package/build/components/types/src/components/Tooltip/Tooltip.d.ts +0 -1
- package/build/components/types/src/components/Tooltip/tests/BaseWrapper.d.ts +1 -1
- package/build/components/types/src/components/index.d.ts +5 -5
- package/build/components/types/src/docs/utils/SpacePreview.d.ts +1 -2
- package/build/components/types/src/scripts/index.d.ts +12 -3
- package/build/components/types/src/scripts/modules/SameHeight.d.ts +3 -0
- package/build/components/types/src/styles/export/color.d.ts +105 -0
- package/build/fonts/HelveticaNeue-Bold.woff2 +0 -0
- package/build/fonts/HelveticaNeue-Light.woff2 +0 -0
- package/build/fonts/HelveticaNeue-Roman.woff2 +0 -0
- package/build/lib/base.css +3 -0
- package/build/lib/base.css.map +1 -0
- package/build/lib/components.css +1 -1
- package/build/lib/components.css.map +1 -1
- package/build/lib/footer.css +2 -0
- package/build/lib/footer.css.map +1 -0
- package/build/lib/megamenu.css +1 -1
- package/build/lib/megamenu.css.map +1 -1
- package/build/lib/megamenu.js +1 -1
- package/build/lib/megamenu.js.map +1 -1
- package/build/lib/scripts.js +1 -9
- package/build/lib/scripts.js.map +1 -1
- package/build/lib/style.css +1 -1
- package/build/lib/style.css.map +1 -1
- package/build/lib/tsconfig.tsbuildinfo +1 -1
- package/build/lib/utilities.css +2 -0
- package/build/lib/utilities.css.map +1 -0
- package/build/plan-obnovy.svg +53 -0
- package/build/sprite.svg +1 -1
- package/package.json +46 -38
- package/public/fonts/HelveticaNeue-Bold.woff2 +0 -0
- package/public/fonts/HelveticaNeue-Light.woff2 +0 -0
- package/public/fonts/HelveticaNeue-Roman.woff2 +0 -0
- package/src/assets/icons/ai.svg +6 -0
- package/src/assets/icons/article.svg +7 -0
- package/src/assets/icons/instagram.svg +5 -1
- package/src/assets/icons/linkedin-2.svg +3 -1
- package/src/assets/icons/pictogram-activation--dark.svg +10 -11
- package/src/assets/icons/pictogram-activation-free--dark.svg +4 -5
- package/src/assets/icons/pictogram-activation-free.svg +4 -5
- package/src/assets/icons/pictogram-activation.svg +10 -11
- package/src/assets/icons/pictogram-archive--dark.svg +3 -4
- package/src/assets/icons/pictogram-archive.svg +3 -4
- package/src/assets/icons/pictogram-calling-minutes--dark.svg +3 -4
- package/src/assets/icons/pictogram-calling-minutes.svg +3 -4
- package/src/assets/icons/pictogram-canal-plus--dark.svg +3 -4
- package/src/assets/icons/pictogram-canal-plus.svg +3 -4
- package/src/assets/icons/pictogram-competition-tickets--dark.svg +11 -12
- package/src/assets/icons/pictogram-competition-tickets.svg +11 -12
- package/src/assets/icons/pictogram-device-discount--dark.svg +7 -6
- package/src/assets/icons/pictogram-device-discount.svg +5 -6
- package/src/assets/icons/pictogram-discount-general--dark.svg +5 -6
- package/src/assets/icons/pictogram-discount-general.svg +5 -6
- package/src/assets/icons/pictogram-discount-price--dark.svg +5 -6
- package/src/assets/icons/pictogram-discount-price.svg +5 -6
- package/src/assets/icons/pictogram-extra-data--dark.svg +6 -7
- package/src/assets/icons/pictogram-extra-data.svg +6 -7
- package/src/assets/icons/pictogram-free-payment--dark.svg +5 -6
- package/src/assets/icons/pictogram-free-payment.svg +3 -6
- package/src/assets/icons/pictogram-gift--dark.svg +12 -13
- package/src/assets/icons/pictogram-gift-one-benefit--dark.svg +7 -8
- package/src/assets/icons/pictogram-gift-one-benefit.svg +7 -8
- package/src/assets/icons/pictogram-gift-two-benefits--dark.svg +8 -9
- package/src/assets/icons/pictogram-gift-two-benefits.svg +8 -9
- package/src/assets/icons/pictogram-gift.svg +3 -4
- package/src/assets/icons/pictogram-hbo-max--dark.svg +5 -6
- package/src/assets/icons/pictogram-hbo-max.svg +5 -6
- package/src/assets/icons/pictogram-infinite-sms--dark.svg +3 -4
- package/src/assets/icons/pictogram-infinite-sms.svg +3 -4
- package/src/assets/icons/pictogram-installation--dark.svg +4 -5
- package/src/assets/icons/pictogram-installation-free--dark.svg +4 -5
- package/src/assets/icons/pictogram-installation-free.svg +4 -5
- package/src/assets/icons/pictogram-installation.svg +4 -5
- package/src/assets/icons/pictogram-max--dark.svg +3 -4
- package/src/assets/icons/pictogram-max-canal-plus--dark.svg +5 -6
- package/src/assets/icons/pictogram-max-canal-plus.svg +5 -6
- package/src/assets/icons/pictogram-max.svg +3 -4
- package/src/assets/icons/pictogram-moj-orange-app--dark.svg +3 -4
- package/src/assets/icons/pictogram-moj-orange-app.svg +3 -4
- package/src/assets/icons/pictogram-movie-storage--dark.svg +4 -5
- package/src/assets/icons/pictogram-movie-storage.svg +4 -5
- package/src/assets/icons/pictogram-online-protection--dark.svg +3 -4
- package/src/assets/icons/pictogram-online-protection.svg +3 -4
- package/src/assets/icons/pictogram-random-damage--dark.svg +4 -8
- package/src/assets/icons/pictogram-random-damage.svg +4 -8
- package/src/assets/icons/pictogram-recycling--dark.svg +7 -8
- package/src/assets/icons/pictogram-recycling.svg +14 -15
- package/src/assets/icons/pictogram-repair--dark.svg +12 -13
- package/src/assets/icons/pictogram-repair.svg +12 -13
- package/src/assets/icons/pictogram-roaming--dark.svg +3 -4
- package/src/assets/icons/pictogram-roaming-discount--dark.svg +3 -16
- package/src/assets/icons/pictogram-roaming-discount.svg +15 -16
- package/src/assets/icons/pictogram-roaming.svg +3 -4
- package/src/assets/icons/pictogram-skylink--dark.svg +10 -11
- package/src/assets/icons/pictogram-skylink-live-tv--dark.svg +7 -8
- package/src/assets/icons/pictogram-skylink-live-tv.svg +7 -8
- package/src/assets/icons/pictogram-skylink.svg +10 -11
- package/src/assets/icons/pictogram-sms--dark.svg +5 -6
- package/src/assets/icons/pictogram-sms.svg +5 -6
- package/src/assets/icons/pictogram-theft--dark.svg +3 -7
- package/src/assets/icons/pictogram-theft.svg +3 -7
- package/src/assets/icons/pictogram-three-devices--dark.svg +4 -8
- package/src/assets/icons/pictogram-three-devices.svg +4 -8
- package/src/assets/icons/pictogram-trust--dark.svg +3 -4
- package/src/assets/icons/pictogram-trust.svg +3 -4
- package/src/assets/icons/pictogram-water-damage--dark.svg +5 -6
- package/src/assets/icons/pictogram-water-damage.svg +5 -6
- package/src/assets/icons/pinterest.svg +4 -0
- package/src/assets/icons/play.svg +4 -1
- package/src/assets/icons/quote.svg +4 -0
- package/src/assets/icons/snapchat.svg +4 -0
- package/src/assets/icons/tiktok.svg +4 -0
- package/src/assets/icons/whatsapp.svg +4 -0
- package/src/components/Accordion/Accordion.static.ts +36 -30
- package/src/components/Accordion/Accordion.tsx +4 -4
- package/src/components/Accordion/AccordionHeader.tsx +0 -10
- package/src/components/Accordion/AccordionItem.tsx +1 -0
- package/src/components/Accordion/styles/config.scss +5 -4
- package/src/components/Accordion/styles/mixins.scss +12 -11
- package/src/components/Accordion/styles/style.scss +2 -2
- package/src/components/Accordion/tests/Accordion.unit.test.js +12 -26
- package/src/components/Alert/Alert.tsx +0 -6
- package/src/components/Alert/styles/config.scss +1 -1
- package/src/components/Alert/styles/mixins.scss +3 -1
- package/src/components/Alert/tests/Alert.test.js +0 -14
- package/src/components/AnchorNavigation/AnchorNavigation.static.ts +296 -72
- package/src/components/AnchorNavigation/AnchorNavigation.tsx +21 -26
- package/src/components/AnchorNavigation/styles/mixins.scss +23 -32
- package/src/components/AnchorNavigation/tests/AnchorNavigation.conformance.test.js +58 -0
- package/src/components/AnchorNavigation/tests/AnchorNavigation.unit.test.js +163 -0
- package/src/components/Bar/styles/config.scss +4 -5
- package/src/components/Bar/styles/mixins.scss +11 -11
- package/src/components/BlockAction/BlockAction.tsx +10 -3
- package/src/components/BlockAction/Context.tsx +4 -0
- package/src/components/BlockAction/styles/mixins.scss +6 -6
- package/src/components/BlockAction/styles/style.scss +5 -0
- package/src/components/BodyBanner/BodyBanner.tsx +52 -73
- package/src/components/BodyBanner/styles/mixins.scss +39 -33
- package/src/components/BodyBanner/styles/style.scss +4 -18
- package/src/components/BodyBanner/tests/BodyBanner.conformance.test.js +67 -0
- package/src/components/BodyBanner/tests/BodyBanner.unit.test.js +194 -0
- package/src/components/Breadcrumbs/BreadcrumbItem.tsx +16 -7
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +4 -12
- package/src/components/Breadcrumbs/styles/mixins.scss +2 -4
- package/src/components/Breadcrumbs/tests/BreadcrumbItem.unit.test.js +14 -8
- package/src/components/Breadcrumbs/tests/Breadcrumbs.integration.test.js +14 -37
- package/src/components/Breadcrumbs/tests/Breadcrumbs.unit.test.js +19 -23
- package/src/components/Button/Button.tsx +2 -6
- package/src/components/Button/styles/config.scss +5 -5
- package/src/components/Button/styles/mixins.scss +6 -1
- package/src/components/Button/styles/style.scss +4 -0
- package/src/components/Button/tests/Button.test.js +0 -10
- package/src/components/Buttons/styles/mixins.scss +1 -1
- package/src/components/Card/Card.tsx +20 -3
- package/src/components/Card/CardSection.tsx +7 -11
- package/src/components/Card/index.ts +1 -0
- package/src/components/Card/styles/config.scss +2 -2
- package/src/components/Card/styles/mixins.scss +8 -6
- package/src/components/Card/styles/style.scss +4 -0
- package/src/components/Card/tests/Card.unit.test.js +45 -6
- package/src/components/Card/tests/CardSection.unit.test.js +36 -3
- package/src/components/Carousel/Carousel.static.ts +371 -10
- package/src/components/Carousel/Carousel.tsx +41 -24
- package/src/components/Carousel/constants.ts +2 -0
- package/src/components/Carousel/styles/config.scss +1 -2
- package/src/components/Carousel/styles/mixins.scss +42 -3
- package/src/components/Carousel/styles/style.scss +8 -0
- package/src/components/Carousel/tests/Carousel.static.test.js +616 -0
- package/src/components/Carousel/tests/Carousel.unit.test.js +117 -12
- package/src/components/CarouselHero/CarouselHero.static.ts +528 -0
- package/src/components/CarouselHero/CarouselHero.tsx +139 -0
- package/src/components/CarouselHero/CarouselHeroItem.tsx +40 -0
- package/src/components/CarouselHero/constants.ts +36 -0
- package/src/components/CarouselHero/index.ts +2 -0
- package/src/components/CarouselHero/styles/config.scss +54 -0
- package/src/components/CarouselHero/styles/mixins.scss +278 -0
- package/src/components/CarouselHero/styles/style.scss +63 -0
- package/src/components/CarouselHero/tests/CarouselHero.conformance.test.js +129 -0
- package/src/components/CarouselHero/tests/CarouselHero.unit.test.js +332 -0
- package/src/components/CarouselHero/tests/CarouselHeroItem.conformance.test.js +135 -0
- package/src/components/CarouselHero/tests/CarouselHeroItem.unit.test.js +143 -0
- package/src/components/CarouselPromotions/CarouselPromotions.tsx +1 -6
- package/src/components/CarouselPromotions/styles/mixins.scss +8 -5
- package/src/components/CarouselPromotions/tests/CarouselPromotions.unit.test.js +0 -17
- package/src/components/CartTable/FooterPriceColumn.tsx +5 -3
- package/src/components/CartTable/Price.tsx +1 -1
- package/src/components/Code/styles/style.scss +6 -5
- package/src/components/Controls/Controls.tsx +2 -7
- package/src/components/Controls/styles/config.scss +2 -2
- package/src/components/Controls/tests/Controls.test.js +0 -32
- package/src/components/Cover/Cover.tsx +22 -20
- package/src/components/Cover/styles/config.scss +23 -12
- package/src/components/Cover/styles/mixins.scss +6 -5
- package/src/components/Cover/tests/Cover.unit.test.js +52 -52
- package/src/components/Divider/Divider.tsx +2 -16
- package/src/components/Divider/styles/config.scss +0 -17
- package/src/components/Divider/styles/mixins.scss +8 -10
- package/src/components/Divider/styles/style.scss +2 -16
- package/src/components/Divider/tests/Divider.conformance.test.js +1 -1
- package/src/components/Divider/tests/Divider.unit.test.js +0 -17
- package/src/components/DocumentationSidebar/DocumentationSidebar.tsx +188 -2
- package/src/components/DocumentationSidebar/styles/style.scss +76 -3
- package/src/components/Dropdown/styles/mixins.scss +1 -1
- package/src/components/Expander/Expander.static.ts +11 -12
- package/src/components/Expander/Expander.tsx +4 -8
- package/src/components/Expander/styles/style.scss +12 -3
- package/src/components/Expander/tests/Expander.conformance.test.js +8 -12
- package/src/components/Expander/tests/Expander.unit.test.js +37 -47
- package/src/components/FeatureAccordion/FeatureAccordion.tsx +3 -13
- package/src/components/FeatureAccordion/styles/mixins.scss +6 -14
- package/src/components/FeatureAccordion/styles/style.scss +2 -4
- package/src/components/FeatureAccordion/tests/FeatureAccordion.conformance.test.js +2 -0
- package/src/components/FeatureAccordion/tests/FeatureAccordion.unit.test.js +0 -5
- package/src/components/Footer/Footer.tsx +110 -71
- package/src/components/Footer/PlanObnovy.tsx +211 -0
- package/src/components/Footer/constants.ts +11 -0
- package/src/components/Footer/data.ts +27 -0
- package/src/components/Footer/styles/config.scss +1 -0
- package/src/components/Footer/styles/mixins.scss +182 -0
- package/src/components/Footer/styles/style.scss +54 -0
- package/src/components/Footer/tests/Footer.conformance.test.js +133 -8
- package/src/components/Footer/tests/Footer.unit.test.js +71 -6
- package/src/components/Forms/DatePicker/styles/style.scss +1 -1
- package/src/components/Forms/Field/styles/config.scss +8 -8
- package/src/components/Forms/Field/tests/Autocomplete.Field.conformance.test.js +1 -1
- package/src/components/Forms/Field/tests/Checkbox.Field.conformance.test.js +1 -0
- package/src/components/Forms/Field/tests/File.Field.conformance.test.js +1 -0
- package/src/components/Forms/Field/tests/Group.Field.conformance.test.js +1 -0
- package/src/components/Forms/Field/tests/Radio.Field.conformance.test.js +1 -0
- package/src/components/Forms/Field/tests/Rangeslider.Field.test.js +1 -0
- package/src/components/Forms/Field/tests/Select.Field.conformance.test.js +1 -0
- package/src/components/Forms/Field/tests/Text.Field.conformance.test.js +1 -0
- package/src/components/Forms/Field/tests/Textarea.Field.conformance.test.js +1 -0
- package/src/components/Forms/Fieldset/styles/mixins.scss +3 -3
- package/src/components/Forms/File/styles/mixins.scss +1 -1
- package/src/components/Forms/Group/styles/mixins.scss +14 -0
- package/src/components/Forms/InputStepper/InputStepper.tsx +0 -4
- package/src/components/Forms/InputStepper/styles/style.scss +0 -66
- package/src/components/Forms/Label/styles/config.scss +3 -0
- package/src/components/Forms/RangeSlider/styles/mixins.scss +1 -1
- package/src/components/Forms/TextArea/styles/mixins.scss +10 -9
- package/src/components/Forms/TextInput/styles/config.scss +1 -1
- package/src/components/Forms/styles/config.scss +5 -4
- package/src/components/Gauge/styles/style.scss +1 -1
- package/src/components/Grid/Grid.tsx +1 -1
- package/src/components/Grid/styles/config.scss +5 -3
- package/src/components/Grid/styles/mixins.scss +29 -19
- package/src/components/Grid/tests/Grid.unit.test.js +11 -0
- package/src/components/Hero/Hero.tsx +2 -16
- package/src/components/Hero/styles/style.scss +0 -14
- package/src/components/Hero/tests/Hero.unit.test.js +109 -119
- package/src/components/Icon/iconSearchTags.ts +440 -432
- package/src/components/Icon/styles/style.scss +15 -0
- package/src/components/Icon/tests/Pictogram.unit.test.js +38 -0
- package/src/components/IconList/styles/mixins.scss +5 -5
- package/src/components/Image/styles/mixins.scss +2 -2
- package/src/components/Link/Link.tsx +4 -5
- package/src/components/Link/styles/mixins.scss +9 -3
- package/src/components/Link/styles/style.scss +4 -2
- package/src/components/Link/tests/Link.conformance.test.js +6 -27
- package/src/components/Link/tests/Link.unit.test.js +1 -30
- package/src/components/List/styles/config.scss +12 -12
- package/src/components/List/styles/mixins.scss +16 -9
- package/src/components/Loader/Loader.tsx +2 -10
- package/src/components/Loader/styles/mixins.scss +1 -1
- package/src/components/Loader/styles/style.scss +6 -4
- package/src/components/Megamenu/Megamenu.static.ts +2 -0
- package/src/components/Megamenu/Megamenu.tsx +730 -650
- package/src/components/Megamenu/MegamenuBlog.tsx +201 -183
- package/src/components/Megamenu/constants.ts +4 -0
- package/src/components/Megamenu/static.ts +5 -11
- package/src/components/Megamenu/styles/mixins.scss +50 -3
- package/src/components/Megamenu/styles/style.scss +10 -0
- package/src/components/Modal/Modal.tsx +1 -14
- package/src/components/Modal/ModalBody.tsx +26 -14
- package/src/components/Modal/ModalProductHeader.tsx +6 -2
- package/src/components/Modal/index.ts +0 -1
- package/src/components/Modal/styles/config.scss +4 -4
- package/src/components/Modal/styles/mixins.scss +18 -57
- package/src/components/Modal/styles/style.scss +1 -16
- package/src/components/Modal/tests/Modal.unit.test.js +0 -59
- package/src/components/Modal/tests/ModalBody.unit.test.js +21 -12
- package/src/components/Modal/tests/ModalProductHeader.unit.test.js +12 -0
- package/src/components/Pagination/Pagination.tsx +3 -13
- package/src/components/Pagination/styles/mixins.scss +1 -1
- package/src/components/Pill/Pill.tsx +17 -5
- package/src/components/Pill/styles/config.scss +2 -1
- package/src/components/Pill/styles/style.scss +17 -1
- package/src/components/Pill/tests/Pill.conformance.test.js +9 -3
- package/src/components/Pill/tests/Pill.unit.test.js +87 -9
- package/src/components/Preview/PreviewGenerator.tsx +50 -29
- package/src/components/Progress/Progress.tsx +1 -13
- package/src/components/Progress/styles/config.scss +4 -4
- package/src/components/Progress/styles/mixins.scss +9 -7
- package/src/components/PromoBanner/PromoBanner.tsx +70 -43
- package/src/components/PromoBanner/styles/mixins.scss +39 -17
- package/src/components/PromoBanner/styles/style.scss +5 -7
- package/src/components/PromoBanner/tests/PromoBanner.conformance.test.js +783 -0
- package/src/components/PromoBanner/tests/PromoBanner.unit.test.js +549 -0
- package/src/components/PromotionCard/PromotionCard.tsx +12 -13
- package/src/components/PromotionCard/styles/mixins.scss +2 -1
- package/src/components/PromotionCard/tests/PromotionCard.conformance.test.js +566 -0
- package/src/components/PromotionCard/tests/PromotionCard.unit.test.js +438 -0
- package/src/components/Section/Section.tsx +20 -10
- package/src/components/Section/styles/config.scss +18 -16
- package/src/components/Section/styles/mixins.scss +16 -13
- package/src/components/Section/styles/style.scss +1 -0
- package/src/components/Section/tests/Section.conformance.test.js +23 -12
- package/src/components/Section/tests/Section.unit.test.js +53 -32
- package/src/components/SocialButton/SocialButton.tsx +67 -0
- package/src/components/SocialButton/index.ts +1 -0
- package/src/components/SocialButton/styles/config.scss +172 -0
- package/src/components/SocialButton/styles/mixins.scss +42 -0
- package/src/components/SocialButton/styles/style.scss +16 -0
- package/src/components/SocialButton/tests/SocialButton.unit.test.js +162 -0
- package/src/components/Stepbar/Stepbar.tsx +0 -5
- package/src/components/Stepbar/styles/mixins.scss +1 -1
- package/src/components/Table/Row.tsx +9 -3
- package/src/components/Table/Table.tsx +11 -6
- package/src/components/Table/TableContext.ts +1 -0
- package/src/components/Table/docsData.ts +25 -0
- package/src/components/Table/styles/mixins.scss +41 -5
- package/src/components/Table/styles/style.scss +6 -0
- package/src/components/Table/tests/Table.conformance.test.js +5 -1
- package/src/components/Table/tests/Table.unit.test.js +0 -31
- package/src/components/Table/types.ts +1 -0
- package/src/components/Tabs/Tabs.tsx +0 -5
- package/src/components/Tabs/styles/mixins.scss +1 -1
- package/src/components/Tabs/tests/Tabs.unit.test.js +0 -8
- package/src/components/Tag/Tag.tsx +0 -4
- package/src/components/Tag/styles/config.scss +19 -23
- package/src/components/Tag/styles/style.scss +33 -0
- package/src/components/Tile/CHANGELOG.md +15 -1
- package/src/components/Tile/Tile.tsx +11 -3
- package/src/components/Tile/styles/config.scss +0 -11
- package/src/components/Tile/styles/mixins.scss +1 -0
- package/src/components/Tile/styles/style.scss +1 -5
- package/src/components/Tile/tests/Tile.unit.test.js +10 -3
- package/src/components/Tooltip/InfoTooltip.tsx +1 -5
- package/src/components/Tooltip/Tooltip.tsx +1 -10
- package/src/components/Tooltip/tests/Tooltip.conformance.test.js +5 -1
- package/src/components/Tooltip/tests/Tooltip.unit.test.js +0 -29
- package/src/components/index.ts +9 -4
- package/src/styles/base/globals-forms.scss +8 -0
- package/src/styles/base/globals.scss +26 -22
- package/src/styles/base/styleguide.scss +22 -17
- package/src/styles/export/base.js +1 -1
- package/src/styles/export/color.js +102 -20
- package/src/styles/export/color.scss +10 -20
- package/src/styles/shame.scss +1 -0
- package/src/styles/tokens/color-vars.scss +39 -0
- package/src/styles/tokens/color.scss +14 -14
- package/src/styles/tokens/tag-colors.scss +20 -0
- package/src/styles/typography/config.scss +83 -37
- package/src/styles/typography/mixins.scss +29 -15
- package/src/styles/typography/style.scss +6 -3
- package/src/styles/utilities/border.scss +1 -1
- package/src/styles/utilities/color.scss +99 -20
- package/src/styles/utilities/horizontal-scroll.scss +1 -1
- package/src/styles/utilities/index.scss +1 -0
- package/src/styles/utilities/layout.scss +27 -0
- package/src/styles/utilities/ordering.scss +44 -0
- package/src/styles/utilities/text.scss +44 -2
- package/src/styles/utilities/visibility.scss +2 -4
- package/build/components/Accordion/index.js +0 -16
- package/build/components/Accordion/index.js.map +0 -1
- package/build/components/Accordion/tsconfig.tsbuildinfo +0 -1
- package/build/components/Alert/index.js +0 -16
- package/build/components/Alert/index.js.map +0 -1
- package/build/components/Alert/tsconfig.tsbuildinfo +0 -1
- package/build/components/AnchorNavigation/index.js +0 -16
- package/build/components/AnchorNavigation/index.js.map +0 -1
- package/build/components/AnchorNavigation/tsconfig.tsbuildinfo +0 -1
- package/build/components/Bar/index.js +0 -16
- package/build/components/Bar/index.js.map +0 -1
- package/build/components/Bar/tsconfig.tsbuildinfo +0 -1
- package/build/components/BlockAction/index.js +0 -16
- package/build/components/BlockAction/index.js.map +0 -1
- package/build/components/BlockAction/tsconfig.tsbuildinfo +0 -1
- package/build/components/BodyBanner/index.js +0 -16
- package/build/components/BodyBanner/index.js.map +0 -1
- package/build/components/BodyBanner/tsconfig.tsbuildinfo +0 -1
- package/build/components/Breadcrumbs/index.js +0 -16
- package/build/components/Breadcrumbs/index.js.map +0 -1
- package/build/components/Breadcrumbs/tsconfig.tsbuildinfo +0 -1
- package/build/components/Button/index.js +0 -16
- package/build/components/Button/index.js.map +0 -1
- package/build/components/Button/tsconfig.tsbuildinfo +0 -1
- package/build/components/Buttons/index.js +0 -16
- package/build/components/Buttons/index.js.map +0 -1
- package/build/components/Buttons/tsconfig.tsbuildinfo +0 -1
- package/build/components/Card/index.js +0 -16
- package/build/components/Card/index.js.map +0 -1
- package/build/components/Card/tsconfig.tsbuildinfo +0 -1
- package/build/components/Carousel/index.js +0 -16
- package/build/components/Carousel/index.js.map +0 -1
- package/build/components/Carousel/tsconfig.tsbuildinfo +0 -1
- package/build/components/CarouselPromotions/index.js +0 -16
- package/build/components/CarouselPromotions/index.js.map +0 -1
- package/build/components/CarouselPromotions/tsconfig.tsbuildinfo +0 -1
- package/build/components/CartTable/index.js +0 -16
- package/build/components/CartTable/index.js.map +0 -1
- package/build/components/CartTable/tsconfig.tsbuildinfo +0 -1
- package/build/components/Code/index.js +0 -11
- package/build/components/Code/index.js.map +0 -1
- package/build/components/Code/tsconfig.tsbuildinfo +0 -1
- package/build/components/Container/index.js +0 -16
- package/build/components/Container/index.js.map +0 -1
- package/build/components/Container/tsconfig.tsbuildinfo +0 -1
- package/build/components/Controls/index.js +0 -16
- package/build/components/Controls/index.js.map +0 -1
- package/build/components/Controls/tsconfig.tsbuildinfo +0 -1
- package/build/components/Cover/index.js +0 -16
- package/build/components/Cover/index.js.map +0 -1
- package/build/components/Cover/tsconfig.tsbuildinfo +0 -1
- package/build/components/Divider/index.js +0 -16
- package/build/components/Divider/index.js.map +0 -1
- package/build/components/Divider/tsconfig.tsbuildinfo +0 -1
- package/build/components/DocumentationSidebar/index.js +0 -16
- package/build/components/DocumentationSidebar/index.js.map +0 -1
- package/build/components/DocumentationSidebar/tsconfig.tsbuildinfo +0 -1
- package/build/components/Dropdown/index.js +0 -16
- package/build/components/Dropdown/index.js.map +0 -1
- package/build/components/Dropdown/tsconfig.tsbuildinfo +0 -1
- package/build/components/Expander/index.js +0 -16
- package/build/components/Expander/index.js.map +0 -1
- package/build/components/Expander/tsconfig.tsbuildinfo +0 -1
- package/build/components/FeatureAccordion/index.js +0 -16
- package/build/components/FeatureAccordion/index.js.map +0 -1
- package/build/components/FeatureAccordion/tsconfig.tsbuildinfo +0 -1
- package/build/components/Footer/index.js +0 -16
- package/build/components/Footer/index.js.map +0 -1
- package/build/components/Footer/tsconfig.tsbuildinfo +0 -1
- package/build/components/Forms/index.js +0 -20
- package/build/components/Forms/index.js.map +0 -1
- package/build/components/Forms/style.css +0 -2
- package/build/components/Forms/style.css.map +0 -1
- package/build/components/Forms/tsconfig.tsbuildinfo +0 -1
- package/build/components/Gauge/index.js +0 -16
- package/build/components/Gauge/index.js.map +0 -1
- package/build/components/Gauge/tsconfig.tsbuildinfo +0 -1
- package/build/components/Grid/index.js +0 -16
- package/build/components/Grid/index.js.map +0 -1
- package/build/components/Grid/tsconfig.tsbuildinfo +0 -1
- package/build/components/Hero/index.js +0 -16
- package/build/components/Hero/index.js.map +0 -1
- package/build/components/Hero/tsconfig.tsbuildinfo +0 -1
- package/build/components/Icon/index.js +0 -11
- package/build/components/Icon/index.js.map +0 -1
- package/build/components/Icon/tsconfig.tsbuildinfo +0 -1
- package/build/components/IconList/index.js +0 -16
- package/build/components/IconList/index.js.map +0 -1
- package/build/components/IconList/tsconfig.tsbuildinfo +0 -1
- package/build/components/Image/index.js +0 -16
- package/build/components/Image/index.js.map +0 -1
- package/build/components/Image/tsconfig.tsbuildinfo +0 -1
- package/build/components/Link/index.js +0 -7
- package/build/components/Link/index.js.map +0 -1
- package/build/components/Link/tsconfig.tsbuildinfo +0 -1
- package/build/components/List/index.js +0 -16
- package/build/components/List/index.js.map +0 -1
- package/build/components/List/tsconfig.tsbuildinfo +0 -1
- package/build/components/Loader/index.js +0 -16
- package/build/components/Loader/index.js.map +0 -1
- package/build/components/Loader/tsconfig.tsbuildinfo +0 -1
- package/build/components/Megamenu/index.js +0 -16
- package/build/components/Megamenu/index.js.map +0 -1
- package/build/components/Megamenu/tsconfig.tsbuildinfo +0 -1
- package/build/components/Modal/index.js +0 -20
- package/build/components/Modal/index.js.map +0 -1
- package/build/components/Modal/tsconfig.tsbuildinfo +0 -1
- package/build/components/Pagination/index.js +0 -16
- package/build/components/Pagination/index.js.map +0 -1
- package/build/components/Pagination/tsconfig.tsbuildinfo +0 -1
- package/build/components/Pill/index.js +0 -16
- package/build/components/Pill/index.js.map +0 -1
- package/build/components/Pill/tsconfig.tsbuildinfo +0 -1
- package/build/components/Preview/index.js +0 -77
- package/build/components/Preview/index.js.map +0 -1
- package/build/components/Preview/tsconfig.tsbuildinfo +0 -1
- package/build/components/Progress/index.js +0 -16
- package/build/components/Progress/index.js.map +0 -1
- package/build/components/Progress/tsconfig.tsbuildinfo +0 -1
- package/build/components/PromoBanner/index.js +0 -16
- package/build/components/PromoBanner/index.js.map +0 -1
- package/build/components/PromoBanner/tsconfig.tsbuildinfo +0 -1
- package/build/components/PromotionCard/index.js +0 -16
- package/build/components/PromotionCard/index.js.map +0 -1
- package/build/components/PromotionCard/tsconfig.tsbuildinfo +0 -1
- package/build/components/Section/index.js +0 -16
- package/build/components/Section/index.js.map +0 -1
- package/build/components/Section/tsconfig.tsbuildinfo +0 -1
- package/build/components/Skeleton/index.js +0 -16
- package/build/components/Skeleton/index.js.map +0 -1
- package/build/components/Skeleton/tsconfig.tsbuildinfo +0 -1
- package/build/components/SkipLink/index.js +0 -16
- package/build/components/SkipLink/index.js.map +0 -1
- package/build/components/SkipLink/tsconfig.tsbuildinfo +0 -1
- package/build/components/Stepbar/index.js +0 -16
- package/build/components/Stepbar/index.js.map +0 -1
- package/build/components/Stepbar/tsconfig.tsbuildinfo +0 -1
- package/build/components/Sticker/index.js +0 -16
- package/build/components/Sticker/index.js.map +0 -1
- package/build/components/Sticker/tsconfig.tsbuildinfo +0 -1
- package/build/components/Table/index.js +0 -16
- package/build/components/Table/index.js.map +0 -1
- package/build/components/Table/tsconfig.tsbuildinfo +0 -1
- package/build/components/Tabs/index.js +0 -16
- package/build/components/Tabs/index.js.map +0 -1
- package/build/components/Tabs/tsconfig.tsbuildinfo +0 -1
- package/build/components/Tag/index.js +0 -16
- package/build/components/Tag/index.js.map +0 -1
- package/build/components/Tag/tsconfig.tsbuildinfo +0 -1
- package/build/components/Testimonial/index.js +0 -16
- package/build/components/Testimonial/index.js.map +0 -1
- package/build/components/Testimonial/tsconfig.tsbuildinfo +0 -1
- package/build/components/Tile/index.js +0 -16
- package/build/components/Tile/index.js.map +0 -1
- package/build/components/Tile/tsconfig.tsbuildinfo +0 -1
- package/build/components/Tooltip/index.js +0 -16
- package/build/components/Tooltip/index.js.map +0 -1
- package/build/components/Tooltip/tsconfig.tsbuildinfo +0 -1
- package/build/components/index.css +0 -3
- package/build/components/index.css.map +0 -1
- package/build/components/static.css +0 -2
- package/build/components/static.css.map +0 -1
- package/build/components/static.js +0 -10
- package/build/components/static.js.map +0 -1
- package/build/components/types/src/components/Hero/HeroPlayground.d.ts +0 -2
- package/build/components/types/src/components/Modal/ModalProductBody.d.ts +0 -10
- package/build/lib/after-components.css +0 -2
- package/build/lib/after-components.css.map +0 -1
- package/build/lib/before-components.css +0 -3
- package/build/lib/before-components.css.map +0 -1
- package/build/lib/scripts.css +0 -2
- package/build/lib/scripts.css.map +0 -1
- package/src/components/Accordion/Accordion.mdx +0 -240
- package/src/components/Alert/Alert.mdx +0 -141
- package/src/components/Bar/Bar.mdx +0 -203
- package/src/components/BlockAction/BlockAction.mdx +0 -244
- package/src/components/BodyBanner/BodyBanner.mdx +0 -268
- package/src/components/Breadcrumbs/Breadcrumbs.mdx +0 -84
- package/src/components/Button/Button.mdx +0 -273
- package/src/components/Buttons/Buttons.mdx +0 -39
- package/src/components/Card/Card.mdx +0 -334
- package/src/components/Carousel/Carousel.mdx +0 -159
- package/src/components/CarouselPromotions/CarouselPromotions.mdx +0 -246
- package/src/components/CartTable/CartTable.mdx +0 -129
- package/src/components/Container/Container.mdx +0 -73
- package/src/components/Controls/Controls.mdx +0 -469
- package/src/components/Cover/Cover.mdx +0 -87
- package/src/components/Divider/Divider.mdx +0 -65
- package/src/components/Dropdown/Dropdown.mdx +0 -260
- package/src/components/Expander/Expander.mdx +0 -153
- package/src/components/FeatureAccordion/FeatureAccordion.mdx +0 -33
- package/src/components/Forms/Autocomplete/Autocomplete.mdx +0 -198
- package/src/components/Forms/Checkbox/Checkbox.mdx +0 -139
- package/src/components/Forms/DatePicker/DatePicker.mdx +0 -149
- package/src/components/Forms/Field/Field.mdx +0 -383
- package/src/components/Forms/Fieldset/Fieldset.mdx +0 -178
- package/src/components/Forms/File/File.mdx +0 -88
- package/src/components/Forms/FormTooltip.mdx +0 -51
- package/src/components/Forms/Forms.mdx +0 -48
- package/src/components/Forms/Group/Group.mdx +0 -146
- package/src/components/Forms/Hint/Hint.mdx +0 -40
- package/src/components/Forms/InputStepper/InputStepper.mdx +0 -147
- package/src/components/Forms/Label/Label.mdx +0 -95
- package/src/components/Forms/Message/Message.mdx +0 -40
- package/src/components/Forms/Radio/Radio.mdx +0 -98
- package/src/components/Forms/RangeSlider/RangeSlider.mdx +0 -304
- package/src/components/Forms/Select/Select.mdx +0 -106
- package/src/components/Forms/TextArea/TextArea.mdx +0 -109
- package/src/components/Forms/TextInput/TextInput.mdx +0 -153
- package/src/components/Gauge/Gauge.mdx +0 -35
- package/src/components/Grid/Grid.mdx +0 -320
- package/src/components/Hero/Hero.mdx +0 -168
- package/src/components/Hero/HeroPlayground.tsx +0 -369
- package/src/components/Icon/Icon.mdx +0 -172
- package/src/components/IconList/IconList.mdx +0 -53
- package/src/components/Image/Image.mdx +0 -175
- package/src/components/Link/Link.mdx +0 -238
- package/src/components/List/List.mdx +0 -216
- package/src/components/Loader/Loader.mdx +0 -148
- package/src/components/Modal/Modal.mdx +0 -565
- package/src/components/Modal/ModalProductBody.tsx +0 -52
- package/src/components/Pagination/Pagination.mdx +0 -45
- package/src/components/Pagination/tests/utils.js +0 -12
- package/src/components/Pill/Pill.mdx +0 -41
- package/src/components/Progress/Progress.mdx +0 -119
- package/src/components/PromotionCard/PromotionCard.mdx +0 -191
- package/src/components/Section/Section.mdx +0 -397
- package/src/components/Skeleton/Skeleton.mdx +0 -90
- package/src/components/SkipLink/SkipLink.mdx +0 -23
- package/src/components/Stepbar/Stepbar.mdx +0 -137
- package/src/components/Sticker/Sticker.mdx +0 -50
- package/src/components/Table/Table.mdx +0 -199
- package/src/components/Tabs/Tabs.mdx +0 -373
- package/src/components/Tag/Tag.mdx +0 -52
- package/src/components/Testimonial/Testimonial.mdx +0 -41
- package/src/components/Tile/Tile.mdx +0 -163
- package/src/components/Tooltip/Tooltip.mdx +0 -227
- package/src/styles/after-components.scss +0 -2
- package/src/styles/before-components.scss +0 -18
- /package/build/lib/{after-components.js → base.js} +0 -0
- /package/build/lib/{before-components.js → utilities.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/classnames/index.js","../../../src/utils/ConditionalWrapper.tsx","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../../../src/components/Button/Button.tsx","../../../src/components/Icon/SpritePathContext.tsx","../../../src/components/Icon/Icon.tsx","../../../src/components/Button/IconButton.tsx","../../../src/components/Buttons/Buttons.tsx","../../../node_modules/a11y-dialog/dist/a11y-dialog.esm.js","../../../node_modules/tabbable/dist/index.esm.js","../../../src/components/Modal/Modal.static.ts","../../../src/components/Modal/ModalCloseButton.tsx","../../../src/components/Modal/ModalTitle.tsx","../../../src/components/Modal/ModalBody.tsx","../../../src/components/Modal/Modal.tsx","../../../src/utils/hooks.ts","../../../src/components/Modal/ModalProductHeader.tsx","../../../src/components/Modal/ModalProductFooter.tsx","../../../src/components/Modal/ModalProductBody.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, { cloneElement, ReactElement, ReactNode } from \"react\";\n\ninterface ConditionalWrapperProps {\n /** When to wrap children */\n condition: boolean;\n /** Wrapper element */\n wrapper: ReactElement;\n children: ReactNode;\n}\n\nconst ConditionalWrapper: React.FC<ConditionalWrapperProps> = ({\n condition,\n wrapper,\n children,\n}) => {\n if (condition) {\n return cloneElement(wrapper, undefined, children);\n }\n return children;\n};\n\nConditionalWrapper.displayName = \"ConditionalWrapper\";\n\nexport default ConditionalWrapper;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","import React from \"react\";\nimport cx from \"classnames\";\n\nexport type ButtonSize = \"small\" | \"large\";\nexport type ButtonType = \"primary\" | \"fill\" | \"ghost\";\n\ninterface CommonProps {\n elemRef?: React.Ref<any>;\n htmlType?: \"button\" | \"submit\" | \"reset\";\n isActive?: boolean;\n isDefault?: boolean;\n isDisabled?: boolean;\n colorScheme?: \"dark\" | \"light\";\n isSquare?: boolean;\n size?: ButtonSize;\n type?: ButtonType;\n className?: string;\n children?: React.ReactNode;\n}\n\ntype AnchorProps = CommonProps &\n Omit<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n keyof CommonProps | \"type\" | \"ref\"\n > & {\n href: string;\n };\n\ntype NativeButtonProps = CommonProps &\n Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n keyof CommonProps | \"href\" | \"ref\"\n > & {\n href?: undefined;\n };\n\nexport type ButtonProps = AnchorProps | NativeButtonProps;\n\nconst CLASS_ROOT = \"btn\";\n\nconst Button = React.forwardRef<any, ButtonProps>((props, ref) => {\n const {\n className,\n children,\n htmlType = \"button\",\n href,\n isActive,\n isDefault,\n isDisabled,\n colorScheme,\n size,\n isSquare,\n type,\n elemRef,\n ...other\n } = props;\n\n const classes = cx(\n CLASS_ROOT,\n {\n [`${CLASS_ROOT}--square`]: isSquare,\n [`${CLASS_ROOT}--${size}`]: size,\n [`${CLASS_ROOT}--${type}`]: type,\n [`${CLASS_ROOT}--default`]: isDefault,\n \"is-dark\": colorScheme === \"dark\",\n \"is-light\": colorScheme === \"light\",\n \"is-active\": isActive,\n },\n className,\n );\n\n if (href) {\n // Anchor element\n const anchorProps = other as React.AnchorHTMLAttributes<HTMLAnchorElement>;\n return (\n <a\n href={href}\n className={classes}\n aria-disabled={isDisabled ? \"true\" : undefined}\n ref={elemRef || ref}\n {...anchorProps}\n >\n {children}\n </a>\n );\n } else {\n // Button element\n const buttonProps = other as React.ButtonHTMLAttributes<HTMLButtonElement>;\n return (\n <button\n type={htmlType}\n className={classes}\n disabled={isDisabled ? true : undefined}\n aria-disabled={isDisabled ? \"true\" : undefined}\n ref={elemRef || ref}\n {...buttonProps}\n >\n {children}\n </button>\n );\n }\n});\n\nButton.displayName = \"Button\";\n\nexport { Button };\n","\"use client\";\n\nimport React, { ReactNode } from \"react\";\n\nexport const SpritePathContext = React.createContext(\"/sprite.svg\");\n\ninterface SpritePathProviderProps {\n children: ReactNode;\n value?: string;\n}\n\nexport const SpritePathProvider: React.FC<SpritePathProviderProps> = ({\n children,\n value = \"/sprite.svg\",\n ...other\n}) => {\n return (\n <SpritePathContext.Provider value={value} {...other}>\n {React.Children.only(children)}\n </SpritePathContext.Provider>\n );\n};\n","\"use client\";\n\nimport React, { useContext } from \"react\";\nimport cx from \"classnames\";\nimport { SpritePathContext } from \"./SpritePathContext\";\n\nexport type IconColor = \"info\" | \"success\" | \"warning\" | \"danger\" | \"orange\";\nexport type IconSize =\n | \"small\"\n | \"medium\"\n | \"large\"\n | \"xlarge\"\n | \"xxlarge\"\n | \"huge\";\nexport type IconType = \"icon\" | \"pictogram\";\n\nexport interface IconProps extends React.SVGAttributes<SVGSVGElement> {\n /** Accessible label for the icon. */\n alt?: string;\n /** Icon color. */\n color?: IconColor;\n /** Icon name (required). */\n name: string;\n /** Icon size. */\n size?: IconSize;\n /** Path to the SVG sprite. */\n spritePath?: string;\n /**\n * Icon type. When set to \"pictogram\", the component will automatically\n * switch between light and dark versions based on theme classes (.is-light/.is-dark).\n */\n type?: IconType;\n /**\n * @deprecated Use type=\"pictogram\" instead.\n * Whether this icon should adapt to theme (light/dark).\n * When true, the component will automatically switch between\n * light and dark versions based on theme classes (.is-light/.is-dark).\n */\n className?: string;\n}\n\nconst CLASS_ROOT = \"icon\";\n\nconst Icon: React.FC<IconProps> = ({\n className,\n alt,\n color,\n name,\n size,\n spritePath = \"/sprite.svg\",\n type = \"icon\",\n ...other\n}) => {\n const contextPath = useContext(SpritePathContext);\n\n const isPictogram = type === \"pictogram\";\n\n const classes = cx(\n CLASS_ROOT,\n {\n [`${CLASS_ROOT}--${size}`]: size,\n [`${CLASS_ROOT}--${color}`]: color,\n [`${CLASS_ROOT}--pictogram`]: isPictogram,\n },\n className,\n );\n\n // For theme-aware icons, we need to render both light and dark versions\n if (isPictogram) {\n const finalSpritePath =\n spritePath !== \"/sprite.svg\" || typeof contextPath === \"undefined\"\n ? spritePath\n : contextPath;\n\n return (\n <svg\n className={classes}\n aria-hidden={alt !== undefined ? undefined : \"true\"}\n role={alt !== undefined ? \"img\" : undefined}\n {...other}\n >\n {alt !== undefined && alt.length > 0 && <title>{alt}</title>}\n {/* Light theme version (default) */}\n <use\n className={`${CLASS_ROOT}__use ${CLASS_ROOT}__use--light`}\n xlinkHref={`${finalSpritePath}#${name}`}\n />\n {/* Dark theme version */}\n <use\n className={`${CLASS_ROOT}__use ${CLASS_ROOT}__use--dark`}\n xlinkHref={`${finalSpritePath}#${name}--dark`}\n />\n </svg>\n );\n }\n\n // Regular icon rendering (existing behavior)\n return (\n <svg\n className={classes}\n aria-hidden={alt !== undefined ? undefined : \"true\"}\n role={alt !== undefined ? \"img\" : undefined}\n {...other}\n >\n {alt !== undefined && alt.length > 0 && <title>{alt}</title>}\n <use\n xlinkHref={\n spritePath !== \"/sprite.svg\" || typeof contextPath === \"undefined\"\n ? `${spritePath}#${name}`\n : `${contextPath}#${name}`\n }\n />\n </svg>\n );\n};\n\nIcon.displayName = \"Icon\";\n\nexport { Icon };\n","import React from \"react\";\nimport cx from \"classnames\";\n\nimport { Icon } from \"../Icon\";\nimport { Button, ButtonSize } from \"./Button\";\n\nexport type IconPosition = \"left\" | \"right\";\n\nexport interface IconButtonProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"type\" | \"ref\"> {\n /** Name of the icon */\n iconName: string;\n /** Position of the icon */\n iconPosition?: IconPosition;\n /** Class of the icon */\n iconClassName?: string;\n /** Button size. Also affects icon size */\n size?: ButtonSize;\n /** Use square button. Children are rendered as visually hidden */\n isSquare?: boolean;\n children?: React.ReactNode;\n}\n\nconst IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n (\n {\n iconName,\n iconPosition = \"left\",\n iconClassName,\n children,\n size,\n isSquare,\n ...other\n },\n ref,\n ) => {\n const IconComponent = ({ className, ...props }: { className?: string }) => (\n <Icon\n name={iconName}\n size={size ?? \"medium\"}\n className={cx(iconClassName, className)}\n {...props}\n />\n );\n\n if (isSquare) {\n return (\n <Button size={size} isSquare {...other} ref={ref}>\n <IconComponent />\n <span className=\"visually-hidden\">{children}</span>\n </Button>\n );\n }\n\n return (\n <Button ref={ref} size={size} {...other}>\n {iconPosition === \"left\" && <IconComponent className=\"btn__icon-left\" />}\n {children}\n {iconPosition === \"right\" && <IconComponent className=\"btn__icon-right\" />}\n </Button>\n );\n },\n);\n\nIconButton.displayName = \"IconButton\";\n\nexport { IconButton };\n","import cx from \"classnames\";\n\ninterface ButtonsProps extends React.HTMLAttributes<HTMLDivElement> {\n /** On XS viewport, forces buttons to stack vertically and span the available width. */\n isStackedOnXs?: boolean;\n className?: string;\n children?: React.ReactNode;\n}\n\nconst CLASS_ROOT = \"buttons\";\n\nconst Buttons: React.FC<ButtonsProps> = ({\n isStackedOnXs,\n children,\n className,\n ...other\n}) => (\n <div\n className={cx(\n CLASS_ROOT,\n {\n [`${CLASS_ROOT}--stack-on-xs`]: isStackedOnXs,\n },\n className,\n )}\n {...other}\n >\n {children}\n </div>\n);\n\nButtons.displayName = \"Buttons\";\n\nexport { Buttons };\n","const not = {\n inert: ':not([inert]):not([inert] *)',\n negTabIndex: ':not([tabindex^=\"-\"])',\n disabled: ':not(:disabled)',\n};\n\nvar focusableSelectors = [\n `a[href]${not.inert}${not.negTabIndex}`,\n `area[href]${not.inert}${not.negTabIndex}`,\n `input:not([type=\"hidden\"]):not([type=\"radio\"])${not.inert}${not.negTabIndex}${not.disabled}`,\n `input[type=\"radio\"]${not.inert}${not.negTabIndex}${not.disabled}`,\n `select${not.inert}${not.negTabIndex}${not.disabled}`,\n `textarea${not.inert}${not.negTabIndex}${not.disabled}`,\n `button${not.inert}${not.negTabIndex}${not.disabled}`,\n `details${not.inert} > summary:first-of-type${not.negTabIndex}`,\n // Discard until Firefox supports `:has()`\n // See: https://github.com/KittyGiraudel/focusable-selectors/issues/12\n // `details:not(:has(> summary))${not.inert}${not.negTabIndex}`,\n `iframe${not.inert}${not.negTabIndex}`,\n `audio[controls]${not.inert}${not.negTabIndex}`,\n `video[controls]${not.inert}${not.negTabIndex}`,\n `[contenteditable]${not.inert}${not.negTabIndex}`,\n `[tabindex]${not.inert}${not.negTabIndex}`,\n];\n\n/**\n * Set the focus to the first element with `autofocus` with the element or the\n * element itself.\n */\nfunction focus(el) {\n (el.querySelector('[autofocus]') || el).focus();\n}\n/**\n * Get the first and last focusable elements within a given element.\n */\nfunction getFocusableEdges(el) {\n // Check for a focusable element within the subtree of the given element.\n const firstEl = findFocusableEl(el, true);\n // Only if we find the first element do we need to look for the last one. If\n // there’s no last element, we set `lastEl` as a reference to `firstEl` so\n // that the returned array is still always of length 2.\n const lastEl = firstEl ? findFocusableEl(el, false) || firstEl : null;\n return [firstEl, lastEl];\n}\n/**\n * Find the first focusable element inside the given element if `forward` is\n * truthy or the last focusable element otherwise.\n */\nfunction findFocusableEl(el, forward) {\n // If we’re walking forward, check if this element is focusable, and return it\n // immediately if it is.\n if (forward && isFocusable(el))\n return el;\n // We should only search the subtree of this element if it can have focusable\n // children.\n if (canHaveFocusableChildren(el)) {\n // Start walking the DOM tree, looking for focusable elements.\n // Case 1: If this element has a shadow root, search it recursively.\n if (el.shadowRoot) {\n // Descend into this subtree.\n let next = getNextChildEl(el.shadowRoot, forward);\n // Traverse the siblings, searching the subtree of each one for focusable\n // elements.\n while (next) {\n const focusableEl = findFocusableEl(next, forward);\n if (focusableEl)\n return focusableEl;\n next = getNextSiblingEl(next, forward);\n }\n }\n // Case 2: If this element is a slot for a Custom Element, search its\n // assigned elements recursively.\n else if (el.localName === 'slot') {\n const assignedElements = el.assignedElements({\n flatten: true,\n });\n if (!forward)\n assignedElements.reverse();\n for (const assignedElement of assignedElements) {\n const focusableEl = findFocusableEl(assignedElement, forward);\n if (focusableEl)\n return focusableEl;\n }\n }\n // Case 3: this is a regular Light DOM element. Search its subtree.\n else {\n // Descend into this subtree.\n let next = getNextChildEl(el, forward);\n // Traverse siblings, searching the subtree of each one\n // for focusable elements.\n while (next) {\n const focusableEl = findFocusableEl(next, forward);\n if (focusableEl)\n return focusableEl;\n next = getNextSiblingEl(next, forward);\n }\n }\n }\n // If we’re walking backward, we want to check the element’s entire subtree\n // before checking the element itself. If this element is focusable, return\n // it.\n if (!forward && isFocusable(el))\n return el;\n return null;\n}\nfunction getNextChildEl(el, forward) {\n return forward ? el.firstElementChild : el.lastElementChild;\n}\nfunction getNextSiblingEl(el, forward) {\n return forward ? el.nextElementSibling : el.previousElementSibling;\n}\n/**\n * Determine if an element is hidden from the user.\n */\nconst isHidden = (el) => {\n // Browsers hide all non-<summary> descendants of closed <details> elements\n // from user interaction, but those non-<summary> elements may still match our\n // focusable-selectors and may still have dimensions, so we need a special\n // case to ignore them.\n if (el.matches('details:not([open]) *') &&\n !el.matches('details>summary:first-of-type'))\n return true;\n // If this element has no painted dimensions, it's hidden.\n return !(el.offsetWidth || el.offsetHeight || el.getClientRects().length);\n};\n/**\n * Determine if an element is focusable and has user-visible painted dimensions.\n */\nconst isFocusable = (el) => {\n // A shadow host that delegates focus will never directly receive focus,\n // even with `tabindex=0`. Consider our <fancy-button> custom element, which\n // delegates focus to its shadow button:\n //\n // <fancy-button tabindex=\"0\">\n // #shadow-root\n // <button><slot></slot></button>\n // </fancy-button>\n //\n // The browser acts as as if there is only one focusable element – the shadow\n // button. Our library should behave the same way.\n if (el.shadowRoot?.delegatesFocus)\n return false;\n return el.matches(focusableSelectors.join(',')) && !isHidden(el);\n};\n/**\n * Determine if an element can have focusable children. Useful for bailing out\n * early when walking the DOM tree.\n * @example\n * This div is inert, so none of its children can be focused, even though they\n * meet our criteria for what is focusable. Once we check the div, we can skip\n * the rest of the subtree.\n * ```html\n * <div inert>\n * <button>Button</button>\n * <a href=\"#\">Link</a>\n * </div>\n * ```\n */\nfunction canHaveFocusableChildren(el) {\n // The browser will never send focus into a Shadow DOM if the host element\n // has a negative tabindex. This applies to both slotted Light DOM Shadow DOM\n // children\n if (el.shadowRoot && el.getAttribute('tabindex') === '-1')\n return false;\n // Elemments matching this selector are either hidden entirely from the user,\n // or are visible but unavailable for interaction. Their descentants can never\n // receive focus.\n return !el.matches(':disabled,[hidden],[inert]');\n}\n/**\n * Get the active element, accounting for Shadow DOM subtrees.\n * @author Cory LaViska\n * @see: https://www.abeautifulsite.net/posts/finding-the-active-element-in-a-shadow-root/\n */\nfunction getActiveEl(root = document) {\n const activeEl = root.activeElement;\n if (!activeEl)\n return null;\n // If there’s a shadow root, recursively find the active element within it.\n // If the recursive call returns null, return the active element\n // of the top-level Document.\n if (activeEl.shadowRoot)\n return getActiveEl(activeEl.shadowRoot) || document.activeElement;\n // If not, we can just return the active element\n return activeEl;\n}\n/**\n * Trap the focus inside the given element\n */\nfunction trapTabKey(el, event) {\n const [firstFocusableEl, lastFocusableEl] = getFocusableEdges(el);\n // If there are no focusable children in the dialog, prevent the user from\n // tabbing out of it\n if (!firstFocusableEl)\n return event.preventDefault();\n const activeEl = getActiveEl();\n // If the SHIFT key is pressed while tabbing (moving backwards) and the\n // currently focused item is the first one, move the focus to the last\n // focusable item from the dialog element\n if (event.shiftKey && activeEl === firstFocusableEl) {\n // @ts-ignore: we know that `lastFocusableEl` is not null here\n lastFocusableEl.focus();\n event.preventDefault();\n }\n // If the SHIFT key is not pressed (moving forwards) and the currently focused\n // item is the last one, move the focus to the first focusable item from the\n // dialog element\n else if (!event.shiftKey && activeEl === lastFocusableEl) {\n firstFocusableEl.focus();\n event.preventDefault();\n }\n}\n/**\n * Find the closest element to the given element matching the given selector,\n * accounting for Shadow DOM subtrees.\n * @author Louis St-Amour\n * @see: https://stackoverflow.com/a/56105394\n */\nfunction closest(selector, base) {\n function from(el) {\n if (!el || el === document || el === window)\n return null;\n // Reading the `assignedSlot` property from the element (as suggested by the\n // aforementioned StackOverflow answer) is not enough, because it does not\n // take into consideration elements nested deeply within a <slot>. For these\n // elements, the `assignedSlot` property is `null` as it is only specified\n // for top-level elements within a <slot>. To still find the closest <slot>,\n // we walk up the tree looking for the `assignedSlot` property.\n const slot = findAssignedSlot(el);\n if (slot)\n el = slot;\n return (el.closest(selector) ||\n from(el.getRootNode().host));\n }\n return from(base);\n}\nfunction findAssignedSlot(node) {\n return (node.assignedSlot ||\n (node.parentNode ? findAssignedSlot(node.parentNode) : null));\n}\n\nconst SCOPE = 'data-a11y-dialog';\nclass A11yDialog {\n $el;\n id;\n previouslyFocused;\n shown;\n constructor(element) {\n this.$el = element;\n this.id = this.$el.getAttribute(SCOPE) || this.$el.id;\n this.previouslyFocused = null;\n this.shown = false;\n this.maintainFocus = this.maintainFocus.bind(this);\n this.bindKeypress = this.bindKeypress.bind(this);\n this.handleTriggerClicks = this.handleTriggerClicks.bind(this);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this);\n this.$el.setAttribute('aria-hidden', 'true');\n this.$el.setAttribute('aria-modal', 'true');\n this.$el.setAttribute('tabindex', '-1');\n if (!this.$el.hasAttribute('role')) {\n this.$el.setAttribute('role', 'dialog');\n }\n document.addEventListener('click', this.handleTriggerClicks, true);\n }\n /**\n * Destroy the current instance (after making sure the dialog has been hidden)\n * and remove all associated listeners from dialog openers and closers\n */\n destroy() {\n // Dispatch a `destroy` event\n const destroyEvent = this.fire('destroy');\n // If the event was prevented, do not continue with the normal behavior\n if (destroyEvent.defaultPrevented)\n return this;\n // Hide the dialog to avoid destroying an open instance\n this.hide();\n // Remove the click event delegates for our openers and closers\n document.removeEventListener('click', this.handleTriggerClicks, true);\n // Clone and replace the dialog element to prevent memory leaks caused by\n // event listeners that the author might not have cleaned up.\n this.$el.replaceWith(this.$el.cloneNode(true));\n return this;\n }\n /**\n * Show the dialog element, trap the current focus within it, listen for some\n * specific key presses and fire all registered callbacks for `show` event\n */\n show(event) {\n // If the dialog is already open, abort\n if (this.shown)\n return this;\n // Dispatch a `show` event\n const showEvent = this.fire('show', event);\n // If the event was prevented, do not continue with the normal behavior\n if (showEvent.defaultPrevented)\n return this;\n // Keep a reference to the currently focused element to be able to restore\n // it later\n this.shown = true;\n this.$el.removeAttribute('aria-hidden');\n this.previouslyFocused = getActiveEl();\n // Due to a long lasting bug in Safari, clicking an interactive element\n // (like a <button>) does *not* move the focus to that element, which means\n // `document.activeElement` is whatever element is currently focused (like\n // an <input>), or the <body> element otherwise. We can work around that\n // problem by checking whether the focused element is the <body>, and if it,\n // store the click event target.\n // See: https://bugs.webkit.org/show_bug.cgi?id=22261\n if (this.previouslyFocused?.tagName === 'BODY' && event?.target) {\n this.previouslyFocused = event.target;\n }\n // Set the focus to the dialog element\n // See: https://github.com/KittyGiraudel/a11y-dialog/pull/583\n if (event?.type === 'focus') {\n this.maintainFocus();\n }\n else {\n focus(this.$el);\n }\n // Bind a focus event listener to the body element to make sure the focus\n // stays trapped inside the dialog while open, and start listening for some\n // specific key presses (TAB and ESC)\n document.body.addEventListener('focus', this.maintainFocus, true);\n this.$el.addEventListener('keydown', this.bindKeypress, true);\n return this;\n }\n /**\n * Hide the dialog element, restore the focus to the previously active\n * element, stop listening for some specific key presses and fire all\n * registered callbacks for `hide` event\n */\n hide(event) {\n // If the dialog is already closed, abort\n if (!this.shown)\n return this;\n // Dispatch a `hide` event\n const hideEvent = this.fire('hide', event);\n // If the event was prevented, do not continue with the normal behavior\n if (hideEvent.defaultPrevented)\n return this;\n this.shown = false;\n this.$el.setAttribute('aria-hidden', 'true');\n // Remove the focus event listener to the body element and stop listening\n // for specific key presses\n document.body.removeEventListener('focus', this.maintainFocus, true);\n this.$el.removeEventListener('keydown', this.bindKeypress, true);\n // Ensure the previously focused element (if any) has a `focus` method\n // before attempting to call it to account for SVG elements\n // See: https://github.com/KittyGiraudel/a11y-dialog/issues/108\n this.previouslyFocused?.focus?.();\n return this;\n }\n /**\n * Register a new callback for the given event type\n */\n on(type, handler, options) {\n this.$el.addEventListener(type, handler, options);\n return this;\n }\n /**\n * Unregister an existing callback for the given event type\n */\n off(type, handler, options) {\n this.$el.removeEventListener(type, handler, options);\n return this;\n }\n /**\n * Dispatch and return a custom event from the DOM element associated with\n * this dialog; this allows authors to listen for and respond to the events\n * in their own code\n */\n fire(type, event) {\n const customEvent = new CustomEvent(type, {\n detail: event,\n cancelable: true,\n });\n this.$el.dispatchEvent(customEvent);\n return customEvent;\n }\n /**\n * Add a delegated event listener for when elememts that open or close the\n * dialog are clicked, and call `show` or `hide`, respectively\n */\n handleTriggerClicks(event) {\n // We need to retrieve the click target while accounting for Shadow DOM.\n // When within a web component, `event.target` is the shadow root (e.g.\n // `<my-dialog>`), so we need to use `event.composedPath()` to get the click\n // target\n // See: https://github.com/KittyGiraudel/a11y-dialog/issues/582\n const target = event.composedPath()[0];\n const opener = closest(`[${SCOPE}-show=\"${this.id}\"]`, target);\n const explicitCloser = closest(`[${SCOPE}-hide=\"${this.id}\"]`, target);\n const implicitCloser = closest(`[${SCOPE}-hide]`, target) &&\n closest('[aria-modal=\"true\"]', target) === this.$el;\n // We use `closest(..)` (instead of `matches(..)`) so that clicking an\n // element nested within a dialog opener does cause the dialog to open, and\n // we use our custom `closest(..)` function so that it can cross shadow\n // boundaries\n // See: https://github.com/KittyGiraudel/a11y-dialog/issues/712\n if (opener)\n this.show(event);\n if (explicitCloser || implicitCloser)\n this.hide(event);\n }\n /**\n * Private event handler used when listening to some specific key presses\n * (namely ESC and TAB)\n */\n bindKeypress(event) {\n // This is an escape hatch in case there are nested open dialogs, so that\n // only the top most dialog gets interacted with (`closest` is basically\n // `Element.prototype.closest()` accounting for Shadow DOM subtrees)\n if (closest('[aria-modal=\"true\"]', getActiveEl()) !== this.$el) {\n return;\n }\n let hasOpenPopover = false;\n try {\n hasOpenPopover = !!this.$el.querySelector('[popover]:not([popover=\"manual\"]):popover-open');\n }\n catch {\n // Run that DOM query in a try/catch because not all browsers support the\n // `:popover-open` selector, which would cause the whole expression to\n // fail\n // See: https://caniuse.com/mdn-css_selectors_popover-open\n // See: https://github.com/KittyGiraudel/a11y-dialog/pull/578#discussion_r1343215149\n }\n // If the dialog is shown and the ESC key is pressed, prevent any further\n // effects from the ESC key and hide the dialog, unless:\n // - its role is `alertdialog`, which means it should be modal\n // - or it contains an open popover, in which case ESC should close it\n if (event.key === 'Escape' &&\n this.$el.getAttribute('role') !== 'alertdialog' &&\n !hasOpenPopover) {\n event.preventDefault();\n this.hide(event);\n }\n // If the dialog is shown and the TAB key is pressed, make sure the focus\n // stays trapped within the dialog element\n if (event.key === 'Tab') {\n trapTabKey(this.$el, event);\n }\n }\n /**\n * If the dialog is shown and the focus is not within a dialog element (either\n * this one or another one in case of nested dialogs) or an element with the\n * ignore attribute, move it back to the dialog container\n * See: https://github.com/KittyGiraudel/a11y-dialog/issues/177\n */\n maintainFocus() {\n // We use `getActiveEl()` and not `event.target` here because the latter can\n // be a shadow root. This can happen when having a focusable element after\n // slotted content: tabbing out of it causes this focus listener to trigger\n // with the shadow root as a target event. In such a case, the focus would\n // be incorrectly moved to the dialog, which shouldn’t happen. Getting the\n // active element (while accounting for Shadow DOM) avoids that problem.\n // See: https://github.com/KittyGiraudel/a11y-dialog/issues/778\n const target = getActiveEl();\n if (!closest(`[aria-modal=\"true\"], [${SCOPE}-ignore-focus-trap]`, target)) {\n focus(this.$el);\n }\n }\n}\n\nfunction instantiateDialogs() {\n for (const el of document.querySelectorAll('[data-a11y-dialog]')) {\n new A11yDialog(el);\n }\n}\nif (typeof document !== 'undefined') {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', instantiateDialogs);\n }\n else {\n instantiateDialogs();\n }\n}\n\nexport { A11yDialog as default };\n","/*!\n* tabbable 6.2.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nvar candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n var result = inert || lookUp && node && isInert(node.parentNode); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nvar hasTabIndex = function hasTabIndex(node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nvar getTabIndex = function getTabIndex(node) {\n if (!node) {\n throw new Error('No node provided');\n }\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n};\n\n/**\n * Determine the tab index of a given node __for sort order purposes__.\n * @param {HTMLElement} node\n * @param {boolean} [isScope] True for a custom element with shadow root or slot that, by default,\n * has tabIndex -1, but needs to be sorted by document order in order for its content to be\n * inserted into the correct sort position.\n * @returns {number} Tab order (negative, 0, or positive number).\n */\nvar getSortOrderTabIndex = function getSortOrderTabIndex(node, isScope) {\n var tabIndex = getTabIndex(node);\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n return tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nvar isNodeAttached = function isNodeAttached(node) {\n var _nodeRoot;\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n if (!displayCheck || displayCheck === 'full' || displayCheck === 'legacy-full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled ||\n // we must do an inert look up to filter out any elements inside an inert ancestor\n // because we're limited in the type of selectors we can use in JSDom (see related\n // note related to `candidateSelectors`)\n isInert(node) || isHiddenInput(node) || isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getSortOrderTabIndex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return sortByOrder(candidates);\n};\nvar focusable = function focusable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, getTabIndex, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","import A11yDialog from \"a11y-dialog\";\nimport { isTabbable } from \"tabbable\";\n\ninterface ModalConfig {\n /** Class which indicates that modal is open */\n classModalIsOpen: string;\n /** Class on body which indicates that modal is open */\n classModalIsOpenBody: string;\n /** Root of page content which should be hidden when modal is open */\n root: string;\n /** Move modal into this element selector (must be unique in DOM) */\n modalsRoot: string;\n}\n\nconst defaultConfig = (): ModalConfig => ({\n /** Class which indicates that modal is open */\n classModalIsOpen: \"is-active\",\n /** Class on body which indicates that modal is open */\n classModalIsOpenBody: \"has-modal\",\n /** Root of page content which should be hidden when modal is open */\n root: \"#root\",\n /** Move modal into this element selector (must be unique in DOM) */\n modalsRoot: \"#root-modals\",\n});\n\ninterface HTMLElementWithModal extends HTMLElement {\n ODS_Modal?: Modal;\n}\n\nexport default class Modal {\n element: HTMLElementWithModal;\n config: ModalConfig;\n instance!: A11yDialog; // Using definite assignment assertion as it's initialized in init()\n\n constructor(element: HTMLElement, config?: Partial<ModalConfig>) {\n this.element = element as HTMLElementWithModal;\n this.config = { ...defaultConfig(), ...config };\n\n this.handleShow = this.handleShow.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this);\n this.headerFirstItemSpacing = this.headerFirstItemSpacing.bind(this);\n\n Modal.moveToModalRoot = Modal.moveToModalRoot.bind(this);\n Modal.lockBody = Modal.lockBody.bind(this);\n Modal.unlockBody = Modal.unlockBody.bind(this);\n\n this.element.ODS_Modal = this;\n\n this.init();\n\n return this;\n }\n\n static getInstance(el: HTMLElement | null): Modal | null {\n if (!el) return null;\n const modalEl = el as HTMLElementWithModal;\n return modalEl.ODS_Modal || null;\n }\n\n handleShow(el: HTMLElement): void {\n Modal.lockBody();\n if (el) el.classList.add(this.config.classModalIsOpen);\n\n // Long modals can have first focusabble element under the fold, so static content above the fold should be focused instead to prevent undesirable scrolling\n const initialFocusEl = el.querySelector(\"[data-a11y-dialog-initial-focus]\");\n\n if (!initialFocusEl) {\n return;\n }\n\n // set tabindex to -1 so element can't be focused via keyboard\n if (!isTabbable(initialFocusEl as HTMLElement)) {\n initialFocusEl.setAttribute(\"tabindex\", \"-1\");\n }\n\n (initialFocusEl as HTMLElement).focus();\n }\n\n handleHide(el: HTMLElement): void {\n Modal.unlockBody();\n if (el) el.classList.remove(this.config.classModalIsOpen);\n }\n\n show(): void {\n this.instance.show();\n }\n\n hide(): void {\n this.instance.hide();\n }\n\n headerFirstItemSpacing(): void {\n /**\n * Target the first element which is not .btn inside .modal__header and add margin-right 40px.\n * css has its limitations and it is not possible with pseudo selectors\n */\n const modalHeader = this.element.querySelector(\".modal__header\");\n if (modalHeader) {\n const hasNoSpacingClass = modalHeader.classList.contains(\n \"modal__header--no-spacing\",\n );\n const firstNonBtnElement = Array.from(modalHeader.children).find(\n (child) => !child.classList.contains(\"btn\"),\n );\n if (firstNonBtnElement && !hasNoSpacingClass) {\n (firstNonBtnElement as HTMLElement).style.marginRight = \"40px\";\n }\n }\n }\n\n init(): void {\n if (this.config.modalsRoot) {\n Modal.moveToModalRoot(\n this.element,\n document.querySelector(this.config.modalsRoot),\n );\n }\n\n this.instance = new A11yDialog(this.element);\n\n this.instance.on(\"show\", (event: Event) => {\n const dialogEl = event.currentTarget as HTMLElement;\n this.handleShow(dialogEl);\n });\n\n this.instance.on(\"hide\", (event: Event) => {\n const dialogEl = event.currentTarget as HTMLElement;\n this.handleHide(dialogEl);\n });\n\n this.headerFirstItemSpacing();\n }\n\n destroy(): void {\n this.instance.destroy();\n this.element.ODS_Modal = this;\n }\n\n update(): void {\n this.destroy();\n this.init();\n }\n\n static moveToModalRoot(el: HTMLElement, container: Element | null): void {\n if (container) {\n container.appendChild(el);\n } else {\n console.warn(\n `\\`modalsRoot: ${(this as unknown as Modal).config?.modalsRoot}\\` element is not present in DOM. Modal will be placed inside content which can affect it's styling. Please provide \\`modalsRoot\\` selector (should be placed outside of main contant, usualy in end of <body /> tag)`,\n );\n }\n }\n\n static lockBody(className?: string, root?: string): void {\n const actualClassName =\n className || (this as unknown as Modal).config?.classModalIsOpenBody;\n const actualRoot = root || (this as unknown as Modal).config?.root;\n\n const container = document.querySelector(actualRoot);\n // store current scrollTop value\n const scrollTop =\n document.documentElement.scrollTop || document.body.scrollTop;\n document.body.setAttribute(\"data-lock-scrolltop\", scrollTop.toString());\n\n // add locking styles to body\n document.body.style.height = \"100%\";\n document.body.style.width = \"100%\";\n document.body.style.overflow = \"hidden\";\n document.body.style.position = \"fixed\";\n\n // add locking styles to scrollTop\n if (container) {\n (container as HTMLElement).style.height = \"100%\";\n (container as HTMLElement).style.width = \"100%\";\n (container as HTMLElement).style.overflow = \"hidden\";\n (container as HTMLElement).style.position = \"fixed\";\n // scroll page-container to scrollTop position\n (container as HTMLElement).scrollTop = scrollTop;\n }\n\n // add modal class\n document.body.classList.add(actualClassName);\n\n // attempt to scroll top fixed position\n window.requestAnimationFrame(() => {\n window.scrollTo(0, scrollTop);\n });\n }\n\n static unlockBody(className?: string, root?: string): void {\n const actualClassName =\n className || (this as unknown as Modal).config?.classModalIsOpenBody;\n const actualRoot = root || (this as unknown as Modal).config?.root;\n\n const container = document.querySelector(actualRoot);\n const scrollTop = document.body.getAttribute(\"data-lock-scrolltop\") || \"0\";\n\n // remove locking styles from body\n document.body.style.height = \"\";\n document.body.style.width = \"\";\n document.body.style.overflow = \"\";\n document.body.style.position = \"\";\n\n // add modal class\n document.body.classList.remove(actualClassName);\n\n // remove locking styles from page-container\n if (container) {\n (container as HTMLElement).style.height = \"\";\n (container as HTMLElement).style.width = \"\";\n (container as HTMLElement).style.overflow = \"\";\n (container as HTMLElement).style.position = \"\";\n }\n\n // set scroll position back\n window.requestAnimationFrame(() => {\n window.scrollTo({\n left: 0,\n top: parseInt(scrollTop, 10),\n behavior: \"instant\" as ScrollBehavior,\n });\n });\n }\n}\n","import { IconButton } from \"../Button\";\nimport { IconButtonProps } from \"../Button/IconButton\";\nimport { ButtonType } from \"../Button/Button\";\n\ninterface ExtendedIconButtonProps extends IconButtonProps {\n type?: ButtonType;\n}\n\ntype ModalCloseButtonProps = Omit<ExtendedIconButtonProps, \"iconName\">;\n\nconst ModalCloseButton: React.FC<ModalCloseButtonProps> = (props) => (\n <IconButton\n iconName=\"delete\"\n type=\"ghost\"\n isSquare\n size=\"small\"\n className=\"modal__close\"\n data-a11y-dialog-hide\n aria-label=\"Zatvoriť\"\n {...props}\n />\n);\n\nModalCloseButton.displayName = \"ModalCloseButton\";\n\nexport { ModalCloseButton };\n","import cx from \"classnames\";\n\nexport const sizes = [\"small\", \"large\"] as const;\n\nexport type TitleSize = (typeof sizes)[number];\n\ninterface ModalTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {\n size?: TitleSize;\n className?: string;\n children?: React.ReactNode;\n}\n\nconst ModalTitle: React.FC<ModalTitleProps> = ({\n size,\n className,\n children,\n ...other\n}) => (\n <h2\n className={cx(className, {\n \"display-3\": size === \"large\",\n h2: size === \"small\",\n })}\n {...other}\n >\n {children}\n </h2>\n);\n\nModalTitle.displayName = \"ModalTitle\";\n\nexport { ModalTitle };\n","import React from \"react\";\nimport cx from \"classnames\";\n\nexport const colors = [\n \"white\",\n \"gray\",\n \"orange\",\n \"orange-dark\",\n \"black\",\n \"blue\",\n \"green\",\n \"pink\",\n \"violet\",\n \"yellow\",\n] as const;\n\nexport type BodyColor = (typeof colors)[number];\n\ninterface ModalBodyProps extends React.HTMLAttributes<HTMLDivElement> {\n color?: BodyColor;\n className?: string;\n children?: React.ReactNode;\n withTopPadding?: boolean;\n disableSpacing?: boolean;\n}\n\nconst CLASS_ROOT = \"modal__body\";\n\nconst ModalBody: React.FC<ModalBodyProps> = ({\n color,\n className,\n children,\n withTopPadding,\n disableSpacing,\n ...other\n}) => (\n <div\n className={cx(CLASS_ROOT, className, {\n [`bg-${color}`]: color,\n [`${CLASS_ROOT}--colorful`]: color,\n [`${CLASS_ROOT}--with-top-padding`]: withTopPadding,\n [`${CLASS_ROOT}--no-spacing`]: disableSpacing,\n })}\n {...other}\n >\n {children}\n </div>\n);\n\nModalBody.displayName = \"ModalBody\";\n\nexport { ModalBody };\n","\"use client\";\n\nimport React, { useEffect } from \"react\";\nimport cx from \"classnames\";\n\nimport { useStatic } from \"../../utils/hooks\";\nimport ConditionalWrapper from \"../../utils/ConditionalWrapper\";\nimport { Button } from \"../Button\";\nimport { Buttons } from \"../Buttons\";\n\n// Use JavaScript version for now, then convert to TypeScript later\nimport ModalStatic from \"./Modal.static\";\nimport { ModalCloseButton } from \"./ModalCloseButton\";\nimport { ModalTitle } from \"./ModalTitle\";\nimport { ModalBody } from \"./ModalBody\";\n\nconst CLASS_ROOT = \"modal\";\n\nexport const sizes = [\"small\", \"large\"] as const;\n\nexport type ModalSize = (typeof sizes)[number];\n\ninterface ModalProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Action buttons in footer */\n actions?: React.ReactNode[];\n /** Full height on XS */\n fullHeight?: boolean;\n /** Sticky footer is visible when modal content is too long */\n hasStickyFooter?: boolean;\n /** Html id attribute. */\n id: string;\n /** isActive controls if modal is opened or closed */\n isActive?: boolean;\n /** Disable plugin initialization. */\n noInit?: boolean;\n /** Custom header renderer. Receives id as function param. Returned element(s) must contain a header with close button. */\n renderHeader?: (id: string) => React.ReactNode;\n /** Custom body renderer. Receives title as function param. Returned element(s) must contain a title. */\n renderBody?: () => React.ReactNode;\n /** Custom footer renderer. Receives actions as function param. Returned element(s) must contain the actions. */\n renderFooter?: () => React.ReactNode;\n /** Custom main title renderer. Receives id as function param. Returned element must be a heading and use this id for accessibility purposes */\n renderTitle?: (id: string) => React.ReactNode;\n /** Modal dialog size */\n size?: ModalSize;\n /** Main title */\n title?: string;\n /** Child elements */\n children?: React.ReactNode;\n /** Additional CSS classes */\n className?: string;\n /** Color scheme for the modal */\n colorScheme?: \"dark\" | \"light\";\n /** Disables header paddings */\n disableHeaderSpacing?: boolean;\n /** Disables body paddings */\n disableBodySpacing?: boolean;\n /** Disables footer paddings */\n disableFooterSpacing?: boolean;\n}\n\nconst defaultProps = {\n actions: [\n <Button key=\"1\" data-a11y-dialog-hide>\n Zatvoriť\n </Button>,\n ],\n noInit: false,\n};\n\nconst Modal: React.FC<ModalProps> = ({\n actions = defaultProps.actions,\n className,\n children,\n hasStickyFooter,\n id,\n noInit = defaultProps.noInit,\n isActive,\n size,\n title,\n renderHeader,\n renderBody,\n renderTitle,\n renderFooter,\n fullHeight,\n colorScheme,\n disableHeaderSpacing,\n disableBodySpacing,\n disableFooterSpacing,\n ...other\n}) => {\n const [modalRef, instance] = useStatic(ModalStatic);\n\n useEffect(() => {\n if (isActive && instance && (instance as any).current) {\n (instance as any).current.show();\n }\n }, [instance, isActive]);\n\n const dialogClasses = cx(\n `${CLASS_ROOT}__dialog`,\n {\n [`${CLASS_ROOT}__dialog--${size}`]: size,\n [`${CLASS_ROOT}__dialog--full-height`]: fullHeight,\n \"is-dark\": colorScheme === \"dark\",\n \"is-light\": colorScheme === \"light\",\n },\n className,\n );\n\n const titleId = `${id}-title`;\n\n const dialogTitle = renderTitle ? (\n renderTitle(id)\n ) : (\n <ModalTitle id={titleId} size={size} data-a11y-dialog-initial-focus>\n {title}\n </ModalTitle>\n );\n\n return (\n <div\n id={id}\n data-modal={!noInit}\n className={CLASS_ROOT}\n ref={modalRef}\n role=\"dialog\"\n aria-hidden=\"true\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n >\n <div className=\"modal__overlay\" tabIndex={-1} data-a11y-dialog-hide />\n <div className={dialogClasses} role=\"document\" {...other}>\n {}\n <div\n className={cx(`${CLASS_ROOT}__header`, {\n [`${CLASS_ROOT}__header--no-spacing`]: disableHeaderSpacing,\n })}\n >\n {renderHeader ? (\n renderHeader(id)\n ) : (\n <>\n <ModalCloseButton />\n {dialogTitle}\n </>\n )}\n </div>\n {renderBody ? (\n renderBody()\n ) : (\n <ModalBody\n disableSpacing={disableBodySpacing}\n withTopPadding={!disableBodySpacing && !!renderHeader}\n >\n {children}\n </ModalBody>\n )}\n <div\n className={cx(`${CLASS_ROOT}__footer`, {\n [`${CLASS_ROOT}__footer--sticky`]: hasStickyFooter,\n [`${CLASS_ROOT}__footer--no-spacing`]: disableFooterSpacing,\n })}\n >\n {renderFooter ? (\n renderFooter()\n ) : (\n <ConditionalWrapper\n condition={actions.length > 1}\n wrapper={<Buttons />}\n >\n {actions.map((action) => action)}\n </ConditionalWrapper>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nModal.displayName = \"Modal\";\n\nexport { Modal };\n","\"use client\";\n\nimport {\n useEffect,\n useCallback,\n useRef,\n useMemo,\n RefCallback,\n type RefObject,\n useState,\n} from \"react\";\n\nimport generateId from \"./generateId\";\n\n// Generic type for any class constructor\ntype StaticClassType<T = any> = new (element: HTMLElement, config?: any) => T;\n\n// Define a generic interface for static class instances\ninterface StaticInstance {\n update?: (config: any) => void;\n destroy?: () => void;\n}\n\n/**\n * A hook to create and manage an instance of a \"static\" class\n * @param StaticClass The class to instantiate\n * @param config Configuration options for the class\n * @returns [ref callback, instance reference]\n */\nconst useStatic = <T extends StaticInstance>(\n StaticClass: StaticClassType<T>,\n config: Record<string, any> = {},\n): [RefCallback<HTMLElement>, RefObject<T | null>] => {\n const instance = useRef<T | null>(null);\n const configRef = useRef(config);\n const elementRef = useRef<HTMLElement | null>(null);\n\n // Update config ref when config changes\n useEffect(() => {\n configRef.current = config ?? {};\n }, [config]);\n\n const ref = useCallback(\n (node: HTMLElement | null) => {\n // Clean up previous instance if element changes\n if (\n elementRef.current &&\n elementRef.current !== node &&\n instance.current\n ) {\n instance.current.destroy?.();\n instance.current = null;\n }\n\n elementRef.current = node;\n\n if (node) {\n // Only create new instance if we don't have one yet\n if (instance.current === null) {\n instance.current = new StaticClass(node, configRef.current);\n } else {\n // Update existing instance with new config\n instance.current.update?.(configRef.current);\n }\n }\n },\n [StaticClass],\n );\n\n // Cleanup on unmount or when StaticClass changes\n useEffect(() => {\n return () => {\n if (instance.current) {\n instance.current.destroy?.();\n instance.current = null;\n }\n elementRef.current = null;\n };\n }, [StaticClass]);\n\n return [ref, instance];\n};\n\n/**\n * A hook for creating React portals\n * From https://www.jayfreestone.com/writing/react-portals-with-hooks/\n * @param id The id of the target DOM element\n * @returns A DOM element that can be used as a portal container\n */\nfunction usePortal(id: string): HTMLDivElement {\n const rootElemRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(\n function setupElement() {\n if (typeof document === \"undefined\") return;\n\n // Create element if it doesn't exist\n if (!rootElemRef.current) {\n rootElemRef.current = document.createElement(\"div\");\n }\n\n // Look for existing target dom element to append to\n const parentElem = document.querySelector(`#${id}`);\n\n // Add the detached element to the parent\n if (parentElem && rootElemRef.current) {\n parentElem.appendChild(rootElemRef.current);\n }\n\n // This function is run on unmount\n return function removeElement() {\n rootElemRef.current?.remove();\n };\n },\n [id],\n );\n\n function getRootElem(): HTMLDivElement {\n if (typeof document === \"undefined\") {\n throw new Error(\"usePortal must be used in a browser environment\");\n }\n\n if (!rootElemRef.current) {\n rootElemRef.current = document.createElement(\"div\");\n }\n return rootElemRef.current;\n }\n\n return getRootElem();\n}\n\n/**\n * Returns unique string for the `id` attribute.\n *\n * @param id Provided id\n * @param name Optional prefix\n * @returns A unique ID string\n */\nconst useUniqueId = (id?: string, name?: string): string =>\n useMemo(() => id ?? generateId(name), [id, name]);\n\n/**\n * Hydration-safe hook for generating a unique, numeric ID for tooltips and similar components.\n * Ensures IDs are consistent between SSR and client, and match test expectations.\n * @param providedId Optional externally provided ID\n * @returns Hydration-safe unique ID string (e.g., \"id-1\")\n */\nconst idCounter = { current: 0 };\n\nfunction useHydrationSafeId(providedId?: string): string {\n const [hydratedId, setHydratedId] = useState<string | undefined>(providedId);\n const idRef = useRef<string | undefined>(providedId);\n\n useEffect(() => {\n if (!providedId) {\n idCounter.current += 1;\n const newId = `id-${idCounter.current}`;\n idRef.current = newId;\n setHydratedId(newId);\n }\n }, [providedId]);\n\n return hydratedId || idRef.current || providedId || \"id-0\";\n}\n\nexport { useStatic, usePortal, useUniqueId, useHydrationSafeId };\n","import React from \"react\";\nimport cx from \"classnames\";\n\ninterface ModalProductHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n image?: React.ReactNode;\n /** Use small spacing */\n space?: \"small\";\n}\n\nexport const CLASS_ROOT = \"modal__product\";\n\nconst ModalProductHeader = React.forwardRef<\n HTMLDivElement,\n ModalProductHeaderProps\n>(({ className, children, image, space, ...other }, ref) => {\n const classes = cx(\n `${CLASS_ROOT}-header`,\n {\n [`${CLASS_ROOT}-header--space-small`]: space === \"small\",\n },\n className,\n );\n\n const contentClasses = `${CLASS_ROOT}-content`;\n\n return (\n <div className={classes} ref={ref} {...other}>\n <div className={contentClasses}>{children}</div>\n {image}\n </div>\n );\n});\n\nModalProductHeader.displayName = \"ModalProductHeader\";\n\nexport { ModalProductHeader };\n","import React from \"react\";\nimport cx from \"classnames\";\n\ninterface ModalProductFooterProps extends React.HTMLAttributes<HTMLDivElement> {\n image?: React.ReactNode;\n /** Use small spacing */\n space?: \"small\";\n button?: React.ReactNode;\n}\n\nexport const CLASS_ROOT = \"modal__product\";\n\nconst ModalProductFooter = React.forwardRef<\n HTMLDivElement,\n ModalProductFooterProps\n>(({ className, children, button, image, space, ...other }, ref) => {\n const classes = cx(\n `${CLASS_ROOT}-footer`,\n // {\n // [`${CLASS_ROOT}-footer--space-small`]: space === \"small\",\n // },\n className,\n );\n\n const contentClasses = `${CLASS_ROOT}-footer-content`;\n const buttonClasses = `${CLASS_ROOT}-footer-button`;\n\n return (\n <div className={classes} ref={ref} {...other}>\n <div className={contentClasses}>{children}</div>\n <div className={buttonClasses}>{button}</div>\n </div>\n );\n});\n\nModalProductFooter.displayName = \"ModalProductFooter\";\n\nexport { ModalProductFooter };\n","import React from \"react\";\nimport cx from \"classnames\";\n\ninterface ModalProductBodyProps extends React.HTMLAttributes<HTMLDivElement> {\n subtitleSection?: React.ReactNode;\n listSection?: React.ReactNode;\n benefitsSection?: React.ReactNode;\n extraPaymentsSection?: React.ReactNode;\n}\n\nexport const CLASS_ROOT = \"modal__product-body\";\n\nconst ModalProductBody = React.forwardRef<\n HTMLDivElement,\n ModalProductBodyProps\n>(\n (\n {\n className,\n subtitleSection,\n listSection,\n benefitsSection,\n extraPaymentsSection,\n ...other\n },\n ref,\n ) => {\n const classes = cx(CLASS_ROOT, className);\n\n const subtitleSectionClass = `${CLASS_ROOT}-subtitle-section`;\n const listSectionClass = `${CLASS_ROOT}-list-section`;\n const accordionSectionClass = `${CLASS_ROOT}-accordion-section`;\n\n return (\n <div className={classes} ref={ref} {...other}>\n {subtitleSection && (\n <div className={subtitleSectionClass}>{subtitleSection}</div>\n )}\n {listSection && <div className={listSectionClass}>{listSection}</div>}\n {benefitsSection && (\n <div className={accordionSectionClass}>{benefitsSection}</div>\n )}\n {extraPaymentsSection && (\n <div className={listSectionClass}>{extraPaymentsSection}</div>\n )}\n </div>\n );\n },\n);\nModalProductBody.displayName = \"ModalProductBody\";\n\nexport { ModalProductBody };\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","appendClass","parseValue","Array","isArray","apply","toString","Object","prototype","includes","key","call","value","newClass","module","exports","default","window","ConditionalWrapper","_ref","condition","wrapper","children","cloneElement","undefined","displayName","process","env","NODE_ENV","getComponentNameFromType","type","$$typeof","REACT_CLIENT_REFERENCE","name","REACT_FRAGMENT_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","tag","console","error","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","_context","REACT_FORWARD_REF_TYPE","innerType","render","REACT_MEMO_TYPE","REACT_LAZY_TYPE","_payload","_init","x","testStringCoercion","checkKeyStringCoercion","JSCompiler_inline_result","e","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","Symbol","toStringTag","constructor","getTaskName","UnknownOwner","Error","elementRefGetterWithDeprecationWarning","componentName","this","didWarnAboutElementRef","props","ref","jsxDEVImpl","config","maybeKey","isStaticChildren","source","self","debugStack","debugTask","dispatcher","isArrayImpl","validateChildKeys","freeze","keys","filter","k","join","didWarnAboutKeySpread","getter","getOwnPropertyDescriptor","get","isReactWarning","hasValidKey","propName","warnAboutAccessingKey","specialPropKeyWarningShown","defineProperty","configurable","defineKeyPropWarningGetter","owner","REACT_ELEMENT_TYPE","_owner","enumerable","_store","writable","ReactElement","ReactSharedInternals","A","getOwner","node","validated","React","require$$0","for","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","createTask","unknownOwnerDebugStack","react_stack_bottom_frame","callStackForError","bind","unknownOwnerDebugTask","reactJsxRuntime_development","Fragment","jsx","trackActualOwner","recentlyCreatedOwnerStacks","jsxs","jsxRuntimeModule","jsxProd","reactJsxRuntime_production","require$$1","CLASS_ROOT","Button","forwardRef","className","_props$htmlType","htmlType","href","isActive","isDefault","isDisabled","colorScheme","size","isSquare","elemRef","other","_objectWithoutProperties","_excluded","cx","_defineProperty","concat","anchorProps","_jsx","_objectSpread","buttonProps","disabled","SpritePathContext","createContext","Icon","alt","color","_ref$spritePath","spritePath","_ref$type","contextPath","useContext","isPictogram","finalSpritePath","_jsxs","role","xlinkHref","IconButton","iconName","_ref$iconPosition","iconPosition","iconClassName","IconComponent","_ref2","_excluded2","Buttons","isStackedOnXs","not","focusableSelectors","focus","el","querySelector","findFocusableEl","forward","isFocusable","shadowRoot","getAttribute","matches","canHaveFocusableChildren","next","getNextChildEl","focusableEl","getNextSiblingEl","localName","assignedElements","flatten","reverse","assignedElement","firstElementChild","lastElementChild","nextElementSibling","previousElementSibling","delegatesFocus","offsetWidth","offsetHeight","getClientRects","isHidden","getActiveEl","root","document","activeEl","activeElement","trapTabKey","event","firstFocusableEl","lastFocusableEl","firstEl","getFocusableEdges","preventDefault","shiftKey","closest","selector","base","from","slot","findAssignedSlot","getRootNode","host","assignedSlot","parentNode","SCOPE","A11yDialog","$el","id","previouslyFocused","shown","element","maintainFocus","bindKeypress","handleTriggerClicks","show","hide","setAttribute","hasAttribute","addEventListener","destroy","fire","defaultPrevented","removeEventListener","replaceWith","cloneNode","removeAttribute","tagName","target","body","on","handler","options","off","customEvent","CustomEvent","detail","cancelable","dispatchEvent","composedPath","opener","explicitCloser","implicitCloser","hasOpenPopover","instantiateDialogs","querySelectorAll","readyState","candidateSelector","NoElement","Element","msMatchesSelector","webkitMatchesSelector","_element$getRootNode","ownerDocument","isInert","lookUp","_node$getAttribute","inertAtt","getTabIndex","tabIndex","test","_node$getAttribute2","attValue","isContentEditable","isNaN","parseInt","hasTabIndex","isInput","isNonTabbableRadio","isRadio","radioSet","radioScope","form","queryRadios","CSS","escape","err","message","checked","nodes","getCheckedRadio","isTabbableRadio","isZeroArea","_node$getBoundingClie","getBoundingClientRect","width","height","displayCheck","getShadowRoot","getComputedStyle","visibility","nodeUnderDetails","parentElement","originalNode","rootNode","_nodeRoot","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","nodeRoot","nodeRootHost","attached","contains","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isNodeAttached","isNodeMatchingSelectorFocusable","isHiddenInput","slice","some","child","isDetailsWithSummary","item","isDisabledFromFieldset","isTabbable","isNodeMatchingSelectorTabbable","Modal","_classCallCheck","classModalIsOpen","classModalIsOpenBody","modalsRoot","handleShow","handleHide","headerFirstItemSpacing","moveToModalRoot","lockBody","unlockBody","ODS_Modal","init","container","_config","appendChild","warn","_config2","_config3","actualClassName","actualRoot","scrollTop","documentElement","style","overflow","position","classList","add","requestAnimationFrame","scrollTo","_config4","_config5","remove","left","top","behavior","initialFocusEl","instance","modalHeader","hasNoSpacingClass","firstNonBtnElement","find","marginRight","_this","dialogEl","currentTarget","ModalCloseButton","ModalTitle","h2","ModalBody","withTopPadding","disableSpacing","defaultProps","actions","noInit","_ref$actions","hasStickyFooter","_ref$noInit","title","renderHeader","renderBody","renderTitle","renderFooter","fullHeight","disableHeaderSpacing","disableBodySpacing","disableFooterSpacing","_useStatic","StaticClass","useRef","configRef","elementRef","useEffect","current","useCallback","_instance$current$des","_instance$current","_instance$current$upd","_instance$current2","update","_instance$current$des2","_instance$current3","useStatic","ModalStatic","_useStatic2","_slicedToArray","modalRef","dialogClasses","titleId","dialogTitle","_Fragment","map","action","ModalProductHeader","image","space","contentClasses","ModalProductFooter","button","buttonClasses","ModalProductBody","subtitleSection","listSection","benefitsSection","extraPaymentsSection","subtitleSectionClass","listSectionClass","accordionSectionClass"],"mappings":"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","x_google_ignoreList":[0,2,3,4,10,11]}
|