@editora/ui-core 0.1.21 → 0.1.23

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 (348) hide show
  1. package/README.md +292 -221
  2. package/dist/{ElementBase-YlTLMsGk.mjs → ElementBase-BeZT54Hj.mjs} +3 -2
  3. package/dist/ElementBase-DxbvhLJs.js +1 -0
  4. package/dist/ElementBase.d.ts +2 -1
  5. package/dist/ElementBase.d.ts.map +1 -1
  6. package/dist/__tests__/setup.d.ts +0 -2
  7. package/dist/__tests__/setup.d.ts.map +1 -1
  8. package/dist/accordion.cjs.js +4 -4
  9. package/dist/accordion.esm.js +4 -4
  10. package/dist/alert-dialog.cjs.js +32 -32
  11. package/dist/alert-dialog.esm.js +95 -75
  12. package/dist/alert.cjs.js +7 -7
  13. package/dist/alert.esm.js +7 -7
  14. package/dist/anchor.cjs.js +3 -3
  15. package/dist/anchor.esm.js +6 -5
  16. package/dist/animated-beam.cjs.js +1 -1
  17. package/dist/animated-beam.esm.js +1 -1
  18. package/dist/animated-list.cjs.js +5 -5
  19. package/dist/animated-list.esm.js +5 -5
  20. package/dist/animated-text.cjs.js +5 -5
  21. package/dist/animated-text.esm.js +5 -5
  22. package/dist/app-header.cjs.js +4 -4
  23. package/dist/app-header.esm.js +4 -4
  24. package/dist/aspect-ratio.cjs.js +4 -4
  25. package/dist/aspect-ratio.esm.js +4 -4
  26. package/dist/avatar.cjs.js +14 -14
  27. package/dist/avatar.esm.js +31 -29
  28. package/dist/badge.cjs.js +5 -5
  29. package/dist/badge.esm.js +5 -5
  30. package/dist/block-controls.cjs.js +5 -5
  31. package/dist/block-controls.esm.js +5 -5
  32. package/dist/box.cjs.js +3 -3
  33. package/dist/box.esm.js +3 -3
  34. package/dist/breadcrumb.cjs.js +6 -6
  35. package/dist/breadcrumb.esm.js +6 -6
  36. package/dist/button.cjs.js +1 -1
  37. package/dist/button.esm.js +1 -1
  38. package/dist/{calendar-DLY4acgn.mjs → calendar-B3PUKHQm.mjs} +227 -183
  39. package/dist/{calendar-Dkof-FTK.js → calendar-D-mXMgqc.js} +74 -35
  40. package/dist/calendar.cjs.js +1 -1
  41. package/dist/calendar.esm.js +1 -1
  42. package/dist/card.cjs.js +8 -8
  43. package/dist/card.esm.js +63 -20
  44. package/dist/chart.cjs.js +5 -5
  45. package/dist/chart.esm.js +7 -7
  46. package/dist/checkbox.cjs.js +3 -3
  47. package/dist/checkbox.esm.js +3 -3
  48. package/dist/collapsible.cjs.js +8 -8
  49. package/dist/collapsible.esm.js +8 -8
  50. package/dist/collection.cjs.js +1 -1
  51. package/dist/collection.esm.js +9 -8
  52. package/dist/color-picker.cjs.js +30 -10
  53. package/dist/color-picker.esm.js +84 -62
  54. package/dist/combobox.cjs.js +29 -27
  55. package/dist/combobox.esm.js +51 -45
  56. package/dist/command-palette.cjs.js +1 -1
  57. package/dist/command-palette.esm.js +1 -1
  58. package/dist/command.cjs.js +2 -2
  59. package/dist/command.esm.js +3 -3
  60. package/dist/components/ui-alert-dialog.d.ts +1 -0
  61. package/dist/components/ui-alert-dialog.d.ts.map +1 -1
  62. package/dist/components/ui-anchor.d.ts +2 -1
  63. package/dist/components/ui-anchor.d.ts.map +1 -1
  64. package/dist/components/ui-avatar.d.ts +1 -0
  65. package/dist/components/ui-avatar.d.ts.map +1 -1
  66. package/dist/components/ui-button.d.ts +1 -0
  67. package/dist/components/ui-button.d.ts.map +1 -1
  68. package/dist/components/ui-calendar.d.ts.map +1 -1
  69. package/dist/components/ui-card.d.ts +3 -0
  70. package/dist/components/ui-card.d.ts.map +1 -1
  71. package/dist/components/ui-checkbox.d.ts.map +1 -1
  72. package/dist/components/ui-collection.d.ts +2 -1
  73. package/dist/components/ui-collection.d.ts.map +1 -1
  74. package/dist/components/ui-color-picker.d.ts.map +1 -1
  75. package/dist/components/ui-combobox.d.ts.map +1 -1
  76. package/dist/components/ui-data-table.d.ts.map +1 -1
  77. package/dist/components/ui-date-field.d.ts.map +1 -1
  78. package/dist/components/ui-date-picker.d.ts.map +1 -1
  79. package/dist/components/ui-date-range-picker.d.ts.map +1 -1
  80. package/dist/components/ui-date-range-time-picker.d.ts.map +1 -1
  81. package/dist/components/ui-date-time-picker.d.ts.map +1 -1
  82. package/dist/components/ui-dock.d.ts +1 -0
  83. package/dist/components/ui-dock.d.ts.map +1 -1
  84. package/dist/components/ui-drawer.d.ts.map +1 -1
  85. package/dist/components/ui-dropdown.d.ts.map +1 -1
  86. package/dist/components/ui-field.d.ts.map +1 -1
  87. package/dist/components/ui-file-upload.d.ts.map +1 -1
  88. package/dist/components/ui-form.d.ts +1 -0
  89. package/dist/components/ui-form.d.ts.map +1 -1
  90. package/dist/components/ui-gantt.d.ts.map +1 -1
  91. package/dist/components/ui-input.d.ts.map +1 -1
  92. package/dist/components/ui-menu.d.ts.map +1 -1
  93. package/dist/components/ui-multi-select.d.ts.map +1 -1
  94. package/dist/components/ui-number-field.d.ts.map +1 -1
  95. package/dist/components/ui-password-field.d.ts.map +1 -1
  96. package/dist/components/ui-pin-input.d.ts +1 -0
  97. package/dist/components/ui-pin-input.d.ts.map +1 -1
  98. package/dist/components/ui-placement-grid.d.ts.map +1 -1
  99. package/dist/components/ui-progress.d.ts.map +1 -1
  100. package/dist/components/ui-radio.d.ts.map +1 -1
  101. package/dist/components/ui-rating.d.ts +1 -0
  102. package/dist/components/ui-rating.d.ts.map +1 -1
  103. package/dist/components/ui-roving-focus-group.d.ts +2 -1
  104. package/dist/components/ui-roving-focus-group.d.ts.map +1 -1
  105. package/dist/components/ui-select.d.ts.map +1 -1
  106. package/dist/components/ui-sortable.d.ts.map +1 -1
  107. package/dist/components/ui-switch.d.ts.map +1 -1
  108. package/dist/components/ui-table.d.ts.map +1 -1
  109. package/dist/components/ui-tabs.d.ts +1 -0
  110. package/dist/components/ui-tabs.d.ts.map +1 -1
  111. package/dist/components/ui-tags-input.d.ts +1 -0
  112. package/dist/components/ui-tags-input.d.ts.map +1 -1
  113. package/dist/components/ui-textarea.d.ts.map +1 -1
  114. package/dist/components/ui-time-field.d.ts.map +1 -1
  115. package/dist/components/ui-toggle-group.d.ts.map +1 -1
  116. package/dist/components/ui-toggle.d.ts.map +1 -1
  117. package/dist/components/ui-tree.d.ts.map +1 -1
  118. package/dist/components/ui-wizard.d.ts.map +1 -1
  119. package/dist/container.cjs.js +1 -1
  120. package/dist/container.esm.js +1 -1
  121. package/dist/context-menu.cjs.js +3 -3
  122. package/dist/context-menu.esm.js +5 -5
  123. package/dist/control-group.cjs.js +1 -1
  124. package/dist/control-group.esm.js +1 -1
  125. package/dist/control-name-BmoI1m3a.js +1 -0
  126. package/dist/control-name-Bpj7F34X.mjs +48 -0
  127. package/dist/data-table.cjs.js +6 -3
  128. package/dist/data-table.esm.js +146 -143
  129. package/dist/date-field.cjs.js +5 -5
  130. package/dist/date-field.esm.js +34 -31
  131. package/dist/date-picker.cjs.js +16 -16
  132. package/dist/date-picker.esm.js +49 -45
  133. package/dist/date-range-picker.cjs.js +5 -5
  134. package/dist/date-range-picker.esm.js +120 -118
  135. package/dist/date-range-time-picker.cjs.js +22 -22
  136. package/dist/date-range-time-picker.esm.js +89 -85
  137. package/dist/date-time-picker.cjs.js +23 -23
  138. package/dist/date-time-picker.esm.js +103 -99
  139. package/dist/{date-time-utils-y1N2gvG2.mjs → date-time-utils-BTlxnz5j.mjs} +1 -1
  140. package/dist/{date-time-utils-Dmost5Ee.js → date-time-utils-y3AvNvGe.js} +1 -1
  141. package/dist/description.cjs.js +4 -4
  142. package/dist/description.esm.js +4 -4
  143. package/dist/dialog.cjs.js +3 -3
  144. package/dist/dialog.esm.js +3 -3
  145. package/dist/direction-provider.cjs.js +1 -1
  146. package/dist/direction-provider.esm.js +1 -1
  147. package/dist/dismissable-layer.cjs.js +1 -1
  148. package/dist/dismissable-layer.esm.js +1 -1
  149. package/dist/dock.cjs.js +12 -12
  150. package/dist/dock.esm.js +73 -75
  151. package/dist/domElement-DazSZBjV.js +1 -0
  152. package/dist/domElement-ZlSGVP0l.mjs +5 -0
  153. package/dist/domElement.d.ts +2 -0
  154. package/dist/domElement.d.ts.map +1 -0
  155. package/dist/drawer.cjs.js +19 -19
  156. package/dist/drawer.esm.js +58 -58
  157. package/dist/dropdown.cjs.js +13 -13
  158. package/dist/dropdown.esm.js +50 -49
  159. package/dist/empty-state.cjs.js +4 -4
  160. package/dist/empty-state.esm.js +4 -4
  161. package/dist/field-error.cjs.js +2 -2
  162. package/dist/field-error.esm.js +2 -2
  163. package/dist/field.cjs.js +12 -12
  164. package/dist/field.esm.js +84 -75
  165. package/dist/fieldset.cjs.js +5 -5
  166. package/dist/fieldset.esm.js +5 -5
  167. package/dist/file-upload.cjs.js +4 -4
  168. package/dist/file-upload.esm.js +6 -4
  169. package/dist/flex.cjs.js +1 -1
  170. package/dist/flex.esm.js +1 -1
  171. package/dist/floating-toolbar.cjs.js +8 -8
  172. package/dist/floating-toolbar.esm.js +10 -10
  173. package/dist/focus-scope.cjs.js +1 -1
  174. package/dist/focus-scope.esm.js +1 -1
  175. package/dist/form.cjs.js +13 -13
  176. package/dist/form.esm.js +23 -13
  177. package/dist/gantt.cjs.js +43 -32
  178. package/dist/gantt.esm.js +100 -89
  179. package/dist/grid.cjs.js +1 -1
  180. package/dist/grid.esm.js +1 -1
  181. package/dist/hover-card.cjs.js +1 -1
  182. package/dist/hover-card.esm.js +1 -1
  183. package/dist/icon-cloud.cjs.js +4 -4
  184. package/dist/icon-cloud.esm.js +4 -4
  185. package/dist/icon.cjs.js +1 -1
  186. package/dist/icon.esm.js +1 -1
  187. package/dist/index.cjs.js +1 -1
  188. package/dist/index.esm.js +121 -118
  189. package/dist/inline-edit.cjs.js +2 -2
  190. package/dist/inline-edit.esm.js +2 -2
  191. package/dist/input.cjs.js +14 -14
  192. package/dist/input.esm.js +40 -33
  193. package/dist/label.cjs.js +4 -4
  194. package/dist/label.esm.js +4 -4
  195. package/dist/layout.cjs.js +1 -1
  196. package/dist/layout.esm.js +1 -1
  197. package/dist/{listbox-B6QgECax.js → listbox-CTpRpuF7.js} +1 -1
  198. package/dist/{listbox-DJamVeFj.mjs → listbox-hMVOhKHC.mjs} +1 -1
  199. package/dist/listbox.cjs.js +1 -1
  200. package/dist/listbox.esm.js +1 -1
  201. package/dist/marquee.cjs.js +4 -4
  202. package/dist/marquee.esm.js +4 -4
  203. package/dist/masonry-grid.cjs.js +1 -1
  204. package/dist/masonry-grid.esm.js +1 -1
  205. package/dist/{menu-item-styles-CbNUEwP2.js → menu-item-styles-B4onAr4C.js} +3 -3
  206. package/dist/{menu-item-styles-CZiPwPwl.mjs → menu-item-styles-IGSFLAHu.mjs} +3 -3
  207. package/dist/menu.cjs.js +7 -7
  208. package/dist/menu.esm.js +30 -29
  209. package/dist/menubar.cjs.js +1 -1
  210. package/dist/menubar.esm.js +3 -3
  211. package/dist/meter.cjs.js +2 -2
  212. package/dist/meter.esm.js +2 -2
  213. package/dist/multi-select.cjs.js +17 -17
  214. package/dist/multi-select.esm.js +52 -44
  215. package/dist/navigation-menu.cjs.js +2 -2
  216. package/dist/navigation-menu.esm.js +2 -2
  217. package/dist/number-field.cjs.js +11 -13
  218. package/dist/number-field.esm.js +30 -28
  219. package/dist/number-ticker.cjs.js +5 -5
  220. package/dist/number-ticker.esm.js +5 -5
  221. package/dist/odometer.cjs.js +3 -3
  222. package/dist/odometer.esm.js +3 -3
  223. package/dist/orbiter.cjs.js +4 -4
  224. package/dist/orbiter.esm.js +4 -4
  225. package/dist/pagination.cjs.js +2 -2
  226. package/dist/pagination.esm.js +2 -2
  227. package/dist/{panel-group-CaD0_KQf.js → panel-group-BVHJEdfx.js} +1 -1
  228. package/dist/{panel-group-8sVNnGxg.mjs → panel-group-BxO_eNW6.mjs} +1 -1
  229. package/dist/panel-group.cjs.js +1 -1
  230. package/dist/panel-group.esm.js +1 -1
  231. package/dist/panel.cjs.js +1 -1
  232. package/dist/panel.esm.js +1 -1
  233. package/dist/password-field.cjs.js +23 -23
  234. package/dist/password-field.esm.js +48 -47
  235. package/dist/pin-input.cjs.js +8 -6
  236. package/dist/pin-input.esm.js +21 -15
  237. package/dist/placement-grid.cjs.js +4 -4
  238. package/dist/placement-grid.esm.js +58 -58
  239. package/dist/plugin-panel.cjs.js +2 -2
  240. package/dist/plugin-panel.esm.js +2 -2
  241. package/dist/popover.cjs.js +6 -6
  242. package/dist/popover.esm.js +5 -5
  243. package/dist/portal.cjs.js +1 -1
  244. package/dist/portal.esm.js +1 -1
  245. package/dist/positioner.cjs.js +1 -1
  246. package/dist/positioner.esm.js +1 -1
  247. package/dist/presence.cjs.js +1 -1
  248. package/dist/presence.esm.js +1 -1
  249. package/dist/primitives/control-name.d.ts +30 -0
  250. package/dist/primitives/control-name.d.ts.map +1 -0
  251. package/dist/primitives/trigger.d.ts +2 -0
  252. package/dist/primitives/trigger.d.ts.map +1 -0
  253. package/dist/progress.cjs.js +4 -4
  254. package/dist/progress.esm.js +20 -18
  255. package/dist/quick-actions.cjs.js +4 -4
  256. package/dist/quick-actions.esm.js +4 -4
  257. package/dist/radio-group.cjs.js +2 -2
  258. package/dist/radio-group.esm.js +2 -2
  259. package/dist/radio.cjs.js +3 -3
  260. package/dist/radio.esm.js +3 -3
  261. package/dist/rating.cjs.js +18 -17
  262. package/dist/rating.esm.js +91 -92
  263. package/dist/roving-focus-group.cjs.js +1 -1
  264. package/dist/roving-focus-group.esm.js +11 -10
  265. package/dist/{runtime-D1gFh1fS.mjs → runtime-CFnK53iC.mjs} +133 -94
  266. package/dist/runtime-DwE-tizc.js +1 -0
  267. package/dist/runtime.cjs.js +1 -1
  268. package/dist/runtime.d.ts +1 -1
  269. package/dist/runtime.d.ts.map +1 -1
  270. package/dist/runtime.esm.js +29 -26
  271. package/dist/scroll-area.cjs.js +1 -1
  272. package/dist/scroll-area.esm.js +1 -1
  273. package/dist/section.cjs.js +1 -1
  274. package/dist/section.esm.js +1 -1
  275. package/dist/select.cjs.js +20 -19
  276. package/dist/select.esm.js +37 -33
  277. package/dist/selection-popup.cjs.js +3 -3
  278. package/dist/selection-popup.esm.js +3 -3
  279. package/dist/separator.cjs.js +8 -8
  280. package/dist/separator.esm.js +8 -8
  281. package/dist/sidebar.cjs.js +9 -9
  282. package/dist/sidebar.esm.js +16 -16
  283. package/dist/skeleton.cjs.js +8 -8
  284. package/dist/skeleton.esm.js +8 -8
  285. package/dist/slider.cjs.js +4 -4
  286. package/dist/slider.esm.js +4 -4
  287. package/dist/slot.cjs.js +4 -4
  288. package/dist/slot.esm.js +4 -4
  289. package/dist/sortable.cjs.js +43 -44
  290. package/dist/sortable.esm.js +100 -101
  291. package/dist/spinning-text.cjs.js +4 -4
  292. package/dist/spinning-text.esm.js +4 -4
  293. package/dist/split-button.cjs.js +1 -1
  294. package/dist/split-button.esm.js +2 -2
  295. package/dist/splitter.cjs.js +1 -1
  296. package/dist/splitter.esm.js +1 -1
  297. package/dist/stepper.cjs.js +2 -2
  298. package/dist/stepper.esm.js +2 -2
  299. package/dist/switch.cjs.js +11 -13
  300. package/dist/switch.esm.js +11 -13
  301. package/dist/table.cjs.js +10 -7
  302. package/dist/table.esm.js +47 -44
  303. package/dist/tabs.cjs.js +21 -22
  304. package/dist/tabs.esm.js +71 -67
  305. package/dist/tags-input.cjs.js +9 -9
  306. package/dist/tags-input.esm.js +32 -25
  307. package/dist/textarea.cjs.js +10 -10
  308. package/dist/textarea.esm.js +30 -21
  309. package/dist/theme.d.ts +18 -0
  310. package/dist/theme.d.ts.map +1 -1
  311. package/dist/time-field.cjs.js +5 -5
  312. package/dist/time-field.esm.js +21 -18
  313. package/dist/time-picker.cjs.js +4 -4
  314. package/dist/time-picker.esm.js +6 -6
  315. package/dist/timeline.cjs.js +3 -3
  316. package/dist/timeline.esm.js +5 -5
  317. package/dist/toast.cjs.js +7 -7
  318. package/dist/toast.esm.js +14 -14
  319. package/dist/toggle-group.cjs.js +6 -7
  320. package/dist/toggle-group.esm.js +64 -61
  321. package/dist/toggle.cjs.js +18 -18
  322. package/dist/toggle.esm.js +32 -31
  323. package/dist/toolbar.cjs.js +1 -1
  324. package/dist/toolbar.esm.js +1 -1
  325. package/dist/tooltip.cjs.js +5 -5
  326. package/dist/tooltip.esm.js +5 -5
  327. package/dist/transfer-list.cjs.js +4 -4
  328. package/dist/transfer-list.esm.js +4 -4
  329. package/dist/{tree-B3kE8ESs.mjs → tree-B_oQput6.mjs} +35 -34
  330. package/dist/tree-SivHxcAy.js +39 -0
  331. package/dist/tree-item.cjs.js +1 -1
  332. package/dist/tree-item.esm.js +1 -1
  333. package/dist/tree.cjs.js +1 -1
  334. package/dist/tree.esm.js +1 -1
  335. package/dist/trigger-BjnxLCeQ.mjs +9 -0
  336. package/dist/trigger-DkPsKxsP.js +1 -0
  337. package/dist/{ui-button-rXQOS9QJ.js → ui-button-BPrzJScZ.js} +29 -28
  338. package/dist/{ui-button-Q0GNNWKC.mjs → ui-button-Co8Sid6t.mjs} +70 -49
  339. package/dist/{ui-icon-BzVNC_lr.js → ui-icon-D3avtxX_.js} +5 -5
  340. package/dist/{ui-icon-YI6lyuqU.mjs → ui-icon-DLhB08Fo.mjs} +3 -3
  341. package/dist/visually-hidden.cjs.js +1 -1
  342. package/dist/visually-hidden.esm.js +1 -1
  343. package/dist/wizard.cjs.js +12 -13
  344. package/dist/wizard.esm.js +18 -16
  345. package/package.json +2 -2
  346. package/dist/ElementBase-EV6mVBUV.js +0 -1
  347. package/dist/runtime-CTaOSmBj.js +0 -1
  348. package/dist/tree-Dx_kv_ih.js +0 -39
@@ -1,14 +1,14 @@
1
- import { E as g } from "./ElementBase-YlTLMsGk.mjs";
2
- const u = `
1
+ import { E as l } from "./ElementBase-BeZT54Hj.mjs";
2
+ const g = `
3
3
  :host {
4
4
  --ui-toggle-radius: 10px;
5
5
  --ui-toggle-border: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 74%, transparent);
6
6
  --ui-toggle-bg: color-mix(in srgb, var(--ui-color-surface, #ffffff) 96%, transparent);
7
7
  --ui-toggle-color: var(--ui-color-text, #0f172a);
8
8
  --ui-toggle-active-bg: var(--ui-color-primary, #2563eb);
9
- --ui-toggle-active-color: var(--ui-color-primary-foreground, #ffffff);
9
+ --ui-toggle-active-color: var(--ui-color-primary-foreground, var(--ui-color-foreground-on-primary, #ffffff));
10
10
  --ui-toggle-active-border: color-mix(in srgb, var(--ui-toggle-active-bg) 72%, #0f172a 28%);
11
- --ui-toggle-muted: var(--ui-color-muted, #64748b);
11
+ --ui-toggle-muted: var(--ui-color-muted, #526175);
12
12
  --ui-toggle-focus: var(--ui-color-focus-ring, #2563eb);
13
13
  --ui-toggle-shadow:
14
14
  none;
@@ -67,7 +67,7 @@ const u = `
67
67
 
68
68
  :host([pressed]) .control,
69
69
  .control[aria-pressed="true"] {
70
- background: color-mix(in srgb, var(--ui-toggle-active-bg) 88%, #ffffff 12%);
70
+ background: var(--ui-toggle-active-bg);
71
71
  border-color: var(--ui-toggle-active-border);
72
72
  color: var(--ui-toggle-active-color);
73
73
  }
@@ -161,17 +161,22 @@ const u = `
161
161
  }
162
162
 
163
163
  :host([tone="success"]) {
164
- --ui-toggle-active-bg: var(--ui-color-success, #16a34a);
164
+ --ui-toggle-active-bg: var(--ui-color-success, #15803d);
165
165
  }
166
166
 
167
167
  :host([tone="warning"]) {
168
- --ui-toggle-active-bg: var(--ui-color-warning, #d97706);
168
+ --ui-toggle-active-bg: var(--ui-color-warning, #b45309);
169
169
  }
170
170
 
171
171
  :host([tone="danger"]) {
172
172
  --ui-toggle-active-bg: var(--ui-color-danger, #dc2626);
173
173
  }
174
174
 
175
+ /* The contrast variant draws dark text on its pressed fill, so the tones need light fills there. */
176
+ :host([variant="contrast"][tone="success"]) { --ui-toggle-active-bg: #86efac; }
177
+ :host([variant="contrast"][tone="warning"]) { --ui-toggle-active-bg: #fcd34d; }
178
+ :host([variant="contrast"][tone="danger"]) { --ui-toggle-active-bg: #fca5a5; }
179
+
175
180
  :host([disabled]) .control,
176
181
  :host([loading]) .control {
177
182
  opacity: 0.56;
@@ -219,7 +224,7 @@ const u = `
219
224
  --ui-toggle-shadow: none;
220
225
  }
221
226
  }
222
- `, l = /* @__PURE__ */ new Set(["icon-on", "icon-off", "aria-label"]);
227
+ `, a = /* @__PURE__ */ new Set(["icon-on", "icon-off", "aria-label"]);
223
228
  function c(o) {
224
229
  if (o == null) return !1;
225
230
  const e = String(o).toLowerCase();
@@ -228,7 +233,7 @@ function c(o) {
228
233
  function n(o) {
229
234
  return String(o).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
230
235
  }
231
- class d extends g {
236
+ class u extends l {
232
237
  constructor() {
233
238
  super(), this._control = null, this._onClick = this._onClick.bind(this), this._onKeyDown = this._onKeyDown.bind(this);
234
239
  }
@@ -260,7 +265,7 @@ class d extends g {
260
265
  }
261
266
  attributeChangedCallback(e, t, i) {
262
267
  if (t !== i) {
263
- if (l.has(e)) {
268
+ if (a.has(e)) {
264
269
  super.attributeChangedCallback(e, t, i);
265
270
  return;
266
271
  }
@@ -296,16 +301,16 @@ class d extends g {
296
301
  this.dispatchEvent(new CustomEvent("input", { detail: i, bubbles: !0, composed: !0 })), this.dispatchEvent(new CustomEvent("change", { detail: i, bubbles: !0, composed: !0 }));
297
302
  }
298
303
  _syncAria() {
299
- const e = this.pressed, t = this.disabled, i = this.hasAttribute("loading"), s = this.hasAttribute("data-group-item");
300
- s ? this.hasAttribute("aria-pressed") && this.removeAttribute("aria-pressed") : (this.setAttribute("role", "button"), this.setAttribute("aria-pressed", e ? "true" : "false")), this.setAttribute("aria-disabled", t ? "true" : "false"), this.setAttribute("aria-busy", i ? "true" : "false");
304
+ const e = this.pressed, t = this.disabled, i = this.hasAttribute("loading");
305
+ this.hasAttribute("data-group-item") ? this.hasAttribute("aria-pressed") && this.removeAttribute("aria-pressed") : (this.setAttribute("role", "button"), this.setAttribute("aria-pressed", e ? "true" : "false")), this.setAttribute("aria-disabled", t ? "true" : "false"), this.setAttribute("aria-busy", i ? "true" : "false");
301
306
  const r = this.getAttribute("tabindex");
302
307
  if (t)
303
308
  this.hasAttribute("data-ui-prev-tabindex") || this.setAttribute("data-ui-prev-tabindex", r ?? ""), r !== "-1" && this.setAttribute("tabindex", "-1");
304
309
  else {
305
- const a = this.getAttribute("data-ui-prev-tabindex");
306
- a != null ? (a ? this.setAttribute("tabindex", a) : this.removeAttribute("tabindex"), this.removeAttribute("data-ui-prev-tabindex")) : r == null && this.setAttribute("tabindex", "0");
310
+ const s = this.getAttribute("data-ui-prev-tabindex");
311
+ s != null ? (s ? this.setAttribute("tabindex", s) : this.removeAttribute("tabindex"), this.removeAttribute("data-ui-prev-tabindex")) : r == null && this.setAttribute("tabindex", "0");
307
312
  }
308
- this._control && (this._control.disabled = t, s ? this._control.removeAttribute("aria-pressed") : this._control.setAttribute("aria-pressed", e ? "true" : "false"), this._control.setAttribute("aria-disabled", t ? "true" : "false"), this._control.setAttribute("aria-busy", i ? "true" : "false"));
313
+ this._control && this._control.toggleAttribute("data-disabled", t);
309
314
  }
310
315
  _onClick(e) {
311
316
  const t = e.target;
@@ -315,30 +320,26 @@ class d extends g {
315
320
  this.disabled || (e.key === " " || e.key === "Enter") && (e.preventDefault(), this.toggle());
316
321
  }
317
322
  render() {
318
- const e = this.pressed, t = this.disabled, i = this.getAttribute("icon-on") || "●", s = this.getAttribute("icon-off") || "○", r = this.getAttribute("aria-label") || "Toggle";
319
- this.setContent(`
320
- <style>${u}</style>
321
- <button
322
- type="button"
323
+ this.pressed;
324
+ const e = this.disabled, t = this.getAttribute("icon-on") || "●", i = this.getAttribute("icon-off") || "○";
325
+ this.getAttribute("aria-label"), this.setContent(`
326
+ <style>${g}</style>
327
+ <span
323
328
  class="control"
324
329
  part="control"
325
- aria-label="${n(r)}"
326
- aria-pressed="${e ? "true" : "false"}"
327
- aria-disabled="${t ? "true" : "false"}"
328
- tabindex="-1"
329
- ${t ? "disabled" : ""}
330
+ ${e ? "data-disabled" : ""}
330
331
  >
331
- <span class="icon icon-off" part="icon-off" aria-hidden="true">${n(s)}</span>
332
- <span class="icon icon-on" part="icon-on" aria-hidden="true">${n(i)}</span>
332
+ <span class="icon icon-off" part="icon-off" aria-hidden="true">${n(i)}</span>
333
+ <span class="icon icon-on" part="icon-on" aria-hidden="true">${n(t)}</span>
333
334
  <span class="label" part="label"><slot></slot></span>
334
- </button>
335
+ </span>
335
336
  `), this._control = this.root.querySelector(".control"), this._syncAria();
336
337
  }
337
338
  shouldRenderOnAttributeChange(e, t, i) {
338
- return l.has(e);
339
+ return a.has(e);
339
340
  }
340
341
  }
341
- typeof customElements < "u" && !customElements.get("ui-toggle") && customElements.define("ui-toggle", d);
342
+ typeof customElements < "u" && !customElements.get("ui-toggle") && customElements.define("ui-toggle", u);
342
343
  export {
343
- d as UIToggle
344
+ u as UIToggle
344
345
  };
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("./ElementBase-EV6mVBUV.js"),i=require("./roving-focus-group-BdJ_4Njm.js"),b=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("./ElementBase-DxbvhLJs.js"),i=require("./roving-focus-group-BdJ_4Njm.js"),b=`
2
2
  :host {
3
3
  --ui-toolbar-gap: 8px;
4
4
  --ui-toolbar-padding: 8px;
@@ -1,4 +1,4 @@
1
- import { E as c } from "./ElementBase-YlTLMsGk.mjs";
1
+ import { E as c } from "./ElementBase-BeZT54Hj.mjs";
2
2
  import { m as d, r as u, s, f as l, g as b } from "./roving-focus-group-Dbm1Jko_.mjs";
3
3
  const f = `
4
4
  :host {
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const E=require("./ElementBase-EV6mVBUV.js"),w=require("./portal-DgpQ3Jo1.js"),d=140,y=120,m=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const E=require("./ElementBase-DxbvhLJs.js"),w=require("./portal-DgpQ3Jo1.js"),d=140,y=120,m=`
2
2
  .tooltip {
3
3
  color-scheme: light dark;
4
4
  --ui-tooltip-bg: color-mix(in srgb, var(--ui-color-text, #0f172a) 92%, #0b1220 8%);
@@ -77,13 +77,13 @@
77
77
  }
78
78
 
79
79
  .tooltip[data-tone="success"] {
80
- --ui-tooltip-bg: color-mix(in srgb, var(--ui-color-success, #16a34a) 84%, #052e16 16%);
81
- --ui-tooltip-border: color-mix(in srgb, var(--ui-color-success, #16a34a) 42%, transparent);
80
+ --ui-tooltip-bg: color-mix(in srgb, var(--ui-color-success, #15803d) 84%, #052e16 16%);
81
+ --ui-tooltip-border: color-mix(in srgb, var(--ui-color-success, #15803d) 42%, transparent);
82
82
  }
83
83
 
84
84
  .tooltip[data-tone="warning"] {
85
- --ui-tooltip-bg: color-mix(in srgb, var(--ui-color-warning, #d97706) 84%, #451a03 16%);
86
- --ui-tooltip-border: color-mix(in srgb, var(--ui-color-warning, #d97706) 42%, transparent);
85
+ --ui-tooltip-bg: color-mix(in srgb, var(--ui-color-warning, #b45309) 84%, #451a03 16%);
86
+ --ui-tooltip-border: color-mix(in srgb, var(--ui-color-warning, #b45309) 42%, transparent);
87
87
  }
88
88
 
89
89
  .tooltip[data-tone="danger"] {
@@ -1,4 +1,4 @@
1
- import { E as x } from "./ElementBase-YlTLMsGk.mjs";
1
+ import { E as x } from "./ElementBase-BeZT54Hj.mjs";
2
2
  import { s as E } from "./portal-bR42gHvG.mjs";
3
3
  const d = 140, w = 120, m = `
4
4
  .tooltip {
@@ -79,13 +79,13 @@ const d = 140, w = 120, m = `
79
79
  }
80
80
 
81
81
  .tooltip[data-tone="success"] {
82
- --ui-tooltip-bg: color-mix(in srgb, var(--ui-color-success, #16a34a) 84%, #052e16 16%);
83
- --ui-tooltip-border: color-mix(in srgb, var(--ui-color-success, #16a34a) 42%, transparent);
82
+ --ui-tooltip-bg: color-mix(in srgb, var(--ui-color-success, #15803d) 84%, #052e16 16%);
83
+ --ui-tooltip-border: color-mix(in srgb, var(--ui-color-success, #15803d) 42%, transparent);
84
84
  }
85
85
 
86
86
  .tooltip[data-tone="warning"] {
87
- --ui-tooltip-bg: color-mix(in srgb, var(--ui-color-warning, #d97706) 84%, #451a03 16%);
88
- --ui-tooltip-border: color-mix(in srgb, var(--ui-color-warning, #d97706) 42%, transparent);
87
+ --ui-tooltip-bg: color-mix(in srgb, var(--ui-color-warning, #b45309) 84%, #451a03 16%);
88
+ --ui-tooltip-border: color-mix(in srgb, var(--ui-color-warning, #b45309) 42%, transparent);
89
89
  }
90
90
 
91
91
  .tooltip[data-tone="danger"] {
@@ -1,8 +1,8 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const q=require("./ElementBase-EV6mVBUV.js"),U=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const q=require("./ElementBase-DxbvhLJs.js"),U=`
2
2
  :host {
3
3
  --ui-transfer-accent: var(--ui-color-primary, #2563eb);
4
4
  --ui-transfer-text: var(--ui-color-text, #0f172a);
5
- --ui-transfer-muted: var(--ui-color-muted, #64748b);
5
+ --ui-transfer-muted: var(--ui-color-muted, #526175);
6
6
  --ui-transfer-shell-bg: transparent;
7
7
  --ui-transfer-shell-border-color: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 84%, transparent);
8
8
  --ui-transfer-shell-border: 1px solid var(--ui-transfer-shell-border-color);
@@ -193,11 +193,11 @@
193
193
  }
194
194
 
195
195
  :host([tone="success"]) {
196
- --ui-transfer-accent: var(--ui-color-success, #16a34a);
196
+ --ui-transfer-accent: var(--ui-color-success, #15803d);
197
197
  }
198
198
 
199
199
  :host([tone="warning"]) {
200
- --ui-transfer-accent: var(--ui-color-warning, #d97706);
200
+ --ui-transfer-accent: var(--ui-color-warning, #b45309);
201
201
  }
202
202
 
203
203
  :host([tone="danger"]) {
@@ -1,9 +1,9 @@
1
- import { E as D } from "./ElementBase-YlTLMsGk.mjs";
1
+ import { E as D } from "./ElementBase-BeZT54Hj.mjs";
2
2
  const q = `
3
3
  :host {
4
4
  --ui-transfer-accent: var(--ui-color-primary, #2563eb);
5
5
  --ui-transfer-text: var(--ui-color-text, #0f172a);
6
- --ui-transfer-muted: var(--ui-color-muted, #64748b);
6
+ --ui-transfer-muted: var(--ui-color-muted, #526175);
7
7
  --ui-transfer-shell-bg: transparent;
8
8
  --ui-transfer-shell-border-color: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 84%, transparent);
9
9
  --ui-transfer-shell-border: 1px solid var(--ui-transfer-shell-border-color);
@@ -194,11 +194,11 @@ const q = `
194
194
  }
195
195
 
196
196
  :host([tone="success"]) {
197
- --ui-transfer-accent: var(--ui-color-success, #16a34a);
197
+ --ui-transfer-accent: var(--ui-color-success, #15803d);
198
198
  }
199
199
 
200
200
  :host([tone="warning"]) {
201
- --ui-transfer-accent: var(--ui-color-warning, #d97706);
201
+ --ui-transfer-accent: var(--ui-color-warning, #b45309);
202
202
  }
203
203
 
204
204
  :host([tone="danger"]) {
@@ -1,54 +1,54 @@
1
- import { E as g } from "./ElementBase-YlTLMsGk.mjs";
1
+ import { E as g } from "./ElementBase-BeZT54Hj.mjs";
2
2
  import { n as b } from "./collection-C7URGjEI.mjs";
3
3
  import { UITreeItem as f } from "./tree-item.esm.js";
4
- function C(l, t) {
4
+ function C(a, t) {
5
5
  const e = [], i = t.getExpanded || (() => !1), r = t.getDisabled || (() => !1), s = (d, n, o) => {
6
- d.forEach((a) => {
7
- const u = t.getChildren(a) || [], c = {
8
- item: a,
9
- id: t.getId(a),
10
- label: t.getLabel(a),
6
+ d.forEach((l) => {
7
+ const u = t.getChildren(l) || [], c = {
8
+ item: l,
9
+ id: t.getId(l),
10
+ label: t.getLabel(l),
11
11
  level: n,
12
12
  parentId: o,
13
- disabled: r(a),
14
- expanded: i(a),
13
+ disabled: r(l),
14
+ expanded: i(l),
15
15
  hasChildren: u.length > 0
16
16
  };
17
17
  e.push(c), s(u, n + 1, c.id);
18
18
  });
19
19
  };
20
- return s(l, 1, null), e;
20
+ return s(a, 1, null), e;
21
21
  }
22
- function _(l, t) {
22
+ function _(a, t) {
23
23
  const e = [], i = t.getExpanded || (() => !1), r = t.getDisabled || (() => !1), s = (d, n, o) => {
24
- d.forEach((a) => {
25
- const u = t.getChildren(a) || [], c = i(a), h = {
26
- item: a,
27
- id: t.getId(a),
28
- label: t.getLabel(a),
24
+ d.forEach((l) => {
25
+ const u = t.getChildren(l) || [], c = i(l), h = {
26
+ item: l,
27
+ id: t.getId(l),
28
+ label: t.getLabel(l),
29
29
  level: n,
30
30
  parentId: o,
31
- disabled: r(a),
31
+ disabled: r(l),
32
32
  expanded: c,
33
33
  hasChildren: u.length > 0
34
34
  };
35
35
  e.push(h), h.hasChildren && c && s(u, n + 1, h.id);
36
36
  });
37
37
  };
38
- return s(l, 1, null), e;
38
+ return s(a, 1, null), e;
39
39
  }
40
- function p(l, t) {
41
- return l.findIndex((e) => e.id === t);
40
+ function p(a, t) {
41
+ return a.findIndex((e) => e.id === t);
42
42
  }
43
- function m(l, t) {
44
- const e = l[t];
45
- return e?.parentId ? l.findIndex((i) => i.id === e.parentId) : -1;
43
+ function y(a, t) {
44
+ const e = a[t];
45
+ return e?.parentId ? a.findIndex((i) => i.id === e.parentId) : -1;
46
46
  }
47
- function y(l, t, e = -1) {
47
+ function m(a, t, e = -1) {
48
48
  const i = b(t);
49
49
  if (!i) return -1;
50
- for (let r = 1; r <= l.length; r += 1) {
51
- const s = (e + r + l.length) % l.length, d = l[s];
50
+ for (let r = 1; r <= a.length; r += 1) {
51
+ const s = (e + r + a.length) % a.length, d = a[s];
52
52
  if (!d.disabled && b(d.label).startsWith(i))
53
53
  return s;
54
54
  }
@@ -61,7 +61,7 @@ const v = `
61
61
  --ui-tree-bg: color-mix(in srgb, var(--ui-color-surface, #ffffff) 98%, transparent);
62
62
  --ui-tree-border: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 72%, transparent);
63
63
  --ui-tree-text: var(--ui-color-text, #0f172a);
64
- --ui-tree-muted: var(--ui-color-muted, #64748b);
64
+ --ui-tree-muted: var(--ui-color-muted, #526175);
65
65
  display: block;
66
66
  min-inline-size: 0;
67
67
  color-scheme: light dark;
@@ -93,7 +93,7 @@ class x extends g {
93
93
  super(), this._observer = null, this._focusedValue = null, this._typeaheadBuffer = "", this._typeaheadTimer = null, this._onClick = this._onClick.bind(this), this._onKeyDown = this._onKeyDown.bind(this), this._onMutation = this._onMutation.bind(this);
94
94
  }
95
95
  static get observedAttributes() {
96
- return ["value", "indent-size"];
96
+ return ["value", "indent-size", "aria-label", "aria-labelledby"];
97
97
  }
98
98
  connectedCallback() {
99
99
  super.connectedCallback(), this.addEventListener("click", this._onClick), this.addEventListener("keydown", this._onKeyDown), this._observer = new MutationObserver(this._onMutation), this._observer.observe(this, { childList: !0, subtree: !0, attributes: !0, attributeFilter: ["expanded", "selected", "disabled", "label", "value"] }), queueMicrotask(() => this._syncTree());
@@ -247,7 +247,7 @@ class x extends g {
247
247
  this.collapse(r.id);
248
248
  return;
249
249
  }
250
- const s = m(e, i);
250
+ const s = y(e, i);
251
251
  s >= 0 && this.focusValue(e[s].id);
252
252
  return;
253
253
  }
@@ -259,18 +259,19 @@ class x extends g {
259
259
  this._typeaheadBuffer = `${this._typeaheadBuffer}${t.key.toLowerCase()}`.slice(0, 24), this._typeaheadTimer != null && window.clearTimeout(this._typeaheadTimer), this._typeaheadTimer = window.setTimeout(() => {
260
260
  this._typeaheadBuffer = "", this._typeaheadTimer = null;
261
261
  }, 420);
262
- const s = y(e, this._typeaheadBuffer, i);
262
+ const s = m(e, this._typeaheadBuffer, i);
263
263
  s >= 0 && (t.preventDefault(), this.focusValue(e[s].id));
264
264
  }
265
265
  }
266
266
  }
267
267
  shouldRenderOnAttributeChange(t) {
268
- return t === "indent-size";
268
+ return t === "indent-size" || t === "aria-label" || t === "aria-labelledby";
269
269
  }
270
270
  render() {
271
+ const t = (this.getAttribute("aria-label") || "").trim(), e = (this.getAttribute("aria-labelledby") || "").trim(), i = (s) => s.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;"), r = (t ? ` aria-label="${i(t)}"` : "") + (e ? ` aria-labelledby="${i(e)}"` : "");
271
272
  this.setContent(`
272
273
  <style>${v}</style>
273
- <div class="tree" part="tree" role="tree">
274
+ <div class="tree" part="tree" role="tree"${r}>
274
275
  <slot></slot>
275
276
  </div>
276
277
  `), queueMicrotask(() => this._syncTree());
@@ -280,8 +281,8 @@ typeof customElements < "u" && !customElements.get("ui-tree") && customElements.
280
281
  export {
281
282
  x as U,
282
283
  p as a,
283
- y as b,
284
+ m as b,
284
285
  C as c,
285
286
  _ as d,
286
- m as f
287
+ y as f
287
288
  };
@@ -0,0 +1,39 @@
1
+ "use strict";const v=require("./ElementBase-DxbvhLJs.js"),p=require("./collection-qv8A8rq4.js"),f=require("./tree-item.cjs.js");function x(l,t){const e=[],i=t.getExpanded||(()=>!1),r=t.getDisabled||(()=>!1),s=(d,n,o)=>{d.forEach(a=>{const u=t.getChildren(a)||[],c={item:a,id:t.getId(a),label:t.getLabel(a),level:n,parentId:o,disabled:r(a),expanded:i(a),hasChildren:u.length>0};e.push(c),s(u,n+1,c.id)})};return s(l,1,null),e}function g(l,t){const e=[],i=t.getExpanded||(()=>!1),r=t.getDisabled||(()=>!1),s=(d,n,o)=>{d.forEach(a=>{const u=t.getChildren(a)||[],c=i(a),h={item:a,id:t.getId(a),label:t.getLabel(a),level:n,parentId:o,disabled:r(a),expanded:c,hasChildren:u.length>0};e.push(h),h.hasChildren&&c&&s(u,n+1,h.id)})};return s(l,1,null),e}function b(l,t){return l.findIndex(e=>e.id===t)}function _(l,t){const e=l[t];return e?.parentId?l.findIndex(i=>i.id===e.parentId):-1}function y(l,t,e=-1){const i=p.normalizeCollectionText(t);if(!i)return-1;for(let r=1;r<=l.length;r+=1){const s=(e+r+l.length)%l.length,d=l[s];if(!d.disabled&&p.normalizeCollectionText(d.label).startsWith(i))return s}return-1}const T=`
2
+ :host {
3
+ --ui-tree-indent: 16px;
4
+ --ui-tree-radius: 14px;
5
+ --ui-tree-bg: color-mix(in srgb, var(--ui-color-surface, #ffffff) 98%, transparent);
6
+ --ui-tree-border: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 72%, transparent);
7
+ --ui-tree-text: var(--ui-color-text, #0f172a);
8
+ --ui-tree-muted: var(--ui-color-muted, #526175);
9
+ display: block;
10
+ min-inline-size: 0;
11
+ color-scheme: light dark;
12
+ font-family: "Inter", "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
13
+ }
14
+
15
+ .tree {
16
+ min-inline-size: 0;
17
+ display: grid;
18
+ gap: 4px;
19
+ padding: 10px;
20
+ border: 1px solid var(--ui-tree-border);
21
+ border-radius: var(--ui-tree-radius);
22
+ background: var(--ui-tree-bg);
23
+ color: var(--ui-tree-text);
24
+ }
25
+
26
+ @media (forced-colors: active) {
27
+ .tree {
28
+ forced-color-adjust: none;
29
+ background: Canvas;
30
+ color: CanvasText;
31
+ border-color: CanvasText;
32
+ }
33
+ }
34
+ `;class m extends v.ElementBase{constructor(){super(),this._observer=null,this._focusedValue=null,this._typeaheadBuffer="",this._typeaheadTimer=null,this._onClick=this._onClick.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onMutation=this._onMutation.bind(this)}static get observedAttributes(){return["value","indent-size","aria-label","aria-labelledby"]}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._onClick),this.addEventListener("keydown",this._onKeyDown),this._observer=new MutationObserver(this._onMutation),this._observer.observe(this,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["expanded","selected","disabled","label","value"]}),queueMicrotask(()=>this._syncTree())}disconnectedCallback(){this.removeEventListener("click",this._onClick),this.removeEventListener("keydown",this._onKeyDown),this._observer?.disconnect(),this._observer=null,this._typeaheadTimer!=null&&window.clearTimeout(this._typeaheadTimer),super.disconnectedCallback()}get value(){return this.getAttribute("value")||""}set value(t){t?this.setAttribute("value",t):this.removeAttribute("value")}expand(t){const e=this._findByValue(t);!e||e.childItems.length===0||(e.setAttribute("expanded",""),this._emitToggle(e,!0),this._syncTree())}collapse(t){const e=this._findByValue(t);!e||e.childItems.length===0||(e.removeAttribute("expanded"),this._emitToggle(e,!1),this._syncTree())}toggle(t){const e=this._findByValue(t);if(!e||e.childItems.length===0)return;const i=!e.hasAttribute("expanded");e.toggleAttribute("expanded",i),this._emitToggle(e,i),this._syncTree()}select(t){const e=this._findByValue(t);!e||e.hasAttribute("disabled")||(this.value=t,this._focusedValue=t,this._emitSelect(e),this._syncTree())}focusValue(t){const e=this._findByValue(t);e&&(this._focusedValue=t,this._syncTree(),e.focusRow({preventScroll:!0}))}_onMutation(){this._syncTree()}_allItems(){return Array.from(this.querySelectorAll("ui-tree-item")).filter(t=>t instanceof f.UITreeItem&&t.closest("ui-tree")===this)}_rootItems(){return Array.from(this.children).filter(t=>t instanceof f.UITreeItem)}_visibleRecords(){const t=this._rootItems();return g(t,{getId:e=>e.value,getLabel:e=>e.label,getChildren:e=>e.childItems,getExpanded:e=>e.hasAttribute("expanded"),getDisabled:e=>e.hasAttribute("disabled")}).map(e=>({...e,item:e.item}))}_findByValue(t){return this._allItems().find(e=>e.value===t)||null}_syncTree(){const t=this._allItems(),e=this._visibleRecords(),i=this.value||e.find(n=>!n.disabled)?.id||"",r=this._focusedValue&&e.some(n=>n.id===this._focusedValue)?this._focusedValue:i;this._focusedValue=r||null;const s=new Set(e.map(n=>n.id)),d=new Map(e.map(n=>[n.id,n]));t.forEach(n=>{const o=d.get(n.value);n.style.setProperty("--ui-tree-indent",this.getAttribute("indent-size")||"16px"),n.applyTreeState({level:o?.level||1,hasChildren:n.childItems.length>0,expanded:n.hasAttribute("expanded"),selected:n.value===i,active:n.value===r,hidden:!s.has(n.value)})})}_moveFocus(t){const e=this._visibleRecords();if(!e.length)return;const i=b(e,this._focusedValue||this.value||""),r=i>=0?i:-1;for(let s=1;s<=e.length;s+=1){const d=(r+t*s+e.length)%e.length,n=e[d];if(!n.disabled){this.focusValue(n.id);return}}}_emitSelect(t){this.dispatchEvent(new CustomEvent("select",{detail:{value:t.value,label:t.label},bubbles:!0,composed:!0}))}_emitToggle(t,e){this.dispatchEvent(new CustomEvent("expanded-change",{detail:{value:t.value,expanded:e},bubbles:!0,composed:!0}))}_onClick(t){const e=t.composedPath(),i=e.find(s=>s instanceof f.UITreeItem);if(!i||i.hasAttribute("disabled"))return;const r=e.find(s=>s instanceof HTMLElement&&s.getAttribute("data-action")==="toggle");if(this._focusedValue=i.value,r&&i.childItems.length>0){this.toggle(i.value);return}this.select(i.value)}_onKeyDown(t){const e=this._visibleRecords();if(!e.length)return;const i=b(e,this._focusedValue||this.value||""),r=i>=0?e[i]:e[0];if(r){if(t.key==="ArrowDown"){t.preventDefault(),this._moveFocus(1);return}if(t.key==="ArrowUp"){t.preventDefault(),this._moveFocus(-1);return}if(t.key==="Home"){t.preventDefault(),this.focusValue(e[0].id);return}if(t.key==="End"){t.preventDefault(),this.focusValue(e[e.length-1].id);return}if(t.key==="ArrowRight"){if(t.preventDefault(),r.hasChildren&&!r.expanded){this.expand(r.id);return}if(r.hasChildren&&r.expanded){const s=e[i+1];s?.parentId===r.id&&this.focusValue(s.id)}return}if(t.key==="ArrowLeft"){if(t.preventDefault(),r.hasChildren&&r.expanded){this.collapse(r.id);return}const s=_(e,i);s>=0&&this.focusValue(e[s].id);return}if(t.key==="Enter"||t.key===" "){t.preventDefault(),this.select(r.id);return}if(t.key.length===1&&/\S/.test(t.key)){this._typeaheadBuffer=`${this._typeaheadBuffer}${t.key.toLowerCase()}`.slice(0,24),this._typeaheadTimer!=null&&window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=window.setTimeout(()=>{this._typeaheadBuffer="",this._typeaheadTimer=null},420);const s=y(e,this._typeaheadBuffer,i);s>=0&&(t.preventDefault(),this.focusValue(e[s].id))}}}shouldRenderOnAttributeChange(t){return t==="indent-size"||t==="aria-label"||t==="aria-labelledby"}render(){const t=(this.getAttribute("aria-label")||"").trim(),e=(this.getAttribute("aria-labelledby")||"").trim(),i=s=>s.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;"),r=(t?` aria-label="${i(t)}"`:"")+(e?` aria-labelledby="${i(e)}"`:"");this.setContent(`
35
+ <style>${T}</style>
36
+ <div class="tree" part="tree" role="tree"${r}>
37
+ <slot></slot>
38
+ </div>
39
+ `),queueMicrotask(()=>this._syncTree())}}typeof customElements<"u"&&!customElements.get("ui-tree")&&customElements.define("ui-tree",m);exports.UITree=m;exports.findParentTreeRecordIndex=_;exports.findTreeRecordIndexById=b;exports.findTreeTypeaheadMatch=y;exports.flattenTree=x;exports.flattenVisibleTree=g;
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./ElementBase-EV6mVBUV.js"),i=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./ElementBase-DxbvhLJs.js"),i=`
2
2
  :host {
3
3
  --ui-tree-indent: 16px;
4
4
  --ui-tree-level: 1;
@@ -1,4 +1,4 @@
1
- import { E as r } from "./ElementBase-YlTLMsGk.mjs";
1
+ import { E as r } from "./ElementBase-BeZT54Hj.mjs";
2
2
  const i = `
3
3
  :host {
4
4
  --ui-tree-indent: 16px;
package/dist/tree.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./tree-Dx_kv_ih.js");exports.UITree=e.UITree;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./tree-SivHxcAy.js");exports.UITree=e.UITree;
package/dist/tree.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { U as o } from "./tree-B3kE8ESs.mjs";
1
+ import { U as o } from "./tree-B_oQput6.mjs";
2
2
  export {
3
3
  o as UITree
4
4
  };
@@ -0,0 +1,9 @@
1
+ const n = 'button, a[href], input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"]), ui-button';
2
+ function o(t) {
3
+ if (t.matches(n)) return t;
4
+ const e = t.querySelector(n);
5
+ return e || (t.hasAttribute("role") || t.setAttribute("role", "button"), t.hasAttribute("tabindex") || t.setAttribute("tabindex", "0"), t);
6
+ }
7
+ export {
8
+ o as r
9
+ };
@@ -0,0 +1 @@
1
+ "use strict";const n='button, a[href], input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"]), ui-button';function o(t){if(t.matches(n))return t;const e=t.querySelector(n);return e||(t.hasAttribute("role")||t.setAttribute("role","button"),t.hasAttribute("tabindex")||t.setAttribute("tabindex","0"),t)}exports.resolveTriggerControl=o;