@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,1102 @@
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/Button/src/Button.ts
13
+ import"../../Icon/src/Icon.js";
14
+
15
+ // common/Base/Base.ts
16
+ import { html, LitElement } from "lit";
17
+
18
+ // common/helpers/define-element.ts
19
+ var defineElement = (tag, ctor) => {
20
+ if (typeof customElements === "undefined")
21
+ return;
22
+ if (!customElements.get(tag))
23
+ customElements.define(tag, ctor);
24
+ };
25
+
26
+ // common/Base/Base.css
27
+ import { css } from "lit";
28
+ var styles = css`/* Base reset in @layer base ensures it comes before utilities in Tailwind v4 cascade
29
+ This prevents the reset from overriding component utility classes */
30
+ @layer base {
31
+ :host {
32
+ display: block;
33
+ box-sizing: border-box;
34
+ line-height: 1.5;
35
+ -webkit-text-size-adjust: 100%;
36
+ tab-size: 4;
37
+ font-family: var(
38
+ --default-font-family,
39
+ var(--font-sans, ui-sans-serif, system-ui, sans-serif)
40
+ );
41
+ }
42
+
43
+ *,
44
+ *::before,
45
+ *::after {
46
+ box-sizing: inherit;
47
+ margin: 0;
48
+ padding: 0;
49
+ border: 0 solid;
50
+ }
51
+
52
+ :host h1,
53
+ :host h2,
54
+ :host h3,
55
+ :host h4,
56
+ :host h5,
57
+ :host h6 {
58
+ font-size: inherit;
59
+ font-weight: inherit;
60
+ margin: 0;
61
+ padding: 0;
62
+ }
63
+ }
64
+ `;
65
+ var Base_default = styles;
66
+
67
+ // common/Base/Base.ts
68
+ class Base extends LitElement {
69
+ static styles = Base_default;
70
+ updateTheme(changedProperties, surface) {
71
+ if (changedProperties.has("surface")) {
72
+ if (surface) {
73
+ this.setAttribute("data-theme", surface);
74
+ } else {
75
+ this.removeAttribute("data-theme");
76
+ }
77
+ }
78
+ }
79
+ emit(name, detail, options = {}) {
80
+ return this.dispatchEvent(new CustomEvent(name, {
81
+ detail,
82
+ bubbles: true,
83
+ composed: true,
84
+ cancelable: options.cancelable ?? false
85
+ }));
86
+ }
87
+ render() {
88
+ return html`<slot></slot>`;
89
+ }
90
+ }
91
+ defineElement("dsgn-base", Base);
92
+
93
+ // common/helpers/enum-validator.ts
94
+ var enumValidator = (propName, enumSet, candidateValue) => {
95
+ if (!enumSet.has(candidateValue)) {
96
+ throw new Error(`Invalid prop ${propName} of value ${candidateValue}. Expected one of: ${Array.from(enumSet).join(", ")}`);
97
+ }
98
+ };
99
+
100
+ // common/helpers/enum-creator.ts
101
+ var enumCreator = (acceptableValues, propName, type, other = {}) => {
102
+ const acceptableValuesSet = new Set(acceptableValues);
103
+ return {
104
+ type,
105
+ hasChanged(newValue, oldValue) {
106
+ if (newValue !== oldValue) {
107
+ enumValidator(propName, acceptableValuesSet, newValue);
108
+ return true;
109
+ }
110
+ return false;
111
+ },
112
+ ...other
113
+ };
114
+ };
115
+
116
+ // common/props/surface/surface.props.ts
117
+ var surfaceValues = {
118
+ LIGHT: "light",
119
+ DARK: "dark"
120
+ };
121
+ var surfaceProps = enumCreator(Object.values(surfaceValues), "surface", String, { reflect: true });
122
+
123
+ // components/Button/src/Button.ts
124
+ import {
125
+ html as html2,
126
+ nothing
127
+ } from "lit";
128
+ import { property, state } from "lit/decorators.js";
129
+
130
+ // components/Icon/src/icons/loader.ts
131
+ import { svg } from "lit";
132
+ var loader = svg`<path d="M12 2v4" /><path d="m16.2 7.8 2.9-2.9" /><path d="M18 12h4" /><path d="m16.2 16.2 2.9 2.9" /><path d="M12 18v4" /><path d="m4.9 19.1 2.9-2.9" /><path d="M2 12h4" /><path d="m4.9 4.9 2.9 2.9" />`;
133
+ // components/Button/src/Button.css
134
+ import { css as css2 } from "lit";
135
+ var styles2 = css2`/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
136
+ @layer properties;
137
+ @layer theme {
138
+ :root, :host {
139
+ --spacing: 0.25rem;
140
+ --text-xs: 0.75rem;
141
+ --text-xs--line-height: calc(1 / 0.75);
142
+ --text-sm: 0.875rem;
143
+ --text-sm--line-height: calc(1.25 / 0.875);
144
+ --text-base: 1rem;
145
+ --text-base--line-height: calc(1.5 / 1);
146
+ --font-weight-normal: 400;
147
+ --font-weight-medium: 500;
148
+ --font-weight-semibold: 600;
149
+ --font-weight-bold: 700;
150
+ --animate-spin: spin 1s linear infinite;
151
+ --default-transition-duration: 150ms;
152
+ --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
153
+ --radius-button: var(--dsgn-src-radius-button, calc(infinity * 1px));
154
+ --color-button-ghost-bg: inherit;
155
+ --color-button-ghost-bg-hover: inherit;
156
+ --color-button-ghost-text: inherit;
157
+ --color-button-ghost-text-hover: inherit;
158
+ --color-button-gradient-text: inherit;
159
+ --color-button-inline-text: inherit;
160
+ --color-button-inline-text-hover: inherit;
161
+ --color-button-link-text: inherit;
162
+ --color-button-link-text-hover: inherit;
163
+ --color-button-mono-outline-bg: inherit;
164
+ --color-button-mono-outline-bg-hover: inherit;
165
+ --color-button-mono-outline-outline: inherit;
166
+ --color-button-mono-outline-outline-hover: inherit;
167
+ --color-button-mono-outline-text: inherit;
168
+ --color-button-mono-outline-text-hover: inherit;
169
+ --color-button-mono-solid-bg: inherit;
170
+ --color-button-mono-solid-bg-hover: inherit;
171
+ --color-button-mono-solid-text: inherit;
172
+ --color-button-outline-bg: inherit;
173
+ --color-button-outline-bg-hover: inherit;
174
+ --color-button-outline-outline: inherit;
175
+ --color-button-outline-outline-hover: inherit;
176
+ --color-button-outline-text: inherit;
177
+ --color-button-outline-text-hover: inherit;
178
+ --color-button-solid-bg: inherit;
179
+ --color-button-solid-bg-hover: inherit;
180
+ --color-button-solid-text: inherit;
181
+ --color-focus: inherit;
182
+ --color-gradient-accent-bg: inherit;
183
+ --color-gradient-accent-bg-hover: inherit;
184
+ }
185
+ }
186
+ @layer utilities {
187
+ .pointer-events-none {
188
+ pointer-events: none;
189
+ }
190
+ .visible {
191
+ visibility: visible;
192
+ }
193
+ .relative {
194
+ position: relative;
195
+ }
196
+ .static {
197
+ position: static;
198
+ }
199
+ .hidden {
200
+ display: none;
201
+ }
202
+ .inline {
203
+ display: inline;
204
+ }
205
+ .inline-flex {
206
+ display: inline-flex;
207
+ }
208
+ .h-8 {
209
+ height: calc(var(--spacing) * 8);
210
+ }
211
+ .h-10 {
212
+ height: calc(var(--spacing) * 10);
213
+ }
214
+ .h-12 {
215
+ height: calc(var(--spacing) * 12);
216
+ }
217
+ .w-8 {
218
+ width: calc(var(--spacing) * 8);
219
+ }
220
+ .w-10 {
221
+ width: calc(var(--spacing) * 10);
222
+ }
223
+ .w-12 {
224
+ width: calc(var(--spacing) * 12);
225
+ }
226
+ .shrink-0 {
227
+ flex-shrink: 0;
228
+ }
229
+ .cursor-not-allowed {
230
+ cursor: not-allowed;
231
+ }
232
+ .cursor-pointer {
233
+ cursor: pointer;
234
+ }
235
+ .cursor-progress {
236
+ cursor: progress;
237
+ }
238
+ .items-center {
239
+ align-items: center;
240
+ }
241
+ .justify-center {
242
+ justify-content: center;
243
+ }
244
+ .gap-2 {
245
+ gap: calc(var(--spacing) * 2);
246
+ }
247
+ .rounded-\\[var\\(--radius-button\\,calc\\(infinity\\*1px\\)\\)\\] {
248
+ border-radius: var(--radius-button,calc(infinity * 1px));
249
+ }
250
+ .border-2 {
251
+ border-style: var(--tw-border-style);
252
+ border-width: 2px;
253
+ }
254
+ .border-none {
255
+ --tw-border-style: none;
256
+ border-style: none;
257
+ }
258
+ .border-solid {
259
+ --tw-border-style: solid;
260
+ border-style: solid;
261
+ }
262
+ .border-button-mono-outline-outline {
263
+ border-color: var(--color-button-mono-outline-outline);
264
+ }
265
+ .border-button-outline-outline {
266
+ border-color: var(--color-button-outline-outline);
267
+ }
268
+ .bg-button-ghost-bg {
269
+ background-color: var(--color-button-ghost-bg);
270
+ }
271
+ .bg-button-mono-outline-bg {
272
+ background-color: var(--color-button-mono-outline-bg);
273
+ }
274
+ .bg-button-mono-solid-bg {
275
+ background-color: var(--color-button-mono-solid-bg);
276
+ }
277
+ .bg-button-outline-bg {
278
+ background-color: var(--color-button-outline-bg);
279
+ }
280
+ .bg-button-solid-bg {
281
+ background-color: var(--color-button-solid-bg);
282
+ }
283
+ .bg-transparent {
284
+ background-color: transparent;
285
+ }
286
+ .\\[background-image\\:var\\(--color-gradient-accent-bg\\)\\] {
287
+ background-image: var(--color-gradient-accent-bg);
288
+ }
289
+ .p-1\\.5 {
290
+ padding: calc(var(--spacing) * 1.5);
291
+ }
292
+ .p-2 {
293
+ padding: calc(var(--spacing) * 2);
294
+ }
295
+ .p-3 {
296
+ padding: calc(var(--spacing) * 3);
297
+ }
298
+ .px-1 {
299
+ padding-inline: calc(var(--spacing) * 1);
300
+ }
301
+ .px-3 {
302
+ padding-inline: calc(var(--spacing) * 3);
303
+ }
304
+ .px-3\\.5 {
305
+ padding-inline: calc(var(--spacing) * 3.5);
306
+ }
307
+ .px-5 {
308
+ padding-inline: calc(var(--spacing) * 5);
309
+ }
310
+ .py-0\\.5 {
311
+ padding-block: calc(var(--spacing) * 0.5);
312
+ }
313
+ .py-1\\.5 {
314
+ padding-block: calc(var(--spacing) * 1.5);
315
+ }
316
+ .py-2\\.5 {
317
+ padding-block: calc(var(--spacing) * 2.5);
318
+ }
319
+ .py-3 {
320
+ padding-block: calc(var(--spacing) * 3);
321
+ }
322
+ .text-base {
323
+ font-size: var(--text-base);
324
+ line-height: var(--tw-leading, var(--text-base--line-height));
325
+ }
326
+ .text-sm {
327
+ font-size: var(--text-sm);
328
+ line-height: var(--tw-leading, var(--text-sm--line-height));
329
+ }
330
+ .text-xs {
331
+ font-size: var(--text-xs);
332
+ line-height: var(--tw-leading, var(--text-xs--line-height));
333
+ }
334
+ .font-bold {
335
+ --tw-font-weight: var(--font-weight-bold);
336
+ font-weight: var(--font-weight-bold);
337
+ }
338
+ .font-medium {
339
+ --tw-font-weight: var(--font-weight-medium);
340
+ font-weight: var(--font-weight-medium);
341
+ }
342
+ .font-normal {
343
+ --tw-font-weight: var(--font-weight-normal);
344
+ font-weight: var(--font-weight-normal);
345
+ }
346
+ .font-semibold {
347
+ --tw-font-weight: var(--font-weight-semibold);
348
+ font-weight: var(--font-weight-semibold);
349
+ }
350
+ .whitespace-nowrap {
351
+ white-space: nowrap;
352
+ }
353
+ .text-button-ghost-text {
354
+ color: var(--color-button-ghost-text);
355
+ }
356
+ .text-button-gradient-text {
357
+ color: var(--color-button-gradient-text);
358
+ }
359
+ .text-button-inline-text {
360
+ color: var(--color-button-inline-text);
361
+ }
362
+ .text-button-link-text {
363
+ color: var(--color-button-link-text);
364
+ }
365
+ .text-button-mono-outline-text {
366
+ color: var(--color-button-mono-outline-text);
367
+ }
368
+ .text-button-mono-solid-text {
369
+ color: var(--color-button-mono-solid-text);
370
+ }
371
+ .text-button-outline-text {
372
+ color: var(--color-button-outline-text);
373
+ }
374
+ .text-button-solid-text {
375
+ color: var(--color-button-solid-text);
376
+ }
377
+ .no-underline {
378
+ text-decoration-line: none;
379
+ }
380
+ .underline {
381
+ text-decoration-line: underline;
382
+ }
383
+ .decoration-transparent {
384
+ text-decoration-color: transparent;
385
+ }
386
+ .decoration-2 {
387
+ text-decoration-thickness: 2px;
388
+ }
389
+ .underline-offset-4 {
390
+ text-underline-offset: 4px;
391
+ }
392
+ .opacity-50 {
393
+ opacity: 50%;
394
+ }
395
+ .shadow {
396
+ --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));
397
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
398
+ }
399
+ .outline {
400
+ outline-style: var(--tw-outline-style);
401
+ outline-width: 1px;
402
+ }
403
+ .transition-colors {
404
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
405
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
406
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
407
+ }
408
+ .duration-200 {
409
+ --tw-duration: 200ms;
410
+ transition-duration: 200ms;
411
+ }
412
+ .hover\\:border-button-mono-outline-outline-hover {
413
+ &:hover {
414
+ @media (hover: hover) {
415
+ border-color: var(--color-button-mono-outline-outline-hover);
416
+ }
417
+ }
418
+ }
419
+ .hover\\:border-button-outline-outline-hover {
420
+ &:hover {
421
+ @media (hover: hover) {
422
+ border-color: var(--color-button-outline-outline-hover);
423
+ }
424
+ }
425
+ }
426
+ .hover\\:bg-button-ghost-bg-hover {
427
+ &:hover {
428
+ @media (hover: hover) {
429
+ background-color: var(--color-button-ghost-bg-hover);
430
+ }
431
+ }
432
+ }
433
+ .hover\\:bg-button-mono-outline-bg-hover\\/90 {
434
+ &:hover {
435
+ @media (hover: hover) {
436
+ background-color: color-mix(in srgb, inherit 90%, transparent);
437
+ @supports (color: color-mix(in lab, red, red)) {
438
+ background-color: color-mix(in oklab, var(--color-button-mono-outline-bg-hover) 90%, transparent);
439
+ }
440
+ }
441
+ }
442
+ }
443
+ .hover\\:bg-button-mono-solid-bg-hover {
444
+ &:hover {
445
+ @media (hover: hover) {
446
+ background-color: var(--color-button-mono-solid-bg-hover);
447
+ }
448
+ }
449
+ }
450
+ .hover\\:bg-button-outline-bg-hover\\/10 {
451
+ &:hover {
452
+ @media (hover: hover) {
453
+ background-color: color-mix(in srgb, inherit 10%, transparent);
454
+ @supports (color: color-mix(in lab, red, red)) {
455
+ background-color: color-mix(in oklab, var(--color-button-outline-bg-hover) 10%, transparent);
456
+ }
457
+ }
458
+ }
459
+ }
460
+ .hover\\:bg-button-solid-bg-hover {
461
+ &:hover {
462
+ @media (hover: hover) {
463
+ background-color: var(--color-button-solid-bg-hover);
464
+ }
465
+ }
466
+ }
467
+ .hover\\:\\[background-image\\:var\\(--color-gradient-accent-bg-hover\\)\\] {
468
+ &:hover {
469
+ @media (hover: hover) {
470
+ background-image: var(--color-gradient-accent-bg-hover);
471
+ }
472
+ }
473
+ }
474
+ .hover\\:text-button-ghost-text-hover {
475
+ &:hover {
476
+ @media (hover: hover) {
477
+ color: var(--color-button-ghost-text-hover);
478
+ }
479
+ }
480
+ }
481
+ .hover\\:text-button-inline-text-hover {
482
+ &:hover {
483
+ @media (hover: hover) {
484
+ color: var(--color-button-inline-text-hover);
485
+ }
486
+ }
487
+ }
488
+ .hover\\:text-button-link-text-hover {
489
+ &:hover {
490
+ @media (hover: hover) {
491
+ color: var(--color-button-link-text-hover);
492
+ }
493
+ }
494
+ }
495
+ .hover\\:text-button-mono-outline-text-hover {
496
+ &:hover {
497
+ @media (hover: hover) {
498
+ color: var(--color-button-mono-outline-text-hover);
499
+ }
500
+ }
501
+ }
502
+ .hover\\:text-button-outline-text-hover {
503
+ &:hover {
504
+ @media (hover: hover) {
505
+ color: var(--color-button-outline-text-hover);
506
+ }
507
+ }
508
+ }
509
+ .hover\\:decoration-current {
510
+ &:hover {
511
+ @media (hover: hover) {
512
+ text-decoration-color: currentcolor;
513
+ }
514
+ }
515
+ }
516
+ .focus-visible\\:outline {
517
+ &:focus-visible {
518
+ outline-style: var(--tw-outline-style);
519
+ outline-width: 1px;
520
+ }
521
+ }
522
+ .focus-visible\\:outline-2 {
523
+ &:focus-visible {
524
+ outline-style: var(--tw-outline-style);
525
+ outline-width: 2px;
526
+ }
527
+ }
528
+ .focus-visible\\:outline-offset-2 {
529
+ &:focus-visible {
530
+ outline-offset: 2px;
531
+ }
532
+ }
533
+ .focus-visible\\:outline-focus {
534
+ &:focus-visible {
535
+ outline-color: var(--color-focus);
536
+ }
537
+ }
538
+ .disabled\\:cursor-not-allowed {
539
+ &:disabled {
540
+ cursor: not-allowed;
541
+ }
542
+ }
543
+ .disabled\\:opacity-50 {
544
+ &:disabled {
545
+ opacity: 50%;
546
+ }
547
+ }
548
+ .motion-safe\\:animate-spin {
549
+ @media (prefers-reduced-motion: no-preference) {
550
+ animation: var(--animate-spin);
551
+ }
552
+ }
553
+ .xl\\:w-12 {
554
+ @media (width >= 80rem) {
555
+ width: calc(var(--spacing) * 12);
556
+ }
557
+ }
558
+ .xl\\:w-14 {
559
+ @media (width >= 80rem) {
560
+ width: calc(var(--spacing) * 14);
561
+ }
562
+ }
563
+ }
564
+ @property --dsgn-border-sweep-angle {
565
+ syntax: '<angle>';
566
+ inherits: false;
567
+ initial-value: 0deg;
568
+ }
569
+ @property --tw-border-style {
570
+ syntax: "*";
571
+ inherits: false;
572
+ initial-value: solid;
573
+ }
574
+ @property --tw-font-weight {
575
+ syntax: "*";
576
+ inherits: false;
577
+ }
578
+ @property --tw-shadow {
579
+ syntax: "*";
580
+ inherits: false;
581
+ initial-value: 0 0 #0000;
582
+ }
583
+ @property --tw-shadow-color {
584
+ syntax: "*";
585
+ inherits: false;
586
+ }
587
+ @property --tw-shadow-alpha {
588
+ syntax: "<percentage>";
589
+ inherits: false;
590
+ initial-value: 100%;
591
+ }
592
+ @property --tw-inset-shadow {
593
+ syntax: "*";
594
+ inherits: false;
595
+ initial-value: 0 0 #0000;
596
+ }
597
+ @property --tw-inset-shadow-color {
598
+ syntax: "*";
599
+ inherits: false;
600
+ }
601
+ @property --tw-inset-shadow-alpha {
602
+ syntax: "<percentage>";
603
+ inherits: false;
604
+ initial-value: 100%;
605
+ }
606
+ @property --tw-ring-color {
607
+ syntax: "*";
608
+ inherits: false;
609
+ }
610
+ @property --tw-ring-shadow {
611
+ syntax: "*";
612
+ inherits: false;
613
+ initial-value: 0 0 #0000;
614
+ }
615
+ @property --tw-inset-ring-color {
616
+ syntax: "*";
617
+ inherits: false;
618
+ }
619
+ @property --tw-inset-ring-shadow {
620
+ syntax: "*";
621
+ inherits: false;
622
+ initial-value: 0 0 #0000;
623
+ }
624
+ @property --tw-ring-inset {
625
+ syntax: "*";
626
+ inherits: false;
627
+ }
628
+ @property --tw-ring-offset-width {
629
+ syntax: "<length>";
630
+ inherits: false;
631
+ initial-value: 0px;
632
+ }
633
+ @property --tw-ring-offset-color {
634
+ syntax: "*";
635
+ inherits: false;
636
+ initial-value: #fff;
637
+ }
638
+ @property --tw-ring-offset-shadow {
639
+ syntax: "*";
640
+ inherits: false;
641
+ initial-value: 0 0 #0000;
642
+ }
643
+ @property --tw-outline-style {
644
+ syntax: "*";
645
+ inherits: false;
646
+ initial-value: solid;
647
+ }
648
+ @property --tw-duration {
649
+ syntax: "*";
650
+ inherits: false;
651
+ }
652
+ @keyframes spin {
653
+ to {
654
+ transform: rotate(360deg);
655
+ }
656
+ }
657
+ @layer properties {
658
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
659
+ *, ::before, ::after, ::backdrop {
660
+ --tw-border-style: solid;
661
+ --tw-font-weight: initial;
662
+ --tw-shadow: 0 0 #0000;
663
+ --tw-shadow-color: initial;
664
+ --tw-shadow-alpha: 100%;
665
+ --tw-inset-shadow: 0 0 #0000;
666
+ --tw-inset-shadow-color: initial;
667
+ --tw-inset-shadow-alpha: 100%;
668
+ --tw-ring-color: initial;
669
+ --tw-ring-shadow: 0 0 #0000;
670
+ --tw-inset-ring-color: initial;
671
+ --tw-inset-ring-shadow: 0 0 #0000;
672
+ --tw-ring-inset: initial;
673
+ --tw-ring-offset-width: 0px;
674
+ --tw-ring-offset-color: #fff;
675
+ --tw-ring-offset-shadow: 0 0 #0000;
676
+ --tw-outline-style: solid;
677
+ --tw-duration: initial;
678
+ --dsgn-border-sweep-angle: 0deg;
679
+ }
680
+ }
681
+ }
682
+ `;
683
+ var Button_default = styles2;
684
+
685
+ // components/Button/src/Button.props.ts
686
+ var buttonAppearanceValues = {
687
+ SOLID: "solid",
688
+ OUTLINE: "outline",
689
+ GHOST: "ghost",
690
+ LINK: "link",
691
+ INLINE: "inline",
692
+ MONO_SOLID: "mono-solid",
693
+ MONO_OUTLINE: "mono-outline",
694
+ GRADIENT: "gradient"
695
+ };
696
+ var buttonAppearanceProps = enumCreator(Object.values(buttonAppearanceValues), "appearance", String, { reflect: true });
697
+ var buttonWeightValues = {
698
+ NORMAL: "normal",
699
+ MEDIUM: "medium",
700
+ SEMIBOLD: "semibold",
701
+ BOLD: "bold"
702
+ };
703
+ var buttonWeightProps = enumCreator(Object.values(buttonWeightValues), "button-weight", String, { reflect: true, attribute: "button-weight" });
704
+ var buttonTargetValues = {
705
+ SELF: "_self",
706
+ BLANK: "_blank"
707
+ };
708
+ var buttonTargetProps = enumCreator(Object.values(buttonTargetValues), "target", String, { reflect: true });
709
+ var buttonTypeValues = {
710
+ BUTTON: "button",
711
+ SUBMIT: "submit",
712
+ RESET: "reset"
713
+ };
714
+ var buttonTypeProps = enumCreator(Object.values(buttonTypeValues), "type", String, { reflect: true });
715
+ var buttonSizeValues = {
716
+ SM: "sm",
717
+ MD: "md",
718
+ LG: "lg"
719
+ };
720
+ var buttonSizeProps = enumCreator(Object.values(buttonSizeValues), "size", String, { reflect: true });
721
+ var buttonIconPositionValues = {
722
+ LEADING: "leading",
723
+ TRAILING: "trailing",
724
+ ONLY: "only"
725
+ };
726
+ var buttonIconPositionProps = enumCreator(Object.values(buttonIconPositionValues), "icon-position", String, { attribute: "icon-position", reflect: true });
727
+
728
+ // ../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
729
+ function r(e) {
730
+ var t, f, n = "";
731
+ if (typeof e == "string" || typeof e == "number")
732
+ n += e;
733
+ else if (typeof e == "object")
734
+ if (Array.isArray(e)) {
735
+ var o = e.length;
736
+ for (t = 0;t < o; t++)
737
+ e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
738
+ } else
739
+ for (f in e)
740
+ e[f] && (n && (n += " "), n += f);
741
+ return n;
742
+ }
743
+ function clsx() {
744
+ for (var e, t, f = 0, n = "", o = arguments.length;f < o; f++)
745
+ (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
746
+ return n;
747
+ }
748
+ var clsx_default = clsx;
749
+
750
+ // components/Button/src/Button.styles.ts
751
+ var baseClasses = [
752
+ "inline-flex",
753
+ "items-center",
754
+ "justify-center",
755
+ "gap-2",
756
+ "cursor-pointer",
757
+ "no-underline",
758
+ "focus-visible:outline",
759
+ "focus-visible:outline-2",
760
+ "focus-visible:outline-offset-2",
761
+ "focus-visible:outline-focus",
762
+ "disabled:cursor-not-allowed",
763
+ "disabled:opacity-50",
764
+ "transition-colors",
765
+ "duration-200"
766
+ ];
767
+ var disabledClasses = [
768
+ "opacity-50",
769
+ "cursor-not-allowed",
770
+ "pointer-events-none"
771
+ ];
772
+ var loadingClasses = ["cursor-progress"];
773
+ var weightClasses = {
774
+ normal: "font-normal",
775
+ medium: "font-medium",
776
+ semibold: "font-semibold",
777
+ bold: "font-bold"
778
+ };
779
+ var buttonShapeClasses = [
780
+ "rounded-[var(--radius-button,calc(infinity*1px))]",
781
+ "whitespace-nowrap"
782
+ ];
783
+ var sizeTextClasses = {
784
+ [buttonSizeValues.SM]: "text-xs",
785
+ [buttonSizeValues.MD]: "text-sm",
786
+ [buttonSizeValues.LG]: "text-base"
787
+ };
788
+ var sizeHeightClasses = {
789
+ [buttonSizeValues.SM]: "h-8",
790
+ [buttonSizeValues.MD]: "h-10",
791
+ [buttonSizeValues.LG]: "h-12"
792
+ };
793
+ var sizePaddingClasses = {
794
+ [buttonSizeValues.SM]: "px-3 py-1.5",
795
+ [buttonSizeValues.MD]: "px-3.5 py-2.5",
796
+ [buttonSizeValues.LG]: "px-5 py-3"
797
+ };
798
+ var sizeIconOnlyClasses = {
799
+ [buttonSizeValues.SM]: ["p-1.5", "w-8"],
800
+ [buttonSizeValues.MD]: ["p-2", "w-10", "xl:w-12"],
801
+ [buttonSizeValues.LG]: ["p-3", "w-12", "xl:w-14"]
802
+ };
803
+ var appearanceClasses = {
804
+ solid: [
805
+ "bg-button-solid-bg",
806
+ "text-button-solid-text",
807
+ "hover:bg-button-solid-bg-hover",
808
+ "border-none"
809
+ ],
810
+ outline: [
811
+ "bg-button-outline-bg",
812
+ "text-button-outline-text",
813
+ "hover:text-button-outline-text-hover",
814
+ "hover:bg-button-outline-bg-hover/10",
815
+ "border-solid",
816
+ "border-2",
817
+ "border-button-outline-outline",
818
+ "hover:border-button-outline-outline-hover"
819
+ ],
820
+ ghost: [
821
+ "bg-button-ghost-bg",
822
+ "text-button-ghost-text",
823
+ "hover:text-button-ghost-text-hover",
824
+ "hover:bg-button-ghost-bg-hover",
825
+ "border-none"
826
+ ],
827
+ "mono-solid": [
828
+ "bg-button-mono-solid-bg",
829
+ "text-button-mono-solid-text",
830
+ "hover:bg-button-mono-solid-bg-hover",
831
+ "border-none"
832
+ ],
833
+ "mono-outline": [
834
+ "bg-button-mono-outline-bg",
835
+ "text-button-mono-outline-text",
836
+ "hover:text-button-mono-outline-text-hover",
837
+ "border-solid",
838
+ "border-2",
839
+ "border-button-mono-outline-outline",
840
+ "hover:border-button-mono-outline-outline-hover",
841
+ "hover:bg-button-mono-outline-bg-hover/90"
842
+ ],
843
+ link: [
844
+ "text-button-link-text",
845
+ "hover:text-button-link-text-hover",
846
+ "underline",
847
+ "decoration-2",
848
+ "underline-offset-4",
849
+ "decoration-transparent",
850
+ "hover:decoration-current",
851
+ "border-none",
852
+ "bg-transparent"
853
+ ],
854
+ inline: [
855
+ "text-button-inline-text",
856
+ "hover:text-button-inline-text-hover",
857
+ "underline",
858
+ "decoration-2",
859
+ "underline-offset-4",
860
+ "decoration-transparent",
861
+ "hover:decoration-current",
862
+ "border-none",
863
+ "bg-transparent"
864
+ ],
865
+ gradient: [
866
+ "text-button-gradient-text",
867
+ "border-none",
868
+ "[background-image:var(--color-gradient-accent-bg)]",
869
+ "hover:[background-image:var(--color-gradient-accent-bg-hover)]"
870
+ ]
871
+ };
872
+ var spinnerClasses = () => clsx_default("inline-flex", "shrink-0", "motion-safe:animate-spin");
873
+ var paddingFor = (size, isLink, isIconOnly) => {
874
+ if (isIconOnly)
875
+ return sizeIconOnlyClasses[size];
876
+ if (isLink)
877
+ return "px-1 py-0.5";
878
+ return sizePaddingClasses[size];
879
+ };
880
+ var classNames = ({
881
+ appearance,
882
+ iconPosition,
883
+ weight = "semibold",
884
+ size = buttonSizeValues.MD,
885
+ disabled = false,
886
+ loading = false
887
+ }) => {
888
+ const isLink = appearance === "link" || appearance === "inline";
889
+ const paddingClasses = paddingFor(size, isLink, iconPosition === "only");
890
+ return clsx_default(baseClasses, sizeTextClasses[size], weightClasses[weight], !isLink && buttonShapeClasses, !isLink && sizeHeightClasses[size], appearanceClasses[appearance], paddingClasses, disabled && disabledClasses, loading && !disabled && loadingClasses);
891
+ };
892
+
893
+ // components/Button/src/Button.ts
894
+ class Button extends Base {
895
+ static styles = [Base.styles, Button_default];
896
+ static formAssociated = true;
897
+ #internals;
898
+ constructor() {
899
+ super();
900
+ this.surface = surfaceValues.LIGHT;
901
+ this.appearance = buttonAppearanceValues.SOLID;
902
+ this.buttonWeight = buttonWeightValues.SEMIBOLD;
903
+ this.target = buttonTargetValues.SELF;
904
+ this.href = "";
905
+ this.iconName = "";
906
+ this.iconPosition = buttonIconPositionValues.LEADING;
907
+ this.rel = "";
908
+ this.size = buttonSizeValues.MD;
909
+ this.type = buttonTypeValues.BUTTON;
910
+ this.disabled = false;
911
+ this.loading = false;
912
+ this.name = "";
913
+ this.value = "";
914
+ this._formDisabled = false;
915
+ this.#internals = this.attachInternals();
916
+ }
917
+ get isDisabled() {
918
+ return this.disabled || this._formDisabled;
919
+ }
920
+ get isInert() {
921
+ return this.isDisabled || this.loading;
922
+ }
923
+ get computedRel() {
924
+ const rawRel = this.rel ? this.rel.trim() : "";
925
+ const isBlankTarget = this.target === buttonTargetValues.BLANK;
926
+ if (!isBlankTarget) {
927
+ return rawRel || undefined;
928
+ }
929
+ const tokens = new Set;
930
+ if (rawRel) {
931
+ for (const token of rawRel.split(/\s+/)) {
932
+ if (token) {
933
+ tokens.add(token.toLowerCase());
934
+ }
935
+ }
936
+ }
937
+ tokens.add("noopener");
938
+ tokens.add("noreferrer");
939
+ return tokens.size > 0 ? Array.from(tokens).join(" ") : undefined;
940
+ }
941
+ _handleClick(event) {
942
+ if (this.isInert) {
943
+ event.preventDefault();
944
+ event.stopImmediatePropagation();
945
+ return;
946
+ }
947
+ const form = this.#internals.form;
948
+ if (!form || this.type === buttonTypeValues.BUTTON)
949
+ return;
950
+ queueMicrotask(() => {
951
+ if (event.defaultPrevented)
952
+ return;
953
+ this._submitOrReset(form);
954
+ });
955
+ }
956
+ _submitOrReset(form) {
957
+ if (this.type === buttonTypeValues.RESET) {
958
+ form.reset();
959
+ return;
960
+ }
961
+ const proxy = document.createElement("button");
962
+ proxy.type = buttonTypeValues.SUBMIT;
963
+ proxy.hidden = true;
964
+ if (this.name) {
965
+ proxy.name = this.name;
966
+ proxy.value = this.value;
967
+ }
968
+ this.appendChild(proxy);
969
+ try {
970
+ if (proxy.form === form) {
971
+ form.requestSubmit(proxy);
972
+ } else {
973
+ if (this.name) {
974
+ this.#internals.setFormValue(this.value);
975
+ }
976
+ form.requestSubmit();
977
+ if (this.name) {
978
+ this.#internals.setFormValue(null);
979
+ }
980
+ }
981
+ } finally {
982
+ proxy.remove();
983
+ }
984
+ }
985
+ formDisabledCallback(disabled) {
986
+ this._formDisabled = disabled;
987
+ }
988
+ updated(changedProperties) {
989
+ super.updated(changedProperties);
990
+ this.updateTheme(changedProperties, this.surface);
991
+ }
992
+ _renderContent() {
993
+ let icon;
994
+ if (this.loading) {
995
+ icon = html2`<span class=${spinnerClasses()} aria-hidden="true"
996
+ ><dsgn-icon .icon=${loader} size="md"></dsgn-icon
997
+ ></span>`;
998
+ } else if (this.icon || this.iconName) {
999
+ icon = html2`<dsgn-icon
1000
+ .icon=${this.icon}
1001
+ icon-name=${this.iconName}
1002
+ size="md"
1003
+ ></dsgn-icon>`;
1004
+ } else {
1005
+ icon = nothing;
1006
+ }
1007
+ if (this.iconPosition === buttonIconPositionValues.ONLY) {
1008
+ return icon;
1009
+ }
1010
+ return this.iconPosition === buttonIconPositionValues.TRAILING && !this.loading ? html2`<slot></slot>${icon}` : html2`${icon}<slot></slot>`;
1011
+ }
1012
+ render() {
1013
+ const content = this._renderContent();
1014
+ const classes = classNames({
1015
+ appearance: this.appearance,
1016
+ iconPosition: this.iconPosition,
1017
+ weight: this.buttonWeight,
1018
+ size: this.size,
1019
+ disabled: this.isDisabled,
1020
+ loading: this.loading
1021
+ });
1022
+ const ariaLabel = this.iconPosition === buttonIconPositionValues.ONLY ? this.getAttribute("aria-label") || "" : nothing;
1023
+ const ariaBusy = this.loading ? "true" : nothing;
1024
+ return this.href ? html2`<a
1025
+ href=${this.isInert ? nothing : this.href}
1026
+ target=${this.target}
1027
+ rel=${this.computedRel ?? ""}
1028
+ class=${classes}
1029
+ role=${this.isInert ? "link" : nothing}
1030
+ tabindex=${this.loading && !this.isDisabled ? "0" : nothing}
1031
+ aria-disabled=${this.isInert ? "true" : nothing}
1032
+ aria-busy=${ariaBusy}
1033
+ aria-label=${ariaLabel}
1034
+ @click=${this._handleClick}
1035
+ >${content}</a
1036
+ >` : html2`
1037
+ <button
1038
+ type="button"
1039
+ class=${classes}
1040
+ ?disabled=${this.isDisabled}
1041
+ aria-disabled=${this.loading ? "true" : nothing}
1042
+ aria-busy=${ariaBusy}
1043
+ aria-label=${ariaLabel}
1044
+ @click=${this._handleClick}
1045
+ >
1046
+ ${content}
1047
+ </button>
1048
+ `;
1049
+ }
1050
+ }
1051
+ __legacyDecorateClassTS([
1052
+ property({ ...surfaceProps })
1053
+ ], Button.prototype, "surface", undefined);
1054
+ __legacyDecorateClassTS([
1055
+ property({ ...buttonAppearanceProps })
1056
+ ], Button.prototype, "appearance", undefined);
1057
+ __legacyDecorateClassTS([
1058
+ property({ ...buttonWeightProps })
1059
+ ], Button.prototype, "buttonWeight", undefined);
1060
+ __legacyDecorateClassTS([
1061
+ property({ ...buttonTargetProps })
1062
+ ], Button.prototype, "target", undefined);
1063
+ __legacyDecorateClassTS([
1064
+ property({ type: String })
1065
+ ], Button.prototype, "href", undefined);
1066
+ __legacyDecorateClassTS([
1067
+ property({ attribute: false })
1068
+ ], Button.prototype, "icon", undefined);
1069
+ __legacyDecorateClassTS([
1070
+ property({ type: String, attribute: "icon-name" })
1071
+ ], Button.prototype, "iconName", undefined);
1072
+ __legacyDecorateClassTS([
1073
+ property({ ...buttonIconPositionProps })
1074
+ ], Button.prototype, "iconPosition", undefined);
1075
+ __legacyDecorateClassTS([
1076
+ property({ type: String })
1077
+ ], Button.prototype, "rel", undefined);
1078
+ __legacyDecorateClassTS([
1079
+ property({ ...buttonSizeProps })
1080
+ ], Button.prototype, "size", undefined);
1081
+ __legacyDecorateClassTS([
1082
+ property({ ...buttonTypeProps })
1083
+ ], Button.prototype, "type", undefined);
1084
+ __legacyDecorateClassTS([
1085
+ property({ type: Boolean, reflect: true })
1086
+ ], Button.prototype, "disabled", undefined);
1087
+ __legacyDecorateClassTS([
1088
+ property({ type: Boolean, reflect: true })
1089
+ ], Button.prototype, "loading", undefined);
1090
+ __legacyDecorateClassTS([
1091
+ property({ type: String, reflect: true })
1092
+ ], Button.prototype, "name", undefined);
1093
+ __legacyDecorateClassTS([
1094
+ property({ type: String, reflect: true })
1095
+ ], Button.prototype, "value", undefined);
1096
+ __legacyDecorateClassTS([
1097
+ state()
1098
+ ], Button.prototype, "_formDisabled", undefined);
1099
+ defineElement("dsgn-button", Button);
1100
+ export {
1101
+ Button
1102
+ };