@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,15 +1,16 @@
1
- import { E as T } from "./ElementBase-YlTLMsGk.mjs";
2
- import { n as w } from "./collection-C7URGjEI.mjs";
3
- import "./listbox-DJamVeFj.mjs";
4
- let R = 0;
5
- const K = `
1
+ import { E as T } from "./ElementBase-BeZT54Hj.mjs";
2
+ import { a as R } from "./control-name-Bpj7F34X.mjs";
3
+ import { n as z } from "./collection-C7URGjEI.mjs";
4
+ import "./listbox-hMVOhKHC.mjs";
5
+ let K = 0;
6
+ const W = `
6
7
  :host {
7
8
  --ui-multi-select-border-color: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 82%, transparent);
8
9
  --ui-multi-select-border: var(--base-multi-select-border, 1px solid var(--ui-multi-select-border-color));
9
10
  --ui-multi-select-radius: var(--base-multi-select-radius, var(--ui-radius, 4px));
10
11
  --ui-multi-select-bg: var(--base-multi-select-bg, var(--color-panel-solid, var(--ui-color-surface, #ffffff)));
11
12
  --ui-multi-select-text: var(--ui-color-text, var(--ui-text, #0f172a));
12
- --ui-multi-select-muted: var(--ui-color-muted, var(--ui-muted, #64748b));
13
+ --ui-multi-select-muted: var(--ui-color-muted, var(--ui-muted, #526175));
13
14
  --ui-multi-select-focus: var(--ui-color-focus-ring, #2563eb);
14
15
  --ui-multi-select-danger: var(--ui-color-danger, #dc2626);
15
16
  --ui-multi-select-accent: var(--ui-color-primary, #2563eb);
@@ -495,9 +496,9 @@ const K = `
495
496
  }
496
497
 
497
498
  :host([tone="neutral"]) {
498
- --ui-multi-select-accent: color-mix(in srgb, var(--ui-color-muted, #64748b) 62%, var(--ui-color-text, #0f172a));
499
- --ui-multi-select-focus: color-mix(in srgb, var(--ui-color-muted, #64748b) 62%, var(--ui-color-text, #0f172a));
500
- --ui-multi-select-chip-bg: color-mix(in srgb, var(--ui-color-muted, #64748b) 12%, transparent);
499
+ --ui-multi-select-accent: color-mix(in srgb, var(--ui-color-muted, #526175) 62%, var(--ui-color-text, #0f172a));
500
+ --ui-multi-select-focus: color-mix(in srgb, var(--ui-color-muted, #526175) 62%, var(--ui-color-text, #0f172a));
501
+ --ui-multi-select-chip-bg: color-mix(in srgb, var(--ui-color-muted, #526175) 12%, transparent);
501
502
  --ui-multi-select-chip-text: var(--ui-multi-select-text);
502
503
  }
503
504
 
@@ -507,17 +508,17 @@ const K = `
507
508
  }
508
509
 
509
510
  :host([tone="success"]) {
510
- --ui-multi-select-accent: var(--ui-color-success, #16a34a);
511
- --ui-multi-select-focus: var(--ui-color-success, #16a34a);
512
- --ui-multi-select-chip-bg: color-mix(in srgb, var(--ui-color-success, #16a34a) 12%, transparent);
513
- --ui-multi-select-chip-text: color-mix(in srgb, var(--ui-color-success, #16a34a) 82%, #0f172a 18%);
511
+ --ui-multi-select-accent: var(--ui-color-success, #15803d);
512
+ --ui-multi-select-focus: var(--ui-color-success, #15803d);
513
+ --ui-multi-select-chip-bg: color-mix(in srgb, var(--ui-color-success, #15803d) 12%, transparent);
514
+ --ui-multi-select-chip-text: color-mix(in srgb, var(--ui-color-success, #15803d) 82%, #0f172a 18%);
514
515
  }
515
516
 
516
517
  :host([tone="warning"]) {
517
- --ui-multi-select-accent: var(--ui-color-warning, #d97706);
518
- --ui-multi-select-focus: var(--ui-color-warning, #d97706);
519
- --ui-multi-select-chip-bg: color-mix(in srgb, var(--ui-color-warning, #d97706) 12%, transparent);
520
- --ui-multi-select-chip-text: color-mix(in srgb, var(--ui-color-warning, #d97706) 82%, #0f172a 18%);
518
+ --ui-multi-select-accent: var(--ui-color-warning, #b45309);
519
+ --ui-multi-select-focus: var(--ui-color-warning, #b45309);
520
+ --ui-multi-select-chip-bg: color-mix(in srgb, var(--ui-color-warning, #b45309) 12%, transparent);
521
+ --ui-multi-select-chip-text: color-mix(in srgb, var(--ui-color-warning, #b45309) 82%, #0f172a 18%);
521
522
  }
522
523
 
523
524
  :host([tone="danger"]) {
@@ -573,12 +574,12 @@ function v(r) {
573
574
  function L(r) {
574
575
  return !r || r === "default" ? null : r === "none" || r === "square" ? "0px" : r === "sm" ? "8px" : r === "md" || r === "soft" ? "12px" : r === "lg" ? "16px" : r === "full" ? "999px" : /^\d+(\.\d+)?$/.test(r) ? `${r}px` : /^\d+(\.\d+)?(px|rem|em|%)$/.test(r) ? r : null;
575
576
  }
576
- function W(r) {
577
+ function H(r) {
577
578
  return r === "sm" || r === "1" ? "sm" : r === "lg" || r === "3" ? "lg" : "md";
578
579
  }
579
- class H extends T {
580
+ class M extends T {
580
581
  constructor() {
581
- super(), this._options = [], this._selected = [], this._query = "", this._inputEl = null, this._shellEl = null, this._panelEl = null, this._formUnregister = null, this._outsidePointerDown = null, this._activeValue = null, this._uid = `ui-multi-select-${++R}`, this._isSyncingUi = !1, this._needsSyncUi = !1, this._onInput = this._onInput.bind(this), this._onKeyDown = this._onKeyDown.bind(this), this._onToggle = this._onToggle.bind(this), this._onFocusIn = this._onFocusIn.bind(this), this._onFocusOut = this._onFocusOut.bind(this);
582
+ super(), this._options = [], this._selected = [], this._query = "", this._inputEl = null, this._shellEl = null, this._panelEl = null, this._formUnregister = null, this._outsidePointerDown = null, this._activeValue = null, this._uid = `ui-multi-select-${++K}`, this._isSyncingUi = !1, this._needsSyncUi = !1, this._onInput = this._onInput.bind(this), this._onKeyDown = this._onKeyDown.bind(this), this._onToggle = this._onToggle.bind(this), this._onFocusIn = this._onFocusIn.bind(this), this._onFocusOut = this._onFocusOut.bind(this);
582
583
  }
583
584
  static get observedAttributes() {
584
585
  return [
@@ -587,6 +588,8 @@ class H extends T {
587
588
  "placeholder",
588
589
  "label",
589
590
  "aria-label",
591
+ "aria-description",
592
+ "aria-describedby",
590
593
  "description",
591
594
  "data-error",
592
595
  "name",
@@ -644,11 +647,11 @@ class H extends T {
644
647
  }
645
648
  render() {
646
649
  this.setContent(`
647
- <style>${K}</style>
650
+ <style>${W}</style>
648
651
  <div class="root">
649
652
  <div class="meta" hidden>
650
653
  <div class="label" hidden><span class="label-text" id="${this._uid}-label"></span><span class="required" hidden>*</span></div>
651
- <div class="description" hidden></div>
654
+ <div class="description" id="${this._uid}-description" hidden></div>
652
655
  </div>
653
656
  <div class="shell" part="shell" data-open="false" data-invalid="false">
654
657
  <div class="value-area" part="value-area">
@@ -674,7 +677,7 @@ class H extends T {
674
677
  e ? this.style.setProperty("--ui-multi-select-radius", e) : this.style.removeProperty("--ui-multi-select-radius");
675
678
  const t = L(this.getAttribute("option-radius"));
676
679
  t ? this.style.setProperty("--ui-multi-select-option-radius", t) : this.style.removeProperty("--ui-multi-select-option-radius");
677
- const s = W(this.getAttribute("size"));
680
+ const s = H(this.getAttribute("size"));
678
681
  this.setAttribute("data-size", s);
679
682
  }
680
683
  _selectionIndicator() {
@@ -694,8 +697,8 @@ class H extends T {
694
697
  !this._outsidePointerDown || typeof document > "u" || (document.removeEventListener("pointerdown", this._outsidePointerDown), this._outsidePointerDown = null);
695
698
  }
696
699
  _filteredOptions() {
697
- const e = w(this._query);
698
- return e ? this._options.filter((t) => w(t.label).includes(e) || w(t.value).includes(e)) : this._options;
700
+ const e = z(this._query);
701
+ return e ? this._options.filter((t) => z(t.label).includes(e) || z(t.value).includes(e)) : this._options;
699
702
  }
700
703
  _renderLimit() {
701
704
  const e = Number(this.getAttribute("render-limit"));
@@ -829,7 +832,7 @@ class H extends T {
829
832
  if (!(!this._shellEl || !this._inputEl || !this._panelEl)) {
830
833
  this._isSyncingUi = !0;
831
834
  try {
832
- const e = (this.getAttribute("label") || "").trim(), t = (this.getAttribute("description") || "").trim(), s = (this.getAttribute("data-error") || "").trim(), l = this.root.querySelector(".meta"), n = this.root.querySelector(".label"), a = this.root.querySelector(".label-text"), c = this.root.querySelector(".required"), p = this.root.querySelector(".description"), N = this.root.querySelector(".chips"), z = this.root.querySelector(".toggle"), S = this.root.querySelector(".clear"), U = this.root.querySelector(".error"), C = this._selectionIndicator(), q = this.hasAttribute("loading"), O = (this.getAttribute("loading-text") || "Loading options...").trim(), b = this.hasAttribute("disabled"), m = this.hasAttribute("readonly"), D = this.hasAttribute("clearable");
835
+ const e = (this.getAttribute("label") || "").trim(), t = (this.getAttribute("description") || "").trim(), s = (this.getAttribute("data-error") || "").trim(), l = this.root.querySelector(".meta"), n = this.root.querySelector(".label"), a = this.root.querySelector(".label-text"), c = this.root.querySelector(".required"), p = this.root.querySelector(".description"), N = this.root.querySelector(".chips"), S = this.root.querySelector(".toggle"), U = this.root.querySelector(".clear"), x = this.root.querySelector(".error"), C = this._selectionIndicator(), q = this.hasAttribute("loading"), O = (this.getAttribute("loading-text") || "Loading options...").trim(), m = this.hasAttribute("disabled"), b = this.hasAttribute("readonly"), D = this.hasAttribute("clearable");
833
836
  if (l.hidden = !e && !t, n.hidden = !e, a.textContent = e, e)
834
837
  this._inputEl.setAttribute("aria-labelledby", `${this._uid}-label`), this._inputEl.removeAttribute("aria-label");
835
838
  else {
@@ -837,7 +840,12 @@ class H extends T {
837
840
  const i = (this.getAttribute("aria-label") || "").trim();
838
841
  i ? this._inputEl.setAttribute("aria-label", i) : this._inputEl.removeAttribute("aria-label");
839
842
  }
840
- c.hidden = !this.hasAttribute("required"), p.hidden = !t, p.textContent = t, U.hidden = !s, U.textContent = s, this._shellEl.setAttribute("data-open", this.open ? "true" : "false"), this._shellEl.setAttribute("data-invalid", s ? "true" : "false"), this._shellEl.setAttribute("data-readonly", m ? "true" : "false"), z.setAttribute("data-open", this.open ? "true" : "false"), z.disabled = b || m, S.hidden = !D || this._selected.length === 0, S.disabled = b || m, this._inputEl.setAttribute("aria-expanded", this.open ? "true" : "false"), this._inputEl.setAttribute("aria-busy", q ? "true" : "false"), this._inputEl.placeholder = this._selected.length ? "" : this.getAttribute("placeholder") || "Select options", this._inputEl.disabled = b, this._inputEl.readOnly = m, this._inputEl.value !== this._query && (this._inputEl.value = this._query), this.open ? this._attachOutsideListener() : this._detachOutsideListener(), N.replaceChildren(...this._selectedOptionRecords().map((i) => {
843
+ c.hidden = !this.hasAttribute("required"), p.hidden = !t, p.textContent = t, x.hidden = !s, x.textContent = s, x.id = `${this._uid}-error`, R(
844
+ this._inputEl,
845
+ this,
846
+ this._uid,
847
+ [t ? `${this._uid}-description` : "", s ? `${this._uid}-error` : ""].filter(Boolean)
848
+ ), this._shellEl.setAttribute("data-open", this.open ? "true" : "false"), this._shellEl.setAttribute("data-invalid", s ? "true" : "false"), this._shellEl.setAttribute("data-readonly", b ? "true" : "false"), m ? this._shellEl.setAttribute("aria-disabled", "true") : this._shellEl.removeAttribute("aria-disabled"), S.setAttribute("data-open", this.open ? "true" : "false"), S.disabled = m || b, U.hidden = !D || this._selected.length === 0, U.disabled = m || b, this._inputEl.setAttribute("aria-expanded", this.open ? "true" : "false"), this._inputEl.setAttribute("aria-busy", q ? "true" : "false"), this._inputEl.placeholder = this._selected.length ? "" : this.getAttribute("placeholder") || "Select options", this._inputEl.disabled = m, this._inputEl.readOnly = b, this._inputEl.value !== this._query && (this._inputEl.value = this._query), this.open ? this._attachOutsideListener() : this._detachOutsideListener(), N.replaceChildren(...this._selectedOptionRecords().map((i) => {
841
849
  const h = document.createElement("span");
842
850
  h.className = "chip", h.textContent = i.label;
843
851
  const d = document.createElement("button");
@@ -847,34 +855,34 @@ class H extends T {
847
855
  o.preventDefault(), o.stopPropagation(), this._removeChip(i.value), this._inputEl?.focus();
848
856
  }), h.append(d), h;
849
857
  }));
850
- const x = this._filteredOptions(), F = this._renderLimit(), _ = x.slice(0, F), V = x.length > _.length;
858
+ const _ = this._filteredOptions(), F = this._renderLimit(), y = _.slice(0, F), V = _.length > y.length;
851
859
  if (this._panelEl.hidden = !this.open, q) {
852
860
  const i = document.createElement("div");
853
861
  i.className = "status", i.textContent = O, this._panelEl.replaceChildren(i), this._inputEl.removeAttribute("aria-activedescendant");
854
862
  return;
855
863
  }
856
- if (!x.length) {
864
+ if (!_.length) {
857
865
  const i = document.createElement("div");
858
866
  i.className = "status", i.textContent = "No matching options", this._panelEl.replaceChildren(i), this._inputEl.removeAttribute("aria-activedescendant");
859
867
  return;
860
868
  }
861
- const B = new Set(this._selected), P = this._panelEl.getActiveItem()?.getAttribute("data-value"), g = [];
862
- let y = null;
863
- if (_.forEach((i, h) => {
864
- if (i.group && i.group !== y) {
869
+ const $ = new Set(this._selected), B = this._panelEl.getActiveItem()?.getAttribute("data-value"), g = [];
870
+ let E = null;
871
+ if (y.forEach((i, h) => {
872
+ if (i.group && i.group !== E) {
865
873
  const u = document.createElement("div");
866
- u.className = "group", u.setAttribute("role", "presentation"), u.textContent = i.group, g.push(u), y = i.group;
867
- } else i.group || (y = null);
868
- const d = B.has(i.value), o = document.createElement("button");
869
- o.className = "option", o.type = "button", o.id = `${this._uid}-option-${h}`, o.setAttribute("role", "option"), o.setAttribute("data-value", i.value), o.setAttribute("data-selected", String(d)), o.setAttribute("data-indicator", C), o.setAttribute("aria-selected", d ? "true" : "false"), (i.disabled || b || m) && (o.disabled = !0), o.addEventListener("pointerdown", (u) => {
874
+ u.className = "group", u.setAttribute("role", "presentation"), u.textContent = i.group, g.push(u), E = i.group;
875
+ } else i.group || (E = null);
876
+ const d = $.has(i.value), o = document.createElement("button");
877
+ o.className = "option", o.type = "button", o.id = `${this._uid}-option-${h}`, o.setAttribute("role", "option"), o.setAttribute("data-value", i.value), o.setAttribute("data-selected", String(d)), o.setAttribute("data-indicator", C), o.setAttribute("aria-selected", d ? "true" : "false"), (i.disabled || m || b) && (o.disabled = !0), o.addEventListener("pointerdown", (u) => {
870
878
  u.preventDefault();
871
879
  }), o.addEventListener("click", (u) => {
872
880
  u.preventDefault(), !i.disabled && (this._activeValue = i.value, this._toggleValue(i.value, "option"), this._query = "", this._inputEl && (this._inputEl.value = ""), this._inputEl?.focus());
873
881
  });
874
882
  const f = document.createElement("div");
875
883
  f.className = "option-text";
876
- const k = document.createElement("span");
877
- if (k.className = "option-label", k.textContent = i.label, f.append(k), i.description) {
884
+ const w = document.createElement("span");
885
+ if (w.className = "option-label", w.textContent = i.label, f.append(w), i.description) {
878
886
  const u = document.createElement("span");
879
887
  u.className = "option-description", u.textContent = i.description, f.append(u);
880
888
  }
@@ -885,18 +893,18 @@ class H extends T {
885
893
  o.append(f), g.push(o);
886
894
  }), V) {
887
895
  const i = document.createElement("div");
888
- i.className = "status", i.textContent = `Showing first ${_.length} results. Keep typing to narrow the list.`, g.push(i);
896
+ i.className = "status", i.textContent = `Showing first ${y.length} results. Keep typing to narrow the list.`, g.push(i);
889
897
  }
890
898
  this._panelEl.replaceChildren(...g);
891
- const $ = P || this._activeValue || this._selected[this._selected.length - 1] || null, E = this._findOptionNode($), A = E && !E.hasAttribute("disabled") ? this._panelEl.setActiveItem(E, { focus: !1, owner: this._inputEl, scroll: !1 }) : (this._panelEl.clearActive(), null);
892
- this._activeValue = A?.getAttribute("data-value") || null, A?.id ? this._inputEl.setAttribute("aria-activedescendant", A.id) : this._inputEl.removeAttribute("aria-activedescendant");
899
+ const P = B || this._activeValue || this._selected[this._selected.length - 1] || null, A = this._findOptionNode(P), k = A && !A.hasAttribute("disabled") ? this._panelEl.setActiveItem(A, { focus: !1, owner: this._inputEl, scroll: !1 }) : (this._panelEl.clearActive(), null);
900
+ this._activeValue = k?.getAttribute("data-value") || null, k?.id ? this._inputEl.setAttribute("aria-activedescendant", k.id) : this._inputEl.removeAttribute("aria-activedescendant");
893
901
  } finally {
894
902
  this._isSyncingUi = !1, this._needsSyncUi && (this._needsSyncUi = !1, this._syncUi());
895
903
  }
896
904
  }
897
905
  }
898
906
  }
899
- typeof customElements < "u" && !customElements.get("ui-multi-select") && customElements.define("ui-multi-select", H);
907
+ typeof customElements < "u" && !customElements.get("ui-multi-select") && customElements.define("ui-multi-select", M);
900
908
  export {
901
- H as UIMultiSelect
909
+ M as UIMultiSelect
902
910
  };
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("./ElementBase-EV6mVBUV.js"),_=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("./ElementBase-DxbvhLJs.js"),_=`
2
2
  :host {
3
3
  display: block;
4
4
  position: relative;
@@ -297,7 +297,7 @@
297
297
  }
298
298
 
299
299
  :host([tone="neutral"]) {
300
- --ui-nav-ring: color-mix(in srgb, var(--ui-color-muted, #64748b) 60%, var(--ui-color-text, #0f172a));
300
+ --ui-nav-ring: color-mix(in srgb, var(--ui-color-muted, #526175) 60%, var(--ui-color-text, #0f172a));
301
301
  }
302
302
 
303
303
  :host([tone="info"]) {
@@ -1,4 +1,4 @@
1
- import { E as f } from "./ElementBase-YlTLMsGk.mjs";
1
+ import { E as f } from "./ElementBase-BeZT54Hj.mjs";
2
2
  const _ = `
3
3
  :host {
4
4
  display: block;
@@ -298,7 +298,7 @@ const _ = `
298
298
  }
299
299
 
300
300
  :host([tone="neutral"]) {
301
- --ui-nav-ring: color-mix(in srgb, var(--ui-color-muted, #64748b) 60%, var(--ui-color-text, #0f172a));
301
+ --ui-nav-ring: color-mix(in srgb, var(--ui-color-muted, #526175) 60%, var(--ui-color-text, #0f172a));
302
302
  }
303
303
 
304
304
  :host([tone="info"]) {
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const D=require("./ElementBase-EV6mVBUV.js"),z=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const z=require("./ElementBase-DxbvhLJs.js"),A=require("./control-name-BmoI1m3a.js"),N=`
2
2
  :host {
3
3
  --ui-number-field-padding: var(--ui-padding, 10px 12px);
4
4
  --ui-number-field-border-color: var(--ui-color-border, var(--ui-border-color, #cbd5e1));
@@ -11,7 +11,7 @@
11
11
  --ui-number-field-width: 100%;
12
12
  --ui-number-field-bg: var(--ui-color-surface, var(--ui-surface, #ffffff));
13
13
  --ui-number-field-color: var(--ui-color-text, var(--ui-text, #0f172a));
14
- --ui-number-field-muted: var(--ui-color-muted, var(--ui-muted, #64748b));
14
+ --ui-number-field-muted: var(--ui-color-muted, var(--ui-muted, #526175));
15
15
  --ui-number-field-focus: var(--ui-color-focus-ring, var(--ui-focus-ring, #2563eb));
16
16
  --ui-number-field-danger: var(--ui-color-danger, var(--ui-error, #dc2626));
17
17
  --ui-number-field-shadow: none;
@@ -148,13 +148,15 @@
148
148
  color: var(--ui-number-field-placeholder);
149
149
  }
150
150
 
151
+ /* Side by side, not stacked: stacked, each button was about 20px tall (under the 24px target size of
152
+ WCAG 2.5.8). Each one is now at least 24px wide and as tall as the field. */
151
153
  .steppers {
152
154
  flex: 0 0 auto;
153
155
  display: grid;
154
- grid-template-rows: 1fr 1fr;
156
+ grid-template-columns: 1fr 1fr;
155
157
  align-self: stretch;
156
158
  align-items: stretch;
157
- inline-size: 28px;
159
+ inline-size: 56px;
158
160
  min-block-size: calc(var(--ui-number-field-min-height) - 6px);
159
161
  margin-inline-start: auto;
160
162
  border-inline-start: 1px solid color-mix(in srgb, var(--ui-number-field-border-color) 82%, transparent);
@@ -221,10 +223,6 @@
221
223
  display: block;
222
224
  }
223
225
 
224
- .stepper-slot:last-child .stepper-icon {
225
- transform: translateY(0.5px);
226
- }
227
-
228
226
  .footer {
229
227
  min-inline-size: 0;
230
228
  display: flex;
@@ -263,7 +261,7 @@
263
261
  }
264
262
 
265
263
  :host([size="sm"]) .steppers {
266
- inline-size: 24px;
264
+ inline-size: 48px;
267
265
  }
268
266
 
269
267
  :host([size="sm"]) .stepper-icon {
@@ -278,7 +276,7 @@
278
276
  }
279
277
 
280
278
  :host([size="lg"]) .steppers {
281
- inline-size: 32px;
279
+ inline-size: 64px;
282
280
  }
283
281
 
284
282
  :host([size="lg"]) .stepper-icon {
@@ -311,8 +309,8 @@
311
309
  transition: none !important;
312
310
  }
313
311
  }
314
- `;function f(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function d(r){if(!r)return!1;const e=r.assignedNodes({flatten:!0});return e.length?e.some(t=>t.nodeType===Node.TEXT_NODE?!!t.textContent?.trim():t.nodeType===Node.ELEMENT_NODE):!1}function p(r,e){const t=r.getAttribute(e);if(t==null)return!1;const i=String(t).trim().toLowerCase();return i!=="false"&&i!=="0"}function g(r){if(r==null||r.trim()==="")return null;const e=Number(r);return Number.isFinite(e)?e:null}function N(r){const e=String(r),t=e.match(/e-(\d+)$/i);if(t)return Number(t[1]);const i=e.split(".")[1];return i?i.length:0}function m(r,e){if(e==null||e<0)return r;const t=10**e;return Math.round((r+Number.EPSILON)*t)/t}function A(r,e,t){return e!=null&&r<e?e:t!=null&&r>t?t:r}function B(r){return r??0}function C(r,e,t,i){if(e==null||e<=0)return!0;const s=m((r-t)/e,i!=null?i+2:8);return Math.abs(s-Math.round(s))<1e-7}function F(r){const e=new Intl.NumberFormat(r).formatToParts(12345.6);return{group:e.find(t=>t.type==="group")?.value||",",decimal:e.find(t=>t.type==="decimal")?.value||"."}}function _(r,e){const t=r.trim();if(!t)return null;const{group:i,decimal:s}=F(e);let n=t.replace(/[\s\u00a0\u202f]/g,"");if(n=n.split(i).join(""),s!=="."&&(n=n.split(s).join(".")),n=n.replace(/[−–]/g,"-"),!/^[+-]?(?:\d+\.?\d*|\.\d+)$/.test(n))return null;const l=Number(n);return Number.isFinite(l)?l:null}function L(r,e){return e!=null&&e>=0?r.toFixed(e):String(r)}class w extends D.ElementBase{constructor(){super(),this._input=null,this._formUnregister=null,this._uid=Math.random().toString(36).slice(2,9),this._rawValue="",this._isEditing=!1,this._internalInvalidReason=null,this._onInput=this._onInput.bind(this),this._onBlur=this._onBlur.bind(this),this._onFocus=this._onFocus.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onWheel=this._onWheel.bind(this),this._onSlotChange=this._onSlotChange.bind(this),this._onClick=this._onClick.bind(this)}static get observedAttributes(){return["value","min","max","step","precision","locale","format","name","placeholder","disabled","readonly","required","invalid","allow-wheel","show-steppers","clamp-on-blur","autocomplete","inputmode","label","description","data-error","size","variant"]}connectedCallback(){super.connectedCallback(),this.root.addEventListener("slotchange",this._onSlotChange),this.addEventListener("click",this._onClick),this._registerWithForm()}disconnectedCallback(){this.root.removeEventListener("slotchange",this._onSlotChange),this.removeEventListener("click",this._onClick),this._detachListeners(),this._formUnregister&&(this._formUnregister(),this._formUnregister=null),super.disconnectedCallback()}shouldRenderOnAttributeChange(e){return e==="label"||e==="description"||e==="data-error"}attributeChangedCallback(e,t,i){if(t!==i){if(e==="value"){this._rawValue=i||"",this._clearInternalInvalid(),this._syncDisplayValue(),this._syncAria();return}if(e==="name"&&this._registerWithForm(),e==="min"||e==="max"||e==="step"||e==="precision"||e==="locale"||e==="format"||e==="placeholder"||e==="disabled"||e==="readonly"||e==="required"||e==="allow-wheel"||e==="show-steppers"||e==="clamp-on-blur"||e==="autocomplete"||e==="inputmode"||e==="size"||e==="variant"||e==="invalid"){this._syncControlAttrs(),this._syncDisplayValue(),this._syncDerivedState(),this._syncAria();return}super.attributeChangedCallback(e,t,i)}}get value(){return this.getAttribute("value")||""}set value(e){e?this.setAttribute("value",e):this.removeAttribute("value")}get valueAsNumber(){return g(this.getAttribute("value"))}get rawValue(){return this._rawValue}set rawValue(e){this._rawValue=String(e??""),this._input&&(this._input.value=this._rawValue),this._syncAria()}focus(e){if(this._input){this._input.focus(e);return}super.focus(e)}blur(){this._input?.blur()}select(){this._input?.select()}stepUp(e=1){this._stepBy(Math.max(1,Number(e)||1),"step")}stepDown(e=1){this._stepBy(-Math.max(1,Number(e)||1),"step")}_locale(){return this.getAttribute("locale")||Intl.NumberFormat().resolvedOptions().locale||"en-US"}_precision(){const e=this.getAttribute("precision");if(e==null||e.trim()==="")return null;const t=Number(e);return Number.isInteger(t)&&t>=0?t:null}_step(){const e=this.getAttribute("step");if(e==null||e===""||e==="any")return null;const t=Number(e);return Number.isFinite(t)&&t>0?t:null}_effectivePrecision(){const e=this._precision();if(e!=null)return e;const t=this._step();return t!=null?N(t):null}_min(){return g(this.getAttribute("min"))}_max(){return g(this.getAttribute("max"))}_formatNumber(e){const t=this._effectivePrecision(),i=this.getAttribute("format")!=="plain";return new Intl.NumberFormat(this._locale(),{useGrouping:i,minimumFractionDigits:t??0,maximumFractionDigits:t??20}).format(e)}_displayStringForValue(){if(this._isEditing)return this._rawValue;const e=this.valueAsNumber;return e==null?this._rawValue:this._formatNumber(e)}_syncDisplayValue(){if(!this._input)return;const e=this._displayStringForValue();this._input.value!==e&&(this._input.value=e);const t=this.root.querySelector(".shell");t&&t.setAttribute("data-has-value",e?"true":"false")}_syncControlAttrs(){if(!this._input)return;this._input.placeholder=this.getAttribute("placeholder")||"",this._input.disabled=p(this,"disabled"),this._input.readOnly=this.hasAttribute("readonly"),this._input.required=this.hasAttribute("required"),this._input.name=this.getAttribute("name")||"",this._input.setAttribute("inputmode",this.getAttribute("inputmode")||"decimal");const e=this.getAttribute("autocomplete");e?this._input.setAttribute("autocomplete",e):this._input.removeAttribute("autocomplete")}_syncAria(){if(!this._input)return;const e=this.valueAsNumber;this._input.setAttribute("role","spinbutton"),this._input.setAttribute("aria-valuetext",this._input.value||"");const t=this._min(),i=this._max();t!=null?this._input.setAttribute("aria-valuemin",String(t)):this._input.removeAttribute("aria-valuemin"),i!=null?this._input.setAttribute("aria-valuemax",String(i)):this._input.removeAttribute("aria-valuemax"),e!=null?this._input.setAttribute("aria-valuenow",String(e)):this._input.removeAttribute("aria-valuenow");const s=this.root.querySelector('slot[name="label"]'),n=this.root.querySelector('slot[name="description"]'),l=this.root.querySelector('slot[name="error"]'),u=!!(this.getAttribute("label")||"").trim()||d(s),a=!!(this.getAttribute("description")||"").trim()||d(n),o=!!(this.getAttribute("data-error")||"").trim()||d(l);u?this._input.setAttribute("aria-labelledby",`${this._uid}-label`):this._input.removeAttribute("aria-labelledby");const c=[];a&&c.push(`${this._uid}-description`),o&&c.push(`${this._uid}-error`),c.length?this._input.setAttribute("aria-describedby",c.join(" ")):this._input.removeAttribute("aria-describedby"),this.hasAttribute("required")?this._input.setAttribute("aria-required","true"):this._input.removeAttribute("aria-required"),this.hasAttribute("invalid")||this._internalInvalidReason!=null||o?this._input.setAttribute("aria-invalid","true"):this._input.removeAttribute("aria-invalid")}_syncDerivedState(){const e=this.root.querySelector('slot[name="label"]'),t=this.root.querySelector('slot[name="description"]'),i=this.root.querySelector('slot[name="error"]'),s=this.root.querySelector('slot[name="prefix"]'),n=this.root.querySelector('slot[name="suffix"]'),l=this.root.querySelector('slot[name="increment-trigger"]'),u=this.root.querySelector('slot[name="decrement-trigger"]'),a=!!(this.getAttribute("label")||"").trim()||d(e),o=!!(this.getAttribute("description")||"").trim()||d(t),c=!!(this.getAttribute("data-error")||"").trim()||d(i),v=d(s),S=d(n),V=d(l),k=d(u),y=p(this,"show-steppers")||V||k,h=(E,I)=>{const b=this.root.querySelector(E);b&&(I?b.removeAttribute("hidden"):b.setAttribute("hidden",""))};h(".meta",a||o),h(".label",a),h(".description",o),h(".prefix",v),h(".suffix",S),h(".footer",c),h(".error",c),h(".steppers",y);const x=this.root.querySelector(".shell");x&&x.setAttribute("data-show-steppers",y?"true":"false")}_emitValueEvent(e,t,i,s){this.dispatchEvent(new CustomEvent(e,{detail:{value:t,previousValue:i,source:s},bubbles:!0,composed:!0}))}_emitInvalid(e){this._internalInvalidReason=e,this.setAttribute("data-internal-invalid",e),this._syncAria(),this.dispatchEvent(new CustomEvent("invalid",{detail:{reason:e},bubbles:!0,composed:!0}))}_clearInternalInvalid(){this._internalInvalidReason=null,this.removeAttribute("data-internal-invalid"),this._syncAria()}_commitValue(e,t){const i=this.valueAsNumber;if(e==null){if(i==null&&!this.value){this._rawValue="",this._syncDisplayValue();return}this._emitValueEvent("before-value-change",null,i,t),this.removeAttribute("value"),this._rawValue="",this._clearInternalInvalid(),this._syncDisplayValue(),this._syncAria(),this._emitValueEvent("value-change",null,i,t);return}const s=this._effectivePrecision(),n=L(m(e,s),s),l=Number(n);if(i!=null&&l===i&&this.value===n){this._rawValue=n,this._clearInternalInvalid(),this._syncDisplayValue();return}this._emitValueEvent("before-value-change",l,i,t),this.setAttribute("value",n),this._rawValue=n,this._clearInternalInvalid(),this._syncDisplayValue(),this._syncAria(),this._emitValueEvent("value-change",l,i,t)}_commitRaw(e){const t=this._rawValue.trim();if(!t){this._commitValue(null,e);return}const i=_(t,this._locale());if(i==null){this._emitInvalid("parse"),this._syncDisplayValue();return}const s=this._min(),n=this._max(),l=this._effectivePrecision(),u=m(i,l),a=p(this,"clamp-on-blur"),o=a?A(u,s,n):u;if(!a&&s!=null&&o<s){this._emitInvalid("min"),this._syncDisplayValue();return}if(!a&&n!=null&&o>n){this._emitInvalid("max"),this._syncDisplayValue();return}const c=this._step();if(!C(o,c,B(s),l)){this._emitInvalid("step"),this._syncDisplayValue();return}this._commitValue(o,e)}_stepBy(e,t){if(p(this,"disabled")||this.hasAttribute("readonly"))return;const i=this._step()??1,s=this._effectivePrecision(),n=this._min(),l=this._max(),a=(this._isEditing?_(this._rawValue,this._locale()):this.valueAsNumber)??n??0,o=A(m(a+i*e,s),n,l);this._commitValue(o,t),this._isEditing&&this._input&&(this._input.value=this._rawValue)}_registerWithForm(){this._formUnregister&&(this._formUnregister(),this._formUnregister=null);try{const s=this.getRootNode().host?.closest?.("ui-form")||null||this.closest("ui-form"),n=this.getAttribute("name");s&&typeof s.registerField=="function"&&n&&(this._formUnregister=s.registerField(n,{name:n,getValue:()=>this.value,setValue:l=>{l==null||l===""?this.removeAttribute("value"):this.setAttribute("value",String(l))},validate:async()=>{const l=this.valueAsNumber,u=this._min(),a=this._max();return this.hasAttribute("required")&&l==null?{valid:!1,message:"A value is required."}:l!=null&&u!=null&&l<u?{valid:!1,message:`Value must be at least ${u}.`}:l!=null&&a!=null&&l>a?{valid:!1,message:`Value must be at most ${a}.`}:{valid:this._internalInvalidReason==null,message:void 0}},setError:l=>{l?(this.setAttribute("data-error",l),this.toggleAttribute("invalid",!0)):(this.removeAttribute("data-error"),this._internalInvalidReason==null&&this.removeAttribute("invalid")),this._syncDerivedState(),this._syncAria()}}))}catch{}}_detachListeners(){this._input&&(this._input.removeEventListener("input",this._onInput),this._input.removeEventListener("focus",this._onFocus),this._input.removeEventListener("blur",this._onBlur),this._input.removeEventListener("keydown",this._onKeyDown),this._input.removeEventListener("wheel",this._onWheel))}_bindInput(){this._input&&(this._detachListeners(),this._input.addEventListener("input",this._onInput),this._input.addEventListener("focus",this._onFocus),this._input.addEventListener("blur",this._onBlur),this._input.addEventListener("keydown",this._onKeyDown),this._input.addEventListener("wheel",this._onWheel,{passive:!1}))}_onInput(e){this._rawValue=e.target.value,this._syncDisplayValue(),this._syncAria();const t=_(this._rawValue,this._locale());this.dispatchEvent(new CustomEvent("input",{detail:{rawValue:this._rawValue,value:t,source:"input"},bubbles:!0,composed:!0}))}_onFocus(){this._isEditing=!0,this._rawValue=this.value||this._rawValue,this._syncDisplayValue(),this._syncAria()}_onBlur(){this._isEditing=!1,this._commitRaw("blur")}_onKeyDown(e){if(e.key==="ArrowUp"){e.preventDefault(),this._stepBy(1,"keyboard");return}if(e.key==="ArrowDown"){e.preventDefault(),this._stepBy(-1,"keyboard");return}if(e.key==="PageUp"){e.preventDefault(),this._stepBy(10,"keyboard");return}if(e.key==="PageDown"){e.preventDefault(),this._stepBy(-10,"keyboard");return}if(e.key==="Home"){const t=this._min();if(t==null)return;e.preventDefault(),this._commitValue(t,"keyboard");return}if(e.key==="End"){const t=this._max();if(t==null)return;e.preventDefault(),this._commitValue(t,"keyboard");return}if(e.key==="Enter"){e.preventDefault(),this._isEditing=!1,this._commitRaw("keyboard");return}e.key==="Escape"&&(this._isEditing=!1,this._rawValue=this.value,this._clearInternalInvalid(),this._syncDisplayValue())}_onWheel(e){p(this,"allow-wheel")&&(!this._input||this.root.activeElement!==this._input||(e.preventDefault(),this._stepBy(e.deltaY<0?1:-1,"wheel")))}_onClick(e){const i=e.composedPath().find(s=>s instanceof HTMLElement?s.dataset.stepAction==="up"||s.dataset.stepAction==="down"||s.getAttribute("slot")==="increment-trigger"||s.getAttribute("slot")==="decrement-trigger":!1);if(i){if(i.dataset.stepAction==="up"||i.getAttribute("slot")==="increment-trigger"){e.preventDefault(),this._stepBy(1,"step");return}(i.dataset.stepAction==="down"||i.getAttribute("slot")==="decrement-trigger")&&(e.preventDefault(),this._stepBy(-1,"step"))}}_onSlotChange(){this._syncDerivedState(),this._syncAria()}render(){const e=this.getAttribute("label")||"",t=this.getAttribute("description")||"",i=this.getAttribute("data-error")||"";this.setContent(`
315
- <style>${z}</style>
312
+ `;function f(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function d(r){if(!r)return!1;const e=r.assignedNodes({flatten:!0});return e.length?e.some(t=>t.nodeType===Node.TEXT_NODE?!!t.textContent?.trim():t.nodeType===Node.ELEMENT_NODE):!1}function p(r,e){const t=r.getAttribute(e);if(t==null)return!1;const i=String(t).trim().toLowerCase();return i!=="false"&&i!=="0"}function g(r){if(r==null||r.trim()==="")return null;const e=Number(r);return Number.isFinite(e)?e:null}function B(r){const e=String(r),t=e.match(/e-(\d+)$/i);if(t)return Number(t[1]);const i=e.split(".")[1];return i?i.length:0}function m(r,e){if(e==null||e<0)return r;const t=10**e;return Math.round((r+Number.EPSILON)*t)/t}function w(r,e,t){return e!=null&&r<e?e:t!=null&&r>t?t:r}function C(r){return r??0}function q(r,e,t,i){if(e==null||e<=0)return!0;const s=m((r-t)/e,i!=null?i+2:8);return Math.abs(s-Math.round(s))<1e-7}function F(r){const e=new Intl.NumberFormat(r).formatToParts(12345.6);return{group:e.find(t=>t.type==="group")?.value||",",decimal:e.find(t=>t.type==="decimal")?.value||"."}}function _(r,e){const t=r.trim();if(!t)return null;const{group:i,decimal:s}=F(e);let n=t.replace(/[\s\u00a0\u202f]/g,"");if(n=n.split(i).join(""),s!=="."&&(n=n.split(s).join(".")),n=n.replace(/[−–]/g,"-"),!/^[+-]?(?:\d+\.?\d*|\.\d+)$/.test(n))return null;const l=Number(n);return Number.isFinite(l)?l:null}function L(r,e){return e!=null&&e>=0?r.toFixed(e):String(r)}class S extends z.ElementBase{constructor(){super(),this._input=null,this._formUnregister=null,this._uid=Math.random().toString(36).slice(2,9),this._rawValue="",this._isEditing=!1,this._internalInvalidReason=null,this._onInput=this._onInput.bind(this),this._onBlur=this._onBlur.bind(this),this._onFocus=this._onFocus.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onWheel=this._onWheel.bind(this),this._onSlotChange=this._onSlotChange.bind(this),this._onClick=this._onClick.bind(this)}static get observedAttributes(){return["value","min","max","step","precision","locale","format","name","placeholder","disabled","readonly","required","invalid","allow-wheel","show-steppers","clamp-on-blur","autocomplete","inputmode","label","aria-label","aria-description","aria-describedby","description","data-error","size","variant"]}connectedCallback(){super.connectedCallback(),this.root.addEventListener("slotchange",this._onSlotChange),this.addEventListener("click",this._onClick),this._registerWithForm()}disconnectedCallback(){this.root.removeEventListener("slotchange",this._onSlotChange),this.removeEventListener("click",this._onClick),this._detachListeners(),this._formUnregister&&(this._formUnregister(),this._formUnregister=null),super.disconnectedCallback()}shouldRenderOnAttributeChange(e){return e==="label"||e==="description"||e==="data-error"}attributeChangedCallback(e,t,i){if(t!==i){if(e==="value"){this._rawValue=i||"",this._clearInternalInvalid(),this._syncDisplayValue(),this._syncAria();return}if(e==="name"&&this._registerWithForm(),e==="min"||e==="max"||e==="step"||e==="precision"||e==="locale"||e==="format"||e==="placeholder"||e==="disabled"||e==="readonly"||e==="required"||e==="allow-wheel"||e==="show-steppers"||e==="clamp-on-blur"||e==="autocomplete"||e==="inputmode"||e==="size"||e==="variant"||e==="invalid"||e==="aria-label"||e==="aria-description"||e==="aria-describedby"){this._syncControlAttrs(),this._syncDisplayValue(),this._syncDerivedState(),this._syncAria();return}super.attributeChangedCallback(e,t,i)}}get value(){return this.getAttribute("value")||""}set value(e){e?this.setAttribute("value",e):this.removeAttribute("value")}get valueAsNumber(){return g(this.getAttribute("value"))}get rawValue(){return this._rawValue}set rawValue(e){this._rawValue=String(e??""),this._input&&(this._input.value=this._rawValue),this._syncAria()}focus(e){if(this._input){this._input.focus(e);return}super.focus(e)}blur(){this._input?.blur()}select(){this._input?.select()}stepUp(e=1){this._stepBy(Math.max(1,Number(e)||1),"step")}stepDown(e=1){this._stepBy(-Math.max(1,Number(e)||1),"step")}_locale(){return this.getAttribute("locale")||Intl.NumberFormat().resolvedOptions().locale||"en-US"}_precision(){const e=this.getAttribute("precision");if(e==null||e.trim()==="")return null;const t=Number(e);return Number.isInteger(t)&&t>=0?t:null}_step(){const e=this.getAttribute("step");if(e==null||e===""||e==="any")return null;const t=Number(e);return Number.isFinite(t)&&t>0?t:null}_effectivePrecision(){const e=this._precision();if(e!=null)return e;const t=this._step();return t!=null?B(t):null}_min(){return g(this.getAttribute("min"))}_max(){return g(this.getAttribute("max"))}_formatNumber(e){const t=this._effectivePrecision(),i=this.getAttribute("format")!=="plain";return new Intl.NumberFormat(this._locale(),{useGrouping:i,minimumFractionDigits:t??0,maximumFractionDigits:t??20}).format(e)}_displayStringForValue(){if(this._isEditing)return this._rawValue;const e=this.valueAsNumber;return e==null?this._rawValue:this._formatNumber(e)}_syncDisplayValue(){if(!this._input)return;const e=this._displayStringForValue();this._input.value!==e&&(this._input.value=e);const t=this.root.querySelector(".shell");t&&t.setAttribute("data-has-value",e?"true":"false")}_syncControlAttrs(){if(!this._input)return;this._input.placeholder=this.getAttribute("placeholder")||"",this._input.disabled=p(this,"disabled"),this._input.disabled?this.root.querySelector(".shell")?.setAttribute("aria-disabled","true"):this.root.querySelector(".shell")?.removeAttribute("aria-disabled"),this._input.readOnly=this.hasAttribute("readonly"),this._input.required=this.hasAttribute("required"),this._input.name=this.getAttribute("name")||"",this._input.setAttribute("inputmode",this.getAttribute("inputmode")||"decimal");const e=this.getAttribute("autocomplete");e?this._input.setAttribute("autocomplete",e):this._input.removeAttribute("autocomplete")}_syncAria(){if(!this._input)return;const e=this.valueAsNumber;this._input.setAttribute("role","spinbutton"),this._input.setAttribute("aria-valuetext",this._input.value||"");const t=this._min(),i=this._max();t!=null?this._input.setAttribute("aria-valuemin",String(t)):this._input.removeAttribute("aria-valuemin"),i!=null?this._input.setAttribute("aria-valuemax",String(i)):this._input.removeAttribute("aria-valuemax"),e!=null?this._input.setAttribute("aria-valuenow",String(e)):this._input.removeAttribute("aria-valuenow");const s=this.root.querySelector('slot[name="label"]'),n=this.root.querySelector('slot[name="description"]'),l=this.root.querySelector('slot[name="error"]'),u=!!(this.getAttribute("label")||"").trim()||d(s),a=!!(this.getAttribute("description")||"").trim()||d(n),o=!!(this.getAttribute("data-error")||"").trim()||d(l);A.syncControlName(this._input,this,u?`${this._uid}-label`:null);const c=[];a&&c.push(`${this._uid}-description`),o&&c.push(`${this._uid}-error`),A.syncControlDescription(this._input,this,this._uid,c),this.hasAttribute("required")?this._input.setAttribute("aria-required","true"):this._input.removeAttribute("aria-required"),this.hasAttribute("invalid")||this._internalInvalidReason!=null||o?this._input.setAttribute("aria-invalid","true"):this._input.removeAttribute("aria-invalid")}_syncDerivedState(){const e=this.root.querySelector('slot[name="label"]'),t=this.root.querySelector('slot[name="description"]'),i=this.root.querySelector('slot[name="error"]'),s=this.root.querySelector('slot[name="prefix"]'),n=this.root.querySelector('slot[name="suffix"]'),l=this.root.querySelector('slot[name="increment-trigger"]'),u=this.root.querySelector('slot[name="decrement-trigger"]'),a=!!(this.getAttribute("label")||"").trim()||d(e),o=!!(this.getAttribute("description")||"").trim()||d(t),c=!!(this.getAttribute("data-error")||"").trim()||d(i),v=d(s),V=d(n),k=d(l),E=d(u),y=p(this,"show-steppers")||k||E,h=(I,D)=>{const b=this.root.querySelector(I);b&&(D?b.removeAttribute("hidden"):b.setAttribute("hidden",""))};h(".meta",a||o),h(".label",a),h(".description",o),h(".prefix",v),h(".suffix",V),h(".footer",c),h(".error",c),h(".steppers",y);const x=this.root.querySelector(".shell");x&&x.setAttribute("data-show-steppers",y?"true":"false")}_emitValueEvent(e,t,i,s){this.dispatchEvent(new CustomEvent(e,{detail:{value:t,previousValue:i,source:s},bubbles:!0,composed:!0}))}_emitInvalid(e){this._internalInvalidReason=e,this.setAttribute("data-internal-invalid",e),this._syncAria(),this.dispatchEvent(new CustomEvent("invalid",{detail:{reason:e},bubbles:!0,composed:!0}))}_clearInternalInvalid(){this._internalInvalidReason=null,this.removeAttribute("data-internal-invalid"),this._syncAria()}_commitValue(e,t){const i=this.valueAsNumber;if(e==null){if(i==null&&!this.value){this._rawValue="",this._syncDisplayValue();return}this._emitValueEvent("before-value-change",null,i,t),this.removeAttribute("value"),this._rawValue="",this._clearInternalInvalid(),this._syncDisplayValue(),this._syncAria(),this._emitValueEvent("value-change",null,i,t);return}const s=this._effectivePrecision(),n=L(m(e,s),s),l=Number(n);if(i!=null&&l===i&&this.value===n){this._rawValue=n,this._clearInternalInvalid(),this._syncDisplayValue();return}this._emitValueEvent("before-value-change",l,i,t),this.setAttribute("value",n),this._rawValue=n,this._clearInternalInvalid(),this._syncDisplayValue(),this._syncAria(),this._emitValueEvent("value-change",l,i,t)}_commitRaw(e){const t=this._rawValue.trim();if(!t){this._commitValue(null,e);return}const i=_(t,this._locale());if(i==null){this._emitInvalid("parse"),this._syncDisplayValue();return}const s=this._min(),n=this._max(),l=this._effectivePrecision(),u=m(i,l),a=p(this,"clamp-on-blur"),o=a?w(u,s,n):u;if(!a&&s!=null&&o<s){this._emitInvalid("min"),this._syncDisplayValue();return}if(!a&&n!=null&&o>n){this._emitInvalid("max"),this._syncDisplayValue();return}const c=this._step();if(!q(o,c,C(s),l)){this._emitInvalid("step"),this._syncDisplayValue();return}this._commitValue(o,e)}_stepBy(e,t){if(p(this,"disabled")||this.hasAttribute("readonly"))return;const i=this._step()??1,s=this._effectivePrecision(),n=this._min(),l=this._max(),a=(this._isEditing?_(this._rawValue,this._locale()):this.valueAsNumber)??n??0,o=w(m(a+i*e,s),n,l);this._commitValue(o,t),this._isEditing&&this._input&&(this._input.value=this._rawValue)}_registerWithForm(){this._formUnregister&&(this._formUnregister(),this._formUnregister=null);try{const s=this.getRootNode().host?.closest?.("ui-form")||null||this.closest("ui-form"),n=this.getAttribute("name");s&&typeof s.registerField=="function"&&n&&(this._formUnregister=s.registerField(n,{name:n,getValue:()=>this.value,setValue:l=>{l==null||l===""?this.removeAttribute("value"):this.setAttribute("value",String(l))},validate:async()=>{const l=this.valueAsNumber,u=this._min(),a=this._max();return this.hasAttribute("required")&&l==null?{valid:!1,message:"A value is required."}:l!=null&&u!=null&&l<u?{valid:!1,message:`Value must be at least ${u}.`}:l!=null&&a!=null&&l>a?{valid:!1,message:`Value must be at most ${a}.`}:{valid:this._internalInvalidReason==null,message:void 0}},setError:l=>{l?(this.setAttribute("data-error",l),this.toggleAttribute("invalid",!0)):(this.removeAttribute("data-error"),this._internalInvalidReason==null&&this.removeAttribute("invalid")),this._syncDerivedState(),this._syncAria()}}))}catch{}}_detachListeners(){this._input&&(this._input.removeEventListener("input",this._onInput),this._input.removeEventListener("focus",this._onFocus),this._input.removeEventListener("blur",this._onBlur),this._input.removeEventListener("keydown",this._onKeyDown),this._input.removeEventListener("wheel",this._onWheel))}_bindInput(){this._input&&(this._detachListeners(),this._input.addEventListener("input",this._onInput),this._input.addEventListener("focus",this._onFocus),this._input.addEventListener("blur",this._onBlur),this._input.addEventListener("keydown",this._onKeyDown),this._input.addEventListener("wheel",this._onWheel,{passive:!1}))}_onInput(e){this._rawValue=e.target.value,this._syncDisplayValue(),this._syncAria();const t=_(this._rawValue,this._locale());this.dispatchEvent(new CustomEvent("input",{detail:{rawValue:this._rawValue,value:t,source:"input"},bubbles:!0,composed:!0}))}_onFocus(){this._isEditing=!0,this._rawValue=this.value||this._rawValue,this._syncDisplayValue(),this._syncAria()}_onBlur(){this._isEditing=!1,this._commitRaw("blur")}_onKeyDown(e){if(e.key==="ArrowUp"){e.preventDefault(),this._stepBy(1,"keyboard");return}if(e.key==="ArrowDown"){e.preventDefault(),this._stepBy(-1,"keyboard");return}if(e.key==="PageUp"){e.preventDefault(),this._stepBy(10,"keyboard");return}if(e.key==="PageDown"){e.preventDefault(),this._stepBy(-10,"keyboard");return}if(e.key==="Home"){const t=this._min();if(t==null)return;e.preventDefault(),this._commitValue(t,"keyboard");return}if(e.key==="End"){const t=this._max();if(t==null)return;e.preventDefault(),this._commitValue(t,"keyboard");return}if(e.key==="Enter"){e.preventDefault(),this._isEditing=!1,this._commitRaw("keyboard");return}e.key==="Escape"&&(this._isEditing=!1,this._rawValue=this.value,this._clearInternalInvalid(),this._syncDisplayValue())}_onWheel(e){p(this,"allow-wheel")&&(!this._input||this.root.activeElement!==this._input||(e.preventDefault(),this._stepBy(e.deltaY<0?1:-1,"wheel")))}_onClick(e){const i=e.composedPath().find(s=>s instanceof HTMLElement?s.dataset.stepAction==="up"||s.dataset.stepAction==="down"||s.getAttribute("slot")==="increment-trigger"||s.getAttribute("slot")==="decrement-trigger":!1);if(i){if(i.dataset.stepAction==="up"||i.getAttribute("slot")==="increment-trigger"){e.preventDefault(),this._stepBy(1,"step");return}(i.dataset.stepAction==="down"||i.getAttribute("slot")==="decrement-trigger")&&(e.preventDefault(),this._stepBy(-1,"step"))}}_onSlotChange(){this._syncDerivedState(),this._syncAria()}render(){const e=this.getAttribute("label")||"",t=this.getAttribute("description")||"",i=this.getAttribute("data-error")||"";this.setContent(`
313
+ <style>${N}</style>
316
314
  <div class="root">
317
315
  <div class="meta">
318
316
  <label class="label" id="${this._uid}-label">
@@ -348,4 +346,4 @@
348
346
  </p>
349
347
  </div>
350
348
  </div>
351
- `),this._input=this.root.querySelector("input"),this._rawValue=this.value||this._rawValue,this._bindInput(),this._syncControlAttrs(),this._syncDerivedState(),this._syncDisplayValue(),this._syncAria()}}customElements.get("ui-number-field")||customElements.define("ui-number-field",w);exports.UINumberField=w;
349
+ `),this._input=this.root.querySelector("input"),this._rawValue=this.value||this._rawValue,this._bindInput(),this._syncControlAttrs(),this._syncDerivedState(),this._syncDisplayValue(),this._syncAria()}}typeof customElements<"u"&&!customElements.get("ui-number-field")&&customElements.define("ui-number-field",S);exports.UINumberField=S;
@@ -1,5 +1,6 @@
1
- import { E as I } from "./ElementBase-YlTLMsGk.mjs";
2
- const D = `
1
+ import { E as I } from "./ElementBase-BeZT54Hj.mjs";
2
+ import { s as D, a as z } from "./control-name-Bpj7F34X.mjs";
3
+ const N = `
3
4
  :host {
4
5
  --ui-number-field-padding: var(--ui-padding, 10px 12px);
5
6
  --ui-number-field-border-color: var(--ui-color-border, var(--ui-border-color, #cbd5e1));
@@ -12,7 +13,7 @@ const D = `
12
13
  --ui-number-field-width: 100%;
13
14
  --ui-number-field-bg: var(--ui-color-surface, var(--ui-surface, #ffffff));
14
15
  --ui-number-field-color: var(--ui-color-text, var(--ui-text, #0f172a));
15
- --ui-number-field-muted: var(--ui-color-muted, var(--ui-muted, #64748b));
16
+ --ui-number-field-muted: var(--ui-color-muted, var(--ui-muted, #526175));
16
17
  --ui-number-field-focus: var(--ui-color-focus-ring, var(--ui-focus-ring, #2563eb));
17
18
  --ui-number-field-danger: var(--ui-color-danger, var(--ui-error, #dc2626));
18
19
  --ui-number-field-shadow: none;
@@ -149,13 +150,15 @@ const D = `
149
150
  color: var(--ui-number-field-placeholder);
150
151
  }
151
152
 
153
+ /* Side by side, not stacked: stacked, each button was about 20px tall (under the 24px target size of
154
+ WCAG 2.5.8). Each one is now at least 24px wide and as tall as the field. */
152
155
  .steppers {
153
156
  flex: 0 0 auto;
154
157
  display: grid;
155
- grid-template-rows: 1fr 1fr;
158
+ grid-template-columns: 1fr 1fr;
156
159
  align-self: stretch;
157
160
  align-items: stretch;
158
- inline-size: 28px;
161
+ inline-size: 56px;
159
162
  min-block-size: calc(var(--ui-number-field-min-height) - 6px);
160
163
  margin-inline-start: auto;
161
164
  border-inline-start: 1px solid color-mix(in srgb, var(--ui-number-field-border-color) 82%, transparent);
@@ -222,10 +225,6 @@ const D = `
222
225
  display: block;
223
226
  }
224
227
 
225
- .stepper-slot:last-child .stepper-icon {
226
- transform: translateY(0.5px);
227
- }
228
-
229
228
  .footer {
230
229
  min-inline-size: 0;
231
230
  display: flex;
@@ -264,7 +263,7 @@ const D = `
264
263
  }
265
264
 
266
265
  :host([size="sm"]) .steppers {
267
- inline-size: 24px;
266
+ inline-size: 48px;
268
267
  }
269
268
 
270
269
  :host([size="sm"]) .stepper-icon {
@@ -279,7 +278,7 @@ const D = `
279
278
  }
280
279
 
281
280
  :host([size="lg"]) .steppers {
282
- inline-size: 32px;
281
+ inline-size: 64px;
283
282
  }
284
283
 
285
284
  :host([size="lg"]) .stepper-icon {
@@ -332,7 +331,7 @@ function g(r) {
332
331
  const e = Number(r);
333
332
  return Number.isFinite(e) ? e : null;
334
333
  }
335
- function z(r) {
334
+ function C(r) {
336
335
  const e = String(r), t = e.match(/e-(\d+)$/i);
337
336
  if (t) return Number(t[1]);
338
337
  const i = e.split(".")[1];
@@ -346,15 +345,15 @@ function m(r, e) {
346
345
  function A(r, e, t) {
347
346
  return e != null && r < e ? e : t != null && r > t ? t : r;
348
347
  }
349
- function N(r) {
348
+ function B(r) {
350
349
  return r ?? 0;
351
350
  }
352
- function B(r, e, t, i) {
351
+ function F(r, e, t, i) {
353
352
  if (e == null || e <= 0) return !0;
354
353
  const s = m((r - t) / e, i != null ? i + 2 : 8);
355
354
  return Math.abs(s - Math.round(s)) < 1e-7;
356
355
  }
357
- function C(r) {
356
+ function q(r) {
358
357
  const e = new Intl.NumberFormat(r).formatToParts(12345.6);
359
358
  return {
360
359
  group: e.find((t) => t.type === "group")?.value || ",",
@@ -364,16 +363,16 @@ function C(r) {
364
363
  function _(r, e) {
365
364
  const t = r.trim();
366
365
  if (!t) return null;
367
- const { group: i, decimal: s } = C(e);
366
+ const { group: i, decimal: s } = q(e);
368
367
  let n = t.replace(/[\s\u00a0\u202f]/g, "");
369
368
  if (n = n.split(i).join(""), s !== "." && (n = n.split(s).join(".")), n = n.replace(/[−–]/g, "-"), !/^[+-]?(?:\d+\.?\d*|\.\d+)$/.test(n)) return null;
370
369
  const l = Number(n);
371
370
  return Number.isFinite(l) ? l : null;
372
371
  }
373
- function F(r, e) {
372
+ function L(r, e) {
374
373
  return e != null && e >= 0 ? r.toFixed(e) : String(r);
375
374
  }
376
- class L extends I {
375
+ class M extends I {
377
376
  constructor() {
378
377
  super(), this._input = null, this._formUnregister = null, this._uid = Math.random().toString(36).slice(2, 9), this._rawValue = "", this._isEditing = !1, this._internalInvalidReason = null, this._onInput = this._onInput.bind(this), this._onBlur = this._onBlur.bind(this), this._onFocus = this._onFocus.bind(this), this._onKeyDown = this._onKeyDown.bind(this), this._onWheel = this._onWheel.bind(this), this._onSlotChange = this._onSlotChange.bind(this), this._onClick = this._onClick.bind(this);
379
378
  }
@@ -398,6 +397,9 @@ class L extends I {
398
397
  "autocomplete",
399
398
  "inputmode",
400
399
  "label",
400
+ "aria-label",
401
+ "aria-description",
402
+ "aria-describedby",
401
403
  "description",
402
404
  "data-error",
403
405
  "size",
@@ -419,7 +421,7 @@ class L extends I {
419
421
  this._rawValue = i || "", this._clearInternalInvalid(), this._syncDisplayValue(), this._syncAria();
420
422
  return;
421
423
  }
422
- if (e === "name" && this._registerWithForm(), e === "min" || e === "max" || e === "step" || e === "precision" || e === "locale" || e === "format" || e === "placeholder" || e === "disabled" || e === "readonly" || e === "required" || e === "allow-wheel" || e === "show-steppers" || e === "clamp-on-blur" || e === "autocomplete" || e === "inputmode" || e === "size" || e === "variant" || e === "invalid") {
424
+ if (e === "name" && this._registerWithForm(), e === "min" || e === "max" || e === "step" || e === "precision" || e === "locale" || e === "format" || e === "placeholder" || e === "disabled" || e === "readonly" || e === "required" || e === "allow-wheel" || e === "show-steppers" || e === "clamp-on-blur" || e === "autocomplete" || e === "inputmode" || e === "size" || e === "variant" || e === "invalid" || e === "aria-label" || e === "aria-description" || e === "aria-describedby") {
423
425
  this._syncControlAttrs(), this._syncDisplayValue(), this._syncDerivedState(), this._syncAria();
424
426
  return;
425
427
  }
@@ -479,7 +481,7 @@ class L extends I {
479
481
  const e = this._precision();
480
482
  if (e != null) return e;
481
483
  const t = this._step();
482
- return t != null ? z(t) : null;
484
+ return t != null ? C(t) : null;
483
485
  }
484
486
  _min() {
485
487
  return g(this.getAttribute("min"));
@@ -509,7 +511,7 @@ class L extends I {
509
511
  }
510
512
  _syncControlAttrs() {
511
513
  if (!this._input) return;
512
- this._input.placeholder = this.getAttribute("placeholder") || "", this._input.disabled = p(this, "disabled"), this._input.readOnly = this.hasAttribute("readonly"), this._input.required = this.hasAttribute("required"), this._input.name = this.getAttribute("name") || "", this._input.setAttribute("inputmode", this.getAttribute("inputmode") || "decimal");
514
+ this._input.placeholder = this.getAttribute("placeholder") || "", this._input.disabled = p(this, "disabled"), this._input.disabled ? this.root.querySelector(".shell")?.setAttribute("aria-disabled", "true") : this.root.querySelector(".shell")?.removeAttribute("aria-disabled"), this._input.readOnly = this.hasAttribute("readonly"), this._input.required = this.hasAttribute("required"), this._input.name = this.getAttribute("name") || "", this._input.setAttribute("inputmode", this.getAttribute("inputmode") || "decimal");
513
515
  const e = this.getAttribute("autocomplete");
514
516
  e ? this._input.setAttribute("autocomplete", e) : this._input.removeAttribute("autocomplete");
515
517
  }
@@ -520,9 +522,9 @@ class L extends I {
520
522
  const t = this._min(), i = this._max();
521
523
  t != null ? this._input.setAttribute("aria-valuemin", String(t)) : this._input.removeAttribute("aria-valuemin"), i != null ? this._input.setAttribute("aria-valuemax", String(i)) : this._input.removeAttribute("aria-valuemax"), e != null ? this._input.setAttribute("aria-valuenow", String(e)) : this._input.removeAttribute("aria-valuenow");
522
524
  const s = this.root.querySelector('slot[name="label"]'), n = this.root.querySelector('slot[name="description"]'), l = this.root.querySelector('slot[name="error"]'), u = !!(this.getAttribute("label") || "").trim() || d(s), a = !!(this.getAttribute("description") || "").trim() || d(n), o = !!(this.getAttribute("data-error") || "").trim() || d(l);
523
- u ? this._input.setAttribute("aria-labelledby", `${this._uid}-label`) : this._input.removeAttribute("aria-labelledby");
525
+ D(this._input, this, u ? `${this._uid}-label` : null);
524
526
  const c = [];
525
- a && c.push(`${this._uid}-description`), o && c.push(`${this._uid}-error`), c.length ? this._input.setAttribute("aria-describedby", c.join(" ")) : this._input.removeAttribute("aria-describedby"), this.hasAttribute("required") ? this._input.setAttribute("aria-required", "true") : this._input.removeAttribute("aria-required"), this.hasAttribute("invalid") || this._internalInvalidReason != null || o ? this._input.setAttribute("aria-invalid", "true") : this._input.removeAttribute("aria-invalid");
527
+ a && c.push(`${this._uid}-description`), o && c.push(`${this._uid}-error`), z(this._input, this, this._uid, c), this.hasAttribute("required") ? this._input.setAttribute("aria-required", "true") : this._input.removeAttribute("aria-required"), this.hasAttribute("invalid") || this._internalInvalidReason != null || o ? this._input.setAttribute("aria-invalid", "true") : this._input.removeAttribute("aria-invalid");
526
528
  }
527
529
  _syncDerivedState() {
528
530
  const e = this.root.querySelector('slot[name="label"]'), t = this.root.querySelector('slot[name="description"]'), i = this.root.querySelector('slot[name="error"]'), s = this.root.querySelector('slot[name="prefix"]'), n = this.root.querySelector('slot[name="suffix"]'), l = this.root.querySelector('slot[name="increment-trigger"]'), u = this.root.querySelector('slot[name="decrement-trigger"]'), a = !!(this.getAttribute("label") || "").trim() || d(e), o = !!(this.getAttribute("description") || "").trim() || d(t), c = !!(this.getAttribute("data-error") || "").trim() || d(i), v = d(s), w = d(n), S = d(l), V = d(u), y = p(this, "show-steppers") || S || V, h = (k, E) => {
@@ -564,7 +566,7 @@ class L extends I {
564
566
  this._emitValueEvent("before-value-change", null, i, t), this.removeAttribute("value"), this._rawValue = "", this._clearInternalInvalid(), this._syncDisplayValue(), this._syncAria(), this._emitValueEvent("value-change", null, i, t);
565
567
  return;
566
568
  }
567
- const s = this._effectivePrecision(), n = F(m(e, s), s), l = Number(n);
569
+ const s = this._effectivePrecision(), n = L(m(e, s), s), l = Number(n);
568
570
  if (i != null && l === i && this.value === n) {
569
571
  this._rawValue = n, this._clearInternalInvalid(), this._syncDisplayValue();
570
572
  return;
@@ -592,7 +594,7 @@ class L extends I {
592
594
  return;
593
595
  }
594
596
  const c = this._step();
595
- if (!B(o, c, N(s), l)) {
597
+ if (!F(o, c, B(s), l)) {
596
598
  this._emitInvalid("step"), this._syncDisplayValue();
597
599
  return;
598
600
  }
@@ -701,7 +703,7 @@ class L extends I {
701
703
  render() {
702
704
  const e = this.getAttribute("label") || "", t = this.getAttribute("description") || "", i = this.getAttribute("data-error") || "";
703
705
  this.setContent(`
704
- <style>${D}</style>
706
+ <style>${N}</style>
705
707
  <div class="root">
706
708
  <div class="meta">
707
709
  <label class="label" id="${this._uid}-label">
@@ -740,7 +742,7 @@ class L extends I {
740
742
  `), this._input = this.root.querySelector("input"), this._rawValue = this.value || this._rawValue, this._bindInput(), this._syncControlAttrs(), this._syncDerivedState(), this._syncDisplayValue(), this._syncAria();
741
743
  }
742
744
  }
743
- customElements.get("ui-number-field") || customElements.define("ui-number-field", L);
745
+ typeof customElements < "u" && !customElements.get("ui-number-field") && customElements.define("ui-number-field", M);
744
746
  export {
745
- L as UINumberField
747
+ M as UINumberField
746
748
  };