@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
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { render } from "@testing-library/react";
|
|
2
|
+
import { axe } from "jest-axe";
|
|
3
|
+
|
|
4
|
+
import { BodyBanner } from "../";
|
|
5
|
+
|
|
6
|
+
const example = (
|
|
7
|
+
<>
|
|
8
|
+
<BodyBanner size="small" buttonText="Learn More">
|
|
9
|
+
<h3>Small Banner Example</h3>
|
|
10
|
+
<p>This is a small banner with image and call-to-action button.</p>
|
|
11
|
+
</BodyBanner>
|
|
12
|
+
|
|
13
|
+
<BodyBanner
|
|
14
|
+
size="large"
|
|
15
|
+
buttonText="Get Started"
|
|
16
|
+
imageUrl="https://picsum.photos/seed/test/640/380"
|
|
17
|
+
>
|
|
18
|
+
<h3>Large Banner Example</h3>
|
|
19
|
+
<p>This is a large banner with two-column layout.</p>
|
|
20
|
+
</BodyBanner>
|
|
21
|
+
|
|
22
|
+
<BodyBanner
|
|
23
|
+
size="small"
|
|
24
|
+
color="background-accent"
|
|
25
|
+
buttonText="Discover"
|
|
26
|
+
imageUrl="https://picsum.photos/seed/test2/640/380"
|
|
27
|
+
>
|
|
28
|
+
<h3>Accent Background</h3>
|
|
29
|
+
<p>Brand accent background banner.</p>
|
|
30
|
+
</BodyBanner>
|
|
31
|
+
|
|
32
|
+
<BodyBanner
|
|
33
|
+
size="small"
|
|
34
|
+
color="surface-subtle"
|
|
35
|
+
buttonText="Explore"
|
|
36
|
+
imageUrl="https://picsum.photos/seed/test3/640/380"
|
|
37
|
+
>
|
|
38
|
+
<h3>Subtle Surface</h3>
|
|
39
|
+
<p>Gentle background color banner.</p>
|
|
40
|
+
</BodyBanner>
|
|
41
|
+
|
|
42
|
+
<BodyBanner size="small" buttonText="Learn More">
|
|
43
|
+
<h3>Text-Only Banner</h3>
|
|
44
|
+
<p>Banner without image focusing on text content.</p>
|
|
45
|
+
</BodyBanner>
|
|
46
|
+
|
|
47
|
+
<BodyBanner
|
|
48
|
+
size="large"
|
|
49
|
+
color="background-primary"
|
|
50
|
+
buttonText="Start Now"
|
|
51
|
+
imageUrl="https://picsum.photos/seed/test4/640/380"
|
|
52
|
+
>
|
|
53
|
+
<h3>Primary Background</h3>
|
|
54
|
+
<p>Clean white background banner.</p>
|
|
55
|
+
</BodyBanner>
|
|
56
|
+
</>
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
it("is valid html", () => {
|
|
60
|
+
const { container } = render(example);
|
|
61
|
+
expect(container).toHTMLValidate();
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it("is accessible", async () => {
|
|
65
|
+
const { container } = render(example);
|
|
66
|
+
expect(await axe(container)).toHaveNoViolations();
|
|
67
|
+
});
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { render } from "@testing-library/react";
|
|
2
|
+
|
|
3
|
+
import { BodyBanner } from "../";
|
|
4
|
+
|
|
5
|
+
describe("rendering BodyBanner", () => {
|
|
6
|
+
describe("initial state", () => {
|
|
7
|
+
it("has default className body-banner", () => {
|
|
8
|
+
const { container } = render(<BodyBanner />);
|
|
9
|
+
expect(container.querySelector(".body-banner")).toBeInTheDocument();
|
|
10
|
+
expect(container.querySelector(".body-banner")).toHaveClass(
|
|
11
|
+
"body-banner",
|
|
12
|
+
);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
describe("sizes", () => {
|
|
17
|
+
it("doesn't have body-banner--small class when size is small (default)", () => {
|
|
18
|
+
const { container } = render(<BodyBanner />);
|
|
19
|
+
expect(container.querySelector(".body-banner")).not.toHaveClass(
|
|
20
|
+
"body-banner--small",
|
|
21
|
+
);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it("has body-banner--large class when size is large", () => {
|
|
25
|
+
const { container } = render(<BodyBanner size="large" />);
|
|
26
|
+
expect(container.querySelector(".body-banner")).toHaveClass(
|
|
27
|
+
"body-banner--large",
|
|
28
|
+
);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
describe("colors", () => {
|
|
33
|
+
it("doesn't have color class when color is background-primary (default)", () => {
|
|
34
|
+
const { container } = render(<BodyBanner color="background-primary" />);
|
|
35
|
+
expect(container.querySelector(".body-banner")).not.toHaveClass(
|
|
36
|
+
"background-primary",
|
|
37
|
+
);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it("has background-primary class by default (when no color specified)", () => {
|
|
41
|
+
const { container } = render(<BodyBanner />);
|
|
42
|
+
expect(container.querySelector(".body-banner")).toHaveClass(
|
|
43
|
+
"body-banner",
|
|
44
|
+
);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it("has background-accent class when color is background-accent", () => {
|
|
48
|
+
const { container } = render(<BodyBanner color="background-accent" />);
|
|
49
|
+
expect(container.querySelector(".body-banner")).toHaveClass(
|
|
50
|
+
"background-accent",
|
|
51
|
+
);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it("has surface-subtle class when color is surface-subtle", () => {
|
|
55
|
+
const { container } = render(<BodyBanner color="surface-subtle" />);
|
|
56
|
+
expect(container.querySelector(".body-banner")).toHaveClass(
|
|
57
|
+
"surface-subtle",
|
|
58
|
+
);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it("supports all available colors", () => {
|
|
62
|
+
const colors = [
|
|
63
|
+
"background-primary",
|
|
64
|
+
"background-accent",
|
|
65
|
+
"surface-subtle",
|
|
66
|
+
];
|
|
67
|
+
|
|
68
|
+
colors.forEach((color) => {
|
|
69
|
+
const { container } = render(<BodyBanner color={color} />);
|
|
70
|
+
|
|
71
|
+
if (color !== "background-primary") {
|
|
72
|
+
expect(container.querySelector(".body-banner")).toHaveClass(color);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
describe("children and button", () => {
|
|
79
|
+
it("renders children content", () => {
|
|
80
|
+
const { getByText } = render(
|
|
81
|
+
<BodyBanner>
|
|
82
|
+
<h3>Test Title</h3>
|
|
83
|
+
<p>Test Description</p>
|
|
84
|
+
</BodyBanner>,
|
|
85
|
+
);
|
|
86
|
+
expect(getByText("Test Title")).toBeInTheDocument();
|
|
87
|
+
expect(getByText("Test Description")).toBeInTheDocument();
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
it("renders button text", () => {
|
|
91
|
+
const { getByText } = render(<BodyBanner buttonText="Learn More" />);
|
|
92
|
+
expect(getByText("Learn More")).toBeInTheDocument();
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
it("renders both children and button", () => {
|
|
96
|
+
const { getByText } = render(
|
|
97
|
+
<BodyBanner buttonText="Click Me">
|
|
98
|
+
<h3>Content</h3>
|
|
99
|
+
</BodyBanner>,
|
|
100
|
+
);
|
|
101
|
+
expect(getByText("Content")).toBeInTheDocument();
|
|
102
|
+
expect(getByText("Click Me")).toBeInTheDocument();
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
describe("image", () => {
|
|
107
|
+
it("renders image when imageUrl is provided", () => {
|
|
108
|
+
const { getByRole } = render(
|
|
109
|
+
<BodyBanner imageUrl="https://example.com/image.jpg" />,
|
|
110
|
+
);
|
|
111
|
+
const image = getByRole("img");
|
|
112
|
+
expect(image).toBeInTheDocument();
|
|
113
|
+
expect(image).toHaveAttribute("src", "https://example.com/image.jpg");
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it("doesn't render image when imageUrl is not provided", () => {
|
|
117
|
+
const { queryByRole } = render(<BodyBanner />);
|
|
118
|
+
const image = queryByRole("img");
|
|
119
|
+
expect(image).not.toBeInTheDocument();
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
it("renders image in separate column when size is large", () => {
|
|
123
|
+
const { container, getAllByRole } = render(
|
|
124
|
+
<BodyBanner size="large" imageUrl="https://example.com/image.jpg" />,
|
|
125
|
+
);
|
|
126
|
+
const images = getAllByRole("img");
|
|
127
|
+
expect(images.length).toBe(1);
|
|
128
|
+
const imageContainer = container.querySelector(".body-banner__image");
|
|
129
|
+
expect(imageContainer).toBeInTheDocument();
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
it("renders image in content when size is small", () => {
|
|
133
|
+
const { container, getByRole } = render(
|
|
134
|
+
<BodyBanner size="small" imageUrl="https://example.com/image.jpg" />,
|
|
135
|
+
);
|
|
136
|
+
const imageContainer = container.querySelector(".body-banner__image");
|
|
137
|
+
expect(imageContainer).toBeInTheDocument();
|
|
138
|
+
const image = getByRole("img");
|
|
139
|
+
expect(image).toBeInTheDocument();
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
describe("className prop", () => {
|
|
144
|
+
it("has additional class when className is set", () => {
|
|
145
|
+
const { container } = render(<BodyBanner className="custom-class" />);
|
|
146
|
+
expect(container.querySelector(".body-banner")).toHaveClass(
|
|
147
|
+
"body-banner",
|
|
148
|
+
);
|
|
149
|
+
expect(container.querySelector(".body-banner")).toHaveClass(
|
|
150
|
+
"custom-class",
|
|
151
|
+
);
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
describe("button className prop", () => {
|
|
156
|
+
it("applies buttonClassName to the button", () => {
|
|
157
|
+
const { getByRole } = render(
|
|
158
|
+
<BodyBanner buttonText="Click" buttonClassName="custom-button-class" />,
|
|
159
|
+
);
|
|
160
|
+
const button = getByRole("button");
|
|
161
|
+
expect(button).toHaveClass("custom-button-class");
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
describe("responsive layout", () => {
|
|
166
|
+
it("renders grid structure with proper content column", () => {
|
|
167
|
+
const { container } = render(
|
|
168
|
+
<BodyBanner size="small">
|
|
169
|
+
<h3>Test</h3>
|
|
170
|
+
</BodyBanner>,
|
|
171
|
+
);
|
|
172
|
+
const gridCol = container.querySelector(".body-banner__content");
|
|
173
|
+
expect(gridCol).toBeInTheDocument();
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
it("has button container", () => {
|
|
177
|
+
const { container } = render(<BodyBanner buttonText="Click" />);
|
|
178
|
+
const buttonContainer = container.querySelector(".body-banner__button");
|
|
179
|
+
expect(buttonContainer).toBeInTheDocument();
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
it("has content-inner container", () => {
|
|
183
|
+
const { container } = render(
|
|
184
|
+
<BodyBanner>
|
|
185
|
+
<h3>Test</h3>
|
|
186
|
+
</BodyBanner>,
|
|
187
|
+
);
|
|
188
|
+
const contentInner = container.querySelector(
|
|
189
|
+
".body-banner__content-inner",
|
|
190
|
+
);
|
|
191
|
+
expect(contentInner).toBeInTheDocument();
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
});
|
|
@@ -26,22 +26,31 @@ const BreadcrumbItem: React.FC<BreadcrumbItemProps> = ({
|
|
|
26
26
|
}) => {
|
|
27
27
|
const itemClasses = cx(ITEM_CLASS_ROOT, className);
|
|
28
28
|
|
|
29
|
-
//
|
|
29
|
+
// If current page, don't render as anchor even if URL is provided
|
|
30
|
+
if (isCurrent) {
|
|
31
|
+
return (
|
|
32
|
+
<li
|
|
33
|
+
className={itemClasses}
|
|
34
|
+
{...(isCurrent ? { "aria-current": "page" } : {})}
|
|
35
|
+
{...other}
|
|
36
|
+
>
|
|
37
|
+
{text}
|
|
38
|
+
</li>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// If URL provided and not current, render as anchor
|
|
30
43
|
if (url) {
|
|
31
44
|
return (
|
|
32
45
|
<li className={itemClasses}>
|
|
33
|
-
<a
|
|
34
|
-
href={url}
|
|
35
|
-
className={LINK_CLASS_ROOT}
|
|
36
|
-
{...(isCurrent ? { "aria-current": "page" } : {})}
|
|
37
|
-
{...other}
|
|
38
|
-
>
|
|
46
|
+
<a href={url} className={LINK_CLASS_ROOT} {...other}>
|
|
39
47
|
{text}
|
|
40
48
|
</a>
|
|
41
49
|
</li>
|
|
42
50
|
);
|
|
43
51
|
}
|
|
44
52
|
|
|
53
|
+
// No URL, no current status - just text
|
|
45
54
|
return (
|
|
46
55
|
<li className={itemClasses} {...other}>
|
|
47
56
|
{text}
|
|
@@ -12,8 +12,6 @@ interface BreadcrumbItemData {
|
|
|
12
12
|
interface BreadcrumbsProps {
|
|
13
13
|
/** Additional CSS classes */
|
|
14
14
|
className?: string;
|
|
15
|
-
/** Use white breadcrumbs on dark background */
|
|
16
|
-
colorScheme?: "dark" | "light";
|
|
17
15
|
/** Breadcrumb items */
|
|
18
16
|
items: BreadcrumbItemData[];
|
|
19
17
|
/** Navigation label */
|
|
@@ -28,18 +26,12 @@ const Breadcrumbs: React.FC<BreadcrumbsProps> = ({
|
|
|
28
26
|
className,
|
|
29
27
|
label,
|
|
30
28
|
items,
|
|
31
|
-
colorScheme,
|
|
32
29
|
...other
|
|
33
30
|
}) => {
|
|
34
|
-
const classes = cx(CLASS_ROOT, className
|
|
35
|
-
"is-dark": colorScheme === "dark",
|
|
36
|
-
"is-light": colorScheme === "light",
|
|
37
|
-
});
|
|
31
|
+
const classes = cx(CLASS_ROOT, className);
|
|
38
32
|
|
|
39
|
-
//
|
|
40
|
-
const
|
|
41
|
-
const lastAnchorIndex =
|
|
42
|
-
lastUrlIndex === -1 ? -1 : items.length - 1 - lastUrlIndex;
|
|
33
|
+
// Mark the last item as current
|
|
34
|
+
const lastIndex = items.length - 1;
|
|
43
35
|
|
|
44
36
|
return (
|
|
45
37
|
<nav aria-label={label} className={classes} {...other}>
|
|
@@ -48,7 +40,7 @@ const Breadcrumbs: React.FC<BreadcrumbsProps> = ({
|
|
|
48
40
|
<BreadcrumbItem
|
|
49
41
|
{...item}
|
|
50
42
|
key={item.text}
|
|
51
|
-
isCurrent={
|
|
43
|
+
isCurrent={index === lastIndex}
|
|
52
44
|
/>
|
|
53
45
|
))}
|
|
54
46
|
</ol>
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
|
|
44
44
|
@mixin item {
|
|
45
45
|
display: inline-block;
|
|
46
|
-
color: color
|
|
46
|
+
color: var(--color-text-secondary);
|
|
47
47
|
margin-bottom: 0;
|
|
48
48
|
|
|
49
49
|
&::before {
|
|
@@ -70,8 +70,6 @@
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
@mixin item-dark {
|
|
73
|
-
color: color.$gray-600;
|
|
74
|
-
|
|
75
73
|
&::before {
|
|
76
74
|
@include separator-white();
|
|
77
75
|
}
|
|
@@ -89,5 +87,5 @@
|
|
|
89
87
|
}
|
|
90
88
|
|
|
91
89
|
@mixin link-current {
|
|
92
|
-
color: color
|
|
90
|
+
color: var(--color-text-secondary);
|
|
93
91
|
}
|
|
@@ -85,13 +85,13 @@ describe("rendering BreadcrumbItem", () => {
|
|
|
85
85
|
expect(anchor).toHaveAttribute("href", "/test-url");
|
|
86
86
|
});
|
|
87
87
|
|
|
88
|
-
it("
|
|
88
|
+
it("li element has aria-current attribute set to 'page' when isCurrent prop is passed", () => {
|
|
89
89
|
const { container } = render(
|
|
90
90
|
<BreadcrumbItem text="test" url="/test" isCurrent />,
|
|
91
91
|
);
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
);
|
|
92
|
+
const li = container.querySelector("li");
|
|
93
|
+
expect(li).toHaveAttribute("aria-current", "page");
|
|
94
|
+
expect(li.querySelector("a")).not.toBeInTheDocument();
|
|
95
95
|
});
|
|
96
96
|
|
|
97
97
|
it("does not render anchor when isCurrent is true but no URL provided", () => {
|
|
@@ -192,12 +192,14 @@ describe("rendering BreadcrumbItem", () => {
|
|
|
192
192
|
expect(li).toContainElement(anchor);
|
|
193
193
|
});
|
|
194
194
|
|
|
195
|
-
it("aria-current is only applied when
|
|
195
|
+
it("aria-current is only applied when isCurrent is true", () => {
|
|
196
196
|
const { container } = render(
|
|
197
197
|
<BreadcrumbItem text="test" url="/test" isCurrent />,
|
|
198
198
|
);
|
|
199
|
+
const li = container.querySelector("li");
|
|
199
200
|
const anchor = container.querySelector("a");
|
|
200
|
-
expect(
|
|
201
|
+
expect(li).toHaveAttribute("aria-current", "page");
|
|
202
|
+
expect(anchor).not.toBeInTheDocument();
|
|
201
203
|
});
|
|
202
204
|
|
|
203
205
|
it("aria-current is not applied when isCurrent is false", () => {
|
|
@@ -205,13 +207,17 @@ describe("rendering BreadcrumbItem", () => {
|
|
|
205
207
|
<BreadcrumbItem text="test" url="/test" isCurrent={false} />,
|
|
206
208
|
);
|
|
207
209
|
const anchor = container.querySelector("a");
|
|
208
|
-
|
|
210
|
+
const li = container.querySelector("li");
|
|
211
|
+
expect(anchor).toBeInTheDocument();
|
|
212
|
+
expect(li).not.toHaveAttribute("aria-current");
|
|
209
213
|
});
|
|
210
214
|
|
|
211
|
-
it("aria-current is
|
|
215
|
+
it("aria-current is applied to li when isCurrent is true and no URL is provided", () => {
|
|
212
216
|
const { container } = render(<BreadcrumbItem text="test" isCurrent />);
|
|
213
217
|
const anchor = container.querySelector("a");
|
|
218
|
+
const li = container.querySelector("li");
|
|
214
219
|
expect(anchor).not.toBeInTheDocument();
|
|
220
|
+
expect(li).toHaveAttribute("aria-current", "page");
|
|
215
221
|
});
|
|
216
222
|
});
|
|
217
223
|
|
|
@@ -25,15 +25,12 @@ describe("Breadcrumbs Integration Tests", () => {
|
|
|
25
25
|
const anchors = container.querySelectorAll("a");
|
|
26
26
|
|
|
27
27
|
expect(listItems).toHaveLength(6);
|
|
28
|
-
expect(anchors).toHaveLength(5); // Last item
|
|
28
|
+
expect(anchors).toHaveLength(5); // Last item is not an anchor (current page)
|
|
29
29
|
|
|
30
|
-
// Last
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
);
|
|
35
|
-
// Last item should be plain text
|
|
36
|
-
expect(listItems[listItems.length - 1].querySelector("a")).toBeNull();
|
|
30
|
+
// Last item should have aria-current and be plain text
|
|
31
|
+
const lastItem = listItems[listItems.length - 1];
|
|
32
|
+
expect(lastItem).toHaveAttribute("aria-current", "page");
|
|
33
|
+
expect(lastItem.querySelector("a")).toBeNull();
|
|
37
34
|
});
|
|
38
35
|
|
|
39
36
|
it("handles e-commerce navigation correctly", () => {
|
|
@@ -72,16 +69,11 @@ describe("Breadcrumbs Integration Tests", () => {
|
|
|
72
69
|
];
|
|
73
70
|
|
|
74
71
|
const { container } = render(
|
|
75
|
-
<Breadcrumbs
|
|
76
|
-
items={multilingualNav}
|
|
77
|
-
label="Navigation"
|
|
78
|
-
colorScheme="dark"
|
|
79
|
-
/>,
|
|
72
|
+
<Breadcrumbs items={multilingualNav} label="Navigation" />,
|
|
80
73
|
);
|
|
81
74
|
|
|
82
75
|
const nav = container.querySelector("nav");
|
|
83
76
|
expect(nav).toHaveClass("osk-breadcrumbs");
|
|
84
|
-
expect(nav).toHaveClass("is-dark");
|
|
85
77
|
expect(nav).toHaveAttribute("aria-label", "Navigation");
|
|
86
78
|
|
|
87
79
|
const listItems = container.querySelectorAll("li");
|
|
@@ -105,6 +97,7 @@ describe("Breadcrumbs Integration Tests", () => {
|
|
|
105
97
|
|
|
106
98
|
const nav = container.querySelector("nav");
|
|
107
99
|
const ol = container.querySelector("ol");
|
|
100
|
+
const listItems = container.querySelectorAll("li");
|
|
108
101
|
const anchors = container.querySelectorAll("a");
|
|
109
102
|
|
|
110
103
|
// Check navigation structure
|
|
@@ -113,17 +106,16 @@ describe("Breadcrumbs Integration Tests", () => {
|
|
|
113
106
|
expect(ol).toHaveClass("osk-breadcrumbs__container");
|
|
114
107
|
|
|
115
108
|
// Check anchor accessibility
|
|
116
|
-
anchors.forEach((anchor
|
|
109
|
+
anchors.forEach((anchor) => {
|
|
117
110
|
expect(anchor).toHaveAttribute("href");
|
|
118
111
|
expect(anchor).toHaveClass("osk-breadcrumbs__link");
|
|
119
|
-
|
|
120
|
-
// Last anchor should have aria-current
|
|
121
|
-
if (index === anchors.length - 1) {
|
|
122
|
-
expect(anchor).toHaveAttribute("aria-current", "page");
|
|
123
|
-
} else {
|
|
124
|
-
expect(anchor).not.toHaveAttribute("aria-current");
|
|
125
|
-
}
|
|
112
|
+
expect(anchor).not.toHaveAttribute("aria-current");
|
|
126
113
|
});
|
|
114
|
+
|
|
115
|
+
// Last item should have aria-current on li, not anchor
|
|
116
|
+
const lastItem = listItems[listItems.length - 1];
|
|
117
|
+
expect(lastItem).toHaveAttribute("aria-current", "page");
|
|
118
|
+
expect(lastItem.querySelector("a")).toBeNull();
|
|
127
119
|
});
|
|
128
120
|
|
|
129
121
|
it("provides proper keyboard navigation support", () => {
|
|
@@ -145,21 +137,6 @@ describe("Breadcrumbs Integration Tests", () => {
|
|
|
145
137
|
});
|
|
146
138
|
|
|
147
139
|
describe("styling integration", () => {
|
|
148
|
-
it("applies dark mode styling correctly", () => {
|
|
149
|
-
const items = [
|
|
150
|
-
{ url: "/home", text: "Domov" },
|
|
151
|
-
{ text: "Aktuálna stránka" },
|
|
152
|
-
];
|
|
153
|
-
|
|
154
|
-
const { container } = render(
|
|
155
|
-
<Breadcrumbs items={items} colorScheme="dark" />,
|
|
156
|
-
);
|
|
157
|
-
|
|
158
|
-
const nav = container.querySelector("nav");
|
|
159
|
-
expect(nav).toHaveClass("osk-breadcrumbs");
|
|
160
|
-
expect(nav).toHaveClass("is-dark");
|
|
161
|
-
});
|
|
162
|
-
|
|
163
140
|
it("combines custom classes with default classes", () => {
|
|
164
141
|
const items = [{ text: "Test" }];
|
|
165
142
|
|
|
@@ -73,16 +73,6 @@ describe("rendering Breadcrumbs", () => {
|
|
|
73
73
|
);
|
|
74
74
|
});
|
|
75
75
|
|
|
76
|
-
it('has class osk-breadcrumbs--dark when colorScheme="dark" is passed', () => {
|
|
77
|
-
const { container } = render(
|
|
78
|
-
<Breadcrumbs items={[]} colorScheme="dark" />,
|
|
79
|
-
);
|
|
80
|
-
expect(container.getElementsByClassName("osk-breadcrumbs").length).toBe(
|
|
81
|
-
1,
|
|
82
|
-
);
|
|
83
|
-
expect(container.getElementsByClassName("is-dark").length).toBe(1);
|
|
84
|
-
});
|
|
85
|
-
|
|
86
76
|
it("combines multiple CSS classes correctly", () => {
|
|
87
77
|
const { getByTestId } = render(
|
|
88
78
|
<Breadcrumbs
|
|
@@ -104,12 +94,16 @@ describe("rendering Breadcrumbs", () => {
|
|
|
104
94
|
|
|
105
95
|
itemsArr.map(({ url, text }, index) => {
|
|
106
96
|
it(`renders BreadcrumbItem with text ${text} ${
|
|
107
|
-
url
|
|
97
|
+
url && index !== itemsArr.length - 1
|
|
98
|
+
? "inside anchor element with url " + url
|
|
99
|
+
: ""
|
|
108
100
|
}`, () => {
|
|
109
101
|
const { container } = render(<Breadcrumbs items={itemsArr} />);
|
|
110
102
|
const listElements = container.querySelectorAll("li");
|
|
111
103
|
expect(listElements[index].textContent).toBe(text);
|
|
112
|
-
|
|
104
|
+
|
|
105
|
+
// Only non-last items with URL should have anchors
|
|
106
|
+
if (url && index !== itemsArr.length - 1) {
|
|
113
107
|
expect(listElements[index].children[0].getAttribute("href")).toBe(
|
|
114
108
|
url,
|
|
115
109
|
);
|
|
@@ -117,18 +111,18 @@ describe("rendering Breadcrumbs", () => {
|
|
|
117
111
|
});
|
|
118
112
|
});
|
|
119
113
|
|
|
120
|
-
it("
|
|
114
|
+
it("last item does not render as anchor element", () => {
|
|
121
115
|
const items = [
|
|
122
116
|
{ url: "/test1", text: "test1-text" },
|
|
123
117
|
{ url: "/test2", text: "test2-text" },
|
|
124
118
|
{ url: "/test3", text: "test3-text" },
|
|
125
119
|
];
|
|
126
120
|
const { container } = render(<Breadcrumbs items={items} />);
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
);
|
|
121
|
+
const listItems = container.querySelectorAll("li");
|
|
122
|
+
const lastItem = listItems[listItems.length - 1];
|
|
123
|
+
|
|
124
|
+
expect(lastItem).toHaveAttribute("aria-current", "page");
|
|
125
|
+
expect(lastItem.querySelector("a")).not.toBeInTheDocument();
|
|
132
126
|
});
|
|
133
127
|
|
|
134
128
|
it("marks last item as current page even without URL", () => {
|
|
@@ -167,6 +161,7 @@ describe("rendering Breadcrumbs", () => {
|
|
|
167
161
|
const { container } = render(<Breadcrumbs items={complexItemsArr} />);
|
|
168
162
|
const anchors = container.querySelectorAll("a");
|
|
169
163
|
|
|
164
|
+
// Only non-last items should have anchors (last item is current page, plain text)
|
|
170
165
|
anchors.forEach((anchor) => {
|
|
171
166
|
expect(anchor).toHaveClass("osk-breadcrumbs__link");
|
|
172
167
|
});
|
|
@@ -187,7 +182,7 @@ describe("rendering Breadcrumbs", () => {
|
|
|
187
182
|
expect(nav).toContainElement(ol);
|
|
188
183
|
});
|
|
189
184
|
|
|
190
|
-
it('last item has aria-current="page"
|
|
185
|
+
it('last item has aria-current="page" and is not an anchor', () => {
|
|
191
186
|
const itemsWithLastUrl = [
|
|
192
187
|
{ url: "/home", text: "Domov" },
|
|
193
188
|
{ url: "/current", text: "Aktuálna stránka" },
|
|
@@ -196,9 +191,9 @@ describe("rendering Breadcrumbs", () => {
|
|
|
196
191
|
const { container } = render(<Breadcrumbs items={itemsWithLastUrl} />);
|
|
197
192
|
const listElements = container.querySelectorAll("li");
|
|
198
193
|
const lastItem = listElements[listElements.length - 1];
|
|
199
|
-
const lastAnchor = lastItem.querySelector("a");
|
|
200
194
|
|
|
201
|
-
expect(
|
|
195
|
+
expect(lastItem).toHaveAttribute("aria-current", "page");
|
|
196
|
+
expect(lastItem.querySelector("a")).not.toBeInTheDocument();
|
|
202
197
|
});
|
|
203
198
|
|
|
204
199
|
it("last item without URL is still marked as current", () => {
|
|
@@ -229,8 +224,9 @@ describe("rendering Breadcrumbs", () => {
|
|
|
229
224
|
const anchor = container.querySelector("a");
|
|
230
225
|
|
|
231
226
|
expect(listItems).toHaveLength(1);
|
|
232
|
-
|
|
233
|
-
expect(anchor).
|
|
227
|
+
// Single item is the last (current) item, so no anchor
|
|
228
|
+
expect(anchor).not.toBeInTheDocument();
|
|
229
|
+
expect(listItems[0]).toHaveAttribute("aria-current", "page");
|
|
234
230
|
});
|
|
235
231
|
|
|
236
232
|
it("handles items with special characters in text", () => {
|
|
@@ -10,12 +10,12 @@ interface CommonProps {
|
|
|
10
10
|
isActive?: boolean;
|
|
11
11
|
isDefault?: boolean;
|
|
12
12
|
isDisabled?: boolean;
|
|
13
|
-
colorScheme?: "dark" | "light";
|
|
14
13
|
isSquare?: boolean;
|
|
15
14
|
size?: ButtonSize;
|
|
16
15
|
type?: ButtonType;
|
|
17
16
|
className?: string;
|
|
18
17
|
children?: React.ReactNode;
|
|
18
|
+
preserveWidth?: boolean;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
type AnchorProps = CommonProps &
|
|
@@ -45,9 +45,7 @@ const Button = React.forwardRef<any, ButtonProps>((props, ref) => {
|
|
|
45
45
|
htmlType = "button",
|
|
46
46
|
href,
|
|
47
47
|
isActive,
|
|
48
|
-
isDefault,
|
|
49
48
|
isDisabled,
|
|
50
|
-
colorScheme,
|
|
51
49
|
size,
|
|
52
50
|
isSquare,
|
|
53
51
|
type,
|
|
@@ -61,9 +59,7 @@ const Button = React.forwardRef<any, ButtonProps>((props, ref) => {
|
|
|
61
59
|
[`${CLASS_ROOT}--square`]: isSquare,
|
|
62
60
|
[`${CLASS_ROOT}--${size}`]: size,
|
|
63
61
|
[`${CLASS_ROOT}--${type}`]: type,
|
|
64
|
-
[`${CLASS_ROOT}--
|
|
65
|
-
"is-dark": colorScheme === "dark",
|
|
66
|
-
"is-light": colorScheme === "light",
|
|
62
|
+
[`${CLASS_ROOT}--preserve-width`]: props.preserveWidth,
|
|
67
63
|
"is-active": isActive,
|
|
68
64
|
},
|
|
69
65
|
className,
|