@ds-gn/ui 0.0.0-stage → 0.5.0

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 (271) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +155 -2
  3. package/THIRD_PARTY_NOTICES +167 -0
  4. package/assets/logo-full-dark.svg +4 -0
  5. package/assets/logo-full.svg +4 -0
  6. package/assets/logo-mark.svg +3 -0
  7. package/custom-elements.json +4696 -0
  8. package/dist/common/Base/Base.d.ts +22 -0
  9. package/dist/common/controllers/AuroraMeshController.d.ts +68 -0
  10. package/dist/common/controllers/AutoRotateController.d.ts +38 -0
  11. package/dist/common/controllers/BreakpointController.d.ts +30 -0
  12. package/dist/common/controllers/LayoutChangeController.d.ts +28 -0
  13. package/dist/common/controllers/WordCycleController.d.ts +36 -0
  14. package/dist/common/helpers/aurora-mesh.d.ts +11 -0
  15. package/dist/common/helpers/define-element.d.ts +14 -0
  16. package/dist/common/helpers/enum-creator.d.ts +2 -0
  17. package/dist/common/helpers/enum-validator.d.ts +1 -0
  18. package/dist/common/helpers/layout-change.d.ts +39 -0
  19. package/dist/common/helpers/layout-change.testing.d.ts +15 -0
  20. package/dist/common/helpers/logo.string.d.ts +23 -0
  21. package/dist/common/helpers/logo.string.js +43 -0
  22. package/dist/common/helpers/logo.utils.d.ts +8 -0
  23. package/dist/common/helpers/motion.d.ts +9 -0
  24. package/dist/common/helpers/story.utils.d.ts +32 -0
  25. package/dist/common/props/surface/surface.props.d.ts +6 -0
  26. package/dist/components/Background/src/Background.d.ts +44 -0
  27. package/dist/components/Background/src/Background.js +576 -0
  28. package/dist/components/Background/src/Background.props.d.ts +20 -0
  29. package/dist/components/Background/src/Background.props.js +47 -0
  30. package/dist/components/Background/src/Background.styles.d.ts +3 -0
  31. package/dist/components/Badge/src/Badge.d.ts +28 -0
  32. package/dist/components/Badge/src/Badge.js +429 -0
  33. package/dist/components/Badge/src/Badge.playground.d.ts +2 -0
  34. package/dist/components/Badge/src/Badge.props.d.ts +16 -0
  35. package/dist/components/Badge/src/Badge.props.js +44 -0
  36. package/dist/components/Badge/src/Badge.styles.d.ts +2 -0
  37. package/dist/components/Button/src/Button.d.ts +138 -0
  38. package/dist/components/Button/src/Button.js +1102 -0
  39. package/dist/components/Button/src/Button.playground.d.ts +2 -0
  40. package/dist/components/Button/src/Button.props.d.ts +47 -0
  41. package/dist/components/Button/src/Button.props.js +79 -0
  42. package/dist/components/Button/src/Button.styles.d.ts +11 -0
  43. package/dist/components/Card/src/Card.d.ts +39 -0
  44. package/dist/components/Card/src/Card.js +564 -0
  45. package/dist/components/Card/src/Card.playground.d.ts +2 -0
  46. package/dist/components/Card/src/Card.props.d.ts +22 -0
  47. package/dist/components/Card/src/Card.props.js +42 -0
  48. package/dist/components/Card/src/Card.styles.d.ts +11 -0
  49. package/dist/components/CodeBlock/src/CodeBlock.d.ts +18 -0
  50. package/dist/components/CodeBlock/src/CodeBlock.js +372 -0
  51. package/dist/components/CodeBlock/src/CodeBlock.props.d.ts +1 -0
  52. package/dist/components/CodeBlock/src/CodeBlock.props.js +5 -0
  53. package/dist/components/CodeBlock/src/CodeBlock.styles.d.ts +9 -0
  54. package/dist/components/Container/src/Container.d.ts +26 -0
  55. package/dist/components/Container/src/Container.js +354 -0
  56. package/dist/components/Container/src/Container.props.d.ts +20 -0
  57. package/dist/components/Container/src/Container.props.js +49 -0
  58. package/dist/components/Container/src/Container.styles.d.ts +2 -0
  59. package/dist/components/Divider/src/Divider.d.ts +23 -0
  60. package/dist/components/Divider/src/Divider.js +250 -0
  61. package/dist/components/Divider/src/Divider.props.d.ts +7 -0
  62. package/dist/components/Divider/src/Divider.props.js +34 -0
  63. package/dist/components/Divider/src/Divider.styles.d.ts +2 -0
  64. package/dist/components/FeatureItem/src/FeatureItem.d.ts +30 -0
  65. package/dist/components/FeatureItem/src/FeatureItem.js +368 -0
  66. package/dist/components/FeatureItem/src/FeatureItem.props.d.ts +10 -0
  67. package/dist/components/FeatureItem/src/FeatureItem.props.js +37 -0
  68. package/dist/components/FeatureItem/src/FeatureItem.styles.d.ts +3 -0
  69. package/dist/components/FeatureTabs/src/FeatureTabs.d.ts +48 -0
  70. package/dist/components/FeatureTabs/src/FeatureTabs.js +1333 -0
  71. package/dist/components/FeatureTabs/src/FeatureTabs.props.d.ts +27 -0
  72. package/dist/components/FeatureTabs/src/FeatureTabs.props.js +80 -0
  73. package/dist/components/FeatureTabs/src/FeatureTabs.styles.d.ts +35 -0
  74. package/dist/components/Footer/src/Footer.d.ts +39 -0
  75. package/dist/components/Footer/src/Footer.js +361 -0
  76. package/dist/components/Footer/src/Footer.styles.d.ts +6 -0
  77. package/dist/components/FormBlock/src/FormBlock.d.ts +40 -0
  78. package/dist/components/FormBlock/src/FormBlock.js +476 -0
  79. package/dist/components/FormBlock/src/FormBlock.props.d.ts +5 -0
  80. package/dist/components/FormBlock/src/FormBlock.props.js +8 -0
  81. package/dist/components/FormBlock/src/FormBlock.styles.d.ts +6 -0
  82. package/dist/components/Grid/src/Grid.d.ts +35 -0
  83. package/dist/components/Grid/src/Grid.js +381 -0
  84. package/dist/components/Grid/src/Grid.props.d.ts +28 -0
  85. package/dist/components/Grid/src/Grid.props.js +57 -0
  86. package/dist/components/Grid/src/Grid.styles.d.ts +3 -0
  87. package/dist/components/Heading/src/Heading.d.ts +26 -0
  88. package/dist/components/Heading/src/Heading.js +755 -0
  89. package/dist/components/Heading/src/Heading.playground.d.ts +2 -0
  90. package/dist/components/Heading/src/Heading.props.d.ts +19 -0
  91. package/dist/components/Heading/src/Heading.props.js +47 -0
  92. package/dist/components/Heading/src/Heading.styles.d.ts +4 -0
  93. package/dist/components/HeadingBlock/src/HeadingBlock.d.ts +28 -0
  94. package/dist/components/HeadingBlock/src/HeadingBlock.js +288 -0
  95. package/dist/components/HeadingBlock/src/HeadingBlock.playground.d.ts +2 -0
  96. package/dist/components/HeadingBlock/src/HeadingBlock.props.d.ts +6 -0
  97. package/dist/components/HeadingBlock/src/HeadingBlock.props.js +33 -0
  98. package/dist/components/HeadingBlock/src/HeadingBlock.styles.d.ts +2 -0
  99. package/dist/components/Hero/src/Hero.d.ts +42 -0
  100. package/dist/components/Hero/src/Hero.js +506 -0
  101. package/dist/components/Hero/src/Hero.props.d.ts +22 -0
  102. package/dist/components/Hero/src/Hero.props.js +51 -0
  103. package/dist/components/Hero/src/Hero.styles.d.ts +10 -0
  104. package/dist/components/Icon/src/Icon.d.ts +67 -0
  105. package/dist/components/Icon/src/Icon.js +303 -0
  106. package/dist/components/Icon/src/Icon.props.d.ts +8 -0
  107. package/dist/components/Icon/src/Icon.props.js +35 -0
  108. package/dist/components/Icon/src/Icon.styles.d.ts +3 -0
  109. package/dist/components/Icon/src/icons/arrow-left.d.ts +1 -0
  110. package/dist/components/Icon/src/icons/arrow-left.js +6 -0
  111. package/dist/components/Icon/src/icons/arrow-right.d.ts +1 -0
  112. package/dist/components/Icon/src/icons/arrow-right.js +6 -0
  113. package/dist/components/Icon/src/icons/calendar.d.ts +1 -0
  114. package/dist/components/Icon/src/icons/calendar.js +6 -0
  115. package/dist/components/Icon/src/icons/check.d.ts +1 -0
  116. package/dist/components/Icon/src/icons/check.js +6 -0
  117. package/dist/components/Icon/src/icons/chevron-down.d.ts +1 -0
  118. package/dist/components/Icon/src/icons/chevron-down.js +6 -0
  119. package/dist/components/Icon/src/icons/chevron-left.d.ts +1 -0
  120. package/dist/components/Icon/src/icons/chevron-left.js +6 -0
  121. package/dist/components/Icon/src/icons/chevron-right.d.ts +1 -0
  122. package/dist/components/Icon/src/icons/chevron-right.js +6 -0
  123. package/dist/components/Icon/src/icons/chevron-up.d.ts +1 -0
  124. package/dist/components/Icon/src/icons/chevron-up.js +6 -0
  125. package/dist/components/Icon/src/icons/circle-alert.d.ts +1 -0
  126. package/dist/components/Icon/src/icons/circle-alert.js +6 -0
  127. package/dist/components/Icon/src/icons/circle-check.d.ts +1 -0
  128. package/dist/components/Icon/src/icons/circle-check.js +6 -0
  129. package/dist/components/Icon/src/icons/circle-x.d.ts +1 -0
  130. package/dist/components/Icon/src/icons/circle-x.js +6 -0
  131. package/dist/components/Icon/src/icons/copy.d.ts +1 -0
  132. package/dist/components/Icon/src/icons/copy.js +6 -0
  133. package/dist/components/Icon/src/icons/download.d.ts +1 -0
  134. package/dist/components/Icon/src/icons/download.js +6 -0
  135. package/dist/components/Icon/src/icons/ellipsis-vertical.d.ts +1 -0
  136. package/dist/components/Icon/src/icons/ellipsis-vertical.js +6 -0
  137. package/dist/components/Icon/src/icons/ellipsis.d.ts +1 -0
  138. package/dist/components/Icon/src/icons/ellipsis.js +6 -0
  139. package/dist/components/Icon/src/icons/external-link.d.ts +1 -0
  140. package/dist/components/Icon/src/icons/external-link.js +6 -0
  141. package/dist/components/Icon/src/icons/eye-off.d.ts +1 -0
  142. package/dist/components/Icon/src/icons/eye-off.js +6 -0
  143. package/dist/components/Icon/src/icons/eye.d.ts +1 -0
  144. package/dist/components/Icon/src/icons/eye.js +6 -0
  145. package/dist/components/Icon/src/icons/icon-names.d.ts +2 -0
  146. package/dist/components/Icon/src/icons/icon-names.js +36 -0
  147. package/dist/components/Icon/src/icons/index.d.ts +34 -0
  148. package/dist/components/Icon/src/icons/index.js +35 -0
  149. package/dist/components/Icon/src/icons/info.d.ts +1 -0
  150. package/dist/components/Icon/src/icons/info.js +6 -0
  151. package/dist/components/Icon/src/icons/loader.d.ts +1 -0
  152. package/dist/components/Icon/src/icons/loader.js +6 -0
  153. package/dist/components/Icon/src/icons/mail.d.ts +1 -0
  154. package/dist/components/Icon/src/icons/mail.js +6 -0
  155. package/dist/components/Icon/src/icons/menu.d.ts +1 -0
  156. package/dist/components/Icon/src/icons/menu.js +6 -0
  157. package/dist/components/Icon/src/icons/minus.d.ts +1 -0
  158. package/dist/components/Icon/src/icons/minus.js +6 -0
  159. package/dist/components/Icon/src/icons/pencil.d.ts +1 -0
  160. package/dist/components/Icon/src/icons/pencil.js +6 -0
  161. package/dist/components/Icon/src/icons/plus.d.ts +1 -0
  162. package/dist/components/Icon/src/icons/plus.js +6 -0
  163. package/dist/components/Icon/src/icons/search.d.ts +1 -0
  164. package/dist/components/Icon/src/icons/search.js +6 -0
  165. package/dist/components/Icon/src/icons/settings.d.ts +1 -0
  166. package/dist/components/Icon/src/icons/settings.js +6 -0
  167. package/dist/components/Icon/src/icons/trash-2.d.ts +1 -0
  168. package/dist/components/Icon/src/icons/trash-2.js +6 -0
  169. package/dist/components/Icon/src/icons/triangle-alert.d.ts +1 -0
  170. package/dist/components/Icon/src/icons/triangle-alert.js +6 -0
  171. package/dist/components/Icon/src/icons/upload.d.ts +1 -0
  172. package/dist/components/Icon/src/icons/upload.js +6 -0
  173. package/dist/components/Icon/src/icons/user.d.ts +1 -0
  174. package/dist/components/Icon/src/icons/user.js +6 -0
  175. package/dist/components/Icon/src/icons/x.d.ts +1 -0
  176. package/dist/components/Icon/src/icons/x.js +6 -0
  177. package/dist/components/Image/src/Image.d.ts +76 -0
  178. package/dist/components/Image/src/Image.js +456 -0
  179. package/dist/components/Image/src/Image.props.d.ts +35 -0
  180. package/dist/components/Image/src/Image.props.js +65 -0
  181. package/dist/components/Image/src/Image.styles.d.ts +4 -0
  182. package/dist/components/Input/src/Input.d.ts +60 -0
  183. package/dist/components/Input/src/Input.js +648 -0
  184. package/dist/components/Input/src/Input.playground.d.ts +2 -0
  185. package/dist/components/Input/src/Input.props.d.ts +13 -0
  186. package/dist/components/Input/src/Input.props.js +41 -0
  187. package/dist/components/Input/src/Input.styles.d.ts +6 -0
  188. package/dist/components/Modal/src/Modal.d.ts +166 -0
  189. package/dist/components/Modal/src/Modal.js +1434 -0
  190. package/dist/components/Modal/src/Modal.playground.d.ts +2 -0
  191. package/dist/components/Modal/src/Modal.props.d.ts +66 -0
  192. package/dist/components/Modal/src/Modal.props.js +65 -0
  193. package/dist/components/Modal/src/Modal.styles.d.ts +29 -0
  194. package/dist/components/Nav/src/Nav.d.ts +66 -0
  195. package/dist/components/Nav/src/Nav.js +750 -0
  196. package/dist/components/Nav/src/Nav.props.d.ts +8 -0
  197. package/dist/components/Nav/src/Nav.props.js +13 -0
  198. package/dist/components/Nav/src/Nav.styles.d.ts +10 -0
  199. package/dist/components/NavDropdownColumn/src/NavDropdownColumn.d.ts +17 -0
  200. package/dist/components/NavDropdownColumn/src/NavDropdownColumn.js +170 -0
  201. package/dist/components/NavDropdownColumn/src/NavDropdownColumn.styles.d.ts +1 -0
  202. package/dist/components/NavLink/src/NavLink.d.ts +191 -0
  203. package/dist/components/NavLink/src/NavLink.js +1916 -0
  204. package/dist/components/NavLink/src/NavLink.props.d.ts +38 -0
  205. package/dist/components/NavLink/src/NavLink.props.js +58 -0
  206. package/dist/components/NavLink/src/NavLink.styles.d.ts +22 -0
  207. package/dist/components/Stack/src/Stack.d.ts +30 -0
  208. package/dist/components/Stack/src/Stack.js +300 -0
  209. package/dist/components/Stack/src/Stack.props.d.ts +24 -0
  210. package/dist/components/Stack/src/Stack.props.js +53 -0
  211. package/dist/components/Stack/src/Stack.styles.d.ts +2 -0
  212. package/dist/components/Text/src/Text.d.ts +32 -0
  213. package/dist/components/Text/src/Text.js +327 -0
  214. package/dist/components/Text/src/Text.props.d.ts +23 -0
  215. package/dist/components/Text/src/Text.props.js +52 -0
  216. package/dist/components/Text/src/Text.styles.d.ts +2 -0
  217. package/dist/playground/types.d.ts +29 -0
  218. package/dist/playground-manifest.d.ts +6 -0
  219. package/dist/playground-manifest.js +556 -0
  220. package/dist/react/Background.d.ts +6 -0
  221. package/dist/react/Background.js +13 -0
  222. package/dist/react/Badge.d.ts +6 -0
  223. package/dist/react/Badge.js +13 -0
  224. package/dist/react/Button.d.ts +6 -0
  225. package/dist/react/Button.js +13 -0
  226. package/dist/react/Card.d.ts +6 -0
  227. package/dist/react/Card.js +13 -0
  228. package/dist/react/CodeBlock.d.ts +6 -0
  229. package/dist/react/CodeBlock.js +13 -0
  230. package/dist/react/Container.d.ts +6 -0
  231. package/dist/react/Container.js +13 -0
  232. package/dist/react/Divider.d.ts +6 -0
  233. package/dist/react/Divider.js +13 -0
  234. package/dist/react/FeatureItem.d.ts +6 -0
  235. package/dist/react/FeatureItem.js +13 -0
  236. package/dist/react/FeatureTabs.d.ts +6 -0
  237. package/dist/react/FeatureTabs.js +13 -0
  238. package/dist/react/Footer.d.ts +6 -0
  239. package/dist/react/Footer.js +13 -0
  240. package/dist/react/FormBlock.d.ts +6 -0
  241. package/dist/react/FormBlock.js +13 -0
  242. package/dist/react/Grid.d.ts +6 -0
  243. package/dist/react/Grid.js +13 -0
  244. package/dist/react/Heading.d.ts +6 -0
  245. package/dist/react/Heading.js +13 -0
  246. package/dist/react/HeadingBlock.d.ts +6 -0
  247. package/dist/react/HeadingBlock.js +13 -0
  248. package/dist/react/Hero.d.ts +6 -0
  249. package/dist/react/Hero.js +13 -0
  250. package/dist/react/Icon.d.ts +6 -0
  251. package/dist/react/Icon.js +13 -0
  252. package/dist/react/Image.d.ts +8 -0
  253. package/dist/react/Image.js +13 -0
  254. package/dist/react/Input.d.ts +8 -0
  255. package/dist/react/Input.js +13 -0
  256. package/dist/react/Modal.d.ts +10 -0
  257. package/dist/react/Modal.js +17 -0
  258. package/dist/react/Nav.d.ts +6 -0
  259. package/dist/react/Nav.js +13 -0
  260. package/dist/react/NavDropdownColumn.d.ts +6 -0
  261. package/dist/react/NavDropdownColumn.js +13 -0
  262. package/dist/react/NavLink.d.ts +8 -0
  263. package/dist/react/NavLink.js +13 -0
  264. package/dist/react/Stack.d.ts +6 -0
  265. package/dist/react/Stack.js +13 -0
  266. package/dist/react/Text.d.ts +6 -0
  267. package/dist/react/Text.js +13 -0
  268. package/dist/react/index.d.ts +24 -0
  269. package/dist/react/index.js +25 -0
  270. package/dist/surface/surface.props.js +33 -0
  271. package/package.json +352 -4
@@ -0,0 +1,1434 @@
1
+ var __legacyDecorateClassTS = function(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4
+ r = Reflect.decorate(decorators, target, key, desc);
5
+ else
6
+ for (var i = decorators.length - 1;i >= 0; i--)
7
+ if (d = decorators[i])
8
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+
12
+ // components/Modal/src/Modal.ts
13
+ import"../../Button/src/Button.js";
14
+ import { html as html2, nothing } from "lit";
15
+ import { property, query, state } from "lit/decorators.js";
16
+
17
+ // common/Base/Base.ts
18
+ import { html, LitElement } from "lit";
19
+
20
+ // common/helpers/define-element.ts
21
+ var defineElement = (tag, ctor) => {
22
+ if (typeof customElements === "undefined")
23
+ return;
24
+ if (!customElements.get(tag))
25
+ customElements.define(tag, ctor);
26
+ };
27
+
28
+ // common/Base/Base.css
29
+ import { css } from "lit";
30
+ var styles = css`/* Base reset in @layer base ensures it comes before utilities in Tailwind v4 cascade
31
+ This prevents the reset from overriding component utility classes */
32
+ @layer base {
33
+ :host {
34
+ display: block;
35
+ box-sizing: border-box;
36
+ line-height: 1.5;
37
+ -webkit-text-size-adjust: 100%;
38
+ tab-size: 4;
39
+ font-family: var(
40
+ --default-font-family,
41
+ var(--font-sans, ui-sans-serif, system-ui, sans-serif)
42
+ );
43
+ }
44
+
45
+ *,
46
+ *::before,
47
+ *::after {
48
+ box-sizing: inherit;
49
+ margin: 0;
50
+ padding: 0;
51
+ border: 0 solid;
52
+ }
53
+
54
+ :host h1,
55
+ :host h2,
56
+ :host h3,
57
+ :host h4,
58
+ :host h5,
59
+ :host h6 {
60
+ font-size: inherit;
61
+ font-weight: inherit;
62
+ margin: 0;
63
+ padding: 0;
64
+ }
65
+ }
66
+ `;
67
+ var Base_default = styles;
68
+
69
+ // common/Base/Base.ts
70
+ class Base extends LitElement {
71
+ static styles = Base_default;
72
+ updateTheme(changedProperties, surface) {
73
+ if (changedProperties.has("surface")) {
74
+ if (surface) {
75
+ this.setAttribute("data-theme", surface);
76
+ } else {
77
+ this.removeAttribute("data-theme");
78
+ }
79
+ }
80
+ }
81
+ emit(name, detail, options = {}) {
82
+ return this.dispatchEvent(new CustomEvent(name, {
83
+ detail,
84
+ bubbles: true,
85
+ composed: true,
86
+ cancelable: options.cancelable ?? false
87
+ }));
88
+ }
89
+ render() {
90
+ return html`<slot></slot>`;
91
+ }
92
+ }
93
+ defineElement("dsgn-base", Base);
94
+
95
+ // common/helpers/enum-validator.ts
96
+ var enumValidator = (propName, enumSet, candidateValue) => {
97
+ if (!enumSet.has(candidateValue)) {
98
+ throw new Error(`Invalid prop ${propName} of value ${candidateValue}. Expected one of: ${Array.from(enumSet).join(", ")}`);
99
+ }
100
+ };
101
+
102
+ // common/helpers/enum-creator.ts
103
+ var enumCreator = (acceptableValues, propName, type, other = {}) => {
104
+ const acceptableValuesSet = new Set(acceptableValues);
105
+ return {
106
+ type,
107
+ hasChanged(newValue, oldValue) {
108
+ if (newValue !== oldValue) {
109
+ enumValidator(propName, acceptableValuesSet, newValue);
110
+ return true;
111
+ }
112
+ return false;
113
+ },
114
+ ...other
115
+ };
116
+ };
117
+
118
+ // common/props/surface/surface.props.ts
119
+ var surfaceValues = {
120
+ LIGHT: "light",
121
+ DARK: "dark"
122
+ };
123
+ var surfaceProps = enumCreator(Object.values(surfaceValues), "surface", String, { reflect: true });
124
+
125
+ // components/Modal/src/Modal.ts
126
+ import {
127
+ buttonAppearanceValues,
128
+ buttonIconPositionValues
129
+ } from "../../Button/src/Button.props.js";
130
+
131
+ // components/Icon/src/icons/x.ts
132
+ import { svg } from "lit";
133
+ var x = svg`<path d="M18 6 6 18" /><path d="m6 6 12 12" />`;
134
+ // components/Modal/src/Modal.css
135
+ import { css as css2 } from "lit";
136
+ var styles2 = css2`/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
137
+ @layer properties;
138
+ @layer theme {
139
+ :root, :host {
140
+ --font-sans: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
141
+ 'Noto Color Emoji';
142
+ --spacing: 0.25rem;
143
+ --text-sm: 0.875rem;
144
+ --text-sm--line-height: calc(1.25 / 0.875);
145
+ --text-lg: 1.125rem;
146
+ --text-lg--line-height: calc(1.75 / 1.125);
147
+ --font-weight-semibold: 600;
148
+ --default-transition-duration: 150ms;
149
+ --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
150
+ --duration-moderate: var(--dsgn-src-duration-moderate, 240ms);
151
+ --duration-quick: var(--dsgn-src-duration-quick, 180ms);
152
+ --ease-emphasized: var(--dsgn-src-ease-emphasized, cubic-bezier(0.16, 1, 0.3, 1));
153
+ --radius-surface: var(--dsgn-src-radius-surface, 1rem);
154
+ --color-accent: inherit;
155
+ --color-focus: inherit;
156
+ --color-surface-elevated: inherit;
157
+ --color-text-primary: inherit;
158
+ --color-text-secondary: inherit;
159
+ --shadow-card: inherit;
160
+ --animate-fade-in: fade-in var(--duration-moderate) var(--ease-emphasized)
161
+ both;
162
+ --animate-fade-out: fade-out var(--duration-quick) var(--ease-emphasized) both;
163
+ --animate-scale-in: scale-in var(--duration-moderate) var(--ease-emphasized)
164
+ both;
165
+ --animate-scale-out: scale-out var(--duration-quick) var(--ease-emphasized)
166
+ both;
167
+ --animate-slide-in-left: slide-in-left var(--duration-moderate)
168
+ var(--ease-emphasized) both;
169
+ --animate-slide-out-left: slide-out-left var(--duration-quick)
170
+ var(--ease-emphasized) both;
171
+ --animate-slide-in-right: slide-in-right var(--duration-moderate)
172
+ var(--ease-emphasized) both;
173
+ --animate-slide-out-right: slide-out-right var(--duration-quick)
174
+ var(--ease-emphasized) both;
175
+ --animate-slide-in-top: slide-in-top var(--duration-moderate)
176
+ var(--ease-emphasized) both;
177
+ --animate-slide-out-top: slide-out-top var(--duration-quick)
178
+ var(--ease-emphasized) both;
179
+ --animate-slide-in-bottom: slide-in-bottom var(--duration-moderate)
180
+ var(--ease-emphasized) both;
181
+ --animate-slide-out-bottom: slide-out-bottom var(--duration-quick)
182
+ var(--ease-emphasized) both;
183
+ }
184
+ }
185
+ @layer utilities {
186
+ .collapse {
187
+ visibility: collapse;
188
+ }
189
+ .visible {
190
+ visibility: visible;
191
+ }
192
+ .fixed {
193
+ position: fixed;
194
+ }
195
+ .static {
196
+ position: static;
197
+ }
198
+ .inset-0 {
199
+ inset: calc(var(--spacing) * 0);
200
+ }
201
+ .box-border {
202
+ box-sizing: border-box;
203
+ }
204
+ .block {
205
+ display: block;
206
+ }
207
+ .flex {
208
+ display: flex;
209
+ }
210
+ .hidden {
211
+ display: none;
212
+ }
213
+ .inline {
214
+ display: inline;
215
+ }
216
+ .min-h-0 {
217
+ min-height: calc(var(--spacing) * 0);
218
+ }
219
+ .min-w-0 {
220
+ min-width: calc(var(--spacing) * 0);
221
+ }
222
+ .flex-1 {
223
+ flex: 1;
224
+ }
225
+ .flex-auto {
226
+ flex: auto;
227
+ }
228
+ .shrink-0 {
229
+ flex-shrink: 0;
230
+ }
231
+ .flex-col {
232
+ flex-direction: column;
233
+ }
234
+ .flex-wrap {
235
+ flex-wrap: wrap;
236
+ }
237
+ .items-center {
238
+ align-items: center;
239
+ }
240
+ .items-start {
241
+ align-items: flex-start;
242
+ }
243
+ .justify-between {
244
+ justify-content: space-between;
245
+ }
246
+ .justify-end {
247
+ justify-content: flex-end;
248
+ }
249
+ .gap-3 {
250
+ gap: calc(var(--spacing) * 3);
251
+ }
252
+ .gap-4 {
253
+ gap: calc(var(--spacing) * 4);
254
+ }
255
+ .overflow-hidden {
256
+ overflow: hidden;
257
+ }
258
+ .overflow-y-auto {
259
+ overflow-y: auto;
260
+ }
261
+ .overscroll-contain {
262
+ overscroll-behavior: contain;
263
+ }
264
+ .rounded-\\[var\\(--radius-surface\\)\\] {
265
+ border-radius: var(--radius-surface);
266
+ }
267
+ .border-0 {
268
+ border-style: var(--tw-border-style);
269
+ border-width: 0px;
270
+ }
271
+ .bg-surface-elevated {
272
+ background-color: var(--color-surface-elevated);
273
+ }
274
+ .p-0 {
275
+ padding: calc(var(--spacing) * 0);
276
+ }
277
+ .px-6 {
278
+ padding-inline: calc(var(--spacing) * 6);
279
+ }
280
+ .py-4 {
281
+ padding-block: calc(var(--spacing) * 4);
282
+ }
283
+ .pt-2 {
284
+ padding-top: calc(var(--spacing) * 2);
285
+ }
286
+ .pt-4 {
287
+ padding-top: calc(var(--spacing) * 4);
288
+ }
289
+ .pt-6 {
290
+ padding-top: calc(var(--spacing) * 6);
291
+ }
292
+ .pb-2 {
293
+ padding-bottom: calc(var(--spacing) * 2);
294
+ }
295
+ .pb-6 {
296
+ padding-bottom: calc(var(--spacing) * 6);
297
+ }
298
+ .font-sans {
299
+ font-family: var(--font-sans);
300
+ }
301
+ .text-lg {
302
+ font-size: var(--text-lg);
303
+ line-height: var(--tw-leading, var(--text-lg--line-height));
304
+ }
305
+ .text-sm {
306
+ font-size: var(--text-sm);
307
+ line-height: var(--tw-leading, var(--text-sm--line-height));
308
+ }
309
+ .font-semibold {
310
+ --tw-font-weight: var(--font-weight-semibold);
311
+ font-weight: var(--font-weight-semibold);
312
+ }
313
+ .text-text-primary {
314
+ color: var(--color-text-primary);
315
+ }
316
+ .text-text-secondary {
317
+ color: var(--color-text-secondary);
318
+ }
319
+ .shadow {
320
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
321
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
322
+ }
323
+ .shadow-\\[var\\(--shadow-card\\)\\,0_0_18px_color-mix\\(in_oklab\\,var\\(--color-accent\\)_14\\.625\\%\\,transparent\\)\\] {
324
+ --tw-shadow: var(--shadow-card), 0 0 18px var(--tw-shadow-color, color-mix(in srgb,inherit 14.625%,transparent));
325
+ @supports (color: color-mix(in lab, red, red)) {
326
+ --tw-shadow: var(--shadow-card), 0 0 18px var(--tw-shadow-color, color-mix(in oklab,var(--color-accent) 14.625%,transparent));
327
+ }
328
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
329
+ }
330
+ .transition {
331
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
332
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
333
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
334
+ }
335
+ .\\[--dsgn-modal-gutter\\:1rem\\] {
336
+ --dsgn-modal-gutter: 1rem;
337
+ }
338
+ .\\[--dsgn-modal-size\\:32rem\\] {
339
+ --dsgn-modal-size: 32rem;
340
+ }
341
+ .backdrop\\:bg-\\[rgb\\(2_6_23\\/0\\.6\\)\\] {
342
+ &::backdrop {
343
+ background-color: rgb(2 6 23/0.6);
344
+ }
345
+ }
346
+ .backdrop\\:backdrop-blur-\\[12px\\] {
347
+ &::backdrop {
348
+ --tw-backdrop-blur: blur(12px);
349
+ -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
350
+ backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
351
+ }
352
+ }
353
+ .open\\:flex {
354
+ &:is([open], :popover-open, :open) {
355
+ display: flex;
356
+ }
357
+ }
358
+ .focus-visible\\:outline-2 {
359
+ &:focus-visible {
360
+ outline-style: var(--tw-outline-style);
361
+ outline-width: 2px;
362
+ }
363
+ }
364
+ .focus-visible\\:outline-offset-2 {
365
+ &:focus-visible {
366
+ outline-offset: 2px;
367
+ }
368
+ }
369
+ .focus-visible\\:outline-focus {
370
+ &:focus-visible {
371
+ outline-color: var(--color-focus);
372
+ }
373
+ }
374
+ .data-\\[placement\\=bottom\\]\\:top-auto {
375
+ &[data-placement="bottom"] {
376
+ top: auto;
377
+ }
378
+ }
379
+ .data-\\[placement\\=bottom\\]\\:right-0 {
380
+ &[data-placement="bottom"] {
381
+ right: calc(var(--spacing) * 0);
382
+ }
383
+ }
384
+ .data-\\[placement\\=bottom\\]\\:bottom-0 {
385
+ &[data-placement="bottom"] {
386
+ bottom: calc(var(--spacing) * 0);
387
+ }
388
+ }
389
+ .data-\\[placement\\=bottom\\]\\:left-0 {
390
+ &[data-placement="bottom"] {
391
+ left: calc(var(--spacing) * 0);
392
+ }
393
+ }
394
+ .data-\\[placement\\=bottom\\]\\:m-0 {
395
+ &[data-placement="bottom"] {
396
+ margin: calc(var(--spacing) * 0);
397
+ }
398
+ }
399
+ .data-\\[placement\\=bottom\\]\\:max-h-\\[min\\(var\\(--dsgn-modal-size\\)\\,calc\\(100dvh-var\\(--dsgn-modal-gutter\\)\\)\\)\\] {
400
+ &[data-placement="bottom"] {
401
+ max-height: min(var(--dsgn-modal-size), calc(100dvh - var(--dsgn-modal-gutter)));
402
+ }
403
+ }
404
+ .data-\\[placement\\=bottom\\]\\:w-screen {
405
+ &[data-placement="bottom"] {
406
+ width: 100vw;
407
+ }
408
+ }
409
+ .data-\\[placement\\=bottom\\]\\:max-w-screen {
410
+ &[data-placement="bottom"] {
411
+ max-width: 100vw;
412
+ }
413
+ }
414
+ .data-\\[placement\\=bottom\\]\\:rounded-ee-none {
415
+ &[data-placement="bottom"] {
416
+ border-end-end-radius: 0;
417
+ }
418
+ }
419
+ .data-\\[placement\\=bottom\\]\\:rounded-es-none {
420
+ &[data-placement="bottom"] {
421
+ border-end-start-radius: 0;
422
+ }
423
+ }
424
+ .data-\\[placement\\=center\\]\\:m-auto {
425
+ &[data-placement="center"] {
426
+ margin: auto;
427
+ }
428
+ }
429
+ .data-\\[placement\\=center\\]\\:max-h-\\[calc\\(100dvh-2\\*var\\(--dsgn-modal-gutter\\)\\)\\] {
430
+ &[data-placement="center"] {
431
+ max-height: calc(100dvh - 2 * var(--dsgn-modal-gutter));
432
+ }
433
+ }
434
+ .data-\\[placement\\=center\\]\\:w-\\[min\\(var\\(--dsgn-modal-size\\)\\,calc\\(100vw-2\\*var\\(--dsgn-modal-gutter\\)\\)\\)\\] {
435
+ &[data-placement="center"] {
436
+ width: min(var(--dsgn-modal-size), calc(100vw - 2 * var(--dsgn-modal-gutter)));
437
+ }
438
+ }
439
+ .data-\\[placement\\=left\\]\\:top-0 {
440
+ &[data-placement="left"] {
441
+ top: calc(var(--spacing) * 0);
442
+ }
443
+ }
444
+ .data-\\[placement\\=left\\]\\:right-auto {
445
+ &[data-placement="left"] {
446
+ right: auto;
447
+ }
448
+ }
449
+ .data-\\[placement\\=left\\]\\:bottom-0 {
450
+ &[data-placement="left"] {
451
+ bottom: calc(var(--spacing) * 0);
452
+ }
453
+ }
454
+ .data-\\[placement\\=left\\]\\:left-0 {
455
+ &[data-placement="left"] {
456
+ left: calc(var(--spacing) * 0);
457
+ }
458
+ }
459
+ .data-\\[placement\\=left\\]\\:m-0 {
460
+ &[data-placement="left"] {
461
+ margin: calc(var(--spacing) * 0);
462
+ }
463
+ }
464
+ .data-\\[placement\\=left\\]\\:h-dvh {
465
+ &[data-placement="left"] {
466
+ height: 100dvh;
467
+ }
468
+ }
469
+ .data-\\[placement\\=left\\]\\:max-h-dvh {
470
+ &[data-placement="left"] {
471
+ max-height: 100dvh;
472
+ }
473
+ }
474
+ .data-\\[placement\\=left\\]\\:w-\\[min\\(var\\(--dsgn-modal-size\\)\\,calc\\(100vw-var\\(--dsgn-modal-gutter\\)\\)\\)\\] {
475
+ &[data-placement="left"] {
476
+ width: min(var(--dsgn-modal-size), calc(100vw - var(--dsgn-modal-gutter)));
477
+ }
478
+ }
479
+ .data-\\[placement\\=left\\]\\:rounded-ss-none {
480
+ &[data-placement="left"] {
481
+ border-start-start-radius: 0;
482
+ }
483
+ }
484
+ .data-\\[placement\\=left\\]\\:rounded-es-none {
485
+ &[data-placement="left"] {
486
+ border-end-start-radius: 0;
487
+ }
488
+ }
489
+ .data-\\[placement\\=right\\]\\:top-0 {
490
+ &[data-placement="right"] {
491
+ top: calc(var(--spacing) * 0);
492
+ }
493
+ }
494
+ .data-\\[placement\\=right\\]\\:right-0 {
495
+ &[data-placement="right"] {
496
+ right: calc(var(--spacing) * 0);
497
+ }
498
+ }
499
+ .data-\\[placement\\=right\\]\\:bottom-0 {
500
+ &[data-placement="right"] {
501
+ bottom: calc(var(--spacing) * 0);
502
+ }
503
+ }
504
+ .data-\\[placement\\=right\\]\\:left-auto {
505
+ &[data-placement="right"] {
506
+ left: auto;
507
+ }
508
+ }
509
+ .data-\\[placement\\=right\\]\\:m-0 {
510
+ &[data-placement="right"] {
511
+ margin: calc(var(--spacing) * 0);
512
+ }
513
+ }
514
+ .data-\\[placement\\=right\\]\\:h-dvh {
515
+ &[data-placement="right"] {
516
+ height: 100dvh;
517
+ }
518
+ }
519
+ .data-\\[placement\\=right\\]\\:max-h-dvh {
520
+ &[data-placement="right"] {
521
+ max-height: 100dvh;
522
+ }
523
+ }
524
+ .data-\\[placement\\=right\\]\\:w-\\[min\\(var\\(--dsgn-modal-size\\)\\,calc\\(100vw-var\\(--dsgn-modal-gutter\\)\\)\\)\\] {
525
+ &[data-placement="right"] {
526
+ width: min(var(--dsgn-modal-size), calc(100vw - var(--dsgn-modal-gutter)));
527
+ }
528
+ }
529
+ .data-\\[placement\\=right\\]\\:rounded-se-none {
530
+ &[data-placement="right"] {
531
+ border-start-end-radius: 0;
532
+ }
533
+ }
534
+ .data-\\[placement\\=right\\]\\:rounded-ee-none {
535
+ &[data-placement="right"] {
536
+ border-end-end-radius: 0;
537
+ }
538
+ }
539
+ .data-\\[placement\\=top\\]\\:top-0 {
540
+ &[data-placement="top"] {
541
+ top: calc(var(--spacing) * 0);
542
+ }
543
+ }
544
+ .data-\\[placement\\=top\\]\\:right-0 {
545
+ &[data-placement="top"] {
546
+ right: calc(var(--spacing) * 0);
547
+ }
548
+ }
549
+ .data-\\[placement\\=top\\]\\:bottom-auto {
550
+ &[data-placement="top"] {
551
+ bottom: auto;
552
+ }
553
+ }
554
+ .data-\\[placement\\=top\\]\\:left-0 {
555
+ &[data-placement="top"] {
556
+ left: calc(var(--spacing) * 0);
557
+ }
558
+ }
559
+ .data-\\[placement\\=top\\]\\:m-0 {
560
+ &[data-placement="top"] {
561
+ margin: calc(var(--spacing) * 0);
562
+ }
563
+ }
564
+ .data-\\[placement\\=top\\]\\:max-h-\\[min\\(var\\(--dsgn-modal-size\\)\\,calc\\(100dvh-var\\(--dsgn-modal-gutter\\)\\)\\)\\] {
565
+ &[data-placement="top"] {
566
+ max-height: min(var(--dsgn-modal-size), calc(100dvh - var(--dsgn-modal-gutter)));
567
+ }
568
+ }
569
+ .data-\\[placement\\=top\\]\\:w-screen {
570
+ &[data-placement="top"] {
571
+ width: 100vw;
572
+ }
573
+ }
574
+ .data-\\[placement\\=top\\]\\:max-w-screen {
575
+ &[data-placement="top"] {
576
+ max-width: 100vw;
577
+ }
578
+ }
579
+ .data-\\[placement\\=top\\]\\:rounded-ss-none {
580
+ &[data-placement="top"] {
581
+ border-start-start-radius: 0;
582
+ }
583
+ }
584
+ .data-\\[placement\\=top\\]\\:rounded-se-none {
585
+ &[data-placement="top"] {
586
+ border-start-end-radius: 0;
587
+ }
588
+ }
589
+ .data-\\[size\\=full\\]\\:inset-0 {
590
+ &[data-size="full"] {
591
+ inset: calc(var(--spacing) * 0);
592
+ }
593
+ }
594
+ .data-\\[size\\=full\\]\\:m-0 {
595
+ &[data-size="full"] {
596
+ margin: calc(var(--spacing) * 0);
597
+ }
598
+ }
599
+ .data-\\[size\\=full\\]\\:h-dvh {
600
+ &[data-size="full"] {
601
+ height: 100dvh;
602
+ }
603
+ }
604
+ .data-\\[size\\=full\\]\\:max-h-dvh {
605
+ &[data-size="full"] {
606
+ max-height: 100dvh;
607
+ }
608
+ }
609
+ .data-\\[size\\=full\\]\\:w-screen {
610
+ &[data-size="full"] {
611
+ width: 100vw;
612
+ }
613
+ }
614
+ .data-\\[size\\=full\\]\\:max-w-screen {
615
+ &[data-size="full"] {
616
+ max-width: 100vw;
617
+ }
618
+ }
619
+ .data-\\[size\\=full\\]\\:rounded-none {
620
+ &[data-size="full"] {
621
+ border-radius: 0;
622
+ }
623
+ }
624
+ .data-\\[size\\=lg\\]\\:\\[--dsgn-modal-size\\:42rem\\] {
625
+ &[data-size="lg"] {
626
+ --dsgn-modal-size: 42rem;
627
+ }
628
+ }
629
+ .data-\\[size\\=md\\]\\:\\[--dsgn-modal-size\\:32rem\\] {
630
+ &[data-size="md"] {
631
+ --dsgn-modal-size: 32rem;
632
+ }
633
+ }
634
+ .data-\\[size\\=sm\\]\\:\\[--dsgn-modal-size\\:24rem\\] {
635
+ &[data-size="sm"] {
636
+ --dsgn-modal-size: 24rem;
637
+ }
638
+ }
639
+ .data-\\[size\\=xl\\]\\:\\[--dsgn-modal-size\\:56rem\\] {
640
+ &[data-size="xl"] {
641
+ --dsgn-modal-size: 56rem;
642
+ }
643
+ }
644
+ .data-\\[state\\=closed\\]\\:backdrop\\:animate-fade-out {
645
+ &[data-state="closed"] {
646
+ &::backdrop {
647
+ animation: var(--animate-fade-out);
648
+ }
649
+ }
650
+ }
651
+ .data-\\[motion\\=bottom\\]\\:data-\\[state\\=closed\\]\\:animate-slide-out-bottom {
652
+ &[data-motion="bottom"] {
653
+ &[data-state="closed"] {
654
+ animation: var(--animate-slide-out-bottom);
655
+ }
656
+ }
657
+ }
658
+ .data-\\[motion\\=center\\]\\:data-\\[state\\=closed\\]\\:animate-scale-out {
659
+ &[data-motion="center"] {
660
+ &[data-state="closed"] {
661
+ animation: var(--animate-scale-out);
662
+ }
663
+ }
664
+ }
665
+ .data-\\[motion\\=left\\]\\:data-\\[state\\=closed\\]\\:animate-slide-out-left {
666
+ &[data-motion="left"] {
667
+ &[data-state="closed"] {
668
+ animation: var(--animate-slide-out-left);
669
+ }
670
+ }
671
+ }
672
+ .data-\\[motion\\=none\\]\\:data-\\[state\\=closed\\]\\:animate-fade-out {
673
+ &[data-motion="none"] {
674
+ &[data-state="closed"] {
675
+ animation: var(--animate-fade-out);
676
+ }
677
+ }
678
+ }
679
+ .data-\\[motion\\=right\\]\\:data-\\[state\\=closed\\]\\:animate-slide-out-right {
680
+ &[data-motion="right"] {
681
+ &[data-state="closed"] {
682
+ animation: var(--animate-slide-out-right);
683
+ }
684
+ }
685
+ }
686
+ .data-\\[motion\\=top\\]\\:data-\\[state\\=closed\\]\\:animate-slide-out-top {
687
+ &[data-motion="top"] {
688
+ &[data-state="closed"] {
689
+ animation: var(--animate-slide-out-top);
690
+ }
691
+ }
692
+ }
693
+ .data-\\[state\\=open\\]\\:backdrop\\:animate-fade-in {
694
+ &[data-state="open"] {
695
+ &::backdrop {
696
+ animation: var(--animate-fade-in);
697
+ }
698
+ }
699
+ }
700
+ .data-\\[motion\\=bottom\\]\\:data-\\[state\\=open\\]\\:animate-slide-in-bottom {
701
+ &[data-motion="bottom"] {
702
+ &[data-state="open"] {
703
+ animation: var(--animate-slide-in-bottom);
704
+ }
705
+ }
706
+ }
707
+ .data-\\[motion\\=center\\]\\:data-\\[state\\=open\\]\\:animate-scale-in {
708
+ &[data-motion="center"] {
709
+ &[data-state="open"] {
710
+ animation: var(--animate-scale-in);
711
+ }
712
+ }
713
+ }
714
+ .data-\\[motion\\=left\\]\\:data-\\[state\\=open\\]\\:animate-slide-in-left {
715
+ &[data-motion="left"] {
716
+ &[data-state="open"] {
717
+ animation: var(--animate-slide-in-left);
718
+ }
719
+ }
720
+ }
721
+ .data-\\[motion\\=none\\]\\:data-\\[state\\=open\\]\\:animate-fade-in {
722
+ &[data-motion="none"] {
723
+ &[data-state="open"] {
724
+ animation: var(--animate-fade-in);
725
+ }
726
+ }
727
+ }
728
+ .data-\\[motion\\=right\\]\\:data-\\[state\\=open\\]\\:animate-slide-in-right {
729
+ &[data-motion="right"] {
730
+ &[data-state="open"] {
731
+ animation: var(--animate-slide-in-right);
732
+ }
733
+ }
734
+ }
735
+ .data-\\[motion\\=top\\]\\:data-\\[state\\=open\\]\\:animate-slide-in-top {
736
+ &[data-motion="top"] {
737
+ &[data-state="open"] {
738
+ animation: var(--animate-slide-in-top);
739
+ }
740
+ }
741
+ }
742
+ .motion-reduce\\:data-\\[motion\\]\\:data-\\[state\\=closed\\]\\:animate-fade-out {
743
+ @media (prefers-reduced-motion: reduce) {
744
+ &[data-motion] {
745
+ &[data-state="closed"] {
746
+ animation: var(--animate-fade-out);
747
+ }
748
+ }
749
+ }
750
+ }
751
+ .motion-reduce\\:data-\\[motion\\]\\:data-\\[state\\=open\\]\\:animate-fade-in {
752
+ @media (prefers-reduced-motion: reduce) {
753
+ &[data-motion] {
754
+ &[data-state="open"] {
755
+ animation: var(--animate-fade-in);
756
+ }
757
+ }
758
+ }
759
+ }
760
+ }
761
+ @property --dsgn-border-sweep-angle {
762
+ syntax: '<angle>';
763
+ inherits: false;
764
+ initial-value: 0deg;
765
+ }
766
+ @property --tw-border-style {
767
+ syntax: "*";
768
+ inherits: false;
769
+ initial-value: solid;
770
+ }
771
+ @property --tw-font-weight {
772
+ syntax: "*";
773
+ inherits: false;
774
+ }
775
+ @property --tw-shadow {
776
+ syntax: "*";
777
+ inherits: false;
778
+ initial-value: 0 0 #0000;
779
+ }
780
+ @property --tw-shadow-color {
781
+ syntax: "*";
782
+ inherits: false;
783
+ }
784
+ @property --tw-shadow-alpha {
785
+ syntax: "<percentage>";
786
+ inherits: false;
787
+ initial-value: 100%;
788
+ }
789
+ @property --tw-inset-shadow {
790
+ syntax: "*";
791
+ inherits: false;
792
+ initial-value: 0 0 #0000;
793
+ }
794
+ @property --tw-inset-shadow-color {
795
+ syntax: "*";
796
+ inherits: false;
797
+ }
798
+ @property --tw-inset-shadow-alpha {
799
+ syntax: "<percentage>";
800
+ inherits: false;
801
+ initial-value: 100%;
802
+ }
803
+ @property --tw-ring-color {
804
+ syntax: "*";
805
+ inherits: false;
806
+ }
807
+ @property --tw-ring-shadow {
808
+ syntax: "*";
809
+ inherits: false;
810
+ initial-value: 0 0 #0000;
811
+ }
812
+ @property --tw-inset-ring-color {
813
+ syntax: "*";
814
+ inherits: false;
815
+ }
816
+ @property --tw-inset-ring-shadow {
817
+ syntax: "*";
818
+ inherits: false;
819
+ initial-value: 0 0 #0000;
820
+ }
821
+ @property --tw-ring-inset {
822
+ syntax: "*";
823
+ inherits: false;
824
+ }
825
+ @property --tw-ring-offset-width {
826
+ syntax: "<length>";
827
+ inherits: false;
828
+ initial-value: 0px;
829
+ }
830
+ @property --tw-ring-offset-color {
831
+ syntax: "*";
832
+ inherits: false;
833
+ initial-value: #fff;
834
+ }
835
+ @property --tw-ring-offset-shadow {
836
+ syntax: "*";
837
+ inherits: false;
838
+ initial-value: 0 0 #0000;
839
+ }
840
+ @property --tw-backdrop-blur {
841
+ syntax: "*";
842
+ inherits: false;
843
+ }
844
+ @property --tw-backdrop-brightness {
845
+ syntax: "*";
846
+ inherits: false;
847
+ }
848
+ @property --tw-backdrop-contrast {
849
+ syntax: "*";
850
+ inherits: false;
851
+ }
852
+ @property --tw-backdrop-grayscale {
853
+ syntax: "*";
854
+ inherits: false;
855
+ }
856
+ @property --tw-backdrop-hue-rotate {
857
+ syntax: "*";
858
+ inherits: false;
859
+ }
860
+ @property --tw-backdrop-invert {
861
+ syntax: "*";
862
+ inherits: false;
863
+ }
864
+ @property --tw-backdrop-opacity {
865
+ syntax: "*";
866
+ inherits: false;
867
+ }
868
+ @property --tw-backdrop-saturate {
869
+ syntax: "*";
870
+ inherits: false;
871
+ }
872
+ @property --tw-backdrop-sepia {
873
+ syntax: "*";
874
+ inherits: false;
875
+ }
876
+ @property --tw-outline-style {
877
+ syntax: "*";
878
+ inherits: false;
879
+ initial-value: solid;
880
+ }
881
+ @keyframes fade-in {
882
+ from {
883
+ opacity: 0;
884
+ }
885
+ to {
886
+ opacity: 1;
887
+ }
888
+ }
889
+ @keyframes fade-out {
890
+ from {
891
+ opacity: 1;
892
+ }
893
+ to {
894
+ opacity: 0;
895
+ }
896
+ }
897
+ @keyframes scale-in {
898
+ from {
899
+ opacity: 0;
900
+ transform: scale(0.96);
901
+ }
902
+ to {
903
+ opacity: 1;
904
+ transform: none;
905
+ }
906
+ }
907
+ @keyframes scale-out {
908
+ from {
909
+ opacity: 1;
910
+ transform: none;
911
+ }
912
+ to {
913
+ opacity: 0;
914
+ transform: scale(0.96);
915
+ }
916
+ }
917
+ @keyframes slide-in-left {
918
+ from {
919
+ transform: translateX(-100%);
920
+ }
921
+ to {
922
+ transform: none;
923
+ }
924
+ }
925
+ @keyframes slide-out-left {
926
+ from {
927
+ transform: none;
928
+ }
929
+ to {
930
+ transform: translateX(-100%);
931
+ }
932
+ }
933
+ @keyframes slide-in-right {
934
+ from {
935
+ transform: translateX(100%);
936
+ }
937
+ to {
938
+ transform: none;
939
+ }
940
+ }
941
+ @keyframes slide-out-right {
942
+ from {
943
+ transform: none;
944
+ }
945
+ to {
946
+ transform: translateX(100%);
947
+ }
948
+ }
949
+ @keyframes slide-in-top {
950
+ from {
951
+ transform: translateY(-100%);
952
+ }
953
+ to {
954
+ transform: none;
955
+ }
956
+ }
957
+ @keyframes slide-out-top {
958
+ from {
959
+ transform: none;
960
+ }
961
+ to {
962
+ transform: translateY(-100%);
963
+ }
964
+ }
965
+ @keyframes slide-in-bottom {
966
+ from {
967
+ transform: translateY(100%);
968
+ }
969
+ to {
970
+ transform: none;
971
+ }
972
+ }
973
+ @keyframes slide-out-bottom {
974
+ from {
975
+ transform: none;
976
+ }
977
+ to {
978
+ transform: translateY(100%);
979
+ }
980
+ }
981
+ @layer properties {
982
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
983
+ *, ::before, ::after, ::backdrop {
984
+ --tw-border-style: solid;
985
+ --tw-font-weight: initial;
986
+ --tw-shadow: 0 0 #0000;
987
+ --tw-shadow-color: initial;
988
+ --tw-shadow-alpha: 100%;
989
+ --tw-inset-shadow: 0 0 #0000;
990
+ --tw-inset-shadow-color: initial;
991
+ --tw-inset-shadow-alpha: 100%;
992
+ --tw-ring-color: initial;
993
+ --tw-ring-shadow: 0 0 #0000;
994
+ --tw-inset-ring-color: initial;
995
+ --tw-inset-ring-shadow: 0 0 #0000;
996
+ --tw-ring-inset: initial;
997
+ --tw-ring-offset-width: 0px;
998
+ --tw-ring-offset-color: #fff;
999
+ --tw-ring-offset-shadow: 0 0 #0000;
1000
+ --tw-backdrop-blur: initial;
1001
+ --tw-backdrop-brightness: initial;
1002
+ --tw-backdrop-contrast: initial;
1003
+ --tw-backdrop-grayscale: initial;
1004
+ --tw-backdrop-hue-rotate: initial;
1005
+ --tw-backdrop-invert: initial;
1006
+ --tw-backdrop-opacity: initial;
1007
+ --tw-backdrop-saturate: initial;
1008
+ --tw-backdrop-sepia: initial;
1009
+ --tw-outline-style: solid;
1010
+ --dsgn-border-sweep-angle: 0deg;
1011
+ }
1012
+ }
1013
+ }
1014
+ `;
1015
+ var Modal_default = styles2;
1016
+
1017
+ // components/Modal/src/Modal.props.ts
1018
+ var modalPlacementValues = {
1019
+ CENTER: "center",
1020
+ LEFT: "left",
1021
+ RIGHT: "right",
1022
+ TOP: "top",
1023
+ BOTTOM: "bottom"
1024
+ };
1025
+ var modalPlacementProps = enumCreator(Object.values(modalPlacementValues), "placement", String, { reflect: true });
1026
+ var modalMotionValues = {
1027
+ INHERIT: "inherit",
1028
+ NONE: "none",
1029
+ CENTER: "center",
1030
+ LEFT: "left",
1031
+ RIGHT: "right",
1032
+ TOP: "top",
1033
+ BOTTOM: "bottom"
1034
+ };
1035
+ var modalMotionProps = enumCreator(Object.values(modalMotionValues), "motion", String, { reflect: true });
1036
+ var modalSizeValues = {
1037
+ SM: "sm",
1038
+ MD: "md",
1039
+ LG: "lg",
1040
+ XL: "xl",
1041
+ FULL: "full"
1042
+ };
1043
+ var modalSizeProps = enumCreator(Object.values(modalSizeValues), "size", String, { reflect: true });
1044
+ var modalCloseReasonValues = {
1045
+ API: "api",
1046
+ ESCAPE: "escape",
1047
+ BACKDROP: "backdrop",
1048
+ CLOSE_CONTROL: "close-control"
1049
+ };
1050
+
1051
+ // ../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
1052
+ function r(e) {
1053
+ var t, f, n = "";
1054
+ if (typeof e == "string" || typeof e == "number")
1055
+ n += e;
1056
+ else if (typeof e == "object")
1057
+ if (Array.isArray(e)) {
1058
+ var o = e.length;
1059
+ for (t = 0;t < o; t++)
1060
+ e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
1061
+ } else
1062
+ for (f in e)
1063
+ e[f] && (n && (n += " "), n += f);
1064
+ return n;
1065
+ }
1066
+ function clsx() {
1067
+ for (var e, t, f = 0, n = "", o = arguments.length;f < o; f++)
1068
+ (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
1069
+ return n;
1070
+ }
1071
+ var clsx_default = clsx;
1072
+
1073
+ // components/Modal/src/Modal.styles.ts
1074
+ import { css as css3 } from "lit";
1075
+ var hostStyles = css3`
1076
+ /* The host is a passive wrapper; the dialog is promoted to the top layer. */
1077
+ :host {
1078
+ display: contents;
1079
+ }
1080
+ `;
1081
+ var dialogClasses = () => clsx_default("box-border", "p-0", "border-0", "overflow-hidden", "flex-col", "open:flex", "text-text-primary", "bg-surface-elevated", "rounded-[var(--radius-surface)]", "shadow-[var(--shadow-card),0_0_18px_color-mix(in_oklab,var(--color-accent)_14.625%,transparent)]", "focus-visible:outline-2", "focus-visible:outline-focus", "focus-visible:outline-offset-2", "[--dsgn-modal-size:32rem]", "[--dsgn-modal-gutter:1rem]", "data-[size=sm]:[--dsgn-modal-size:24rem]", "data-[size=md]:[--dsgn-modal-size:32rem]", "data-[size=lg]:[--dsgn-modal-size:42rem]", "data-[size=xl]:[--dsgn-modal-size:56rem]", "data-[placement=center]:m-auto", "data-[placement=center]:w-[min(var(--dsgn-modal-size),calc(100vw-2*var(--dsgn-modal-gutter)))]", "data-[placement=center]:max-h-[calc(100dvh-2*var(--dsgn-modal-gutter))]", "data-[placement=left]:m-0", "data-[placement=left]:top-0", "data-[placement=left]:bottom-0", "data-[placement=left]:h-dvh", "data-[placement=left]:max-h-dvh", "data-[placement=left]:w-[min(var(--dsgn-modal-size),calc(100vw-var(--dsgn-modal-gutter)))]", "data-[placement=left]:left-0", "data-[placement=left]:right-auto", "data-[placement=left]:rounded-ss-none", "data-[placement=left]:rounded-es-none", "data-[placement=right]:m-0", "data-[placement=right]:top-0", "data-[placement=right]:bottom-0", "data-[placement=right]:h-dvh", "data-[placement=right]:max-h-dvh", "data-[placement=right]:w-[min(var(--dsgn-modal-size),calc(100vw-var(--dsgn-modal-gutter)))]", "data-[placement=right]:left-auto", "data-[placement=right]:right-0", "data-[placement=right]:rounded-se-none", "data-[placement=right]:rounded-ee-none", "data-[placement=top]:m-0", "data-[placement=top]:left-0", "data-[placement=top]:right-0", "data-[placement=top]:w-screen", "data-[placement=top]:max-w-screen", "data-[placement=top]:max-h-[min(var(--dsgn-modal-size),calc(100dvh-var(--dsgn-modal-gutter)))]", "data-[placement=top]:top-0", "data-[placement=top]:bottom-auto", "data-[placement=top]:rounded-ss-none", "data-[placement=top]:rounded-se-none", "data-[placement=bottom]:m-0", "data-[placement=bottom]:left-0", "data-[placement=bottom]:right-0", "data-[placement=bottom]:w-screen", "data-[placement=bottom]:max-w-screen", "data-[placement=bottom]:max-h-[min(var(--dsgn-modal-size),calc(100dvh-var(--dsgn-modal-gutter)))]", "data-[placement=bottom]:top-auto", "data-[placement=bottom]:bottom-0", "data-[placement=bottom]:rounded-es-none", "data-[placement=bottom]:rounded-ee-none", "data-[size=full]:inset-0", "data-[size=full]:m-0", "data-[size=full]:w-screen", "data-[size=full]:max-w-screen", "data-[size=full]:h-dvh", "data-[size=full]:max-h-dvh", "data-[size=full]:rounded-none", "backdrop:bg-[rgb(2_6_23/0.6)]", "backdrop:backdrop-blur-[12px]", "data-[state=open]:backdrop:animate-fade-in", "data-[state=closed]:backdrop:animate-fade-out", "data-[motion=center]:data-[state=open]:animate-scale-in", "data-[motion=center]:data-[state=closed]:animate-scale-out", "data-[motion=left]:data-[state=open]:animate-slide-in-left", "data-[motion=left]:data-[state=closed]:animate-slide-out-left", "data-[motion=right]:data-[state=open]:animate-slide-in-right", "data-[motion=right]:data-[state=closed]:animate-slide-out-right", "data-[motion=top]:data-[state=open]:animate-slide-in-top", "data-[motion=top]:data-[state=closed]:animate-slide-out-top", "data-[motion=bottom]:data-[state=open]:animate-slide-in-bottom", "data-[motion=bottom]:data-[state=closed]:animate-slide-out-bottom", "data-[motion=none]:data-[state=open]:animate-fade-in", "data-[motion=none]:data-[state=closed]:animate-fade-out", "motion-reduce:data-[motion]:data-[state=open]:animate-fade-in", "motion-reduce:data-[motion]:data-[state=closed]:animate-fade-out");
1082
+ var panelClasses = () => clsx_default("flex", "flex-col", "flex-auto", "min-h-0", "font-sans");
1083
+ var headerClasses = (visible) => clsx_default("shrink-0", "items-start", "justify-between", "gap-4", "px-6", "pt-6", "pb-2", visible ? "flex" : "hidden");
1084
+ var headingClasses = () => clsx_default("min-w-0", "text-lg", "font-semibold", "text-text-primary");
1085
+ var closeSlotClasses = () => clsx_default("shrink-0");
1086
+ var descriptionClasses = (visible) => clsx_default("shrink-0", "px-6", "pt-2", "pb-2", "text-sm", "text-text-secondary", visible ? "block" : "hidden");
1087
+ var bodyClasses = () => clsx_default("flex-1", "min-h-0", "overflow-y-auto", "overscroll-contain", "px-6", "py-4", "text-text-primary");
1088
+ var footerClasses = (visible) => clsx_default("shrink-0", "flex-wrap", "items-center", "justify-end", "gap-3", "px-6", "pt-4", "pb-6", visible ? "flex" : "hidden");
1089
+
1090
+ // components/Modal/src/Modal.ts
1091
+ var DEFAULT_CLOSE_LABEL = "Close";
1092
+ var deepActiveElement = () => {
1093
+ let active = document.activeElement;
1094
+ while (active?.shadowRoot?.activeElement) {
1095
+ active = active.shadowRoot.activeElement;
1096
+ }
1097
+ return active;
1098
+ };
1099
+ var scrollLockCount = 0;
1100
+ var restoreBodyOverflow = "";
1101
+ var lockBodyScroll = () => {
1102
+ if (typeof document === "undefined")
1103
+ return;
1104
+ if (scrollLockCount === 0) {
1105
+ restoreBodyOverflow = document.body.style.overflow;
1106
+ document.body.style.setProperty("overflow", "hidden");
1107
+ }
1108
+ scrollLockCount += 1;
1109
+ };
1110
+ var unlockBodyScroll = () => {
1111
+ if (typeof document === "undefined" || scrollLockCount === 0)
1112
+ return;
1113
+ scrollLockCount -= 1;
1114
+ if (scrollLockCount !== 0)
1115
+ return;
1116
+ if (restoreBodyOverflow) {
1117
+ document.body.style.setProperty("overflow", restoreBodyOverflow);
1118
+ } else {
1119
+ document.body.style.removeProperty("overflow");
1120
+ }
1121
+ };
1122
+ var whenAnimationsSettle = async (dialog) => {
1123
+ if (typeof dialog.getAnimations !== "function")
1124
+ return;
1125
+ const animations = dialog.getAnimations({ subtree: true }).filter((animation) => {
1126
+ const effect = animation.effect;
1127
+ return effect?.target === dialog;
1128
+ });
1129
+ if (animations.length === 0)
1130
+ return;
1131
+ await Promise.allSettled(animations.map((animation) => animation.finished));
1132
+ };
1133
+ var isInTopLayer = (dialog) => {
1134
+ try {
1135
+ return dialog.matches(":modal");
1136
+ } catch {
1137
+ return dialog.open;
1138
+ }
1139
+ };
1140
+
1141
+ class Modal extends Base {
1142
+ constructor() {
1143
+ super(...arguments);
1144
+ this.surface = surfaceValues.LIGHT;
1145
+ this.open = false;
1146
+ this.placement = modalPlacementValues.CENTER;
1147
+ this.motion = modalMotionValues.INHERIT;
1148
+ this.size = modalSizeValues.MD;
1149
+ this.ariaLabel = "";
1150
+ this.closeLabel = DEFAULT_CLOSE_LABEL;
1151
+ this.noCloseControl = false;
1152
+ this.noBackdropDismiss = false;
1153
+ this.noEscapeDismiss = false;
1154
+ this._closing = false;
1155
+ this._hasHeading = false;
1156
+ this._hasDescription = false;
1157
+ this._hasFooter = false;
1158
+ this._hasCloseControl = false;
1159
+ this._closeReason = modalCloseReasonValues.API;
1160
+ this._returnValue = "";
1161
+ this._previouslyFocused = null;
1162
+ this._pointerDownOnBackdrop = false;
1163
+ this._holdsScrollLock = false;
1164
+ }
1165
+ static styles = [Base.styles, Modal_default, hostStyles];
1166
+ get _hasCloseAffordance() {
1167
+ return this._hasCloseControl || !this.noCloseControl;
1168
+ }
1169
+ get _motionOrigin() {
1170
+ return this.motion === modalMotionValues.INHERIT ? this.placement : this.motion;
1171
+ }
1172
+ show() {
1173
+ this.open = true;
1174
+ }
1175
+ close(returnValue = "") {
1176
+ if (!this.open)
1177
+ return;
1178
+ this._closeReason = modalCloseReasonValues.API;
1179
+ this._returnValue = returnValue;
1180
+ this.open = false;
1181
+ }
1182
+ requestClose(reason = modalCloseReasonValues.API) {
1183
+ if (!this.open)
1184
+ return false;
1185
+ const allowed = this.emit("dsgn-modal-request-close", { reason }, { cancelable: true });
1186
+ if (!allowed)
1187
+ return false;
1188
+ this._closeReason = reason;
1189
+ this._returnValue = "";
1190
+ this.open = false;
1191
+ return true;
1192
+ }
1193
+ connectedCallback() {
1194
+ super.connectedCallback();
1195
+ if (this.open) {
1196
+ this.updateComplete.then(() => this._syncDialogState());
1197
+ }
1198
+ }
1199
+ disconnectedCallback() {
1200
+ super.disconnectedCallback();
1201
+ this._releaseScrollLock();
1202
+ }
1203
+ updated(changedProperties) {
1204
+ super.updated(changedProperties);
1205
+ this.updateTheme(changedProperties, this.surface);
1206
+ if (changedProperties.has("open")) {
1207
+ this._syncDialogState();
1208
+ }
1209
+ }
1210
+ _syncDialogState() {
1211
+ const dialog = this._dialog;
1212
+ if (!dialog)
1213
+ return;
1214
+ if (this.open) {
1215
+ if (isInTopLayer(dialog))
1216
+ return;
1217
+ this._openDialog(dialog);
1218
+ } else if (dialog.open) {
1219
+ this._runCloseSequence(dialog);
1220
+ }
1221
+ }
1222
+ _openDialog(dialog) {
1223
+ if (dialog.open)
1224
+ dialog.close();
1225
+ this._closing = false;
1226
+ this._previouslyFocused = deepActiveElement();
1227
+ dialog.returnValue = "";
1228
+ dialog.showModal();
1229
+ this._acquireScrollLock();
1230
+ this._focusInitialElement(dialog);
1231
+ this.emit("dsgn-modal-open");
1232
+ }
1233
+ async _runCloseSequence(dialog) {
1234
+ if (this._closing)
1235
+ return;
1236
+ this._closing = true;
1237
+ await this.updateComplete;
1238
+ await whenAnimationsSettle(dialog);
1239
+ if (!dialog.open || this.open) {
1240
+ this._closing = false;
1241
+ return;
1242
+ }
1243
+ dialog.close(this._returnValue);
1244
+ }
1245
+ _focusInitialElement(dialog) {
1246
+ const target = this.querySelector("[autofocus]") ?? dialog.querySelector("[autofocus]") ?? dialog;
1247
+ target.focus();
1248
+ }
1249
+ _restoreFocus() {
1250
+ const target = this._previouslyFocused;
1251
+ this._previouslyFocused = null;
1252
+ if (target?.isConnected)
1253
+ target.focus();
1254
+ }
1255
+ _acquireScrollLock() {
1256
+ if (this._holdsScrollLock)
1257
+ return;
1258
+ this._holdsScrollLock = true;
1259
+ lockBodyScroll();
1260
+ }
1261
+ _releaseScrollLock() {
1262
+ if (!this._holdsScrollLock)
1263
+ return;
1264
+ this._holdsScrollLock = false;
1265
+ unlockBodyScroll();
1266
+ }
1267
+ _handleNativeClose() {
1268
+ if (this._dialog?.open)
1269
+ return;
1270
+ this._closing = false;
1271
+ this.open = false;
1272
+ this._releaseScrollLock();
1273
+ this._restoreFocus();
1274
+ this.emit("dsgn-modal-close", {
1275
+ reason: this._closeReason,
1276
+ returnValue: this._dialog?.returnValue ?? ""
1277
+ });
1278
+ this._closeReason = modalCloseReasonValues.API;
1279
+ this._returnValue = "";
1280
+ }
1281
+ _handleCancel(event) {
1282
+ event.preventDefault();
1283
+ if (this.noEscapeDismiss)
1284
+ return;
1285
+ this.requestClose(modalCloseReasonValues.ESCAPE);
1286
+ }
1287
+ _handlePointerDown(event) {
1288
+ this._pointerDownOnBackdrop = event.target === this._dialog;
1289
+ }
1290
+ _handleDialogClick(event) {
1291
+ const startedOnBackdrop = this._pointerDownOnBackdrop;
1292
+ this._pointerDownOnBackdrop = false;
1293
+ if (this.noBackdropDismiss)
1294
+ return;
1295
+ if (!startedOnBackdrop || event.target !== this._dialog)
1296
+ return;
1297
+ this.requestClose(modalCloseReasonValues.BACKDROP);
1298
+ }
1299
+ _handleCloseControlClick() {
1300
+ this.requestClose(modalCloseReasonValues.CLOSE_CONTROL);
1301
+ }
1302
+ _handleSlotChange(event) {
1303
+ const slot = event.target;
1304
+ const filled = slot.assignedNodes({ flatten: true }).some((node) => node.nodeType === Node.ELEMENT_NODE || (node.textContent ?? "").trim() !== "");
1305
+ switch (slot.name) {
1306
+ case "heading":
1307
+ this._hasHeading = filled;
1308
+ break;
1309
+ case "description":
1310
+ this._hasDescription = filled;
1311
+ break;
1312
+ case "footer":
1313
+ this._hasFooter = filled;
1314
+ break;
1315
+ case "close":
1316
+ this._hasCloseControl = filled;
1317
+ break;
1318
+ }
1319
+ }
1320
+ render() {
1321
+ return html2`
1322
+ <dialog
1323
+ part="dialog"
1324
+ class=${dialogClasses()}
1325
+ tabindex="-1"
1326
+ data-placement=${this.placement}
1327
+ data-motion=${this._motionOrigin}
1328
+ data-size=${this.size}
1329
+ data-state=${this._closing ? "closed" : "open"}
1330
+ aria-label=${!this._hasHeading && this.ariaLabel ? this.ariaLabel : nothing}
1331
+ aria-labelledby=${this._hasHeading ? "modal-heading" : nothing}
1332
+ aria-describedby=${this._hasDescription ? "modal-description" : nothing}
1333
+ @cancel=${this._handleCancel}
1334
+ @close=${this._handleNativeClose}
1335
+ @mousedown=${this._handlePointerDown}
1336
+ @click=${this._handleDialogClick}
1337
+ >
1338
+ <div class=${panelClasses()}>
1339
+ <header
1340
+ class=${headerClasses(this._hasHeading || this._hasCloseAffordance)}
1341
+ >
1342
+ <div id="modal-heading" class=${headingClasses()}>
1343
+ <slot name="heading" @slotchange=${this._handleSlotChange}></slot>
1344
+ </div>
1345
+ <div
1346
+ class=${closeSlotClasses()}
1347
+ @click=${this._handleCloseControlClick}
1348
+ >
1349
+ <slot name="close" @slotchange=${this._handleSlotChange}>
1350
+ ${this.noCloseControl ? nothing : html2`
1351
+ <dsgn-button
1352
+ part="close-button"
1353
+ .surface=${this.surface}
1354
+ .appearance=${buttonAppearanceValues.GHOST}
1355
+ .icon=${x}
1356
+ .iconPosition=${buttonIconPositionValues.ONLY}
1357
+ aria-label=${this.closeLabel}
1358
+ ></dsgn-button>
1359
+ `}
1360
+ </slot>
1361
+ </div>
1362
+ </header>
1363
+ <div
1364
+ id="modal-description"
1365
+ class=${descriptionClasses(this._hasDescription)}
1366
+ >
1367
+ <slot
1368
+ name="description"
1369
+ @slotchange=${this._handleSlotChange}
1370
+ ></slot>
1371
+ </div>
1372
+ <div class=${bodyClasses()}>
1373
+ <slot></slot>
1374
+ </div>
1375
+ <footer class=${footerClasses(this._hasFooter)}>
1376
+ <slot name="footer" @slotchange=${this._handleSlotChange}></slot>
1377
+ </footer>
1378
+ </div>
1379
+ </dialog>
1380
+ `;
1381
+ }
1382
+ }
1383
+ __legacyDecorateClassTS([
1384
+ query("dialog")
1385
+ ], Modal.prototype, "_dialog", undefined);
1386
+ __legacyDecorateClassTS([
1387
+ property({ ...surfaceProps })
1388
+ ], Modal.prototype, "surface", undefined);
1389
+ __legacyDecorateClassTS([
1390
+ property({ type: Boolean, reflect: true })
1391
+ ], Modal.prototype, "open", undefined);
1392
+ __legacyDecorateClassTS([
1393
+ property({ ...modalPlacementProps })
1394
+ ], Modal.prototype, "placement", undefined);
1395
+ __legacyDecorateClassTS([
1396
+ property({ ...modalMotionProps })
1397
+ ], Modal.prototype, "motion", undefined);
1398
+ __legacyDecorateClassTS([
1399
+ property({ ...modalSizeProps })
1400
+ ], Modal.prototype, "size", undefined);
1401
+ __legacyDecorateClassTS([
1402
+ property({ type: String, attribute: "aria-label" })
1403
+ ], Modal.prototype, "ariaLabel", undefined);
1404
+ __legacyDecorateClassTS([
1405
+ property({ type: String, attribute: "close-label" })
1406
+ ], Modal.prototype, "closeLabel", undefined);
1407
+ __legacyDecorateClassTS([
1408
+ property({ type: Boolean, reflect: true, attribute: "no-close-control" })
1409
+ ], Modal.prototype, "noCloseControl", undefined);
1410
+ __legacyDecorateClassTS([
1411
+ property({ type: Boolean, reflect: true, attribute: "no-backdrop-dismiss" })
1412
+ ], Modal.prototype, "noBackdropDismiss", undefined);
1413
+ __legacyDecorateClassTS([
1414
+ property({ type: Boolean, reflect: true, attribute: "no-escape-dismiss" })
1415
+ ], Modal.prototype, "noEscapeDismiss", undefined);
1416
+ __legacyDecorateClassTS([
1417
+ state()
1418
+ ], Modal.prototype, "_closing", undefined);
1419
+ __legacyDecorateClassTS([
1420
+ state()
1421
+ ], Modal.prototype, "_hasHeading", undefined);
1422
+ __legacyDecorateClassTS([
1423
+ state()
1424
+ ], Modal.prototype, "_hasDescription", undefined);
1425
+ __legacyDecorateClassTS([
1426
+ state()
1427
+ ], Modal.prototype, "_hasFooter", undefined);
1428
+ __legacyDecorateClassTS([
1429
+ state()
1430
+ ], Modal.prototype, "_hasCloseControl", undefined);
1431
+ defineElement("dsgn-modal", Modal);
1432
+ export {
1433
+ Modal
1434
+ };