@pnx-mixtape/mxds 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build/accordion.css +108 -0
- package/dist/build/accordion.entry.js +139 -0
- package/dist/build/accordion.entry.js.map +1 -0
- package/dist/build/base.css +999 -0
- package/dist/build/breadcrumb.css +47 -0
- package/dist/build/button.css +132 -0
- package/dist/build/callout.css +11 -0
- package/dist/build/card.css +136 -0
- package/dist/build/chunks/disclosure-widget-CQLPJ8Ta.js +124 -0
- package/dist/build/chunks/disclosure-widget-CQLPJ8Ta.js.map +1 -0
- package/dist/build/chunks/keyboard-C73DHu0c.js +101 -0
- package/dist/build/chunks/keyboard-C73DHu0c.js.map +1 -0
- package/dist/build/chunks/polyfills-CJ5uTmUJ.js +749 -0
- package/dist/build/chunks/polyfills-CJ5uTmUJ.js.map +1 -0
- package/dist/build/chunks/popover-wbPSyFRj.js +654 -0
- package/dist/build/chunks/popover-wbPSyFRj.js.map +1 -0
- package/dist/build/chunks/utilities-B4YZb689.js +243 -0
- package/dist/build/chunks/utilities-B4YZb689.js.map +1 -0
- package/dist/build/constants.css +120 -0
- package/dist/build/container-grid.css +208 -0
- package/dist/build/content-block.css +23 -0
- package/dist/build/dialog.css +98 -0
- package/dist/build/dialog.entry.js +113 -0
- package/dist/build/dialog.entry.js.map +1 -0
- package/dist/build/drop-menu.css +78 -0
- package/dist/build/drop-menu.entry.js +129 -0
- package/dist/build/drop-menu.entry.js.map +1 -0
- package/dist/build/drupal.css +74 -0
- package/dist/build/footer-menu.css +32 -0
- package/dist/build/footer.css +61 -0
- package/dist/build/form.css +589 -0
- package/dist/build/global-alert.css +60 -0
- package/dist/build/global-alert.entry.js +68 -0
- package/dist/build/global-alert.entry.js.map +1 -0
- package/dist/build/grid.css +200 -0
- package/dist/build/header.css +131 -0
- package/dist/build/header.entry.js +98 -0
- package/dist/build/header.entry.js.map +1 -0
- package/dist/build/hero-banner.css +62 -0
- package/dist/build/icon.css +399 -0
- package/dist/build/in-page-alert.css +94 -0
- package/dist/build/in-page-navigation.css +17 -0
- package/dist/build/in-page-navigation.entry.js +89 -0
- package/dist/build/in-page-navigation.entry.js.map +1 -0
- package/dist/build/link-list.css +72 -0
- package/dist/build/masthead.css +39 -0
- package/dist/build/nav-list.css +26 -0
- package/dist/build/navigation.css +371 -0
- package/dist/build/navigation.entry.js +123 -0
- package/dist/build/navigation.entry.js.map +1 -0
- package/dist/build/page.css +184 -0
- package/dist/build/pagination.css +123 -0
- package/dist/build/section.css +163 -0
- package/dist/build/sidebar.css +105 -0
- package/dist/build/sticky.css +47 -0
- package/dist/build/sticky.entry.js +60 -0
- package/dist/build/sticky.entry.js.map +1 -0
- package/dist/build/tabs.css +106 -0
- package/dist/build/tabs.entry.js +161 -0
- package/dist/build/tabs.entry.js.map +1 -0
- package/dist/build/tag.css +67 -0
- package/dist/build/tiles.css +61 -0
- package/dist/build/utilities.css +175 -0
- package/package.json +3 -3
- package/src/Atom/Background/__snapshots__/Backgrounds.stories.ts.snap +12 -12
- package/src/Atom/Background/_background.css +8 -8
- package/src/Atom/Background/backgrounds.twig +4 -4
- package/src/Atom/Button/Button.tsx +8 -8
- package/src/Atom/Button/__snapshots__/Button.stories.ts.snap +6 -6
- package/src/Atom/Button/_buttons-styles.css +4 -4
- package/src/Atom/Button/_buttons.css +5 -5
- package/src/Atom/Button/button.twig +1 -1
- package/src/Atom/Heading/Heading.stories.ts +5 -2
- package/src/Atom/Heading/_headings.css +20 -20
- package/src/Atom/Heading/heading.twig +1 -1
- package/src/Atom/Icon/Icon.mdx +1 -1
- package/src/Atom/Icon/Icon.tsx +5 -5
- package/src/Atom/Icon/__snapshots__/Icon.stories.ts.snap +3 -3
- package/src/Atom/Icon/_icon.css +17 -17
- package/src/Atom/Icon/_mixin-icon.css +1 -1
- package/src/Atom/Icon/icon.twig +1 -1
- package/src/Atom/Link/Link.tsx +2 -2
- package/src/Atom/Link/__snapshots__/Link.stories.ts.snap +8 -8
- package/src/Atom/Link/_links.css +9 -9
- package/src/Atom/Link/link.twig +1 -1
- package/src/Atom/Media/Media.tsx +1 -1
- package/src/Atom/Media/__snapshots__/Media.stories.ts.snap +3 -3
- package/src/Atom/Media/_media.css +12 -4
- package/src/Atom/Media/media.twig +1 -1
- package/src/Atom/NavList/__snapshots__/NavList.stories.ts.snap +2 -2
- package/src/Atom/NavList/nav-list.css +3 -9
- package/src/Atom/NavList/nav-list.twig +2 -2
- package/src/Atom/Spacing/__snapshots__/Spacing.stories.ts.snap +1 -1
- package/src/Atom/{_mixins.css → Spacing/_mixins.css} +5 -5
- package/src/Atom/Spacing/_spacing.css +6 -6
- package/src/Atom/Spacing/spacing.twig +1 -1
- package/src/Atom/Table/__snapshots__/Table.stories.ts.snap +3 -3
- package/src/Atom/Table/__snapshots__/TableResponsive.stories.ts.snap +2 -2
- package/src/Atom/Table/_table.css +4 -4
- package/src/Atom/Table/table-responsive.twig +2 -2
- package/src/Atom/Table/table.twig +1 -1
- package/src/Atom/Text/__snapshots__/TextSizes.stories.ts.snap +16 -16
- package/src/Atom/Text/_text-align.css +3 -3
- package/src/Atom/Text/_text-sizes.css +29 -29
- package/src/Atom/Text/text-alignment.twig +3 -3
- package/src/Atom/Text/text-styles-example.twig +16 -16
- package/src/Atom/Video/Video.tsx +1 -1
- package/src/Atom/Video/__snapshots__/Video.stories.ts.snap +1 -1
- package/src/Atom/Video/_video.css +2 -2
- package/src/Atom/Video/video.twig +1 -4
- package/src/Atom/_animated.css +5 -5
- package/src/Atom/_flow.css +5 -9
- package/src/Atom/_print.css +1 -12
- package/src/Component/Accordion/Accordion.tsx +11 -11
- package/src/Component/Accordion/Elements/AccordionGroup.ts +2 -2
- package/src/Component/Accordion/__snapshots__/Accordion.stories.ts.snap +23 -23
- package/src/Component/Accordion/accordion-item.twig +4 -4
- package/src/Component/Accordion/accordion.css +15 -15
- package/src/Component/Accordion/accordion.twig +4 -4
- package/src/Component/Callout/__snapshots__/Callout.stories.ts.snap +1 -1
- package/src/Component/Callout/callout.css +1 -1
- package/src/Component/Callout/callout.twig +2 -2
- package/src/Component/Card/Card.tsx +7 -7
- package/src/Component/Card/__snapshots__/Card.stories.ts.snap +43 -43
- package/src/Component/Card/card-grid.twig +2 -2
- package/src/Component/Card/card.css +14 -13
- package/src/Component/Card/card.twig +7 -7
- package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.ts.snap +1 -1
- package/src/Component/GlobalAlert/Elements/ClosableAlert.ts +2 -2
- package/src/Component/GlobalAlert/GlobalAlert.tsx +5 -5
- package/src/Component/GlobalAlert/__snapshots__/GlobalAlert.stories.ts.snap +9 -9
- package/src/Component/GlobalAlert/global-alert.css +4 -4
- package/src/Component/GlobalAlert/global-alert.entry.js +1 -1
- package/src/Component/GlobalAlert/global-alert.twig +6 -6
- package/src/Component/HeroBanner/HeroBanner.tsx +4 -4
- package/src/Component/HeroBanner/__snapshots__/HeroBanner.stories.ts.snap +15 -15
- package/src/Component/HeroBanner/hero-banner.css +6 -6
- package/src/Component/HeroBanner/hero-banner.twig +7 -7
- package/src/Component/InPageAlert/__snapshots__/InPageAlert.stories.ts.snap +1 -1
- package/src/Component/InPageAlert/in-page-alert.css +5 -5
- package/src/Component/InPageAlert/in-page-alert.twig +1 -1
- package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.ts.snap +1 -1
- package/src/Component/LinkList/LinkList.tsx +4 -4
- package/src/Component/LinkList/__snapshots__/LinkList.stories.ts.snap +4 -4
- package/src/Component/LinkList/link-list.css +8 -8
- package/src/Component/LinkList/link-list.twig +3 -3
- package/src/Component/Navigation/__snapshots__/Navigation.stories.ts.snap +1 -1
- package/src/Component/Navigation/_navigation.css +5 -5
- package/src/Component/Navigation/navigation.twig +1 -1
- package/src/Component/Sticky/__snapshots__/Sticky.stories.ts.snap +1 -1
- package/src/Component/Tabs/__snapshots__/Tabs.stories.ts.snap +15 -15
- package/src/Component/Tag/Tag.tsx +1 -1
- package/src/Component/Tag/__snapshots__/Tag.stories.ts.snap +9 -9
- package/src/Component/Tag/tag.css +2 -2
- package/src/Component/Tag/tags.twig +2 -2
- package/src/Layout/Grid/Grid.tsx +4 -4
- package/src/Layout/Grid/__snapshots__/Grid.stories.ts.snap +4 -4
- package/src/Layout/Grid/container-grid.css +1 -0
- package/src/Layout/Grid/grid-item.twig +2 -2
- package/src/Layout/Grid/grid.css +29 -29
- package/src/Layout/Grid/grid.twig +1 -1
- package/src/Layout/Masthead/__snapshots__/Masthead.stories.ts.snap +1 -1
- package/src/Layout/Section/Section.stories.ts +0 -1
- package/src/Layout/Section/Section.tsx +5 -5
- package/src/Layout/Section/SectionGrid.tsx +4 -4
- package/src/Layout/Section/__snapshots__/Section.stories.ts.snap +5 -5
- package/src/Layout/Section/section.css +29 -26
- package/src/Layout/Section/section.twig +4 -4
- package/src/enums.ts +21 -21
- package/src/Atom/_flow-legacy.css +0 -48
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Container Grid
|
|
3
|
+
* @todo update classes
|
|
4
|
+
*/
|
|
5
|
+
@layer design-system.layouts {
|
|
6
|
+
.grid.container {
|
|
7
|
+
--container-name: grid-item;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@container grid-item (min-width: 946px) {
|
|
11
|
+
.grid.container {
|
|
12
|
+
--grid-gap: var(--gap-l);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.grid.container
|
|
17
|
+
:is(
|
|
18
|
+
.grid--11-col,
|
|
19
|
+
.grid--10-col,
|
|
20
|
+
.grid--9-col,
|
|
21
|
+
.grid--8-col,
|
|
22
|
+
.grid--7-col,
|
|
23
|
+
.grid--6-col,
|
|
24
|
+
.grid--5-col,
|
|
25
|
+
.grid--4-col,
|
|
26
|
+
.grid--3-col,
|
|
27
|
+
.grid--2-col,
|
|
28
|
+
.grid--1-col
|
|
29
|
+
) {
|
|
30
|
+
--grid-repeat: 12;
|
|
31
|
+
--grid-span: 12;
|
|
32
|
+
}
|
|
33
|
+
@container grid-item (min-width: 720px) {
|
|
34
|
+
|
|
35
|
+
.grid.container .grid--11-col {
|
|
36
|
+
--grid-span: 11;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
@container grid-item (min-width: 720px) {
|
|
40
|
+
|
|
41
|
+
.grid.container .grid--10-col {
|
|
42
|
+
--grid-span: 10;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
@container grid-item (min-width: 720px) {
|
|
46
|
+
|
|
47
|
+
.grid.container .grid--9-col {
|
|
48
|
+
--grid-span: 9;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
@container grid-item (min-width: 720px) {
|
|
52
|
+
|
|
53
|
+
.grid.container .grid--8-col {
|
|
54
|
+
--grid-span: 8;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
@container grid-item (min-width: 720px) {
|
|
58
|
+
|
|
59
|
+
.grid.container .grid--7-col {
|
|
60
|
+
--grid-span: 7;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
@container grid-item (min-width: 720px) {
|
|
64
|
+
|
|
65
|
+
.grid.container .grid--6-col {
|
|
66
|
+
--grid-span: 6;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
@container grid-item (min-width: 540px) {
|
|
70
|
+
|
|
71
|
+
.grid.container .grid--5-col {
|
|
72
|
+
--grid-span: 6;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@container grid-item (min-width: 720px) {
|
|
77
|
+
|
|
78
|
+
.grid.container .grid--5-col {
|
|
79
|
+
--grid-span: 5;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
@container grid-item (min-width: 540px) {
|
|
83
|
+
|
|
84
|
+
.grid.container .grid--4-col {
|
|
85
|
+
--grid-span: 6;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@container grid-item (min-width: 720px) {
|
|
90
|
+
|
|
91
|
+
.grid.container .grid--4-col {
|
|
92
|
+
--grid-span: 4;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
@container grid-item (min-width: 540px) {
|
|
96
|
+
|
|
97
|
+
.grid.container .grid--3-col {
|
|
98
|
+
--grid-span: 6;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@container grid-item (min-width: 720px) {
|
|
103
|
+
|
|
104
|
+
.grid.container .grid--3-col {
|
|
105
|
+
--grid-span: 3;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
@container grid-item (min-width: 540px) {
|
|
109
|
+
|
|
110
|
+
.grid.container .grid--2-col {
|
|
111
|
+
--grid-span: 3;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
@container grid-item (min-width: 720px) {
|
|
116
|
+
|
|
117
|
+
.grid.container .grid--2-col {
|
|
118
|
+
--grid-span: 2;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
@container grid-item (min-width: 540px) {
|
|
122
|
+
|
|
123
|
+
.grid.container .grid--1-col {
|
|
124
|
+
--grid-span: 3;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@container grid-item (min-width: 720px) {
|
|
129
|
+
|
|
130
|
+
.grid.container .grid--1-col {
|
|
131
|
+
--grid-span: 1;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Dynamic Container Grid
|
|
138
|
+
*/
|
|
139
|
+
|
|
140
|
+
@layer design-system.layouts {
|
|
141
|
+
.grid.container:is(.grid--dynamic) {
|
|
142
|
+
/* This doesn't play nice in Safari and isn't required, so we unset the container. */
|
|
143
|
+
container-type: initial;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.grid.container:is(
|
|
147
|
+
.grid--xs-2-cols,
|
|
148
|
+
.grid--sm-2-cols,
|
|
149
|
+
.grid--md-2-cols,
|
|
150
|
+
.grid--md-3-cols,
|
|
151
|
+
.grid--lg-3-cols,
|
|
152
|
+
.grid--md-4-cols,
|
|
153
|
+
.grid--lg-4-cols,
|
|
154
|
+
.grid--xl-4-cols
|
|
155
|
+
) {
|
|
156
|
+
--grid-repeat: 1;
|
|
157
|
+
}
|
|
158
|
+
@container grid-item (min-width: 420px) {
|
|
159
|
+
|
|
160
|
+
.grid.container.grid--xs-2-cols {
|
|
161
|
+
--grid-repeat: 2;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
@container grid-item (min-width: 540px) {
|
|
165
|
+
|
|
166
|
+
.grid.container.grid--sm-2-cols {
|
|
167
|
+
--grid-repeat: 2;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
@container grid-item (min-width: 720px) {
|
|
171
|
+
|
|
172
|
+
.grid.container.grid--md-2-cols {
|
|
173
|
+
--grid-repeat: 2;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
@container grid-item (min-width: 720px) {
|
|
177
|
+
|
|
178
|
+
.grid.container.grid--md-3-cols {
|
|
179
|
+
--grid-repeat: 3;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
@container grid-item (min-width: 946px) {
|
|
183
|
+
|
|
184
|
+
.grid.container.grid--lg-3-cols {
|
|
185
|
+
--grid-repeat: 3;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
@container grid-item (min-width: 720px) {
|
|
189
|
+
|
|
190
|
+
.grid.container.grid--md-4-cols {
|
|
191
|
+
--grid-repeat: 4;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
@container grid-item (min-width: 946px) {
|
|
195
|
+
|
|
196
|
+
.grid.container.grid--lg-4-cols {
|
|
197
|
+
--grid-repeat: 4;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
@container grid-item (min-width: 1100px) {
|
|
201
|
+
|
|
202
|
+
.grid.container.grid--xl-4-cols {
|
|
203
|
+
--grid-repeat: 4;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbnRhaW5lci1ncmlkLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0VBR0U7QUFDRjtFQUNFO0lBQ0UsMkJBQTJCO0VBNkc3Qjs7SUEzR0U7RUFIRjtNQUlJLHdCQUF3QjtFQTBHNUI7SUF6R0U7O0lBRUE7Ozs7Ozs7Ozs7Ozs7O01BY0UsaUJBQWlCO01BQ2pCLGVBQWU7SUFDakI7TUFHRTs7SUFERjtRQUVJLGVBQWU7SUFFbkI7TUFERTtNQUlBOztJQURGO1FBRUksZUFBZTtJQUVuQjtNQURFO01BSUE7O0lBREY7UUFFSSxjQUFjO0lBRWxCO01BREU7TUFJQTs7SUFERjtRQUVJLGNBQWM7SUFFbEI7TUFERTtNQUlBOztJQURGO1FBRUksY0FBYztJQUVsQjtNQURFO01BSUE7O0lBREY7UUFFSSxjQUFjO0lBRWxCO01BREU7TUFJQTs7SUFERjtRQUVJLGNBQWM7SUFNbEI7TUFMRTs7TUFFQTs7SUFMRjtRQU1JLGNBQWM7SUFFbEI7TUFERTtNQUlBOztJQURGO1FBRUksY0FBYztJQU1sQjtNQUxFOztNQUVBOztJQUxGO1FBTUksY0FBYztJQUVsQjtNQURFO01BSUE7O0lBREY7UUFFSSxjQUFjO0lBTWxCO01BTEU7O01BRUE7O0lBTEY7UUFNSSxjQUFjO0lBRWxCO01BREU7TUFJQTs7SUFERjtRQUVJLGNBQWM7SUFNbEI7TUFMRTs7TUFFQTs7SUFMRjtRQU1JLGNBQWM7SUFFbEI7TUFERTtNQUlBOztJQURGO1FBRUksY0FBYztJQU1sQjtNQUxFOztNQUVBOztJQUxGO1FBTUksY0FBYztJQUVsQjtNQURFO0FBR047O0FBRUE7O0VBRUU7O0FBRUY7SUFFSTtNQUNFLG9GQUFvRjtNQUNwRix1QkFBcUI7SUFDdkI7O0lBRUE7Ozs7Ozs7Ozs7TUFVRSxnQkFBZ0I7SUFDbEI7TUFHRTs7SUFERjtRQUVJLGdCQUFnQjtJQUVwQjtNQURFO01BSUE7O0lBREY7UUFFSSxnQkFBZ0I7SUFFcEI7TUFERTtNQUlBOztJQURGO1FBRUksZ0JBQWdCO0lBRXBCO01BREU7TUFJQTs7SUFERjtRQUVJLGdCQUFnQjtJQUVwQjtNQURFO01BSUE7O0lBREY7UUFFSSxnQkFBZ0I7SUFFcEI7TUFERTtNQUlBOztJQURGO1FBRUksZ0JBQWdCO0lBRXBCO01BREU7TUFJQTs7SUFERjtRQUVJLGdCQUFnQjtJQUVwQjtNQURFO01BSUE7O0lBREY7UUFFSSxnQkFBZ0I7SUFFcEI7TUFERTtBQUdOIiwiZmlsZSI6ImNvbnRhaW5lci1ncmlkLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udGFpbmVyIEdyaWRcbiAqIEB0b2RvIHVwZGF0ZSBjbGFzc2VzXG4gKi9cbkBsYXllciBkZXNpZ24tc3lzdGVtLmxheW91dHMge1xuICAuZ3JpZC5jb250YWluZXIge1xuICAgIC0tY29udGFpbmVyLW5hbWU6IGdyaWQtaXRlbTtcblxuICAgIEBjb250YWluZXIgZ3JpZC1pdGVtIChtaW4td2lkdGg6IHRva2VuKFwiYnJlYWtwb2ludC5sXCIpKSB7XG4gICAgICAtLWdyaWQtZ2FwOiB2YXIoLS1nYXAtbCk7XG4gICAgfVxuXG4gICAgJlxuICAgICAgOmlzKFxuICAgICAgICAuZ3JpZC0tMTEtY29sLFxuICAgICAgICAuZ3JpZC0tMTAtY29sLFxuICAgICAgICAuZ3JpZC0tOS1jb2wsXG4gICAgICAgIC5ncmlkLS04LWNvbCxcbiAgICAgICAgLmdyaWQtLTctY29sLFxuICAgICAgICAuZ3JpZC0tNi1jb2wsXG4gICAgICAgIC5ncmlkLS01LWNvbCxcbiAgICAgICAgLmdyaWQtLTQtY29sLFxuICAgICAgICAuZ3JpZC0tMy1jb2wsXG4gICAgICAgIC5ncmlkLS0yLWNvbCxcbiAgICAgICAgLmdyaWQtLTEtY29sXG4gICAgICApIHtcbiAgICAgIC0tZ3JpZC1yZXBlYXQ6IDEyO1xuICAgICAgLS1ncmlkLXNwYW46IDEyO1xuICAgIH1cblxuICAgICYgLmdyaWQtLTExLWNvbCB7XG4gICAgICBAY29udGFpbmVyIGdyaWQtaXRlbSAobWluLXdpZHRoOiB0b2tlbihcImJyZWFrcG9pbnQubVwiKSkge1xuICAgICAgICAtLWdyaWQtc3BhbjogMTE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiAuZ3JpZC0tMTAtY29sIHtcbiAgICAgIEBjb250YWluZXIgZ3JpZC1pdGVtIChtaW4td2lkdGg6IHRva2VuKFwiYnJlYWtwb2ludC5tXCIpKSB7XG4gICAgICAgIC0tZ3JpZC1zcGFuOiAxMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5ncmlkLS05LWNvbCB7XG4gICAgICBAY29udGFpbmVyIGdyaWQtaXRlbSAobWluLXdpZHRoOiB0b2tlbihcImJyZWFrcG9pbnQubVwiKSkge1xuICAgICAgICAtLWdyaWQtc3BhbjogOTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5ncmlkLS04LWNvbCB7XG4gICAgICBAY29udGFpbmVyIGdyaWQtaXRlbSAobWluLXdpZHRoOiB0b2tlbihcImJyZWFrcG9pbnQubVwiKSkge1xuICAgICAgICAtLWdyaWQtc3BhbjogODtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5ncmlkLS03LWNvbCB7XG4gICAgICBAY29udGFpbmVyIGdyaWQtaXRlbSAobWluLXdpZHRoOiB0b2tlbihcImJyZWFrcG9pbnQubVwiKSkge1xuICAgICAgICAtLWdyaWQtc3BhbjogNztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5ncmlkLS02LWNvbCB7XG4gICAgICBAY29udGFpbmVyIGdyaWQtaXRlbSAobWluLXdpZHRoOiB0b2tlbihcImJyZWFrcG9pbnQubVwiKSkge1xuICAgICAgICAtLWdyaWQtc3BhbjogNjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5ncmlkLS01LWNvbCB7XG4gICAgICBAY29udGFpbmVyIGdyaWQtaXRlbSAobWluLXdpZHRoOiB0b2tlbihcImJyZWFrcG9pbnQuc1wiKSkge1xuICAgICAgICAtLWdyaWQtc3BhbjogNjtcbiAgICAgIH1cblxuICAgICAgQGNvbnRhaW5lciBncmlkLWl0ZW0gKG1pbi13aWR0aDogdG9rZW4oXCJicmVha3BvaW50Lm1cIikpIHtcbiAgICAgICAgLS1ncmlkLXNwYW46IDU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiAuZ3JpZC0tNC1jb2wge1xuICAgICAgQGNvbnRhaW5lciBncmlkLWl0ZW0gKG1pbi13aWR0aDogdG9rZW4oXCJicmVha3BvaW50LnNcIikpIHtcbiAgICAgICAgLS1ncmlkLXNwYW46IDY7XG4gICAgICB9XG5cbiAgICAgIEBjb250YWluZXIgZ3JpZC1pdGVtIChtaW4td2lkdGg6IHRva2VuKFwiYnJlYWtwb2ludC5tXCIpKSB7XG4gICAgICAgIC0tZ3JpZC1zcGFuOiA0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYgLmdyaWQtLTMtY29sIHtcbiAgICAgIEBjb250YWluZXIgZ3JpZC1pdGVtIChtaW4td2lkdGg6IHRva2VuKFwiYnJlYWtwb2ludC5zXCIpKSB7XG4gICAgICAgIC0tZ3JpZC1zcGFuOiA2O1xuICAgICAgfVxuXG4gICAgICBAY29udGFpbmVyIGdyaWQtaXRlbSAobWluLXdpZHRoOiB0b2tlbihcImJyZWFrcG9pbnQubVwiKSkge1xuICAgICAgICAtLWdyaWQtc3BhbjogMztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5ncmlkLS0yLWNvbCB7XG4gICAgICBAY29udGFpbmVyIGdyaWQtaXRlbSAobWluLXdpZHRoOiB0b2tlbihcImJyZWFrcG9pbnQuc1wiKSkge1xuICAgICAgICAtLWdyaWQtc3BhbjogMztcbiAgICAgIH1cblxuICAgICAgQGNvbnRhaW5lciBncmlkLWl0ZW0gKG1pbi13aWR0aDogdG9rZW4oXCJicmVha3BvaW50Lm1cIikpIHtcbiAgICAgICAgLS1ncmlkLXNwYW46IDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiAuZ3JpZC0tMS1jb2wge1xuICAgICAgQGNvbnRhaW5lciBncmlkLWl0ZW0gKG1pbi13aWR0aDogdG9rZW4oXCJicmVha3BvaW50LnNcIikpIHtcbiAgICAgICAgLS1ncmlkLXNwYW46IDM7XG4gICAgICB9XG5cbiAgICAgIEBjb250YWluZXIgZ3JpZC1pdGVtIChtaW4td2lkdGg6IHRva2VuKFwiYnJlYWtwb2ludC5tXCIpKSB7XG4gICAgICAgIC0tZ3JpZC1zcGFuOiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIER5bmFtaWMgQ29udGFpbmVyIEdyaWRcbiAqL1xuXG5AbGF5ZXIgZGVzaWduLXN5c3RlbS5sYXlvdXRzIHtcbiAgLmdyaWQuY29udGFpbmVyIHtcbiAgICAmOmlzKC5ncmlkLS1keW5hbWljKSB7XG4gICAgICAvKiBUaGlzIGRvZXNuJ3QgcGxheSBuaWNlIGluIFNhZmFyaSBhbmQgaXNuJ3QgcmVxdWlyZWQsIHNvIHdlIHVuc2V0IHRoZSBjb250YWluZXIuICovXG4gICAgICBjb250YWluZXItdHlwZTogdW5zZXQ7XG4gICAgfVxuXG4gICAgJjppcyhcbiAgICAgICAgLmdyaWQtLXhzLTItY29scyxcbiAgICAgICAgLmdyaWQtLXNtLTItY29scyxcbiAgICAgICAgLmdyaWQtLW1kLTItY29scyxcbiAgICAgICAgLmdyaWQtLW1kLTMtY29scyxcbiAgICAgICAgLmdyaWQtLWxnLTMtY29scyxcbiAgICAgICAgLmdyaWQtLW1kLTQtY29scyxcbiAgICAgICAgLmdyaWQtLWxnLTQtY29scyxcbiAgICAgICAgLmdyaWQtLXhsLTQtY29sc1xuICAgICAgKSB7XG4gICAgICAtLWdyaWQtcmVwZWF0OiAxO1xuICAgIH1cblxuICAgICYuZ3JpZC0teHMtMi1jb2xzIHtcbiAgICAgIEBjb250YWluZXIgZ3JpZC1pdGVtIChtaW4td2lkdGg6IHRva2VuKFwiYnJlYWtwb2ludC54c1wiKSkge1xuICAgICAgICAtLWdyaWQtcmVwZWF0OiAyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZ3JpZC0tc20tMi1jb2xzIHtcbiAgICAgIEBjb250YWluZXIgZ3JpZC1pdGVtIChtaW4td2lkdGg6IHRva2VuKFwiYnJlYWtwb2ludC5zXCIpKSB7XG4gICAgICAgIC0tZ3JpZC1yZXBlYXQ6IDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5ncmlkLS1tZC0yLWNvbHMge1xuICAgICAgQGNvbnRhaW5lciBncmlkLWl0ZW0gKG1pbi13aWR0aDogdG9rZW4oXCJicmVha3BvaW50Lm1cIikpIHtcbiAgICAgICAgLS1ncmlkLXJlcGVhdDogMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmdyaWQtLW1kLTMtY29scyB7XG4gICAgICBAY29udGFpbmVyIGdyaWQtaXRlbSAobWluLXdpZHRoOiB0b2tlbihcImJyZWFrcG9pbnQubVwiKSkge1xuICAgICAgICAtLWdyaWQtcmVwZWF0OiAzO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZ3JpZC0tbGctMy1jb2xzIHtcbiAgICAgIEBjb250YWluZXIgZ3JpZC1pdGVtIChtaW4td2lkdGg6IHRva2VuKFwiYnJlYWtwb2ludC5sXCIpKSB7XG4gICAgICAgIC0tZ3JpZC1yZXBlYXQ6IDM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5ncmlkLS1tZC00LWNvbHMge1xuICAgICAgQGNvbnRhaW5lciBncmlkLWl0ZW0gKG1pbi13aWR0aDogdG9rZW4oXCJicmVha3BvaW50Lm1cIikpIHtcbiAgICAgICAgLS1ncmlkLXJlcGVhdDogNDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmdyaWQtLWxnLTQtY29scyB7XG4gICAgICBAY29udGFpbmVyIGdyaWQtaXRlbSAobWluLXdpZHRoOiB0b2tlbihcImJyZWFrcG9pbnQubFwiKSkge1xuICAgICAgICAtLWdyaWQtcmVwZWF0OiA0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZ3JpZC0teGwtNC1jb2xzIHtcbiAgICAgIEBjb250YWluZXIgZ3JpZC1pdGVtIChtaW4td2lkdGg6IHRva2VuKFwiYnJlYWtwb2ludC54bFwiKSkge1xuICAgICAgICAtLWdyaWQtcmVwZWF0OiA0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19 */
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content block
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
@layer design-system.components {
|
|
6
|
+
.content-block {
|
|
7
|
+
inline-size: 100%;
|
|
8
|
+
margin-inline: auto;
|
|
9
|
+
text-align: center;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.content-block .content-block__actions {
|
|
13
|
+
padding-block-start: var(--spacing-m);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@layer design-system.utilities {
|
|
18
|
+
.vertical-flow-flex.content-block {
|
|
19
|
+
align-items: center;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbnRlbnQtYmxvY2suY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFOztBQUVGO0VBQ0U7SUFDRSxpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLGtCQUFrQjtFQUtwQjs7SUFIRTtNQUNFLHFDQUFxQztJQUN2QztBQUVKOztBQUVBO0VBQ0U7SUFDRSxtQkFBbUI7RUFDckI7QUFDRiIsImZpbGUiOiJjb250ZW50LWJsb2NrLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udGVudCBibG9ja1xuICovXG5cbkBsYXllciBkZXNpZ24tc3lzdGVtLmNvbXBvbmVudHMge1xuICAuY29udGVudC1ibG9jayB7XG4gICAgaW5saW5lLXNpemU6IDEwMCU7XG4gICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAmIC5jb250ZW50LWJsb2NrX19hY3Rpb25zIHtcbiAgICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNwYWNpbmctbSk7XG4gICAgfVxuICB9XG59XG5cbkBsYXllciBkZXNpZ24tc3lzdGVtLnV0aWxpdGllcyB7XG4gIC52ZXJ0aWNhbC1mbG93LWZsZXguY29udGVudC1ibG9jayB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuIl19 */
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dialog
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
@layer design-system.defaults {
|
|
6
|
+
mx-dialog {
|
|
7
|
+
display: block;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@layer design-system.components {
|
|
12
|
+
.dialog {
|
|
13
|
+
max-inline-size: var(--container-max-width);
|
|
14
|
+
max-block-size: 90vh;
|
|
15
|
+
overflow-x: auto;
|
|
16
|
+
overflow-y: hidden;
|
|
17
|
+
overflow: auto hidden;
|
|
18
|
+
overscroll-behavior: contain;
|
|
19
|
+
background-color: var(--dialog-background, var(--colour-background));
|
|
20
|
+
border: 1px solid
|
|
21
|
+
var(--line-colour, var(--colour-border));
|
|
22
|
+
border: var(--line-width, 1px) solid
|
|
23
|
+
var(--line-colour, var(--colour-border));
|
|
24
|
+
padding: 0;
|
|
25
|
+
margin: auto;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.dialog::backdrop {
|
|
29
|
+
background-color: hsla(0, 0%, 100%, 0.75);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.dialog .dialog__content {
|
|
33
|
+
padding: var(--spacing-s);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@media (min-width: 720px) {
|
|
37
|
+
|
|
38
|
+
.dialog .dialog__content {
|
|
39
|
+
padding-block: var(--spacing-l);
|
|
40
|
+
padding-inline: var(--spacing-xl);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.dialog > .icon--close {
|
|
45
|
+
position: absolute;
|
|
46
|
+
inset-block-start: var(--spacing-xxs);
|
|
47
|
+
inset-inline-end: var(--spacing-xxs);
|
|
48
|
+
border: 0;
|
|
49
|
+
z-index: 11;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.dialog .form__actions {
|
|
53
|
+
border-block-start: 1px solid
|
|
54
|
+
var(--line-colour, var(--colour-border));
|
|
55
|
+
border-block-start: var(--line-width, 1px) solid
|
|
56
|
+
var(--line-colour, var(--colour-border));
|
|
57
|
+
padding-block: var(--spacing-s);
|
|
58
|
+
align-content: center;
|
|
59
|
+
justify-content: center;
|
|
60
|
+
place-content: center;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Dialog fullscreen.
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
@layer design-system.components {
|
|
69
|
+
.dialog--fullscreen {
|
|
70
|
+
box-shadow: none;
|
|
71
|
+
border: 0;
|
|
72
|
+
inset-block-start: 0;
|
|
73
|
+
inline-size: 100%;
|
|
74
|
+
max-inline-size: none;
|
|
75
|
+
block-size: 100%;
|
|
76
|
+
max-block-size: none;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.dialog--fullscreen[open] {
|
|
80
|
+
display: flex;
|
|
81
|
+
flex-direction: column;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.dialog--fullscreen .dialog__content {
|
|
85
|
+
max-inline-size: var(--container-max-width);
|
|
86
|
+
margin: auto;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* Prevent scrolling on the body. */
|
|
91
|
+
.body--scroll-lock,
|
|
92
|
+
.body-dialog--open {
|
|
93
|
+
overflow: hidden;
|
|
94
|
+
position: fixed;
|
|
95
|
+
inline-size: 100vw;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRpYWxvZy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0VBRUU7O0FBRUY7RUFDRTtJQUNFLGNBQWM7RUFDaEI7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsMkNBQTJDO0lBQzNDLG9CQUFvQjtJQUNwQixnQkFBcUI7SUFBckIsa0JBQXFCO0lBQXJCLHFCQUFxQjtJQUNyQiw0QkFBNEI7SUFDNUIsb0VBQW9FO0lBQ3BFOzhDQUMwQztJQUQxQzs4Q0FDMEM7SUFDMUMsVUFBVTtJQUNWLFlBQVk7RUE2QmQ7O0lBM0JFO01BQ0UseUNBQTBDO0lBQzVDOztJQUVBO01BQ0UseUJBQXlCO0lBTTNCOztNQUpFOztJQUhGO1FBSUksK0JBQStCO1FBQy9CLGlDQUFpQztJQUVyQztNQURFOztJQUdGO01BQ0Usa0JBQWtCO01BQ2xCLHFDQUFxQztNQUNyQyxvQ0FBb0M7TUFDcEMsU0FBUztNQUNULFdBQVc7SUFDYjs7SUFFQTtNQUNFO2dEQUMwQztNQUQxQztnREFDMEM7TUFDMUMsK0JBQStCO01BQy9CLHFCQUFxQjtNQUFyQix1QkFBcUI7TUFBckIscUJBQXFCO0lBQ3ZCO0FBRUo7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRTtJQUNFLGdCQUFnQjtJQUNoQixTQUFTO0lBQ1Qsb0JBQW9CO0lBQ3BCLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtFQVd0Qjs7SUFURTtNQUNFLGFBQWE7TUFDYixzQkFBc0I7SUFDeEI7O0lBRUE7TUFDRSwyQ0FBMkM7TUFDM0MsWUFBWTtJQUNkO0FBRUo7O0FBRUEsbUNBQW1DO0FBQ25DOztFQUVFLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2Ysa0JBQWtCO0FBQ3BCIiwiZmlsZSI6ImRpYWxvZy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERpYWxvZ1xuICovXG5cbkBsYXllciBkZXNpZ24tc3lzdGVtLmRlZmF1bHRzIHtcbiAgbXgtZGlhbG9nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbGF5ZXIgZGVzaWduLXN5c3RlbS5jb21wb25lbnRzIHtcbiAgLmRpYWxvZyB7XG4gICAgbWF4LWlubGluZS1zaXplOiB2YXIoLS1jb250YWluZXItbWF4LXdpZHRoKTtcbiAgICBtYXgtYmxvY2stc2l6ZTogOTB2aDtcbiAgICBvdmVyZmxvdzogYXV0byBoaWRkZW47XG4gICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kaWFsb2ctYmFja2dyb3VuZCwgdmFyKC0tY29sb3VyLWJhY2tncm91bmQpKTtcbiAgICBib3JkZXI6IHZhcigtLWxpbmUtd2lkdGgsIDFweCkgc29saWRcbiAgICAgIHZhcigtLWxpbmUtY29sb3VyLCB2YXIoLS1jb2xvdXItYm9yZGVyKSk7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IGF1dG87XG5cbiAgICAmOjpiYWNrZHJvcCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDBkZWcgMCUgMTAwJSAvIDc1JSk7XG4gICAgfVxuXG4gICAgJiAuZGlhbG9nX19jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctcyk7XG5cbiAgICAgIEBtZWRpYSAoLS1tZWRpdW0tdXApIHtcbiAgICAgICAgcGFkZGluZy1ibG9jazogdmFyKC0tc3BhY2luZy1sKTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNwYWNpbmcteGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYgPiAuaWNvbi0tY2xvc2Uge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICAgIGluc2V0LWlubGluZS1lbmQ6IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHotaW5kZXg6IDExO1xuICAgIH1cblxuICAgICYgLmZvcm1fX2FjdGlvbnMge1xuICAgICAgYm9yZGVyLWJsb2NrLXN0YXJ0OiB2YXIoLS1saW5lLXdpZHRoLCAxcHgpIHNvbGlkXG4gICAgICAgIHZhcigtLWxpbmUtY29sb3VyLCB2YXIoLS1jb2xvdXItYm9yZGVyKSk7XG4gICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zcGFjaW5nLXMpO1xuICAgICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIERpYWxvZyBmdWxsc2NyZWVuLlxuICovXG5cbkBsYXllciBkZXNpZ24tc3lzdGVtLmNvbXBvbmVudHMge1xuICAuZGlhbG9nLS1mdWxsc2NyZWVuIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICBpbmxpbmUtc2l6ZTogMTAwJTtcbiAgICBtYXgtaW5saW5lLXNpemU6IG5vbmU7XG4gICAgYmxvY2stc2l6ZTogMTAwJTtcbiAgICBtYXgtYmxvY2stc2l6ZTogbm9uZTtcblxuICAgICZbb3Blbl0ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgJiAuZGlhbG9nX19jb250ZW50IHtcbiAgICAgIG1heC1pbmxpbmUtc2l6ZTogdmFyKC0tY29udGFpbmVyLW1heC13aWR0aCk7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgfVxuICB9XG59XG5cbi8qIFByZXZlbnQgc2Nyb2xsaW5nIG9uIHRoZSBib2R5LiAqL1xuLmJvZHktLXNjcm9sbC1sb2NrLFxuLmJvZHktZGlhbG9nLS1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbmxpbmUtc2l6ZTogMTAwdnc7XG59XG4iXX0= */
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { h as handleOutsideClick, a as handleEscape } from "./chunks/utilities-B4YZb689.js";
|
|
2
|
+
class Dialog extends HTMLElement {
|
|
3
|
+
constructor() {
|
|
4
|
+
super();
|
|
5
|
+
this.scrollLockClass = "body--scroll-lock";
|
|
6
|
+
this.handleOpen = () => {
|
|
7
|
+
if (!this.dialog) return;
|
|
8
|
+
if (typeof this.dialog.show === "function") {
|
|
9
|
+
this.isModal ? this.dialog.showModal() : this.dialog.show();
|
|
10
|
+
}
|
|
11
|
+
this.openBtns.forEach(
|
|
12
|
+
(btn) => btn.setAttribute("aria-expanded", "true")
|
|
13
|
+
);
|
|
14
|
+
document.body.classList.add(this.scrollLockClass);
|
|
15
|
+
};
|
|
16
|
+
this.handleClose = () => {
|
|
17
|
+
if (!this.dialog) return;
|
|
18
|
+
if (typeof this.dialog.close === "function") this.dialog.close();
|
|
19
|
+
this.openBtns.forEach(
|
|
20
|
+
(btn) => btn.setAttribute("aria-expanded", "false")
|
|
21
|
+
);
|
|
22
|
+
document.body.classList.remove(this.scrollLockClass);
|
|
23
|
+
};
|
|
24
|
+
this.internals_ = this.attachInternals();
|
|
25
|
+
this.controller = new AbortController();
|
|
26
|
+
}
|
|
27
|
+
connectedCallback() {
|
|
28
|
+
if (!this.openBtns || !this.dialog) return;
|
|
29
|
+
const { signal } = this.controller;
|
|
30
|
+
document.addEventListener(
|
|
31
|
+
"click",
|
|
32
|
+
(e) => {
|
|
33
|
+
if (![...this.openBtns].includes(e.target)) return;
|
|
34
|
+
this.handleOpen();
|
|
35
|
+
e.preventDefault();
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
signal
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
this.dialog.addEventListener(
|
|
42
|
+
"click",
|
|
43
|
+
(e) => {
|
|
44
|
+
if (![...this.closeBtns].includes(e.target)) return;
|
|
45
|
+
this.handleClose();
|
|
46
|
+
e.preventDefault();
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
signal
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
document.addEventListener(
|
|
53
|
+
"click",
|
|
54
|
+
(e) => {
|
|
55
|
+
if (!this.dialog?.open) return;
|
|
56
|
+
handleOutsideClick(e, this.dialog, this.handleClose, [
|
|
57
|
+
...this.openBtns,
|
|
58
|
+
...this.closeBtns
|
|
59
|
+
]);
|
|
60
|
+
},
|
|
61
|
+
{ signal }
|
|
62
|
+
);
|
|
63
|
+
document.addEventListener(
|
|
64
|
+
"keydown",
|
|
65
|
+
(e) => {
|
|
66
|
+
if (!this.dialog?.open) return;
|
|
67
|
+
handleEscape(e, this.handleClose);
|
|
68
|
+
},
|
|
69
|
+
{ signal }
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Disconnected.
|
|
74
|
+
*/
|
|
75
|
+
disconnectedCallback() {
|
|
76
|
+
if (!this.dialog) return;
|
|
77
|
+
if (typeof this.dialog.close === "function") this.dialog.close();
|
|
78
|
+
this.openBtns.forEach(
|
|
79
|
+
(btn) => btn.setAttribute("aria-expanded", "false")
|
|
80
|
+
);
|
|
81
|
+
document.body.classList.remove(this.scrollLockClass);
|
|
82
|
+
this.controller.abort();
|
|
83
|
+
}
|
|
84
|
+
get dialog() {
|
|
85
|
+
const dialog = this.querySelector("dialog");
|
|
86
|
+
if (!dialog) {
|
|
87
|
+
throw new Error(`${this.localName} must contain a <dialog> element.`);
|
|
88
|
+
}
|
|
89
|
+
return dialog;
|
|
90
|
+
}
|
|
91
|
+
get openBtns() {
|
|
92
|
+
const btns = document.querySelectorAll(
|
|
93
|
+
`[href="#${this.id}"], [aria-controls="${this.id}"]`
|
|
94
|
+
);
|
|
95
|
+
if (!btns) {
|
|
96
|
+
throw new Error(
|
|
97
|
+
`${this.localName} must have an associated opening element.`
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
btns.forEach((btn) => {
|
|
101
|
+
btn.setAttribute("aria-controls", this.id);
|
|
102
|
+
});
|
|
103
|
+
return btns;
|
|
104
|
+
}
|
|
105
|
+
get closeBtns() {
|
|
106
|
+
return this.querySelectorAll("button[data-close]");
|
|
107
|
+
}
|
|
108
|
+
get isModal() {
|
|
109
|
+
return this.hasAttribute("data-modal");
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
customElements.define("mx-dialog", Dialog);
|
|
113
|
+
//# sourceMappingURL=dialog.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.entry.js","sources":["../../src/Component/Dialog/Elements/Dialog.ts"],"sourcesContent":["/**\n * DialogBase\n * @file Support opening/closing, and adding a scroll lock to the body.\n */\n\nimport { handleOutsideClick, handleEscape } from \"../../../Utility/utilities\"\n\nexport default class Dialog extends HTMLElement {\n internals_: ElementInternals\n controller: AbortController\n scrollLockClass: string = \"body--scroll-lock\"\n\n constructor() {\n super()\n this.internals_ = this.attachInternals()\n this.controller = new AbortController()\n }\n\n connectedCallback(): void {\n if (!this.openBtns || !this.dialog) return\n\n const { signal }: AbortController = this.controller\n\n // Open on toggle click.\n document.addEventListener(\n \"click\",\n (e: MouseEvent): void => {\n if (![...this.openBtns].includes(e.target as HTMLButtonElement)) return\n this.handleOpen()\n e.preventDefault()\n },\n {\n signal,\n },\n )\n\n // Close on close button click.\n this.dialog.addEventListener(\n \"click\",\n (e: MouseEvent): void => {\n if (![...this.closeBtns].includes(e.target as HTMLButtonElement)) return\n this.handleClose()\n e.preventDefault()\n },\n {\n signal,\n },\n )\n\n // Close on outside click.\n document.addEventListener(\n \"click\",\n (e: MouseEvent): void => {\n if (!this.dialog?.open) return\n handleOutsideClick(e, this.dialog as HTMLElement, this.handleClose, [\n ...this.openBtns,\n ...this.closeBtns,\n ])\n },\n { signal },\n )\n\n // Close on escape keydown.\n document.addEventListener(\n \"keydown\",\n (e: KeyboardEvent): void => {\n if (!this.dialog?.open) return\n handleEscape(e, this.handleClose)\n },\n { signal },\n )\n }\n\n /**\n * Disconnected.\n */\n disconnectedCallback(): void {\n if (!this.dialog) return\n if (typeof this.dialog.close === \"function\") this.dialog.close()\n this.openBtns.forEach((btn: Element) =>\n btn.setAttribute(\"aria-expanded\", \"false\"),\n )\n document.body.classList.remove(this.scrollLockClass)\n this.controller.abort()\n }\n\n handleOpen = (): void => {\n if (!this.dialog) return\n if (typeof this.dialog.show === \"function\") {\n this.isModal ? this.dialog.showModal() : this.dialog.show()\n }\n this.openBtns.forEach((btn: Element) =>\n btn.setAttribute(\"aria-expanded\", \"true\"),\n )\n document.body.classList.add(this.scrollLockClass)\n }\n\n handleClose = (): void => {\n if (!this.dialog) return\n if (typeof this.dialog.close === \"function\") this.dialog.close()\n this.openBtns.forEach((btn: Element) =>\n btn.setAttribute(\"aria-expanded\", \"false\"),\n )\n document.body.classList.remove(this.scrollLockClass)\n }\n\n get dialog(): HTMLDialogElement | null {\n const dialog: HTMLDialogElement | null = this.querySelector(\"dialog\")\n if (!dialog) {\n throw new Error(`${this.localName} must contain a <dialog> element.`)\n }\n return dialog\n }\n\n get openBtns(): NodeListOf<HTMLButtonElement> {\n const btns: NodeListOf<HTMLButtonElement> = document.querySelectorAll(\n `[href=\"#${this.id}\"], [aria-controls=\"${this.id}\"]`,\n )\n if (!btns) {\n throw new Error(\n `${this.localName} must have an associated opening element.`,\n )\n }\n btns.forEach((btn: HTMLButtonElement): void => {\n btn.setAttribute(\"aria-controls\", this.id)\n })\n return btns\n }\n\n get closeBtns(): NodeListOf<HTMLButtonElement> {\n return this.querySelectorAll(\"button[data-close]\")\n }\n\n get isModal(): boolean {\n return this.hasAttribute(\"data-modal\")\n }\n}\n\ncustomElements.define(\"mx-dialog\", Dialog)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"mx-dialog\": Dialog\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/* stylelint-disable selector-class-pattern, function-no-unknown, property-no-unknown, selector-pseudo-class-no-unknown */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Drop menu
|
|
5
|
+
*
|
|
6
|
+
* **Experimental** Using new CSS Anchoring and Popover API's, requires JS polyfill.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
@layer design-system.components {
|
|
10
|
+
.drop-menu__trigger {
|
|
11
|
+
anchor-name: --drop-menu;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.drop-menu__trigger:has(~ :popover-open)::before {
|
|
15
|
+
rotate: 180deg;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.drop-menu {
|
|
19
|
+
position: absolute;
|
|
20
|
+
background-color: var(
|
|
21
|
+
--drop-menu-background,
|
|
22
|
+
var(--background, var(--colour-background))
|
|
23
|
+
);
|
|
24
|
+
color: var(
|
|
25
|
+
--drop-menu-foreground,
|
|
26
|
+
var(--foreground, var(--colour-foreground))
|
|
27
|
+
);
|
|
28
|
+
border: 2px solid
|
|
29
|
+
var(--line-colour, var(--colour-border));
|
|
30
|
+
border: var(--line-width, 2px) solid
|
|
31
|
+
var(--line-colour, var(--colour-border));
|
|
32
|
+
margin: 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@supports (inline-size: anchor-size(width)) {
|
|
36
|
+
|
|
37
|
+
.drop-menu {
|
|
38
|
+
position-anchor: --drop-menu;
|
|
39
|
+
inset-area: bottom;
|
|
40
|
+
position-area: bottom;
|
|
41
|
+
position-try-options: flip-block;
|
|
42
|
+
position-try-fallback: flip-block;
|
|
43
|
+
min-inline-size: anchor-size(width);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.drop-menu:popover-open {
|
|
48
|
+
display: flex;
|
|
49
|
+
flex-direction: column;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.drop-menu button {
|
|
53
|
+
-webkit-appearance: none;
|
|
54
|
+
-moz-appearance: none;
|
|
55
|
+
appearance: none;
|
|
56
|
+
line-height: inherit;
|
|
57
|
+
font-family: inherit;
|
|
58
|
+
font-size: inherit;
|
|
59
|
+
background-color: transparent;
|
|
60
|
+
color: inherit;
|
|
61
|
+
border: medium none currentcolor;
|
|
62
|
+
border: initial;
|
|
63
|
+
text-align: start;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.drop-menu button[aria-checked="true"] {
|
|
67
|
+
text-decoration-line: underline;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.drop-menu :is(a, button) {
|
|
71
|
+
padding-block: var(--spacing-xxxs);
|
|
72
|
+
padding-inline: var(--spacing-xs);
|
|
73
|
+
cursor: pointer;
|
|
74
|
+
min-inline-size: 15ch;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRyb3AtbWVudS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUhBQXlIOztBQUV6SDs7OztFQUlFOztBQUVGO0VBQ0U7SUFDRSx3QkFBd0I7RUFLMUI7O0lBSEU7TUFDRSxjQUFjO0lBQ2hCOztFQUdGO0lBQ0Usa0JBQWtCO0lBQ2xCOzs7S0FHQztJQUNEOzs7S0FHQztJQUNEOzhDQUMwQztJQUQxQzs4Q0FDMEM7SUFDMUMsU0FBUztFQXFDWDs7SUFuQ0U7O0VBZEY7TUFlSSw0QkFBNEI7TUFDNUIsa0JBQWtCO01BQ2xCLHFCQUFxQjtNQUNyQixnQ0FBZ0M7TUFDaEMsaUNBQWlDO01BQ2pDLG1DQUFtQztFQTZCdkM7SUE1QkU7O0lBRUE7TUFDRSxhQUFhO01BQ2Isc0JBQXNCO0lBQ3hCOztJQUVBO01BQ0Usd0JBQWdCO1NBQWhCLHFCQUFnQjtjQUFoQixnQkFBZ0I7TUFDaEIsb0JBQW9CO01BQ3BCLG9CQUFvQjtNQUNwQixrQkFBa0I7TUFDbEIsNkJBQTZCO01BQzdCLGNBQWM7TUFDZCxnQ0FBYTtNQUFiLGVBQWE7TUFDYixpQkFBaUI7SUFLbkI7O01BSEU7UUFDRSwrQkFBK0I7TUFDakM7O0lBR0Y7TUFDRSxrQ0FBa0M7TUFDbEMsaUNBQWlDO01BQ2pDLGVBQWU7TUFDZixxQkFBcUI7SUFDdkI7QUFFSiIsImZpbGUiOiJkcm9wLW1lbnUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItY2xhc3MtcGF0dGVybiwgZnVuY3Rpb24tbm8tdW5rbm93biwgcHJvcGVydHktbm8tdW5rbm93biwgc2VsZWN0b3ItcHNldWRvLWNsYXNzLW5vLXVua25vd24gKi9cblxuLyoqXG4gKiBEcm9wIG1lbnVcbiAqXG4gKiAqKkV4cGVyaW1lbnRhbCoqIFVzaW5nIG5ldyBDU1MgQW5jaG9yaW5nIGFuZCBQb3BvdmVyIEFQSSdzLCByZXF1aXJlcyBKUyBwb2x5ZmlsbC5cbiAqL1xuXG5AbGF5ZXIgZGVzaWduLXN5c3RlbS5jb21wb25lbnRzIHtcbiAgLmRyb3AtbWVudV9fdHJpZ2dlciB7XG4gICAgYW5jaG9yLW5hbWU6IC0tZHJvcC1tZW51O1xuXG4gICAgJjpoYXMofiA6cG9wb3Zlci1vcGVuKTo6YmVmb3JlIHtcbiAgICAgIHJvdGF0ZTogMTgwZGVnO1xuICAgIH1cbiAgfVxuXG4gIC5kcm9wLW1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoXG4gICAgICAtLWRyb3AtbWVudS1iYWNrZ3JvdW5kLFxuICAgICAgdmFyKC0tYmFja2dyb3VuZCwgdmFyKC0tY29sb3VyLWJhY2tncm91bmQpKVxuICAgICk7XG4gICAgY29sb3I6IHZhcihcbiAgICAgIC0tZHJvcC1tZW51LWZvcmVncm91bmQsXG4gICAgICB2YXIoLS1mb3JlZ3JvdW5kLCB2YXIoLS1jb2xvdXItZm9yZWdyb3VuZCkpXG4gICAgKTtcbiAgICBib3JkZXI6IHZhcigtLWxpbmUtd2lkdGgsIDJweCkgc29saWRcbiAgICAgIHZhcigtLWxpbmUtY29sb3VyLCB2YXIoLS1jb2xvdXItYm9yZGVyKSk7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgQHN1cHBvcnRzIChpbmxpbmUtc2l6ZTogYW5jaG9yLXNpemUod2lkdGgpKSB7XG4gICAgICBwb3NpdGlvbi1hbmNob3I6IC0tZHJvcC1tZW51O1xuICAgICAgaW5zZXQtYXJlYTogYm90dG9tO1xuICAgICAgcG9zaXRpb24tYXJlYTogYm90dG9tO1xuICAgICAgcG9zaXRpb24tdHJ5LW9wdGlvbnM6IGZsaXAtYmxvY2s7XG4gICAgICBwb3NpdGlvbi10cnktZmFsbGJhY2s6IGZsaXAtYmxvY2s7XG4gICAgICBtaW4taW5saW5lLXNpemU6IGFuY2hvci1zaXplKHdpZHRoKTtcbiAgICB9XG5cbiAgICAmOnBvcG92ZXItb3BlbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAmIGJ1dHRvbiB7XG4gICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG5cbiAgICAgICZbYXJpYS1jaGVja2VkPVwidHJ1ZVwiXSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA6aXMoYSwgYnV0dG9uKSB7XG4gICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zcGFjaW5nLXh4eHMpO1xuICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNwYWNpbmcteHMpO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgbWluLWlubGluZS1zaXplOiAxNWNoO1xuICAgIH1cbiAgfVxufVxuIl19 */
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { m as makeAnchor } from "./chunks/utilities-B4YZb689.js";
|
|
2
|
+
import { K as Keyboard } from "./chunks/keyboard-C73DHu0c.js";
|
|
3
|
+
class DropMenu extends HTMLElement {
|
|
4
|
+
constructor() {
|
|
5
|
+
super();
|
|
6
|
+
this.keyboard = new Keyboard();
|
|
7
|
+
this.handleSelect = (event) => {
|
|
8
|
+
const target = event.target;
|
|
9
|
+
this.items.forEach((item) => {
|
|
10
|
+
if (!(item instanceof HTMLButtonElement)) return;
|
|
11
|
+
item.setAttribute("aria-checked", String(item === target));
|
|
12
|
+
});
|
|
13
|
+
const newEvent = new CustomEvent("drop-menu-select", {
|
|
14
|
+
bubbles: true,
|
|
15
|
+
cancelable: true,
|
|
16
|
+
detail: {
|
|
17
|
+
event,
|
|
18
|
+
target
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
this.menu.dispatchEvent(newEvent);
|
|
22
|
+
if (this.closeOnClick) this.menu.togglePopover();
|
|
23
|
+
};
|
|
24
|
+
this.handleToggle = ({ newState }) => {
|
|
25
|
+
const handleClose = () => this.menu.togglePopover();
|
|
26
|
+
if (newState === "open") {
|
|
27
|
+
this.keyboard.attachPopup(this.menu.id, handleClose);
|
|
28
|
+
} else {
|
|
29
|
+
this.keyboard.detachPopup(this.menu.id);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
this.attachKeyboardMenu = () => {
|
|
33
|
+
this.keyboard.attachMenu(this.menu, this.items);
|
|
34
|
+
};
|
|
35
|
+
this.detachKeyboardMenu = () => {
|
|
36
|
+
this.keyboard.detachMenu();
|
|
37
|
+
};
|
|
38
|
+
this.generatedId = () => {
|
|
39
|
+
const string = this.trigger?.textContent?.trim();
|
|
40
|
+
return !string ? "" : makeAnchor(string);
|
|
41
|
+
};
|
|
42
|
+
this.internals_ = this.attachInternals();
|
|
43
|
+
this.controller = new AbortController();
|
|
44
|
+
}
|
|
45
|
+
async connectedCallback() {
|
|
46
|
+
if (!this.menu || !this.trigger) return;
|
|
47
|
+
if (!("anchorName" in document.documentElement.style)) {
|
|
48
|
+
const { default: Polyfills } = await import("./chunks/polyfills-CJ5uTmUJ.js");
|
|
49
|
+
new Polyfills(this.menu);
|
|
50
|
+
}
|
|
51
|
+
if (!Object.hasOwn(HTMLElement, "popover")) {
|
|
52
|
+
await import("./chunks/popover-wbPSyFRj.js");
|
|
53
|
+
}
|
|
54
|
+
this.closeOnClick = this.hasAttribute("closeonclick");
|
|
55
|
+
const { signal } = this.controller;
|
|
56
|
+
document.addEventListener(
|
|
57
|
+
"click",
|
|
58
|
+
(event) => {
|
|
59
|
+
const { target } = event;
|
|
60
|
+
if (target !== this.menu && ![...this.items].includes(
|
|
61
|
+
target
|
|
62
|
+
))
|
|
63
|
+
return;
|
|
64
|
+
this.handleSelect(event);
|
|
65
|
+
event.preventDefault();
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
signal
|
|
69
|
+
}
|
|
70
|
+
);
|
|
71
|
+
document.addEventListener(
|
|
72
|
+
"keydown",
|
|
73
|
+
(event) => {
|
|
74
|
+
const { target, key } = event;
|
|
75
|
+
if (target !== this.menu && ![...this.items].includes(
|
|
76
|
+
target
|
|
77
|
+
))
|
|
78
|
+
return;
|
|
79
|
+
if (key === "Enter") this.handleSelect(event);
|
|
80
|
+
event.preventDefault();
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
signal
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
this.keyboard.attachEventListeners(signal);
|
|
87
|
+
this.menu.addEventListener("focusin", this.attachKeyboardMenu, {
|
|
88
|
+
signal
|
|
89
|
+
});
|
|
90
|
+
this.menu.addEventListener("focusout", this.detachKeyboardMenu, {
|
|
91
|
+
signal
|
|
92
|
+
});
|
|
93
|
+
this.menu.addEventListener("toggle", this.handleToggle, {
|
|
94
|
+
signal
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
disconnectedCallback() {
|
|
98
|
+
this.controller.abort();
|
|
99
|
+
this.keyboard.detachMenu();
|
|
100
|
+
}
|
|
101
|
+
get menu() {
|
|
102
|
+
const menu = this.querySelector("[popover]");
|
|
103
|
+
if (!menu) {
|
|
104
|
+
throw new Error(`${this.localName} must contain a <div popover> element.`);
|
|
105
|
+
}
|
|
106
|
+
menu.id = menu.id || this.generatedId();
|
|
107
|
+
return menu;
|
|
108
|
+
}
|
|
109
|
+
get items() {
|
|
110
|
+
const items = this.menu.querySelectorAll(":scope > *");
|
|
111
|
+
if (!items) {
|
|
112
|
+
throw new Error(`${this.localName} must contain some menu items.`);
|
|
113
|
+
}
|
|
114
|
+
return items;
|
|
115
|
+
}
|
|
116
|
+
get trigger() {
|
|
117
|
+
const trigger = this.querySelector(
|
|
118
|
+
`[popovertarget=${this.menu?.id}]`
|
|
119
|
+
);
|
|
120
|
+
if (!trigger) {
|
|
121
|
+
throw new Error(
|
|
122
|
+
`${this.localName} must contain a <button popovertarget="${this.menu.id}">`
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
return trigger;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
customElements.define("mx-dropmenu", DropMenu);
|
|
129
|
+
//# sourceMappingURL=drop-menu.entry.js.map
|