@deepfuture/dui-components 0.0.20 → 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 -193
  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 -546
  176. package/select/index.d.ts +3 -4
  177. package/select/index.js +2 -3
  178. package/select/select.d.ts +3 -37
  179. package/select/select.js +115 -403
  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 -84
  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 -31
  223. package/split-button/split-button.js +307 -384
  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
@@ -1,240 +1,83 @@
1
- /** Ported from original DUI: deep-future-app/app/client/components/dui/textarea */
2
- var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
- function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
- var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
5
- var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
6
- var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
7
- var _, done = false;
8
- for (var i = decorators.length - 1; i >= 0; i--) {
9
- var context = {};
10
- for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
11
- for (var p in contextIn.access) context.access[p] = contextIn.access[p];
12
- context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
13
- var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
14
- if (kind === "accessor") {
15
- if (result === void 0) continue;
16
- if (result === null || typeof result !== "object") throw new TypeError("Object expected");
17
- if (_ = accept(result.get)) descriptor.get = _;
18
- if (_ = accept(result.set)) descriptor.set = _;
19
- if (_ = accept(result.init)) initializers.unshift(_);
20
- }
21
- else if (_ = accept(result)) {
22
- if (kind === "field") initializers.unshift(_);
23
- else descriptor[key] = _;
24
- }
25
- }
26
- if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
- done = true;
28
- };
29
- var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
- var useValue = arguments.length > 2;
31
- for (var i = 0; i < initializers.length; i++) {
32
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
- }
34
- return useValue ? value : void 0;
35
- };
36
- import { css, html, LitElement } from "lit";
37
- import { property } from "lit/decorators.js";
38
- import { live } from "lit/directives/live.js";
39
- import { styleMap } from "lit/directives/style-map.js";
40
- import { base } from "@deepfuture/dui-core/base";
41
- import { customEvent } from "@deepfuture/dui-core/event";
42
- export const textareaChangeEvent = customEvent("textarea-change", { bubbles: true, composed: true });
1
+ import { css } from "lit";
2
+ import { DuiTextareaPrimitive } from "@deepfuture/dui-primitives/textarea";
3
+ import "../_install.js";
43
4
  const styles = css `
44
5
  :host {
45
- display: block;
6
+ --font-size: var(--text-sm);
46
7
  }
47
8
 
48
9
  [part="textarea"] {
49
- display: block;
50
- box-sizing: border-box;
51
- width: 100%;
52
- font-family: inherit;
53
- outline: none;
54
- resize: vertical;
10
+ padding: var(--space-2);
11
+ font-family: var(--font-sans);
12
+ font-size: var(--font-size);
13
+ line-height: var(--line-height-snug);
14
+ color: var(--text-1);
15
+ border: var(--border-width-thin) solid var(--border);
16
+ background: transparent;
17
+ border-radius: var(--radius-md);
18
+ transition-property: border-color, box-shadow, background, filter, transform;
19
+ transition-duration: var(--duration-fast);
55
20
  }
56
21
 
57
- [part="textarea"][data-resize="none"] {
58
- resize: none;
22
+ [part="textarea"][data-resize="auto"] {
23
+ min-height: var(--component-height-md);
59
24
  }
60
25
 
61
- [part="textarea"][data-resize="vertical"] {
62
- resize: vertical;
26
+ /* Scrollbar */
27
+ [part="textarea"] {
28
+ scrollbar-width: thin;
29
+ scrollbar-color: color-mix(in srgb, var(--text-2) 50%, transparent) transparent;
63
30
  }
64
31
 
65
- [part="textarea"][data-resize="horizontal"] {
66
- resize: horizontal;
32
+ [part="textarea"]::-webkit-scrollbar {
33
+ width: 0.5rem;
67
34
  }
68
35
 
69
- [part="textarea"][data-resize="both"] {
70
- resize: both;
36
+ [part="textarea"]::-webkit-scrollbar-track {
37
+ background: transparent;
71
38
  }
72
39
 
73
- [part="textarea"][data-resize="auto"] {
74
- resize: none;
75
- field-sizing: content;
40
+ [part="textarea"]::-webkit-scrollbar-thumb {
41
+ background: color-mix(in srgb, var(--text-2) 50%, transparent);
42
+ border-radius: var(--radius-sm);
43
+ border: 0.125rem solid transparent;
44
+ background-clip: padding-box;
45
+ }
46
+
47
+ [part="textarea"]::-webkit-scrollbar-thumb:hover {
48
+ background: color-mix(in srgb, var(--text-2) 70%, transparent);
49
+ }
50
+
51
+ [part="textarea"]::placeholder {
52
+ color: var(--text-3);
53
+ }
54
+
55
+ [part="textarea"]:focus-visible {
56
+ box-shadow:
57
+ 0 0 0 var(--focus-ring-offset) var(--background),
58
+ 0 0 0 calc(var(--focus-ring-offset) + var(--focus-ring-width)) var(--focus-ring-color);
76
59
  }
77
60
 
78
61
  [part="textarea"]:disabled {
79
- cursor: not-allowed;
62
+ opacity: 0.4;
63
+ }
64
+
65
+ :host([aria-invalid="true"]) [part="textarea"] {
66
+ border-color: var(--destructive);
67
+ }
68
+
69
+ /* Ghost variant */
70
+ :host([variant="ghost"]) [part="textarea"] {
71
+ border-color: transparent;
72
+ background: transparent;
73
+ padding: 0;
74
+ }
75
+
76
+ :host([variant="ghost"]) [part="textarea"]:focus-visible {
77
+ box-shadow: none;
80
78
  }
81
79
  `;
82
- /**
83
- * A multi-line text input with resize modes including auto-grow.
84
- */
85
- let DuiTextarea = (() => {
86
- let _classSuper = LitElement;
87
- let _value_decorators;
88
- let _value_initializers = [];
89
- let _value_extraInitializers = [];
90
- let _placeholder_decorators;
91
- let _placeholder_initializers = [];
92
- let _placeholder_extraInitializers = [];
93
- let _disabled_decorators;
94
- let _disabled_initializers = [];
95
- let _disabled_extraInitializers = [];
96
- let _required_decorators;
97
- let _required_initializers = [];
98
- let _required_extraInitializers = [];
99
- let _readonly_decorators;
100
- let _readonly_initializers = [];
101
- let _readonly_extraInitializers = [];
102
- let _rows_decorators;
103
- let _rows_initializers = [];
104
- let _rows_extraInitializers = [];
105
- let _minLength_decorators;
106
- let _minLength_initializers = [];
107
- let _minLength_extraInitializers = [];
108
- let _maxLength_decorators;
109
- let _maxLength_initializers = [];
110
- let _maxLength_extraInitializers = [];
111
- let _name_decorators;
112
- let _name_initializers = [];
113
- let _name_extraInitializers = [];
114
- let _resize_decorators;
115
- let _resize_initializers = [];
116
- let _resize_extraInitializers = [];
117
- let _maxHeight_decorators;
118
- let _maxHeight_initializers = [];
119
- let _maxHeight_extraInitializers = [];
120
- return class DuiTextarea extends _classSuper {
121
- static {
122
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
123
- _value_decorators = [property()];
124
- _placeholder_decorators = [property()];
125
- _disabled_decorators = [property({ type: Boolean, reflect: true })];
126
- _required_decorators = [property({ type: Boolean })];
127
- _readonly_decorators = [property({ type: Boolean })];
128
- _rows_decorators = [property({ type: Number })];
129
- _minLength_decorators = [property({ type: Number, attribute: "minlength" })];
130
- _maxLength_decorators = [property({ type: Number, attribute: "maxlength" })];
131
- _name_decorators = [property()];
132
- _resize_decorators = [property()];
133
- _maxHeight_decorators = [property({ attribute: "max-height" })];
134
- __esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
135
- __esDecorate(this, null, _placeholder_decorators, { kind: "accessor", name: "placeholder", static: false, private: false, access: { has: obj => "placeholder" in obj, get: obj => obj.placeholder, set: (obj, value) => { obj.placeholder = value; } }, metadata: _metadata }, _placeholder_initializers, _placeholder_extraInitializers);
136
- __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);
137
- __esDecorate(this, null, _required_decorators, { kind: "accessor", name: "required", static: false, private: false, access: { has: obj => "required" in obj, get: obj => obj.required, set: (obj, value) => { obj.required = value; } }, metadata: _metadata }, _required_initializers, _required_extraInitializers);
138
- __esDecorate(this, null, _readonly_decorators, { kind: "accessor", name: "readonly", static: false, private: false, access: { has: obj => "readonly" in obj, get: obj => obj.readonly, set: (obj, value) => { obj.readonly = value; } }, metadata: _metadata }, _readonly_initializers, _readonly_extraInitializers);
139
- __esDecorate(this, null, _rows_decorators, { kind: "accessor", name: "rows", static: false, private: false, access: { has: obj => "rows" in obj, get: obj => obj.rows, set: (obj, value) => { obj.rows = value; } }, metadata: _metadata }, _rows_initializers, _rows_extraInitializers);
140
- __esDecorate(this, null, _minLength_decorators, { kind: "accessor", name: "minLength", static: false, private: false, access: { has: obj => "minLength" in obj, get: obj => obj.minLength, set: (obj, value) => { obj.minLength = value; } }, metadata: _metadata }, _minLength_initializers, _minLength_extraInitializers);
141
- __esDecorate(this, null, _maxLength_decorators, { kind: "accessor", name: "maxLength", static: false, private: false, access: { has: obj => "maxLength" in obj, get: obj => obj.maxLength, set: (obj, value) => { obj.maxLength = value; } }, metadata: _metadata }, _maxLength_initializers, _maxLength_extraInitializers);
142
- __esDecorate(this, null, _name_decorators, { kind: "accessor", name: "name", static: false, private: false, access: { has: obj => "name" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_extraInitializers);
143
- __esDecorate(this, null, _resize_decorators, { kind: "accessor", name: "resize", static: false, private: false, access: { has: obj => "resize" in obj, get: obj => obj.resize, set: (obj, value) => { obj.resize = value; } }, metadata: _metadata }, _resize_initializers, _resize_extraInitializers);
144
- __esDecorate(this, null, _maxHeight_decorators, { kind: "accessor", name: "maxHeight", static: false, private: false, access: { has: obj => "maxHeight" in obj, get: obj => obj.maxHeight, set: (obj, value) => { obj.maxHeight = value; } }, metadata: _metadata }, _maxHeight_initializers, _maxHeight_extraInitializers);
145
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
146
- }
147
- static tagName = "dui-textarea";
148
- static formAssociated = true;
149
- static shadowRootOptions = {
150
- ...LitElement.shadowRootOptions,
151
- delegatesFocus: true,
152
- };
153
- static styles = [base, styles];
154
- #internals;
155
- constructor() {
156
- super();
157
- this.#internals = this.attachInternals();
158
- }
159
- #value_accessor_storage = __runInitializers(this, _value_initializers, "");
160
- /** Current textarea value. */
161
- get value() { return this.#value_accessor_storage; }
162
- set value(value) { this.#value_accessor_storage = value; }
163
- #placeholder_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _placeholder_initializers, ""));
164
- /** Placeholder text. */
165
- get placeholder() { return this.#placeholder_accessor_storage; }
166
- set placeholder(value) { this.#placeholder_accessor_storage = value; }
167
- #disabled_accessor_storage = (__runInitializers(this, _placeholder_extraInitializers), __runInitializers(this, _disabled_initializers, false));
168
- get disabled() { return this.#disabled_accessor_storage; }
169
- set disabled(value) { this.#disabled_accessor_storage = value; }
170
- #required_accessor_storage = (__runInitializers(this, _disabled_extraInitializers), __runInitializers(this, _required_initializers, false));
171
- get required() { return this.#required_accessor_storage; }
172
- set required(value) { this.#required_accessor_storage = value; }
173
- #readonly_accessor_storage = (__runInitializers(this, _required_extraInitializers), __runInitializers(this, _readonly_initializers, false));
174
- get readonly() { return this.#readonly_accessor_storage; }
175
- set readonly(value) { this.#readonly_accessor_storage = value; }
176
- #rows_accessor_storage = (__runInitializers(this, _readonly_extraInitializers), __runInitializers(this, _rows_initializers, undefined));
177
- /** Number of visible text rows. */
178
- get rows() { return this.#rows_accessor_storage; }
179
- set rows(value) { this.#rows_accessor_storage = value; }
180
- #minLength_accessor_storage = (__runInitializers(this, _rows_extraInitializers), __runInitializers(this, _minLength_initializers, undefined));
181
- get minLength() { return this.#minLength_accessor_storage; }
182
- set minLength(value) { this.#minLength_accessor_storage = value; }
183
- #maxLength_accessor_storage = (__runInitializers(this, _minLength_extraInitializers), __runInitializers(this, _maxLength_initializers, undefined));
184
- get maxLength() { return this.#maxLength_accessor_storage; }
185
- set maxLength(value) { this.#maxLength_accessor_storage = value; }
186
- #name_accessor_storage = (__runInitializers(this, _maxLength_extraInitializers), __runInitializers(this, _name_initializers, ""));
187
- get name() { return this.#name_accessor_storage; }
188
- set name(value) { this.#name_accessor_storage = value; }
189
- #resize_accessor_storage = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _resize_initializers, "vertical"));
190
- /** Resize behavior: "none" | "vertical" | "horizontal" | "both" | "auto". */
191
- get resize() { return this.#resize_accessor_storage; }
192
- set resize(value) { this.#resize_accessor_storage = value; }
193
- #maxHeight_accessor_storage = (__runInitializers(this, _resize_extraInitializers), __runInitializers(this, _maxHeight_initializers, undefined));
194
- /** Maximum height (CSS value). Textarea scrolls when content exceeds this. */
195
- get maxHeight() { return this.#maxHeight_accessor_storage; }
196
- set maxHeight(value) { this.#maxHeight_accessor_storage = value; }
197
- willUpdate() {
198
- this.#internals.setFormValue(this.value);
199
- }
200
- #syncValidity() {
201
- const textarea = this.shadowRoot?.querySelector("textarea");
202
- if (textarea) {
203
- this.#internals.setValidity(textarea.validity, textarea.validationMessage, textarea);
204
- }
205
- }
206
- updated() {
207
- this.#syncValidity();
208
- }
209
- #onInput = (__runInitializers(this, _maxHeight_extraInitializers), (event) => {
210
- const target = event.target;
211
- this.value = target.value;
212
- this.#internals.setFormValue(this.value);
213
- this.dispatchEvent(textareaChangeEvent({ value: this.value }));
214
- });
215
- render() {
216
- const textAreaStyles = styleMap({
217
- overflowY: this.maxHeight === undefined ? "auto" : "initial",
218
- maxHeight: this.maxHeight ?? "initial",
219
- });
220
- return html `
221
- <textarea
222
- part="textarea"
223
- style=${textAreaStyles}
224
- .value=${live(this.value)}
225
- placeholder=${this.placeholder}
226
- rows=${this.rows ?? ""}
227
- ?disabled=${this.disabled}
228
- ?required=${this.required}
229
- ?readonly=${this.readonly}
230
- minlength=${this.minLength ?? ""}
231
- maxlength=${this.maxLength ?? ""}
232
- name=${this.name}
233
- data-resize=${this.resize}
234
- @input=${this.#onInput}
235
- ></textarea>
236
- `;
237
- }
238
- };
239
- })();
240
- export { DuiTextarea };
80
+ export class DuiTextarea extends DuiTextareaPrimitive {
81
+ static styles = [...DuiTextareaPrimitive.styles, styles];
82
+ }
83
+ customElements.define(DuiTextarea.tagName, DuiTextarea);
package/toggle/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { DuiToggle, pressedChangeEvent } from "./toggle.js";
2
- export { DuiToggle, pressedChangeEvent };
3
- import { DuiToggleGroup, valueChangeEvent } from "./toggle-group.js";
4
- export { DuiToggleGroup, valueChangeEvent };
5
- export type { ToggleGroupContext } from "./toggle-group-context.js";
6
- export declare const toggleFamily: (typeof DuiToggle | typeof DuiToggleGroup)[];
1
+ import "./toggle.js";
2
+ import "./toggle-group.js";
3
+ export { DuiToggle } from "./toggle.js";
4
+ export { DuiToggleGroup } from "./toggle-group.js";
5
+ export type { ToggleGroupContext } from "@deepfuture/dui-primitives/toggle";
6
+ export { pressedChangeEvent, valueChangeEvent } from "@deepfuture/dui-primitives/toggle";
package/toggle/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { DuiToggle, pressedChangeEvent } from "./toggle.js";
2
- export { DuiToggle, pressedChangeEvent };
3
- import { DuiToggleGroup, valueChangeEvent } from "./toggle-group.js";
4
- export { DuiToggleGroup, valueChangeEvent };
5
- export const toggleFamily = [DuiToggle, DuiToggleGroup];
1
+ import "./toggle.js";
2
+ import "./toggle-group.js";
3
+ export { DuiToggle } from "./toggle.js";
4
+ export { DuiToggleGroup } from "./toggle-group.js";
5
+ export { pressedChangeEvent, valueChangeEvent } from "@deepfuture/dui-primitives/toggle";
@@ -1,29 +1,5 @@
1
- import { LitElement, type TemplateResult } from "lit";
2
- import { type ToggleGroupContext } from "./toggle-group-context.js";
3
- export declare const valueChangeEvent: (detail: {
4
- value: string[];
5
- }) => CustomEvent<{
6
- value: string[];
7
- }>;
8
- /**
9
- * `<dui-toggle-group>` — Groups toggle buttons with shared single/multi selection.
10
- *
11
- * @slot - `dui-toggle` children.
12
- * @csspart root - The group container.
13
- * @fires value-change - Fired when selection changes. Detail: { value: string[] }
14
- */
15
- export declare class DuiToggleGroup extends LitElement {
16
- #private;
17
- static tagName: "dui-toggle-group";
1
+ import { DuiToggleGroupPrimitive } from "@deepfuture/dui-primitives/toggle";
2
+ import "../_install.js";
3
+ export declare class DuiToggleGroup extends DuiToggleGroupPrimitive {
18
4
  static styles: import("lit").CSSResult[];
19
- accessor value: string[] | undefined;
20
- accessor defaultValue: string[];
21
- accessor type: "single" | "multiple";
22
- accessor orientation: "horizontal" | "vertical";
23
- accessor disabled: boolean;
24
- accessor loop: boolean;
25
- accessor _ctx: ToggleGroupContext;
26
- connectedCallback(): void;
27
- willUpdate(): void;
28
- render(): TemplateResult;
29
5
  }
@@ -1,228 +1,13 @@
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 { provide } from "@lit/context";
42
- import { base } from "@deepfuture/dui-core/base";
43
- import { customEvent } from "@deepfuture/dui-core/event";
44
- import { toggleGroupContext, } from "./toggle-group-context.js";
45
- export const valueChangeEvent = customEvent("value-change", { bubbles: true, composed: true });
46
- /** Structural styles only — layout CSS. */
1
+ import { css } from "lit";
2
+ import { DuiToggleGroupPrimitive } from "@deepfuture/dui-primitives/toggle";
3
+ import "../_install.js";
47
4
  const styles = css `
48
- :host {
49
- display: inline-flex;
50
- }
51
-
52
5
  [part="root"] {
53
- display: inline-flex;
54
- }
55
-
56
- :host([orientation="vertical"]) [part="root"] {
57
- flex-direction: column;
6
+ gap: var(--space-1);
7
+ border-radius: var(--radius-md);
58
8
  }
59
9
  `;
60
- /**
61
- * `<dui-toggle-group>` Groups toggle buttons with shared single/multi selection.
62
- *
63
- * @slot - `dui-toggle` children.
64
- * @csspart root - The group container.
65
- * @fires value-change - Fired when selection changes. Detail: { value: string[] }
66
- */
67
- let DuiToggleGroup = (() => {
68
- let _classSuper = LitElement;
69
- let _value_decorators;
70
- let _value_initializers = [];
71
- let _value_extraInitializers = [];
72
- let _defaultValue_decorators;
73
- let _defaultValue_initializers = [];
74
- let _defaultValue_extraInitializers = [];
75
- let _type_decorators;
76
- let _type_initializers = [];
77
- let _type_extraInitializers = [];
78
- let _orientation_decorators;
79
- let _orientation_initializers = [];
80
- let _orientation_extraInitializers = [];
81
- let _disabled_decorators;
82
- let _disabled_initializers = [];
83
- let _disabled_extraInitializers = [];
84
- let _loop_decorators;
85
- let _loop_initializers = [];
86
- let _loop_extraInitializers = [];
87
- let _private_internalValue_decorators;
88
- let _private_internalValue_initializers = [];
89
- let _private_internalValue_extraInitializers = [];
90
- let _private_internalValue_descriptor;
91
- let __ctx_decorators;
92
- let __ctx_initializers = [];
93
- let __ctx_extraInitializers = [];
94
- return class DuiToggleGroup extends _classSuper {
95
- static {
96
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
97
- _value_decorators = [property({ type: Array })];
98
- _defaultValue_decorators = [property({ type: Array, attribute: "default-value" })];
99
- _type_decorators = [property({ reflect: true })];
100
- _orientation_decorators = [property({ reflect: true })];
101
- _disabled_decorators = [property({ type: Boolean, reflect: true })];
102
- _loop_decorators = [property({ type: Boolean })];
103
- _private_internalValue_decorators = [state()];
104
- __ctx_decorators = [provide({ context: toggleGroupContext }), state()];
105
- __esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
106
- __esDecorate(this, null, _defaultValue_decorators, { kind: "accessor", name: "defaultValue", static: false, private: false, access: { has: obj => "defaultValue" in obj, get: obj => obj.defaultValue, set: (obj, value) => { obj.defaultValue = value; } }, metadata: _metadata }, _defaultValue_initializers, _defaultValue_extraInitializers);
107
- __esDecorate(this, null, _type_decorators, { kind: "accessor", name: "type", static: false, private: false, access: { has: obj => "type" in obj, get: obj => obj.type, set: (obj, value) => { obj.type = value; } }, metadata: _metadata }, _type_initializers, _type_extraInitializers);
108
- __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);
109
- __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);
110
- __esDecorate(this, null, _loop_decorators, { kind: "accessor", name: "loop", static: false, private: false, access: { has: obj => "loop" in obj, get: obj => obj.loop, set: (obj, value) => { obj.loop = value; } }, metadata: _metadata }, _loop_initializers, _loop_extraInitializers);
111
- __esDecorate(this, _private_internalValue_descriptor = { get: __setFunctionName(function () { return this.#internalValue_accessor_storage; }, "#internalValue", "get"), set: __setFunctionName(function (value) { this.#internalValue_accessor_storage = value; }, "#internalValue", "set") }, _private_internalValue_decorators, { kind: "accessor", name: "#internalValue", static: false, private: true, access: { has: obj => #internalValue in obj, get: obj => obj.#internalValue, set: (obj, value) => { obj.#internalValue = value; } }, metadata: _metadata }, _private_internalValue_initializers, _private_internalValue_extraInitializers);
112
- __esDecorate(this, null, __ctx_decorators, { kind: "accessor", name: "_ctx", static: false, private: false, access: { has: obj => "_ctx" in obj, get: obj => obj._ctx, set: (obj, value) => { obj._ctx = value; } }, metadata: _metadata }, __ctx_initializers, __ctx_extraInitializers);
113
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
114
- }
115
- static tagName = "dui-toggle-group";
116
- static styles = [base, styles];
117
- #value_accessor_storage = __runInitializers(this, _value_initializers, undefined);
118
- get value() { return this.#value_accessor_storage; }
119
- set value(value) { this.#value_accessor_storage = value; }
120
- #defaultValue_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _defaultValue_initializers, []));
121
- get defaultValue() { return this.#defaultValue_accessor_storage; }
122
- set defaultValue(value) { this.#defaultValue_accessor_storage = value; }
123
- #type_accessor_storage = (__runInitializers(this, _defaultValue_extraInitializers), __runInitializers(this, _type_initializers, "single"));
124
- get type() { return this.#type_accessor_storage; }
125
- set type(value) { this.#type_accessor_storage = value; }
126
- #orientation_accessor_storage = (__runInitializers(this, _type_extraInitializers), __runInitializers(this, _orientation_initializers, "horizontal"));
127
- get orientation() { return this.#orientation_accessor_storage; }
128
- set orientation(value) { this.#orientation_accessor_storage = value; }
129
- #disabled_accessor_storage = (__runInitializers(this, _orientation_extraInitializers), __runInitializers(this, _disabled_initializers, false));
130
- get disabled() { return this.#disabled_accessor_storage; }
131
- set disabled(value) { this.#disabled_accessor_storage = value; }
132
- #loop_accessor_storage = (__runInitializers(this, _disabled_extraInitializers), __runInitializers(this, _loop_initializers, true));
133
- get loop() { return this.#loop_accessor_storage; }
134
- set loop(value) { this.#loop_accessor_storage = value; }
135
- #internalValue_accessor_storage = (__runInitializers(this, _loop_extraInitializers), __runInitializers(this, _private_internalValue_initializers, []));
136
- get #internalValue() { return _private_internalValue_descriptor.get.call(this); }
137
- set #internalValue(value) { return _private_internalValue_descriptor.set.call(this, value); }
138
- get #currentValue() {
139
- return this.value ?? this.#internalValue;
140
- }
141
- #toggle = (__runInitializers(this, _private_internalValue_extraInitializers), (itemValue) => {
142
- if (this.disabled)
143
- return;
144
- const current = this.#currentValue;
145
- let next;
146
- if (this.type === "single") {
147
- next = current.includes(itemValue) ? [] : [itemValue];
148
- }
149
- else {
150
- next = current.includes(itemValue)
151
- ? current.filter((v) => v !== itemValue)
152
- : [...current, itemValue];
153
- }
154
- if (this.value === undefined) {
155
- this.#internalValue = next;
156
- }
157
- this.dispatchEvent(valueChangeEvent({ value: next }));
158
- });
159
- #_ctx_accessor_storage = __runInitializers(this, __ctx_initializers, this.#buildContext());
160
- get _ctx() { return this.#_ctx_accessor_storage; }
161
- set _ctx(value) { this.#_ctx_accessor_storage = value; }
162
- #buildContext() {
163
- return {
164
- value: this.#currentValue,
165
- disabled: this.disabled,
166
- type: this.type,
167
- toggle: this.#toggle,
168
- };
169
- }
170
- connectedCallback() {
171
- super.connectedCallback();
172
- if (this.value === undefined && this.defaultValue.length > 0) {
173
- this.#internalValue = [...this.defaultValue];
174
- }
175
- this._ctx = this.#buildContext();
176
- }
177
- willUpdate() {
178
- this._ctx = this.#buildContext();
179
- }
180
- #onKeyDown = (__runInitializers(this, __ctx_extraInitializers), (e) => {
181
- const isHorizontal = this.orientation === "horizontal";
182
- const nextKey = isHorizontal ? "ArrowRight" : "ArrowDown";
183
- const prevKey = isHorizontal ? "ArrowLeft" : "ArrowUp";
184
- if (e.key !== nextKey && e.key !== prevKey)
185
- return;
186
- e.preventDefault();
187
- const toggles = [
188
- ...this.querySelectorAll("dui-toggle"),
189
- ];
190
- const focusable = toggles.filter((t) => !t.hasAttribute("disabled"));
191
- if (focusable.length === 0)
192
- return;
193
- const active = this.shadowRoot?.activeElement ??
194
- document.activeElement;
195
- const currentToggle = toggles.find((t) => t === active || t.shadowRoot?.activeElement === active || t.contains(active));
196
- const currentIndex = currentToggle
197
- ? focusable.indexOf(currentToggle)
198
- : -1;
199
- let nextIndex;
200
- if (e.key === nextKey) {
201
- nextIndex = currentIndex + 1;
202
- if (nextIndex >= focusable.length) {
203
- nextIndex = this.loop ? 0 : focusable.length - 1;
204
- }
205
- }
206
- else {
207
- nextIndex = currentIndex - 1;
208
- if (nextIndex < 0) {
209
- nextIndex = this.loop ? focusable.length - 1 : 0;
210
- }
211
- }
212
- focusable[nextIndex]?.focus();
213
- });
214
- render() {
215
- return html `
216
- <div
217
- part="root"
218
- role="group"
219
- aria-orientation="${this.orientation}"
220
- @keydown="${this.#onKeyDown}"
221
- >
222
- <slot></slot>
223
- </div>
224
- `;
225
- }
226
- };
227
- })();
228
- export { DuiToggleGroup };
10
+ export class DuiToggleGroup extends DuiToggleGroupPrimitive {
11
+ static styles = [...DuiToggleGroupPrimitive.styles, styles];
12
+ }
13
+ customElements.define(DuiToggleGroup.tagName, DuiToggleGroup);
@@ -1,28 +1,5 @@
1
- import { LitElement, type TemplateResult } from "lit";
2
- import { type ToggleGroupContext } from "./toggle-group-context.js";
3
- export declare const pressedChangeEvent: (detail: {
4
- pressed: boolean;
5
- }) => CustomEvent<{
6
- pressed: boolean;
7
- }>;
8
- /**
9
- * `<dui-toggle>` — A two-state toggle button. Works standalone or inside a toggle group.
10
- *
11
- * @slot - Toggle content (text and/or icons).
12
- * @slot icon - Optional leading icon.
13
- * @csspart root - The button element.
14
- * @fires pressed-change - Fired when toggled. Detail: { pressed: boolean }
15
- */
16
- export declare class DuiToggle extends LitElement {
17
- #private;
18
- static tagName: "dui-toggle";
19
- static shadowRootOptions: ShadowRootInit;
1
+ import { DuiTogglePrimitive } from "@deepfuture/dui-primitives/toggle";
2
+ import "../_install.js";
3
+ export declare class DuiToggle extends DuiTogglePrimitive {
20
4
  static styles: import("lit").CSSResult[];
21
- accessor pressed: boolean | undefined;
22
- accessor defaultPressed: boolean;
23
- accessor disabled: boolean;
24
- accessor value: string | undefined;
25
- accessor _groupCtx: ToggleGroupContext;
26
- connectedCallback(): void;
27
- render(): TemplateResult;
28
5
  }