@deepfuture/dui-components 0.0.21 → 1.0.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 (333) hide show
  1. package/README.md +56 -65
  2. package/_install.js +11 -0
  3. package/accordion/accordion-item.d.ts +3 -20
  4. package/accordion/accordion-item.js +93 -292
  5. package/accordion/accordion.d.ts +3 -18
  6. package/accordion/accordion.js +9 -247
  7. package/accordion/index.d.ts +6 -6
  8. package/accordion/index.js +5 -5
  9. package/alert-dialog/alert-dialog-close.d.ts +3 -14
  10. package/alert-dialog/alert-dialog-close.js +4 -34
  11. package/alert-dialog/alert-dialog-popup.d.ts +3 -32
  12. package/alert-dialog/alert-dialog-popup.js +68 -317
  13. package/alert-dialog/alert-dialog-trigger.d.ts +3 -14
  14. package/alert-dialog/alert-dialog-trigger.js +4 -51
  15. package/alert-dialog/alert-dialog.d.ts +3 -30
  16. package/alert-dialog/alert-dialog.js +8 -158
  17. package/alert-dialog/index.d.ts +11 -11
  18. package/alert-dialog/index.js +9 -9
  19. package/all.d.ts +159 -123
  20. package/all.js +134 -231
  21. package/avatar/avatar.d.ts +3 -39
  22. package/avatar/avatar.js +18 -238
  23. package/avatar/index.d.ts +4 -4
  24. package/avatar/index.js +3 -3
  25. package/badge/badge.d.ts +3 -10
  26. package/badge/badge.js +88 -22
  27. package/badge/index.d.ts +2 -3
  28. package/badge/index.js +2 -3
  29. package/breadcrumb/breadcrumb-ellipsis.d.ts +3 -12
  30. package/breadcrumb/breadcrumb-ellipsis.js +8 -34
  31. package/breadcrumb/breadcrumb-item.d.ts +3 -11
  32. package/breadcrumb/breadcrumb-item.js +7 -26
  33. package/breadcrumb/breadcrumb-link.d.ts +3 -12
  34. package/breadcrumb/breadcrumb-link.js +16 -26
  35. package/breadcrumb/breadcrumb-page.d.ts +3 -11
  36. package/breadcrumb/breadcrumb-page.js +8 -31
  37. package/breadcrumb/breadcrumb-separator.d.ts +3 -12
  38. package/breadcrumb/breadcrumb-separator.js +8 -31
  39. package/breadcrumb/breadcrumb.d.ts +3 -12
  40. package/breadcrumb/breadcrumb.js +10 -33
  41. package/breadcrumb/index.d.ts +12 -13
  42. package/breadcrumb/index.js +12 -13
  43. package/button/button.d.ts +3 -32
  44. package/button/button.js +221 -165
  45. package/button/index.d.ts +3 -3
  46. package/button/index.js +3 -3
  47. package/calendar/calendar.d.ts +3 -31
  48. package/calendar/calendar.js +71 -481
  49. package/calendar/index.d.ts +3 -3
  50. package/calendar/index.js +3 -3
  51. package/card/card.d.ts +3 -27
  52. package/card/card.js +80 -163
  53. package/card/index.d.ts +2 -3
  54. package/card/index.js +2 -3
  55. package/card-grid/card-grid.d.ts +3 -15
  56. package/card-grid/card-grid.js +8 -106
  57. package/card-grid/index.d.ts +2 -3
  58. package/card-grid/index.js +2 -3
  59. package/checkbox/checkbox-group.d.ts +3 -34
  60. package/checkbox/checkbox-group.js +11 -188
  61. package/checkbox/checkbox.d.ts +3 -47
  62. package/checkbox/checkbox.js +43 -341
  63. package/checkbox/index.d.ts +6 -6
  64. package/checkbox/index.js +5 -5
  65. package/collapsible/collapsible.d.ts +3 -20
  66. package/collapsible/collapsible.js +83 -277
  67. package/collapsible/index.d.ts +3 -3
  68. package/collapsible/index.js +3 -3
  69. package/combobox/combobox.d.ts +3 -47
  70. package/combobox/combobox.js +136 -538
  71. package/combobox/index.d.ts +4 -4
  72. package/combobox/index.js +3 -3
  73. package/command/command-empty.d.ts +3 -8
  74. package/command/command-empty.js +10 -88
  75. package/command/command-group.d.ts +3 -13
  76. package/command/command-group.js +15 -114
  77. package/command/command-input.d.ts +3 -11
  78. package/command/command-input.js +20 -136
  79. package/command/command-item.d.ts +3 -18
  80. package/command/command-item.js +24 -212
  81. package/command/command-list.d.ts +3 -7
  82. package/command/command-list.js +11 -79
  83. package/command/command-separator.d.ts +3 -5
  84. package/command/command-separator.js +10 -11
  85. package/command/command-shortcut.d.ts +3 -5
  86. package/command/command-shortcut.js +9 -12
  87. package/command/command.d.ts +3 -23
  88. package/command/command.js +10 -339
  89. package/command/index.d.ts +17 -19
  90. package/command/index.js +16 -18
  91. package/data-table/data-table.d.ts +3 -57
  92. package/data-table/data-table.js +86 -449
  93. package/data-table/index.d.ts +3 -4
  94. package/data-table/index.js +2 -3
  95. package/dialog/dialog-close.d.ts +3 -14
  96. package/dialog/dialog-close.js +4 -34
  97. package/dialog/dialog-popup.d.ts +3 -34
  98. package/dialog/dialog-popup.js +70 -336
  99. package/dialog/dialog-trigger.d.ts +3 -14
  100. package/dialog/dialog-trigger.js +4 -51
  101. package/dialog/dialog.d.ts +3 -30
  102. package/dialog/dialog.js +8 -158
  103. package/dialog/index.d.ts +11 -11
  104. package/dialog/index.js +9 -9
  105. package/dropzone/dropzone.d.ts +3 -72
  106. package/dropzone/dropzone.js +29 -407
  107. package/dropzone/index.d.ts +4 -4
  108. package/dropzone/index.js +3 -3
  109. package/field/field.d.ts +3 -30
  110. package/field/field.js +34 -353
  111. package/field/index.d.ts +1 -0
  112. package/field/index.js +1 -0
  113. package/fieldset/fieldset.d.ts +3 -18
  114. package/fieldset/fieldset.js +21 -110
  115. package/fieldset/index.d.ts +1 -0
  116. package/fieldset/index.js +1 -0
  117. package/icon/icon.d.ts +3 -15
  118. package/icon/icon.js +4 -33
  119. package/icon/index.d.ts +2 -3
  120. package/icon/index.js +2 -3
  121. package/input/index.d.ts +3 -3
  122. package/input/index.js +3 -3
  123. package/input/input.d.ts +3 -49
  124. package/input/input.js +57 -238
  125. package/menu/index.d.ts +4 -5
  126. package/menu/index.js +4 -5
  127. package/menu/menu-item.d.ts +3 -13
  128. package/menu/menu-item.js +41 -91
  129. package/menu/menu.d.ts +3 -15
  130. package/menu/menu.js +27 -277
  131. package/menubar/index.d.ts +3 -4
  132. package/menubar/index.js +2 -3
  133. package/menubar/menubar.d.ts +3 -19
  134. package/menubar/menubar.js +12 -183
  135. package/number-field/index.d.ts +3 -3
  136. package/number-field/index.js +3 -3
  137. package/number-field/number-field.d.ts +3 -55
  138. package/number-field/number-field.js +205 -698
  139. package/package.json +126 -113
  140. package/popover/index.d.ts +11 -11
  141. package/popover/index.js +9 -9
  142. package/popover/popover-close.d.ts +3 -12
  143. package/popover/popover-close.js +4 -32
  144. package/popover/popover-popup.d.ts +3 -18
  145. package/popover/popover-popup.js +28 -205
  146. package/popover/popover-trigger.d.ts +3 -13
  147. package/popover/popover-trigger.js +4 -73
  148. package/popover/popover.d.ts +3 -29
  149. package/popover/popover.js +8 -207
  150. package/portal/index.d.ts +3 -4
  151. package/portal/index.js +2 -3
  152. package/portal/portal.d.ts +3 -27
  153. package/portal/portal.js +8 -157
  154. package/preview-card/index.d.ts +9 -9
  155. package/preview-card/index.js +7 -7
  156. package/preview-card/preview-card-popup.d.ts +3 -14
  157. package/preview-card/preview-card-popup.js +29 -194
  158. package/preview-card/preview-card-trigger.d.ts +3 -12
  159. package/preview-card/preview-card-trigger.js +4 -74
  160. package/preview-card/preview-card.d.ts +3 -33
  161. package/preview-card/preview-card.js +8 -239
  162. package/progress/index.d.ts +2 -3
  163. package/progress/index.js +2 -3
  164. package/progress/progress.d.ts +3 -17
  165. package/progress/progress.js +28 -130
  166. package/radio/index.d.ts +6 -6
  167. package/radio/index.js +5 -5
  168. package/radio/radio-group.d.ts +3 -37
  169. package/radio/radio-group.js +8 -200
  170. package/radio/radio.d.ts +3 -28
  171. package/radio/radio.js +38 -213
  172. package/scroll-area/index.d.ts +2 -3
  173. package/scroll-area/index.js +2 -3
  174. package/scroll-area/scroll-area.d.ts +3 -36
  175. package/scroll-area/scroll-area.js +25 -535
  176. package/select/index.d.ts +3 -4
  177. package/select/index.js +2 -3
  178. package/select/select.d.ts +3 -39
  179. package/select/select.js +115 -425
  180. package/separator/index.d.ts +2 -3
  181. package/separator/index.js +2 -3
  182. package/separator/separator.d.ts +3 -10
  183. package/separator/separator.js +23 -85
  184. package/sidebar/index.d.ts +29 -29
  185. package/sidebar/index.js +27 -32
  186. package/sidebar/sidebar-content.d.ts +3 -12
  187. package/sidebar/sidebar-content.js +7 -29
  188. package/sidebar/sidebar-footer.d.ts +3 -10
  189. package/sidebar/sidebar-footer.js +7 -20
  190. package/sidebar/sidebar-group-label.d.ts +3 -15
  191. package/sidebar/sidebar-group-label.js +17 -41
  192. package/sidebar/sidebar-group.d.ts +3 -13
  193. package/sidebar/sidebar-group.js +7 -24
  194. package/sidebar/sidebar-header.d.ts +3 -10
  195. package/sidebar/sidebar-header.js +7 -16
  196. package/sidebar/sidebar-inset.d.ts +3 -13
  197. package/sidebar/sidebar-inset.js +7 -28
  198. package/sidebar/sidebar-menu-button.d.ts +3 -26
  199. package/sidebar/sidebar-menu-button.js +60 -217
  200. package/sidebar/sidebar-menu-item.d.ts +3 -10
  201. package/sidebar/sidebar-menu-item.js +7 -19
  202. package/sidebar/sidebar-menu.d.ts +3 -12
  203. package/sidebar/sidebar-menu.js +7 -25
  204. package/sidebar/sidebar-provider.d.ts +3 -34
  205. package/sidebar/sidebar-provider.js +22 -232
  206. package/sidebar/sidebar-separator.d.ts +3 -10
  207. package/sidebar/sidebar-separator.js +9 -19
  208. package/sidebar/sidebar-trigger.d.ts +3 -14
  209. package/sidebar/sidebar-trigger.js +10 -46
  210. package/sidebar/sidebar.d.ts +3 -19
  211. package/sidebar/sidebar.js +65 -262
  212. package/slider/index.d.ts +3 -3
  213. package/slider/index.js +3 -3
  214. package/slider/slider.d.ts +3 -45
  215. package/slider/slider.js +97 -382
  216. package/spinner/index.d.ts +2 -3
  217. package/spinner/index.js +2 -3
  218. package/spinner/spinner.d.ts +3 -11
  219. package/spinner/spinner.js +20 -163
  220. package/split-button/index.d.ts +3 -1
  221. package/split-button/index.js +3 -1
  222. package/split-button/split-button.d.ts +3 -33
  223. package/split-button/split-button.js +307 -394
  224. package/stepper/index.d.ts +3 -3
  225. package/stepper/index.js +3 -3
  226. package/stepper/stepper.d.ts +3 -41
  227. package/stepper/stepper.js +57 -381
  228. package/switch/index.d.ts +3 -3
  229. package/switch/index.js +3 -3
  230. package/switch/switch.d.ts +3 -30
  231. package/switch/switch.js +63 -228
  232. package/tabs/index.d.ts +12 -12
  233. package/tabs/index.js +11 -11
  234. package/tabs/tab.d.ts +3 -14
  235. package/tabs/tab.js +33 -131
  236. package/tabs/tabs-indicator.d.ts +3 -9
  237. package/tabs/tabs-indicator.js +17 -22
  238. package/tabs/tabs-list.d.ts +3 -15
  239. package/tabs/tabs-list.js +14 -113
  240. package/tabs/tabs-panel.d.ts +3 -16
  241. package/tabs/tabs-panel.js +32 -114
  242. package/tabs/tabs.d.ts +3 -22
  243. package/tabs/tabs.js +8 -170
  244. package/textarea/index.d.ts +4 -4
  245. package/textarea/index.js +3 -3
  246. package/textarea/textarea.d.ts +3 -36
  247. package/textarea/textarea.js +63 -220
  248. package/toggle/index.d.ts +6 -6
  249. package/toggle/index.js +5 -5
  250. package/toggle/toggle-group.d.ts +3 -27
  251. package/toggle/toggle-group.js +9 -224
  252. package/toggle/toggle.d.ts +3 -26
  253. package/toggle/toggle.js +94 -178
  254. package/tokens/properties.css +361 -0
  255. package/tokens/prose.css +250 -0
  256. package/tokens/prose.d.ts +2 -0
  257. package/tokens/prose.js +4 -0
  258. package/tokens/tokens-raw.d.ts +2 -0
  259. package/tokens/tokens-raw.js +2 -0
  260. package/tokens/tokens.css +409 -0
  261. package/tokens/tokens.d.ts +2 -0
  262. package/tokens/tokens.js +5 -0
  263. package/toolbar/index.d.ts +2 -3
  264. package/toolbar/index.js +2 -3
  265. package/toolbar/toolbar.d.ts +3 -11
  266. package/toolbar/toolbar.js +25 -116
  267. package/tooltip/index.d.ts +9 -9
  268. package/tooltip/index.js +7 -7
  269. package/tooltip/tooltip-popup.d.ts +3 -14
  270. package/tooltip/tooltip-popup.js +32 -185
  271. package/tooltip/tooltip-trigger.d.ts +3 -14
  272. package/tooltip/tooltip-trigger.js +5 -148
  273. package/tooltip/tooltip.d.ts +3 -35
  274. package/tooltip/tooltip.js +8 -253
  275. package/trunc/index.d.ts +2 -3
  276. package/trunc/index.js +2 -3
  277. package/trunc/trunc.d.ts +3 -17
  278. package/trunc/trunc.js +10 -108
  279. package/_deprecated/center/center.d.ts +0 -14
  280. package/_deprecated/center/center.js +0 -37
  281. package/_deprecated/center/index.d.ts +0 -3
  282. package/_deprecated/center/index.js +0 -3
  283. package/_deprecated/center/register.js +0 -4
  284. package/_deprecated/hstack/hstack.d.ts +0 -25
  285. package/_deprecated/hstack/hstack.js +0 -187
  286. package/_deprecated/hstack/index.d.ts +0 -4
  287. package/_deprecated/hstack/index.js +0 -3
  288. package/_deprecated/hstack/register.d.ts +0 -1
  289. package/_deprecated/hstack/register.js +0 -4
  290. package/_deprecated/page-inset/index.d.ts +0 -3
  291. package/_deprecated/page-inset/index.js +0 -3
  292. package/_deprecated/page-inset/page-inset.d.ts +0 -28
  293. package/_deprecated/page-inset/page-inset.js +0 -151
  294. package/_deprecated/page-inset/register.d.ts +0 -1
  295. package/_deprecated/page-inset/register.js +0 -4
  296. package/_deprecated/vstack/index.d.ts +0 -3
  297. package/_deprecated/vstack/index.js +0 -3
  298. package/_deprecated/vstack/register.d.ts +0 -1
  299. package/_deprecated/vstack/register.js +0 -4
  300. package/_deprecated/vstack/vstack.d.ts +0 -17
  301. package/_deprecated/vstack/vstack.js +0 -125
  302. package/accordion/accordion-context.d.ts +0 -15
  303. package/accordion/accordion-context.js +0 -3
  304. package/alert-dialog/alert-dialog-context.d.ts +0 -13
  305. package/alert-dialog/alert-dialog-context.js +0 -3
  306. package/checkbox/checkbox-group-context.d.ts +0 -11
  307. package/checkbox/checkbox-group-context.js +0 -3
  308. package/command/command-context.d.ts +0 -30
  309. package/command/command-context.js +0 -3
  310. package/command/command-score.d.ts +0 -6
  311. package/command/command-score.js +0 -31
  312. package/dialog/dialog-context.d.ts +0 -13
  313. package/dialog/dialog-context.js +0 -3
  314. package/global.d.ts +0 -179
  315. package/menubar/menubar-context.d.ts +0 -9
  316. package/menubar/menubar-context.js +0 -2
  317. package/popover/popover-context.d.ts +0 -17
  318. package/popover/popover-context.js +0 -3
  319. package/preview-card/preview-card-context.d.ts +0 -16
  320. package/preview-card/preview-card-context.js +0 -3
  321. package/radio/radio-group-context.d.ts +0 -11
  322. package/radio/radio-group-context.js +0 -2
  323. package/sidebar/sidebar-context.d.ts +0 -15
  324. package/sidebar/sidebar-context.js +0 -3
  325. package/split-button/register.d.ts +0 -1
  326. package/split-button/register.js +0 -4
  327. package/tabs/tabs-context.d.ts +0 -8
  328. package/tabs/tabs-context.js +0 -2
  329. package/toggle/toggle-group-context.d.ts +0 -9
  330. package/toggle/toggle-group-context.js +0 -2
  331. package/tooltip/tooltip-context.d.ts +0 -17
  332. package/tooltip/tooltip-context.js +0 -3
  333. /package/{_deprecated/center/register.d.ts → _install.d.ts} +0 -0
package/field/field.js CHANGED
@@ -1,363 +1,44 @@
1
- var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
- function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
- var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
- var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
- var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
- var _, done = false;
7
- for (var i = decorators.length - 1; i >= 0; i--) {
8
- var context = {};
9
- for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
- for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
- context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
- var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
- if (kind === "accessor") {
14
- if (result === void 0) continue;
15
- if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
- if (_ = accept(result.get)) descriptor.get = _;
17
- if (_ = accept(result.set)) descriptor.set = _;
18
- if (_ = accept(result.init)) initializers.unshift(_);
19
- }
20
- else if (_ = accept(result)) {
21
- if (kind === "field") initializers.unshift(_);
22
- else descriptor[key] = _;
23
- }
24
- }
25
- if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
- done = true;
27
- };
28
- var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
- var useValue = arguments.length > 2;
30
- for (var i = 0; i < initializers.length; i++) {
31
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
- }
33
- return useValue ? value : void 0;
34
- };
35
- var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
36
- if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
37
- return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
38
- };
39
- import { css, html, LitElement } from "lit";
40
- import { property, state } from "lit/decorators.js";
41
- import { base } from "@deepfuture/dui-core/base";
42
- /** Selector matching all DUI form controls that can be wired by a field. */
43
- const CONTROL_SELECTOR = [
44
- "dui-input",
45
- "dui-textarea",
46
- "dui-select",
47
- "dui-checkbox",
48
- "dui-checkbox-group",
49
- "dui-radio",
50
- "dui-radio-group",
51
- "dui-switch",
52
- "dui-number-field",
53
- "dui-stepper",
54
- "dui-slider",
55
- "dui-combobox",
56
- "dui-dropzone",
57
- ].join(", ");
58
- /** Structural styles only — layout CSS. */
1
+ import { css } from "lit";
2
+ import { DuiFieldPrimitive } from "@deepfuture/dui-primitives/field";
3
+ import "../_install.js";
59
4
  const styles = css `
60
- :host {
61
- display: block;
62
- }
63
-
64
5
  [part="root"] {
65
- display: flex;
66
- flex-direction: column;
6
+ gap: var(--space-2);
67
7
  }
68
8
 
69
9
  [part="root"][data-orientation="horizontal"] {
70
- flex-direction: row;
71
- align-items: start;
10
+ gap: var(--space-3);
72
11
  }
73
12
 
74
- /* Hide wrapper parts when no content is slotted */
75
- [part="label"]:not([data-slotted]) { display: none; }
76
- [part="label"] { cursor: default; }
77
- [part="label"][data-disabled] { cursor: not-allowed; }
13
+ [part="label"] {
14
+ font-family: var(--font-sans);
15
+ font-size: var(--text-sm);
16
+ font-weight: var(--font-weight-medium);
17
+ line-height: var(--line-height-normal);
18
+ color: var(--text-1);
19
+ }
78
20
 
79
- [part="description"]:not([data-slotted]) { display: none; }
21
+ [part="label"][data-disabled] {
22
+ opacity: 0.4;
23
+ }
80
24
 
81
- [part="error"] { display: none; }
82
- [part="error"][data-invalid] { display: block; }
25
+ [part="description"] {
26
+ font-family: var(--font-sans);
27
+ font-size: var(--text-xs);
28
+ line-height: var(--line-height-normal);
29
+ color: var(--text-3);
30
+ margin: 0;
31
+ }
32
+
33
+ [part="error"][data-invalid] {
34
+ font-family: var(--font-sans);
35
+ font-size: var(--text-xs);
36
+ line-height: var(--line-height-normal);
37
+ color: var(--destructive);
38
+ margin: 0;
39
+ }
83
40
  `;
84
- /**
85
- * `<dui-field>` Slot-based form field wrapper.
86
- *
87
- * Provides label, description, and error slots around a default-slotted
88
- * form control. Manages ARIA wiring, field state (dirty, touched, focused,
89
- * filled), disabled propagation, and label click-to-focus.
90
- *
91
- * @slot label - Label text (e.g. `<span slot="label">Email</span>`).
92
- * @slot - Default slot for the form control.
93
- * @slot description - Help text (e.g. `<span slot="description">…</span>`).
94
- * @slot error - Error message (e.g. `<span slot="error">Required</span>`).
95
- * @csspart root - The field container element.
96
- * @csspart label - The label wrapper.
97
- * @csspart description - The description wrapper.
98
- * @csspart error - The error wrapper (hidden unless invalid).
99
- */
100
- let DuiField = (() => {
101
- let _classSuper = LitElement;
102
- let _disabled_decorators;
103
- let _disabled_initializers = [];
104
- let _disabled_extraInitializers = [];
105
- let _invalid_decorators;
106
- let _invalid_initializers = [];
107
- let _invalid_extraInitializers = [];
108
- let _orientation_decorators;
109
- let _orientation_initializers = [];
110
- let _orientation_extraInitializers = [];
111
- let _private_dirty_decorators;
112
- let _private_dirty_initializers = [];
113
- let _private_dirty_extraInitializers = [];
114
- let _private_dirty_descriptor;
115
- let _private_touched_decorators;
116
- let _private_touched_initializers = [];
117
- let _private_touched_extraInitializers = [];
118
- let _private_touched_descriptor;
119
- let _private_focused_decorators;
120
- let _private_focused_initializers = [];
121
- let _private_focused_extraInitializers = [];
122
- let _private_focused_descriptor;
123
- let _private_filled_decorators;
124
- let _private_filled_initializers = [];
125
- let _private_filled_extraInitializers = [];
126
- let _private_filled_descriptor;
127
- let _private_hasLabel_decorators;
128
- let _private_hasLabel_initializers = [];
129
- let _private_hasLabel_extraInitializers = [];
130
- let _private_hasLabel_descriptor;
131
- let _private_hasDescription_decorators;
132
- let _private_hasDescription_initializers = [];
133
- let _private_hasDescription_extraInitializers = [];
134
- let _private_hasDescription_descriptor;
135
- let _private_hasError_decorators;
136
- let _private_hasError_initializers = [];
137
- let _private_hasError_extraInitializers = [];
138
- let _private_hasError_descriptor;
139
- return class DuiField extends _classSuper {
140
- static {
141
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
142
- _disabled_decorators = [property({ type: Boolean, reflect: true })];
143
- _invalid_decorators = [property({ type: Boolean, reflect: true })];
144
- _orientation_decorators = [property()];
145
- _private_dirty_decorators = [state()];
146
- _private_touched_decorators = [state()];
147
- _private_focused_decorators = [state()];
148
- _private_filled_decorators = [state()];
149
- _private_hasLabel_decorators = [state()];
150
- _private_hasDescription_decorators = [state()];
151
- _private_hasError_decorators = [state()];
152
- __esDecorate(this, null, _disabled_decorators, { kind: "accessor", name: "disabled", static: false, private: false, access: { has: obj => "disabled" in obj, get: obj => obj.disabled, set: (obj, value) => { obj.disabled = value; } }, metadata: _metadata }, _disabled_initializers, _disabled_extraInitializers);
153
- __esDecorate(this, null, _invalid_decorators, { kind: "accessor", name: "invalid", static: false, private: false, access: { has: obj => "invalid" in obj, get: obj => obj.invalid, set: (obj, value) => { obj.invalid = value; } }, metadata: _metadata }, _invalid_initializers, _invalid_extraInitializers);
154
- __esDecorate(this, null, _orientation_decorators, { kind: "accessor", name: "orientation", static: false, private: false, access: { has: obj => "orientation" in obj, get: obj => obj.orientation, set: (obj, value) => { obj.orientation = value; } }, metadata: _metadata }, _orientation_initializers, _orientation_extraInitializers);
155
- __esDecorate(this, _private_dirty_descriptor = { get: __setFunctionName(function () { return this.#dirty_accessor_storage; }, "#dirty", "get"), set: __setFunctionName(function (value) { this.#dirty_accessor_storage = value; }, "#dirty", "set") }, _private_dirty_decorators, { kind: "accessor", name: "#dirty", static: false, private: true, access: { has: obj => #dirty in obj, get: obj => obj.#dirty, set: (obj, value) => { obj.#dirty = value; } }, metadata: _metadata }, _private_dirty_initializers, _private_dirty_extraInitializers);
156
- __esDecorate(this, _private_touched_descriptor = { get: __setFunctionName(function () { return this.#touched_accessor_storage; }, "#touched", "get"), set: __setFunctionName(function (value) { this.#touched_accessor_storage = value; }, "#touched", "set") }, _private_touched_decorators, { kind: "accessor", name: "#touched", static: false, private: true, access: { has: obj => #touched in obj, get: obj => obj.#touched, set: (obj, value) => { obj.#touched = value; } }, metadata: _metadata }, _private_touched_initializers, _private_touched_extraInitializers);
157
- __esDecorate(this, _private_focused_descriptor = { get: __setFunctionName(function () { return this.#focused_accessor_storage; }, "#focused", "get"), set: __setFunctionName(function (value) { this.#focused_accessor_storage = value; }, "#focused", "set") }, _private_focused_decorators, { kind: "accessor", name: "#focused", static: false, private: true, access: { has: obj => #focused in obj, get: obj => obj.#focused, set: (obj, value) => { obj.#focused = value; } }, metadata: _metadata }, _private_focused_initializers, _private_focused_extraInitializers);
158
- __esDecorate(this, _private_filled_descriptor = { get: __setFunctionName(function () { return this.#filled_accessor_storage; }, "#filled", "get"), set: __setFunctionName(function (value) { this.#filled_accessor_storage = value; }, "#filled", "set") }, _private_filled_decorators, { kind: "accessor", name: "#filled", static: false, private: true, access: { has: obj => #filled in obj, get: obj => obj.#filled, set: (obj, value) => { obj.#filled = value; } }, metadata: _metadata }, _private_filled_initializers, _private_filled_extraInitializers);
159
- __esDecorate(this, _private_hasLabel_descriptor = { get: __setFunctionName(function () { return this.#hasLabel_accessor_storage; }, "#hasLabel", "get"), set: __setFunctionName(function (value) { this.#hasLabel_accessor_storage = value; }, "#hasLabel", "set") }, _private_hasLabel_decorators, { kind: "accessor", name: "#hasLabel", static: false, private: true, access: { has: obj => #hasLabel in obj, get: obj => obj.#hasLabel, set: (obj, value) => { obj.#hasLabel = value; } }, metadata: _metadata }, _private_hasLabel_initializers, _private_hasLabel_extraInitializers);
160
- __esDecorate(this, _private_hasDescription_descriptor = { get: __setFunctionName(function () { return this.#hasDescription_accessor_storage; }, "#hasDescription", "get"), set: __setFunctionName(function (value) { this.#hasDescription_accessor_storage = value; }, "#hasDescription", "set") }, _private_hasDescription_decorators, { kind: "accessor", name: "#hasDescription", static: false, private: true, access: { has: obj => #hasDescription in obj, get: obj => obj.#hasDescription, set: (obj, value) => { obj.#hasDescription = value; } }, metadata: _metadata }, _private_hasDescription_initializers, _private_hasDescription_extraInitializers);
161
- __esDecorate(this, _private_hasError_descriptor = { get: __setFunctionName(function () { return this.#hasError_accessor_storage; }, "#hasError", "get"), set: __setFunctionName(function (value) { this.#hasError_accessor_storage = value; }, "#hasError", "set") }, _private_hasError_decorators, { kind: "accessor", name: "#hasError", static: false, private: true, access: { has: obj => #hasError in obj, get: obj => obj.#hasError, set: (obj, value) => { obj.#hasError = value; } }, metadata: _metadata }, _private_hasError_initializers, _private_hasError_extraInitializers);
162
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
163
- }
164
- static tagName = "dui-field";
165
- static styles = [base, styles];
166
- #disabled_accessor_storage = __runInitializers(this, _disabled_initializers, false);
167
- /** Whether the child control is disabled. */
168
- get disabled() { return this.#disabled_accessor_storage; }
169
- set disabled(value) { this.#disabled_accessor_storage = value; }
170
- #invalid_accessor_storage = (__runInitializers(this, _disabled_extraInitializers), __runInitializers(this, _invalid_initializers, false));
171
- /** Whether the field is in an invalid state. */
172
- get invalid() { return this.#invalid_accessor_storage; }
173
- set invalid(value) { this.#invalid_accessor_storage = value; }
174
- #orientation_accessor_storage = (__runInitializers(this, _invalid_extraInitializers), __runInitializers(this, _orientation_initializers, "vertical"));
175
- /** Layout direction: vertical (column) or horizontal (row). */
176
- get orientation() { return this.#orientation_accessor_storage; }
177
- set orientation(value) { this.#orientation_accessor_storage = value; }
178
- #dirty_accessor_storage = (__runInitializers(this, _orientation_extraInitializers), __runInitializers(this, _private_dirty_initializers, false));
179
- // --- Internal state ---
180
- get #dirty() { return _private_dirty_descriptor.get.call(this); }
181
- set #dirty(value) { return _private_dirty_descriptor.set.call(this, value); }
182
- #touched_accessor_storage = (__runInitializers(this, _private_dirty_extraInitializers), __runInitializers(this, _private_touched_initializers, false));
183
- get #touched() { return _private_touched_descriptor.get.call(this); }
184
- set #touched(value) { return _private_touched_descriptor.set.call(this, value); }
185
- #focused_accessor_storage = (__runInitializers(this, _private_touched_extraInitializers), __runInitializers(this, _private_focused_initializers, false));
186
- get #focused() { return _private_focused_descriptor.get.call(this); }
187
- set #focused(value) { return _private_focused_descriptor.set.call(this, value); }
188
- #filled_accessor_storage = (__runInitializers(this, _private_focused_extraInitializers), __runInitializers(this, _private_filled_initializers, false));
189
- get #filled() { return _private_filled_descriptor.get.call(this); }
190
- set #filled(value) { return _private_filled_descriptor.set.call(this, value); }
191
- #hasLabel_accessor_storage = (__runInitializers(this, _private_filled_extraInitializers), __runInitializers(this, _private_hasLabel_initializers, false));
192
- get #hasLabel() { return _private_hasLabel_descriptor.get.call(this); }
193
- set #hasLabel(value) { return _private_hasLabel_descriptor.set.call(this, value); }
194
- #hasDescription_accessor_storage = (__runInitializers(this, _private_hasLabel_extraInitializers), __runInitializers(this, _private_hasDescription_initializers, false));
195
- get #hasDescription() { return _private_hasDescription_descriptor.get.call(this); }
196
- set #hasDescription(value) { return _private_hasDescription_descriptor.set.call(this, value); }
197
- #hasError_accessor_storage = (__runInitializers(this, _private_hasDescription_extraInitializers), __runInitializers(this, _private_hasError_initializers, false));
198
- get #hasError() { return _private_hasError_descriptor.get.call(this); }
199
- set #hasError(value) { return _private_hasError_descriptor.set.call(this, value); }
200
- // --- Stable IDs ---
201
- #fieldId = (__runInitializers(this, _private_hasError_extraInitializers), crypto.randomUUID().slice(0, 8));
202
- get #labelId() {
203
- return `field-${this.#fieldId}-label`;
204
- }
205
- get #descriptionId() {
206
- return `field-${this.#fieldId}-desc`;
207
- }
208
- get #errorId() {
209
- return `field-${this.#fieldId}-error`;
210
- }
211
- // --- Control reference ---
212
- #control;
213
- #controlWasDisabled = false;
214
- // --- Lifecycle ---
215
- connectedCallback() {
216
- super.connectedCallback();
217
- this.addEventListener("focusin", this.#onFocusIn);
218
- this.addEventListener("focusout", this.#onFocusOut);
219
- this.addEventListener("input", this.#onInput);
220
- this.addEventListener("change", this.#onChange);
221
- }
222
- disconnectedCallback() {
223
- super.disconnectedCallback();
224
- this.removeEventListener("focusin", this.#onFocusIn);
225
- this.removeEventListener("focusout", this.#onFocusOut);
226
- this.removeEventListener("input", this.#onInput);
227
- this.removeEventListener("change", this.#onChange);
228
- }
229
- willUpdate(changed) {
230
- if (changed.has("invalid") && this.#control) {
231
- this.#wireControl();
232
- }
233
- if (changed.has("disabled") && this.#control) {
234
- if (this.disabled) {
235
- this.#controlWasDisabled = this.#control.hasAttribute("disabled");
236
- this.#control.setAttribute("disabled", "");
237
- }
238
- else if (!this.#controlWasDisabled) {
239
- this.#control.removeAttribute("disabled");
240
- }
241
- }
242
- }
243
- // --- Field state from DOM events ---
244
- #onFocusIn = () => {
245
- this.#focused = true;
246
- };
247
- #onFocusOut = () => {
248
- this.#focused = false;
249
- this.#touched = true;
250
- };
251
- #onInput = () => {
252
- this.#dirty = true;
253
- this.#filled = true;
254
- };
255
- #onChange = () => {
256
- this.#dirty = true;
257
- };
258
- // --- Slot change handlers ---
259
- #onControlSlotChange = () => {
260
- const slot = this.shadowRoot?.querySelector("slot:not([name])");
261
- const nodes = slot?.assignedElements({ flatten: true }) ?? [];
262
- this.#control = nodes.find((el) => el.matches(CONTROL_SELECTOR));
263
- if (this.#control) {
264
- this.#wireControl();
265
- if (this.disabled) {
266
- this.#controlWasDisabled = this.#control.hasAttribute("disabled");
267
- this.#control.setAttribute("disabled", "");
268
- }
269
- }
270
- };
271
- #onLabelSlotChange = (e) => {
272
- const slot = e.target;
273
- this.#hasLabel = slot.assignedNodes({ flatten: true }).length > 0;
274
- };
275
- #onDescriptionSlotChange = (e) => {
276
- const slot = e.target;
277
- this.#hasDescription = slot.assignedNodes({ flatten: true }).length > 0;
278
- this.#wireControl();
279
- };
280
- #onErrorSlotChange = (e) => {
281
- const slot = e.target;
282
- this.#hasError = slot.assignedNodes({ flatten: true }).length > 0;
283
- this.#wireControl();
284
- };
285
- // --- ARIA wiring ---
286
- #wireControl() {
287
- const ctrl = this.#control;
288
- if (!ctrl)
289
- return;
290
- // Build aria-describedby from present slots
291
- const parts = [];
292
- if (this.#hasDescription)
293
- parts.push(this.#descriptionId);
294
- if (this.invalid && this.#hasError)
295
- parts.push(this.#errorId);
296
- const describedBy = parts.join(" ") || null;
297
- if (describedBy)
298
- ctrl.setAttribute("aria-describedby", describedBy);
299
- else
300
- ctrl.removeAttribute("aria-describedby");
301
- ctrl.setAttribute("aria-invalid", String(this.invalid));
302
- }
303
- // --- Label click-to-focus ---
304
- #onLabelClick = () => {
305
- if (!this.disabled) {
306
- this.#control?.focus();
307
- }
308
- };
309
- // --- Render ---
310
- render() {
311
- return html `
312
- <div
313
- part="root"
314
- role="group"
315
- ?data-disabled="${this.disabled}"
316
- ?data-invalid="${this.invalid}"
317
- ?data-valid="${!this.invalid}"
318
- ?data-dirty="${this.#dirty}"
319
- ?data-touched="${this.#touched}"
320
- ?data-filled="${this.#filled}"
321
- ?data-focused="${this.#focused}"
322
- data-orientation="${this.orientation}"
323
- >
324
- <div
325
- part="label"
326
- id="${this.#labelId}"
327
- ?data-slotted="${this.#hasLabel}"
328
- ?data-disabled="${this.disabled}"
329
- @click="${this.#onLabelClick}"
330
- >
331
- <slot
332
- name="label"
333
- @slotchange="${this.#onLabelSlotChange}"
334
- ></slot>
335
- </div>
336
- <slot @slotchange="${this.#onControlSlotChange}"></slot>
337
- <div
338
- part="description"
339
- id="${this.#descriptionId}"
340
- ?data-slotted="${this.#hasDescription}"
341
- >
342
- <slot
343
- name="description"
344
- @slotchange="${this.#onDescriptionSlotChange}"
345
- ></slot>
346
- </div>
347
- <div
348
- part="error"
349
- id="${this.#errorId}"
350
- role="alert"
351
- ?data-invalid="${this.invalid}"
352
- >
353
- <slot
354
- name="error"
355
- @slotchange="${this.#onErrorSlotChange}"
356
- ></slot>
357
- </div>
358
- </div>
359
- `;
360
- }
361
- };
362
- })();
363
- export { DuiField };
41
+ export class DuiField extends DuiFieldPrimitive {
42
+ static styles = [...DuiFieldPrimitive.styles, styles];
43
+ }
44
+ customElements.define(DuiField.tagName, DuiField);
package/field/index.d.ts CHANGED
@@ -1 +1,2 @@
1
+ import "./field.js";
1
2
  export { DuiField } from "./field.js";
package/field/index.js CHANGED
@@ -1 +1,2 @@
1
+ import "./field.js";
1
2
  export { DuiField } from "./field.js";
@@ -1,20 +1,5 @@
1
- import { LitElement, type TemplateResult } from "lit";
2
- /**
3
- * `<dui-fieldset>` Semantic grouping for related form fields.
4
- *
5
- * Wraps content in a native `<fieldset>` element, providing semantic
6
- * grouping for radio groups, checkbox groups, or logical field clusters.
7
- *
8
- * @slot legend - Legend text (e.g. `<span slot="legend">Personal Info</span>`).
9
- * @slot - Default slot for field children.
10
- * @csspart root - The native `<fieldset>` element.
11
- * @csspart legend - The native `<legend>` element.
12
- */
13
- export declare class DuiFieldset extends LitElement {
14
- #private;
15
- static tagName: "dui-fieldset";
1
+ import { DuiFieldsetPrimitive } from "@deepfuture/dui-primitives/fieldset";
2
+ import "../_install.js";
3
+ export declare class DuiFieldset extends DuiFieldsetPrimitive {
16
4
  static styles: import("lit").CSSResult[];
17
- /** Disables all child form controls. */
18
- accessor disabled: boolean;
19
- render(): TemplateResult;
20
5
  }
@@ -1,116 +1,27 @@
1
- var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
- function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
- var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
- var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
- var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
- var _, done = false;
7
- for (var i = decorators.length - 1; i >= 0; i--) {
8
- var context = {};
9
- for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
- for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
- context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
- var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
- if (kind === "accessor") {
14
- if (result === void 0) continue;
15
- if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
- if (_ = accept(result.get)) descriptor.get = _;
17
- if (_ = accept(result.set)) descriptor.set = _;
18
- if (_ = accept(result.init)) initializers.unshift(_);
19
- }
20
- else if (_ = accept(result)) {
21
- if (kind === "field") initializers.unshift(_);
22
- else descriptor[key] = _;
23
- }
24
- }
25
- if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
- done = true;
27
- };
28
- var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
- var useValue = arguments.length > 2;
30
- for (var i = 0; i < initializers.length; i++) {
31
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
- }
33
- return useValue ? value : void 0;
34
- };
35
- var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
36
- if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
37
- return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
38
- };
39
- import { css, html, LitElement } from "lit";
40
- import { property, state } from "lit/decorators.js";
41
- import { base } from "@deepfuture/dui-core/base";
42
- /** Structural styles only — layout CSS. */
1
+ import { css } from "lit";
2
+ import { DuiFieldsetPrimitive } from "@deepfuture/dui-primitives/fieldset";
3
+ import "../_install.js";
43
4
  const styles = css `
44
- :host {
45
- display: block;
5
+ [part="root"] {
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: var(--space-4);
46
9
  }
47
10
 
48
- [part="root"] {
49
- border: none;
50
- margin: 0;
51
- padding: 0;
52
- min-width: 0;
11
+ [part="root"][data-disabled] {
12
+ opacity: 0.4;
53
13
  }
54
14
 
55
- [part="legend"]:not([data-slotted]) { display: none; }
56
- [part="legend"] { padding: 0; }
15
+ [part="legend"] {
16
+ font-family: var(--font-sans);
17
+ font-size: var(--text-sm);
18
+ font-weight: var(--font-weight-semibold);
19
+ line-height: var(--line-height-normal);
20
+ color: var(--text-1);
21
+ margin-bottom: var(--space-2);
22
+ }
57
23
  `;
58
- /**
59
- * `<dui-fieldset>` Semantic grouping for related form fields.
60
- *
61
- * Wraps content in a native `<fieldset>` element, providing semantic
62
- * grouping for radio groups, checkbox groups, or logical field clusters.
63
- *
64
- * @slot legend - Legend text (e.g. `<span slot="legend">Personal Info</span>`).
65
- * @slot - Default slot for field children.
66
- * @csspart root - The native `<fieldset>` element.
67
- * @csspart legend - The native `<legend>` element.
68
- */
69
- let DuiFieldset = (() => {
70
- let _classSuper = LitElement;
71
- let _disabled_decorators;
72
- let _disabled_initializers = [];
73
- let _disabled_extraInitializers = [];
74
- let _private_hasLegend_decorators;
75
- let _private_hasLegend_initializers = [];
76
- let _private_hasLegend_extraInitializers = [];
77
- let _private_hasLegend_descriptor;
78
- return class DuiFieldset extends _classSuper {
79
- static {
80
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
81
- _disabled_decorators = [property({ type: Boolean, reflect: true })];
82
- _private_hasLegend_decorators = [state()];
83
- __esDecorate(this, null, _disabled_decorators, { kind: "accessor", name: "disabled", static: false, private: false, access: { has: obj => "disabled" in obj, get: obj => obj.disabled, set: (obj, value) => { obj.disabled = value; } }, metadata: _metadata }, _disabled_initializers, _disabled_extraInitializers);
84
- __esDecorate(this, _private_hasLegend_descriptor = { get: __setFunctionName(function () { return this.#hasLegend_accessor_storage; }, "#hasLegend", "get"), set: __setFunctionName(function (value) { this.#hasLegend_accessor_storage = value; }, "#hasLegend", "set") }, _private_hasLegend_decorators, { kind: "accessor", name: "#hasLegend", static: false, private: true, access: { has: obj => #hasLegend in obj, get: obj => obj.#hasLegend, set: (obj, value) => { obj.#hasLegend = value; } }, metadata: _metadata }, _private_hasLegend_initializers, _private_hasLegend_extraInitializers);
85
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
86
- }
87
- static tagName = "dui-fieldset";
88
- static styles = [base, styles];
89
- #disabled_accessor_storage = __runInitializers(this, _disabled_initializers, false);
90
- /** Disables all child form controls. */
91
- get disabled() { return this.#disabled_accessor_storage; }
92
- set disabled(value) { this.#disabled_accessor_storage = value; }
93
- #hasLegend_accessor_storage = (__runInitializers(this, _disabled_extraInitializers), __runInitializers(this, _private_hasLegend_initializers, false));
94
- get #hasLegend() { return _private_hasLegend_descriptor.get.call(this); }
95
- set #hasLegend(value) { return _private_hasLegend_descriptor.set.call(this, value); }
96
- #onLegendSlotChange = (__runInitializers(this, _private_hasLegend_extraInitializers), (e) => {
97
- const slot = e.target;
98
- this.#hasLegend = slot.assignedNodes({ flatten: true }).length > 0;
99
- });
100
- render() {
101
- return html `
102
- <fieldset
103
- part="root"
104
- ?disabled="${this.disabled}"
105
- ?data-disabled="${this.disabled}"
106
- >
107
- <legend part="legend" ?data-slotted="${this.#hasLegend}">
108
- <slot name="legend" @slotchange="${this.#onLegendSlotChange}"></slot>
109
- </legend>
110
- <slot></slot>
111
- </fieldset>
112
- `;
113
- }
114
- };
115
- })();
116
- export { DuiFieldset };
24
+ export class DuiFieldset extends DuiFieldsetPrimitive {
25
+ static styles = [...DuiFieldsetPrimitive.styles, styles];
26
+ }
27
+ customElements.define(DuiFieldset.tagName, DuiFieldset);
@@ -1 +1,2 @@
1
+ import "./fieldset.js";
1
2
  export { DuiFieldset } from "./fieldset.js";
package/fieldset/index.js CHANGED
@@ -1 +1,2 @@
1
+ import "./fieldset.js";
1
2
  export { DuiFieldset } from "./fieldset.js";
package/icon/icon.d.ts CHANGED
@@ -1,16 +1,4 @@
1
- import { LitElement } from "lit";
2
- /**
3
- * `<dui-icon>` Slot-based SVG icon container.
4
- *
5
- * Consumers provide their own SVG via the default slot. The icon inherits
6
- * `currentColor` and sizes itself via `--icon-size`.
7
- *
8
- * @slot - SVG element to display.
9
- * @cssprop [--icon-size=1em] - Icon dimensions.
10
- * @cssprop [--icon-color=currentColor] - Icon color.
11
- */
12
- export declare class DuiIcon extends LitElement {
13
- static tagName: "dui-icon";
14
- static styles: import("lit").CSSResult[];
15
- render(): import("lit").TemplateResult<1>;
1
+ import { DuiIconPrimitive } from "@deepfuture/dui-primitives/icon";
2
+ import "../_install.js";
3
+ export declare class DuiIcon extends DuiIconPrimitive {
16
4
  }
package/icon/icon.js CHANGED
@@ -1,34 +1,5 @@
1
- import { css, html, LitElement } from "lit";
2
- import { base } from "@deepfuture/dui-core/base";
3
- const styles = css `
4
- :host {
5
- display: inline-flex;
6
- align-items: center;
7
- justify-content: center;
8
- width: var(--icon-size, 1em);
9
- height: var(--icon-size, 1em);
10
- color: var(--icon-color, currentColor);
11
- }
12
-
13
- ::slotted(svg) {
14
- width: 100%;
15
- height: 100%;
16
- }
17
- `;
18
- /**
19
- * `<dui-icon>` — Slot-based SVG icon container.
20
- *
21
- * Consumers provide their own SVG via the default slot. The icon inherits
22
- * `currentColor` and sizes itself via `--icon-size`.
23
- *
24
- * @slot - SVG element to display.
25
- * @cssprop [--icon-size=1em] - Icon dimensions.
26
- * @cssprop [--icon-color=currentColor] - Icon color.
27
- */
28
- export class DuiIcon extends LitElement {
29
- static tagName = "dui-icon";
30
- static styles = [base, styles];
31
- render() {
32
- return html `<slot></slot>`;
33
- }
1
+ import { DuiIconPrimitive } from "@deepfuture/dui-primitives/icon";
2
+ import "../_install.js";
3
+ export class DuiIcon extends DuiIconPrimitive {
34
4
  }
5
+ customElements.define(DuiIcon.tagName, DuiIcon);
package/icon/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- import { DuiIcon } from "./icon.js";
2
- export { DuiIcon };
3
- export declare const iconFamily: (typeof DuiIcon)[];
1
+ import "./icon.js";
2
+ export { DuiIcon } from "./icon.js";
package/icon/index.js CHANGED
@@ -1,3 +1,2 @@
1
- import { DuiIcon } from "./icon.js";
2
- export { DuiIcon };
3
- export const iconFamily = [DuiIcon];
1
+ import "./icon.js";
2
+ export { DuiIcon } from "./icon.js";