@pnx-mixtape/mxds 0.0.23 → 0.0.26
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 +7 -0
- package/.storybook/main.ts +29 -0
- package/.storybook/manager.ts +6 -0
- package/.storybook/preview.ts +61 -0
- package/.storybook/public/demo-logo.svg +4 -0
- package/.storybook/public/design-system.svg +1 -0
- package/.storybook/public/favicon.svg +7 -0
- package/.storybook/public/mixtape-logo.png +0 -0
- package/.storybook/public/mixtape.webp +0 -0
- package/.storybook/public/pinto.png +0 -0
- package/.storybook/public/pinto.svg +1 -0
- package/.storybook/public/xb.png +0 -0
- package/.storybook/public/xb.svg +1 -0
- package/.storybook/src/global.d.ts +16 -0
- package/.storybook/src/theme.ts +8 -0
- package/.storybook/storybook.css +35 -0
- package/.storybook/theme-demo.css +93 -0
- package/.storybook/vitest.setup.ts +17 -0
- package/dist/build/accordion.css +76 -86
- 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-Dwh42fp7.js +42 -0
- package/dist/build/chunks/DropMenu-plGsgySm.js +43 -0
- package/dist/build/chunks/Popover-Bws25suh.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 +91 -123
- 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 +598 -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 +44 -54
- package/src/Atom/Atom.mdx +18 -18
- package/src/Atom/Background/{Backgrounds.stories.ts → Background.stories.ts} +2 -1
- package/src/Atom/Background/__snapshots__/Background.stories.ts.snap +81 -0
- package/src/Atom/Background/_background.css +10 -11
- package/src/Atom/Background/backgrounds.twig +6 -4
- package/src/Atom/Button/Button.stories.ts +0 -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/Button/_buttons-styles.css +18 -6
- package/src/Atom/Button/_buttons.css +1 -1
- 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/_extended-set.css +0 -8
- package/src/Atom/Icon/_icon.css +15 -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/Link/_links.css +1 -0
- 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/Table.stories.ts +0 -1
- 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.ts +0 -2
- package/src/Component/HeroSearch/HeroSearch.stories.tsx +2 -0
- package/src/Component/HeroSearch/__snapshots__/HeroSearch.stories.ts.snap +122 -165
- 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/InPageNavigation.stories.ts +1 -0
- package/src/Component/InPageNavigation/InPageNavigation.stories.tsx +2 -0
- package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.ts.snap +88 -208
- package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.tsx.snap +2 -148
- package/src/Component/InPageNavigation/in-page-navigation.css +5 -0
- 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/Popover.stories.ts +45 -0
- package/src/Component/Popover/__snapshots__/Popover.stories.ts.snap +366 -470
- 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/Steps/steps.css +4 -3
- 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/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/InputDivider.stories.ts +0 -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 +115 -114
- package/src/enums.ts +1 -0
- package/src/tokens.js +26 -19
- 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/Atom/Background/__snapshots__/Backgrounds.stories.ts.snap +0 -176
- package/src/Form/FormItem/__snapshots__/FormItem.stories.tsx.snap +0 -110
|
@@ -3,23 +3,26 @@
|
|
|
3
3
|
baseClass,
|
|
4
4
|
order ? "mx-grid--"~order : null,
|
|
5
5
|
] %}
|
|
6
|
+
{% for modifier in modifiers %}
|
|
7
|
+
{% set classes = classes|merge(["mx-section--"~modifier]) %}
|
|
8
|
+
{% endfor %}
|
|
6
9
|
{% set attributes = (attributes ?? create_attribute()).addClass(classes) %}
|
|
7
|
-
{% set sidebarAttributes = (sidebarAttributes ?? create_attribute()) %}
|
|
8
|
-
{% set contentAttributes = (contentAttributes ?? create_attribute()) %}
|
|
10
|
+
{% set sidebarAttributes = (sidebarAttributes ?? create_attribute()).addClass('mx-vertical-flow-grid') %}
|
|
11
|
+
{% set contentAttributes = (contentAttributes ?? create_attribute()).addClass('js-content', 'mx-vertical-flow-grid') %}
|
|
9
12
|
|
|
10
13
|
{% if sidebarContent is not empty %}
|
|
11
14
|
{% set sidebar %}
|
|
12
|
-
<aside{{ sidebarAttributes }}>
|
|
15
|
+
<aside {{ sidebarAttributes }}>
|
|
13
16
|
{{ sidebarContent }}
|
|
14
17
|
</aside>
|
|
15
18
|
{% endset %}
|
|
16
19
|
{% endif %}
|
|
17
20
|
|
|
18
|
-
<div{{ attributes }}>
|
|
21
|
+
<div {{ attributes }}>
|
|
19
22
|
{% if sidebar is not empty and before %}
|
|
20
23
|
{{ sidebar }}
|
|
21
24
|
{% endif %}
|
|
22
|
-
<section{{ contentAttributes }}>
|
|
25
|
+
<section {{ contentAttributes }}>
|
|
23
26
|
{{ content }}
|
|
24
27
|
</section>
|
|
25
28
|
{% if sidebar is not empty and not before %}
|
|
@@ -12,10 +12,18 @@
|
|
|
12
12
|
display: flex;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
.place
|
|
15
|
+
.place--center {
|
|
16
16
|
place-content: center;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
.place--end {
|
|
20
|
+
place-content: end;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.place--start {
|
|
24
|
+
place-content: start;
|
|
25
|
+
}
|
|
26
|
+
|
|
19
27
|
.align--center {
|
|
20
28
|
margin-inline: auto;
|
|
21
29
|
}
|
package/src/constants.css
CHANGED
|
@@ -7,122 +7,123 @@
|
|
|
7
7
|
@property --scheme {
|
|
8
8
|
syntax: "light | dark";
|
|
9
9
|
inherits: true;
|
|
10
|
-
initial-value: token("colour.scheme");
|
|
10
|
+
initial-value: token("colour.main.scheme");
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
--_hue-primary: token("colour.primary");
|
|
15
|
-
--_hue-accent: token("colour.accent");
|
|
16
|
-
--_hue-info: token("colour.info");
|
|
17
|
-
--_hue-error: token("colour.error");
|
|
18
|
-
--_hue-warning: token("colour.warning");
|
|
19
|
-
--_hue-success: token("colour.success");
|
|
20
|
-
--_hue-outline: token("utility.outline.hue");
|
|
21
|
-
|
|
22
|
-
/* Brand colors */
|
|
23
|
-
--colour-primary: oklch(50% 0.3 var(--_hue-primary));
|
|
24
|
-
--colour-primary-light: color-mix(in oklch, var(--colour-primary), white 90%);
|
|
25
|
-
--colour-accent: oklch(50% 0.3 var(--_hue-accent));
|
|
26
|
-
--colour-accent-light: color-mix(in oklch, var(--colour-accent), white 90%);
|
|
27
|
-
|
|
28
|
-
/* System colours */
|
|
29
|
-
--color-scheme: token("colour.scheme");
|
|
30
|
-
|
|
31
|
-
color-scheme: var(--color-scheme);
|
|
32
|
-
|
|
33
|
-
--colour-background: light-dark(token("colour.main.bg"), token("colour.reverse.bg"));
|
|
34
|
-
--colour-background-alt: light-dark(token("colour.main.bgAlt"), token("colour.reverse.bgAlt"));
|
|
35
|
-
--colour-foreground: light-dark(token("colour.main.fg"), token("colour.reverse.fg"));
|
|
36
|
-
--colour-foreground-alt: light-dark(token("colour.main.fgAlt"), token("colour.reverse.fgAlt"));
|
|
37
|
-
--colour-border: light-dark(token("colour.main.border"), token("colour.reverse.border"));
|
|
38
|
-
--colour-link: light-dark(var(--colour-primary), var(--colour-primary-light));
|
|
39
|
-
|
|
40
|
-
/* Reverse colors */
|
|
41
|
-
--colour-foreground-reverse: light-dark(token("colour.reverse.fg"), token("colour.main.fg"));
|
|
42
|
-
--colour-background-reverse: light-dark(token("colour.reverse.bg"), token("colour.main.bg"));
|
|
43
|
-
|
|
44
|
-
/* State colours */
|
|
45
|
-
--colour-error: oklch(45% 0.3 var(--_hue-error));
|
|
46
|
-
--colour-success: oklch(50% 0.3 var(--_hue-success));
|
|
47
|
-
--colour-warning: oklch(55% 0.3 var(--_hue-warning));
|
|
48
|
-
--colour-info: oklch(50% 0.3 var(--_hue-info));
|
|
49
|
-
|
|
50
|
-
/* Typography */
|
|
51
|
-
--font-family: token("font.family");
|
|
52
|
-
--type-ratio: token("font.size.ratio");
|
|
53
|
-
--type-ratio-small: token("font.size.ratioSmall");
|
|
54
|
-
--base-font-size: max(1rem, token("font.size.basePx"));
|
|
55
|
-
--font-size: var(--base-font-size);
|
|
56
|
-
--font-size-s: calc(var(--base-font-size) / var(--type-ratio-small));
|
|
57
|
-
--font-size-xs: calc(var(--font-size-s) / var(--type-ratio-small));
|
|
58
|
-
--font-size-sm: calc(var(--base-font-size) * var(--type-ratio-small));
|
|
59
|
-
--font-size-m: calc(var(--base-font-size) * var(--type-ratio));
|
|
60
|
-
--font-size-l: calc(var(--font-size-m) * var(--type-ratio));
|
|
61
|
-
--font-size-xl: calc(var(--font-size-l) * var(--type-ratio));
|
|
62
|
-
--font-size-xxl: calc(var(--font-size-xl) * var(--type-ratio));
|
|
63
|
-
--font-size-xxxl: calc(var(--font-size-xxl) * var(--type-ratio));
|
|
64
|
-
--font-size-diff: token("font.size.diff");
|
|
65
|
-
|
|
66
|
-
--line-height: token("font.lineHeight.main");
|
|
67
|
-
--line-height-h: token("font.lineHeight.heading");
|
|
68
|
-
--line-height-ui: token("font.lineHeight.ui");
|
|
69
|
-
|
|
70
|
-
--font-weight-normal: token("font.weight.main");
|
|
71
|
-
--font-weight-bold: token("font.weight.bold");
|
|
72
|
-
|
|
73
|
-
/* Spacing */
|
|
74
|
-
--spacing-xxxxs: token("size.spacing.xxxxs");
|
|
75
|
-
--spacing-xxxs: token("size.spacing.xxxs");
|
|
76
|
-
--spacing-xxs: token("size.spacing.xxs");
|
|
77
|
-
--spacing-xs: token("size.spacing.xs");
|
|
78
|
-
--spacing-s: token("size.spacing.s");
|
|
79
|
-
--spacing-m: token("size.spacing.m");
|
|
80
|
-
--spacing-l: token("size.spacing.l");
|
|
81
|
-
--spacing-xl: token("size.spacing.xl");
|
|
82
|
-
--spacing-xxl: token("size.spacing.xxl");
|
|
83
|
-
--spacing-xxxl: token("size.spacing.xxxl");
|
|
84
|
-
--spacing-xxxxl: token("size.spacing.xxxl");
|
|
85
|
-
--spacing-ul: token("size.spacing.ul");
|
|
86
|
-
--spacing-uul: token("size.spacing.uul");
|
|
87
|
-
--spacing-uuul: token("size.spacing.uuul");
|
|
88
|
-
|
|
89
|
-
--outline-width: token("utility.outline.width");
|
|
90
|
-
--outline-style: token("utility.outline.style");
|
|
91
|
-
--_colour-outline: oklch(50% 0.3 var(--_hue-outline));
|
|
92
|
-
--outline-color: light-dark(
|
|
93
|
-
var(--_colour-outline),
|
|
94
|
-
color-mix(in oklch, var(--_colour-outline), white 90%)
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
/* Layout */
|
|
98
|
-
--container-max-width-narrow: token("size.container.narrow");
|
|
99
|
-
--container-max-width: token("size.container.aligned");
|
|
100
|
-
--gutter-min: token("size.container.gutterMin");
|
|
101
|
-
--gutter-max: token("size.container.gutterMax");
|
|
102
|
-
--gap-s: token("size.gap.s");
|
|
103
|
-
--gap: token("size.gap.m");
|
|
104
|
-
--gap-l: token("size.gap.l");
|
|
105
|
-
--gap-xl: token("size.gap.xl");
|
|
106
|
-
--breakpoint-xs: token("breakpoint.xs");
|
|
107
|
-
--breakpoint-s: token("breakpoint.s");
|
|
108
|
-
--breakpoint-m: token("breakpoint.m");
|
|
109
|
-
--breakpoint-l: token("breakpoint.l");
|
|
110
|
-
--breakpoint-xl: token("breakpoint.xl");
|
|
111
|
-
|
|
112
|
-
/* Utility */
|
|
113
|
-
--shadow-color: token("utility.shadow.colour");
|
|
114
|
-
--shadow-size: token("utility.shadow.size");
|
|
115
|
-
--shadow-shape: 0 0 var(--shadow-size);
|
|
116
|
-
--box-shadow: var(--shadow-shape) var(--shadow-color);
|
|
117
|
-
--border-radius: token("utility.radius.m");
|
|
118
|
-
--border-radius-l: token("utility.radius.l");
|
|
119
|
-
--border-radius-round: token("utility.radius.round");
|
|
120
|
-
--ratio: token("utility.ratio");
|
|
121
|
-
--ease: cubic-bezier(0.25, 0, 0.3, 1);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
@media (--medium-down) {
|
|
13
|
+
@layer design-system.defaults {
|
|
125
14
|
:root {
|
|
126
|
-
|
|
15
|
+
/* Brand colors */
|
|
16
|
+
--colour-primary: token("colour.primary.colour");
|
|
17
|
+
--colour-primary-light: color-mix(in oklch, var(--colour-primary), white 90%);
|
|
18
|
+
--colour-primary-lighter: color-mix(in oklch, var(--colour-primary), white 20%);
|
|
19
|
+
--colour-primary-darker: color-mix(in oklch, var(--colour-primary), black 10%);
|
|
20
|
+
--colour-primary-scheme: token("colour.primary.scheme");
|
|
21
|
+
--colour-accent: token("colour.accent.colour");
|
|
22
|
+
--colour-accent-light: color-mix(in oklch, var(--colour-accent), white 90%);
|
|
23
|
+
--colour-accent-lighter: color-mix(in oklch, var(--colour-accent), white 20%);
|
|
24
|
+
--colour-accent-darker: color-mix(in oklch, var(--colour-accent), black 10%);
|
|
25
|
+
--colour-accent-scheme: token("colour.accent.scheme");
|
|
26
|
+
|
|
27
|
+
/* System colours */
|
|
28
|
+
--colour-scheme: token("colour.main.scheme");
|
|
29
|
+
|
|
30
|
+
color-scheme: var(--scheme);
|
|
31
|
+
|
|
32
|
+
--colour-background: light-dark(token("colour.main.bg"), token("colour.reverse.bg"));
|
|
33
|
+
--colour-background-alt: light-dark(token("colour.main.bgAlt"), token("colour.reverse.bgAlt"));
|
|
34
|
+
--colour-foreground: light-dark(token("colour.main.fg"), token("colour.reverse.fg"));
|
|
35
|
+
--colour-foreground-alt: light-dark(token("colour.main.fgAlt"), token("colour.reverse.fgAlt"));
|
|
36
|
+
--colour-border: light-dark(token("colour.main.border"), token("colour.reverse.border"));
|
|
37
|
+
--colour-link: light-dark(var(--colour-primary), var(--colour-primary-light));
|
|
38
|
+
|
|
39
|
+
/* Reverse colors */
|
|
40
|
+
--colour-foreground-reverse: light-dark(token("colour.reverse.fg"), token("colour.main.fg"));
|
|
41
|
+
--colour-background-reverse: light-dark(token("colour.reverse.bg"), token("colour.main.bg"));
|
|
42
|
+
--colour-reverse-scheme: token("colour.reverse.scheme");
|
|
43
|
+
|
|
44
|
+
/* State colours */
|
|
45
|
+
--colour-error: token("colour.error");
|
|
46
|
+
--colour-success: token("colour.success");
|
|
47
|
+
--colour-warning: token("colour.warning");
|
|
48
|
+
--colour-info: token("colour.info");
|
|
49
|
+
|
|
50
|
+
/* Typography */
|
|
51
|
+
--font-family: token("font.family");
|
|
52
|
+
--type-ratio: token("font.size.ratio");
|
|
53
|
+
--type-ratio-small: token("font.size.ratioSmall");
|
|
54
|
+
--base-font-size: max(1rem, token("font.size.basePx"));
|
|
55
|
+
--font-size: var(--base-font-size);
|
|
56
|
+
--font-size-s: calc(var(--base-font-size) / var(--type-ratio-small));
|
|
57
|
+
--font-size-xs: calc(var(--font-size-s) / var(--type-ratio-small));
|
|
58
|
+
--font-size-sm: calc(var(--base-font-size) * var(--type-ratio-small));
|
|
59
|
+
--font-size-m: calc(var(--base-font-size) * var(--type-ratio));
|
|
60
|
+
--font-size-l: calc(var(--font-size-m) * var(--type-ratio));
|
|
61
|
+
--font-size-xl: calc(var(--font-size-l) * var(--type-ratio));
|
|
62
|
+
--font-size-xxl: calc(var(--font-size-xl) * var(--type-ratio));
|
|
63
|
+
--font-size-xxxl: calc(var(--font-size-xxl) * var(--type-ratio));
|
|
64
|
+
--font-size-diff: token("font.size.diff");
|
|
65
|
+
|
|
66
|
+
--line-height: token("font.lineHeight.main");
|
|
67
|
+
--line-height-h: token("font.lineHeight.heading");
|
|
68
|
+
--line-height-ui: token("font.lineHeight.ui");
|
|
69
|
+
|
|
70
|
+
--font-weight-normal: token("font.weight.main");
|
|
71
|
+
--font-weight-bold: token("font.weight.bold");
|
|
72
|
+
|
|
73
|
+
/* Spacing */
|
|
74
|
+
--spacing-xxxxs: token("size.spacing.xxxxs");
|
|
75
|
+
--spacing-xxxs: token("size.spacing.xxxs");
|
|
76
|
+
--spacing-xxs: token("size.spacing.xxs");
|
|
77
|
+
--spacing-xs: token("size.spacing.xs");
|
|
78
|
+
--spacing-s: token("size.spacing.s");
|
|
79
|
+
--spacing-m: token("size.spacing.m");
|
|
80
|
+
--spacing-l: token("size.spacing.l");
|
|
81
|
+
--spacing-xl: token("size.spacing.xl");
|
|
82
|
+
--spacing-xxl: token("size.spacing.xxl");
|
|
83
|
+
--spacing-xxxl: token("size.spacing.xxxl");
|
|
84
|
+
--spacing-xxxxl: token("size.spacing.xxxl");
|
|
85
|
+
--spacing-ul: token("size.spacing.ul");
|
|
86
|
+
--spacing-uul: token("size.spacing.uul");
|
|
87
|
+
--spacing-uuul: token("size.spacing.uuul");
|
|
88
|
+
|
|
89
|
+
--outline-size: token("utility.outline.width");
|
|
90
|
+
--outline-style: token("utility.outline.style");
|
|
91
|
+
--_colour-outline: token("utility.outline.colour");
|
|
92
|
+
--outline-color: light-dark(
|
|
93
|
+
var(--_colour-outline),
|
|
94
|
+
color-mix(in oklch, var(--_colour-outline), white 90%)
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
/* Layout */
|
|
98
|
+
--container-max-width-narrow: token("size.container.narrow");
|
|
99
|
+
--container-max-width: token("size.container.aligned");
|
|
100
|
+
--gutter-min: token("size.container.gutterMin");
|
|
101
|
+
--gutter-max: token("size.container.gutterMax");
|
|
102
|
+
--gap-s: token("size.gap.s");
|
|
103
|
+
--gap: token("size.gap.m");
|
|
104
|
+
--gap-l: token("size.gap.l");
|
|
105
|
+
--gap-xl: token("size.gap.xl");
|
|
106
|
+
--breakpoint-xs: token("breakpoint.xs");
|
|
107
|
+
--breakpoint-s: token("breakpoint.s");
|
|
108
|
+
--breakpoint-m: token("breakpoint.m");
|
|
109
|
+
--breakpoint-l: token("breakpoint.l");
|
|
110
|
+
--breakpoint-xl: token("breakpoint.xl");
|
|
111
|
+
|
|
112
|
+
/* Utility */
|
|
113
|
+
--shadow-color: token("utility.shadow.colour");
|
|
114
|
+
--shadow-size: token("utility.shadow.size");
|
|
115
|
+
--shadow-shape: 0 0 var(--shadow-size);
|
|
116
|
+
--box-shadow: var(--shadow-shape) var(--shadow-color);
|
|
117
|
+
--border-radius: token("utility.radius.m");
|
|
118
|
+
--border-radius-l: token("utility.radius.l");
|
|
119
|
+
--border-radius-round: token("utility.radius.round");
|
|
120
|
+
--ratio: token("utility.ratio");
|
|
121
|
+
--ease: cubic-bezier(0.25, 0, 0.3, 1);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@media (--medium-down) {
|
|
125
|
+
:root {
|
|
126
|
+
--section-xl: var(--spacing-xxl);
|
|
127
|
+
}
|
|
127
128
|
}
|
|
128
129
|
}
|
package/src/enums.ts
CHANGED
package/src/tokens.js
CHANGED
|
@@ -29,27 +29,34 @@ export default {
|
|
|
29
29
|
dropMenu: "420px",
|
|
30
30
|
},
|
|
31
31
|
colour: {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
primary: {
|
|
33
|
+
colour: "hsl(223 100% 50%)",
|
|
34
|
+
scheme: "dark",
|
|
35
|
+
},
|
|
36
|
+
accent: {
|
|
37
|
+
colour: "hsl(60, 94%, 68%)",
|
|
38
|
+
scheme: "light",
|
|
39
|
+
},
|
|
35
40
|
main: {
|
|
36
|
-
fg: "
|
|
37
|
-
bg: "
|
|
38
|
-
fgAlt: "
|
|
39
|
-
bgAlt: "
|
|
40
|
-
border: "
|
|
41
|
+
fg: "hsl(60 30% 6%)",
|
|
42
|
+
bg: "hsl(60 0% 100%)",
|
|
43
|
+
fgAlt: "hsl(60 30% 20%)",
|
|
44
|
+
bgAlt: "hsl(60 30% 95%)",
|
|
45
|
+
border: "hsl(60 5% 85%)",
|
|
46
|
+
scheme: "light",
|
|
41
47
|
},
|
|
42
48
|
reverse: {
|
|
43
|
-
fg: "
|
|
44
|
-
bg: "
|
|
45
|
-
fgAlt: "
|
|
46
|
-
bgAlt: "
|
|
47
|
-
border: "
|
|
49
|
+
fg: "hsl(60 0% 100%)",
|
|
50
|
+
bg: "hsl(60 30% 6%)",
|
|
51
|
+
fgAlt: "hsl(60 5% 60%)",
|
|
52
|
+
bgAlt: "hsl(60 0% 5%)",
|
|
53
|
+
border: "hsl(60 0% 20%)",
|
|
54
|
+
scheme: "dark",
|
|
48
55
|
},
|
|
49
|
-
info: "
|
|
50
|
-
warning: "
|
|
51
|
-
success: "
|
|
52
|
-
error: "
|
|
56
|
+
info: "hsl(223 100% 50%)",
|
|
57
|
+
warning: "hsl(35 100% 32%)",
|
|
58
|
+
success: "hsl(120 100% 26%)",
|
|
59
|
+
error: "hsl(348 100% 33%)",
|
|
53
60
|
},
|
|
54
61
|
font: {
|
|
55
62
|
family: "system-ui, sans-serif",
|
|
@@ -105,7 +112,7 @@ export default {
|
|
|
105
112
|
outline: {
|
|
106
113
|
width: "2px",
|
|
107
114
|
style: "solid",
|
|
108
|
-
|
|
115
|
+
colour: "hsl(223 100% 50%)",
|
|
109
116
|
},
|
|
110
117
|
radius: {
|
|
111
118
|
m: "4px",
|
|
@@ -113,7 +120,7 @@ export default {
|
|
|
113
120
|
round: "50%",
|
|
114
121
|
},
|
|
115
122
|
shadow: {
|
|
116
|
-
colour: "
|
|
123
|
+
colour: "hsl(0 0% 13% / 15%)",
|
|
117
124
|
size: global.size.xs,
|
|
118
125
|
},
|
|
119
126
|
ratio: "16 / 9",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.entry.js","sources":["../../src/Component/Accordion/Elements/AccordionGroup.ts"],"sourcesContent":["/**\n * Accordion Group\n * @file Support opening and closing all.\n */\n\nexport default class AccordionGroup extends HTMLElement {\n internals_: ElementInternals\n controller: AbortController\n\n constructor() {\n super()\n this.internals_ = this.attachInternals()\n this.controller = new AbortController()\n }\n\n connectedCallback(): void {\n if (!this.accordions || !this.expandTrigger || !this.collapseTrigger) return\n this.handleToggle()\n const { signal }: AbortController = this.controller\n this.addEventListener(\"click\", this.handleClick, {\n signal,\n })\n this.accordions.forEach(details =>\n details.addEventListener(\"toggle\", this.handleToggle, {\n signal,\n }),\n )\n }\n\n disconnectedCallback(): void {\n this.controller.abort()\n }\n\n handleClick = ({ target }) => {\n if (target === this.expandTrigger) {\n this.handleExpand()\n }\n if (target === this.collapseTrigger) {\n this.handleCollapse()\n }\n }\n\n handleExpand = () => {\n this.accordions.forEach(detail => (detail.open = true))\n this.expandTrigger.disabled = true\n this.collapseTrigger.disabled = false\n }\n\n handleCollapse = () => {\n this.accordions.forEach(detail => (detail.open = false))\n this.expandTrigger.disabled = false\n this.collapseTrigger.disabled = true\n }\n\n handleToggle = () => {\n this.expandTrigger.disabled = [...this.accordions].every(details => details.open === true)\n this.collapseTrigger.disabled = [...this.accordions].every(details => details.open !== true)\n }\n\n get accordions(): NodeListOf<HTMLDetailsElement> | null {\n const accordions: NodeListOf<HTMLDetailsElement> | null = this.querySelectorAll(\"details\")\n if (!accordions.length) {\n throw new Error(`${this.localName} must contain at least one <details> element.`)\n }\n return accordions\n }\n\n get expandTrigger(): HTMLButtonElement | null {\n const trigger: HTMLButtonElement | null = this.querySelector(\"button[data-expand]\")\n if (!trigger) {\n throw new Error(`${this.localName} must contain a <button data-expand> element.`)\n }\n return trigger\n }\n\n get collapseTrigger(): HTMLButtonElement | null {\n const trigger: HTMLButtonElement | null = this.querySelector(\"button[data-collapse]\")\n if (!trigger) {\n throw new Error(`${this.localName} must contain a <button data-collapse> element.`)\n }\n return trigger\n }\n}\n\nif (!customElements.get(\"mx-accordion-group\"))\n customElements.define(\"mx-accordion-group\", AccordionGroup)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"mx-accordion-group\": AccordionGroup\n }\n}\n"],"names":[],"mappings":";AAKA,MAAqB,uBAAuB,YAAY;AAAA,EACtD;AAAA,EACA;AAAA,EAEA,cAAc;AACZ,UAAA;AACA,SAAK,aAAa,KAAK,gBAAA;AACvB,SAAK,aAAa,IAAI,gBAAA;AAAA,EACxB;AAAA,EAEA,oBAA0B;AACxB,QAAI,CAAC,KAAK,cAAc,CAAC,KAAK,iBAAiB,CAAC,KAAK,gBAAiB;AACtE,SAAK,aAAA;AACL,UAAM,EAAE,WAA4B,KAAK;AACzC,SAAK,iBAAiB,SAAS,KAAK,aAAa;AAAA,MAC/C;AAAA,IAAA,CACD;AACD,SAAK,WAAW;AAAA,MAAQ,CAAA,YACtB,QAAQ,iBAAiB,UAAU,KAAK,cAAc;AAAA,QACpD;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAAA,EAEA,uBAA6B;AAC3B,SAAK,WAAW,MAAA;AAAA,EAClB;AAAA,EAEA,cAAc,CAAC,EAAE,aAAa;AAC5B,QAAI,WAAW,KAAK,eAAe;AACjC,WAAK,aAAA;AAAA,IACP;AACA,QAAI,WAAW,KAAK,iBAAiB;AACnC,WAAK,eAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEA,eAAe,MAAM;AACnB,SAAK,WAAW,QAAQ,CAAA,WAAW,OAAO,OAAO,IAAK;AACtD,SAAK,cAAc,WAAW;AAC9B,SAAK,gBAAgB,WAAW;AAAA,EAClC;AAAA,EAEA,iBAAiB,MAAM;AACrB,SAAK,WAAW,QAAQ,CAAA,WAAW,OAAO,OAAO,KAAM;AACvD,SAAK,cAAc,WAAW;AAC9B,SAAK,gBAAgB,WAAW;AAAA,EAClC;AAAA,EAEA,eAAe,MAAM;AACnB,SAAK,cAAc,WAAW,CAAC,GAAG,KAAK,UAAU,EAAE,MAAM,CAAA,YAAW,QAAQ,SAAS,IAAI;AACzF,SAAK,gBAAgB,WAAW,CAAC,GAAG,KAAK,UAAU,EAAE,MAAM,CAAA,YAAW,QAAQ,SAAS,IAAI;AAAA,EAC7F;AAAA,EAEA,IAAI,aAAoD;AACtD,UAAM,aAAoD,KAAK,iBAAiB,SAAS;AACzF,QAAI,CAAC,WAAW,QAAQ;AACtB,YAAM,IAAI,MAAM,GAAG,KAAK,SAAS,+CAA+C;AAAA,IAClF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,gBAA0C;AAC5C,UAAM,UAAoC,KAAK,cAAc,qBAAqB;AAClF,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,GAAG,KAAK,SAAS,+CAA+C;AAAA,IAClF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,kBAA4C;AAC9C,UAAM,UAAoC,KAAK,cAAc,uBAAuB;AACpF,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,GAAG,KAAK,SAAS,iDAAiD;AAAA,IACpF;AACA,WAAO;AAAA,EACT;AACF;AAEA,IAAI,CAAC,eAAe,IAAI,oBAAoB;AAC1C,iBAAe,OAAO,sBAAsB,cAAc;"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { m as makeAnchor } from "./utilities-Ci7wwNeg.js";
|
|
2
|
-
class Accordion extends HTMLElement {
|
|
3
|
-
internals_;
|
|
4
|
-
controller;
|
|
5
|
-
constructor() {
|
|
6
|
-
super();
|
|
7
|
-
this.internals_ = this.attachInternals();
|
|
8
|
-
this.controller = new AbortController();
|
|
9
|
-
}
|
|
10
|
-
connectedCallback() {
|
|
11
|
-
if (!this.details || !this.trigger) return;
|
|
12
|
-
const { signal } = this.controller;
|
|
13
|
-
document.addEventListener("beforeprint", this.handleOpen, {
|
|
14
|
-
signal
|
|
15
|
-
});
|
|
16
|
-
document.addEventListener("afterprint", this.handleClose, {
|
|
17
|
-
signal
|
|
18
|
-
});
|
|
19
|
-
this.handleHash();
|
|
20
|
-
document.addEventListener("hashchange", this.handleHash, { signal });
|
|
21
|
-
}
|
|
22
|
-
disconnectedCallback() {
|
|
23
|
-
this.controller.abort();
|
|
24
|
-
}
|
|
25
|
-
handleOpen = () => {
|
|
26
|
-
if (!this.details) return;
|
|
27
|
-
this.details.open = true;
|
|
28
|
-
};
|
|
29
|
-
handleClose = () => {
|
|
30
|
-
if (!this.details) return;
|
|
31
|
-
this.details.open = false;
|
|
32
|
-
};
|
|
33
|
-
handleHash = () => {
|
|
34
|
-
const { hash } = window.location;
|
|
35
|
-
if (hash && hash === `#${this.details?.id}`) {
|
|
36
|
-
this.handleOpen();
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
get details() {
|
|
40
|
-
const details = this.querySelector("details");
|
|
41
|
-
if (!details) {
|
|
42
|
-
throw new Error(`${this.localName} must contain a <details> element.`);
|
|
43
|
-
}
|
|
44
|
-
details.id = details.id || this.generatedId();
|
|
45
|
-
return details;
|
|
46
|
-
}
|
|
47
|
-
get trigger() {
|
|
48
|
-
const trigger = this.querySelector("summary");
|
|
49
|
-
if (!trigger) {
|
|
50
|
-
throw new Error(`${this.localName} must contain a <summary> element.`);
|
|
51
|
-
}
|
|
52
|
-
return trigger;
|
|
53
|
-
}
|
|
54
|
-
generatedId = () => {
|
|
55
|
-
const string = this.trigger?.textContent?.trim();
|
|
56
|
-
return !string ? "" : makeAnchor(string);
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
if (!customElements.get("mx-accordion")) customElements.define("mx-accordion", Accordion);
|
|
60
|
-
export {
|
|
61
|
-
Accordion as A
|
|
62
|
-
};
|
|
63
|
-
//# sourceMappingURL=Accordion-D1HQ0FDq.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion-D1HQ0FDq.js","sources":["../../../src/Component/Accordion/Elements/Accordion.ts"],"sourcesContent":["/**\n * Accordion\n * @file Support opening on hash, adding an ID attribute and toggling on print.\n */\n\nimport { makeAnchor } from \"../../../Utility/utilities\"\n\nexport default class Accordion extends HTMLElement {\n internals_: ElementInternals\n controller: AbortController\n\n constructor() {\n super()\n this.internals_ = this.attachInternals()\n this.controller = new AbortController()\n }\n\n connectedCallback(): void {\n if (!this.details || !this.trigger) return\n\n const { signal }: AbortController = this.controller\n document.addEventListener(\"beforeprint\", this.handleOpen, {\n signal,\n })\n document.addEventListener(\"afterprint\", this.handleClose, {\n signal,\n })\n this.handleHash()\n document.addEventListener(\"hashchange\", this.handleHash, { signal })\n }\n\n disconnectedCallback(): void {\n this.controller.abort()\n }\n\n handleOpen = (): void => {\n if (!this.details) return\n this.details.open = true\n }\n\n handleClose = (): void => {\n if (!this.details) return\n this.details.open = false\n }\n\n handleHash = (): void => {\n const { hash }: Location = window.location\n if (hash && hash === `#${this.details?.id}`) {\n this.handleOpen()\n }\n }\n\n get details(): HTMLDetailsElement | null {\n const details: HTMLDetailsElement | null = this.querySelector(\"details\")\n if (!details) {\n throw new Error(`${this.localName} must contain a <details> element.`)\n }\n details.id = details.id || this.generatedId()\n return details\n }\n\n get trigger(): HTMLElement | null {\n const trigger: HTMLElement | null = this.querySelector(\"summary\")\n if (!trigger) {\n throw new Error(`${this.localName} must contain a <summary> element.`)\n }\n return trigger\n }\n\n generatedId = (): string => {\n const string: string | undefined = this.trigger?.textContent?.trim()\n return !string ? \"\" : makeAnchor(string)\n }\n}\n\nif (!customElements.get(\"mx-accordion\")) customElements.define(\"mx-accordion\", Accordion)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"mx-accordion\": Accordion\n }\n}\n"],"names":[],"mappings":";AAOA,MAAqB,kBAAkB,YAAY;AAAA,EACjD;AAAA,EACA;AAAA,EAEA,cAAc;AACZ,UAAA;AACA,SAAK,aAAa,KAAK,gBAAA;AACvB,SAAK,aAAa,IAAI,gBAAA;AAAA,EACxB;AAAA,EAEA,oBAA0B;AACxB,QAAI,CAAC,KAAK,WAAW,CAAC,KAAK,QAAS;AAEpC,UAAM,EAAE,WAA4B,KAAK;AACzC,aAAS,iBAAiB,eAAe,KAAK,YAAY;AAAA,MACxD;AAAA,IAAA,CACD;AACD,aAAS,iBAAiB,cAAc,KAAK,aAAa;AAAA,MACxD;AAAA,IAAA,CACD;AACD,SAAK,WAAA;AACL,aAAS,iBAAiB,cAAc,KAAK,YAAY,EAAE,QAAQ;AAAA,EACrE;AAAA,EAEA,uBAA6B;AAC3B,SAAK,WAAW,MAAA;AAAA,EAClB;AAAA,EAEA,aAAa,MAAY;AACvB,QAAI,CAAC,KAAK,QAAS;AACnB,SAAK,QAAQ,OAAO;AAAA,EACtB;AAAA,EAEA,cAAc,MAAY;AACxB,QAAI,CAAC,KAAK,QAAS;AACnB,SAAK,QAAQ,OAAO;AAAA,EACtB;AAAA,EAEA,aAAa,MAAY;AACvB,UAAM,EAAE,SAAmB,OAAO;AAClC,QAAI,QAAQ,SAAS,IAAI,KAAK,SAAS,EAAE,IAAI;AAC3C,WAAK,WAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEA,IAAI,UAAqC;AACvC,UAAM,UAAqC,KAAK,cAAc,SAAS;AACvE,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,GAAG,KAAK,SAAS,oCAAoC;AAAA,IACvE;AACA,YAAQ,KAAK,QAAQ,MAAM,KAAK,YAAA;AAChC,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,UAA8B;AAChC,UAAM,UAA8B,KAAK,cAAc,SAAS;AAChE,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,GAAG,KAAK,SAAS,oCAAoC;AAAA,IACvE;AACA,WAAO;AAAA,EACT;AAAA,EAEA,cAAc,MAAc;AAC1B,UAAM,SAA6B,KAAK,SAAS,aAAa,KAAA;AAC9D,WAAO,CAAC,SAAS,KAAK,WAAW,MAAM;AAAA,EACzC;AACF;AAEA,IAAI,CAAC,eAAe,IAAI,cAAc,EAAG,gBAAe,OAAO,gBAAgB,SAAS;"}
|
|
@@ -1,129 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1,70 +0,0 @@
|
|
|
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
|