@pnx-mixtape/mxds 0.0.24 → 0.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.storybook/decorators.ts +1 -1
- package/.storybook/main.ts +12 -1
- package/.storybook/preview.ts +1 -0
- package/.storybook/theme-demo.css +17 -13
- package/.storybook/vitest.setup.ts +53 -0
- package/dist/build/accordion.css +1 -113
- package/dist/build/accordion.entry.js +46 -72
- package/dist/build/base.css +1 -993
- package/dist/build/breadcrumb.css +1 -55
- package/dist/build/button.css +1 -126
- package/dist/build/callout.css +1 -11
- package/dist/build/card.css +1 -161
- package/dist/build/carousel.css +1 -125
- package/dist/build/chunks/Accordion-BzKLBuWL.js +42 -0
- package/dist/build/chunks/DropMenu-LnJEp-sg.js +43 -0
- package/dist/build/chunks/Popover-C4gisyxr.js +27 -0
- package/dist/build/chunks/polyfills-Du4RTZDf.js +511 -0
- package/dist/build/chunks/popover-Bd5oQ1Ic.js +407 -0
- package/dist/build/chunks/utilities-DepaJdUg.js +242 -0
- package/dist/build/constants.css +1 -132
- package/dist/build/container-grid.css +1 -186
- package/dist/build/content-block.css +1 -36
- package/dist/build/dialog.css +1 -108
- package/dist/build/dialog.entry.js +45 -85
- package/dist/build/drop-menu.css +1 -89
- package/dist/build/drop-menu.entry.js +2 -2
- package/dist/build/drupal.css +1 -66
- package/dist/build/filters.css +1 -117
- package/dist/build/filters.entry.js +113 -142
- package/dist/build/footer.css +1 -141
- package/dist/build/form.css +1 -491
- package/dist/build/global-alert.css +1 -60
- package/dist/build/global-alert.entry.js +51 -75
- package/dist/build/grid.css +1 -195
- package/dist/build/header.css +1 -149
- package/dist/build/header.entry.js +718 -1180
- package/dist/build/hero-banner.css +1 -73
- package/dist/build/icon.css +1 -399
- package/dist/build/in-page-alert.css +1 -93
- package/dist/build/in-page-navigation.css +1 -17
- package/dist/build/in-page-navigation.entry.js +67 -103
- package/dist/build/link-list.css +1 -45
- package/dist/build/list-item.css +1 -29
- package/dist/build/masthead.css +1 -53
- package/dist/build/navigation.css +1 -356
- package/dist/build/navigation.entry.js +79 -222
- package/dist/build/page.css +1 -65
- package/dist/build/pagination.css +1 -111
- package/dist/build/popover.css +1 -119
- package/dist/build/popover.entry.js +1 -2
- package/dist/build/results-bar.css +1 -21
- package/dist/build/section.css +1 -147
- package/dist/build/side-navigation.css +1 -85
- package/dist/build/sidebar.css +1 -53
- package/dist/build/social-links.css +1 -20
- package/dist/build/steps.css +1 -118
- package/dist/build/sticky.css +1 -47
- package/dist/build/sticky.entry.js +48 -59
- package/dist/build/tabs.css +1 -108
- package/dist/build/tabs.entry.js +130 -209
- package/dist/build/tag.css +1 -70
- package/dist/build/utilities.css +1 -186
- package/dist/build/utility-list.css +1 -43
- package/dist/build/utility-list.entry.js +52 -80
- package/package.json +40 -54
- package/src/Atom/Background/__snapshots__/Background.stories.ts.snap +61 -216
- package/src/Atom/Background/_background.css +2 -1
- package/src/Atom/Button/Button.stories.tsx +2 -0
- package/src/Atom/Button/__snapshots__/Button.stories.ts.snap +77 -97
- package/src/Atom/Button/__snapshots__/Button.stories.tsx.snap +3 -15
- package/src/Atom/DefinitionList/DefinitionList.stories.tsx +2 -1
- package/src/Atom/DefinitionList/__snapshots__/DefinitionList.stories.ts.snap +13 -26
- package/src/Atom/DefinitionList/__snapshots__/DefinitionList.stories.tsx.snap +2 -29
- package/src/Atom/Heading/Heading.stories.tsx +2 -1
- package/src/Atom/Heading/__snapshots__/Heading.stories.ts.snap +9 -13
- package/src/Atom/Heading/__snapshots__/Heading.stories.tsx.snap +2 -8
- package/src/Atom/Icon/Icon.stories.tsx +2 -1
- package/src/Atom/Icon/__snapshots__/Icon.stories.ts.snap +21 -28
- package/src/Atom/Icon/__snapshots__/Icon.stories.tsx.snap +4 -15
- package/src/Atom/Icon/_icon.css +7 -6
- package/src/Atom/Image/__snapshots__/Image.stories.ts.snap +6 -9
- package/src/Atom/Link/Link.stories.tsx +2 -1
- package/src/Atom/Link/__snapshots__/Link.stories.ts.snap +47 -56
- package/src/Atom/Link/__snapshots__/Link.stories.tsx.snap +4 -22
- package/src/Atom/Media/Media.stories.ts +1 -1
- package/src/Atom/Media/Media.stories.tsx +2 -1
- package/src/Atom/Media/__snapshots__/Media.stories.ts.snap +27 -12
- package/src/Atom/Media/__snapshots__/Media.stories.tsx.snap +3 -16
- package/src/Atom/Spacing/__snapshots__/Spacing.stories.ts.snap +5 -8
- package/src/Atom/Table/TableResponsive.stories.ts +0 -1
- package/src/Atom/Table/__snapshots__/Table.stories.ts.snap +129 -261
- package/src/Atom/Table/__snapshots__/TableResponsive.stories.ts.snap +34 -67
- package/src/Atom/Text/Text.stories.tsx +2 -1
- package/src/Atom/Text/__snapshots__/Text.stories.ts.snap +32 -46
- package/src/Atom/Text/__snapshots__/Text.stories.tsx.snap +2 -6
- package/src/Atom/Video/__snapshots__/Video.stories.ts.snap +6 -11
- package/src/Atom/_flow.css +16 -1
- package/src/Component/Accordion/Accordion.stories.tsx +2 -0
- package/src/Component/Accordion/__snapshots__/Accordion.stories.ts.snap +106 -140
- package/src/Component/Accordion/__snapshots__/Accordion.stories.tsx.snap +3 -49
- package/src/Component/Accordion/__snapshots__/AccordionItem.stories.ts.snap +52 -81
- package/src/Component/Breadcrumb/Breadcrumb.stories.tsx +2 -0
- package/src/Component/Breadcrumb/__snapshots__/Breadcrumb.stories.ts.snap +29 -33
- package/src/Component/Breadcrumb/__snapshots__/Breadcrumb.stories.tsx.snap +3 -62
- package/src/Component/Callout/__snapshots__/Callout.stories.ts.snap +9 -11
- package/src/Component/Card/Card.stories.tsx +2 -0
- package/src/Component/Card/__snapshots__/Card.stories.ts.snap +237 -272
- package/src/Component/Card/__snapshots__/Card.stories.tsx.snap +4 -85
- package/src/Component/Carousel/Elements/Carousel.ts +10 -7
- package/src/Component/Carousel/__snapshots__/Carousel.stories.ts.snap +992 -1187
- package/src/Component/ContentBlock/ContentBlock.stories.tsx +2 -0
- package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.ts.snap +161 -155
- package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.tsx.snap +2 -25
- package/src/Component/Dialog/Dialog.stories.tsx +2 -0
- package/src/Component/Dialog/__snapshots__/Dialog.stories.ts.snap +92 -110
- package/src/Component/Dialog/__snapshots__/Dialog.stories.tsx.snap +2 -31
- package/src/Component/DropMenu/DropMenu.stories.tsx +2 -0
- package/src/Component/DropMenu/DropMenu.tsx +1 -3
- package/src/Component/DropMenu/__snapshots__/DropMenu.stories.ts.snap +25 -72
- package/src/Component/DropMenu/__snapshots__/DropMenu.stories.tsx.snap +2 -46
- package/src/Component/Filters/__snapshots__/FilterItem.stories.ts.snap +80 -121
- package/src/Component/Filters/__snapshots__/Filters.stories.ts.snap +323 -424
- package/src/Component/GlobalAlert/GlobalAlert.stories.tsx +2 -0
- package/src/Component/GlobalAlert/__snapshots__/GlobalAlert.stories.ts.snap +25 -37
- package/src/Component/GlobalAlert/__snapshots__/GlobalAlert.stories.tsx.snap +3 -46
- package/src/Component/HeroBanner/HeroBanner.stories.tsx +2 -0
- package/src/Component/HeroBanner/__snapshots__/HeroBanner.stories.ts.snap +105 -106
- package/src/Component/HeroBanner/__snapshots__/HeroBanner.stories.tsx.snap +3 -34
- package/src/Component/HeroSearch/HeroSearch.stories.tsx +2 -0
- package/src/Component/HeroSearch/__snapshots__/HeroSearch.stories.ts.snap +121 -158
- package/src/Component/HeroSearch/__snapshots__/HeroSearch.stories.tsx.snap +3 -34
- package/src/Component/InPageAlert/InPageAlert.stories.tsx +2 -0
- package/src/Component/InPageAlert/__snapshots__/InPageAlert.stories.ts.snap +87 -70
- package/src/Component/InPageAlert/__snapshots__/InPageAlert.stories.tsx.snap +5 -65
- package/src/Component/InPageNavigation/Elements/InPageNavigation.ts +22 -3
- package/src/Component/InPageNavigation/InPageNavigation.stories.ts +11 -0
- package/src/Component/InPageNavigation/InPageNavigation.stories.tsx +2 -0
- package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.ts.snap +93 -208
- package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.tsx.snap +2 -148
- package/src/Component/InPageNavigation/in-page-navigation.css +7 -0
- package/src/Component/InPageNavigation/in-page-navigation.twig +3 -2
- package/src/Component/LinkList/LinkList.stories.tsx +2 -1
- package/src/Component/LinkList/__snapshots__/LinkList.stories.ts.snap +67 -66
- package/src/Component/LinkList/__snapshots__/LinkList.stories.tsx.snap +2 -32
- package/src/Component/ListItem/ListItem.stories.tsx +2 -1
- package/src/Component/ListItem/__snapshots__/ListItem.stories.ts.snap +153 -167
- package/src/Component/ListItem/__snapshots__/ListItem.stories.tsx.snap +2 -25
- package/src/Component/Navigation/Dropdown.stories.tsx +2 -0
- package/src/Component/Navigation/Elements/Navigation.ts +5 -5
- package/src/Component/Navigation/Navigation.stories.tsx +2 -0
- package/src/Component/Navigation/__snapshots__/Dropdown.stories.tsx.snap +2 -38
- package/src/Component/Navigation/__snapshots__/Navigation.stories.ts.snap +204 -279
- package/src/Component/Navigation/__snapshots__/Navigation.stories.tsx.snap +3 -59
- package/src/Component/Navigation/_navigation.css +2 -2
- package/src/Component/Pagination/Pagination.stories.tsx +2 -0
- package/src/Component/Pagination/__snapshots__/Pagination.stories.ts.snap +70 -60
- package/src/Component/Pagination/__snapshots__/Pagination.stories.tsx.snap +2 -62
- package/src/Component/Popover/Elements/Popover.ts +5 -1
- package/src/Component/Popover/__snapshots__/Popover.stories.ts.snap +366 -496
- package/src/Component/Popover/popover.css +3 -4
- package/src/Component/ResultsBar/ResultsBar.stories.tsx +2 -0
- package/src/Component/ResultsBar/__snapshots__/ResultsBar.stories.ts.snap +25 -46
- package/src/Component/ResultsBar/__snapshots__/ResultsBar.stories.tsx.snap +4 -50
- package/src/Component/SideNavigation/__snapshots__/SideNavigation.stories.ts.snap +76 -81
- package/src/Component/SocialLinks/__snapshots__/SocialLinks.stories.ts.snap +35 -32
- package/src/Component/SocialShare/SocialShare.stories.tsx +2 -1
- package/src/Component/SocialShare/__snapshots__/SocialShare.stories.ts.snap +11 -27
- package/src/Component/SocialShare/__snapshots__/SocialShare.stories.tsx.snap +4 -22
- package/src/Component/SocialShare/social-share.twig +1 -0
- package/src/Component/Steps/__snapshots__/StepItem.stories.ts.snap +11 -23
- package/src/Component/Steps/__snapshots__/Steps.stories.ts.snap +142 -173
- package/src/Component/Sticky/Sticky.stories.tsx +2 -0
- package/src/Component/Sticky/__snapshots__/Sticky.stories.ts.snap +6 -12
- package/src/Component/Sticky/__snapshots__/Sticky.stories.tsx.snap +2 -10
- package/src/Component/Tabs/Tabs.stories.tsx +2 -0
- package/src/Component/Tabs/__snapshots__/TabItem.stories.ts.snap +5 -9
- package/src/Component/Tabs/__snapshots__/Tabs.stories.ts.snap +37 -210
- package/src/Component/Tabs/__snapshots__/Tabs.stories.tsx.snap +2 -116
- package/src/Component/Tag/Tag.stories.tsx +2 -0
- package/src/Component/Tag/__snapshots__/Tag.stories.ts.snap +37 -61
- package/src/Component/Tag/__snapshots__/Tag.stories.tsx.snap +2 -6
- package/src/Component/Tag/tags.twig +6 -6
- package/src/Component/UtilityList/__snapshots__/UtilityList.stories.ts.snap +122 -245
- package/src/Component/UtilityList/utility-list.css +4 -0
- package/src/Component/UtilityList/utility-list.twig +2 -1
- package/src/Form/Checkbox/FormCheckbox.stories.tsx +2 -2
- package/src/Form/Checkbox/__snapshots__/Checkbox.stories.ts.snap +13 -26
- package/src/Form/Checkbox/__snapshots__/FormCheckbox.stories.tsx.snap +5 -0
- package/src/Form/Description/FormDescription.stories.tsx +2 -1
- package/src/Form/Description/__snapshots__/Description.stories.ts.snap +5 -9
- package/src/Form/Description/__snapshots__/FormDescription.stories.tsx.snap +2 -9
- package/src/Form/Description/__snapshots__/FormStatus.stories.ts.snap +9 -17
- package/src/Form/Form/Form.stories.tsx +2 -1
- package/src/Form/Form/FormTitle.stories.tsx +2 -1
- package/src/Form/Form/__snapshots__/Form.stories.tsx.snap +2 -5
- package/src/Form/Form/__snapshots__/FormTitle.stories.tsx.snap +2 -8
- package/src/Form/FormItem/FormItem.stories.tsx +8 -5
- package/src/Form/FormItem/__snapshots__/FormItem.stories.ts.snap +88 -129
- package/src/Form/Label/FormLabel.stories.tsx +2 -1
- package/src/Form/Label/__snapshots__/FormLabel.stories.tsx.snap +3 -18
- package/src/Form/Label/__snapshots__/Label.stories.ts.snap +13 -25
- package/src/Form/Radio/FormRadio.stories.tsx +2 -14
- package/src/Form/Radio/__snapshots__/FormRadio.stories.tsx.snap +3 -0
- package/src/Form/Radio/__snapshots__/Radio.stories.ts.snap +42 -57
- package/src/Form/Search/__snapshots__/Search.stories.ts.snap +11 -26
- package/src/Form/Search/search-form.twig +2 -1
- package/src/Form/Select/FormSelect.stories.tsx +2 -1
- package/src/Form/Select/__snapshots__/FormSelect.stories.tsx.snap +2 -22
- package/src/Form/Select/__snapshots__/Select.stories.ts.snap +8 -19
- package/src/Form/TextInput/FormText.stories.tsx +2 -1
- package/src/Form/TextInput/__snapshots__/FormText.stories.tsx.snap +2 -12
- package/src/Form/TextInput/__snapshots__/InputDivider.stories.ts.snap +11 -26
- package/src/Form/TextInput/__snapshots__/TextInput.stories.ts.snap +11 -25
- package/src/Form/Textarea/FormTextarea.stories.tsx +2 -1
- package/src/Form/Textarea/__snapshots__/FormTextarea.stories.tsx.snap +2 -11
- package/src/Form/Textarea/__snapshots__/Textarea.stories.ts.snap +5 -11
- package/src/Layout/Footer/Footer.stories.ts +18 -1
- package/src/Layout/Footer/Footer.stories.tsx +2 -0
- package/src/Layout/Footer/__snapshots__/Footer.stories.ts.snap +360 -301
- package/src/Layout/Footer/__snapshots__/Footer.stories.tsx.snap +3 -62
- package/src/Layout/Footer/footer.css +16 -35
- package/src/Layout/Footer/footer.twig +6 -6
- package/src/Layout/Grid/Grid.stories.tsx +2 -0
- package/src/Layout/Grid/__snapshots__/Grid.stories.ts.snap +72 -66
- package/src/Layout/Grid/__snapshots__/Grid.stories.tsx.snap +6 -62
- package/src/Layout/Grid/__snapshots__/GridItem.stories.ts.snap +9 -13
- package/src/Layout/Header/Header.stories.tsx +2 -1
- package/src/Layout/Header/__snapshots__/Header.stories.ts.snap +315 -466
- package/src/Layout/Header/__snapshots__/Header.stories.tsx.snap +2 -58
- package/src/Layout/Masthead/__snapshots__/Masthead.stories.ts.snap +86 -87
- package/src/Layout/Page/Page.stories.tsx +2 -0
- package/src/Layout/Page/__snapshots__/Page.stories.tsx.snap +2 -81
- package/src/Layout/Section/__snapshots__/Background.stories.ts.snap +51 -61
- package/src/Layout/Section/__snapshots__/Breakouts.stories.ts.snap +34 -78
- package/src/Layout/Section/__snapshots__/Flow.stories.ts.snap +54 -89
- package/src/Layout/Section/__snapshots__/Section.stories.ts.snap +89 -99
- package/src/Layout/Section/__snapshots__/Section.stories.tsx.snap +4 -34
- package/src/Layout/Section/__snapshots__/SectionGrid.stories.tsx.snap +3 -35
- package/src/Layout/Section/section.twig +2 -2
- package/src/Layout/Sidebar/Sidebar.stories.tsx +1 -1
- package/src/Layout/Sidebar/__snapshots__/Sidebar.stories.ts.snap +49 -40
- package/src/Layout/Sidebar/__snapshots__/Sidebar.stories.tsx.snap +4 -44
- package/src/Layout/Sidebar/sidebar.css +2 -2
- package/src/Layout/Sidebar/sidebar.twig +8 -5
- package/src/Utility/_layout-utils.css +9 -1
- package/src/constants.css +2 -2
- package/src/tokens.js +2 -2
- package/.storybook/test-runner.ts +0 -77
- package/dist/build/accordion.entry.js.map +0 -1
- package/dist/build/chunks/Accordion-D1HQ0FDq.js +0 -63
- package/dist/build/chunks/Accordion-D1HQ0FDq.js.map +0 -1
- package/dist/build/chunks/disclosure-widget-CdjCdx7t.js +0 -129
- package/dist/build/chunks/disclosure-widget-CdjCdx7t.js.map +0 -1
- package/dist/build/chunks/drop-menu.entry-fzV-_VFl.js +0 -70
- package/dist/build/chunks/drop-menu.entry-fzV-_VFl.js.map +0 -1
- package/dist/build/chunks/polyfills-DnrsypYs.js +0 -812
- package/dist/build/chunks/polyfills-DnrsypYs.js.map +0 -1
- package/dist/build/chunks/popover-DzUcnIlX.js +0 -797
- package/dist/build/chunks/popover-DzUcnIlX.js.map +0 -1
- package/dist/build/chunks/popover.entry-BQvyR0d5.js +0 -38
- package/dist/build/chunks/popover.entry-BQvyR0d5.js.map +0 -1
- package/dist/build/chunks/utilities-Ci7wwNeg.js +0 -148
- package/dist/build/chunks/utilities-Ci7wwNeg.js.map +0 -1
- package/dist/build/dialog.entry.js.map +0 -1
- package/dist/build/drop-menu.entry.js.map +0 -1
- package/dist/build/filters.entry.js.map +0 -1
- package/dist/build/global-alert.entry.js.map +0 -1
- package/dist/build/header.entry.js.map +0 -1
- package/dist/build/in-page-navigation.entry.js.map +0 -1
- package/dist/build/navigation.entry.js.map +0 -1
- package/dist/build/popover.entry.js.map +0 -1
- package/dist/build/sticky.entry.js.map +0 -1
- package/dist/build/tabs.entry.js.map +0 -1
- package/dist/build/utility-list.entry.js.map +0 -1
- package/src/Form/FormItem/__snapshots__/FormItem.stories.tsx.snap +0 -110
package/.storybook/decorators.ts
CHANGED
|
@@ -3,5 +3,5 @@ import { Decorator } from "@storybook/html-vite"
|
|
|
3
3
|
|
|
4
4
|
export const Page: Decorator = (story, { globals }) => {
|
|
5
5
|
const { background } = globals
|
|
6
|
-
return `<div class="mx-page ${background}">${story()}</div>`
|
|
6
|
+
return `<div class="mx-page ${background}" data-testid="page">${story()}</div>`
|
|
7
7
|
}
|
package/.storybook/main.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { StorybookConfig } from "@storybook/html-vite"
|
|
|
3
3
|
const config: StorybookConfig = {
|
|
4
4
|
stories: ["../src/**/*.mdx", "../src/**/*.stories.ts", "../mockups/*.stories.ts"],
|
|
5
5
|
staticDirs: ["./public"],
|
|
6
|
-
addons: ["@storybook/addon-a11y", "@storybook/addon-docs"],
|
|
6
|
+
addons: ["@storybook/addon-a11y", "@storybook/addon-docs", "@storybook/addon-vitest"],
|
|
7
7
|
framework: "@storybook/html-vite",
|
|
8
8
|
refs: (config, { configType }) => {
|
|
9
9
|
if (configType === "DEVELOPMENT") {
|
|
@@ -16,6 +16,17 @@ const config: StorybookConfig = {
|
|
|
16
16
|
},
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
|
+
async viteFinal(config) {
|
|
20
|
+
// Merge custom configuration into the default config
|
|
21
|
+
const { mergeConfig } = await import("vite")
|
|
22
|
+
return mergeConfig(config, {
|
|
23
|
+
// Add dependencies to pre-optimization
|
|
24
|
+
cacheDir: "node_modules/.vite-storybook",
|
|
25
|
+
build: {
|
|
26
|
+
cssMinify: "esbuild",
|
|
27
|
+
},
|
|
28
|
+
})
|
|
29
|
+
},
|
|
19
30
|
}
|
|
20
31
|
|
|
21
32
|
export default config
|
package/.storybook/preview.ts
CHANGED
|
@@ -22,11 +22,17 @@
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
& .mx-rich-text p {
|
|
25
|
-
max-inline-size:
|
|
25
|
+
max-inline-size: 76ch;
|
|
26
|
+
|
|
27
|
+
&.mx-text--lede {
|
|
28
|
+
--font-size: var(--font-size-l);
|
|
29
|
+
|
|
30
|
+
max-inline-size: 50ch;
|
|
31
|
+
}
|
|
26
32
|
}
|
|
27
33
|
|
|
28
34
|
& .mx-background--box {
|
|
29
|
-
|
|
35
|
+
--line-width: 2px;
|
|
30
36
|
}
|
|
31
37
|
|
|
32
38
|
&
|
|
@@ -68,22 +74,20 @@
|
|
|
68
74
|
--font-size: var(--font-size-xl);
|
|
69
75
|
--container-max-width-narrow: 40ch;
|
|
70
76
|
}
|
|
77
|
+
|
|
78
|
+
&[class*="mx-background--"] .mx-hero-banner__aside-image {
|
|
79
|
+
margin-bottom: -2rem;
|
|
80
|
+
}
|
|
71
81
|
}
|
|
72
82
|
|
|
73
83
|
& .mx-footer__inner {
|
|
74
84
|
& .mx-footer__aoc {
|
|
75
|
-
|
|
76
|
-
max-inline-size: 101ch;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
& .mx-social-links {
|
|
80
|
-
grid-area: links;
|
|
81
|
-
justify-content: end;
|
|
82
|
-
}
|
|
85
|
+
border-block-start: 2px solid currentcolor;
|
|
83
86
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
& p {
|
|
88
|
+
max-inline-size: 96ch;
|
|
89
|
+
text-wrap: balance;
|
|
90
|
+
}
|
|
87
91
|
}
|
|
88
92
|
}
|
|
89
93
|
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { beforeAll, afterEach, expect } from "vitest"
|
|
2
|
+
import { page } from "vitest/browser"
|
|
3
|
+
import { setProjectAnnotations } from "@storybook/html-vite"
|
|
4
|
+
import * as a11yAddonAnnotations from "@storybook/addon-a11y/preview"
|
|
5
|
+
import * as previewAnnotations from "./preview"
|
|
6
|
+
|
|
7
|
+
// This is an important step to apply the right configuration when testing your stories.
|
|
8
|
+
// More info at: https://storybook.js.org/docs/api/portable-stories/portable-stories-vitest#setprojectannotations
|
|
9
|
+
const annotations = setProjectAnnotations([previewAnnotations, a11yAddonAnnotations])
|
|
10
|
+
|
|
11
|
+
beforeAll(annotations.beforeAll)
|
|
12
|
+
|
|
13
|
+
afterEach(async () => {
|
|
14
|
+
await new Promise(resolve => window.requestIdleCallback(resolve))
|
|
15
|
+
const pageEl = page.getByTestId("page")?.element()
|
|
16
|
+
if (!pageEl) return
|
|
17
|
+
|
|
18
|
+
// Find all elements with aria attributes or react-aria names
|
|
19
|
+
const selector =
|
|
20
|
+
'[aria-controls],[aria-labelledby],[aria-owns],[aria-describedby],[name^="react-aria"]'
|
|
21
|
+
const els = Array.from(pageEl.querySelectorAll(selector))
|
|
22
|
+
|
|
23
|
+
const attributes = ["aria-controls", "aria-labelledby", "aria-describedby", "aria-owns", "name"]
|
|
24
|
+
|
|
25
|
+
// Collect the original IDs
|
|
26
|
+
const ids: string[] = []
|
|
27
|
+
|
|
28
|
+
// Replace attribute values with unique-${ix}
|
|
29
|
+
attributes.forEach(attr => {
|
|
30
|
+
els.forEach((el, ix) => {
|
|
31
|
+
if (!el.hasAttribute(attr)) return
|
|
32
|
+
|
|
33
|
+
const originalValue = el.getAttribute(attr)
|
|
34
|
+
if (originalValue && !ids.includes(originalValue)) {
|
|
35
|
+
ids.push(originalValue)
|
|
36
|
+
}
|
|
37
|
+
el.setAttribute(attr, `unique-${ix}`)
|
|
38
|
+
})
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
// Replace the actual id attributes that match collected IDs
|
|
42
|
+
if (ids.length) {
|
|
43
|
+
ids.forEach((id, ix) => {
|
|
44
|
+
const idElements = pageEl.querySelectorAll(`[id="${id}"]`)
|
|
45
|
+
idElements.forEach(el => {
|
|
46
|
+
el.setAttribute("id", `unique-${ix}`)
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const element = pageEl.innerHTML
|
|
52
|
+
expect(element).toMatchSnapshot()
|
|
53
|
+
})
|
package/dist/build/accordion.css
CHANGED
|
@@ -1,113 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Accordion
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
@layer design-system.defaults {
|
|
6
|
-
details summary {
|
|
7
|
-
list-style-type: none;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
:is(details summary):is(::-webkit-details-marker,::marker) {
|
|
11
|
-
display: none;
|
|
12
|
-
content: "";
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
:is(mx-accordion, mx-accordiondiv, mx-accordionmobile) {
|
|
16
|
-
display: block;
|
|
17
|
-
}
|
|
18
|
-
:where(:is(div.mx-accordion,mx-accordiondiv)) .mx-accordion__toggle {
|
|
19
|
-
-webkit-appearance: none;
|
|
20
|
-
-moz-appearance: none;
|
|
21
|
-
appearance: none;
|
|
22
|
-
color: inherit;
|
|
23
|
-
font-size: inherit;
|
|
24
|
-
background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;
|
|
25
|
-
background: initial;
|
|
26
|
-
border: medium none currentcolor;
|
|
27
|
-
border: initial;
|
|
28
|
-
padding: 0;
|
|
29
|
-
padding: initial;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
@layer design-system.components {
|
|
34
|
-
.mx-accordion__title {
|
|
35
|
-
margin-block-end: var(--spacing-m);
|
|
36
|
-
display: flex;
|
|
37
|
-
flex-flow: row wrap;
|
|
38
|
-
gap: var(--spacing-s);
|
|
39
|
-
align-items: center;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.mx-accordions__toggle-all {
|
|
43
|
-
margin-inline-start: auto;
|
|
44
|
-
}
|
|
45
|
-
.mx-accordion .mx-accordion__toggle {
|
|
46
|
-
cursor: pointer;
|
|
47
|
-
inline-size: 100%;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.mx-accordion:is( > h2, > h3, > h4, > h5, > h6) {
|
|
51
|
-
all: unset;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.mx-accordion > .mx-accordion__content {
|
|
55
|
-
display: none;
|
|
56
|
-
opacity: 0;
|
|
57
|
-
overflow: hidden;
|
|
58
|
-
}
|
|
59
|
-
:is(.mx-accordion:is([open],[data-open="true"]) > .mx-accordion__toggle) .mx-icon--chevron-down {
|
|
60
|
-
transform: rotate(180deg);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.mx-accordion:is([open],[data-open="true"]) > .mx-accordion__content {
|
|
64
|
-
opacity: 1;
|
|
65
|
-
display: block;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
@starting-style {
|
|
69
|
-
|
|
70
|
-
.mx-accordion:is([open],[data-open="true"]) > .mx-accordion__content {
|
|
71
|
-
opacity: 0;
|
|
72
|
-
display: block;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
.mx-accordion--divided {
|
|
77
|
-
border-block-end: 1px solid
|
|
78
|
-
var(--line-colour, var(--colour-border));
|
|
79
|
-
border-block-end: var(--line-width, 1px) solid
|
|
80
|
-
var(--line-colour, var(--colour-border));
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.mx-accordion--divided .mx-accordion__toggle {
|
|
84
|
-
padding-block: var(--vertical-padding, var(--spacing-xxs));
|
|
85
|
-
padding-inline: 0;
|
|
86
|
-
padding-inline: var(--horizontal-padding, 0);
|
|
87
|
-
display: flex;
|
|
88
|
-
justify-content: space-between;
|
|
89
|
-
align-items: center;
|
|
90
|
-
gap: var(--spacing-xxs);
|
|
91
|
-
}
|
|
92
|
-
.mx-accordion--divided:is([open],[data-open="true"]) > .mx-accordion__content {
|
|
93
|
-
border-block-start: 1px solid
|
|
94
|
-
var(--line-colour, var(--colour-border));
|
|
95
|
-
border-block-start: var(--line-width, 1px) solid
|
|
96
|
-
var(--line-colour, var(--colour-border));
|
|
97
|
-
padding-block: var(--vertical-padding, var(--spacing-xxs));
|
|
98
|
-
padding-inline: 0;
|
|
99
|
-
padding-inline: var(--horizontal-padding, 0);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Print stylesheet
|
|
105
|
-
*/
|
|
106
|
-
|
|
107
|
-
@media print {
|
|
108
|
-
.mx-accordion .mx-accordion__content {
|
|
109
|
-
display: block !important;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY29yZGlvbi5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0VBRUU7O0FBRUY7SUFFSTtNQUNFLHFCQUFxQjtJQU12Qjs7TUFKRTtRQUNFLGFBQWE7UUFDYixXQUFXO01BQ2I7O0VBSUo7SUFDRSxjQUFjO0VBQ2hCO0lBR0U7TUFDRSx3QkFBZ0I7U0FBaEIscUJBQWdCO2NBQWhCLGdCQUFnQjtNQUNoQixjQUFjO01BQ2Qsa0JBQWtCO01BQ2xCLGlGQUFtQjtNQUFuQixtQkFBbUI7TUFDbkIsZ0NBQWU7TUFBZixlQUFlO01BQ2YsVUFBZ0I7TUFBaEIsZ0JBQWdCO0lBQ2xCO0FBRUo7O0FBRUE7RUFDRTtJQUNFLGtDQUFrQztJQUNsQyxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHFCQUFxQjtJQUNyQixtQkFBbUI7RUFDckI7O0VBRUE7SUFDRSx5QkFBeUI7RUFDM0I7SUFHRTtNQUNFLGVBQWU7TUFDZixpQkFBaUI7SUFDbkI7O0lBRUE7TUFDRSxVQUFVO0lBQ1o7O0lBRUE7TUFDRSxhQUFhO01BQ2IsVUFBVTtNQUNWLGdCQUFnQjtJQUNsQjtRQUlJO1VBQ0UseUJBQXlCO1FBQzNCOztNQUdGO1FBQ0UsVUFBVTtRQUNWLGNBQWM7TUFNaEI7O1FBSkU7O01BSkY7VUFLSSxVQUFVO1VBQ1YsY0FBYztNQUVsQjtRQURFOztFQUtOO0lBQ0U7OENBQzBDO0lBRDFDOzhDQUMwQztFQW1CNUM7O0lBakJFO01BQ0UsMERBQTBEO01BQzFELGlCQUE0QztNQUE1Qyw0Q0FBNEM7TUFDNUMsYUFBYTtNQUNiLDhCQUE4QjtNQUM5QixtQkFBbUI7TUFDbkIsdUJBQXVCO0lBQ3pCO01BR0U7UUFDRTtrREFDMEM7UUFEMUM7a0RBQzBDO1FBQzFDLDBEQUEwRDtRQUMxRCxpQkFBNEM7UUFBNUMsNENBQTRDO01BQzlDO0FBR047O0FBRUE7O0VBRUU7O0FBRUY7SUFFSTtNQUNFLHlCQUF5QjtJQUMzQjtBQUVKIiwiZmlsZSI6ImFjY29yZGlvbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFjY29yZGlvblxuICovXG5cbkBsYXllciBkZXNpZ24tc3lzdGVtLmRlZmF1bHRzIHtcbiAgZGV0YWlscyB7XG4gICAgJiBzdW1tYXJ5IHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAgICAgJjppcyg6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIsIDo6bWFya2VyKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgOmlzKG14LWFjY29yZGlvbiwgbXgtYWNjb3JkaW9uZGl2LCBteC1hY2NvcmRpb25tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIDp3aGVyZSg6aXMoZGl2Lm14LWFjY29yZGlvbiwgbXgtYWNjb3JkaW9uZGl2KSkge1xuICAgICYgLm14LWFjY29yZGlvbl9fdG9nZ2xlIHtcbiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgIGJhY2tncm91bmQ6IGluaXRpYWw7XG4gICAgICBib3JkZXI6IGluaXRpYWw7XG4gICAgICBwYWRkaW5nOiBpbml0aWFsO1xuICAgIH1cbiAgfVxufVxuXG5AbGF5ZXIgZGVzaWduLXN5c3RlbS5jb21wb25lbnRzIHtcbiAgLm14LWFjY29yZGlvbl9fdGl0bGUge1xuICAgIG1hcmdpbi1ibG9jay1lbmQ6IHZhcigtLXNwYWNpbmctbSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy1zKTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgLm14LWFjY29yZGlvbnNfX3RvZ2dsZS1hbGwge1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gIH1cblxuICAubXgtYWNjb3JkaW9uIHtcbiAgICAmIC5teC1hY2NvcmRpb25fX3RvZ2dsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBpbmxpbmUtc2l6ZTogMTAwJTtcbiAgICB9XG5cbiAgICAmOmlzKD4gaDIsID4gaDMsID4gaDQsID4gaDUsID4gaDYpIHtcbiAgICAgIGFsbDogdW5zZXQ7XG4gICAgfVxuXG4gICAgJiA+IC5teC1hY2NvcmRpb25fX2NvbnRlbnQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgICY6aXMoW29wZW5dLCBbZGF0YS1vcGVuPVwidHJ1ZVwiXSkge1xuICAgICAgJiA+IC5teC1hY2NvcmRpb25fX3RvZ2dsZSB7XG4gICAgICAgICYgLm14LWljb24tLWNoZXZyb24tZG93biB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmID4gLm14LWFjY29yZGlvbl9fY29udGVudCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIEBzdGFydGluZy1zdHlsZSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5teC1hY2NvcmRpb24tLWRpdmlkZWQge1xuICAgIGJvcmRlci1ibG9jay1lbmQ6IHZhcigtLWxpbmUtd2lkdGgsIDFweCkgc29saWRcbiAgICAgIHZhcigtLWxpbmUtY29sb3VyLCB2YXIoLS1jb2xvdXItYm9yZGVyKSk7XG5cbiAgICAmIC5teC1hY2NvcmRpb25fX3RvZ2dsZSB7XG4gICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS12ZXJ0aWNhbC1wYWRkaW5nLCB2YXIoLS1zcGFjaW5nLXh4cykpO1xuICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLWhvcml6b250YWwtcGFkZGluZywgMCk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogdmFyKC0tc3BhY2luZy14eHMpO1xuICAgIH1cblxuICAgICY6aXMoW29wZW5dLCBbZGF0YS1vcGVuPVwidHJ1ZVwiXSkge1xuICAgICAgJiA+IC5teC1hY2NvcmRpb25fX2NvbnRlbnQge1xuICAgICAgICBib3JkZXItYmxvY2stc3RhcnQ6IHZhcigtLWxpbmUtd2lkdGgsIDFweCkgc29saWRcbiAgICAgICAgICB2YXIoLS1saW5lLWNvbG91ciwgdmFyKC0tY29sb3VyLWJvcmRlcikpO1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS12ZXJ0aWNhbC1wYWRkaW5nLCB2YXIoLS1zcGFjaW5nLXh4cykpO1xuICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0taG9yaXpvbnRhbC1wYWRkaW5nLCAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBQcmludCBzdHlsZXNoZWV0XG4gKi9cblxuQG1lZGlhIHByaW50IHtcbiAgLm14LWFjY29yZGlvbiB7XG4gICAgJiAubXgtYWNjb3JkaW9uX19jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iXX0= */
|
|
1
|
+
@layer design-system.defaults{details summary{list-style-type:none}:is(details summary):is(::-webkit-details-marker,::marker){display:none;content:""}:is(mx-accordion,mx-accordiondiv,mx-accordionmobile,mx-accordion-group){display:block}:where(:is(div.mx-accordion,mx-accordiondiv)) .mx-accordion__toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:inherit;font-size:inherit;background:transparent none repeat 0 0 / auto auto padding-box border-box scroll;background:initial;border:medium none currentcolor;border:initial;padding:0;padding:initial}mx-accordion-group:not(:defined) .mx-accordions__toggle-all{display:none}}@layer design-system.components{.mx-accordion__title{margin-block-end:var(--spacing-m);display:flex;flex-flow:row wrap;gap:var(--spacing-s);align-items:center}.mx-accordions__toggle-all{margin-inline-start:auto}.mx-accordion .mx-accordion__toggle{cursor:pointer;inline-size:100%}.mx-accordion:is(>h2,>h3,>h4,>h5,>h6){all:unset}.mx-accordion>.mx-accordion__content{display:none;opacity:0;overflow:hidden}:is(.mx-accordion:is([open],[data-open=true])>.mx-accordion__toggle) .mx-icon--chevron-down{transform:rotate(180deg)}.mx-accordion:is([open],[data-open=true])>.mx-accordion__content{opacity:1;display:block}@starting-style{.mx-accordion:is([open],[data-open=true])>.mx-accordion__content{opacity:0;display:block}}.mx-accordion--divided{border-block-end:1px solid var(--line-colour, var(--colour-border));border-block-end:var(--line-width, 1px) solid var(--line-colour, var(--colour-border))}.mx-accordion--divided .mx-accordion__toggle{padding-block:var(--vertical-padding, var(--spacing-xxs));padding-inline:0;padding-inline:var(--horizontal-padding, 0);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-xxs)}.mx-accordion--divided:is([open],[data-open=true])>.mx-accordion__content{border-block-start:1px solid var(--line-colour, var(--colour-border));border-block-start:var(--line-width, 1px) solid var(--line-colour, var(--colour-border));padding-block:var(--vertical-padding, var(--spacing-xxs));padding-inline:0;padding-inline:var(--horizontal-padding, 0)}}@media print{.mx-accordion .mx-accordion__content{display:block!important}}
|
|
@@ -1,72 +1,46 @@
|
|
|
1
|
-
import "./chunks/
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
};
|
|
48
|
-
get accordions() {
|
|
49
|
-
const accordions = this.querySelectorAll("details");
|
|
50
|
-
if (!accordions.length) {
|
|
51
|
-
throw new Error(`${this.localName} must contain at least one <details> element.`);
|
|
52
|
-
}
|
|
53
|
-
return accordions;
|
|
54
|
-
}
|
|
55
|
-
get expandTrigger() {
|
|
56
|
-
const trigger = this.querySelector("button[data-expand]");
|
|
57
|
-
if (!trigger) {
|
|
58
|
-
throw new Error(`${this.localName} must contain a <button data-expand> element.`);
|
|
59
|
-
}
|
|
60
|
-
return trigger;
|
|
61
|
-
}
|
|
62
|
-
get collapseTrigger() {
|
|
63
|
-
const trigger = this.querySelector("button[data-collapse]");
|
|
64
|
-
if (!trigger) {
|
|
65
|
-
throw new Error(`${this.localName} must contain a <button data-collapse> element.`);
|
|
66
|
-
}
|
|
67
|
-
return trigger;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
if (!customElements.get("mx-accordion-group"))
|
|
71
|
-
customElements.define("mx-accordion-group", AccordionGroup);
|
|
72
|
-
//# sourceMappingURL=accordion.entry.js.map
|
|
1
|
+
import "./chunks/utilities-DepaJdUg.js";
|
|
2
|
+
import "./chunks/Accordion-BzKLBuWL.js";
|
|
3
|
+
var AccordionGroup = class extends HTMLElement {
|
|
4
|
+
internals_;
|
|
5
|
+
controller;
|
|
6
|
+
constructor() {
|
|
7
|
+
super(), this.internals_ = this.attachInternals(), this.controller = new AbortController();
|
|
8
|
+
}
|
|
9
|
+
connectedCallback() {
|
|
10
|
+
if (!this.accordions || !this.expandTrigger || !this.collapseTrigger) return;
|
|
11
|
+
this.handleToggle();
|
|
12
|
+
let { signal: e } = this.controller;
|
|
13
|
+
this.addEventListener("click", this.handleClick, { signal: e }), this.accordions.forEach((t) => t.addEventListener("toggle", this.handleToggle, { signal: e }));
|
|
14
|
+
}
|
|
15
|
+
disconnectedCallback() {
|
|
16
|
+
this.controller.abort();
|
|
17
|
+
}
|
|
18
|
+
handleClick = ({ target: e }) => {
|
|
19
|
+
e === this.expandTrigger && this.handleExpand(), e === this.collapseTrigger && this.handleCollapse();
|
|
20
|
+
};
|
|
21
|
+
handleExpand = () => {
|
|
22
|
+
this.accordions.forEach((e) => e.open = !0), this.expandTrigger.disabled = !0, this.collapseTrigger.disabled = !1;
|
|
23
|
+
};
|
|
24
|
+
handleCollapse = () => {
|
|
25
|
+
this.accordions.forEach((e) => e.open = !1), this.expandTrigger.disabled = !1, this.collapseTrigger.disabled = !0;
|
|
26
|
+
};
|
|
27
|
+
handleToggle = () => {
|
|
28
|
+
this.expandTrigger.disabled = [...this.accordions].every((e) => e.open === !0), this.collapseTrigger.disabled = [...this.accordions].every((e) => e.open !== !0);
|
|
29
|
+
};
|
|
30
|
+
get accordions() {
|
|
31
|
+
let e = this.querySelectorAll("details");
|
|
32
|
+
if (!e.length) throw Error(`${this.localName} must contain at least one <details> element.`);
|
|
33
|
+
return e;
|
|
34
|
+
}
|
|
35
|
+
get expandTrigger() {
|
|
36
|
+
let e = this.querySelector("button[data-expand]");
|
|
37
|
+
if (!e) throw Error(`${this.localName} must contain a <button data-expand> element.`);
|
|
38
|
+
return e;
|
|
39
|
+
}
|
|
40
|
+
get collapseTrigger() {
|
|
41
|
+
let e = this.querySelector("button[data-collapse]");
|
|
42
|
+
if (!e) throw Error(`${this.localName} must contain a <button data-collapse> element.`);
|
|
43
|
+
return e;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
customElements.get("mx-accordion-group") || customElements.define("mx-accordion-group", AccordionGroup);
|