@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
|
@@ -5,6 +5,7 @@ import Component from "./Components/PaginationContext"
|
|
|
5
5
|
import PaginationComponent from "./Pagination"
|
|
6
6
|
import "./pagination.css"
|
|
7
7
|
import { Page } from "../../../.storybook-react/decorators"
|
|
8
|
+
import { runScreenReaderWalkthrough } from "../../../tools/test-utils/screen-reader"
|
|
8
9
|
|
|
9
10
|
const meta: Meta<typeof Component> = {
|
|
10
11
|
tags: ["autodocs"],
|
|
@@ -81,3 +82,33 @@ export const Pagination: StoryObj<typeof meta> = {
|
|
|
81
82
|
})
|
|
82
83
|
},
|
|
83
84
|
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Steps a virtual screen reader through the page and asserts on what it announces.
|
|
88
|
+
*/
|
|
89
|
+
export const ScreenReaderAnnouncements: StoryObj<typeof meta> = {
|
|
90
|
+
play: async () => {
|
|
91
|
+
const log = await runScreenReaderWalkthrough()
|
|
92
|
+
await expect(log).toEqual([
|
|
93
|
+
"document",
|
|
94
|
+
"navigation, Pagination",
|
|
95
|
+
"list",
|
|
96
|
+
"listitem, level 1, current page, position 1, set size 4",
|
|
97
|
+
"1",
|
|
98
|
+
"end of listitem, level 1, current page, position 1, set size 4",
|
|
99
|
+
"listitem, level 1, position 2, set size 4",
|
|
100
|
+
"button, 2",
|
|
101
|
+
"end of listitem, level 1, position 2, set size 4",
|
|
102
|
+
"listitem, level 1, position 3, set size 4",
|
|
103
|
+
"button, 3",
|
|
104
|
+
"end of listitem, level 1, position 3, set size 4",
|
|
105
|
+
"listitem, level 1, position 4, set size 4",
|
|
106
|
+
"button, 10",
|
|
107
|
+
"end of listitem, level 1, position 4, set size 4",
|
|
108
|
+
"end of list",
|
|
109
|
+
"button, next",
|
|
110
|
+
"end of navigation, Pagination",
|
|
111
|
+
"end of document",
|
|
112
|
+
])
|
|
113
|
+
},
|
|
114
|
+
}
|
|
@@ -8,8 +8,7 @@ exports[`Pagination 1`] = `
|
|
|
8
8
|
|
|
9
9
|
<span class="mx-icon mx-icon--arrow-left"></span>
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
Previous
|
|
13
12
|
</a>
|
|
14
13
|
|
|
15
14
|
</div>
|
|
@@ -19,8 +18,7 @@ exports[`Pagination 1`] = `
|
|
|
19
18
|
|
|
20
19
|
<a href="#">
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
1
|
|
24
22
|
</a>
|
|
25
23
|
|
|
26
24
|
</li>
|
|
@@ -28,8 +26,7 @@ exports[`Pagination 1`] = `
|
|
|
28
26
|
|
|
29
27
|
<a href="#" aria-current="page">
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
2
|
|
33
30
|
</a>
|
|
34
31
|
|
|
35
32
|
</li>
|
|
@@ -37,18 +34,16 @@ exports[`Pagination 1`] = `
|
|
|
37
34
|
|
|
38
35
|
<a href="#">
|
|
39
36
|
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
3
|
|
42
38
|
</a>
|
|
43
39
|
|
|
44
40
|
</li>
|
|
45
|
-
<li class="mx-pagination__ellipsis">…</li>
|
|
41
|
+
<li class="mx-pagination__ellipsis" aria-hidden="true">…</li>
|
|
46
42
|
<li class="mx-pagination__item">
|
|
47
43
|
|
|
48
44
|
<a href="#">
|
|
49
45
|
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
10
|
|
52
47
|
</a>
|
|
53
48
|
|
|
54
49
|
</li>
|
|
@@ -58,8 +53,70 @@ exports[`Pagination 1`] = `
|
|
|
58
53
|
|
|
59
54
|
<a href="#">
|
|
60
55
|
|
|
61
|
-
|
|
56
|
+
Next
|
|
57
|
+
<span class="mx-icon mx-icon--arrow-right"></span>
|
|
58
|
+
|
|
59
|
+
</a>
|
|
60
|
+
|
|
61
|
+
</div>
|
|
62
|
+
</nav>
|
|
63
|
+
"
|
|
64
|
+
`;
|
|
65
|
+
|
|
66
|
+
exports[`Screen Reader Announcements 1`] = `
|
|
67
|
+
"<nav class="mx-pagination" aria-label="Pagination">
|
|
68
|
+
<div class="mx-pagination__previous">
|
|
69
|
+
|
|
70
|
+
<a href="#">
|
|
71
|
+
|
|
72
|
+
<span class="mx-icon mx-icon--arrow-left"></span>
|
|
73
|
+
|
|
74
|
+
Previous
|
|
75
|
+
</a>
|
|
76
|
+
|
|
77
|
+
</div>
|
|
78
|
+
<div class="mx-pagination__label">Page 2 of 10</div>
|
|
79
|
+
<ul class="mx-pagination__items">
|
|
80
|
+
<li class="mx-pagination__item">
|
|
81
|
+
|
|
82
|
+
<a href="#">
|
|
83
|
+
|
|
84
|
+
1
|
|
85
|
+
</a>
|
|
86
|
+
|
|
87
|
+
</li>
|
|
88
|
+
<li class="mx-pagination__item">
|
|
62
89
|
|
|
90
|
+
<a href="#" aria-current="page">
|
|
91
|
+
|
|
92
|
+
2
|
|
93
|
+
</a>
|
|
94
|
+
|
|
95
|
+
</li>
|
|
96
|
+
<li class="mx-pagination__item">
|
|
97
|
+
|
|
98
|
+
<a href="#">
|
|
99
|
+
|
|
100
|
+
3
|
|
101
|
+
</a>
|
|
102
|
+
|
|
103
|
+
</li>
|
|
104
|
+
<li class="mx-pagination__ellipsis" aria-hidden="true">…</li>
|
|
105
|
+
<li class="mx-pagination__item">
|
|
106
|
+
|
|
107
|
+
<a href="#">
|
|
108
|
+
|
|
109
|
+
10
|
|
110
|
+
</a>
|
|
111
|
+
|
|
112
|
+
</li>
|
|
113
|
+
|
|
114
|
+
</ul>
|
|
115
|
+
<div class="mx-pagination__next">
|
|
116
|
+
|
|
117
|
+
<a href="#">
|
|
118
|
+
|
|
119
|
+
Next
|
|
63
120
|
<span class="mx-icon mx-icon--arrow-right"></span>
|
|
64
121
|
|
|
65
122
|
</a>
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
|
-
exports[`Pagination 1`] = `"<nav class="mx-pagination" aria-label="Pagination"><div class="mx-pagination__previous" aria-hidden="true"><button type="button" disabled=""><span class="mx-icon mx-icon--arrow-left"></span><span>previous</span></button></div><div class="mx-pagination__label">Page 1 of 10</div><ul class="mx-pagination__items"><li class="mx-pagination__item" aria-current="page">1</li><li class="mx-pagination__item"><button type="button" data-page="2">2</button></li><li class="mx-pagination__item"><button type="button" data-page="3">3</button></li><li class="mx-pagination__ellipsis">...</li><li class="mx-pagination__item"><button type="button" data-page="10">10</button></li></ul><div class="mx-pagination__next"><button type="button" data-page="2"><span>next</span><span class="mx-icon mx-icon--arrow-right"></span></button></div></nav>"`;
|
|
3
|
+
exports[`Pagination 1`] = `"<nav class="mx-pagination" aria-label="Pagination"><div class="mx-pagination__previous" aria-hidden="true"><button type="button" disabled=""><span class="mx-icon mx-icon--arrow-left"></span><span>previous</span></button></div><div class="mx-pagination__label">Page 1 of 10</div><ul class="mx-pagination__items"><li class="mx-pagination__item" aria-current="page">1</li><li class="mx-pagination__item"><button type="button" data-page="2">2</button></li><li class="mx-pagination__item"><button type="button" data-page="3">3</button></li><li class="mx-pagination__ellipsis" aria-hidden="true">...</li><li class="mx-pagination__item"><button type="button" data-page="10">10</button></li></ul><div class="mx-pagination__next"><button type="button" data-page="2"><span>next</span><span class="mx-icon mx-icon--arrow-right"></span></button></div></nav>"`;
|
|
4
|
+
|
|
5
|
+
exports[`Screen Reader Announcements 1`] = `"<nav class="mx-pagination" aria-label="Pagination"><div class="mx-pagination__previous" aria-hidden="true"><button type="button" disabled=""><span class="mx-icon mx-icon--arrow-left"></span><span>previous</span></button></div><div class="mx-pagination__label">Page 1 of 10</div><ul class="mx-pagination__items"><li class="mx-pagination__item" aria-current="page">1</li><li class="mx-pagination__item"><button type="button" data-page="2">2</button></li><li class="mx-pagination__item"><button type="button" data-page="3">3</button></li><li class="mx-pagination__ellipsis" aria-hidden="true">...</li><li class="mx-pagination__item"><button type="button" data-page="10">10</button></li></ul><div class="mx-pagination__next"><button type="button" data-page="2"><span>next</span><span class="mx-icon mx-icon--arrow-right"></span></button></div></nav>"`;
|
|
@@ -21,8 +21,7 @@ exports[`Bottom 1`] = `
|
|
|
21
21
|
|
|
22
22
|
<a href="#" class="mx-link--more">
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
Learn more
|
|
26
25
|
</a>
|
|
27
26
|
|
|
28
27
|
</div>
|
|
@@ -52,8 +51,7 @@ exports[`Bottom End 1`] = `
|
|
|
52
51
|
|
|
53
52
|
<a href="#" class="mx-link--more">
|
|
54
53
|
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
Learn more
|
|
57
55
|
</a>
|
|
58
56
|
|
|
59
57
|
</div>
|
|
@@ -83,8 +81,7 @@ exports[`Bottom Start 1`] = `
|
|
|
83
81
|
|
|
84
82
|
<a href="#" class="mx-link--more">
|
|
85
83
|
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
Learn more
|
|
88
85
|
</a>
|
|
89
86
|
|
|
90
87
|
</div>
|
|
@@ -114,8 +111,7 @@ exports[`Left 1`] = `
|
|
|
114
111
|
|
|
115
112
|
<a href="#" class="mx-link--more">
|
|
116
113
|
|
|
117
|
-
|
|
118
|
-
|
|
114
|
+
Learn more
|
|
119
115
|
</a>
|
|
120
116
|
|
|
121
117
|
</div>
|
|
@@ -145,8 +141,7 @@ exports[`Left End 1`] = `
|
|
|
145
141
|
|
|
146
142
|
<a href="#" class="mx-link--more">
|
|
147
143
|
|
|
148
|
-
|
|
149
|
-
|
|
144
|
+
Learn more
|
|
150
145
|
</a>
|
|
151
146
|
|
|
152
147
|
</div>
|
|
@@ -176,8 +171,7 @@ exports[`Left Start 1`] = `
|
|
|
176
171
|
|
|
177
172
|
<a href="#" class="mx-link--more">
|
|
178
173
|
|
|
179
|
-
|
|
180
|
-
|
|
174
|
+
Learn more
|
|
181
175
|
</a>
|
|
182
176
|
|
|
183
177
|
</div>
|
|
@@ -207,8 +201,7 @@ exports[`Popover 1`] = `
|
|
|
207
201
|
|
|
208
202
|
<a href="#" class="mx-link--more">
|
|
209
203
|
|
|
210
|
-
|
|
211
|
-
|
|
204
|
+
Learn more
|
|
212
205
|
</a>
|
|
213
206
|
|
|
214
207
|
</div>
|
|
@@ -238,8 +231,7 @@ exports[`Right 1`] = `
|
|
|
238
231
|
|
|
239
232
|
<a href="#" class="mx-link--more">
|
|
240
233
|
|
|
241
|
-
|
|
242
|
-
|
|
234
|
+
Learn more
|
|
243
235
|
</a>
|
|
244
236
|
|
|
245
237
|
</div>
|
|
@@ -269,8 +261,7 @@ exports[`Right End 1`] = `
|
|
|
269
261
|
|
|
270
262
|
<a href="#" class="mx-link--more">
|
|
271
263
|
|
|
272
|
-
|
|
273
|
-
|
|
264
|
+
Learn more
|
|
274
265
|
</a>
|
|
275
266
|
|
|
276
267
|
</div>
|
|
@@ -300,8 +291,7 @@ exports[`Right Start 1`] = `
|
|
|
300
291
|
|
|
301
292
|
<a href="#" class="mx-link--more">
|
|
302
293
|
|
|
303
|
-
|
|
304
|
-
|
|
294
|
+
Learn more
|
|
305
295
|
</a>
|
|
306
296
|
|
|
307
297
|
</div>
|
|
@@ -331,8 +321,7 @@ exports[`Top 1`] = `
|
|
|
331
321
|
|
|
332
322
|
<a href="#" class="mx-link--more">
|
|
333
323
|
|
|
334
|
-
|
|
335
|
-
|
|
324
|
+
Learn more
|
|
336
325
|
</a>
|
|
337
326
|
|
|
338
327
|
</div>
|
|
@@ -362,8 +351,7 @@ exports[`Top End 1`] = `
|
|
|
362
351
|
|
|
363
352
|
<a href="#" class="mx-link--more">
|
|
364
353
|
|
|
365
|
-
|
|
366
|
-
|
|
354
|
+
Learn more
|
|
367
355
|
</a>
|
|
368
356
|
|
|
369
357
|
</div>
|
|
@@ -393,8 +381,7 @@ exports[`Top Start 1`] = `
|
|
|
393
381
|
|
|
394
382
|
<a href="#" class="mx-link--more">
|
|
395
383
|
|
|
396
|
-
|
|
397
|
-
|
|
384
|
+
Learn more
|
|
398
385
|
</a>
|
|
399
386
|
|
|
400
387
|
</div>
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
padding: var(--popover-padding, var(--spacing-xs));
|
|
27
27
|
background-color: var(--popover-background, var(--colour-background));
|
|
28
28
|
color: var(--popover-foreground, var(--colour-foreground));
|
|
29
|
-
border: var(--popover-line-width,
|
|
29
|
+
border: var(--popover-line-width, 1px) solid var(--popover-line-colour, transparent);
|
|
30
30
|
border-radius: var(--popover-radius, var(--border-radius));
|
|
31
31
|
box-shadow: var(--popover-shadow, var(--box-shadow));
|
|
32
32
|
max-inline-size: var(--popover-width, 30ch);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/html-vite"
|
|
2
|
+
import Component from "./progress-indicator.twig"
|
|
3
|
+
import "./progress-indicator.css"
|
|
4
|
+
|
|
5
|
+
type ProgressIndicatorProps = {
|
|
6
|
+
steps: string[]
|
|
7
|
+
current: number
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const steps = ["Your card", "Your details", "Your income", "Evidence", "Review and submit"]
|
|
11
|
+
|
|
12
|
+
const meta: Meta<ProgressIndicatorProps> = {
|
|
13
|
+
tags: ["autodocs"],
|
|
14
|
+
component: Component,
|
|
15
|
+
args: {
|
|
16
|
+
steps,
|
|
17
|
+
current: 1,
|
|
18
|
+
},
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default meta
|
|
22
|
+
type Story = StoryObj<ProgressIndicatorProps>
|
|
23
|
+
|
|
24
|
+
export const ProgressIndicator: Story = {}
|
|
25
|
+
|
|
26
|
+
export const MiddleStep: Story = {
|
|
27
|
+
args: {
|
|
28
|
+
current: 3,
|
|
29
|
+
},
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export const LastStep: Story = {
|
|
33
|
+
args: {
|
|
34
|
+
current: 5,
|
|
35
|
+
},
|
|
36
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/react-vite"
|
|
2
|
+
import Component from "./ProgressIndicator"
|
|
3
|
+
import "./progress-indicator.css"
|
|
4
|
+
import { Page } from "../../../.storybook-react/decorators"
|
|
5
|
+
|
|
6
|
+
const steps = ["Your card", "Your details", "Your income", "Evidence", "Review and submit"]
|
|
7
|
+
|
|
8
|
+
const meta: Meta<typeof Component> = {
|
|
9
|
+
component: Component,
|
|
10
|
+
decorators: [Page],
|
|
11
|
+
args: {
|
|
12
|
+
steps,
|
|
13
|
+
current: 1,
|
|
14
|
+
},
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default meta
|
|
18
|
+
export const ProgressIndicator: StoryObj<typeof meta> = {}
|
|
19
|
+
|
|
20
|
+
export const MiddleStep: StoryObj<typeof meta> = {
|
|
21
|
+
args: {
|
|
22
|
+
current: 3,
|
|
23
|
+
},
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export const LastStep: StoryObj<typeof meta> = {
|
|
27
|
+
args: {
|
|
28
|
+
current: 5,
|
|
29
|
+
},
|
|
30
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { JSX } from "react"
|
|
2
|
+
import classNames from "classnames"
|
|
3
|
+
import { validators } from "../../Utility/utilities"
|
|
4
|
+
|
|
5
|
+
type ProgressIndicatorProps = {
|
|
6
|
+
steps: string[]
|
|
7
|
+
current: number
|
|
8
|
+
className?: string
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const ProgressIndicator = ({
|
|
12
|
+
steps,
|
|
13
|
+
current,
|
|
14
|
+
className = null,
|
|
15
|
+
}: ProgressIndicatorProps): JSX.Element => {
|
|
16
|
+
const total = steps.length
|
|
17
|
+
const currentStep = validators.integer(current, 1, total) ? current : 1
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
<div className={classNames("mx-progress-indicator", className)}>
|
|
21
|
+
<p className="mx-progress-indicator__count">
|
|
22
|
+
Step {currentStep} of {total} — {steps[currentStep - 1]}
|
|
23
|
+
</p>
|
|
24
|
+
<div className="mx-progress-indicator__track" aria-hidden="true">
|
|
25
|
+
{steps.map((step, index) => {
|
|
26
|
+
const position = index + 1
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<i
|
|
30
|
+
key={`${step}-${position}`}
|
|
31
|
+
className={classNames("mx-progress-indicator__marker", {
|
|
32
|
+
"mx-progress-indicator__marker--done": position < currentStep,
|
|
33
|
+
"mx-progress-indicator__marker--now": position === currentStep,
|
|
34
|
+
})}
|
|
35
|
+
/>
|
|
36
|
+
)
|
|
37
|
+
})}
|
|
38
|
+
</div>
|
|
39
|
+
<ol className="mx-progress-indicator__steps">
|
|
40
|
+
{steps.map((step, index) => {
|
|
41
|
+
const position = index + 1
|
|
42
|
+
|
|
43
|
+
return (
|
|
44
|
+
<li
|
|
45
|
+
key={`${step}-${position}`}
|
|
46
|
+
className={classNames("mx-progress-indicator__step", {
|
|
47
|
+
"mx-progress-indicator__step--done": position < currentStep,
|
|
48
|
+
})}
|
|
49
|
+
aria-current={position === currentStep ? "step" : undefined}
|
|
50
|
+
>
|
|
51
|
+
{step}
|
|
52
|
+
</li>
|
|
53
|
+
)
|
|
54
|
+
})}
|
|
55
|
+
</ol>
|
|
56
|
+
</div>
|
|
57
|
+
)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export default ProgressIndicator
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# ProgressIndicator
|
|
2
|
+
|
|
3
|
+
A horizontal step-progress tracker for multi-step forms and wizards — a status sentence, a segmented bar, and a list of step names, with the current step highlighted. Presentational only: the parent application owns the step-switching logic and re-renders with an updated `current` prop/value.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## CSS Import
|
|
8
|
+
|
|
9
|
+
```css
|
|
10
|
+
@import "@pnx-mixtape/mxds/src/Component/ProgressIndicator/progress-indicator.css";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Twig
|
|
16
|
+
|
|
17
|
+
```twig
|
|
18
|
+
{% include '@mixtape/Component/ProgressIndicator/progress-indicator.twig' with {
|
|
19
|
+
steps: ['Your card', 'Your details', 'Your income', 'Evidence', 'Review and submit'],
|
|
20
|
+
current: 2,
|
|
21
|
+
} %}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**progress-indicator.twig props:**
|
|
25
|
+
|
|
26
|
+
| Prop | Type | Required | Description |
|
|
27
|
+
| ------------ | ----------- | -------- | --------------------------------------------------- |
|
|
28
|
+
| `steps` | `string[]` | Yes | Ordered list of step labels |
|
|
29
|
+
| `current` | `int` | Yes | 1-indexed position of the active step |
|
|
30
|
+
| `attributes` | `Attribute` | No | Optional Drupal-style attributes object on the root |
|
|
31
|
+
|
|
32
|
+
`steps` is treated as plain data (fixed step names for one form), not editorial content — each label renders as a bare list item, so it's looped directly rather than passed as a pre-joined string.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## HTML
|
|
37
|
+
|
|
38
|
+
```html
|
|
39
|
+
<div class="mx-progress-indicator">
|
|
40
|
+
<p class="mx-progress-indicator__count">Step 2 of 5 — Your details</p>
|
|
41
|
+
<div class="mx-progress-indicator__track" aria-hidden="true">
|
|
42
|
+
<i class="mx-progress-indicator__marker mx-progress-indicator__marker--done"></i>
|
|
43
|
+
<i class="mx-progress-indicator__marker mx-progress-indicator__marker--now"></i>
|
|
44
|
+
<i class="mx-progress-indicator__marker"></i>
|
|
45
|
+
<i class="mx-progress-indicator__marker"></i>
|
|
46
|
+
<i class="mx-progress-indicator__marker"></i>
|
|
47
|
+
</div>
|
|
48
|
+
<ol class="mx-progress-indicator__steps">
|
|
49
|
+
<li class="mx-progress-indicator__step mx-progress-indicator__step--done">Your card</li>
|
|
50
|
+
<li class="mx-progress-indicator__step" aria-current="step">Your details</li>
|
|
51
|
+
<li class="mx-progress-indicator__step">Your income</li>
|
|
52
|
+
<li class="mx-progress-indicator__step">Evidence</li>
|
|
53
|
+
<li class="mx-progress-indicator__step">Review and submit</li>
|
|
54
|
+
</ol>
|
|
55
|
+
</div>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## React
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
import { ProgressIndicator } from "@pnx-mixtape/mxds/react"
|
|
64
|
+
|
|
65
|
+
;<ProgressIndicator
|
|
66
|
+
steps={["Your card", "Your details", "Your income", "Evidence", "Review and submit"]}
|
|
67
|
+
current={2}
|
|
68
|
+
/>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**`ProgressIndicator` props:**
|
|
72
|
+
|
|
73
|
+
| Prop | Type | Default | Description |
|
|
74
|
+
| ----------- | ---------- | ------- | ------------------------------------- |
|
|
75
|
+
| `steps` | `string[]` | — | Ordered list of step labels |
|
|
76
|
+
| `current` | `number` | — | 1-indexed position of the active step |
|
|
77
|
+
| `className` | `string` | — | Extra class on the root |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Modifiers
|
|
82
|
+
|
|
83
|
+
There are no BEM modifier classes to apply by hand — the per-step `--done`/`--now` states on the track markers and step list are derived automatically from comparing each step's position against `current`.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Accessibility
|
|
88
|
+
|
|
89
|
+
- The segmented track (`mx-progress-indicator__track`) is `aria-hidden` — it's a decorative echo of progress, not the source of truth.
|
|
90
|
+
- The real status is the `mx-progress-indicator__count` sentence ("Step 2 of 5 — Your details") and the `<ol>` of step names, with `aria-current="step"` on the active one — both are read by screen readers as ordinary text/list content.
|
|
91
|
+
- The `::before` checkmark on completed steps (`mx-progress-indicator__step--done`) is a visual-only enhancement; completion is already conveyed by list order relative to `aria-current`, so its absence from some assistive tech's generated-content support doesn't lose information.
|
|
92
|
+
- On navigation, the consuming application is responsible for moving focus to the new step's heading (or an error summary, if validation fails) — this component doesn't manage focus itself, same as it doesn't manage step-switching.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Customisation
|
|
97
|
+
|
|
98
|
+
| Custom property | Applies to | Default |
|
|
99
|
+
| -------------------------- | ------------------------------------------------------------------------ | ----------------------- |
|
|
100
|
+
| `--gap` | `.mx-progress-indicator` | `var(--spacing-xs)` |
|
|
101
|
+
| `--track-gap` | `.mx-progress-indicator__track` | `var(--spacing-xxxs)` |
|
|
102
|
+
| `--marker-size` | `.mx-progress-indicator__track` | `var(--spacing-xxxs)` |
|
|
103
|
+
| `--marker-colour` | `.mx-progress-indicator__track` | `var(--colour-border)` |
|
|
104
|
+
| `--marker-colour-complete` | `.mx-progress-indicator__track` | `var(--colour-primary)` |
|
|
105
|
+
| `--marker-colour-active` | `.mx-progress-indicator__track` and active `mx-progress-indicator__step` | `var(--colour-primary)` |
|
|
106
|
+
|
|
107
|
+
```css
|
|
108
|
+
.theme--health-services .mx-progress-indicator {
|
|
109
|
+
font-family: var(--font-family-display);
|
|
110
|
+
}
|
|
111
|
+
```
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`Last Step 1`] = `
|
|
4
|
+
"
|
|
5
|
+
<div class="mx-progress-indicator">
|
|
6
|
+
<p class="mx-progress-indicator__count">Step 5 of 5 — Review and submit</p>
|
|
7
|
+
<div class="mx-progress-indicator__track" aria-hidden="true">
|
|
8
|
+
<i class="mx-progress-indicator__marker mx-progress-indicator__marker--done"></i>
|
|
9
|
+
<i class="mx-progress-indicator__marker mx-progress-indicator__marker--done"></i>
|
|
10
|
+
<i class="mx-progress-indicator__marker mx-progress-indicator__marker--done"></i>
|
|
11
|
+
<i class="mx-progress-indicator__marker mx-progress-indicator__marker--done"></i>
|
|
12
|
+
<i class="mx-progress-indicator__marker mx-progress-indicator__marker--now"></i>
|
|
13
|
+
</div>
|
|
14
|
+
<ol class="mx-progress-indicator__steps">
|
|
15
|
+
<li class="mx-progress-indicator__step mx-progress-indicator__step--done">Your card</li>
|
|
16
|
+
<li class="mx-progress-indicator__step mx-progress-indicator__step--done">Your details</li>
|
|
17
|
+
<li class="mx-progress-indicator__step mx-progress-indicator__step--done">Your income</li>
|
|
18
|
+
<li class="mx-progress-indicator__step mx-progress-indicator__step--done">Evidence</li>
|
|
19
|
+
<li class="mx-progress-indicator__step" aria-current="step">Review and submit</li>
|
|
20
|
+
</ol>
|
|
21
|
+
</div>
|
|
22
|
+
"
|
|
23
|
+
`;
|
|
24
|
+
|
|
25
|
+
exports[`Middle Step 1`] = `
|
|
26
|
+
"
|
|
27
|
+
<div class="mx-progress-indicator">
|
|
28
|
+
<p class="mx-progress-indicator__count">Step 3 of 5 — Your income</p>
|
|
29
|
+
<div class="mx-progress-indicator__track" aria-hidden="true">
|
|
30
|
+
<i class="mx-progress-indicator__marker mx-progress-indicator__marker--done"></i>
|
|
31
|
+
<i class="mx-progress-indicator__marker mx-progress-indicator__marker--done"></i>
|
|
32
|
+
<i class="mx-progress-indicator__marker mx-progress-indicator__marker--now"></i>
|
|
33
|
+
<i class="mx-progress-indicator__marker"></i>
|
|
34
|
+
<i class="mx-progress-indicator__marker"></i>
|
|
35
|
+
</div>
|
|
36
|
+
<ol class="mx-progress-indicator__steps">
|
|
37
|
+
<li class="mx-progress-indicator__step mx-progress-indicator__step--done">Your card</li>
|
|
38
|
+
<li class="mx-progress-indicator__step mx-progress-indicator__step--done">Your details</li>
|
|
39
|
+
<li class="mx-progress-indicator__step" aria-current="step">Your income</li>
|
|
40
|
+
<li class="mx-progress-indicator__step">Evidence</li>
|
|
41
|
+
<li class="mx-progress-indicator__step">Review and submit</li>
|
|
42
|
+
</ol>
|
|
43
|
+
</div>
|
|
44
|
+
"
|
|
45
|
+
`;
|
|
46
|
+
|
|
47
|
+
exports[`Progress Indicator 1`] = `
|
|
48
|
+
"
|
|
49
|
+
<div class="mx-progress-indicator">
|
|
50
|
+
<p class="mx-progress-indicator__count">Step 1 of 5 — Your card</p>
|
|
51
|
+
<div class="mx-progress-indicator__track" aria-hidden="true">
|
|
52
|
+
<i class="mx-progress-indicator__marker mx-progress-indicator__marker--now"></i>
|
|
53
|
+
<i class="mx-progress-indicator__marker"></i>
|
|
54
|
+
<i class="mx-progress-indicator__marker"></i>
|
|
55
|
+
<i class="mx-progress-indicator__marker"></i>
|
|
56
|
+
<i class="mx-progress-indicator__marker"></i>
|
|
57
|
+
</div>
|
|
58
|
+
<ol class="mx-progress-indicator__steps">
|
|
59
|
+
<li class="mx-progress-indicator__step" aria-current="step">Your card</li>
|
|
60
|
+
<li class="mx-progress-indicator__step">Your details</li>
|
|
61
|
+
<li class="mx-progress-indicator__step">Your income</li>
|
|
62
|
+
<li class="mx-progress-indicator__step">Evidence</li>
|
|
63
|
+
<li class="mx-progress-indicator__step">Review and submit</li>
|
|
64
|
+
</ol>
|
|
65
|
+
</div>
|
|
66
|
+
"
|
|
67
|
+
`;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`Last Step 1`] = `"<div class="mx-progress-indicator"><p class="mx-progress-indicator__count">Step 5 of 5 — Review and submit</p><div class="mx-progress-indicator__track" aria-hidden="true"><i class="mx-progress-indicator__marker mx-progress-indicator__marker--done"></i><i class="mx-progress-indicator__marker mx-progress-indicator__marker--done"></i><i class="mx-progress-indicator__marker mx-progress-indicator__marker--done"></i><i class="mx-progress-indicator__marker mx-progress-indicator__marker--done"></i><i class="mx-progress-indicator__marker mx-progress-indicator__marker--now"></i></div><ol class="mx-progress-indicator__steps"><li class="mx-progress-indicator__step mx-progress-indicator__step--done">Your card</li><li class="mx-progress-indicator__step mx-progress-indicator__step--done">Your details</li><li class="mx-progress-indicator__step mx-progress-indicator__step--done">Your income</li><li class="mx-progress-indicator__step mx-progress-indicator__step--done">Evidence</li><li class="mx-progress-indicator__step" aria-current="step">Review and submit</li></ol></div>"`;
|
|
4
|
+
|
|
5
|
+
exports[`Middle Step 1`] = `"<div class="mx-progress-indicator"><p class="mx-progress-indicator__count">Step 3 of 5 — Your income</p><div class="mx-progress-indicator__track" aria-hidden="true"><i class="mx-progress-indicator__marker mx-progress-indicator__marker--done"></i><i class="mx-progress-indicator__marker mx-progress-indicator__marker--done"></i><i class="mx-progress-indicator__marker mx-progress-indicator__marker--now"></i><i class="mx-progress-indicator__marker"></i><i class="mx-progress-indicator__marker"></i></div><ol class="mx-progress-indicator__steps"><li class="mx-progress-indicator__step mx-progress-indicator__step--done">Your card</li><li class="mx-progress-indicator__step mx-progress-indicator__step--done">Your details</li><li class="mx-progress-indicator__step" aria-current="step">Your income</li><li class="mx-progress-indicator__step">Evidence</li><li class="mx-progress-indicator__step">Review and submit</li></ol></div>"`;
|
|
6
|
+
|
|
7
|
+
exports[`Progress Indicator 1`] = `"<div class="mx-progress-indicator"><p class="mx-progress-indicator__count">Step 1 of 5 — Your card</p><div class="mx-progress-indicator__track" aria-hidden="true"><i class="mx-progress-indicator__marker mx-progress-indicator__marker--now"></i><i class="mx-progress-indicator__marker"></i><i class="mx-progress-indicator__marker"></i><i class="mx-progress-indicator__marker"></i><i class="mx-progress-indicator__marker"></i></div><ol class="mx-progress-indicator__steps"><li class="mx-progress-indicator__step" aria-current="step">Your card</li><li class="mx-progress-indicator__step">Your details</li><li class="mx-progress-indicator__step">Your income</li><li class="mx-progress-indicator__step">Evidence</li><li class="mx-progress-indicator__step">Review and submit</li></ol></div>"`;
|