@pnx-mixtape/mxds 0.1.0-rc.1 → 0.1.0-rc.3
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/.storybook/decorators.ts +15 -0
- package/.storybook/{preview.ts → preview.tsx} +8 -1
- package/.storybook/src/docs.tsx +29 -0
- package/.storybook/themes/campus-vibrant.css +181 -0
- package/.storybook/themes/civic-formal.css +246 -0
- package/.storybook/{theme-demo.css → themes/demo.css} +14 -7
- package/.storybook/themes/health-services.css +255 -0
- package/.storybook/themes/research-faculty.css +169 -0
- package/dist/build/accordion.css +1 -1
- package/dist/build/accordion.entry.js +1 -1
- package/dist/build/autocomplete.css +1 -1
- package/dist/build/autocomplete.entry.js +1 -1
- package/dist/build/base.css +1 -1
- package/dist/build/breadcrumb.css +1 -1
- package/dist/build/button.css +1 -1
- package/dist/build/card.css +1 -1
- package/dist/build/chunks/{Accordion-z-dH6nFH.js → Accordion-GN0sME4W.js} +1 -1
- package/dist/build/chunks/{AccordionMobile-BYPPNyf5.js → AccordionMobile-DG5jSe8Q.js} +1 -1
- package/dist/build/chunks/{Autocomplete-2L6tLLuh.js → Autocomplete-B4RtkAyh.js} +1 -1
- package/dist/build/chunks/{ClosableAlert-DdXbF1J2.js → ClosableAlert-DEhj8Nxm.js} +1 -1
- package/dist/build/chunks/{Dialog-Ds8gzhri.js → Dialog-Haahn-Yn.js} +1 -1
- package/dist/build/chunks/DropMenu-1baQc8Yc.js +1 -0
- package/dist/build/chunks/Gallery-D8NGXy2Q.js +1 -0
- package/dist/build/chunks/GlobalToggle-B52fdBQu.js +1 -0
- package/dist/build/chunks/InPageNavigation-Dyn2TR-N.js +1 -0
- package/dist/build/chunks/Navigation-hOrfLq7h.js +1 -0
- package/dist/build/chunks/Popover-Cxg-s5Jn.js +1 -0
- package/dist/build/chunks/Sticky-BGCuuEJK.js +1 -0
- package/dist/build/chunks/Tabs-DYy1YTdU.js +15 -0
- package/dist/build/chunks/enums-DLV_1NAf.js +1 -0
- package/dist/build/chunks/polyfills-C7pRt54M.js +1 -0
- package/dist/build/chunks/utilities-_Bq3TxAQ.js +1 -0
- package/dist/build/constants.css +1 -1
- package/dist/build/cookie-consent.css +1 -1
- package/dist/build/dialog.entry.js +1 -1
- package/dist/build/drop-menu.entry.js +1 -1
- package/dist/build/elements.js +1 -1
- package/dist/build/filters.css +1 -1
- package/dist/build/filters.entry.js +1 -1
- package/dist/build/form.css +1 -1
- package/dist/build/gallery.entry.js +1 -1
- package/dist/build/global-alert.entry.js +1 -1
- package/dist/build/grid.css +1 -1
- package/dist/build/header.entry.js +1 -1
- package/dist/build/icon.css +1 -1
- package/dist/build/in-page-alert.css +1 -1
- package/dist/build/in-page-navigation.entry.js +1 -1
- package/dist/build/list-item.css +1 -1
- package/dist/build/navigation.css +1 -1
- package/dist/build/navigation.entry.js +1 -1
- package/dist/build/one-time-code.css +1 -0
- package/dist/build/popover.css +1 -1
- package/dist/build/popover.entry.js +1 -1
- package/dist/build/print.css +1 -1
- package/dist/build/progress-indicator.css +1 -0
- package/dist/build/react.js +1 -1
- package/dist/build/sidebar.css +1 -1
- package/dist/build/steps.css +1 -1
- package/dist/build/sticky.entry.js +1 -1
- package/dist/build/tabs.css +1 -1
- package/dist/build/tabs.entry.js +1 -1
- package/dist/build/tag.css +1 -1
- package/dist/build/utilities.css +1 -1
- package/dist/types/Atom/DefinitionList/DefinitionList.d.ts +3 -2
- package/dist/types/Atom/DefinitionList/DefinitionList.d.ts.map +1 -1
- package/dist/types/Atom/Heading/Heading.d.ts.map +1 -1
- package/dist/types/Atom/Link/Link.d.ts.map +1 -1
- package/dist/types/Atom/List/List.d.ts +10 -0
- package/dist/types/Atom/List/List.d.ts.map +1 -0
- package/dist/types/Component/Accordion/Accordion.d.ts.map +1 -1
- package/dist/types/Component/Dialog/Dialog.d.ts.map +1 -1
- package/dist/types/Component/DropMenu/Elements/DropMenu.d.ts.map +1 -1
- package/dist/types/Component/Filters/Elements/Filters.d.ts +20 -1
- package/dist/types/Component/Filters/Elements/Filters.d.ts.map +1 -1
- package/dist/types/Component/Filters/Filters.d.ts +7 -2
- package/dist/types/Component/Filters/Filters.d.ts.map +1 -1
- package/dist/types/Component/Gallery/Gallery.d.ts.map +1 -1
- package/dist/types/Component/InPageNavigation/Elements/InPageNavigation.d.ts +2 -2
- package/dist/types/Component/InPageNavigation/Elements/InPageNavigation.d.ts.map +1 -1
- package/dist/types/Component/InPageNavigation/Hooks/useInPageNavigation.d.ts.map +1 -1
- package/dist/types/Component/Pagination/Components/PaginationContext.d.ts.map +1 -1
- package/dist/types/Component/ProgressIndicator/ProgressIndicator.d.ts +9 -0
- package/dist/types/Component/ProgressIndicator/ProgressIndicator.d.ts.map +1 -0
- package/dist/types/Component/Tabs/Elements/Tabs.d.ts.map +1 -1
- package/dist/types/Component/Tabs/Tabs.d.ts.map +1 -1
- package/dist/types/Component/Tag/Tag.d.ts +4 -2
- package/dist/types/Component/Tag/Tag.d.ts.map +1 -1
- package/dist/types/Form/Autocomplete/Autocomplete.d.ts +2 -2
- package/dist/types/Form/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/types/Form/Autocomplete/Elements/Autocomplete.d.ts +10 -0
- package/dist/types/Form/Autocomplete/Elements/Autocomplete.d.ts.map +1 -1
- package/dist/types/Form/Checkbox/FormCheckbox.d.ts.map +1 -1
- package/dist/types/Form/CheckboxCard/CheckboxCard.d.ts +23 -0
- package/dist/types/Form/CheckboxCard/CheckboxCard.d.ts.map +1 -0
- package/dist/types/Form/OneTimeCode/OneTimeCode.d.ts +12 -0
- package/dist/types/Form/OneTimeCode/OneTimeCode.d.ts.map +1 -0
- package/dist/types/Form/Radio/FormRadio.d.ts.map +1 -1
- package/dist/types/Form/RadioCard/RadioCard.d.ts +16 -0
- package/dist/types/Form/RadioCard/RadioCard.d.ts.map +1 -0
- package/dist/types/Form/Select/FormSelect.d.ts.map +1 -1
- package/dist/types/Form/TextInput/FormText.d.ts.map +1 -1
- package/dist/types/Form/Textarea/FormTextarea.d.ts.map +1 -1
- package/dist/types/Utility/Hooks/useIsomorphicLayoutEffect.d.ts +4 -0
- package/dist/types/Utility/Hooks/useIsomorphicLayoutEffect.d.ts.map +1 -0
- package/dist/types/enums.d.ts +19 -0
- package/dist/types/enums.d.ts.map +1 -1
- package/dist/types/react.d.ts +5 -0
- package/dist/types/react.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/Atom/Background/_background.css +2 -2
- package/src/Atom/Blockquote/_blockquote.css +9 -2
- package/src/Atom/Button/README.md +1 -0
- package/src/Atom/Button/__snapshots__/Button.stories.ts.snap +2 -3
- package/src/Atom/Button/_buttons-styles.css +6 -6
- package/src/Atom/Button/_buttons.css +21 -3
- package/src/Atom/Button/button.twig +4 -1
- package/src/Atom/DefinitionList/DefinitionList.stories.ts +42 -2
- package/src/Atom/DefinitionList/DefinitionList.stories.tsx +36 -0
- package/src/Atom/DefinitionList/DefinitionList.tsx +4 -1
- package/src/Atom/DefinitionList/DefinitionListItem.stories.ts +1 -1
- package/src/Atom/DefinitionList/README.md +43 -0
- package/src/Atom/DefinitionList/__snapshots__/DefinitionList.stories.ts.snap +37 -3
- package/src/Atom/DefinitionList/__snapshots__/DefinitionList.stories.tsx.snap +2 -0
- package/src/Atom/DefinitionList/__snapshots__/DefinitionListItem.stories.ts.snap +3 -3
- package/src/Atom/DefinitionList/definition-list-item.twig +1 -0
- package/src/Atom/DefinitionList/definition-list.twig +6 -1
- package/src/Atom/Heading/Heading.tsx +6 -0
- package/src/Atom/Heading/_headings.css +2 -1
- package/src/Atom/Icon/_extended-set.css +30 -30
- package/src/Atom/Icon/_icon.css +39 -36
- package/src/Atom/Image/README.md +2 -2
- package/src/Atom/Image/_image.css +12 -6
- package/src/Atom/Link/Link.tsx +16 -3
- package/src/Atom/Link/__snapshots__/Link.stories.ts.snap +7 -12
- package/src/Atom/Link/__snapshots__/Link.stories.tsx.snap +1 -1
- package/src/Atom/Link/_links.css +9 -0
- package/src/Atom/Link/link.twig +8 -2
- package/src/Atom/LinkedImage/linked-image.twig +1 -2
- package/src/Atom/List/List.stories.ts +102 -0
- package/src/Atom/List/List.stories.tsx +103 -0
- package/src/Atom/List/List.tsx +22 -0
- package/src/Atom/List/README.md +150 -0
- package/src/Atom/List/__snapshots__/List.stories.ts.snap +43 -0
- package/src/Atom/List/__snapshots__/List.stories.tsx.snap +13 -0
- package/src/Atom/List/_list.css +123 -0
- package/src/Atom/List/list.twig +5 -0
- package/src/Atom/Media/Media.stories.ts +1 -1
- package/src/Atom/Media/__snapshots__/Media.stories.ts.snap +2 -2
- package/src/Atom/Spacing/_spacing.css +24 -24
- package/src/Atom/Table/__snapshots__/Table.stories.ts.snap +24 -4
- package/src/Atom/Table/_table.css +15 -3
- package/src/Atom/Table/table.twig +6 -1
- package/src/Atom/Text/__snapshots__/Text.stories.ts.snap +3 -2
- package/src/Atom/Text/_text-styles.css +21 -1
- package/src/Atom/Text/twig/text-styles-example.twig +3 -2
- package/src/Atom/_base.css +6 -0
- package/src/Atom/_flow.css +1 -1
- package/src/Atom/_generic.css +18 -11
- package/src/Component/Accordion/Accordion.stories.ts +31 -0
- package/src/Component/Accordion/Accordion.tsx +3 -2
- package/src/Component/Accordion/AccordionItem.stories.ts +27 -0
- package/src/Component/Accordion/__snapshots__/Accordion.stories.ts.snap +36 -0
- package/src/Component/Accordion/__snapshots__/AccordionItem.stories.ts.snap +16 -0
- package/src/Component/Accordion/accordion.css +2 -0
- package/src/Component/Breadcrumb/__snapshots__/Breadcrumb.stories.ts.snap +3 -6
- package/src/Component/Breadcrumb/breadcrumb.css +4 -0
- package/src/Component/Card/__snapshots__/Card.stories.ts.snap +13 -24
- package/src/Component/Card/card.css +2 -2
- package/src/Component/Card/card.twig +1 -1
- package/src/Component/Carousel/Carousel.stories.ts +101 -23
- package/src/Component/Carousel/Carousel.stories.tsx +74 -0
- package/src/Component/Carousel/__snapshots__/Carousel.stories.ts.snap +273 -88
- package/src/Component/Carousel/__snapshots__/Carousel.stories.tsx.snap +5 -3
- package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.ts.snap +12 -24
- package/src/Component/CookieConsent/cookie-consent.css +3 -1
- package/src/Component/Dialog/Dialog.stories.ts +33 -0
- package/src/Component/Dialog/Dialog.stories.tsx +25 -0
- package/src/Component/Dialog/Dialog.tsx +2 -2
- package/src/Component/Dialog/__snapshots__/Dialog.stories.ts.snap +33 -2
- package/src/Component/Dialog/__snapshots__/Dialog.stories.tsx.snap +2 -0
- package/src/Component/DropMenu/DropMenu.stories.ts +39 -1
- package/src/Component/DropMenu/DropMenu.stories.tsx +29 -0
- package/src/Component/DropMenu/DropMenu.tsx +1 -1
- package/src/Component/DropMenu/Elements/DropMenu.ts +10 -1
- package/src/Component/DropMenu/__snapshots__/DropMenu.stories.ts.snap +14 -0
- package/src/Component/DropMenu/__snapshots__/DropMenu.stories.tsx.snap +3 -1
- package/src/Component/Filters/Elements/Filters.ts +71 -1
- package/src/Component/Filters/FilterItem.stories.ts +2 -1
- package/src/Component/Filters/FilterItem.tsx +1 -1
- package/src/Component/Filters/Filters.figma.ts +1 -1
- package/src/Component/Filters/Filters.stories.ts +95 -3
- package/src/Component/Filters/Filters.stories.tsx +246 -17
- package/src/Component/Filters/Filters.tsx +145 -29
- package/src/Component/Filters/README.md +102 -37
- package/src/Component/Filters/__snapshots__/FilterItem.stories.tsx.snap +3 -3
- package/src/Component/Filters/__snapshots__/Filters.stories.ts.snap +82 -4
- package/src/Component/Filters/__snapshots__/Filters.stories.tsx.snap +9 -3
- package/src/Component/Filters/filters.css +11 -0
- package/src/Component/Gallery/Gallery.tsx +2 -2
- package/src/Component/HeroBanner/HeroBanner.stories.ts +1 -1
- package/src/Component/HeroBanner/__snapshots__/HeroBanner.stories.ts.snap +4 -8
- package/src/Component/HeroSearch/__snapshots__/HeroSearch.stories.ts.snap +5 -10
- package/src/Component/InPageAlert/__snapshots__/InPageAlert.stories.ts.snap +6 -12
- package/src/Component/InPageAlert/in-page-alert.css +2 -1
- package/src/Component/InPageNavigation/Elements/InPageNavigation.ts +10 -5
- package/src/Component/InPageNavigation/Hooks/useInPageNavigation.ts +10 -5
- package/src/Component/InPageNavigation/InPageNavigation.stories.ts +83 -0
- package/src/Component/InPageNavigation/InPageNavigation.stories.tsx +130 -0
- package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.ts.snap +61 -1
- package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.tsx.snap +4 -0
- package/src/Component/InPageNavigation/twig/content-example-duplicate-headings.twig +20 -0
- package/src/Component/InPageNavigation/twig/in-page-navigation-story-duplicate-headings.twig +2 -0
- package/src/Component/LinkList/__snapshots__/LinkList.stories.ts.snap +6 -12
- package/src/Component/ListItem/__snapshots__/ListItem.stories.ts.snap +11 -18
- package/src/Component/ListItem/list-item.css +1 -1
- package/src/Component/ListItem/list-item.twig +2 -2
- package/src/Component/Navigation/Dropdown.stories.tsx +46 -0
- package/src/Component/Navigation/Navigation.stories.ts +56 -0
- package/src/Component/Navigation/__snapshots__/Dropdown.stories.tsx.snap +2 -0
- package/src/Component/Navigation/__snapshots__/Navigation.stories.ts.snap +57 -0
- package/src/Component/Navigation/_navigation.css +1 -1
- package/src/Component/Pagination/Components/PaginationContext.tsx +2 -1
- package/src/Component/Pagination/Components/PaginationItem.tsx +1 -1
- package/src/Component/Pagination/Pagination.stories.ts +44 -4
- package/src/Component/Pagination/Pagination.stories.tsx +31 -0
- package/src/Component/Pagination/__snapshots__/Pagination.stories.ts.snap +69 -12
- package/src/Component/Pagination/__snapshots__/Pagination.stories.tsx.snap +3 -1
- package/src/Component/Pagination/pagination-item.twig +1 -1
- package/src/Component/Pagination/pagination.css +2 -2
- package/src/Component/Popover/__snapshots__/Popover.stories.ts.snap +13 -26
- package/src/Component/Popover/popover.css +1 -1
- package/src/Component/ProgressIndicator/ProgressIndicator.stories.ts +36 -0
- package/src/Component/ProgressIndicator/ProgressIndicator.stories.tsx +30 -0
- package/src/Component/ProgressIndicator/ProgressIndicator.tsx +60 -0
- package/src/Component/ProgressIndicator/README.md +111 -0
- package/src/Component/ProgressIndicator/__snapshots__/ProgressIndicator.stories.ts.snap +67 -0
- package/src/Component/ProgressIndicator/__snapshots__/ProgressIndicator.stories.tsx.snap +7 -0
- package/src/Component/ProgressIndicator/progress-indicator.css +59 -0
- package/src/Component/ProgressIndicator/progress-indicator.twig +22 -0
- package/src/Component/SideNavigation/__snapshots__/SideNavigation.stories.ts.snap +1 -2
- package/src/Component/SocialLinks/__snapshots__/SocialLinks.stories.ts.snap +6 -9
- package/src/Component/Steps/Steps.stories.ts +1 -1
- package/src/Component/Steps/steps.css +13 -0
- package/src/Component/Sticky/Elements/Sticky.ts +1 -1
- package/src/Component/Sticky/sticky.css +3 -3
- package/src/Component/Tabs/Elements/Tabs.ts +3 -1
- package/src/Component/Tabs/Tabs.stories.ts +77 -21
- package/src/Component/Tabs/Tabs.stories.tsx +24 -0
- package/src/Component/Tabs/Tabs.tsx +2 -2
- package/src/Component/Tabs/__snapshots__/Tabs.stories.ts.snap +20 -2
- package/src/Component/Tabs/__snapshots__/Tabs.stories.tsx.snap +3 -1
- package/src/Component/Tabs/tabs.css +2 -0
- package/src/Component/Tag/README.md +52 -26
- package/src/Component/Tag/Tag.stories.tsx +24 -0
- package/src/Component/Tag/Tag.tsx +12 -2
- package/src/Component/Tag/TagItem.stories.ts +25 -0
- package/src/Component/Tag/__snapshots__/Tag.stories.ts.snap +2 -2
- package/src/Component/Tag/__snapshots__/Tag.stories.tsx.snap +2 -0
- package/src/Component/Tag/tag-item.twig +2 -2
- package/src/Component/Tag/tag.css +76 -2
- package/src/Form/Autocomplete/Autocomplete.stories.ts +89 -7
- package/src/Form/Autocomplete/Autocomplete.stories.tsx +85 -1
- package/src/Form/Autocomplete/Autocomplete.tsx +20 -10
- package/src/Form/Autocomplete/Elements/Autocomplete.ts +24 -1
- package/src/Form/Autocomplete/README.md +26 -26
- package/src/Form/Autocomplete/__snapshots__/Autocomplete.stories.ts.snap +39 -5
- package/src/Form/Autocomplete/__snapshots__/Autocomplete.stories.tsx.snap +8 -4
- package/src/Form/Autocomplete/autocomplete.css +12 -1
- package/src/Form/Autocomplete/autocomplete.twig +1 -3
- package/src/Form/Checkbox/FormCheckbox.tsx +2 -8
- package/src/Form/Checkbox/README.md +23 -18
- package/src/Form/Checkbox/input-checkbox.twig +0 -2
- package/src/Form/CheckboxCard/CheckboxCard.stories.ts +90 -0
- package/src/Form/CheckboxCard/CheckboxCard.stories.tsx +43 -0
- package/src/Form/CheckboxCard/CheckboxCard.tsx +102 -0
- package/src/Form/CheckboxCard/README.md +163 -0
- package/src/Form/CheckboxCard/__snapshots__/CheckboxCard.stories.ts.snap +63 -0
- package/src/Form/CheckboxCard/__snapshots__/CheckboxCard.stories.tsx.snap +7 -0
- package/src/Form/CheckboxCard/checkbox-card.twig +29 -0
- package/src/Form/FormItem/__snapshots__/FormItem.stories.ts.snap +2 -2
- package/src/Form/OneTimeCode/OneTimeCode.stories.ts +20 -0
- package/src/Form/OneTimeCode/OneTimeCode.stories.tsx +18 -0
- package/src/Form/OneTimeCode/OneTimeCode.tsx +56 -0
- package/src/Form/OneTimeCode/README.md +83 -0
- package/src/Form/OneTimeCode/__snapshots__/OneTimeCode.stories.ts.snap +7 -0
- package/src/Form/OneTimeCode/__snapshots__/OneTimeCode.stories.tsx.snap +3 -0
- package/src/Form/OneTimeCode/one-time-code.css +13 -0
- package/src/Form/OneTimeCode/one-time-code.twig +31 -0
- package/src/Form/README.md +65 -13
- package/src/Form/Radio/FormRadio.tsx +1 -4
- package/src/Form/Radio/input-radio.twig +0 -2
- package/src/Form/RadioCard/README.md +146 -0
- package/src/Form/RadioCard/RadioCard.stories.ts +95 -0
- package/src/Form/RadioCard/RadioCard.stories.tsx +26 -0
- package/src/Form/RadioCard/RadioCard.tsx +59 -0
- package/src/Form/RadioCard/__snapshots__/RadioCard.stories.ts.snap +69 -0
- package/src/Form/RadioCard/__snapshots__/RadioCard.stories.tsx.snap +3 -0
- package/src/Form/RadioCard/radio-card.twig +20 -0
- package/src/Form/Select/FormSelect.tsx +1 -4
- package/src/Form/Select/input-select.twig +0 -2
- package/src/Form/TextInput/FormText.stories.tsx +14 -0
- package/src/Form/TextInput/FormText.tsx +1 -4
- package/src/Form/TextInput/__snapshots__/FormText.stories.tsx.snap +2 -0
- package/src/Form/TextInput/input-text.twig +0 -2
- package/src/Form/Textarea/FormTextarea.tsx +1 -4
- package/src/Form/Textarea/input-textarea.twig +0 -2
- package/src/Form/Validation.stories.ts +153 -0
- package/src/Form/__snapshots__/Validation.stories.ts.snap +130 -0
- package/src/Form/form.css +240 -55
- package/src/Layout/Footer/__snapshots__/Footer.stories.ts.snap +18 -33
- package/src/Layout/Grid/grid.css +4 -4
- package/src/Layout/Header/Header.stories.ts +33 -0
- package/src/Layout/Header/Header.stories.tsx +31 -0
- package/src/Layout/Header/__snapshots__/Header.stories.ts.snap +50 -0
- package/src/Layout/Header/__snapshots__/Header.stories.tsx.snap +2 -0
- package/src/Layout/Masthead/__snapshots__/Masthead.stories.ts.snap +8 -16
- package/src/Layout/Section/__snapshots__/Background.stories.ts.snap +2 -4
- package/src/Layout/Section/__snapshots__/Section.stories.ts.snap +4 -8
- package/src/Layout/Sidebar/__snapshots__/Sidebar.stories.ts.snap +5 -5
- package/src/Layout/Sidebar/sidebar.css +1 -0
- package/src/Layout/Sidebar/sidebar.twig +1 -1
- package/src/Utility/Hooks/useIsomorphicLayoutEffect.ts +8 -0
- package/src/Utility/_layout-utils.css +8 -0
- package/src/Utility/_mixins.css +24 -0
- package/src/Utility/print.css +51 -29
- package/src/Utility/utilities.css +22 -2
- package/src/_custom-media.css +1 -0
- package/src/constants.css +12 -2
- package/src/enums.ts +22 -0
- package/src/react.ts +5 -0
- package/tools/lib/extract-classnames.mjs +0 -0
- package/tools/lint-classnames.mjs +1 -1
- package/tools/test-utils/screen-reader.ts +33 -0
- package/dist/build/chunks/DropMenu-Co9jZZ4S.js +0 -1
- package/dist/build/chunks/Gallery-BT3cxS5m.js +0 -1
- package/dist/build/chunks/GlobalToggle-DQHho97V.js +0 -1
- package/dist/build/chunks/InPageNavigation-CzR_KZaz.js +0 -1
- package/dist/build/chunks/Navigation-B9Wug-ok.js +0 -1
- package/dist/build/chunks/Popover-De_CQqcd.js +0 -1
- package/dist/build/chunks/Sticky-Kyjykb36.js +0 -1
- package/dist/build/chunks/Tabs-Dm8g301e.js +0 -15
- package/dist/build/chunks/disclosure-widget-BETzOHLO.js +0 -1
- package/dist/build/chunks/polyfills-Dokbkxxk.js +0 -1
- package/dist/build/chunks/utilities-C5dAO2YA.js +0 -1
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProgressIndicator
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
@layer design-system.components {
|
|
6
|
+
.mx-progress-indicator {
|
|
7
|
+
/* @public --gap */
|
|
8
|
+
display: grid;
|
|
9
|
+
gap: var(--gap, var(--spacing-xs));
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.mx-progress-indicator__count {
|
|
13
|
+
margin: 0;
|
|
14
|
+
font-size: var(--font-size-s);
|
|
15
|
+
font-weight: var(--font-weight-bold);
|
|
16
|
+
color: var(--colour-foreground-alt);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.mx-progress-indicator__track {
|
|
20
|
+
/* @public --track-gap --marker-size --marker-colour --marker-colour-complete --marker-colour-active */
|
|
21
|
+
display: flex;
|
|
22
|
+
gap: var(--track-gap, var(--spacing-xxxs));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.mx-progress-indicator__marker {
|
|
26
|
+
flex: 1;
|
|
27
|
+
block-size: var(--marker-size, var(--spacing-xxxs));
|
|
28
|
+
border-radius: var(--border-radius);
|
|
29
|
+
background-color: var(--marker-colour, var(--colour-border));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.mx-progress-indicator__marker--done {
|
|
33
|
+
background-color: var(--marker-colour-complete, var(--colour-primary));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.mx-progress-indicator__marker--now {
|
|
37
|
+
background-color: var(--marker-colour-active, var(--colour-primary));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.mx-progress-indicator__steps {
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-wrap: wrap;
|
|
43
|
+
gap: var(--spacing-xxxs) var(--spacing-m);
|
|
44
|
+
margin: 0;
|
|
45
|
+
padding-inline-start: 0;
|
|
46
|
+
list-style: none;
|
|
47
|
+
font-size: var(--font-size-xs);
|
|
48
|
+
color: var(--colour-foreground-alt);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.mx-progress-indicator__step[aria-current="step"] {
|
|
52
|
+
color: var(--marker-colour-active, var(--colour-primary));
|
|
53
|
+
font-weight: var(--font-weight-bold);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.mx-progress-indicator__step--done::before {
|
|
57
|
+
content: "✓ ";
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{% set attributes = (attributes ?? create_attribute()).addClass('mx-progress-indicator') %}
|
|
2
|
+
{% set total = steps|length %}
|
|
3
|
+
|
|
4
|
+
<div{{ attributes }}>
|
|
5
|
+
<p class="mx-progress-indicator__count">Step {{ current }} of {{ total }} — {{ steps[current - 1] }}</p>
|
|
6
|
+
<div class="mx-progress-indicator__track" aria-hidden="true">
|
|
7
|
+
{% for step in steps %}
|
|
8
|
+
{% set markerClass = 'mx-progress-indicator__marker' %}
|
|
9
|
+
{% if loop.index < current %}
|
|
10
|
+
{% set markerClass = markerClass ~ ' mx-progress-indicator__marker--done' %}
|
|
11
|
+
{% elseif loop.index == current %}
|
|
12
|
+
{% set markerClass = markerClass ~ ' mx-progress-indicator__marker--now' %}
|
|
13
|
+
{% endif %}
|
|
14
|
+
<i class="{{ markerClass }}"></i>
|
|
15
|
+
{% endfor %}
|
|
16
|
+
</div>
|
|
17
|
+
<ol class="mx-progress-indicator__steps">
|
|
18
|
+
{% for step in steps %}
|
|
19
|
+
<li class="mx-progress-indicator__step{% if loop.index < current %} mx-progress-indicator__step--done{% endif %}"{% if loop.index == current %} aria-current="step"{% endif %}>{{ step }}</li>
|
|
20
|
+
{% endfor %}
|
|
21
|
+
</ol>
|
|
22
|
+
</div>
|
|
@@ -5,28 +5,25 @@ exports[`Social Links 1`] = `
|
|
|
5
5
|
|
|
6
6
|
<h2 class="mx-heading--m">Follow us</h2>
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
<a href="#">
|
|
8
|
+
|
|
9
|
+
<a href="#" aria-label="Facebook">
|
|
10
10
|
|
|
11
11
|
<span class="mx-icon mx-icon--facebook mx-icon--size-md"></span>
|
|
12
12
|
|
|
13
|
-
<span class="sr-only">Facebook</span>
|
|
14
13
|
|
|
15
14
|
</a>
|
|
16
|
-
|
|
17
|
-
<a href="#">
|
|
15
|
+
|
|
16
|
+
<a href="#" aria-label="Instagram">
|
|
18
17
|
|
|
19
18
|
<span class="mx-icon mx-icon--instagram mx-icon--size-md"></span>
|
|
20
19
|
|
|
21
|
-
<span class="sr-only">Instagram</span>
|
|
22
20
|
|
|
23
21
|
</a>
|
|
24
|
-
|
|
25
|
-
<a href="#">
|
|
22
|
+
|
|
23
|
+
<a href="#" aria-label="LinkedIn">
|
|
26
24
|
|
|
27
25
|
<span class="mx-icon mx-icon--linkedin mx-icon--size-md"></span>
|
|
28
26
|
|
|
29
|
-
<span class="sr-only">LinkedIn</span>
|
|
30
27
|
|
|
31
28
|
</a>
|
|
32
29
|
|
|
@@ -31,7 +31,7 @@ const meta: Meta<StepsType> = {
|
|
|
31
31
|
},
|
|
32
32
|
argTypes: {
|
|
33
33
|
modifiers: {
|
|
34
|
-
description: "Change the colour of the line and marker.",
|
|
34
|
+
description: "Change the colour of the line and marker (only one applies).",
|
|
35
35
|
options: Object.values(StepsModifier),
|
|
36
36
|
control: "check",
|
|
37
37
|
type: "string",
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Steps
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
+
@import "../../Utility/_mixins.css";
|
|
6
|
+
|
|
5
7
|
@layer design-system.components {
|
|
6
8
|
.mx-steps {
|
|
7
9
|
counter-reset: step;
|
|
@@ -73,6 +75,8 @@
|
|
|
73
75
|
inset-inline-start: calc((var(--counter-size, 2rem) / 2) + (var(--line-width, 2px)));
|
|
74
76
|
inset-block: 0;
|
|
75
77
|
position: absolute;
|
|
78
|
+
|
|
79
|
+
@add-mixin forced-colors-paint;
|
|
76
80
|
}
|
|
77
81
|
}
|
|
78
82
|
|
|
@@ -89,6 +93,15 @@
|
|
|
89
93
|
.mx-steps--fill:where(:not(:has(.mx-steps--fill))) {
|
|
90
94
|
--background: var(--line-colour, var(--colour-border));
|
|
91
95
|
--foreground: var(--counter-foreground, var(--colour-foreground));
|
|
96
|
+
|
|
97
|
+
@media (--forced-colors) {
|
|
98
|
+
&.mx-steps__panel::before,
|
|
99
|
+
& .mx-steps__panel::before {
|
|
100
|
+
forced-color-adjust: none;
|
|
101
|
+
background-color: CanvasText;
|
|
102
|
+
border-color: CanvasText;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
92
105
|
}
|
|
93
106
|
|
|
94
107
|
.mx-steps--counters {
|
|
@@ -25,7 +25,7 @@ export default class Sticky extends HTMLElement {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
connectedCallback(): void {
|
|
28
|
-
this.offsetPropName = this.getAttribute("offsetpropname")
|
|
28
|
+
this.offsetPropName = this.getAttribute("offsetpropname") || "--sticky-offset"
|
|
29
29
|
const options: IOOptions = {
|
|
30
30
|
root: this.root,
|
|
31
31
|
rootMargin: this.rootMargin,
|
|
@@ -16,18 +16,18 @@
|
|
|
16
16
|
|
|
17
17
|
@layer design-system.components {
|
|
18
18
|
.mx-sticky {
|
|
19
|
-
@mixin sticky;
|
|
19
|
+
@add-mixin sticky;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
.mx-sticky--m {
|
|
23
23
|
@media (--medium-up) {
|
|
24
|
-
@mixin sticky;
|
|
24
|
+
@add-mixin sticky;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
.mx-sticky--l {
|
|
29
29
|
@media (--large-up) {
|
|
30
|
-
@mixin sticky;
|
|
30
|
+
@add-mixin sticky;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -227,14 +227,16 @@ export default class Tabs extends HTMLElement {
|
|
|
227
227
|
}
|
|
228
228
|
|
|
229
229
|
set active(id: string) {
|
|
230
|
-
this.tabs.forEach(({ tab, panel }: TabsType, key: string): void => {
|
|
230
|
+
this.tabs.forEach(({ tab, button, panel }: TabsType, key: string): void => {
|
|
231
231
|
if (key === id) {
|
|
232
232
|
tab.setAttribute("aria-selected", "true")
|
|
233
|
+
button.setAttribute("aria-selected", "true")
|
|
233
234
|
tab.setAttribute("tabindex", "0")
|
|
234
235
|
panel.removeAttribute("inert")
|
|
235
236
|
this.dropMenuTrigger.textContent = tab.textContent
|
|
236
237
|
} else {
|
|
237
238
|
tab.setAttribute("aria-selected", "false")
|
|
239
|
+
button.setAttribute("aria-selected", "false")
|
|
238
240
|
tab.setAttribute("tabindex", "-1")
|
|
239
241
|
panel.setAttribute("inert", "")
|
|
240
242
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Meta, StoryObj } from "@storybook/html-vite"
|
|
2
|
-
import { expect } from "storybook/test"
|
|
2
|
+
import { expect, waitFor } from "storybook/test"
|
|
3
3
|
import Component from "./tabs.twig"
|
|
4
4
|
import TabItem from "./tab-item.twig"
|
|
5
5
|
import { HeadingTypes, Tabs as TabsType } from "@pnx-mixtape/ids-shape"
|
|
@@ -12,6 +12,7 @@ import "../Popover/popover.css"
|
|
|
12
12
|
import "../DropMenu/drop-menu.css"
|
|
13
13
|
import Heading from "../../Atom/Heading/heading.twig"
|
|
14
14
|
import { modes } from "../../../.storybook/modes"
|
|
15
|
+
import { runScreenReaderWalkthrough } from "../../../tools/test-utils/screen-reader"
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* A Tabs component built from a list of TabItems.
|
|
@@ -98,51 +99,106 @@ type Story = StoryObj<TabsType>
|
|
|
98
99
|
|
|
99
100
|
export const Tabs: Story = {
|
|
100
101
|
play: async ({ canvas, canvasElement, userEvent, step }) => {
|
|
101
|
-
const
|
|
102
|
-
const
|
|
103
|
-
const
|
|
102
|
+
const isMobile = matchMedia("(max-width: 767px)").matches
|
|
103
|
+
const [button1, tab1] = canvas.getAllByRole("tab", { name: "Funk", hidden: true })
|
|
104
|
+
const [button2, tab2] = canvas.getAllByRole("tab", { name: "Soul", hidden: true })
|
|
105
|
+
const [button3, tab3] = canvas.getAllByRole("tab", { name: "Motown", hidden: true })
|
|
104
106
|
const panel = (id: string): HTMLElement => canvasElement.querySelector(`#${id}`) as HTMLElement
|
|
105
107
|
|
|
106
108
|
await step("Funk starts selected", async () => {
|
|
107
|
-
|
|
109
|
+
if (isMobile) {
|
|
110
|
+
await expect(button1).toHaveAttribute("aria-selected", "true")
|
|
111
|
+
} else {
|
|
112
|
+
await expect(tab1).toHaveAttribute("aria-selected", "true")
|
|
113
|
+
}
|
|
108
114
|
await expect(panel("tab-1")).not.toHaveAttribute("inert")
|
|
109
115
|
await expect(panel("tab-2")).toHaveAttribute("inert")
|
|
110
116
|
})
|
|
111
117
|
|
|
112
118
|
await step("Click selects a tab and moves focus to its panel", async () => {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
119
|
+
if (isMobile) {
|
|
120
|
+
await userEvent.click(button2)
|
|
121
|
+
await waitFor(() => expect(button2).toHaveAttribute("aria-selected", "true"))
|
|
122
|
+
await expect(button1).toHaveAttribute("aria-selected", "false")
|
|
123
|
+
} else {
|
|
124
|
+
await userEvent.click(tab2)
|
|
125
|
+
await waitFor(() => expect(tab2).toHaveAttribute("aria-selected", "true"))
|
|
126
|
+
await expect(tab1).toHaveAttribute("aria-selected", "false")
|
|
127
|
+
}
|
|
116
128
|
await expect(panel("tab-2")).not.toHaveAttribute("inert")
|
|
117
129
|
await expect(panel("tab-1")).toHaveAttribute("inert")
|
|
118
130
|
await expect(panel("tab-2")).toHaveFocus()
|
|
119
131
|
})
|
|
120
132
|
|
|
121
133
|
await step("ArrowRight/ArrowLeft move focus, with wraparound", async () => {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
134
|
+
if (isMobile) {
|
|
135
|
+
button2.focus()
|
|
136
|
+
await userEvent.keyboard("{ArrowRight}")
|
|
137
|
+
await expect(button3).toHaveFocus()
|
|
138
|
+
await userEvent.keyboard("{ArrowRight}")
|
|
139
|
+
await expect(button1).toHaveFocus()
|
|
140
|
+
await userEvent.keyboard("{ArrowLeft}")
|
|
141
|
+
await expect(button3).toHaveFocus()
|
|
142
|
+
} else {
|
|
143
|
+
tab2.focus()
|
|
144
|
+
await userEvent.keyboard("{ArrowRight}")
|
|
145
|
+
await expect(tab3).toHaveFocus()
|
|
146
|
+
await userEvent.keyboard("{ArrowRight}")
|
|
147
|
+
await expect(tab1).toHaveFocus()
|
|
148
|
+
await userEvent.keyboard("{ArrowLeft}")
|
|
149
|
+
await expect(tab3).toHaveFocus()
|
|
150
|
+
}
|
|
129
151
|
})
|
|
130
152
|
|
|
131
153
|
await step("Home/End jump to first/last tab", async () => {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
154
|
+
if (isMobile) {
|
|
155
|
+
await userEvent.keyboard("{Home}")
|
|
156
|
+
await expect(button1).toHaveFocus()
|
|
157
|
+
await userEvent.keyboard("{End}")
|
|
158
|
+
await expect(button3).toHaveFocus()
|
|
159
|
+
} else {
|
|
160
|
+
await userEvent.keyboard("{Home}")
|
|
161
|
+
await expect(tab1).toHaveFocus()
|
|
162
|
+
await userEvent.keyboard("{End}")
|
|
163
|
+
await expect(tab3).toHaveFocus()
|
|
164
|
+
}
|
|
136
165
|
})
|
|
137
166
|
|
|
138
167
|
await step("Reset: reselect Funk and clear the ?tab= param", async () => {
|
|
139
|
-
|
|
140
|
-
|
|
168
|
+
if (isMobile) {
|
|
169
|
+
await userEvent.click(button1)
|
|
170
|
+
await expect(button1).toHaveAttribute("aria-selected", "true")
|
|
171
|
+
} else {
|
|
172
|
+
await userEvent.click(tab1)
|
|
173
|
+
await expect(tab1).toHaveAttribute("aria-selected", "true")
|
|
174
|
+
}
|
|
141
175
|
window.history.replaceState({}, "", window.location.pathname)
|
|
176
|
+
await userEvent.click(canvasElement)
|
|
142
177
|
})
|
|
143
178
|
},
|
|
144
179
|
}
|
|
145
180
|
|
|
181
|
+
/**
|
|
182
|
+
* Steps a virtual screen reader through the tab list and asserts on what it announces.
|
|
183
|
+
*/
|
|
184
|
+
export const ScreenReaderAnnouncements: Story = {
|
|
185
|
+
play: async () => {
|
|
186
|
+
const log = await runScreenReaderWalkthrough()
|
|
187
|
+
await expect(log).toEqual([
|
|
188
|
+
"document",
|
|
189
|
+
"tablist, orientated horizontally",
|
|
190
|
+
"tab, Funk, selected, 1 control, position 1, set size 3",
|
|
191
|
+
"tab, Soul, not selected, 1 control, position 2, set size 3",
|
|
192
|
+
"tab, Motown, not selected, 1 control, position 3, set size 3",
|
|
193
|
+
"end of tablist, orientated horizontally",
|
|
194
|
+
"tabpanel, Funk",
|
|
195
|
+
"Funk is the ipsum dolor sit amet, consectetur adipiscing elit. Proin at finibus velit. Curabitur consequat, dolor venenatis ullamcorper commodo, quam mi iaculis sem, non varius massa risus et enim. Interdum et malesuada fames ac ante ipsum primis in faucibus. Phasellus non mi lorem. Morbi semper sagittis euismod. Vestibulum non ornare orci.",
|
|
196
|
+
"end of tabpanel, Funk",
|
|
197
|
+
"end of document",
|
|
198
|
+
])
|
|
199
|
+
},
|
|
200
|
+
}
|
|
201
|
+
|
|
146
202
|
/**
|
|
147
203
|
* Can have a heading above the tabs for extra context.
|
|
148
204
|
*/
|
|
@@ -11,6 +11,7 @@ import "./tabs.css"
|
|
|
11
11
|
import "../DropMenu/drop-menu.css"
|
|
12
12
|
import { TabStyles } from "../../enums"
|
|
13
13
|
import { Page } from "../../../.storybook-react/decorators"
|
|
14
|
+
import { runScreenReaderWalkthrough } from "../../../tools/test-utils/screen-reader"
|
|
14
15
|
|
|
15
16
|
const defaultChildren = (
|
|
16
17
|
<Fragment>
|
|
@@ -114,3 +115,26 @@ export const Default: StoryObj<typeof meta> = {
|
|
|
114
115
|
})
|
|
115
116
|
},
|
|
116
117
|
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Steps a virtual screen reader through the tab list and asserts on what it announces.
|
|
121
|
+
*/
|
|
122
|
+
export const ScreenReaderAnnouncements: StoryObj<typeof meta> = {
|
|
123
|
+
play: async () => {
|
|
124
|
+
const log = await runScreenReaderWalkthrough()
|
|
125
|
+
await expect(log).toEqual([
|
|
126
|
+
"document",
|
|
127
|
+
"tablist, orientated horizontally",
|
|
128
|
+
"tab, Tab 1, selected, 1 control, position 1, set size 3",
|
|
129
|
+
"tab, Tab 2, not selected, 1 control, position 2, set size 3",
|
|
130
|
+
"tab, Tab 3, not selected, 1 control, position 3, set size 3",
|
|
131
|
+
"end of tablist, orientated horizontally",
|
|
132
|
+
"tabpanel, Tab 1",
|
|
133
|
+
"paragraph",
|
|
134
|
+
"This is tab 1",
|
|
135
|
+
"end of paragraph",
|
|
136
|
+
"end of tabpanel, Tab 1",
|
|
137
|
+
"end of document",
|
|
138
|
+
])
|
|
139
|
+
},
|
|
140
|
+
}
|
|
@@ -8,7 +8,6 @@ import React, {
|
|
|
8
8
|
createContext,
|
|
9
9
|
use,
|
|
10
10
|
useState,
|
|
11
|
-
useEffect,
|
|
12
11
|
useMemo,
|
|
13
12
|
useId,
|
|
14
13
|
useRef,
|
|
@@ -17,6 +16,7 @@ import React, {
|
|
|
17
16
|
} from "react"
|
|
18
17
|
import classNames from "classnames"
|
|
19
18
|
import DropMenuProvider from "../DropMenu/Components/DropMenuContext"
|
|
19
|
+
import useIsomorphicLayoutEffect from "../../Utility/Hooks/useIsomorphicLayoutEffect"
|
|
20
20
|
import { TabStyles } from "../../enums"
|
|
21
21
|
|
|
22
22
|
type TabContextValues = {
|
|
@@ -54,7 +54,7 @@ const Tabs = ({ children, active, modifier, id }: TabsProps): JSX.Element => {
|
|
|
54
54
|
window.history.replaceState({}, "", `${window.location.pathname}?${urlParams.toString()}`)
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
useIsomorphicLayoutEffect(() => {
|
|
58
58
|
if (typeof window === "undefined") return
|
|
59
59
|
const tabParam = new URLSearchParams(window.location.search).get("tab")
|
|
60
60
|
if (tabParam && tabParam !== activeTab) {
|
|
@@ -1,9 +1,27 @@
|
|
|
1
1
|
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
|
+
exports[`Screen Reader Announcements 1`] = `
|
|
4
|
+
"
|
|
5
|
+
|
|
6
|
+
<mx-tabs class="mx-tabs mx-tabs--lined" id="tab-example"><mx-dropmenu closeonclick="true"><button id="unique-3" class="mx-popover__trigger mx-button mx-icon mx-icon--chevron-down mx-icon--end" popovertarget="tab-example" style="anchor-name: --tab-example" hidden="">Funk</button><div class="mx-popover mx-drop-menu" id="tab-example" aria-describedby="unique-0" style="position-anchor: --tab-example" data-placement="bottom-start" popover="" role="tablist"><button type="button" role="tab" aria-controls="unique-1" aria-selected="true">Funk</button><button type="button" role="tab" aria-controls="unique-2" aria-selected="false">Soul</button><button type="button" role="tab" aria-controls="unique-3" aria-selected="false">Motown</button></div></mx-dropmenu><div class="mx-tabs__list" role="tablist"><button type="button" role="tab" aria-controls="unique-4" aria-selected="true" tabindex="0">Funk</button><button type="button" role="tab" aria-controls="unique-5" aria-selected="false" tabindex="-1">Soul</button><button type="button" role="tab" aria-controls="unique-6" aria-selected="false" tabindex="-1">Motown</button></div>
|
|
7
|
+
<div class="mx-tabs__panel mx-vertical-flow mx-container" id="unique-0" data-tab="Funk" role="tabpanel" tabindex="-1" aria-label="Funk">
|
|
8
|
+
Funk is the ipsum dolor sit amet, consectetur adipiscing elit. Proin at finibus velit. Curabitur consequat, dolor venenatis ullamcorper commodo, quam mi iaculis sem, non varius massa risus et enim. Interdum et malesuada fames ac ante ipsum primis in faucibus. Phasellus non mi lorem. Morbi semper sagittis euismod. Vestibulum non ornare orci.
|
|
9
|
+
</div>
|
|
10
|
+
<div class="mx-tabs__panel mx-vertical-flow mx-container" id="unique-1" data-tab="Soul" role="tabpanel" tabindex="-1" aria-label="Soul" inert="">
|
|
11
|
+
Soul music ipsum dolor sit amet, consectetur adipiscing elit. Proin at finibus velit. Curabitur consequat, dolor venenatis ullamcorper commodo, quam mi iaculis sem, non varius massa risus et enim. Interdum et malesuada fames ac ante ipsum primis in faucibus. Phasellus non mi lorem.
|
|
12
|
+
</div>
|
|
13
|
+
<div class="mx-tabs__panel mx-vertical-flow mx-container" id="unique-2" data-tab="Motown" role="tabpanel" tabindex="-1" aria-label="Motown" inert="">
|
|
14
|
+
Motown lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin at finibus velit. Curabitur consequat, dolor venenatis ullamcorper commodo, quam mi iaculis sem, non varius massa risus et enim. Interdum et malesuada fames ac ante ipsum primis in faucibus. Phasellus non mi lorem. Morbi semper sagittis euismod. Vestibulum non ornare orci.
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
</mx-tabs>
|
|
18
|
+
"
|
|
19
|
+
`;
|
|
20
|
+
|
|
3
21
|
exports[`Tabs 1`] = `
|
|
4
22
|
"
|
|
5
23
|
|
|
6
|
-
<mx-tabs class="mx-tabs mx-tabs--lined" id="tab-example"><mx-dropmenu closeonclick="true"><button id="unique-3" class="mx-popover__trigger mx-button mx-icon mx-icon--chevron-down mx-icon--end" popovertarget="tab-example" style="anchor-name: --tab-example" hidden="">Funk</button><div class="mx-popover mx-drop-menu" id="tab-example" aria-describedby="unique-0" style="position-anchor: --tab-example" data-placement="bottom-start" popover="" role="tablist"><button type="button" role="tab" aria-controls="unique-1" aria-selected="
|
|
24
|
+
<mx-tabs class="mx-tabs mx-tabs--lined" id="tab-example"><mx-dropmenu closeonclick="true"><button id="unique-3" class="mx-popover__trigger mx-button mx-icon mx-icon--chevron-down mx-icon--end" popovertarget="tab-example" style="anchor-name: --tab-example" hidden="">Funk</button><div class="mx-popover mx-drop-menu" id="tab-example" aria-describedby="unique-0" style="position-anchor: --tab-example" data-placement="bottom-start" popover="" role="tablist"><button type="button" role="tab" aria-controls="unique-1" aria-selected="true">Funk</button><button type="button" role="tab" aria-controls="unique-2" aria-selected="false">Soul</button><button type="button" role="tab" aria-controls="unique-3" aria-selected="false">Motown</button></div></mx-dropmenu><div class="mx-tabs__list" role="tablist"><button type="button" role="tab" aria-controls="unique-4" aria-selected="true" tabindex="0">Funk</button><button type="button" role="tab" aria-controls="unique-5" aria-selected="false" tabindex="-1">Soul</button><button type="button" role="tab" aria-controls="unique-6" aria-selected="false" tabindex="-1">Motown</button></div>
|
|
7
25
|
<div class="mx-tabs__panel mx-vertical-flow mx-container" id="unique-0" data-tab="Funk" role="tabpanel" tabindex="-1" aria-label="Funk">
|
|
8
26
|
Funk is the ipsum dolor sit amet, consectetur adipiscing elit. Proin at finibus velit. Curabitur consequat, dolor venenatis ullamcorper commodo, quam mi iaculis sem, non varius massa risus et enim. Interdum et malesuada fames ac ante ipsum primis in faucibus. Phasellus non mi lorem. Morbi semper sagittis euismod. Vestibulum non ornare orci.
|
|
9
27
|
</div>
|
|
@@ -23,7 +41,7 @@ exports[`With Heading 1`] = `
|
|
|
23
41
|
|
|
24
42
|
<h2>Tabs heading</h2>
|
|
25
43
|
|
|
26
|
-
<mx-tabs class="mx-tabs mx-tabs--lined" id="tab-example"><mx-dropmenu closeonclick="true"><button id="unique-3" class="mx-popover__trigger mx-button mx-icon mx-icon--chevron-down mx-icon--end" popovertarget="tab-example" style="anchor-name: --tab-example" hidden="">Funk</button><div class="mx-popover mx-drop-menu" id="tab-example" aria-describedby="unique-0" style="position-anchor: --tab-example" data-placement="bottom-start" popover="" role="tablist"><button type="button" role="tab" aria-controls="unique-1" aria-selected="
|
|
44
|
+
<mx-tabs class="mx-tabs mx-tabs--lined" id="tab-example"><mx-dropmenu closeonclick="true"><button id="unique-3" class="mx-popover__trigger mx-button mx-icon mx-icon--chevron-down mx-icon--end" popovertarget="tab-example" style="anchor-name: --tab-example" hidden="">Funk</button><div class="mx-popover mx-drop-menu" id="tab-example" aria-describedby="unique-0" style="position-anchor: --tab-example" data-placement="bottom-start" popover="" role="tablist"><button type="button" role="tab" aria-controls="unique-1" aria-selected="true">Funk</button><button type="button" role="tab" aria-controls="unique-2" aria-selected="false">Soul</button><button type="button" role="tab" aria-controls="unique-3" aria-selected="false">Motown</button></div></mx-dropmenu><div class="mx-tabs__list" role="tablist"><button type="button" role="tab" aria-controls="unique-4" aria-selected="true" tabindex="0">Funk</button><button type="button" role="tab" aria-controls="unique-5" aria-selected="false" tabindex="-1">Soul</button><button type="button" role="tab" aria-controls="unique-6" aria-selected="false" tabindex="-1">Motown</button></div>
|
|
27
45
|
<div class="mx-tabs__panel mx-vertical-flow mx-container" id="unique-0" data-tab="Funk" role="tabpanel" tabindex="-1" aria-label="Funk">
|
|
28
46
|
Funk is the ipsum dolor sit amet, consectetur adipiscing elit. Proin at finibus velit. Curabitur consequat, dolor venenatis ullamcorper commodo, quam mi iaculis sem, non varius massa risus et enim. Interdum et malesuada fames ac ante ipsum primis in faucibus. Phasellus non mi lorem. Morbi semper sagittis euismod. Vestibulum non ornare orci.
|
|
29
47
|
</div>
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
|
-
exports[`Default 1`] = `"<div class="mx-tabs"><div class="mobile-only"><button id="tabs-storybook-target" type="button" class="mx-button mx-icon mx-icon--chevron-down mx-icon--end mx-popover__trigger" popovertarget="tabs-storybook" style="anchor-name: --drop-menu-tabs-storybook;">Tab 1</button><div id="tabs-storybook" class="mx-popover mx-drop-menu" popover="" aria-labelledby="tabs-storybook-target" aria-describedby="tabs-storybook-description" role="tablist" style="position-anchor: --drop-menu-tabs-storybook;"><div id="tabs-storybook-description" class="sr-only">Results will update when you make a selection. Press escape to close.</div><span data-focus-scope-start="true" hidden=""></span><button type="button" data-id="tab-1" aria-checked="true" role="tab" aria-controls="tab-1" aria-selected="true">Tab 1</button><button type="button" data-id="tab-2" aria-checked="false" role="tab" aria-controls="tab-2" aria-selected="false">Tab 2</button><button type="button" data-id="tab-3" aria-checked="false" role="tab" aria-controls="tab-3" aria-selected="false">Tab 3</button><span data-focus-scope-end="true" hidden=""></span></div></div><div class="mx-tabs__list desktop-only" role="tablist"><span data-focus-scope-start="true" hidden=""></span><button id="tab-1-button" aria-controls="tab-1" role="tab" aria-selected="true" tabindex="0" type="button">Tab 1</button><button id="tab-2-button" aria-controls="tab-2" role="tab" aria-selected="false" tabindex="-1" type="button">Tab 2</button><button id="tab-3-button" aria-controls="tab-3" role="tab" aria-selected="false" tabindex="-1" type="button">Tab 3</button><span data-focus-scope-end="true" hidden=""></span></div><div id="tab-1" class="mx-tabs__panel mx-vertical-flow mx-section--l" aria-labelledby="tab-1-button" role="tabpanel" tabindex="0"><p>This is tab 1</p></div><div id="tab-2" class="mx-tabs__panel mx-vertical-flow mx-section--l" aria-labelledby="tab-2-button" role="tabpanel" tabindex="0" inert=""><p>This is tab 2</p></div><div id="tab-3" class="mx-tabs__panel mx-vertical-flow mx-section--l" inert="" aria-labelledby="tab-3-button" role="tabpanel" tabindex="0"><p>This is tab 3</p></div></div>"`;
|
|
3
|
+
exports[`Default 1`] = `"<div class="mx-tabs"><div class="mobile-only"><button id="tabs-storybook-target" type="button" class="mx-button mx-icon mx-icon--chevron-down mx-icon--end mx-popover__trigger" popovertarget="tabs-storybook" style="anchor-name: --drop-menu-tabs-storybook;">Tab 1</button><div id="tabs-storybook" class="mx-popover mx-drop-menu" popover="" aria-labelledby="tabs-storybook-target" aria-describedby="tabs-storybook-description" role="tablist" style="position-anchor: --drop-menu-tabs-storybook;"><div id="tabs-storybook-description" class="sr-only" aria-hidden="true">Results will update when you make a selection. Press escape to close.</div><span data-focus-scope-start="true" hidden=""></span><button type="button" data-id="tab-1" aria-checked="true" role="tab" aria-controls="tab-1" aria-selected="true">Tab 1</button><button type="button" data-id="tab-2" aria-checked="false" role="tab" aria-controls="tab-2" aria-selected="false">Tab 2</button><button type="button" data-id="tab-3" aria-checked="false" role="tab" aria-controls="tab-3" aria-selected="false">Tab 3</button><span data-focus-scope-end="true" hidden=""></span></div></div><div class="mx-tabs__list desktop-only" role="tablist"><span data-focus-scope-start="true" hidden=""></span><button id="tab-1-button" aria-controls="tab-1" role="tab" aria-selected="true" tabindex="0" type="button">Tab 1</button><button id="tab-2-button" aria-controls="tab-2" role="tab" aria-selected="false" tabindex="-1" type="button">Tab 2</button><button id="tab-3-button" aria-controls="tab-3" role="tab" aria-selected="false" tabindex="-1" type="button">Tab 3</button><span data-focus-scope-end="true" hidden=""></span></div><div id="tab-1" class="mx-tabs__panel mx-vertical-flow mx-section--l" aria-labelledby="tab-1-button" role="tabpanel" tabindex="0"><p>This is tab 1</p></div><div id="tab-2" class="mx-tabs__panel mx-vertical-flow mx-section--l" aria-labelledby="tab-2-button" role="tabpanel" tabindex="0" inert=""><p>This is tab 2</p></div><div id="tab-3" class="mx-tabs__panel mx-vertical-flow mx-section--l" inert="" aria-labelledby="tab-3-button" role="tabpanel" tabindex="0"><p>This is tab 3</p></div></div>"`;
|
|
4
|
+
|
|
5
|
+
exports[`Screen Reader Announcements 1`] = `"<div class="mx-tabs"><div class="mobile-only"><button id="tabs-storybook-target" type="button" class="mx-button mx-icon mx-icon--chevron-down mx-icon--end mx-popover__trigger" popovertarget="tabs-storybook" style="anchor-name: --drop-menu-tabs-storybook;">Tab 1</button><div id="tabs-storybook" class="mx-popover mx-drop-menu" popover="" aria-labelledby="tabs-storybook-target" aria-describedby="tabs-storybook-description" role="tablist" style="position-anchor: --drop-menu-tabs-storybook;"><div id="tabs-storybook-description" class="sr-only" aria-hidden="true">Results will update when you make a selection. Press escape to close.</div><span data-focus-scope-start="true" hidden=""></span><button type="button" data-id="tab-1" aria-checked="true" role="tab" aria-controls="tab-1" aria-selected="true">Tab 1</button><button type="button" data-id="tab-2" aria-checked="false" role="tab" aria-controls="tab-2" aria-selected="false">Tab 2</button><button type="button" data-id="tab-3" aria-checked="false" role="tab" aria-controls="tab-3" aria-selected="false">Tab 3</button><span data-focus-scope-end="true" hidden=""></span></div></div><div class="mx-tabs__list desktop-only" role="tablist"><span data-focus-scope-start="true" hidden=""></span><button id="tab-1-button" aria-controls="tab-1" role="tab" aria-selected="true" tabindex="0" type="button">Tab 1</button><button id="tab-2-button" aria-controls="tab-2" role="tab" aria-selected="false" tabindex="-1" type="button">Tab 2</button><button id="tab-3-button" aria-controls="tab-3" role="tab" aria-selected="false" tabindex="-1" type="button">Tab 3</button><span data-focus-scope-end="true" hidden=""></span></div><div id="tab-1" class="mx-tabs__panel mx-vertical-flow mx-section--l" aria-labelledby="tab-1-button" role="tabpanel" tabindex="0"><p>This is tab 1</p></div><div id="tab-2" class="mx-tabs__panel mx-vertical-flow mx-section--l" inert="" aria-labelledby="tab-2-button" role="tabpanel" tabindex="0"><p>This is tab 2</p></div><div id="tab-3" class="mx-tabs__panel mx-vertical-flow mx-section--l" inert="" aria-labelledby="tab-3-button" role="tabpanel" tabindex="0"><p>This is tab 3</p></div></div>"`;
|
|
@@ -50,6 +50,8 @@
|
|
|
50
50
|
&[aria-selected="true"] {
|
|
51
51
|
background-color: var(--tab-active-background, var(--colour-background-alt));
|
|
52
52
|
color: var(--tab-active-foreground, var(--colour-foreground));
|
|
53
|
+
font-weight: var(--font-weight-bold);
|
|
54
|
+
text-decoration-line: underline;
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
57
|
}
|