@pnx-mixtape/mxds 0.0.21 → 0.0.23
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/dist/build/accordion.entry.js +32 -43
- package/dist/build/accordion.entry.js.map +1 -1
- package/dist/build/base.css +19 -39
- package/dist/build/button.css +7 -8
- package/dist/build/chunks/{Accordion-O-huO4At.js → Accordion-D1HQ0FDq.js} +23 -21
- package/dist/build/chunks/{Accordion-O-huO4At.js.map → Accordion-D1HQ0FDq.js.map} +1 -1
- package/dist/build/chunks/disclosure-widget-CdjCdx7t.js +129 -0
- package/dist/build/chunks/disclosure-widget-CdjCdx7t.js.map +1 -0
- package/dist/build/chunks/drop-menu.entry-fzV-_VFl.js +70 -0
- package/dist/build/chunks/drop-menu.entry-fzV-_VFl.js.map +1 -0
- package/dist/build/chunks/{polyfills-C-B7iqDG.js → polyfills-DnrsypYs.js} +35 -26
- package/dist/build/chunks/polyfills-DnrsypYs.js.map +1 -0
- package/dist/build/chunks/popover.entry-BQvyR0d5.js +38 -0
- package/dist/build/chunks/popover.entry-BQvyR0d5.js.map +1 -0
- package/dist/build/chunks/{utilities-DXELy_An.js → utilities-Ci7wwNeg.js} +9 -106
- package/dist/build/chunks/utilities-Ci7wwNeg.js.map +1 -0
- package/dist/build/constants.css +10 -31
- package/dist/build/dialog.entry.js +23 -31
- package/dist/build/dialog.entry.js.map +1 -1
- package/dist/build/drop-menu.entry.js +1 -1
- package/dist/build/drupal.css +5 -9
- package/dist/build/filters.entry.js +54 -50
- package/dist/build/filters.entry.js.map +1 -1
- package/dist/build/form.css +12 -26
- package/dist/build/global-alert.entry.js +26 -19
- package/dist/build/global-alert.entry.js.map +1 -1
- package/dist/build/grid.css +3 -9
- package/dist/build/header.css +5 -3
- package/dist/build/header.entry.js +93 -88
- package/dist/build/header.entry.js.map +1 -1
- package/dist/build/icon.css +3 -3
- package/dist/build/in-page-navigation.entry.js +16 -12
- package/dist/build/in-page-navigation.entry.js.map +1 -1
- package/dist/build/navigation.css +21 -56
- package/dist/build/navigation.entry.js +148 -50
- package/dist/build/navigation.entry.js.map +1 -1
- package/dist/build/page.css +1 -1
- package/dist/build/popover.css +119 -0
- package/dist/build/popover.entry.js +2 -0
- package/dist/build/popover.entry.js.map +1 -0
- package/dist/build/section.css +1 -1
- package/dist/build/sticky.entry.js +11 -12
- package/dist/build/sticky.entry.js.map +1 -1
- package/dist/build/tabs.entry.js +108 -91
- package/dist/build/tabs.entry.js.map +1 -1
- package/dist/build/utility-list.css +43 -0
- package/dist/build/utility-list.entry.js +80 -0
- package/dist/build/utility-list.entry.js.map +1 -0
- package/package.json +9 -10
- package/src/Atom/{Base.mdx → Atom.mdx} +1 -1
- package/src/Atom/Background/Backgrounds.stories.ts +21 -4
- package/src/Atom/Background/__snapshots__/Backgrounds.stories.ts.snap +1 -1
- package/src/Atom/Background/_background.css +1 -2
- package/src/Atom/Blockquote/_blockquote.css +1 -2
- package/src/Atom/Button/Button.stories.ts +128 -19
- package/src/Atom/Button/__snapshots__/Button.stories.ts.snap +75 -11
- package/src/Atom/Button/__snapshots__/Button.stories.tsx.snap +1 -1
- package/src/Atom/Button/_buttons.css +5 -5
- package/src/Atom/DefinitionList/DefinitionList.stories.ts +20 -3
- package/src/Atom/DefinitionList/DefinitionList.stories.tsx +3 -9
- package/src/Atom/DefinitionList/DefinitionList.tsx +3 -4
- package/src/Atom/DefinitionList/__snapshots__/DefinitionList.stories.ts.snap +1 -1
- package/src/Atom/DefinitionList/__snapshots__/DefinitionList.stories.tsx.snap +1 -1
- package/src/Atom/Heading/Heading.stories.ts +49 -7
- package/src/Atom/Heading/Heading.tsx +1 -6
- package/src/Atom/Heading/__snapshots__/Heading.stories.ts.snap +9 -1
- package/src/Atom/Heading/__snapshots__/Heading.stories.tsx.snap +1 -1
- package/src/Atom/Heading/_headings.css +1 -2
- package/src/Atom/Icon/Icon.mdx +5 -1
- package/src/Atom/Icon/Icon.stories.ts +76 -6
- package/src/Atom/Icon/Icon.tsx +1 -8
- package/src/Atom/Icon/__snapshots__/Icon.stories.ts.snap +18 -4
- package/src/Atom/Icon/__snapshots__/Icon.stories.tsx.snap +1 -1
- package/src/Atom/Icon/_icon.css +1 -1
- package/src/Atom/Image/Image.stories.ts +4 -3
- package/src/Atom/Image/__snapshots__/Image.stories.ts.snap +1 -1
- package/src/Atom/Link/Link.stories.ts +74 -7
- package/src/Atom/Link/__snapshots__/Link.stories.ts.snap +4 -4
- package/src/Atom/Link/__snapshots__/Link.stories.tsx.snap +1 -1
- package/src/Atom/Media/Media.stories.ts +34 -5
- package/src/Atom/Media/Media.tsx +1 -6
- package/src/Atom/Media/__snapshots__/Media.stories.ts.snap +2 -2
- package/src/Atom/Media/__snapshots__/Media.stories.tsx.snap +1 -1
- package/src/Atom/Media/_media.css +2 -10
- package/src/Atom/Spacing/Spacing.stories.ts +45 -31
- package/src/Atom/Spacing/__snapshots__/Spacing.stories.ts.snap +5 -4
- package/src/Atom/Spacing/spacing.twig +5 -2
- package/src/Atom/Table/__snapshots__/Table.stories.ts.snap +1 -1
- package/src/Atom/Table/__snapshots__/TableResponsive.stories.ts.snap +1 -1
- package/src/Atom/Table/_table.css +1 -2
- package/src/Atom/Text/Text.stories.ts +62 -0
- package/src/Atom/Text/__snapshots__/{TextSizes.stories.ts.snap → Text.stories.ts.snap} +14 -27
- package/src/Atom/Text/__snapshots__/Text.stories.tsx.snap +1 -1
- package/src/Atom/Text/_text-sizes.css +2 -4
- package/src/Atom/Text/text-style.twig +11 -1
- package/src/Atom/Text/text-styles-example.twig +2 -16
- package/src/Atom/Video/Video.stories.ts +6 -4
- package/src/Atom/Video/Video.tsx +1 -5
- package/src/Atom/Video/__snapshots__/Video.stories.ts.snap +1 -1
- package/src/Atom/_generic.css +4 -4
- package/src/Atom/_hr.css +1 -2
- package/src/Component/Accordion/Accordion.stories.ts +26 -8
- package/src/Component/Accordion/Accordion.stories.tsx +8 -10
- package/src/Component/Accordion/Accordion.tsx +2 -13
- package/src/Component/Accordion/AccordionItem.stories.ts +90 -0
- package/src/Component/Accordion/Components/AccordionContent.tsx +1 -5
- package/src/Component/Accordion/Components/AccordionTitle.tsx +1 -4
- package/src/Component/Accordion/Elements/Accordion.ts +1 -1
- package/src/Component/Accordion/Elements/AccordionDiv.ts +4 -11
- package/src/Component/Accordion/Elements/AccordionGroup.ts +10 -24
- package/src/Component/Accordion/Elements/AccordionMobile.ts +4 -4
- package/src/Component/Accordion/__snapshots__/Accordion.stories.ts.snap +17 -6
- package/src/Component/Accordion/__snapshots__/Accordion.stories.tsx.snap +1 -1
- package/src/Component/Accordion/__snapshots__/AccordionItem.stories.ts.snap +90 -0
- package/src/Component/Accordion/accordion.css +7 -5
- package/src/Component/Accordion/twig/accordion-div.twig +13 -11
- package/src/Component/Accordion/twig/accordion-mobile.twig +13 -11
- package/src/Component/Breadcrumb/Breadcrumb.stories.ts +14 -0
- package/src/Component/Breadcrumb/Breadcrumb.tsx +2 -12
- package/src/Component/Breadcrumb/__snapshots__/Breadcrumb.stories.ts.snap +1 -1
- package/src/Component/Breadcrumb/__snapshots__/Breadcrumb.stories.tsx.snap +1 -1
- package/src/Component/Breadcrumb/breadcrumb.css +1 -4
- package/src/Component/Callout/Callout.stories.ts +20 -0
- package/src/Component/Callout/__snapshots__/Callout.stories.ts.snap +1 -1
- package/src/Component/Callout/callout.css +1 -2
- package/src/Component/Card/Card.stories.ts +129 -14
- package/src/Component/Card/Card.stories.tsx +2 -2
- package/src/Component/Card/Components/CardContent.tsx +1 -5
- package/src/Component/Card/__snapshots__/Card.stories.ts.snap +24 -24
- package/src/Component/Card/__snapshots__/Card.stories.tsx.snap +1 -1
- package/src/Component/Card/card.css +2 -6
- package/src/Component/Card/card.twig +1 -1
- package/src/Component/Carousel/Carousel.stories.ts +61 -8
- package/src/Component/Carousel/Elements/Carousel.ts +10 -19
- package/src/Component/Carousel/__snapshots__/Carousel.stories.ts.snap +321 -35
- package/src/Component/Carousel/carousel.css +1 -2
- package/src/Component/ContentBlock/Components/ContentBlockContent.tsx +1 -5
- package/src/Component/ContentBlock/Components/ContentBlockMedia.tsx +1 -4
- package/src/Component/ContentBlock/ContentBlock.stories.ts +63 -13
- package/src/Component/ContentBlock/ContentBlock.stories.tsx +2 -2
- package/src/Component/ContentBlock/ContentBlock.tsx +1 -5
- package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.ts.snap +11 -11
- package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.tsx.snap +1 -1
- package/src/Component/Dialog/Dialog.stories.ts +78 -21
- package/src/Component/Dialog/Dialog.stories.tsx +2 -3
- package/src/Component/Dialog/Elements/Dialog.ts +7 -16
- package/src/Component/Dialog/__snapshots__/Dialog.stories.ts.snap +8 -11
- package/src/Component/Dialog/__snapshots__/Dialog.stories.tsx.snap +1 -1
- package/src/Component/Dialog/dialog.css +1 -2
- package/src/Component/Dialog/dialog.twig +1 -1
- package/src/Component/DropMenu/Components/DropMenuContext.tsx +4 -12
- package/src/Component/DropMenu/DropMenu.stories.ts +60 -1
- package/src/Component/DropMenu/DropMenu.tsx +2 -7
- package/src/Component/DropMenu/Elements/DropMenu.ts +21 -91
- package/src/Component/DropMenu/__snapshots__/DropMenu.stories.ts.snap +53 -11
- package/src/Component/DropMenu/__snapshots__/DropMenu.stories.tsx.snap +1 -1
- package/src/Component/DropMenu/drop-menu.css +13 -41
- package/src/Component/DropMenu/drop-menu.twig +8 -6
- package/src/Component/Filters/Elements/Filters.ts +7 -11
- package/src/Component/Filters/FilterItem.stories.ts +180 -0
- package/src/Component/Filters/Filters.stories.ts +83 -8
- package/src/Component/Filters/__snapshots__/FilterItem.stories.ts.snap +135 -0
- package/src/Component/Filters/__snapshots__/Filters.stories.ts.snap +43 -41
- package/src/Component/Filters/filter-item.twig +1 -1
- package/src/Component/Filters/filters.css +33 -17
- package/src/Component/GlobalAlert/Elements/ClosableAlert.ts +8 -7
- package/src/Component/GlobalAlert/GlobalAlert.stories.ts +60 -12
- package/src/Component/GlobalAlert/GlobalAlert.stories.tsx +1 -2
- package/src/Component/GlobalAlert/__snapshots__/GlobalAlert.stories.ts.snap +8 -6
- package/src/Component/GlobalAlert/__snapshots__/GlobalAlert.stories.tsx.snap +3 -3
- package/src/Component/HeroBanner/HeroBanner.stories.ts +84 -7
- package/src/Component/HeroBanner/HeroBanner.stories.tsx +4 -4
- package/src/Component/HeroBanner/__snapshots__/HeroBanner.stories.ts.snap +91 -99
- package/src/Component/HeroBanner/__snapshots__/HeroBanner.stories.tsx.snap +1 -1
- package/src/Component/HeroSearch/HeroSearch.stories.ts +23 -4
- package/src/Component/HeroSearch/HeroSearch.stories.tsx +4 -4
- package/src/Component/HeroSearch/__snapshots__/HeroSearch.stories.ts.snap +10 -10
- package/src/Component/HeroSearch/__snapshots__/HeroSearch.stories.tsx.snap +1 -1
- package/src/Component/InPageAlert/InPageAlert.stories.ts +76 -8
- package/src/Component/InPageAlert/InPageAlert.stories.tsx +1 -2
- package/src/Component/InPageAlert/InPageAlert.tsx +1 -4
- package/src/Component/InPageAlert/__snapshots__/InPageAlert.stories.ts.snap +80 -2
- package/src/Component/InPageAlert/__snapshots__/InPageAlert.stories.tsx.snap +1 -1
- package/src/Component/InPageNavigation/Elements/InPageNavigation.ts +7 -9
- package/src/Component/InPageNavigation/Hooks/useInPageNavigation.ts +3 -5
- package/src/Component/InPageNavigation/InPageNavigation.stories.ts +44 -9
- package/src/Component/InPageNavigation/InPageNavigation.stories.tsx +32 -40
- package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.ts.snap +152 -5
- package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.tsx.snap +1 -1
- package/src/Component/LinkList/LinkList.stories.ts +23 -0
- package/src/Component/LinkList/__snapshots__/LinkList.stories.ts.snap +8 -8
- package/src/Component/LinkList/__snapshots__/LinkList.stories.tsx.snap +1 -1
- package/src/Component/LinkList/link-list.css +1 -2
- package/src/Component/ListItem/Components/ListItemContent.tsx +1 -5
- package/src/Component/ListItem/Components/ListItemMedia.tsx +1 -4
- package/src/Component/ListItem/ListItem.stories.ts +91 -11
- package/src/Component/ListItem/ListItem.stories.tsx +6 -7
- package/src/Component/ListItem/__snapshots__/ListItem.stories.ts.snap +1 -1
- package/src/Component/ListItem/__snapshots__/ListItem.stories.tsx.snap +1 -1
- package/src/Component/ListItem/list-item.css +1 -2
- package/src/Component/Navigation/Components/DropdownLevel.tsx +5 -13
- package/src/Component/Navigation/Elements/Navigation.ts +6 -13
- package/src/Component/Navigation/Navigation.stories.ts +48 -0
- package/src/Component/Navigation/__snapshots__/Dropdown.stories.tsx.snap +1 -1
- package/src/Component/Navigation/__snapshots__/Navigation.stories.ts.snap +1 -1
- package/src/Component/Navigation/__snapshots__/Navigation.stories.tsx.snap +1 -1
- package/src/Component/Navigation/_navigation-collapsible.css +2 -4
- package/src/Component/Navigation/_navigation-dropdown.css +10 -32
- package/src/Component/Navigation/_navigation-mega.css +1 -4
- package/src/Component/Navigation/_navigation.css +1 -4
- package/src/Component/Pagination/Components/PaginationContext.tsx +5 -19
- package/src/Component/Pagination/Components/PaginationItem.tsx +1 -5
- package/src/Component/Pagination/Pagination.stories.ts +28 -0
- package/src/Component/Pagination/Pagination.tsx +3 -11
- package/src/Component/Pagination/__snapshots__/Pagination.stories.ts.snap +3 -3
- package/src/Component/Pagination/__snapshots__/Pagination.stories.tsx.snap +1 -1
- package/src/Component/Pagination/pagination.css +1 -4
- package/src/Component/Popover/Elements/Popover.ts +55 -0
- package/src/Component/Popover/Popover.stories.ts +259 -0
- package/src/Component/Popover/__snapshots__/Popover.stories.ts.snap +508 -0
- package/src/Component/{DropMenu → Popover}/polyfills.js +6 -4
- package/src/Component/Popover/popover.css +113 -0
- package/src/Component/Popover/popover.entry.js +1 -0
- package/src/Component/Popover/popover.twig +27 -0
- package/src/Component/ResultsBar/Components/ResultsBarInfo.tsx +2 -7
- package/src/Component/ResultsBar/Components/ResultsBarSort.tsx +1 -6
- package/src/Component/ResultsBar/ResultsBar.stories.ts +34 -4
- package/src/Component/ResultsBar/__snapshots__/ResultsBar.stories.ts.snap +3 -3
- package/src/Component/ResultsBar/__snapshots__/ResultsBar.stories.tsx.snap +1 -1
- package/src/Component/SideNavigation/SideNavigation.stories.ts +40 -0
- package/src/Component/SideNavigation/__snapshots__/SideNavigation.stories.ts.snap +1 -1
- package/src/Component/SideNavigation/side-navigation.css +3 -6
- package/src/Component/SocialLinks/SocialLinks.stories.ts +20 -0
- package/src/Component/SocialLinks/__snapshots__/SocialLinks.stories.ts.snap +5 -5
- package/src/Component/SocialShare/SocialShare.stories.ts +37 -0
- package/src/Component/SocialShare/SocialShare.tsx +2 -4
- package/src/Component/SocialShare/__snapshots__/SocialShare.stories.ts.snap +40 -0
- package/src/Component/SocialShare/__snapshots__/SocialShare.stories.tsx.snap +1 -1
- package/src/Component/SocialShare/social-share.twig +34 -0
- package/src/Component/Steps/StepItem.stories.ts +48 -0
- package/src/Component/Steps/Steps.stories.ts +82 -13
- package/src/Component/Steps/__snapshots__/StepItem.stories.ts.snap +31 -0
- package/src/Component/Steps/__snapshots__/Steps.stories.ts.snap +109 -28
- package/src/Component/Steps/step-item.twig +1 -1
- package/src/Component/Steps/steps.css +4 -11
- package/src/Component/Sticky/Elements/Sticky.ts +3 -8
- package/src/Component/Sticky/Sticky.stories.ts +35 -3
- package/src/Component/Sticky/__snapshots__/Sticky.stories.ts.snap +1 -1
- package/src/Component/Sticky/__snapshots__/Sticky.stories.tsx.snap +1 -1
- package/src/Component/Sticky/sticky.twig +1 -1
- package/src/Component/Tabs/Components/Tab.tsx +2 -8
- package/src/Component/Tabs/Components/TabPanel.tsx +1 -5
- package/src/Component/Tabs/Elements/Tabs.ts +21 -31
- package/src/Component/Tabs/TabItem.stories.ts +52 -0
- package/src/Component/Tabs/Tabs.stories.ts +51 -8
- package/src/Component/Tabs/Tabs.tsx +6 -22
- package/src/Component/Tabs/__snapshots__/TabItem.stories.ts.snap +12 -0
- package/src/Component/Tabs/__snapshots__/Tabs.stories.ts.snap +127 -11
- package/src/Component/Tabs/__snapshots__/Tabs.stories.tsx.snap +1 -1
- package/src/Component/Tabs/tab-item.twig +1 -2
- package/src/Component/Tabs/tabs.css +56 -59
- package/src/Component/Tag/Tag.stories.ts +30 -0
- package/src/Component/Tag/Tag.tsx +1 -5
- package/src/Component/Tag/__snapshots__/Tag.stories.ts.snap +1 -1
- package/src/Component/Tag/__snapshots__/Tag.stories.tsx.snap +1 -1
- package/src/Component/Tag/tag.css +1 -4
- package/src/Component/UtilityList/Elements/UtilityList.ts +110 -0
- package/src/Component/UtilityList/UtilityList.stories.ts +72 -0
- package/src/Component/UtilityList/__snapshots__/UtilityList.stories.ts.snap +274 -0
- package/src/Component/UtilityList/utility-list.css +40 -0
- package/src/Component/UtilityList/utility-list.entry.js +1 -0
- package/src/Component/UtilityList/utility-list.twig +66 -0
- package/src/Form/Checkbox/FormCheckbox.stories.tsx +1 -3
- package/src/Form/Checkbox/FormCheckbox.tsx +4 -25
- package/src/Form/Checkbox/__snapshots__/Checkbox.stories.ts.snap +3 -3
- package/src/Form/Description/Description.stories.ts +1 -2
- package/src/Form/Description/FormStatus.stories.ts +1 -4
- package/src/Form/Description/__snapshots__/Description.stories.ts.snap +1 -1
- package/src/Form/Description/__snapshots__/FormDescription.stories.tsx.snap +1 -1
- package/src/Form/Description/__snapshots__/FormStatus.stories.ts.snap +3 -3
- package/src/Form/Form/Form.tsx +1 -3
- package/src/Form/Form/__snapshots__/Form.stories.tsx.snap +1 -1
- package/src/Form/Form/__snapshots__/FormTitle.stories.tsx.snap +1 -1
- package/src/Form/FormItem/FormItem.stories.ts +3 -9
- package/src/Form/FormItem/__snapshots__/FormItem.stories.ts.snap +18 -18
- package/src/Form/FormItem/__snapshots__/FormItem.stories.tsx.snap +1 -1
- package/src/Form/Label/FormLabel.tsx +1 -5
- package/src/Form/Label/__snapshots__/FormLabel.stories.tsx.snap +1 -1
- package/src/Form/Label/__snapshots__/Label.stories.ts.snap +3 -3
- package/src/Form/Radio/FormRadio.stories.tsx +1 -3
- package/src/Form/Radio/FormRadio.tsx +4 -25
- package/src/Form/Radio/__snapshots__/Radio.stories.ts.snap +9 -9
- package/src/Form/Search/__snapshots__/Search.stories.ts.snap +1 -1
- package/src/Form/Select/FormSelect.tsx +3 -9
- package/src/Form/Select/__snapshots__/FormSelect.stories.tsx.snap +1 -1
- package/src/Form/Select/__snapshots__/Select.stories.ts.snap +2 -2
- package/src/Form/TextInput/FormText.tsx +3 -9
- package/src/Form/TextInput/TextInput.stories.ts +1 -4
- package/src/Form/TextInput/__snapshots__/FormText.stories.tsx.snap +1 -1
- package/src/Form/TextInput/__snapshots__/InputDivider.stories.ts.snap +1 -1
- package/src/Form/TextInput/__snapshots__/TextInput.stories.ts.snap +3 -3
- package/src/Form/Textarea/FormTextarea.tsx +3 -9
- package/src/Form/Textarea/__snapshots__/FormTextarea.stories.tsx.snap +1 -1
- package/src/Form/Textarea/__snapshots__/Textarea.stories.ts.snap +2 -2
- package/src/Form/form.css +6 -14
- package/src/Introduction.mdx +1 -2
- package/src/Layout/Footer/Footer.stories.ts +1 -5
- package/src/Layout/Footer/Footer.stories.tsx +2 -3
- package/src/Layout/Footer/Footer.tsx +3 -12
- package/src/Layout/Footer/__snapshots__/Footer.stories.ts.snap +4 -4
- package/src/Layout/Footer/__snapshots__/Footer.stories.tsx.snap +1 -1
- package/src/Layout/Grid/Grid.stories.ts +40 -8
- package/src/Layout/Grid/Grid.tsx +1 -2
- package/src/Layout/Grid/GridItem.stories.ts +63 -0
- package/src/Layout/Grid/__snapshots__/Grid.stories.ts.snap +29 -4
- package/src/Layout/Grid/__snapshots__/Grid.stories.tsx.snap +1 -1
- package/src/Layout/Grid/__snapshots__/GridItem.stories.ts.snap +19 -0
- package/src/Layout/Grid/grid-item.twig +3 -9
- package/src/Layout/Grid/grid.css +1 -4
- package/src/Layout/Header/Elements/GlobalToggle.ts +9 -29
- package/src/Layout/Header/__snapshots__/Header.stories.ts.snap +25 -45
- package/src/Layout/Header/__snapshots__/Header.stories.tsx.snap +3 -3
- package/src/Layout/Header/_toggles.css +2 -2
- package/src/Layout/Header/header.twig +1 -1
- package/src/Layout/Masthead/Masthead.stories.ts +1 -4
- package/src/Layout/Masthead/__snapshots__/Masthead.stories.ts.snap +3 -3
- package/src/Layout/Page/Page.stories.tsx +2 -2
- package/src/Layout/Page/__snapshots__/Page.stories.tsx.snap +3 -3
- package/src/Layout/Page/page.css +2 -10
- package/src/Layout/Section/Background.stories.ts +14 -39
- package/src/Layout/Section/Breakouts.stories.ts +3 -0
- package/src/Layout/Section/Flow.stories.ts +3 -0
- package/src/Layout/Section/Section.stories.ts +93 -11
- package/src/Layout/Section/Section.tsx +3 -13
- package/src/Layout/Section/SectionGrid.tsx +2 -9
- package/src/Layout/Section/__snapshots__/Background.stories.ts.snap +4 -4
- package/src/Layout/Section/__snapshots__/Breakouts.stories.ts.snap +1 -1
- package/src/Layout/Section/__snapshots__/Flow.stories.ts.snap +1 -1
- package/src/Layout/Section/__snapshots__/Section.stories.ts.snap +93 -3
- package/src/Layout/Section/__snapshots__/Section.stories.tsx.snap +1 -1
- package/src/Layout/Section/__snapshots__/SectionGrid.stories.tsx.snap +1 -1
- package/src/Layout/Section/section.css +2 -5
- package/src/Layout/Section/section.twig +1 -3
- package/src/Layout/Sidebar/Sidebar.stories.ts +46 -4
- package/src/Layout/Sidebar/Sidebar.tsx +1 -3
- package/src/Layout/Sidebar/__snapshots__/Sidebar.stories.ts.snap +4 -4
- package/src/Layout/Sidebar/__snapshots__/Sidebar.stories.tsx.snap +1 -1
- package/src/Utility/Context/ImageComponent.tsx +4 -8
- package/src/Utility/Context/LinkComponent.tsx +1 -5
- package/src/Utility/Drupal/drupal.css +2 -4
- package/src/Utility/Elements/breakpoint-loader.ts +4 -10
- package/src/Utility/Elements/cookie-compliance.ts +2 -8
- package/src/Utility/Elements/disclosure-widget.ts +11 -18
- package/src/Utility/Elements/io-loader.ts +4 -6
- package/src/Utility/Elements/keyboard.ts +4 -14
- package/src/Utility/Hooks/useLocalStorage.ts +5 -18
- package/src/Utility/Hooks/useMediaQuery.ts +1 -4
- package/src/Utility/Hooks/useToggle.ts +1 -3
- package/src/Utility/global.d.ts +1 -5
- package/src/Utility/utilities.ts +20 -45
- package/src/constants.css +7 -28
- package/src/enums.ts +3 -1
- package/src/react.ts +5 -21
- package/src/tokens.js +2 -2
- package/dist/build/chunks/disclosure-widget-DVpnRsTI.js +0 -126
- package/dist/build/chunks/disclosure-widget-DVpnRsTI.js.map +0 -1
- package/dist/build/chunks/drop-menu.entry-B4TtnC50.js +0 -132
- package/dist/build/chunks/drop-menu.entry-B4TtnC50.js.map +0 -1
- package/dist/build/chunks/keyboard-rvZ4dfGF.js +0 -104
- package/dist/build/chunks/keyboard-rvZ4dfGF.js.map +0 -1
- package/dist/build/chunks/polyfills-C-B7iqDG.js.map +0 -1
- package/dist/build/chunks/utilities-DXELy_An.js.map +0 -1
- package/src/Atom/Text/TextSizes.stories.ts +0 -25
- package/src/Atom/Text/text-alignment.twig +0 -5
- package/src/Component/Accordion/twig/accordion-example.twig +0 -36
- package/src/Component/Tile/README.md +0 -3
- package/src/Component/Tile/Tile.stories.ts +0 -49
- package/src/Component/Tile/Tile.stories.tsx +0 -35
- package/src/Component/Tile/__snapshots__/Tile.stories.ts.snap +0 -57
- package/src/Component/Tile/__snapshots__/Tile.stories.tsx.snap +0 -23
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { m as makeAnchor } from "./utilities-Ci7wwNeg.js";
|
|
2
|
+
class DisclosureWidget {
|
|
3
|
+
options;
|
|
4
|
+
context;
|
|
5
|
+
trigger;
|
|
6
|
+
element;
|
|
7
|
+
id;
|
|
8
|
+
isOpen;
|
|
9
|
+
attached;
|
|
10
|
+
constructor(trigger, element, overrides, context = document) {
|
|
11
|
+
if (!trigger) {
|
|
12
|
+
throw new Error("toggle is required.");
|
|
13
|
+
}
|
|
14
|
+
if (!element) {
|
|
15
|
+
throw new Error("element is required.");
|
|
16
|
+
}
|
|
17
|
+
const options = {
|
|
18
|
+
attribute: "inert",
|
|
19
|
+
shouldPreventDefault: true,
|
|
20
|
+
setInitialAttribute: true,
|
|
21
|
+
clickEvent: "click"
|
|
22
|
+
};
|
|
23
|
+
this.options = { ...options, ...overrides };
|
|
24
|
+
this.context = context || document;
|
|
25
|
+
this.trigger = trigger;
|
|
26
|
+
this.element = element;
|
|
27
|
+
this.id = this.element.id || this.generatedId();
|
|
28
|
+
}
|
|
29
|
+
init = () => {
|
|
30
|
+
if (Object.prototype.hasOwnProperty.call(this.trigger, "disclosureWidget")) return;
|
|
31
|
+
const { attribute, setInitialAttribute } = this.options;
|
|
32
|
+
this.trigger.disclosureWidget = this;
|
|
33
|
+
if (setInitialAttribute) this.element.setAttribute(attribute, "");
|
|
34
|
+
this.attach();
|
|
35
|
+
};
|
|
36
|
+
handleToggle = () => {
|
|
37
|
+
const { attribute, setInitialAttribute } = this.options;
|
|
38
|
+
this.element.toggleAttribute(attribute);
|
|
39
|
+
const hasAttribute = this.element.hasAttribute(attribute);
|
|
40
|
+
this.isOpen = setInitialAttribute ? !hasAttribute : hasAttribute;
|
|
41
|
+
this.trigger.setAttribute("aria-expanded", String(this.isOpen));
|
|
42
|
+
const newEvent = new CustomEvent("disclosure-toggle", {
|
|
43
|
+
bubbles: true,
|
|
44
|
+
cancelable: true,
|
|
45
|
+
detail: {
|
|
46
|
+
isOpen: this.isOpen,
|
|
47
|
+
id: this.id,
|
|
48
|
+
options: this.options,
|
|
49
|
+
target: this.element
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
this.trigger.dispatchEvent(newEvent);
|
|
53
|
+
};
|
|
54
|
+
handleMouse = (event) => {
|
|
55
|
+
const { currentTarget, type, relatedTarget } = event;
|
|
56
|
+
if (type === "mouseover" || type === "mouseout") {
|
|
57
|
+
const triggerParent = this.trigger.parentNode;
|
|
58
|
+
if (triggerParent !== currentTarget || triggerParent.contains(relatedTarget))
|
|
59
|
+
return;
|
|
60
|
+
} else if (this.trigger !== currentTarget) return;
|
|
61
|
+
const { shouldPreventDefault } = this.options;
|
|
62
|
+
this.handleToggle();
|
|
63
|
+
if (shouldPreventDefault) {
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
event.stopPropagation();
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
handleKeyboard = (event) => {
|
|
69
|
+
const { key, target } = event;
|
|
70
|
+
if (this.trigger !== target) return;
|
|
71
|
+
const { isOpen } = this;
|
|
72
|
+
const { shouldPreventDefault } = this.options;
|
|
73
|
+
switch (key) {
|
|
74
|
+
// Down/Enter should open it.
|
|
75
|
+
case "ArrowDown":
|
|
76
|
+
case "Enter":
|
|
77
|
+
if (!isOpen) this.handleToggle();
|
|
78
|
+
if (shouldPreventDefault) event.preventDefault();
|
|
79
|
+
break;
|
|
80
|
+
// Up/Esc should close it.
|
|
81
|
+
case "ArrowUp":
|
|
82
|
+
case "Escape":
|
|
83
|
+
if (isOpen) this.handleToggle();
|
|
84
|
+
if (shouldPreventDefault) event.preventDefault();
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
attach = () => {
|
|
89
|
+
if (this.attached) return;
|
|
90
|
+
const { clickEvent } = this.options;
|
|
91
|
+
if (clickEvent === "mouseover") {
|
|
92
|
+
const parent = this.trigger.parentNode;
|
|
93
|
+
parent.addEventListener("mouseover", this.handleMouse);
|
|
94
|
+
parent.addEventListener("mouseout", this.handleMouse);
|
|
95
|
+
} else {
|
|
96
|
+
this.trigger.addEventListener("click", this.handleMouse);
|
|
97
|
+
}
|
|
98
|
+
this.trigger.addEventListener("keydown", this.handleKeyboard);
|
|
99
|
+
this.trigger.setAttribute("aria-expanded", "false");
|
|
100
|
+
if (!this.trigger.hasAttribute("aria-controls"))
|
|
101
|
+
this.trigger.setAttribute("aria-controls", this.id);
|
|
102
|
+
this.attached = true;
|
|
103
|
+
};
|
|
104
|
+
detach = () => {
|
|
105
|
+
if (!this.attached) return;
|
|
106
|
+
if (this.isOpen) {
|
|
107
|
+
this.handleToggle();
|
|
108
|
+
}
|
|
109
|
+
const { clickEvent } = this.options;
|
|
110
|
+
if (clickEvent === "mouseover") {
|
|
111
|
+
const parent = this.trigger.parentNode;
|
|
112
|
+
parent.removeEventListener("mouseover", this.handleMouse);
|
|
113
|
+
parent.removeEventListener("mouseout", this.handleMouse);
|
|
114
|
+
} else {
|
|
115
|
+
this.trigger.removeEventListener("click", this.handleMouse);
|
|
116
|
+
}
|
|
117
|
+
this.trigger.removeEventListener("keydown", this.handleKeyboard);
|
|
118
|
+
this.trigger.removeAttribute("aria-expanded");
|
|
119
|
+
this.attached = false;
|
|
120
|
+
};
|
|
121
|
+
generatedId = () => {
|
|
122
|
+
const string = this.trigger?.textContent?.trim();
|
|
123
|
+
return !string ? "" : makeAnchor(string);
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
export {
|
|
127
|
+
DisclosureWidget as D
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=disclosure-widget-CdjCdx7t.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disclosure-widget-CdjCdx7t.js","sources":["../../../src/Utility/Elements/disclosure-widget.ts"],"sourcesContent":["/**\n * Class for a generic Disclosure Widget.\n */\nimport { makeAnchor } from \"../utilities\"\n\ntype DisclosureWidgetOptions = {\n attribute?: string\n shouldPreventDefault?: boolean\n setInitialAttribute?: boolean\n clickEvent?: \"click\" | \"mouseover\"\n}\n\nexport type DisclosureWidgetEvent = {\n isOpen: boolean\n id: string\n options: DisclosureWidgetOptions\n target: Element\n}\n\nexport default class DisclosureWidget {\n options: DisclosureWidgetOptions\n context: Document | Element\n trigger: Element & { disclosureWidget?: DisclosureWidget }\n element: Element\n id: string\n isOpen?: boolean\n attached?: boolean\n\n constructor(\n trigger: Element,\n element: Element,\n overrides?: DisclosureWidgetOptions,\n context: Element | Document = document,\n ) {\n if (!trigger) {\n throw new Error(\"toggle is required.\")\n }\n if (!element) {\n throw new Error(\"element is required.\")\n }\n const options: DisclosureWidgetOptions = {\n attribute: \"inert\",\n shouldPreventDefault: true,\n setInitialAttribute: true,\n clickEvent: \"click\",\n }\n\n this.options = { ...options, ...overrides }\n this.context = context || document\n this.trigger = trigger\n this.element = element\n this.id = this.element.id || this.generatedId()\n }\n\n init = (): void => {\n if (Object.prototype.hasOwnProperty.call(this.trigger, \"disclosureWidget\")) return\n const { attribute, setInitialAttribute } = this.options\n this.trigger.disclosureWidget = this\n if (setInitialAttribute) this.element.setAttribute(attribute, \"\")\n this.attach()\n }\n\n handleToggle = (): void => {\n const { attribute, setInitialAttribute } = this.options\n this.element.toggleAttribute(attribute)\n const hasAttribute: boolean = this.element.hasAttribute(attribute)\n this.isOpen = setInitialAttribute ? !hasAttribute : hasAttribute\n this.trigger.setAttribute(\"aria-expanded\", String(this.isOpen))\n const newEvent: CustomEvent<DisclosureWidgetEvent> = new CustomEvent(\"disclosure-toggle\", {\n bubbles: true,\n cancelable: true,\n detail: {\n isOpen: this.isOpen,\n id: this.id,\n options: this.options,\n target: this.element,\n },\n })\n this.trigger.dispatchEvent(newEvent)\n }\n\n handleMouse = (event: MouseEvent): void => {\n const { currentTarget, type, relatedTarget } = event\n\n if (type === \"mouseover\" || type === \"mouseout\") {\n const triggerParent = this.trigger.parentNode\n if (triggerParent !== currentTarget || triggerParent.contains(relatedTarget as HTMLElement))\n return\n } else if (this.trigger !== currentTarget) return\n\n const { shouldPreventDefault } = this.options\n this.handleToggle()\n if (shouldPreventDefault) {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n\n handleKeyboard = (event: KeyboardEvent): void => {\n const { key, target } = event\n if (this.trigger !== target) return\n const { isOpen } = this\n const { shouldPreventDefault } = this.options\n\n switch (key) {\n // Down/Enter should open it.\n case \"ArrowDown\":\n case \"Enter\":\n if (!isOpen) this.handleToggle()\n if (shouldPreventDefault) event.preventDefault()\n break\n\n // Up/Esc should close it.\n case \"ArrowUp\":\n case \"Escape\":\n if (isOpen) this.handleToggle()\n if (shouldPreventDefault) event.preventDefault()\n break\n\n default:\n break\n }\n }\n\n attach = (): void => {\n if (this.attached) return\n const { clickEvent } = this.options\n if (clickEvent === \"mouseover\") {\n const parent = this.trigger.parentNode\n parent.addEventListener(\"mouseover\", this.handleMouse)\n parent.addEventListener(\"mouseout\", this.handleMouse)\n } else {\n this.trigger.addEventListener(\"click\", this.handleMouse)\n }\n this.trigger.addEventListener(\"keydown\", this.handleKeyboard)\n\n this.trigger.setAttribute(\"aria-expanded\", \"false\")\n if (!this.trigger.hasAttribute(\"aria-controls\"))\n this.trigger.setAttribute(\"aria-controls\", this.id)\n this.attached = true\n }\n\n detach = (): void => {\n if (!this.attached) return\n if (this.isOpen) {\n this.handleToggle()\n }\n const { clickEvent } = this.options\n if (clickEvent === \"mouseover\") {\n const parent = this.trigger.parentNode\n parent.removeEventListener(\"mouseover\", this.handleMouse)\n parent.removeEventListener(\"mouseout\", this.handleMouse)\n } else {\n this.trigger.removeEventListener(\"click\", this.handleMouse)\n }\n this.trigger.removeEventListener(\"keydown\", this.handleKeyboard)\n\n this.trigger.removeAttribute(\"aria-expanded\")\n this.attached = false\n }\n\n generatedId = (): string => {\n const string: string | undefined = this.trigger?.textContent?.trim()\n return !string ? \"\" : makeAnchor(string)\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { P as Popover } from "./popover.entry-BQvyR0d5.js";
|
|
2
|
+
class DropMenu extends Popover {
|
|
3
|
+
controller;
|
|
4
|
+
closeOnClick;
|
|
5
|
+
constructor() {
|
|
6
|
+
super();
|
|
7
|
+
this.controller = new AbortController();
|
|
8
|
+
}
|
|
9
|
+
async connectedCallback() {
|
|
10
|
+
await super.connectedCallback();
|
|
11
|
+
if (!this.container || !this.trigger) return;
|
|
12
|
+
this.closeOnClick = this.hasAttribute("closeonclick");
|
|
13
|
+
const { signal } = this.controller;
|
|
14
|
+
document.addEventListener(
|
|
15
|
+
"click",
|
|
16
|
+
(event) => {
|
|
17
|
+
const targetElement = event.target;
|
|
18
|
+
const selectable = targetElement.closest("a, button");
|
|
19
|
+
if (targetElement !== this.container && ![...this.items].includes(selectable))
|
|
20
|
+
return;
|
|
21
|
+
this.handleSelect(event);
|
|
22
|
+
event.preventDefault();
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
signal
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
document.addEventListener(
|
|
29
|
+
"keydown",
|
|
30
|
+
(event) => {
|
|
31
|
+
const { target, key } = event;
|
|
32
|
+
if (target !== this.container && ![...this.items].includes(target))
|
|
33
|
+
return;
|
|
34
|
+
if (key === "Enter") this.handleSelect(event);
|
|
35
|
+
event.preventDefault();
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
signal
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
disconnectedCallback() {
|
|
43
|
+
this.controller.abort();
|
|
44
|
+
}
|
|
45
|
+
handleSelect = (event) => {
|
|
46
|
+
const target = event.target;
|
|
47
|
+
this.items?.forEach((item) => {
|
|
48
|
+
if (!(item instanceof HTMLButtonElement)) return;
|
|
49
|
+
item.setAttribute("aria-checked", String(item === target));
|
|
50
|
+
});
|
|
51
|
+
const newEvent = new CustomEvent("drop-menu-select", {
|
|
52
|
+
bubbles: true,
|
|
53
|
+
cancelable: true,
|
|
54
|
+
detail: {
|
|
55
|
+
event,
|
|
56
|
+
target
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
this.container.dispatchEvent(newEvent);
|
|
60
|
+
if (this.closeOnClick) this.container.togglePopover();
|
|
61
|
+
};
|
|
62
|
+
get items() {
|
|
63
|
+
return this.container.querySelectorAll("a, button");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (!customElements.get("mx-dropmenu")) customElements.define("mx-dropmenu", DropMenu);
|
|
67
|
+
export {
|
|
68
|
+
DropMenu as D
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=drop-menu.entry-fzV-_VFl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drop-menu.entry-fzV-_VFl.js","sources":["../../../src/Component/DropMenu/Elements/DropMenu.ts"],"sourcesContent":["/**\n * DropMenu\n * @file Create a DropMenu using the Popover and Anchor APIs.\n * Handle's menu item select.\n *\n * Once polyfills are no longer needed, this can just extent HTMLElement\n * instead of Popover.\n */\n\nimport Popover from \"../../Popover/Elements/Popover\"\n\nexport type DropMenuEvent = CustomEvent<{\n event: MouseEvent | KeyboardEvent\n target: HTMLButtonElement | HTMLAnchorElement\n}>\n\nexport default class DropMenu extends Popover {\n controller: AbortController\n closeOnClick: boolean\n\n constructor() {\n super()\n this.controller = new AbortController()\n }\n\n async connectedCallback() {\n await super.connectedCallback()\n if (!this.container || !this.trigger) return\n\n this.closeOnClick = this.hasAttribute(\"closeonclick\")\n\n const { signal }: AbortController = this.controller\n document.addEventListener(\n \"click\",\n (event: MouseEvent): void => {\n const targetElement = event.target as HTMLElement\n const selectable = targetElement.closest(\"a, button\")\n if (\n (targetElement as HTMLElement) !== this.container &&\n ![...this.items].includes(selectable as HTMLButtonElement | HTMLAnchorElement)\n )\n return\n this.handleSelect(event)\n event.preventDefault()\n },\n {\n signal,\n },\n )\n\n document.addEventListener(\n \"keydown\",\n (event: KeyboardEvent): void => {\n const { target, key } = event\n if (\n (target as HTMLElement) !== this.container &&\n ![...this.items].includes(target as HTMLButtonElement | HTMLAnchorElement)\n )\n return\n if (key === \"Enter\") this.handleSelect(event)\n event.preventDefault()\n },\n {\n signal,\n },\n )\n }\n\n disconnectedCallback(): void {\n this.controller.abort()\n }\n\n handleSelect = (event: MouseEvent | KeyboardEvent): void => {\n const target = event.target as HTMLButtonElement | HTMLAnchorElement\n this.items?.forEach(item => {\n if (!(item instanceof HTMLButtonElement)) return\n item.setAttribute(\"aria-checked\", String(item === target))\n })\n const newEvent: DropMenuEvent = new CustomEvent(\"drop-menu-select\", {\n bubbles: true,\n cancelable: true,\n detail: {\n event,\n target,\n },\n })\n this.container.dispatchEvent(newEvent)\n if (this.closeOnClick) this.container.togglePopover()\n }\n\n get items(): NodeListOf<HTMLButtonElement | HTMLAnchorElement> | null {\n return this.container.querySelectorAll(\"a, button\")\n }\n}\n\nif (!customElements.get(\"mx-dropmenu\")) customElements.define(\"mx-dropmenu\", DropMenu)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"mx-dropmenu\": DropMenu\n }\n}\n"],"names":[],"mappings":";AAgBA,MAAqB,iBAAiB,QAAQ;AAAA,EAC5C;AAAA,EACA;AAAA,EAEA,cAAc;AACZ,UAAA;AACA,SAAK,aAAa,IAAI,gBAAA;AAAA,EACxB;AAAA,EAEA,MAAM,oBAAoB;AACxB,UAAM,MAAM,kBAAA;AACZ,QAAI,CAAC,KAAK,aAAa,CAAC,KAAK,QAAS;AAEtC,SAAK,eAAe,KAAK,aAAa,cAAc;AAEpD,UAAM,EAAE,WAA4B,KAAK;AACzC,aAAS;AAAA,MACP;AAAA,MACA,CAAC,UAA4B;AAC3B,cAAM,gBAAgB,MAAM;AAC5B,cAAM,aAAa,cAAc,QAAQ,WAAW;AACpD,YACG,kBAAkC,KAAK,aACxC,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,SAAS,UAAmD;AAE7E;AACF,aAAK,aAAa,KAAK;AACvB,cAAM,eAAA;AAAA,MACR;AAAA,MACA;AAAA,QACE;AAAA,MAAA;AAAA,IACF;AAGF,aAAS;AAAA,MACP;AAAA,MACA,CAAC,UAA+B;AAC9B,cAAM,EAAE,QAAQ,IAAA,IAAQ;AACxB,YACG,WAA2B,KAAK,aACjC,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,SAAS,MAA+C;AAEzE;AACF,YAAI,QAAQ,QAAS,MAAK,aAAa,KAAK;AAC5C,cAAM,eAAA;AAAA,MACR;AAAA,MACA;AAAA,QACE;AAAA,MAAA;AAAA,IACF;AAAA,EAEJ;AAAA,EAEA,uBAA6B;AAC3B,SAAK,WAAW,MAAA;AAAA,EAClB;AAAA,EAEA,eAAe,CAAC,UAA4C;AAC1D,UAAM,SAAS,MAAM;AACrB,SAAK,OAAO,QAAQ,CAAA,SAAQ;AAC1B,UAAI,EAAE,gBAAgB,mBAAoB;AAC1C,WAAK,aAAa,gBAAgB,OAAO,SAAS,MAAM,CAAC;AAAA,IAC3D,CAAC;AACD,UAAM,WAA0B,IAAI,YAAY,oBAAoB;AAAA,MAClE,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,QAAQ;AAAA,QACN;AAAA,QACA;AAAA,MAAA;AAAA,IACF,CACD;AACD,SAAK,UAAU,cAAc,QAAQ;AACrC,QAAI,KAAK,aAAc,MAAK,UAAU,cAAA;AAAA,EACxC;AAAA,EAEA,IAAI,QAAkE;AACpE,WAAO,KAAK,UAAU,iBAAiB,WAAW;AAAA,EACpD;AACF;AAEA,IAAI,CAAC,eAAe,IAAI,aAAa,EAAG,gBAAe,OAAO,eAAe,QAAQ;"}
|
|
@@ -228,7 +228,7 @@ function isOverflowElement(element) {
|
|
|
228
228
|
overflowX,
|
|
229
229
|
overflowY,
|
|
230
230
|
display
|
|
231
|
-
} = getComputedStyle(element);
|
|
231
|
+
} = getComputedStyle$1(element);
|
|
232
232
|
return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
|
|
233
233
|
}
|
|
234
234
|
const tableElements = /* @__PURE__ */ new Set(["table", "td", "th"]);
|
|
@@ -250,7 +250,7 @@ const willChangeValues = ["transform", "translate", "scale", "rotate", "perspect
|
|
|
250
250
|
const containValues = ["paint", "layout", "strict", "content"];
|
|
251
251
|
function isContainingBlock(elementOrCss) {
|
|
252
252
|
const webkit = isWebKit();
|
|
253
|
-
const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;
|
|
253
|
+
const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
|
|
254
254
|
return transformProperties.some((value) => css[value] ? css[value] !== "none" : false) || (css.containerType ? css.containerType !== "normal" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== "none" : false) || !webkit && (css.filter ? css.filter !== "none" : false) || willChangeValues.some((value) => (css.willChange || "").includes(value)) || containValues.some((value) => (css.contain || "").includes(value));
|
|
255
255
|
}
|
|
256
256
|
function getContainingBlock(element) {
|
|
@@ -273,7 +273,7 @@ const lastTraversableNodeNames = /* @__PURE__ */ new Set(["html", "body", "#docu
|
|
|
273
273
|
function isLastTraversableNode(node) {
|
|
274
274
|
return lastTraversableNodeNames.has(getNodeName(node));
|
|
275
275
|
}
|
|
276
|
-
function getComputedStyle(element) {
|
|
276
|
+
function getComputedStyle$1(element) {
|
|
277
277
|
return getWindow(element).getComputedStyle(element);
|
|
278
278
|
}
|
|
279
279
|
function getNodeScroll(element) {
|
|
@@ -329,7 +329,7 @@ function getFrameElement(win) {
|
|
|
329
329
|
return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
|
|
330
330
|
}
|
|
331
331
|
function getCssDimensions(element) {
|
|
332
|
-
const css = getComputedStyle(element);
|
|
332
|
+
const css = getComputedStyle$1(element);
|
|
333
333
|
let width = parseFloat(css.width) || 0;
|
|
334
334
|
let height = parseFloat(css.height) || 0;
|
|
335
335
|
const hasOffset = isHTMLElement(element);
|
|
@@ -425,7 +425,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
|
|
|
425
425
|
while (currentIFrame && offsetParent && offsetWin !== currentWin) {
|
|
426
426
|
const iframeScale = getScale(currentIFrame);
|
|
427
427
|
const iframeRect = currentIFrame.getBoundingClientRect();
|
|
428
|
-
const css = getComputedStyle(currentIFrame);
|
|
428
|
+
const css = getComputedStyle$1(currentIFrame);
|
|
429
429
|
const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
|
|
430
430
|
const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
|
|
431
431
|
x *= iframeScale.x;
|
|
@@ -452,15 +452,9 @@ function getWindowScrollBarX(element, rect) {
|
|
|
452
452
|
}
|
|
453
453
|
return rect.left + leftScroll;
|
|
454
454
|
}
|
|
455
|
-
function getHTMLOffset(documentElement, scroll
|
|
456
|
-
if (ignoreScrollbarX === void 0) {
|
|
457
|
-
ignoreScrollbarX = false;
|
|
458
|
-
}
|
|
455
|
+
function getHTMLOffset(documentElement, scroll) {
|
|
459
456
|
const htmlRect = documentElement.getBoundingClientRect();
|
|
460
|
-
const x = htmlRect.left + scroll.scrollLeft - (
|
|
461
|
-
// RTL <body> scrollbar.
|
|
462
|
-
getWindowScrollBarX(documentElement, htmlRect)
|
|
463
|
-
));
|
|
457
|
+
const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
|
|
464
458
|
const y = htmlRect.top + scroll.scrollTop;
|
|
465
459
|
return {
|
|
466
460
|
x,
|
|
@@ -498,7 +492,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
|
|
|
498
492
|
offsets.y = offsetRect.y + offsetParent.clientTop;
|
|
499
493
|
}
|
|
500
494
|
}
|
|
501
|
-
const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll
|
|
495
|
+
const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
|
|
502
496
|
return {
|
|
503
497
|
width: rect.width * scale.x,
|
|
504
498
|
height: rect.height * scale.y,
|
|
@@ -517,7 +511,7 @@ function getDocumentRect(element) {
|
|
|
517
511
|
const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
|
|
518
512
|
let x = -scroll.scrollLeft + getWindowScrollBarX(element);
|
|
519
513
|
const y = -scroll.scrollTop;
|
|
520
|
-
if (getComputedStyle(body).direction === "rtl") {
|
|
514
|
+
if (getComputedStyle$1(body).direction === "rtl") {
|
|
521
515
|
x += max(html.clientWidth, body.clientWidth) - width;
|
|
522
516
|
}
|
|
523
517
|
return {
|
|
@@ -527,6 +521,7 @@ function getDocumentRect(element) {
|
|
|
527
521
|
y
|
|
528
522
|
};
|
|
529
523
|
}
|
|
524
|
+
const SCROLLBAR_MAX = 25;
|
|
530
525
|
function getViewportRect(element, strategy) {
|
|
531
526
|
const win = getWindow(element);
|
|
532
527
|
const html = getDocumentElement(element);
|
|
@@ -544,6 +539,19 @@ function getViewportRect(element, strategy) {
|
|
|
544
539
|
y = visualViewport.offsetTop;
|
|
545
540
|
}
|
|
546
541
|
}
|
|
542
|
+
const windowScrollbarX = getWindowScrollBarX(html);
|
|
543
|
+
if (windowScrollbarX <= 0) {
|
|
544
|
+
const doc = html.ownerDocument;
|
|
545
|
+
const body = doc.body;
|
|
546
|
+
const bodyStyles = getComputedStyle(body);
|
|
547
|
+
const bodyMarginInline = doc.compatMode === "CSS1Compat" ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
|
|
548
|
+
const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
|
|
549
|
+
if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {
|
|
550
|
+
width -= clippingStableScrollbarWidth;
|
|
551
|
+
}
|
|
552
|
+
} else if (windowScrollbarX <= SCROLLBAR_MAX) {
|
|
553
|
+
width += windowScrollbarX;
|
|
554
|
+
}
|
|
547
555
|
return {
|
|
548
556
|
width,
|
|
549
557
|
height,
|
|
@@ -592,7 +600,7 @@ function hasFixedPositionAncestor(element, stopNode) {
|
|
|
592
600
|
if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
|
|
593
601
|
return false;
|
|
594
602
|
}
|
|
595
|
-
return getComputedStyle(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode);
|
|
603
|
+
return getComputedStyle$1(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode);
|
|
596
604
|
}
|
|
597
605
|
function getClippingElementAncestors(element, cache) {
|
|
598
606
|
const cachedResult = cache.get(element);
|
|
@@ -601,10 +609,10 @@ function getClippingElementAncestors(element, cache) {
|
|
|
601
609
|
}
|
|
602
610
|
let result = getOverflowAncestors(element, []).filter((el) => isElement(el) && getNodeName(el) !== "body");
|
|
603
611
|
let currentContainingBlockComputedStyle = null;
|
|
604
|
-
const elementIsFixed = getComputedStyle(element).position === "fixed";
|
|
612
|
+
const elementIsFixed = getComputedStyle$1(element).position === "fixed";
|
|
605
613
|
let currentNode = elementIsFixed ? getParentNode(element) : element;
|
|
606
614
|
while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
|
|
607
|
-
const computedStyle = getComputedStyle(currentNode);
|
|
615
|
+
const computedStyle = getComputedStyle$1(currentNode);
|
|
608
616
|
const currentNodeIsContaining = isContainingBlock(currentNode);
|
|
609
617
|
if (!currentNodeIsContaining && computedStyle.position === "fixed") {
|
|
610
618
|
currentContainingBlockComputedStyle = null;
|
|
@@ -694,10 +702,10 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
|
694
702
|
};
|
|
695
703
|
}
|
|
696
704
|
function isStaticPositioned(element) {
|
|
697
|
-
return getComputedStyle(element).position === "static";
|
|
705
|
+
return getComputedStyle$1(element).position === "static";
|
|
698
706
|
}
|
|
699
707
|
function getTrueOffsetParent(element, polyfill) {
|
|
700
|
-
if (!isHTMLElement(element) || getComputedStyle(element).position === "fixed") {
|
|
708
|
+
if (!isHTMLElement(element) || getComputedStyle$1(element).position === "fixed") {
|
|
701
709
|
return null;
|
|
702
710
|
}
|
|
703
711
|
if (polyfill) {
|
|
@@ -748,7 +756,7 @@ const getElementRects = async function(data) {
|
|
|
748
756
|
};
|
|
749
757
|
};
|
|
750
758
|
function isRTL(element) {
|
|
751
|
-
return getComputedStyle(element).direction === "rtl";
|
|
759
|
+
return getComputedStyle$1(element).direction === "rtl";
|
|
752
760
|
}
|
|
753
761
|
const platform = {
|
|
754
762
|
convertOffsetParentRelativeRectToViewportRelativeRect,
|
|
@@ -780,24 +788,25 @@ const computePosition = (reference, floating, options) => {
|
|
|
780
788
|
class Polyfills {
|
|
781
789
|
constructor(popover) {
|
|
782
790
|
this.popover = popover;
|
|
783
|
-
this.trigger = document.querySelector(
|
|
784
|
-
`[popovertarget="${popover.getAttribute("id")}"`
|
|
785
|
-
);
|
|
791
|
+
this.trigger = document.querySelector(`[popovertarget="${popover.getAttribute("id")}"`);
|
|
786
792
|
this.positionPopover = this.positionPopover.bind(this);
|
|
787
793
|
this.popover.addEventListener("toggle", this.positionPopover);
|
|
788
794
|
}
|
|
789
795
|
positionPopover = ({ newState }) => {
|
|
790
796
|
if (newState === "open") {
|
|
791
797
|
computePosition(this.trigger, this.popover, {
|
|
792
|
-
placement: "bottom-start"
|
|
798
|
+
placement: this.placement || "bottom-start"
|
|
793
799
|
}).then(({ x, y }) => {
|
|
794
800
|
this.popover.style.insetInlineStart = `${x}px`;
|
|
795
801
|
this.popover.style.insetBlockStart = `${y}px`;
|
|
796
802
|
});
|
|
797
803
|
}
|
|
798
804
|
};
|
|
805
|
+
get placement() {
|
|
806
|
+
return this.popover.getAttribute("data-placement");
|
|
807
|
+
}
|
|
799
808
|
}
|
|
800
809
|
export {
|
|
801
810
|
Polyfills as default
|
|
802
811
|
};
|
|
803
|
-
//# sourceMappingURL=polyfills-
|
|
812
|
+
//# sourceMappingURL=polyfills-DnrsypYs.js.map
|