@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.
Files changed (170) hide show
  1. package/dist/build/accordion.css +108 -0
  2. package/dist/build/accordion.entry.js +139 -0
  3. package/dist/build/accordion.entry.js.map +1 -0
  4. package/dist/build/base.css +999 -0
  5. package/dist/build/breadcrumb.css +47 -0
  6. package/dist/build/button.css +132 -0
  7. package/dist/build/callout.css +11 -0
  8. package/dist/build/card.css +136 -0
  9. package/dist/build/chunks/disclosure-widget-CQLPJ8Ta.js +124 -0
  10. package/dist/build/chunks/disclosure-widget-CQLPJ8Ta.js.map +1 -0
  11. package/dist/build/chunks/keyboard-C73DHu0c.js +101 -0
  12. package/dist/build/chunks/keyboard-C73DHu0c.js.map +1 -0
  13. package/dist/build/chunks/polyfills-CJ5uTmUJ.js +749 -0
  14. package/dist/build/chunks/polyfills-CJ5uTmUJ.js.map +1 -0
  15. package/dist/build/chunks/popover-wbPSyFRj.js +654 -0
  16. package/dist/build/chunks/popover-wbPSyFRj.js.map +1 -0
  17. package/dist/build/chunks/utilities-B4YZb689.js +243 -0
  18. package/dist/build/chunks/utilities-B4YZb689.js.map +1 -0
  19. package/dist/build/constants.css +120 -0
  20. package/dist/build/container-grid.css +208 -0
  21. package/dist/build/content-block.css +23 -0
  22. package/dist/build/dialog.css +98 -0
  23. package/dist/build/dialog.entry.js +113 -0
  24. package/dist/build/dialog.entry.js.map +1 -0
  25. package/dist/build/drop-menu.css +78 -0
  26. package/dist/build/drop-menu.entry.js +129 -0
  27. package/dist/build/drop-menu.entry.js.map +1 -0
  28. package/dist/build/drupal.css +74 -0
  29. package/dist/build/footer-menu.css +32 -0
  30. package/dist/build/footer.css +61 -0
  31. package/dist/build/form.css +589 -0
  32. package/dist/build/global-alert.css +60 -0
  33. package/dist/build/global-alert.entry.js +68 -0
  34. package/dist/build/global-alert.entry.js.map +1 -0
  35. package/dist/build/grid.css +200 -0
  36. package/dist/build/header.css +131 -0
  37. package/dist/build/header.entry.js +98 -0
  38. package/dist/build/header.entry.js.map +1 -0
  39. package/dist/build/hero-banner.css +62 -0
  40. package/dist/build/icon.css +399 -0
  41. package/dist/build/in-page-alert.css +94 -0
  42. package/dist/build/in-page-navigation.css +17 -0
  43. package/dist/build/in-page-navigation.entry.js +89 -0
  44. package/dist/build/in-page-navigation.entry.js.map +1 -0
  45. package/dist/build/link-list.css +72 -0
  46. package/dist/build/masthead.css +39 -0
  47. package/dist/build/nav-list.css +26 -0
  48. package/dist/build/navigation.css +371 -0
  49. package/dist/build/navigation.entry.js +123 -0
  50. package/dist/build/navigation.entry.js.map +1 -0
  51. package/dist/build/page.css +184 -0
  52. package/dist/build/pagination.css +123 -0
  53. package/dist/build/section.css +163 -0
  54. package/dist/build/sidebar.css +105 -0
  55. package/dist/build/sticky.css +47 -0
  56. package/dist/build/sticky.entry.js +60 -0
  57. package/dist/build/sticky.entry.js.map +1 -0
  58. package/dist/build/tabs.css +106 -0
  59. package/dist/build/tabs.entry.js +161 -0
  60. package/dist/build/tabs.entry.js.map +1 -0
  61. package/dist/build/tag.css +67 -0
  62. package/dist/build/tiles.css +61 -0
  63. package/dist/build/utilities.css +175 -0
  64. package/package.json +3 -3
  65. package/src/Atom/Background/__snapshots__/Backgrounds.stories.ts.snap +12 -12
  66. package/src/Atom/Background/_background.css +8 -8
  67. package/src/Atom/Background/backgrounds.twig +4 -4
  68. package/src/Atom/Button/Button.tsx +8 -8
  69. package/src/Atom/Button/__snapshots__/Button.stories.ts.snap +6 -6
  70. package/src/Atom/Button/_buttons-styles.css +4 -4
  71. package/src/Atom/Button/_buttons.css +5 -5
  72. package/src/Atom/Button/button.twig +1 -1
  73. package/src/Atom/Heading/Heading.stories.ts +5 -2
  74. package/src/Atom/Heading/_headings.css +20 -20
  75. package/src/Atom/Heading/heading.twig +1 -1
  76. package/src/Atom/Icon/Icon.mdx +1 -1
  77. package/src/Atom/Icon/Icon.tsx +5 -5
  78. package/src/Atom/Icon/__snapshots__/Icon.stories.ts.snap +3 -3
  79. package/src/Atom/Icon/_icon.css +17 -17
  80. package/src/Atom/Icon/_mixin-icon.css +1 -1
  81. package/src/Atom/Icon/icon.twig +1 -1
  82. package/src/Atom/Link/Link.tsx +2 -2
  83. package/src/Atom/Link/__snapshots__/Link.stories.ts.snap +8 -8
  84. package/src/Atom/Link/_links.css +9 -9
  85. package/src/Atom/Link/link.twig +1 -1
  86. package/src/Atom/Media/Media.tsx +1 -1
  87. package/src/Atom/Media/__snapshots__/Media.stories.ts.snap +3 -3
  88. package/src/Atom/Media/_media.css +12 -4
  89. package/src/Atom/Media/media.twig +1 -1
  90. package/src/Atom/NavList/__snapshots__/NavList.stories.ts.snap +2 -2
  91. package/src/Atom/NavList/nav-list.css +3 -9
  92. package/src/Atom/NavList/nav-list.twig +2 -2
  93. package/src/Atom/Spacing/__snapshots__/Spacing.stories.ts.snap +1 -1
  94. package/src/Atom/{_mixins.css → Spacing/_mixins.css} +5 -5
  95. package/src/Atom/Spacing/_spacing.css +6 -6
  96. package/src/Atom/Spacing/spacing.twig +1 -1
  97. package/src/Atom/Table/__snapshots__/Table.stories.ts.snap +3 -3
  98. package/src/Atom/Table/__snapshots__/TableResponsive.stories.ts.snap +2 -2
  99. package/src/Atom/Table/_table.css +4 -4
  100. package/src/Atom/Table/table-responsive.twig +2 -2
  101. package/src/Atom/Table/table.twig +1 -1
  102. package/src/Atom/Text/__snapshots__/TextSizes.stories.ts.snap +16 -16
  103. package/src/Atom/Text/_text-align.css +3 -3
  104. package/src/Atom/Text/_text-sizes.css +29 -29
  105. package/src/Atom/Text/text-alignment.twig +3 -3
  106. package/src/Atom/Text/text-styles-example.twig +16 -16
  107. package/src/Atom/Video/Video.tsx +1 -1
  108. package/src/Atom/Video/__snapshots__/Video.stories.ts.snap +1 -1
  109. package/src/Atom/Video/_video.css +2 -2
  110. package/src/Atom/Video/video.twig +1 -4
  111. package/src/Atom/_animated.css +5 -5
  112. package/src/Atom/_flow.css +5 -9
  113. package/src/Atom/_print.css +1 -12
  114. package/src/Component/Accordion/Accordion.tsx +11 -11
  115. package/src/Component/Accordion/Elements/AccordionGroup.ts +2 -2
  116. package/src/Component/Accordion/__snapshots__/Accordion.stories.ts.snap +23 -23
  117. package/src/Component/Accordion/accordion-item.twig +4 -4
  118. package/src/Component/Accordion/accordion.css +15 -15
  119. package/src/Component/Accordion/accordion.twig +4 -4
  120. package/src/Component/Callout/__snapshots__/Callout.stories.ts.snap +1 -1
  121. package/src/Component/Callout/callout.css +1 -1
  122. package/src/Component/Callout/callout.twig +2 -2
  123. package/src/Component/Card/Card.tsx +7 -7
  124. package/src/Component/Card/__snapshots__/Card.stories.ts.snap +43 -43
  125. package/src/Component/Card/card-grid.twig +2 -2
  126. package/src/Component/Card/card.css +14 -13
  127. package/src/Component/Card/card.twig +7 -7
  128. package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.ts.snap +1 -1
  129. package/src/Component/GlobalAlert/Elements/ClosableAlert.ts +2 -2
  130. package/src/Component/GlobalAlert/GlobalAlert.tsx +5 -5
  131. package/src/Component/GlobalAlert/__snapshots__/GlobalAlert.stories.ts.snap +9 -9
  132. package/src/Component/GlobalAlert/global-alert.css +4 -4
  133. package/src/Component/GlobalAlert/global-alert.entry.js +1 -1
  134. package/src/Component/GlobalAlert/global-alert.twig +6 -6
  135. package/src/Component/HeroBanner/HeroBanner.tsx +4 -4
  136. package/src/Component/HeroBanner/__snapshots__/HeroBanner.stories.ts.snap +15 -15
  137. package/src/Component/HeroBanner/hero-banner.css +6 -6
  138. package/src/Component/HeroBanner/hero-banner.twig +7 -7
  139. package/src/Component/InPageAlert/__snapshots__/InPageAlert.stories.ts.snap +1 -1
  140. package/src/Component/InPageAlert/in-page-alert.css +5 -5
  141. package/src/Component/InPageAlert/in-page-alert.twig +1 -1
  142. package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.ts.snap +1 -1
  143. package/src/Component/LinkList/LinkList.tsx +4 -4
  144. package/src/Component/LinkList/__snapshots__/LinkList.stories.ts.snap +4 -4
  145. package/src/Component/LinkList/link-list.css +8 -8
  146. package/src/Component/LinkList/link-list.twig +3 -3
  147. package/src/Component/Navigation/__snapshots__/Navigation.stories.ts.snap +1 -1
  148. package/src/Component/Navigation/_navigation.css +5 -5
  149. package/src/Component/Navigation/navigation.twig +1 -1
  150. package/src/Component/Sticky/__snapshots__/Sticky.stories.ts.snap +1 -1
  151. package/src/Component/Tabs/__snapshots__/Tabs.stories.ts.snap +15 -15
  152. package/src/Component/Tag/Tag.tsx +1 -1
  153. package/src/Component/Tag/__snapshots__/Tag.stories.ts.snap +9 -9
  154. package/src/Component/Tag/tag.css +2 -2
  155. package/src/Component/Tag/tags.twig +2 -2
  156. package/src/Layout/Grid/Grid.tsx +4 -4
  157. package/src/Layout/Grid/__snapshots__/Grid.stories.ts.snap +4 -4
  158. package/src/Layout/Grid/container-grid.css +1 -0
  159. package/src/Layout/Grid/grid-item.twig +2 -2
  160. package/src/Layout/Grid/grid.css +29 -29
  161. package/src/Layout/Grid/grid.twig +1 -1
  162. package/src/Layout/Masthead/__snapshots__/Masthead.stories.ts.snap +1 -1
  163. package/src/Layout/Section/Section.stories.ts +0 -1
  164. package/src/Layout/Section/Section.tsx +5 -5
  165. package/src/Layout/Section/SectionGrid.tsx +4 -4
  166. package/src/Layout/Section/__snapshots__/Section.stories.ts.snap +5 -5
  167. package/src/Layout/Section/section.css +29 -26
  168. package/src/Layout/Section/section.twig +4 -4
  169. package/src/enums.ts +21 -21
  170. 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