@pnx-mixtape/mxds 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +274 -0
- package/dist/build/Accordion.js +61 -0
- package/dist/build/Accordion.js.map +1 -0
- package/dist/build/AccordionDiv.js +62 -0
- package/dist/build/AccordionDiv.js.map +1 -0
- package/dist/build/AccordionGroup.js +85 -0
- package/dist/build/AccordionGroup.js.map +1 -0
- package/dist/build/AccordionMobile.js +31 -0
- package/dist/build/AccordionMobile.js.map +1 -0
- package/dist/build/Dialog.js +116 -0
- package/dist/build/Dialog.js.map +1 -0
- package/dist/build/DropMenu.js +132 -0
- package/dist/build/DropMenu.js.map +1 -0
- package/dist/build/GlobalToggle.js +103 -0
- package/dist/build/GlobalToggle.js.map +1 -0
- package/dist/build/InPageAlert.js +61 -0
- package/dist/build/InPageAlert.js.map +1 -0
- package/dist/build/InPageNavigation.js +92 -0
- package/dist/build/InPageNavigation.js.map +1 -0
- package/dist/build/Navigation.js +126 -0
- package/dist/build/Navigation.js.map +1 -0
- package/dist/build/Sticky.js +63 -0
- package/dist/build/Sticky.js.map +1 -0
- package/dist/build/Tabs.js +164 -0
- package/dist/build/Tabs.js.map +1 -0
- package/dist/build/accordion.css +108 -0
- package/dist/build/base.css +1000 -0
- package/dist/build/breadcrumb.css +47 -0
- package/dist/build/breakpoint-loader.js +52 -0
- package/dist/build/breakpoint-loader.js.map +1 -0
- package/dist/build/button.css +126 -0
- package/dist/build/callout.css +11 -0
- package/dist/build/card.css +135 -0
- package/dist/build/chunks/js.cookie-CiMiGxWx.js +101 -0
- package/dist/build/chunks/js.cookie-CiMiGxWx.js.map +1 -0
- package/dist/build/chunks/polyfills-CJ5uTmUJ.js +749 -0
- package/dist/build/chunks/polyfills-CJ5uTmUJ.js.map +1 -0
- package/dist/build/chunks/popover-wbPSyFRj.js +654 -0
- package/dist/build/chunks/popover-wbPSyFRj.js.map +1 -0
- package/dist/build/chunks/utilities-BIk0P2KX.js +61 -0
- package/dist/build/chunks/utilities-BIk0P2KX.js.map +1 -0
- package/dist/build/constants.css +120 -0
- package/dist/build/container-grid.css +207 -0
- package/dist/build/content-block.css +23 -0
- package/dist/build/cookie-compliance.js +122 -0
- package/dist/build/cookie-compliance.js.map +1 -0
- package/dist/build/dialog.css +98 -0
- package/dist/build/disclosure-widget.js +124 -0
- package/dist/build/disclosure-widget.js.map +1 -0
- package/dist/build/drop-menu.css +78 -0
- package/dist/build/drupal.css +74 -0
- package/dist/build/footer-menu.css +32 -0
- package/dist/build/footer.css +61 -0
- package/dist/build/form.css +589 -0
- package/dist/build/grid.css +200 -0
- package/dist/build/header.css +131 -0
- package/dist/build/hero-banner.css +62 -0
- package/dist/build/icon.css +399 -0
- package/dist/build/in-page-alert.css +94 -0
- package/dist/build/in-page-navigation.css +17 -0
- package/dist/build/index.css +4980 -0
- package/dist/build/io-loader.js +44 -0
- package/dist/build/io-loader.js.map +1 -0
- package/dist/build/keyboard.js +101 -0
- package/dist/build/keyboard.js.map +1 -0
- package/dist/build/link-list.css +72 -0
- package/dist/build/masthead.css +39 -0
- package/dist/build/nav-list.css +29 -0
- package/dist/build/navigation.css +371 -0
- package/dist/build/page.css +184 -0
- package/dist/build/pagination.css +123 -0
- package/dist/build/section.css +160 -0
- package/dist/build/sidebar.css +105 -0
- package/dist/build/sticky.css +47 -0
- package/dist/build/tabs.css +106 -0
- package/dist/build/tag.css +67 -0
- package/dist/build/tiles.css +61 -0
- package/dist/build/utilities.css +175 -0
- package/package.json +130 -0
- package/src/Atom/Background/Backgrounds.stories.ts +36 -0
- package/src/Atom/Background/__snapshots__/Backgrounds.stories.ts.snap +100 -0
- package/src/Atom/Background/_background.css +80 -0
- package/src/Atom/Background/backgrounds.twig +10 -0
- package/src/Atom/Base.mdx +76 -0
- package/src/Atom/Blockquote/_blockquote.css +7 -0
- package/src/Atom/Button/Button.stories.ts +71 -0
- package/src/Atom/Button/Button.stories.tsx +31 -0
- package/src/Atom/Button/Button.tsx +70 -0
- package/src/Atom/Button/README.md +30 -0
- package/src/Atom/Button/__snapshots__/Button.stories.ts.snap +41 -0
- package/src/Atom/Button/__snapshots__/Button.stories.tsx.snap +17 -0
- package/src/Atom/Button/_buttons-styles.css +48 -0
- package/src/Atom/Button/_buttons.css +71 -0
- package/src/Atom/Button/button.css +2 -0
- package/src/Atom/Button/button.twig +23 -0
- package/src/Atom/DefinitionList/DefinitionList.stories.tsx +25 -0
- package/src/Atom/DefinitionList/DefinitionList.tsx +27 -0
- package/src/Atom/DefinitionList/__snapshots__/DefinitionList.stories.tsx.snap +30 -0
- package/src/Atom/Heading/Heading.stories.ts +25 -0
- package/src/Atom/Heading/Heading.stories.tsx +19 -0
- package/src/Atom/Heading/Heading.tsx +44 -0
- package/src/Atom/Heading/__snapshots__/Heading.stories.ts.snap +7 -0
- package/src/Atom/Heading/__snapshots__/Heading.stories.tsx.snap +9 -0
- package/src/Atom/Heading/_headings.css +84 -0
- package/src/Atom/Heading/heading.twig +8 -0
- package/src/Atom/Icon/Icon.mdx +32 -0
- package/src/Atom/Icon/Icon.stories.ts +50 -0
- package/src/Atom/Icon/Icon.stories.tsx +44 -0
- package/src/Atom/Icon/Icon.tsx +30 -0
- package/src/Atom/Icon/README.md +7 -0
- package/src/Atom/Icon/__snapshots__/Icon.stories.ts.snap +18 -0
- package/src/Atom/Icon/__snapshots__/Icon.stories.tsx.snap +18 -0
- package/src/Atom/Icon/_extended-set.css +45 -0
- package/src/Atom/Icon/_icon.css +151 -0
- package/src/Atom/Icon/_mixin-icon.css +5 -0
- package/src/Atom/Icon/icon.css +2 -0
- package/src/Atom/Icon/icon.twig +12 -0
- package/src/Atom/Icon/images/arrow-down.svg +1 -0
- package/src/Atom/Icon/images/arrow-left.svg +1 -0
- package/src/Atom/Icon/images/arrow-right.svg +1 -0
- package/src/Atom/Icon/images/arrow-up.svg +1 -0
- package/src/Atom/Icon/images/attachment.svg +1 -0
- package/src/Atom/Icon/images/blockquote.svg +1 -0
- package/src/Atom/Icon/images/bluesky.svg +1 -0
- package/src/Atom/Icon/images/bookmark.svg +1 -0
- package/src/Atom/Icon/images/building.svg +1 -0
- package/src/Atom/Icon/images/calendar.svg +1 -0
- package/src/Atom/Icon/images/chevron-down.svg +1 -0
- package/src/Atom/Icon/images/chevron-left.svg +1 -0
- package/src/Atom/Icon/images/chevron-right.svg +1 -0
- package/src/Atom/Icon/images/chevron-up.svg +1 -0
- package/src/Atom/Icon/images/clock.svg +1 -0
- package/src/Atom/Icon/images/close.svg +1 -0
- package/src/Atom/Icon/images/collapse.svg +1 -0
- package/src/Atom/Icon/images/controls.svg +1 -0
- package/src/Atom/Icon/images/download.svg +1 -0
- package/src/Atom/Icon/images/drupal.svg +3 -0
- package/src/Atom/Icon/images/email.svg +1 -0
- package/src/Atom/Icon/images/error.svg +1 -0
- package/src/Atom/Icon/images/expand.svg +1 -0
- package/src/Atom/Icon/images/external-link.svg +1 -0
- package/src/Atom/Icon/images/facebook.svg +1 -0
- package/src/Atom/Icon/images/file.svg +1 -0
- package/src/Atom/Icon/images/globe.svg +1 -0
- package/src/Atom/Icon/images/google.svg +1 -0
- package/src/Atom/Icon/images/heart-selected.svg +1 -0
- package/src/Atom/Icon/images/heart-unselected.svg +1 -0
- package/src/Atom/Icon/images/home.svg +1 -0
- package/src/Atom/Icon/images/image.svg +1 -0
- package/src/Atom/Icon/images/info.svg +1 -0
- package/src/Atom/Icon/images/instagram.svg +1 -0
- package/src/Atom/Icon/images/link.svg +1 -0
- package/src/Atom/Icon/images/linkedin.svg +1 -0
- package/src/Atom/Icon/images/list.svg +1 -0
- package/src/Atom/Icon/images/lock.svg +1 -0
- package/src/Atom/Icon/images/login.svg +1 -0
- package/src/Atom/Icon/images/mastodon.svg +3 -0
- package/src/Atom/Icon/images/media-next.svg +1 -0
- package/src/Atom/Icon/images/media-pause.svg +1 -0
- package/src/Atom/Icon/images/media-play.svg +1 -0
- package/src/Atom/Icon/images/media-previous.svg +1 -0
- package/src/Atom/Icon/images/media-rewind.svg +1 -0
- package/src/Atom/Icon/images/media-skip.svg +1 -0
- package/src/Atom/Icon/images/media-stop.svg +1 -0
- package/src/Atom/Icon/images/menu.svg +1 -0
- package/src/Atom/Icon/images/more.svg +1 -0
- package/src/Atom/Icon/images/notification.svg +1 -0
- package/src/Atom/Icon/images/pencil.svg +1 -0
- package/src/Atom/Icon/images/phone.svg +1 -0
- package/src/Atom/Icon/images/pin.svg +1 -0
- package/src/Atom/Icon/images/print.svg +1 -0
- package/src/Atom/Icon/images/question.svg +1 -0
- package/src/Atom/Icon/images/restart.svg +1 -0
- package/src/Atom/Icon/images/search.svg +1 -0
- package/src/Atom/Icon/images/settings.svg +1 -0
- package/src/Atom/Icon/images/share.svg +1 -0
- package/src/Atom/Icon/images/star-selected.svg +1 -0
- package/src/Atom/Icon/images/star-unselected.svg +1 -0
- package/src/Atom/Icon/images/success.svg +1 -0
- package/src/Atom/Icon/images/tick.svg +1 -0
- package/src/Atom/Icon/images/trash.svg +1 -0
- package/src/Atom/Icon/images/twitter.svg +1 -0
- package/src/Atom/Icon/images/user.svg +1 -0
- package/src/Atom/Icon/images/video.svg +1 -0
- package/src/Atom/Icon/images/warning.svg +1 -0
- package/src/Atom/Icon/images/youtube.svg +1 -0
- package/src/Atom/Image/Image.stories.ts +20 -0
- package/src/Atom/Image/__snapshots__/Image.stories.ts.snap +9 -0
- package/src/Atom/Image/_image.css +29 -0
- package/src/Atom/Image/image.twig +13 -0
- package/src/Atom/Link/Link.stories.ts +37 -0
- package/src/Atom/Link/Link.stories.tsx +30 -0
- package/src/Atom/Link/Link.tsx +38 -0
- package/src/Atom/Link/__snapshots__/Link.stories.ts.snap +17 -0
- package/src/Atom/Link/__snapshots__/Link.stories.tsx.snap +25 -0
- package/src/Atom/Link/_links.css +39 -0
- package/src/Atom/Link/link.twig +12 -0
- package/src/Atom/Media/Media.stories.ts +26 -0
- package/src/Atom/Media/Media.stories.tsx +25 -0
- package/src/Atom/Media/Media.tsx +42 -0
- package/src/Atom/Media/__snapshots__/Media.stories.ts.snap +14 -0
- package/src/Atom/Media/__snapshots__/Media.stories.tsx.snap +18 -0
- package/src/Atom/Media/_media.css +40 -0
- package/src/Atom/Media/media.twig +18 -0
- package/src/Atom/NavList/NavList.stories.ts +15 -0
- package/src/Atom/NavList/__snapshots__/NavList.stories.ts.snap +43 -0
- package/src/Atom/NavList/nav-list.css +29 -0
- package/src/Atom/NavList/nav-list.twig +25 -0
- package/src/Atom/README.md +5 -0
- package/src/Atom/Spacing/Spacing.stories.ts +48 -0
- package/src/Atom/Spacing/__snapshots__/Spacing.stories.ts.snap +8 -0
- package/src/Atom/Spacing/_spacing.css +36 -0
- package/src/Atom/Spacing/spacing.twig +3 -0
- package/src/Atom/Table/Table.stories.ts +39 -0
- package/src/Atom/Table/TableResponsive.stories.ts +16 -0
- package/src/Atom/Table/__snapshots__/Table.stories.ts.snap +261 -0
- package/src/Atom/Table/__snapshots__/TableResponsive.stories.ts.snap +68 -0
- package/src/Atom/Table/_table.css +72 -0
- package/src/Atom/Table/table-responsive.twig +32 -0
- package/src/Atom/Table/table.twig +30 -0
- package/src/Atom/Text/Text.stories.tsx +20 -0
- package/src/Atom/Text/Text.tsx +26 -0
- package/src/Atom/Text/TextSizes.stories.ts +25 -0
- package/src/Atom/Text/__snapshots__/Text.stories.tsx.snap +7 -0
- package/src/Atom/Text/__snapshots__/TextSizes.stories.ts.snap +63 -0
- package/src/Atom/Text/_text-align.css +13 -0
- package/src/Atom/Text/_text-sizes.css +117 -0
- package/src/Atom/Text/text-alignment.twig +5 -0
- package/src/Atom/Text/text-style.twig +1 -0
- package/src/Atom/Text/text-styles-example.twig +35 -0
- package/src/Atom/Video/Video.stories.ts +16 -0
- package/src/Atom/Video/Video.tsx +17 -0
- package/src/Atom/Video/__snapshots__/Video.stories.ts.snap +21 -0
- package/src/Atom/Video/_video.css +10 -0
- package/src/Atom/Video/video.twig +5 -0
- package/src/Atom/_animated.css +65 -0
- package/src/Atom/_base.css +62 -0
- package/src/Atom/_flow-legacy.css +48 -0
- package/src/Atom/_flow.css +53 -0
- package/src/Atom/_generic.css +93 -0
- package/src/Atom/_hr.css +10 -0
- package/src/Atom/_mixins.css +22 -0
- package/src/Atom/_print.css +20 -0
- package/src/Atom/base.css +5 -0
- package/src/Atom/images/external-link.svg +1 -0
- package/src/Component/Accordion/Accordion.stories.ts +51 -0
- package/src/Component/Accordion/Accordion.stories.tsx +22 -0
- package/src/Component/Accordion/Accordion.tsx +83 -0
- package/src/Component/Accordion/Elements/Accordion.ts +82 -0
- package/src/Component/Accordion/Elements/AccordionDiv.ts +83 -0
- package/src/Component/Accordion/Elements/AccordionGroup.ts +106 -0
- package/src/Component/Accordion/Elements/AccordionMobile.ts +47 -0
- package/src/Component/Accordion/README.md +45 -0
- package/src/Component/Accordion/__snapshots__/Accordion.stories.ts.snap +94 -0
- package/src/Component/Accordion/__snapshots__/Accordion.stories.tsx.snap +26 -0
- package/src/Component/Accordion/accordion-item.twig +18 -0
- package/src/Component/Accordion/accordion.css +107 -0
- package/src/Component/Accordion/accordion.twig +19 -0
- package/src/Component/Accordion/images/collapse.svg +1 -0
- package/src/Component/Accordion/images/expand.svg +1 -0
- package/src/Component/Accordion/twig/accordion-div.twig +13 -0
- package/src/Component/Accordion/twig/accordion-example.twig +36 -0
- package/src/Component/Accordion/twig/accordion-mobile.twig +15 -0
- package/src/Component/Accordion/twig/accordion-story.twig +13 -0
- package/src/Component/Author/Author.stories.tsx +18 -0
- package/src/Component/Author/Author.tsx +30 -0
- package/src/Component/Author/__snapshots__/Author.stories.tsx.snap +21 -0
- package/src/Component/Breadcrumb/Breadcrumb.stories.ts +15 -0
- package/src/Component/Breadcrumb/Breadcrumb.stories.tsx +38 -0
- package/src/Component/Breadcrumb/Breadcrumb.tsx +34 -0
- package/src/Component/Breadcrumb/__snapshots__/Breadcrumb.stories.ts.snap +26 -0
- package/src/Component/Breadcrumb/__snapshots__/Breadcrumb.stories.tsx.snap +60 -0
- package/src/Component/Breadcrumb/breadcrumb.css +46 -0
- package/src/Component/Breadcrumb/breadcrumb.twig +12 -0
- package/src/Component/Callout/Callout.stories.ts +29 -0
- package/src/Component/Callout/callout.css +7 -0
- package/src/Component/Callout/callout.twig +10 -0
- package/src/Component/Callout/twig/callout-story.twig +11 -0
- package/src/Component/Card/CHANGELOG.md +187 -0
- package/src/Component/Card/Card.stories.ts +106 -0
- package/src/Component/Card/Card.stories.tsx +50 -0
- package/src/Component/Card/Card.tsx +56 -0
- package/src/Component/Card/README.md +21 -0
- package/src/Component/Card/__snapshots__/Card.stories.ts.snap +186 -0
- package/src/Component/Card/__snapshots__/Card.stories.tsx.snap +88 -0
- package/src/Component/Card/__snapshots__/CardGrid.stories.ts.snap +89 -0
- package/src/Component/Card/card-grid.twig +10 -0
- package/src/Component/Card/card.css +128 -0
- package/src/Component/Card/card.twig +45 -0
- package/src/Component/Card/twig/old-card.twig +17 -0
- package/src/Component/Card/twig/story-card.twig +29 -0
- package/src/Component/ContentBlock/ContentBlock.stories.ts +15 -0
- package/src/Component/ContentBlock/ContentBlock.stories.tsx +30 -0
- package/src/Component/ContentBlock/ContentBlock.tsx +37 -0
- package/src/Component/ContentBlock/README.md +21 -0
- package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.ts.snap +26 -0
- package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.tsx.snap +21 -0
- package/src/Component/ContentBlock/content-block.css +21 -0
- package/src/Component/ContentBlock/content-block.twig +12 -0
- package/src/Component/ContentBlock/twig/content-block-example.twig +7 -0
- package/src/Component/Dialog/Dialog.stories.ts +28 -0
- package/src/Component/Dialog/Dialog.stories.tsx +45 -0
- package/src/Component/Dialog/Dialog.tsx +79 -0
- package/src/Component/Dialog/Elements/Dialog.ts +145 -0
- package/src/Component/Dialog/README.md +63 -0
- package/src/Component/Dialog/__snapshots__/Dialog.stories.ts.snap +85 -0
- package/src/Component/Dialog/__snapshots__/Dialog.stories.tsx.snap +39 -0
- package/src/Component/Dialog/dialog.css +85 -0
- package/src/Component/Dialog/dialog.twig +19 -0
- package/src/Component/DropMenu/Components/DropMenuContext.tsx +192 -0
- package/src/Component/DropMenu/Components/DropMenuItem.tsx +35 -0
- package/src/Component/DropMenu/DropMenu.stories.ts +36 -0
- package/src/Component/DropMenu/DropMenu.stories.tsx +24 -0
- package/src/Component/DropMenu/DropMenu.tsx +81 -0
- package/src/Component/DropMenu/Elements/DropMenu.ts +172 -0
- package/src/Component/DropMenu/README.md +11 -0
- package/src/Component/DropMenu/__snapshots__/DropMenu.stories.ts.snap +32 -0
- package/src/Component/DropMenu/__snapshots__/DropMenu.stories.tsx.snap +47 -0
- package/src/Component/DropMenu/drop-menu.css +68 -0
- package/src/Component/DropMenu/drop-menu.twig +27 -0
- package/src/Component/DropMenu/polyfills.js +28 -0
- package/src/Component/HeroBanner/HeroBanner.stories.ts +75 -0
- package/src/Component/HeroBanner/HeroBanner.stories.tsx +30 -0
- package/src/Component/HeroBanner/HeroBanner.tsx +50 -0
- package/src/Component/HeroBanner/__snapshots__/PageTitle.stories.ts.snap +31 -0
- package/src/Component/HeroBanner/__snapshots__/PageTitle.stories.tsx.snap +36 -0
- package/src/Component/HeroBanner/hero-banner.css +51 -0
- package/src/Component/HeroBanner/hero-banner.twig +41 -0
- package/src/Component/HeroBanner/twig/hero-banner-story.twig +19 -0
- package/src/Component/InPageAlert/Elements/InPageAlert.ts +87 -0
- package/src/Component/InPageAlert/InPageAlert.stories.ts +35 -0
- package/src/Component/InPageAlert/InPageAlert.stories.tsx +43 -0
- package/src/Component/InPageAlert/InPageAlert.tsx +50 -0
- package/src/Component/InPageAlert/README.md +27 -0
- package/src/Component/InPageAlert/__snapshots__/InPageAlert.stories.ts.snap +43 -0
- package/src/Component/InPageAlert/__snapshots__/InPageAlert.stories.tsx.snap +69 -0
- package/src/Component/InPageAlert/in-page-alert.css +89 -0
- package/src/Component/InPageAlert/in-page-alert.twig +18 -0
- package/src/Component/InPageNavigation/Elements/InPageNavigation.ts +125 -0
- package/src/Component/InPageNavigation/Hooks/useInPageNavigation.ts +45 -0
- package/src/Component/InPageNavigation/InPageNavigation.stories.ts +16 -0
- package/src/Component/InPageNavigation/InPageNavigation.stories.tsx +86 -0
- package/src/Component/InPageNavigation/InPageNavigation.tsx +38 -0
- package/src/Component/InPageNavigation/README.md +30 -0
- package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.ts.snap +73 -0
- package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.tsx.snap +149 -0
- package/src/Component/InPageNavigation/in-page-navigation.css +17 -0
- package/src/Component/InPageNavigation/in-page-navigation.twig +17 -0
- package/src/Component/InPageNavigation/twig/in-page-navigation-content-example.twig +16 -0
- package/src/Component/InPageNavigation/twig/in-page-navigation-menu-example.twig +6 -0
- package/src/Component/LinkList/LinkList.stories.ts +29 -0
- package/src/Component/LinkList/LinkList.stories.tsx +29 -0
- package/src/Component/LinkList/LinkList.tsx +43 -0
- package/src/Component/LinkList/README.md +19 -0
- package/src/Component/LinkList/__snapshots__/LinkList.stories.ts.snap +58 -0
- package/src/Component/LinkList/__snapshots__/LinkList.stories.tsx.snap +53 -0
- package/src/Component/LinkList/link-list.css +68 -0
- package/src/Component/LinkList/link-list.twig +12 -0
- package/src/Component/ListItem/Teaser.stories.tsx +34 -0
- package/src/Component/ListItem/Teaser.tsx +54 -0
- package/src/Component/ListItem/__snapshots__/Teaser.stories.tsx.snap +32 -0
- package/src/Component/Navigation/Collapsible.stories.ts +16 -0
- package/src/Component/Navigation/Components/DropdownLevel.tsx +107 -0
- package/src/Component/Navigation/Dropdown.stories.ts +16 -0
- package/src/Component/Navigation/Dropdown.stories.tsx +46 -0
- package/src/Component/Navigation/Dropdown.tsx +39 -0
- package/src/Component/Navigation/Elements/Navigation.ts +174 -0
- package/src/Component/Navigation/MegaNav.stories.ts +16 -0
- package/src/Component/Navigation/Navigation.stories.ts +15 -0
- package/src/Component/Navigation/Navigation.stories.tsx +40 -0
- package/src/Component/Navigation/Navigation.tsx +51 -0
- package/src/Component/Navigation/README.md +17 -0
- package/src/Component/Navigation/__snapshots__/Collapsible.stories.ts.snap +123 -0
- package/src/Component/Navigation/__snapshots__/Dropdown.stories.ts.snap +125 -0
- package/src/Component/Navigation/__snapshots__/Dropdown.stories.tsx.snap +39 -0
- package/src/Component/Navigation/__snapshots__/Navigation.stories.ts.snap +25 -0
- package/src/Component/Navigation/__snapshots__/Navigation.stories.tsx.snap +61 -0
- package/src/Component/Navigation/_navigation-collapsible.css +72 -0
- package/src/Component/Navigation/_navigation-dropdown.css +152 -0
- package/src/Component/Navigation/_navigation-mega.css +51 -0
- package/src/Component/Navigation/_navigation.css +55 -0
- package/src/Component/Navigation/navigation-collapsible.twig +7 -0
- package/src/Component/Navigation/navigation-dropdown.twig +7 -0
- package/src/Component/Navigation/navigation-mega-nav.twig +7 -0
- package/src/Component/Navigation/navigation.css +4 -0
- package/src/Component/Navigation/navigation.twig +9 -0
- package/src/Component/Navigation/twig/navigation-subnav-list.twig +108 -0
- package/src/Component/Pagination/Components/PaginationContext.tsx +188 -0
- package/src/Component/Pagination/Components/PaginationItem.tsx +48 -0
- package/src/Component/Pagination/Pagination.stories.ts +15 -0
- package/src/Component/Pagination/Pagination.stories.tsx +25 -0
- package/src/Component/Pagination/Pagination.tsx +75 -0
- package/src/Component/Pagination/README.md +19 -0
- package/src/Component/Pagination/__snapshots__/Pagination.stories.ts.snap +58 -0
- package/src/Component/Pagination/__snapshots__/Pagination.stories.tsx.snap +57 -0
- package/src/Component/Pagination/pagination.css +112 -0
- package/src/Component/Pagination/pagination.twig +44 -0
- package/src/Component/SocialShare/SocialShare.stories.tsx +26 -0
- package/src/Component/SocialShare/SocialShare.tsx +53 -0
- package/src/Component/SocialShare/__snapshots__/SocialShare.stories.tsx.snap +25 -0
- package/src/Component/Sticky/Elements/Sticky.ts +93 -0
- package/src/Component/Sticky/README.md +23 -0
- package/src/Component/Sticky/Sticky.stories.ts +16 -0
- package/src/Component/Sticky/Sticky.stories.tsx +14 -0
- package/src/Component/Sticky/Sticky.tsx +34 -0
- package/src/Component/Sticky/__snapshots__/Sticky.stories.ts.snap +86 -0
- package/src/Component/Sticky/__snapshots__/Sticky.stories.tsx.snap +11 -0
- package/src/Component/Sticky/sticky.css +39 -0
- package/src/Component/Sticky/sticky.twig +21 -0
- package/src/Component/Sticky/twig/sticky-example.twig +4 -0
- package/src/Component/Tabs/Components/Tab.tsx +45 -0
- package/src/Component/Tabs/Components/TabDropMenu.tsx +14 -0
- package/src/Component/Tabs/Components/TabList.tsx +9 -0
- package/src/Component/Tabs/Components/TabPanel.tsx +32 -0
- package/src/Component/Tabs/Elements/Tabs.ts +213 -0
- package/src/Component/Tabs/README.md +23 -0
- package/src/Component/Tabs/Tabs.stories.ts +22 -0
- package/src/Component/Tabs/Tabs.stories.tsx +51 -0
- package/src/Component/Tabs/Tabs.tsx +100 -0
- package/src/Component/Tabs/__snapshots__/Tabs.stories.ts.snap +144 -0
- package/src/Component/Tabs/__snapshots__/Tabs.stories.tsx.snap +120 -0
- package/src/Component/Tabs/tabs.css +103 -0
- package/src/Component/Tabs/tabs.twig +49 -0
- package/src/Component/Tabs/twig/panel.twig +5 -0
- package/src/Component/Tabs/twig/tab-list.twig +26 -0
- package/src/Component/Tag/README.md +19 -0
- package/src/Component/Tag/Tag.stories.ts +54 -0
- package/src/Component/Tag/Tag.stories.tsx +13 -0
- package/src/Component/Tag/Tag.tsx +19 -0
- package/src/Component/Tag/__snapshots__/Tag.stories.ts.snap +64 -0
- package/src/Component/Tag/__snapshots__/Tag.stories.tsx.snap +7 -0
- package/src/Component/Tag/tag.css +57 -0
- package/src/Component/Tag/tags.twig +23 -0
- package/src/Component/Tile/README.md +3 -0
- package/src/Component/Tile/Tile.stories.ts +23 -0
- package/src/Component/Tile/Tile.stories.tsx +30 -0
- package/src/Component/Tile/Tile.tsx +40 -0
- package/src/Component/Tile/__snapshots__/Tile.stories.ts.snap +83 -0
- package/src/Component/Tile/__snapshots__/Tile.stories.tsx.snap +38 -0
- package/src/Component/Tile/tile.twig +10 -0
- package/src/Component/Tile/tiles.css +58 -0
- package/src/Component/Tile/twig/tiles.twig +18 -0
- package/src/Form/Checkbox/Checkboxes.stories.ts +47 -0
- package/src/Form/Checkbox/FormCheckbox.stories.tsx +32 -0
- package/src/Form/Checkbox/FormCheckbox.tsx +124 -0
- package/src/Form/Checkbox/__snapshots__/Checkboxes.stories.ts.snap +115 -0
- package/src/Form/Checkbox/input-checkbox-single.twig +6 -0
- package/src/Form/Checkbox/input-checkbox.twig +24 -0
- package/src/Form/Description/Description.stories.ts +16 -0
- package/src/Form/Description/ErrorMessage.stories.ts +16 -0
- package/src/Form/Description/FormDescription.stories.tsx +14 -0
- package/src/Form/Description/FormDescription.tsx +28 -0
- package/src/Form/Description/__snapshots__/Description.stories.ts.snap +17 -0
- package/src/Form/Description/__snapshots__/ErrorMessage.stories.ts.snap +20 -0
- package/src/Form/Description/__snapshots__/FormDescription.stories.tsx.snap +10 -0
- package/src/Form/Description/form-description.twig +3 -0
- package/src/Form/Description/form-error.twig +5 -0
- package/src/Form/Fieldset/Fieldset.stories.ts +34 -0
- package/src/Form/Fieldset/__snapshots__/Fieldset.stories.ts.snap +23 -0
- package/src/Form/Fieldset/fieldset.twig +4 -0
- package/src/Form/Form/Form.stories.tsx +10 -0
- package/src/Form/Form/Form.tsx +9 -0
- package/src/Form/Form/FormTitle.stories.tsx +14 -0
- package/src/Form/Form/FormTitle.tsx +12 -0
- package/src/Form/Form/__snapshots__/Form.stories.tsx.snap +6 -0
- package/src/Form/Form/__snapshots__/FormTitle.stories.tsx.snap +9 -0
- package/src/Form/Form/twig/form-example.twig +13 -0
- package/src/Form/Item/FormItem.stories.tsx +58 -0
- package/src/Form/Item/FormItem.tsx +26 -0
- package/src/Form/Item/__snapshots__/FormItem.stories.tsx.snap +102 -0
- package/src/Form/Label/FormLabel.stories.tsx +20 -0
- package/src/Form/Label/FormLabel.tsx +19 -0
- package/src/Form/Label/Label.stories.ts +34 -0
- package/src/Form/Label/__snapshots__/FormLabel.stories.tsx.snap +16 -0
- package/src/Form/Label/__snapshots__/Label.stories.ts.snap +23 -0
- package/src/Form/Label/label.twig +2 -0
- package/src/Form/README.md +11 -0
- package/src/Form/Radio/FormRadio.stories.tsx +37 -0
- package/src/Form/Radio/FormRadio.tsx +80 -0
- package/src/Form/Radio/Radios.stories.ts +47 -0
- package/src/Form/Radio/__snapshots__/Radios.stories.ts.snap +125 -0
- package/src/Form/Radio/input-radio.twig +24 -0
- package/src/Form/Search/TextInputWithInlineButton.stories.ts +16 -0
- package/src/Form/Search/__snapshots__/TextInputWithInlineButton.stories.ts.snap +26 -0
- package/src/Form/Search/input-text-inline-submit.twig +8 -0
- package/src/Form/Select/FormSelect.stories.tsx +34 -0
- package/src/Form/Select/FormSelect.tsx +67 -0
- package/src/Form/Select/Select.stories.ts +40 -0
- package/src/Form/Select/__snapshots__/FormSelect.stories.tsx.snap +23 -0
- package/src/Form/Select/__snapshots__/Select.stories.ts.snap +148 -0
- package/src/Form/Select/select.twig +16 -0
- package/src/Form/TextInput/FormText.stories.tsx +15 -0
- package/src/Form/TextInput/FormText.tsx +55 -0
- package/src/Form/TextInput/InputDivider.stories.ts +16 -0
- package/src/Form/TextInput/TextInput.stories.ts +57 -0
- package/src/Form/TextInput/TextInputWithIcon.stories.ts +40 -0
- package/src/Form/TextInput/__snapshots__/FormText.stories.tsx.snap +13 -0
- package/src/Form/TextInput/__snapshots__/InputDivider.stories.ts.snap +32 -0
- package/src/Form/TextInput/__snapshots__/TextInput.stories.ts.snap +101 -0
- package/src/Form/TextInput/__snapshots__/TextInputWithIcon.stories.ts.snap +67 -0
- package/src/Form/TextInput/input-divider.twig +11 -0
- package/src/Form/TextInput/input-text-icon.twig +7 -0
- package/src/Form/TextInput/input-text.twig +5 -0
- package/src/Form/Textarea/FormTextarea.stories.tsx +14 -0
- package/src/Form/Textarea/FormTextarea.tsx +53 -0
- package/src/Form/Textarea/Textarea.stories.ts +16 -0
- package/src/Form/Textarea/__snapshots__/FormTextarea.stories.tsx.snap +12 -0
- package/src/Form/Textarea/__snapshots__/Textarea.stories.ts.snap +19 -0
- package/src/Form/Textarea/textarea.twig +5 -0
- package/src/Form/form.css +479 -0
- package/src/Form/images/checkmark.svg +1 -0
- package/src/Form/images/form-chevron-down.svg +1 -0
- package/src/Form/images/form-error.svg +1 -0
- package/src/Form/images/form-success.svg +1 -0
- package/src/Layout/Footer/Footer.stories.ts +15 -0
- package/src/Layout/Footer/Footer.stories.tsx +42 -0
- package/src/Layout/Footer/Footer.tsx +55 -0
- package/src/Layout/Footer/FooterMenu/FooterMenu.stories.ts +15 -0
- package/src/Layout/Footer/FooterMenu/__snapshots__/FooterMenu.stories.ts.snap +101 -0
- package/src/Layout/Footer/FooterMenu/footer-menu.css +29 -0
- package/src/Layout/Footer/FooterMenu/footer-menu.twig +5 -0
- package/src/Layout/Footer/__snapshots__/Footer.stories.ts.snap +139 -0
- package/src/Layout/Footer/__snapshots__/Footer.stories.tsx.snap +70 -0
- package/src/Layout/Footer/footer.css +54 -0
- package/src/Layout/Footer/footer.twig +25 -0
- package/src/Layout/Grid/Grid.stories.ts +68 -0
- package/src/Layout/Grid/Grid.stories.tsx +125 -0
- package/src/Layout/Grid/Grid.tsx +51 -0
- package/src/Layout/Grid/__snapshots__/Grid.stories.ts.snap +103 -0
- package/src/Layout/Grid/__snapshots__/Grid.stories.tsx.snap +67 -0
- package/src/Layout/Grid/container-grid.css +190 -0
- package/src/Layout/Grid/grid-item.twig +16 -0
- package/src/Layout/Grid/grid.css +190 -0
- package/src/Layout/Grid/grid.twig +10 -0
- package/src/Layout/Grid/twig/container-grid-dynamic.twig +47 -0
- package/src/Layout/Grid/twig/container-grid.twig +46 -0
- package/src/Layout/Grid/twig/grid-story.twig +6 -0
- package/src/Layout/Grid/twig/old-grid.twig +46 -0
- package/src/Layout/Header/Components/GlobalToggle.tsx +35 -0
- package/src/Layout/Header/Components/Logo.tsx +17 -0
- package/src/Layout/Header/Elements/GlobalToggle.ts +137 -0
- package/src/Layout/Header/Header.stories.ts +18 -0
- package/src/Layout/Header/Header.stories.tsx +17 -0
- package/src/Layout/Header/Header.tsx +73 -0
- package/src/Layout/Header/Stacked/Stacked.stories.ts +16 -0
- package/src/Layout/Header/Stacked/__snapshots__/Stacked.stories.ts.snap +353 -0
- package/src/Layout/Header/Stacked/header-stacked.twig +33 -0
- package/src/Layout/Header/__snapshots__/Header.stories.ts.snap +157 -0
- package/src/Layout/Header/__snapshots__/Header.stories.tsx.snap +55 -0
- package/src/Layout/Header/_header.css +89 -0
- package/src/Layout/Header/_toggles.css +31 -0
- package/src/Layout/Header/header.css +2 -0
- package/src/Layout/Header/header.twig +24 -0
- package/src/Layout/Header/twig/global-header.twig +4 -0
- package/src/Layout/Header/twig/logo.twig +3 -0
- package/src/Layout/Masthead/Masthead.stories.ts +16 -0
- package/src/Layout/Masthead/__snapshots__/Masthead.stories.ts.snap +32 -0
- package/src/Layout/Masthead/masthead.css +36 -0
- package/src/Layout/Masthead/masthead.twig +10 -0
- package/src/Layout/Page/Page.stories.tsx +22 -0
- package/src/Layout/Page/Page.tsx +16 -0
- package/src/Layout/Page/README.md +19 -0
- package/src/Layout/Page/__snapshots__/Page.stories.tsx.snap +80 -0
- package/src/Layout/Page/page.css +150 -0
- package/src/Layout/Page/page.twig +3 -0
- package/src/Layout/README.md +19 -0
- package/src/Layout/Section/Background.stories.ts +25 -0
- package/src/Layout/Section/Breakouts.stories.ts +16 -0
- package/src/Layout/Section/Flow.stories.ts +16 -0
- package/src/Layout/Section/Section.stories.ts +63 -0
- package/src/Layout/Section/Section.stories.tsx +56 -0
- package/src/Layout/Section/Section.tsx +83 -0
- package/src/Layout/Section/SectionGrid.stories.tsx +53 -0
- package/src/Layout/Section/SectionGrid.tsx +71 -0
- package/src/Layout/Section/__snapshots__/Section.stories.ts.snap +19 -0
- package/src/Layout/Section/__snapshots__/Section.stories.tsx.snap +37 -0
- package/src/Layout/Section/__snapshots__/SectionBackground.stories.ts.snap +55 -0
- package/src/Layout/Section/__snapshots__/SectionGrid.stories.tsx.snap +37 -0
- package/src/Layout/Section/__snapshots__/SectionsBreakouts.stories.ts.snap +78 -0
- package/src/Layout/Section/__snapshots__/SectionsFlowsGroups.stories.ts.snap +89 -0
- package/src/Layout/Section/section.css +156 -0
- package/src/Layout/Section/section.twig +25 -0
- package/src/Layout/Section/twig/section-background.twig +12 -0
- package/src/Layout/Section/twig/section-story.twig +14 -0
- package/src/Layout/Section/twig/sections-breakout.twig +38 -0
- package/src/Layout/Section/twig/sections-flow.twig +51 -0
- package/src/Layout/Section/twig/sections-stacked.twig +28 -0
- package/src/Layout/Sidebar/Sidebar.stories.ts +35 -0
- package/src/Layout/Sidebar/Sidebar.stories.tsx +33 -0
- package/src/Layout/Sidebar/Sidebar.tsx +34 -0
- package/src/Layout/Sidebar/__snapshots__/Sidebar.stories.ts.snap +40 -0
- package/src/Layout/Sidebar/__snapshots__/Sidebar.stories.tsx.snap +47 -0
- package/src/Layout/Sidebar/sidebar.css +69 -0
- package/src/Layout/Sidebar/sidebar.twig +17 -0
- package/src/Layout/images/mixtape-logo.png +0 -0
- package/src/Utility/Context/ImageComponent.tsx +49 -0
- package/src/Utility/Context/LinkComponent.tsx +57 -0
- package/src/Utility/Drupal/README.md +9 -0
- package/src/Utility/Drupal/drupal.css +66 -0
- package/src/Utility/Drupal/twig/local-tasks.twig +17 -0
- package/src/Utility/Drupal/twig/login-form.twig +22 -0
- package/src/Utility/Elements/breakpoint-loader.ts +79 -0
- package/src/Utility/Elements/cookie-compliance.ts +174 -0
- package/src/Utility/Elements/disclosure-widget.ts +173 -0
- package/src/Utility/Elements/io-loader.ts +57 -0
- package/src/Utility/Elements/keyboard.ts +150 -0
- package/src/Utility/Hooks/useLocalStorage.ts +78 -0
- package/src/Utility/Hooks/useMediaQuery.ts +31 -0
- package/src/Utility/Hooks/useToggle.ts +17 -0
- package/src/Utility/Hooks/useUrlParams.ts +24 -0
- package/src/Utility/README.md +15 -0
- package/src/Utility/_layout-utils.css +78 -0
- package/src/Utility/global.d.ts +25 -0
- package/src/Utility/utilities.css +88 -0
- package/src/Utility/utilities.ts +163 -0
- package/src/_custom-media.css +33 -0
- package/src/constants.css +118 -0
- package/src/elements.ts +13 -0
- package/src/enums.ts +260 -0
- package/src/index.css +27 -0
- package/src/react.ts +68 -0
- package/src/tokens.js +119 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/html"
|
|
2
|
+
import Component from "./sticky.twig"
|
|
3
|
+
import "./sticky.css"
|
|
4
|
+
import "./Elements/Sticky"
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof Component> = {
|
|
7
|
+
tags: ["autodocs"],
|
|
8
|
+
component: Component,
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export default meta
|
|
12
|
+
type Story = StoryObj<typeof meta>
|
|
13
|
+
|
|
14
|
+
export const Sticky: Story = {
|
|
15
|
+
args: {},
|
|
16
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/react"
|
|
2
|
+
import Component from "./Sticky"
|
|
3
|
+
import "./sticky.css"
|
|
4
|
+
|
|
5
|
+
const meta: Meta<typeof Component> = {
|
|
6
|
+
component: Component,
|
|
7
|
+
args: {
|
|
8
|
+
children: <p>Element is sticky</p>,
|
|
9
|
+
offset: 150,
|
|
10
|
+
},
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export default meta
|
|
14
|
+
export const Sticky: StoryObj<typeof meta> = {}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { JSX, PropsWithChildren } from "react"
|
|
2
|
+
import classNames from "classnames"
|
|
3
|
+
import { AsTags } from "../../enums"
|
|
4
|
+
|
|
5
|
+
type StickyProps = PropsWithChildren & {
|
|
6
|
+
offset?: number
|
|
7
|
+
zIndex?: number
|
|
8
|
+
className?: string
|
|
9
|
+
breakpoint?: "l" | "m"
|
|
10
|
+
as: AsTags
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const Sticky = ({
|
|
14
|
+
children,
|
|
15
|
+
offset,
|
|
16
|
+
zIndex,
|
|
17
|
+
className,
|
|
18
|
+
as = AsTags.DIV,
|
|
19
|
+
breakpoint,
|
|
20
|
+
}: StickyProps): JSX.Element => {
|
|
21
|
+
const Tag: JSX.ElementType = `${as}` as unknown as JSX.ElementType
|
|
22
|
+
const stickyClass: string = breakpoint ? `sticky--${breakpoint}` : "sticky"
|
|
23
|
+
const style = {}
|
|
24
|
+
if (offset) style["--sticky-offset"] = `${offset}px`
|
|
25
|
+
if (zIndex) style["--z-index"] = zIndex
|
|
26
|
+
|
|
27
|
+
return (
|
|
28
|
+
<Tag className={classNames(stickyClass, className)} style={style}>
|
|
29
|
+
{children}
|
|
30
|
+
</Tag>
|
|
31
|
+
)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export default Sticky
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Components/Sticky Sticky smoke-test 1`] = `
|
|
4
|
+
<div class="sticky__trigger">
|
|
5
|
+
</div>
|
|
6
|
+
<mx-sticky style="--sticky-offset: 0"
|
|
7
|
+
offsetpropname="--sticky-offset"
|
|
8
|
+
class="sticky section section--l background--alt"
|
|
9
|
+
>
|
|
10
|
+
<div class="section__content">
|
|
11
|
+
Sticky header
|
|
12
|
+
</div>
|
|
13
|
+
</mx-sticky>
|
|
14
|
+
<section class="section section--l">
|
|
15
|
+
<div class="page">
|
|
16
|
+
<div class="grid--sidebar">
|
|
17
|
+
<aside>
|
|
18
|
+
<div class="sticky__trigger">
|
|
19
|
+
</div>
|
|
20
|
+
<mx-sticky class="sticky--l vertical-flow">
|
|
21
|
+
<h4>
|
|
22
|
+
Sticky sidebar
|
|
23
|
+
</h4>
|
|
24
|
+
<p>
|
|
25
|
+
In publishing and graphic design, lorem ipsum is a placeholder text commonly used to
|
|
26
|
+
<a href="#anchor-test">
|
|
27
|
+
demonstrate
|
|
28
|
+
</a>
|
|
29
|
+
the visual form of a document without relying on meaningful content. Replacing the actual content with placeholder text allows designers to design the form of the content before the content itself has been produced.
|
|
30
|
+
</p>
|
|
31
|
+
</mx-sticky>
|
|
32
|
+
</aside>
|
|
33
|
+
<section class="rich-text vertical-flow">
|
|
34
|
+
<h2>
|
|
35
|
+
Section 1
|
|
36
|
+
</h2>
|
|
37
|
+
<p>
|
|
38
|
+
In publishing and graphic design, lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document without relying on meaningful content. Replacing the actual content with placeholder text allows designers to design the form of the content before the content itself has been produced.
|
|
39
|
+
</p>
|
|
40
|
+
<h2 id="anchor-test">
|
|
41
|
+
Section 2
|
|
42
|
+
</h2>
|
|
43
|
+
<p>
|
|
44
|
+
In publishing and graphic design, lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document without relying on meaningful content. Replacing the actual content with placeholder text allows designers to design the form of the content before the content itself has been produced.
|
|
45
|
+
</p>
|
|
46
|
+
<h3>
|
|
47
|
+
Test level 3
|
|
48
|
+
</h3>
|
|
49
|
+
<p>
|
|
50
|
+
In publishing and graphic design, lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document without relying on meaningful content. Replacing the actual content with placeholder text allows designers to design the form of the content before the content itself has been produced.
|
|
51
|
+
</p>
|
|
52
|
+
<h2>
|
|
53
|
+
Section 3
|
|
54
|
+
</h2>
|
|
55
|
+
<p>
|
|
56
|
+
In publishing and graphic design, lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document without relying on meaningful content. Replacing the actual content with placeholder text allows designers to design the form of the content before the content itself has been produced.
|
|
57
|
+
</p>
|
|
58
|
+
<h2>
|
|
59
|
+
Section 4
|
|
60
|
+
</h2>
|
|
61
|
+
<p>
|
|
62
|
+
In publishing and graphic design, lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document without relying on meaningful content. Replacing the actual content with placeholder text allows designers to design the form of the content before the content itself has been produced.
|
|
63
|
+
</p>
|
|
64
|
+
<h2>
|
|
65
|
+
Section 5
|
|
66
|
+
</h2>
|
|
67
|
+
<p>
|
|
68
|
+
In publishing and graphic design, lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document without relying on meaningful content. Replacing the actual content with placeholder text allows designers to design the form of the content before the content itself has been produced.
|
|
69
|
+
</p>
|
|
70
|
+
<h3>
|
|
71
|
+
Test level 6
|
|
72
|
+
</h3>
|
|
73
|
+
<p>
|
|
74
|
+
In publishing and graphic design, lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document without relying on meaningful content. Replacing the actual content with placeholder text allows designers to design the form of the content before the content itself has been produced.
|
|
75
|
+
</p>
|
|
76
|
+
<h2>
|
|
77
|
+
Section 7
|
|
78
|
+
</h2>
|
|
79
|
+
<p>
|
|
80
|
+
In publishing and graphic design, lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document without relying on meaningful content. Replacing the actual content with placeholder text allows designers to design the form of the content before the content itself has been produced.
|
|
81
|
+
</p>
|
|
82
|
+
</section>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</section>
|
|
86
|
+
`;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sticky
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
@define-mixin sticky {
|
|
6
|
+
position: sticky;
|
|
7
|
+
inset-block-start: var(--sticky-offset, 0);
|
|
8
|
+
z-index: var(--z-index, 1);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@layer defaults {
|
|
12
|
+
mx-sticky {
|
|
13
|
+
display: block;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@layer components {
|
|
18
|
+
.sticky {
|
|
19
|
+
@mixin sticky;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.sticky--m {
|
|
23
|
+
@media (--medium-up) {
|
|
24
|
+
@mixin sticky;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.sticky--l {
|
|
29
|
+
@media (--large-up) {
|
|
30
|
+
@mixin sticky;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.sticky__trigger {
|
|
35
|
+
position: absolute;
|
|
36
|
+
inline-size: 1px;
|
|
37
|
+
block-size: 1px;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<mx-sticky style="--sticky-offset: 0" offsetPropName="--sticky-offset" class="sticky section section--l background--alt">
|
|
2
|
+
<div class="section__content">Sticky header</div>
|
|
3
|
+
</mx-sticky>
|
|
4
|
+
|
|
5
|
+
{% embed '@mixtape/Layout/Section/section.twig' with {
|
|
6
|
+
modifier_class: 'section--l'
|
|
7
|
+
} %}
|
|
8
|
+
{% block content %}
|
|
9
|
+
{% embed '@mixtape/Layout/Sidebar/sidebar.twig' with {
|
|
10
|
+
content_class: 'rich-text vertical-flow',
|
|
11
|
+
reverse_markup: TRUE
|
|
12
|
+
}%}
|
|
13
|
+
{% block content %}
|
|
14
|
+
{% include '@mixtape/Component/InPageNavigation/twig/in-page-navigation-content-example.twig' %}
|
|
15
|
+
{% endblock %}
|
|
16
|
+
{% block sidebar %}
|
|
17
|
+
{% include '@mixtape/Component/Sticky/twig/sticky-example.twig' %}
|
|
18
|
+
{% endblock %}
|
|
19
|
+
{% endembed %}
|
|
20
|
+
{% endblock %}
|
|
21
|
+
{% endembed %}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<mx-sticky class="sticky--l vertical-flow">
|
|
2
|
+
<h4>{{ title|default('Sticky sidebar') }}</h4>
|
|
3
|
+
<p>In publishing and graphic design, lorem ipsum is a placeholder text commonly used to <a href="#anchor-test">demonstrate</a> the visual form of a document without relying on meaningful content. Replacing the actual content with placeholder text allows designers to design the form of the content before the content itself has been produced.</p>
|
|
4
|
+
</mx-sticky>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { JSX, PropsWithChildren } from "react"
|
|
2
|
+
import classNames from "classnames"
|
|
3
|
+
import { useTabContext } from "../Tabs"
|
|
4
|
+
|
|
5
|
+
type TabProps = PropsWithChildren & {
|
|
6
|
+
id: string
|
|
7
|
+
className?: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const Tab = ({ id, className, children }: TabProps): JSX.Element => {
|
|
11
|
+
const { activeTab, setActiveTab } = useTabContext()
|
|
12
|
+
const isActive: boolean = activeTab === id
|
|
13
|
+
|
|
14
|
+
const handleClick = () => {
|
|
15
|
+
setActiveTab(id)
|
|
16
|
+
if (typeof window === "undefined") return
|
|
17
|
+
const urlParams: URLSearchParams = new URLSearchParams(
|
|
18
|
+
window.location.search,
|
|
19
|
+
)
|
|
20
|
+
if (urlParams.get("tab") === id) return
|
|
21
|
+
urlParams.set("tab", id)
|
|
22
|
+
window.history.replaceState(
|
|
23
|
+
{},
|
|
24
|
+
"",
|
|
25
|
+
`${window.location.pathname}?${urlParams.toString()}`,
|
|
26
|
+
)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<button
|
|
31
|
+
id={`${id}-button`}
|
|
32
|
+
aria-controls={id}
|
|
33
|
+
role="tab"
|
|
34
|
+
onClick={handleClick}
|
|
35
|
+
className={classNames("button", className)}
|
|
36
|
+
aria-selected={isActive}
|
|
37
|
+
tabIndex={isActive ? 0 : -1}
|
|
38
|
+
type="button"
|
|
39
|
+
>
|
|
40
|
+
{children}
|
|
41
|
+
</button>
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export default Tab
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { JSX, PropsWithChildren } from "react"
|
|
2
|
+
import DropMenu from "../../DropMenu/DropMenu"
|
|
3
|
+
import { useTabContext } from "../Tabs"
|
|
4
|
+
|
|
5
|
+
const TabDropMenu = ({ children }: PropsWithChildren): JSX.Element => {
|
|
6
|
+
const { activeTabLabel } = useTabContext()
|
|
7
|
+
return (
|
|
8
|
+
<DropMenu label={activeTabLabel} className="mobile-only">
|
|
9
|
+
{children}
|
|
10
|
+
</DropMenu>
|
|
11
|
+
)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default TabDropMenu
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { JSX, PropsWithChildren } from "react"
|
|
2
|
+
import classNames from "classnames"
|
|
3
|
+
import { useTabContext } from "../Tabs"
|
|
4
|
+
|
|
5
|
+
type TabPanelProps = PropsWithChildren & {
|
|
6
|
+
id: string
|
|
7
|
+
className?: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const TabPanel = ({
|
|
11
|
+
children,
|
|
12
|
+
id,
|
|
13
|
+
className = "section--l",
|
|
14
|
+
}: TabPanelProps): JSX.Element => {
|
|
15
|
+
const { activeTab } = useTabContext()
|
|
16
|
+
const isActive: boolean = activeTab === id
|
|
17
|
+
return (
|
|
18
|
+
<div
|
|
19
|
+
id={id}
|
|
20
|
+
className={classNames("tab__panel", "vertical-flow", className)}
|
|
21
|
+
// @ts-expect-error inert is allowed.
|
|
22
|
+
inert={!isActive ? "" : null}
|
|
23
|
+
aria-labelledby={`${id}-button`}
|
|
24
|
+
role="tabpanel"
|
|
25
|
+
tabIndex={0}
|
|
26
|
+
>
|
|
27
|
+
{children}
|
|
28
|
+
</div>
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export default TabPanel
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tab toggle handler
|
|
3
|
+
*/
|
|
4
|
+
import "../../DropMenu/Elements/DropMenu"
|
|
5
|
+
import type { DropMenuEvent } from "../../DropMenu/Elements/DropMenu"
|
|
6
|
+
|
|
7
|
+
type TabsType = {
|
|
8
|
+
panel: HTMLElement
|
|
9
|
+
tab: HTMLButtonElement
|
|
10
|
+
button: HTMLButtonElement
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export default class Tabs extends HTMLElement {
|
|
14
|
+
internals_: ElementInternals
|
|
15
|
+
controller: AbortController
|
|
16
|
+
tabs?: Map<string, TabsType>
|
|
17
|
+
locationHash?: string
|
|
18
|
+
tabFocus?: number = 0
|
|
19
|
+
|
|
20
|
+
constructor() {
|
|
21
|
+
super()
|
|
22
|
+
this.internals_ = this.attachInternals()
|
|
23
|
+
this.controller = new AbortController()
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
connectedCallback(): void {
|
|
27
|
+
if (!this.triggers || !this.panels) return
|
|
28
|
+
this.locationHash = window.location.hash
|
|
29
|
+
|
|
30
|
+
this.tabs = new Map()
|
|
31
|
+
this.triggers.forEach((tab: HTMLButtonElement): void => {
|
|
32
|
+
const id: string = tab.getAttribute("aria-controls")
|
|
33
|
+
const panel: HTMLElement = this.querySelector(`#${id}`)
|
|
34
|
+
const button: HTMLButtonElement = this.dropMenu.querySelector(
|
|
35
|
+
`[aria-controls=${id}]`,
|
|
36
|
+
)
|
|
37
|
+
if (id && panel && button) {
|
|
38
|
+
const labelId = `tab-label-${id}`
|
|
39
|
+
tab.setAttribute("id", labelId)
|
|
40
|
+
tab.setAttribute("role", "tab")
|
|
41
|
+
tab.setAttribute("aria-selected", "false")
|
|
42
|
+
tab.setAttribute("tab-index", "-1")
|
|
43
|
+
panel.setAttribute("aria-labelledby", labelId)
|
|
44
|
+
panel.setAttribute("role", "tabpanel")
|
|
45
|
+
panel.setAttribute("tab-index", "0")
|
|
46
|
+
this.tabs.set(id, { panel, tab, button })
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
const { signal }: AbortController = this.controller
|
|
51
|
+
this.menu.addEventListener("click", this.handleClick, { signal })
|
|
52
|
+
this.menu.addEventListener("keydown", this.handleKeydown, { signal })
|
|
53
|
+
|
|
54
|
+
this.dropMenu.addEventListener(
|
|
55
|
+
"drop-menu-select",
|
|
56
|
+
this.handleDropMenuSelect,
|
|
57
|
+
{ signal },
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
const hashEl: HTMLElement | null = this.locationHash
|
|
61
|
+
? this.querySelector(this.locationHash)
|
|
62
|
+
: null
|
|
63
|
+
if (hashEl) {
|
|
64
|
+
this.active = hashEl.id
|
|
65
|
+
} else if (!this.active) {
|
|
66
|
+
this.active = this.panels[0].id
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
disconnectedCallback(): void {
|
|
71
|
+
this.controller.abort()
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
handleKeydown = ({ key }: KeyboardEvent): void => {
|
|
75
|
+
if (key === "ArrowRight" || key === "ArrowLeft") {
|
|
76
|
+
this.triggers[this.tabFocus].setAttribute("tabindex", "-1")
|
|
77
|
+
if (key === "ArrowRight") {
|
|
78
|
+
this.tabFocus += 1
|
|
79
|
+
// If we're at the end, go to the start
|
|
80
|
+
if (this.tabFocus >= this.triggers.length) {
|
|
81
|
+
this.tabFocus = 0
|
|
82
|
+
}
|
|
83
|
+
// Move left
|
|
84
|
+
} else if (key === "ArrowLeft") {
|
|
85
|
+
this.tabFocus -= 1
|
|
86
|
+
// If we're at the start, move to the end
|
|
87
|
+
if (this.tabFocus < 0) {
|
|
88
|
+
this.tabFocus = this.triggers.length - 1
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
this.triggers[this.tabFocus].setAttribute("tabindex", "0")
|
|
92
|
+
this.triggers[this.tabFocus].focus()
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
handleClick = (event: MouseEvent): void => {
|
|
97
|
+
const target = event.target as HTMLButtonElement
|
|
98
|
+
if (!(target instanceof HTMLButtonElement)) return
|
|
99
|
+
event.preventDefault()
|
|
100
|
+
const id: string = target.getAttribute("aria-controls")
|
|
101
|
+
this.handleTabChange(id)
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
handleDropMenuSelect = (event: DropMenuEvent): void => {
|
|
105
|
+
const target = event.detail.target as HTMLButtonElement
|
|
106
|
+
if (!(target instanceof HTMLButtonElement)) return
|
|
107
|
+
const id = target.getAttribute("aria-controls")
|
|
108
|
+
this.handleTabChange(id)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
handleTabChange = (id: string): void => {
|
|
112
|
+
this.active = id
|
|
113
|
+
this.handleUrlParams(id)
|
|
114
|
+
const { panel, tab, button } = this.tabs.get(id)
|
|
115
|
+
panel.focus({ preventScroll: true })
|
|
116
|
+
const newEvent: CustomEvent<{
|
|
117
|
+
id: string
|
|
118
|
+
tab: HTMLButtonElement
|
|
119
|
+
button: HTMLButtonElement
|
|
120
|
+
panel: HTMLElement
|
|
121
|
+
}> = new CustomEvent("tab-toggle", {
|
|
122
|
+
bubbles: true,
|
|
123
|
+
cancelable: true,
|
|
124
|
+
detail: { id, tab, button, panel },
|
|
125
|
+
})
|
|
126
|
+
this.dispatchEvent(newEvent)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
get dropMenu(): HTMLDivElement | null {
|
|
130
|
+
const dropMenu: HTMLDivElement | null = this.querySelector(".drop-menu")
|
|
131
|
+
if (!dropMenu) {
|
|
132
|
+
throw new Error(`${this.localName} must contain a .drop-menu`)
|
|
133
|
+
}
|
|
134
|
+
return dropMenu
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
get dropMenuTrigger(): HTMLButtonElement | null {
|
|
138
|
+
const trigger: HTMLButtonElement | null = this.querySelector(
|
|
139
|
+
".drop-menu__trigger",
|
|
140
|
+
)
|
|
141
|
+
if (!trigger) {
|
|
142
|
+
throw new Error(`${this.localName} must contain a .drop-menu__trigger`)
|
|
143
|
+
}
|
|
144
|
+
return trigger
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
get menu(): HTMLDivElement | null {
|
|
148
|
+
const menu: HTMLDivElement | null = this.querySelector(".tab__list")
|
|
149
|
+
if (!menu) {
|
|
150
|
+
throw new Error(`${this.localName} must contain a .tab__list`)
|
|
151
|
+
}
|
|
152
|
+
menu.setAttribute("role", "tablist")
|
|
153
|
+
return menu
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
get triggers(): NodeListOf<HTMLButtonElement> | null {
|
|
157
|
+
const triggers: NodeListOf<HTMLButtonElement> | null =
|
|
158
|
+
this.querySelectorAll(".tab__list button")
|
|
159
|
+
if (!triggers.length) {
|
|
160
|
+
throw new Error(`${this.localName} must contain .tab__list buttons`)
|
|
161
|
+
}
|
|
162
|
+
return triggers
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
get panels(): NodeListOf<HTMLElement> | null {
|
|
166
|
+
const panels: NodeListOf<HTMLElement> | null =
|
|
167
|
+
this.querySelectorAll(".tab__panel")
|
|
168
|
+
if (!panels.length) {
|
|
169
|
+
throw new Error(`${this.localName} must contain .tab__panel's`)
|
|
170
|
+
}
|
|
171
|
+
return panels
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
get active(): HTMLButtonElement {
|
|
175
|
+
return this.querySelector('[aria-selected="true"]')
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
set active(id: string) {
|
|
179
|
+
this.tabs.forEach(({ tab, panel }: TabsType, key: string): void => {
|
|
180
|
+
if (key === id) {
|
|
181
|
+
tab.setAttribute("aria-selected", "true")
|
|
182
|
+
tab.setAttribute("tab-index", "0")
|
|
183
|
+
panel.removeAttribute("inert")
|
|
184
|
+
this.dropMenuTrigger.textContent = tab.textContent
|
|
185
|
+
} else {
|
|
186
|
+
tab.setAttribute("aria-selected", "false")
|
|
187
|
+
tab.setAttribute("tab-index", "-1")
|
|
188
|
+
panel.setAttribute("inert", "")
|
|
189
|
+
}
|
|
190
|
+
})
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
handleUrlParams = (id: string): void => {
|
|
194
|
+
const urlParams: URLSearchParams = new URLSearchParams(
|
|
195
|
+
window.location.search,
|
|
196
|
+
)
|
|
197
|
+
if (urlParams.get("tab") === id) return
|
|
198
|
+
urlParams.set("tab", id)
|
|
199
|
+
window.history.replaceState(
|
|
200
|
+
{},
|
|
201
|
+
"",
|
|
202
|
+
`${window.location.pathname}?${urlParams.toString()}`,
|
|
203
|
+
)
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
customElements.define("mx-tabs", Tabs)
|
|
208
|
+
|
|
209
|
+
declare global {
|
|
210
|
+
interface HTMLElementTagNameMap {
|
|
211
|
+
"mx-tabs": Tabs
|
|
212
|
+
}
|
|
213
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Tabs
|
|
2
|
+
|
|
3
|
+
### How to use
|
|
4
|
+
|
|
5
|
+
**CSS**
|
|
6
|
+
|
|
7
|
+
`@import '@pnx-mixtape/mxds/tabs.css';`
|
|
8
|
+
|
|
9
|
+
**Twig**
|
|
10
|
+
|
|
11
|
+
You can setup a twig namespace in your project if you wish to use the twig files directly.
|
|
12
|
+
|
|
13
|
+
- Eg: `{% extends '@mixtape/Components/Tabs/tabs.twig' %}`
|
|
14
|
+
|
|
15
|
+
Alternatively copy/paste the file for more control.
|
|
16
|
+
|
|
17
|
+
**JSX Components**
|
|
18
|
+
|
|
19
|
+
`import { Tabs, TabList, Tab, TabPanel } from '@pnx-mixtape/mxds/react';`
|
|
20
|
+
|
|
21
|
+
**JS Custom Element**
|
|
22
|
+
|
|
23
|
+
`import Tabs from '@pnx-mixtape/mxds';`
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/html"
|
|
2
|
+
import Component from "./tabs.twig"
|
|
3
|
+
import "./tabs.css"
|
|
4
|
+
import "../Card/card.css"
|
|
5
|
+
import "../DropMenu/drop-menu.css"
|
|
6
|
+
import "./Elements/Tabs"
|
|
7
|
+
import { TabStyles } from "../../enums"
|
|
8
|
+
|
|
9
|
+
const meta: Meta<typeof Component> = {
|
|
10
|
+
tags: ["autodocs"],
|
|
11
|
+
component: Component,
|
|
12
|
+
argTypes: {
|
|
13
|
+
modifier: { options: Object.values(TabStyles), control: "select" },
|
|
14
|
+
},
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default meta
|
|
18
|
+
type Story = StoryObj<typeof meta>
|
|
19
|
+
|
|
20
|
+
export const Tabs: Story = {
|
|
21
|
+
args: {},
|
|
22
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/react"
|
|
2
|
+
import { Fragment } from "react"
|
|
3
|
+
import Component from "./Tabs"
|
|
4
|
+
import TabDropMenu from "./Components/TabDropMenu"
|
|
5
|
+
import DropMenuItem from "../DropMenu/Components/DropMenuItem"
|
|
6
|
+
import TabList from "./Components/TabList"
|
|
7
|
+
import Tab from "./Components/Tab"
|
|
8
|
+
import TabPanel from "./Components/TabPanel"
|
|
9
|
+
import "./tabs.css"
|
|
10
|
+
import "../DropMenu/drop-menu.css"
|
|
11
|
+
import { TabStyles } from "../../enums"
|
|
12
|
+
|
|
13
|
+
const defaultChildren = (
|
|
14
|
+
<Fragment>
|
|
15
|
+
<TabDropMenu>
|
|
16
|
+
<DropMenuItem id="tab-1" label="Tab 1" aria-controls="tab-1" />
|
|
17
|
+
<DropMenuItem id="tab-2" label="Tab 2" aria-controls="tab-2" />
|
|
18
|
+
<DropMenuItem id="tab-3" label="Tab 3" aria-controls="tab-3" />
|
|
19
|
+
</TabDropMenu>
|
|
20
|
+
<TabList>
|
|
21
|
+
<Tab id="tab-1">Tab 1</Tab>
|
|
22
|
+
<Tab id="tab-2">Tab 2</Tab>
|
|
23
|
+
<Tab id="tab-3">Tab 3</Tab>
|
|
24
|
+
</TabList>
|
|
25
|
+
<TabPanel id="tab-1">
|
|
26
|
+
<p>This is tab 1</p>
|
|
27
|
+
</TabPanel>
|
|
28
|
+
<TabPanel id="tab-2">
|
|
29
|
+
<p>This is tab 2</p>
|
|
30
|
+
</TabPanel>
|
|
31
|
+
<TabPanel id="tab-3">
|
|
32
|
+
<p>This is tab 3</p>
|
|
33
|
+
</TabPanel>
|
|
34
|
+
</Fragment>
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
const meta: Meta<typeof Component> = {
|
|
38
|
+
tags: ["autodocs"],
|
|
39
|
+
component: Component,
|
|
40
|
+
args: {
|
|
41
|
+
children: defaultChildren,
|
|
42
|
+
active: "tab-1",
|
|
43
|
+
id: "tabs-storybook",
|
|
44
|
+
},
|
|
45
|
+
argTypes: {
|
|
46
|
+
modifier: { options: Object.values(TabStyles), control: "select" },
|
|
47
|
+
},
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export default meta
|
|
51
|
+
export const Default: StoryObj<typeof meta> = {}
|