@editora/ui-core 0.1.25 → 0.2.1

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 (349) hide show
  1. package/README.md +132 -0
  2. package/dist/accordion.cjs.js +13 -12
  3. package/dist/accordion.esm.js +13 -12
  4. package/dist/alert-dialog.cjs.js +92 -53
  5. package/dist/alert-dialog.esm.js +211 -159
  6. package/dist/alert.cjs.js +42 -33
  7. package/dist/alert.esm.js +80 -71
  8. package/dist/animated-beam.cjs.js +42 -50
  9. package/dist/animated-beam.esm.js +47 -55
  10. package/dist/animated-list.cjs.js +11 -27
  11. package/dist/animated-list.esm.js +12 -28
  12. package/dist/animated-text.cjs.js +9 -9
  13. package/dist/animated-text.esm.js +9 -9
  14. package/dist/app-header.cjs.js +17 -12
  15. package/dist/app-header.esm.js +18 -13
  16. package/dist/aspect-ratio.cjs.js +10 -12
  17. package/dist/aspect-ratio.esm.js +11 -13
  18. package/dist/avatar.cjs.js +16 -20
  19. package/dist/avatar.esm.js +16 -20
  20. package/dist/badge.cjs.js +27 -22
  21. package/dist/badge.esm.js +32 -27
  22. package/dist/block-controls.cjs.js +11 -12
  23. package/dist/block-controls.esm.js +8 -9
  24. package/dist/box.cjs.js +2 -3
  25. package/dist/box.esm.js +2 -3
  26. package/dist/breadcrumb.cjs.js +12 -18
  27. package/dist/breadcrumb.esm.js +11 -17
  28. package/dist/button.cjs.js +1 -1
  29. package/dist/button.esm.js +1 -1
  30. package/dist/{calendar-D-mXMgqc.js → calendar-CzpWDxLc.js} +56 -46
  31. package/dist/{calendar-B3PUKHQm.mjs → calendar-DkSDFg33.mjs} +127 -117
  32. package/dist/calendar.cjs.js +1 -1
  33. package/dist/calendar.esm.js +1 -1
  34. package/dist/card.cjs.js +6 -7
  35. package/dist/card.esm.js +5 -6
  36. package/dist/chart.cjs.js +58 -52
  37. package/dist/chart.esm.js +101 -95
  38. package/dist/checkbox.cjs.js +19 -15
  39. package/dist/checkbox.esm.js +19 -15
  40. package/dist/collapsible.cjs.js +9 -13
  41. package/dist/collapsible.esm.js +9 -13
  42. package/dist/color-picker.cjs.js +38 -19
  43. package/dist/color-picker.esm.js +134 -115
  44. package/dist/combobox.cjs.js +60 -57
  45. package/dist/combobox.esm.js +96 -92
  46. package/dist/command-palette.cjs.js +1 -0
  47. package/dist/command-palette.esm.js +1 -0
  48. package/dist/command.cjs.js +32 -14
  49. package/dist/command.esm.js +46 -28
  50. package/dist/components/date-time-utils.d.ts.map +1 -1
  51. package/dist/components/ui-accordion.d.ts.map +1 -1
  52. package/dist/components/ui-alert-dialog.d.ts +2 -0
  53. package/dist/components/ui-alert-dialog.d.ts.map +1 -1
  54. package/dist/components/ui-alert.d.ts.map +1 -1
  55. package/dist/components/ui-animated-beam.d.ts.map +1 -1
  56. package/dist/components/ui-animated-list.d.ts.map +1 -1
  57. package/dist/components/ui-app-header.d.ts.map +1 -1
  58. package/dist/components/ui-aspect-ratio.d.ts.map +1 -1
  59. package/dist/components/ui-avatar.d.ts.map +1 -1
  60. package/dist/components/ui-badge.d.ts.map +1 -1
  61. package/dist/components/ui-block-controls.d.ts.map +1 -1
  62. package/dist/components/ui-box.d.ts.map +1 -1
  63. package/dist/components/ui-breadcrumb.d.ts.map +1 -1
  64. package/dist/components/ui-button.d.ts.map +1 -1
  65. package/dist/components/ui-calendar.d.ts.map +1 -1
  66. package/dist/components/ui-card.d.ts.map +1 -1
  67. package/dist/components/ui-chart.d.ts.map +1 -1
  68. package/dist/components/ui-checkbox.d.ts.map +1 -1
  69. package/dist/components/ui-collapsible.d.ts.map +1 -1
  70. package/dist/components/ui-color-picker.d.ts.map +1 -1
  71. package/dist/components/ui-combobox.d.ts.map +1 -1
  72. package/dist/components/ui-command-palette.d.ts.map +1 -1
  73. package/dist/components/ui-command.d.ts.map +1 -1
  74. package/dist/components/ui-container.d.ts.map +1 -1
  75. package/dist/components/ui-context-menu.d.ts.map +1 -1
  76. package/dist/components/ui-data-table.d.ts +7 -0
  77. package/dist/components/ui-data-table.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-dialog.d.ts +2 -0
  83. package/dist/components/ui-dialog.d.ts.map +1 -1
  84. package/dist/components/ui-dock.d.ts.map +1 -1
  85. package/dist/components/ui-drawer.d.ts.map +1 -1
  86. package/dist/components/ui-dropdown.d.ts.map +1 -1
  87. package/dist/components/ui-empty-state.d.ts.map +1 -1
  88. package/dist/components/ui-field.d.ts.map +1 -1
  89. package/dist/components/ui-fieldset.d.ts.map +1 -1
  90. package/dist/components/ui-file-upload.d.ts.map +1 -1
  91. package/dist/components/ui-floating-toolbar.d.ts.map +1 -1
  92. package/dist/components/ui-form.d.ts.map +1 -1
  93. package/dist/components/ui-gantt.d.ts.map +1 -1
  94. package/dist/components/ui-hover-card.d.ts.map +1 -1
  95. package/dist/components/ui-icon-cloud.d.ts.map +1 -1
  96. package/dist/components/ui-inline-edit.d.ts.map +1 -1
  97. package/dist/components/ui-input.d.ts.map +1 -1
  98. package/dist/components/ui-marquee.d.ts.map +1 -1
  99. package/dist/components/ui-menu.d.ts.map +1 -1
  100. package/dist/components/ui-menubar.d.ts.map +1 -1
  101. package/dist/components/ui-meter.d.ts.map +1 -1
  102. package/dist/components/ui-multi-select.d.ts.map +1 -1
  103. package/dist/components/ui-number-field.d.ts.map +1 -1
  104. package/dist/components/ui-orbiter.d.ts.map +1 -1
  105. package/dist/components/ui-pagination.d.ts.map +1 -1
  106. package/dist/components/ui-password-field.d.ts.map +1 -1
  107. package/dist/components/ui-pin-input.d.ts.map +1 -1
  108. package/dist/components/ui-popover.d.ts.map +1 -1
  109. package/dist/components/ui-progress.d.ts.map +1 -1
  110. package/dist/components/ui-radio-group.d.ts.map +1 -1
  111. package/dist/components/ui-radio.d.ts.map +1 -1
  112. package/dist/components/ui-rating.d.ts +1 -0
  113. package/dist/components/ui-rating.d.ts.map +1 -1
  114. package/dist/components/ui-scroll-area.d.ts.map +1 -1
  115. package/dist/components/ui-section.d.ts.map +1 -1
  116. package/dist/components/ui-select.d.ts.map +1 -1
  117. package/dist/components/ui-selection-popup.d.ts.map +1 -1
  118. package/dist/components/ui-sidebar.d.ts.map +1 -1
  119. package/dist/components/ui-slider.d.ts.map +1 -1
  120. package/dist/components/ui-sortable.d.ts.map +1 -1
  121. package/dist/components/ui-spinning-text.d.ts.map +1 -1
  122. package/dist/components/ui-split-button.d.ts.map +1 -1
  123. package/dist/components/ui-splitter.d.ts.map +1 -1
  124. package/dist/components/ui-stepper.d.ts.map +1 -1
  125. package/dist/components/ui-switch.d.ts.map +1 -1
  126. package/dist/components/ui-tabs.d.ts.map +1 -1
  127. package/dist/components/ui-tags-input.d.ts.map +1 -1
  128. package/dist/components/ui-textarea.d.ts.map +1 -1
  129. package/dist/components/ui-time-picker.d.ts.map +1 -1
  130. package/dist/components/ui-toggle-group.d.ts +2 -0
  131. package/dist/components/ui-toggle-group.d.ts.map +1 -1
  132. package/dist/components/ui-toggle.d.ts.map +1 -1
  133. package/dist/components/ui-toolbar.d.ts +2 -0
  134. package/dist/components/ui-toolbar.d.ts.map +1 -1
  135. package/dist/components/ui-tooltip.d.ts.map +1 -1
  136. package/dist/components/ui-transfer-list.d.ts.map +1 -1
  137. package/dist/components/ui-tree-item.d.ts.map +1 -1
  138. package/dist/components/ui-tree.d.ts.map +1 -1
  139. package/dist/components/ui-wizard.d.ts.map +1 -1
  140. package/dist/container.cjs.js +6 -12
  141. package/dist/container.esm.js +8 -14
  142. package/dist/context-menu.cjs.js +8 -8
  143. package/dist/context-menu.esm.js +42 -41
  144. package/dist/data-table.cjs.js +21 -18
  145. package/dist/data-table.esm.js +210 -190
  146. package/dist/date-field.cjs.js +9 -9
  147. package/dist/date-field.esm.js +19 -19
  148. package/dist/date-picker.cjs.js +29 -20
  149. package/dist/date-picker.esm.js +59 -50
  150. package/dist/date-range-picker.cjs.js +24 -19
  151. package/dist/date-range-picker.esm.js +86 -81
  152. package/dist/date-range-time-picker.cjs.js +27 -20
  153. package/dist/date-range-time-picker.esm.js +24 -17
  154. package/dist/date-time-picker.cjs.js +24 -17
  155. package/dist/date-time-picker.esm.js +89 -82
  156. package/dist/date-time-utils-C-4eHTyy.js +1 -0
  157. package/dist/{date-time-utils-BTlxnz5j.mjs → date-time-utils-zAx4ghvC.mjs} +75 -68
  158. package/dist/description.cjs.js +4 -4
  159. package/dist/description.esm.js +4 -4
  160. package/dist/dialog.cjs.js +59 -43
  161. package/dist/dialog.esm.js +86 -53
  162. package/dist/direction-provider.cjs.js +1 -1
  163. package/dist/direction-provider.esm.js +1 -1
  164. package/dist/dock.cjs.js +16 -30
  165. package/dist/dock.esm.js +26 -40
  166. package/dist/drawer.cjs.js +8 -12
  167. package/dist/drawer.esm.js +6 -10
  168. package/dist/dropdown.cjs.js +8 -6
  169. package/dist/dropdown.esm.js +33 -30
  170. package/dist/empty-state.cjs.js +17 -15
  171. package/dist/empty-state.esm.js +13 -11
  172. package/dist/field-error.cjs.js +1 -1
  173. package/dist/field-error.esm.js +7 -7
  174. package/dist/field.cjs.js +23 -14
  175. package/dist/field.esm.js +30 -21
  176. package/dist/fieldset.cjs.js +16 -9
  177. package/dist/fieldset.esm.js +19 -12
  178. package/dist/file-upload.cjs.js +79 -37
  179. package/dist/file-upload.esm.js +154 -112
  180. package/dist/flex.cjs.js +2 -2
  181. package/dist/flex.esm.js +8 -8
  182. package/dist/floating-toolbar.cjs.js +6 -7
  183. package/dist/floating-toolbar.esm.js +8 -9
  184. package/dist/form.cjs.js +24 -27
  185. package/dist/form.esm.js +24 -27
  186. package/dist/gantt.cjs.js +13 -11
  187. package/dist/gantt.esm.js +13 -11
  188. package/dist/grid.cjs.js +1 -1
  189. package/dist/grid.esm.js +1 -1
  190. package/dist/hover-card.cjs.js +8 -8
  191. package/dist/hover-card.esm.js +18 -15
  192. package/dist/icon-cloud.cjs.js +19 -36
  193. package/dist/icon-cloud.esm.js +41 -58
  194. package/dist/index.cjs.js +1 -1
  195. package/dist/index.d.ts +2 -0
  196. package/dist/index.d.ts.map +1 -1
  197. package/dist/index.esm.js +108 -104
  198. package/dist/inline-edit.cjs.js +50 -22
  199. package/dist/inline-edit.esm.js +77 -49
  200. package/dist/input.cjs.js +45 -38
  201. package/dist/input.esm.js +60 -53
  202. package/dist/label.cjs.js +6 -6
  203. package/dist/label.esm.js +6 -6
  204. package/dist/layout.cjs.js +3 -3
  205. package/dist/layout.esm.js +3 -3
  206. package/dist/marquee.cjs.js +7 -10
  207. package/dist/marquee.esm.js +7 -10
  208. package/dist/masonry-grid.cjs.js +2 -2
  209. package/dist/masonry-grid.esm.js +11 -11
  210. package/dist/{menu-item-styles-IGSFLAHu.mjs → menu-item-styles-CdqxPUuw.mjs} +15 -15
  211. package/dist/{menu-item-styles-B4onAr4C.js → menu-item-styles-DUdyjQ7i.js} +10 -10
  212. package/dist/menu.cjs.js +8 -24
  213. package/dist/menu.esm.js +52 -72
  214. package/dist/menubar.cjs.js +9 -31
  215. package/dist/menubar.esm.js +127 -153
  216. package/dist/meter.cjs.js +4 -9
  217. package/dist/meter.esm.js +6 -11
  218. package/dist/multi-select.cjs.js +53 -40
  219. package/dist/multi-select.esm.js +87 -73
  220. package/dist/navigation-menu.cjs.js +10 -10
  221. package/dist/navigation-menu.esm.js +33 -33
  222. package/dist/number-field.cjs.js +28 -17
  223. package/dist/number-field.esm.js +37 -26
  224. package/dist/number-ticker.cjs.js +4 -4
  225. package/dist/number-ticker.esm.js +10 -10
  226. package/dist/odometer.cjs.js +9 -9
  227. package/dist/odometer.esm.js +17 -17
  228. package/dist/orbiter.cjs.js +11 -28
  229. package/dist/orbiter.esm.js +28 -45
  230. package/dist/overlay-motion-B56x1GoY.js +49 -0
  231. package/dist/overlay-motion-BX3dPLay.mjs +120 -0
  232. package/dist/pagination.cjs.js +28 -25
  233. package/dist/pagination.esm.js +54 -51
  234. package/dist/password-field.cjs.js +39 -34
  235. package/dist/password-field.esm.js +63 -58
  236. package/dist/pin-input.cjs.js +18 -14
  237. package/dist/pin-input.esm.js +24 -20
  238. package/dist/placement-grid.cjs.js +1 -1
  239. package/dist/placement-grid.esm.js +1 -1
  240. package/dist/plugin-panel.cjs.js +1 -1
  241. package/dist/plugin-panel.esm.js +1 -1
  242. package/dist/popover.cjs.js +16 -28
  243. package/dist/popover.esm.js +29 -45
  244. package/dist/portal-DeaM1tYY.mjs +121 -0
  245. package/dist/portal-XbYR3m_q.js +1 -0
  246. package/dist/portal.cjs.js +1 -1
  247. package/dist/portal.d.ts +3 -1
  248. package/dist/portal.d.ts.map +1 -1
  249. package/dist/portal.esm.js +1 -1
  250. package/dist/{positioner-D0VGxtYU.mjs → positioner-BE8Nbho2.mjs} +5 -3
  251. package/dist/{positioner-D_fqyx_j.js → positioner-DZ1FW6A9.js} +1 -1
  252. package/dist/positioner.cjs.js +1 -1
  253. package/dist/positioner.esm.js +1 -1
  254. package/dist/presence.cjs.js +1 -1
  255. package/dist/presence.esm.js +1 -1
  256. package/dist/primitives/overlay-motion.d.ts +47 -0
  257. package/dist/primitives/overlay-motion.d.ts.map +1 -0
  258. package/dist/primitives/positioner.d.ts.map +1 -1
  259. package/dist/progress.cjs.js +11 -16
  260. package/dist/progress.esm.js +37 -42
  261. package/dist/quick-actions.cjs.js +14 -14
  262. package/dist/quick-actions.esm.js +12 -12
  263. package/dist/radio-group.cjs.js +50 -26
  264. package/dist/radio-group.esm.js +53 -29
  265. package/dist/radio.cjs.js +16 -13
  266. package/dist/radio.esm.js +16 -13
  267. package/dist/rating.cjs.js +11 -15
  268. package/dist/rating.esm.js +48 -50
  269. package/dist/{runtime-CFnK53iC.mjs → runtime-BRT7E4A8.mjs} +563 -531
  270. package/dist/runtime-CXw4SGV9.js +5 -0
  271. package/dist/runtime.cjs.js +1 -1
  272. package/dist/runtime.d.ts +3 -2
  273. package/dist/runtime.d.ts.map +1 -1
  274. package/dist/runtime.esm.js +36 -32
  275. package/dist/scroll-area.cjs.js +3 -4
  276. package/dist/scroll-area.esm.js +3 -4
  277. package/dist/section.cjs.js +2 -4
  278. package/dist/section.esm.js +2 -4
  279. package/dist/select.cjs.js +42 -75
  280. package/dist/select.esm.js +57 -89
  281. package/dist/selection-popup.cjs.js +3 -4
  282. package/dist/selection-popup.esm.js +3 -4
  283. package/dist/semantic-tokens.d.ts +17 -0
  284. package/dist/semantic-tokens.d.ts.map +1 -0
  285. package/dist/separator.cjs.js +6 -6
  286. package/dist/separator.esm.js +7 -7
  287. package/dist/sidebar.cjs.js +29 -28
  288. package/dist/sidebar.esm.js +32 -31
  289. package/dist/skeleton.cjs.js +2 -2
  290. package/dist/skeleton.esm.js +2 -2
  291. package/dist/slider.cjs.js +22 -26
  292. package/dist/slider.esm.js +25 -29
  293. package/dist/slot.cjs.js +1 -1
  294. package/dist/slot.esm.js +1 -1
  295. package/dist/sortable.cjs.js +10 -11
  296. package/dist/sortable.esm.js +10 -11
  297. package/dist/spinning-text.cjs.js +4 -13
  298. package/dist/spinning-text.esm.js +4 -13
  299. package/dist/split-button.cjs.js +7 -7
  300. package/dist/split-button.esm.js +17 -16
  301. package/dist/splitter.cjs.js +52 -10
  302. package/dist/splitter.esm.js +55 -13
  303. package/dist/stepper.cjs.js +31 -65
  304. package/dist/stepper.esm.js +32 -66
  305. package/dist/switch.cjs.js +20 -22
  306. package/dist/switch.esm.js +20 -22
  307. package/dist/table.cjs.js +5 -5
  308. package/dist/table.esm.js +20 -20
  309. package/dist/tabs.cjs.js +101 -26
  310. package/dist/tabs.esm.js +187 -112
  311. package/dist/tags-input.cjs.js +43 -17
  312. package/dist/tags-input.esm.js +75 -49
  313. package/dist/textarea.cjs.js +34 -35
  314. package/dist/textarea.esm.js +50 -51
  315. package/dist/theme.d.ts +25 -1
  316. package/dist/theme.d.ts.map +1 -1
  317. package/dist/time-field.cjs.js +8 -8
  318. package/dist/time-field.esm.js +29 -29
  319. package/dist/time-picker.cjs.js +17 -14
  320. package/dist/time-picker.esm.js +28 -25
  321. package/dist/timeline.cjs.js +10 -10
  322. package/dist/timeline.esm.js +7 -7
  323. package/dist/toast.cjs.js +2 -2
  324. package/dist/toast.esm.js +2 -2
  325. package/dist/toggle-group.cjs.js +13 -13
  326. package/dist/toggle-group.esm.js +66 -61
  327. package/dist/toggle.cjs.js +52 -34
  328. package/dist/toggle.esm.js +80 -62
  329. package/dist/toolbar.cjs.js +14 -14
  330. package/dist/toolbar.esm.js +41 -33
  331. package/dist/tooltip.cjs.js +3 -3
  332. package/dist/tooltip.esm.js +39 -33
  333. package/dist/transfer-list.cjs.js +37 -38
  334. package/dist/transfer-list.esm.js +32 -33
  335. package/dist/{tree-B_oQput6.mjs → tree-33fVNnaf.mjs} +6 -5
  336. package/dist/{tree-SivHxcAy.js → tree-Dc02MChE.js} +6 -5
  337. package/dist/tree-item.cjs.js +9 -8
  338. package/dist/tree-item.esm.js +13 -12
  339. package/dist/tree.cjs.js +1 -1
  340. package/dist/tree.esm.js +1 -1
  341. package/dist/{ui-button-Co8Sid6t.mjs → ui-button-C3OmI7Sn.mjs} +152 -154
  342. package/dist/{ui-button-BPrzJScZ.js → ui-button-CnLwXBnx.js} +107 -109
  343. package/dist/wizard.cjs.js +51 -39
  344. package/dist/wizard.esm.js +51 -39
  345. package/package.json +1 -1
  346. package/dist/date-time-utils-y3AvNvGe.js +0 -1
  347. package/dist/portal-DgpQ3Jo1.js +0 -1
  348. package/dist/portal-bR42gHvG.mjs +0 -118
  349. package/dist/runtime-DwE-tizc.js +0 -1
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const x=require("./ElementBase-DxbvhLJs.js"),E=require("./dismissable-layer-DNfrKA20.js"),k=require("./calendar-D-mXMgqc.js"),a=require("./date-time-utils-y3AvNvGe.js"),w=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const x=require("./ElementBase-DxbvhLJs.js"),E=require("./dismissable-layer-DNfrKA20.js"),k=require("./calendar-CzpWDxLc.js"),a=require("./date-time-utils-C-4eHTyy.js"),w=`
2
2
  <svg viewBox="0 0 20 20" class="icon-svg" aria-hidden="true" focusable="false">
3
3
  <path d="M10 2.4a7.6 7.6 0 1 1 0 15.2A7.6 7.6 0 0 1 10 2.4Zm0 1.4a6.2 6.2 0 1 0 0 12.4 6.2 6.2 0 0 0 0-12.4Zm.7 2.4a.7.7 0 0 0-1.4 0v4.1c0 .2.1.4.2.5l2.6 2.5a.7.7 0 1 0 1-1l-2.4-2.3v-3.8Z" fill="currentColor"/>
4
4
  </svg>
@@ -13,12 +13,12 @@
13
13
  `,B=`
14
14
  :host {
15
15
  --ui-dp-bg: color-mix(in srgb, var(--ui-color-surface, #ffffff) 96%, transparent);
16
- --ui-dp-border: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 72%, transparent);
16
+ --ui-dp-border: var(--ui-color-line, var(--ui-color-border, #cbd5e1));
17
17
  --ui-dp-text: var(--ui-color-text, #0f172a);
18
18
  --ui-dp-muted: var(--ui-color-muted, #526175);
19
19
  --ui-dp-accent: var(--ui-color-primary, #2563eb);
20
- --ui-dp-radius: 12px;
21
- --ui-dp-field-error: var(--ui-color-danger, #dc2626);
20
+ --ui-dp-radius: var(--ui-control-radius-2, var(--ui-radius, 6px));
21
+ --ui-dp-field-error: var(--ui-color-danger-text, var(--ui-color-danger, #dc2626));
22
22
  --ui-dp-z: 1600;
23
23
  color-scheme: light dark;
24
24
  display: inline-grid;
@@ -34,11 +34,12 @@
34
34
  .required { color: var(--ui-dp-field-error); font-size: 11px; }
35
35
 
36
36
  .field {
37
+ box-sizing: border-box;
37
38
  display: grid;
38
39
  grid-template-columns: auto minmax(0, 1fr) auto auto;
39
40
  align-items: center;
40
41
  gap: 8px;
41
- min-block-size: 38px;
42
+ min-block-size: var(--ui-control-height-2, 32px);
42
43
  border: 1px solid var(--ui-dp-border);
43
44
  border-radius: var(--ui-dp-radius);
44
45
  background: var(--ui-dp-bg);
@@ -47,8 +48,10 @@
47
48
  }
48
49
 
49
50
  .field:focus-within {
50
- border-color: color-mix(in srgb, var(--ui-dp-accent) 70%, var(--ui-dp-border));
51
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--ui-dp-accent) 22%, transparent);
51
+ border-color: var(--ui-ring-color, var(--ui-dp-accent));
52
+ outline: var(--ui-ring-width, 2px) solid var(--ui-ring-color, var(--ui-dp-accent));
53
+ outline-offset: -1px;
54
+ box-shadow: none;
52
55
  }
53
56
 
54
57
  .input {
@@ -58,7 +61,7 @@
58
61
  color: var(--ui-dp-text);
59
62
  inline-size: 100%;
60
63
  min-inline-size: 0;
61
- padding: 8px 0;
64
+ padding: 0;
62
65
  font: 500 14px/1.35 "Inter", "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
63
66
  }
64
67
 
@@ -79,8 +82,8 @@
79
82
  .btn {
80
83
  border: 0;
81
84
  background: transparent;
82
- inline-size: 28px;
83
- block-size: 28px;
85
+ inline-size: var(--ui-dp-action-size, 24px);
86
+ block-size: var(--ui-dp-action-size, 24px);
84
87
  border-radius: 8px;
85
88
  color: color-mix(in srgb, var(--ui-dp-text) 72%, transparent);
86
89
  cursor: pointer;
@@ -142,11 +145,11 @@
142
145
  `,O=`
143
146
  .ui-time-picker-overlay-host {
144
147
  --ui-dp-bg: color-mix(in srgb, var(--ui-color-surface, #ffffff) 96%, transparent);
145
- --ui-dp-border: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 72%, transparent);
148
+ --ui-dp-border: var(--ui-color-line, var(--ui-color-border, #cbd5e1));
146
149
  --ui-dp-text: var(--ui-color-text, #0f172a);
147
150
  --ui-dp-muted: var(--ui-color-muted, #526175);
148
151
  --ui-dp-accent: var(--ui-color-primary, #2563eb);
149
- --ui-dp-radius: 12px;
152
+ --ui-dp-radius: var(--ui-control-radius-2, var(--ui-radius, 6px));
150
153
  }
151
154
  .overlay { position: fixed; z-index: var(--ui-dp-z, 1600); pointer-events: none; }
152
155
  .panel {
@@ -253,7 +256,7 @@
253
256
  outline-color: Highlight;
254
257
  }
255
258
  }
256
- `;function m(h){return String(h).padStart(2,"0")}function d(h){return h.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function b(h,t,e,i){const s=m(h),n=m(t);return i?`${s}:${n}:${m(e)}`:`${s}:${n}`}class v extends x.ElementBase{constructor(){super(...arguments),this._value=null,this._pending=null,this._draft="",this._inlineError="",this._open=!1,this._syncing=!1,this._overlay=null,this._dismissableLayer=null,this._releaseScrollLock=null,this._isInitialized=!1,this._hasView=!1,this._restoreFocusEl=null,this._overlayKey=null,this._fieldEl=null,this._labelEl=null,this._labelTextEl=null,this._requiredEl=null,this._inputEl=null,this._clearBtn=null,this._toggleBtn=null,this._hintEl=null,this._errorEl=null,this._hiddenInputEl=null,this._schedulePosition=a.rafThrottle(()=>this._positionOverlay()),this._onRootClickBound=t=>this._onRootClick(t),this._onRootInputBound=t=>this._onRootInput(t),this._onRootBlurBound=t=>this._onRootBlur(t),this._onRootKeyDownBound=t=>this._onRootKeyDown(t),this._onOverlayClickBound=t=>this._onOverlayClick(t),this._onOverlayChangeBound=t=>this._onOverlayChange(t),this._onDocumentPointerDownBound=t=>this._onDocumentPointerDown(t),this._onDocumentKeyDownBound=t=>this._onDocumentKeyDown(t),this._onWindowResizeBound=()=>this._schedulePosition.run(),this._onWindowScrollBound=t=>{a.eventOriginatesWithin(t,[this._overlay])||this._schedulePosition.run()}}static get observedAttributes(){return["open","default-open","value","default-value","format","step","seconds","step-seconds","min","max","disabled","readonly","required","name","clearable","allow-input","mode","label","hint","error","translations","locale","variant"]}connectedCallback(){if(super.connectedCallback(),this.root.addEventListener("click",this._onRootClickBound),this.root.addEventListener("input",this._onRootInputBound),this.root.addEventListener("focusout",this._onRootBlurBound),this.root.addEventListener("keydown",this._onRootKeyDownBound),this._hasView&&!this._inputEl&&this._cacheDomRefs(),!this._isInitialized){const t=this._normalizeCanonical(this.getAttribute("value")||this.getAttribute("default-value"));this._value=t,this._pending=t,this._draft=this._formatDisplay(t),this._open=this.hasAttribute("open")||a.isTruthyAttr(this.getAttribute("default-open")),this._isInitialized=!0}this._open&&!this._isInlineMode()&&this._ensureOverlay()}disconnectedCallback(){this.root.removeEventListener("click",this._onRootClickBound),this.root.removeEventListener("input",this._onRootInputBound),this.root.removeEventListener("focusout",this._onRootBlurBound),this.root.removeEventListener("keydown",this._onRootKeyDownBound),this._destroyOverlay(),this._fieldEl=null,this._labelEl=null,this._labelTextEl=null,this._requiredEl=null,this._inputEl=null,this._clearBtn=null,this._toggleBtn=null,this._hintEl=null,this._errorEl=null,this._hiddenInputEl=null,super.disconnectedCallback()}attributeChangedCallback(t,e,i){if(e!==i&&(t==="value"&&!this._syncing&&(this._value=this._normalizeCanonical(i),this._pending=this._value,this._draft=this._formatDisplay(this._value),this._inlineError=""),t==="open"&&!this._syncing&&(this._open=this.hasAttribute("open"),this._syncOverlay("attribute")),t==="mode"&&this._syncOverlay("attribute"),t==="disabled"&&this.hasAttribute("disabled")&&this._setOpen(!1,"outside"),!!this.isConnected)){if(!this._hasView){this.requestRender();return}this._updateHostState()}}_isInlineMode(){return(this.getAttribute("mode")||"popover")==="inline"}_isMobileSheet(){return a.shouldUseMobileSheet(this.getAttribute("mode"))}_isDisabled(){return this.hasAttribute("disabled")}_isReadonly(){return this.hasAttribute("readonly")}_allowInput(){return a.isTruthyAttr(this.getAttribute("allow-input"),!0)}_clearable(){return a.isTruthyAttr(this.getAttribute("clearable"),!0)}_withSeconds(){return this.hasAttribute("seconds")}_is12h(){return(this.getAttribute("format")||"24h")==="12h"}_minuteStep(){const t=Number(this.getAttribute("step")||5),e=5;return!Number.isFinite(t)||t<1?e:Math.min(60,Math.trunc(t))}_secondStep(){const t=Number(this.getAttribute("step-seconds")||1);return!Number.isFinite(t)||t<1?1:Math.min(60,Math.trunc(t))}_translations(){return k.resolveDateTimeTranslations(this.getAttribute("locale"),this.getAttribute("translations"))}_normalizeCanonical(t){if(!t)return null;const e=a.parseTimeInput(t);return e?b(e.hours,e.minutes,e.seconds,this._withSeconds()):null}_minTime(){return this._normalizeCanonical(this.getAttribute("min"))}_maxTime(){return this._normalizeCanonical(this.getAttribute("max"))}_formatDisplay(t){return t?this._is12h()?a.to12hDisplay(t,this.getAttribute("locale")||"en-US"):t:""}_syncOpenAttribute(t){this._syncing=!0;try{t?this.hasAttribute("open")||this.setAttribute("open",""):this.hasAttribute("open")&&this.removeAttribute("open")}finally{this._syncing=!1}}_syncValueAttribute(t){this._syncing=!0;try{t?this.getAttribute("value")!==t&&this.setAttribute("value",t):this.hasAttribute("value")&&this.removeAttribute("value")}finally{this._syncing=!1}}_emitInput(t){const e={mode:"time",value:this._pending,source:t};this.dispatchEvent(new CustomEvent("input",{detail:e,bubbles:!0,composed:!0}))}_emitChange(t){const e={mode:"time",value:this._value,source:t};this.dispatchEvent(new CustomEvent("change",{detail:e,bubbles:!0,composed:!0}))}_emitInvalid(t,e){this.dispatchEvent(new CustomEvent("invalid",{detail:{raw:t,reason:e},bubbles:!0,composed:!0}))}_clampToBounds(t){if(!t)return null;const e=this._minTime(),i=this._maxTime();let s=t;return e&&a.compareTimes(s,e)<0&&(s=e),i&&a.compareTimes(s,i)>0&&(s=i),s}_commit(t,e){if(this._isDisabled()||this._isReadonly())return;const i=this._clampToBounds(this._normalizeCanonical(t));this._value=i,this._pending=i,this._draft=this._formatDisplay(i),this._inlineError="",this._syncValueAttribute(i),this._emitInput(e),this._emitChange(e),this._updateHostState()}_setOpen(t,e){this._isDisabled()||this._open!==t&&(this._open=t,this._syncOpenAttribute(t),this._syncOverlay(e),this._updateHostState(),this.dispatchEvent(new CustomEvent(t?"open":"close",{bubbles:!0,composed:!0})))}_syncOverlay(t){if(this._isInlineMode()){this._destroyOverlay();return}if(this._open){this._ensureOverlay(),this._syncOverlayState();return}this._destroyOverlay();const e=this._restoreFocusEl;if(this._restoreFocusEl=null,e&&e.isConnected)try{e.focus()}catch{}}_ensureOverlay(){if(this._overlay||typeof document>"u")return;const t=document.createElement("div");t.className="ui-time-picker-overlay-host",t.style.position="fixed",t.style.left="0",t.style.top="0",t.style.pointerEvents="none",t.addEventListener("click",this._onOverlayClickBound),t.addEventListener("change",this._onOverlayChangeBound),document.body.appendChild(t),this._overlay=t,this._syncOverlayHostZIndex(),document.addEventListener("pointerdown",this._onDocumentPointerDownBound,!0),document.addEventListener("keydown",this._onDocumentKeyDownBound),window.addEventListener("resize",this._onWindowResizeBound),window.addEventListener("scroll",this._onWindowScrollBound,{passive:!0,capture:!0}),this._isMobileSheet()&&(this._releaseScrollLock=a.lockBodyScroll())}_syncOverlayHostZIndex(){if(!this._overlay||typeof window>"u")return;const t=window.getComputedStyle(this).getPropertyValue("--ui-dp-z").trim();this._overlay.style.zIndex=t||"1600"}_destroyOverlay(){this._dismissableLayer?.destroy(),this._dismissableLayer=null,this._overlay&&(this._schedulePosition.cancel(),document.removeEventListener("pointerdown",this._onDocumentPointerDownBound,!0),document.removeEventListener("keydown",this._onDocumentKeyDownBound),window.removeEventListener("resize",this._onWindowResizeBound),window.removeEventListener("scroll",this._onWindowScrollBound,!0),this._overlay.removeEventListener("click",this._onOverlayClickBound),this._overlay.removeEventListener("change",this._onOverlayChangeBound),this._overlay.parentElement&&this._overlay.parentElement.removeChild(this._overlay),this._overlay=null,this._overlayKey=null,this._releaseScrollLock&&(this._releaseScrollLock(),this._releaseScrollLock=null))}_syncDismissableLayer(){if(this._dismissableLayer?.destroy(),this._dismissableLayer=null,!this._open||!this._overlay)return;const t=this._overlay.querySelector(".panel, .sheet");t&&(this._dismissableLayer=E.createDismissableLayer({node:t,trigger:this._fieldEl,closeOnEscape:!0,closeOnPointerOutside:!0,closeOnFocusOutside:!1,onBeforeDismiss:e=>e==="escape-key"?(this._setOpen(!1,"escape"),!1):(e==="outside-pointer"&&this._setOpen(!1,"outside"),!1)}))}_positionOverlay(){if(!this._overlay||!this._open||this._isMobileSheet())return;const t=this._fieldEl,e=this._overlay.querySelector(".panel");if(!t||!e)return;const i=e.getAttribute("data-placement"),s=a.computePopoverPosition(t.getBoundingClientRect(),e.getBoundingClientRect(),8,8,i==="top"?"top":i==="bottom"?"bottom":null);e.style.position="absolute",e.style.top=`${Math.round(s.top)}px`,e.style.left=`${Math.round(s.left)}px`,e.setAttribute("data-placement",s.placement)}_timeParts(t){const e=a.parseTimeInput(t||"00:00")||{hours:0,minutes:0,seconds:0},i=e.hours>=12?"pm":"am";return{hours:e.hours,minutes:e.minutes,seconds:e.seconds,meridiem:i}}_buildOverlayContent(t){const e=this._translations(),i=this._timeParts(this._pending),s=this._is12h(),n=this._withSeconds(),r=s?i.hours%12||12:i.hours,o=this._minuteStep(),u=this._secondStep(),l=Array.from({length:s?12:24},(f,_)=>{const c=s?_+1:_;return`<option value="${c}" ${c===r?"selected":""}>${m(c)}</option>`}).join(""),p=Array.from({length:Math.ceil(60/o)},(f,_)=>{const c=Math.min(59,_*o);return`<option value="${c}" ${c===i.minutes?"selected":""}>${m(c)}</option>`}).join(""),y=Array.from({length:Math.ceil(60/u)},(f,_)=>{const c=Math.min(59,_*u);return`<option value="${c}" ${c===i.seconds?"selected":""}>${m(c)}</option>`}).join(""),g=`
259
+ `;function m(h){return String(h).padStart(2,"0")}function d(h){return h.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function b(h,t,e,i){const s=m(h),n=m(t);return i?`${s}:${n}:${m(e)}`:`${s}:${n}`}class f extends x.ElementBase{constructor(){super(...arguments),this._value=null,this._pending=null,this._draft="",this._inlineError="",this._open=!1,this._syncing=!1,this._overlay=null,this._dismissableLayer=null,this._releaseScrollLock=null,this._isInitialized=!1,this._hasView=!1,this._restoreFocusEl=null,this._overlayKey=null,this._fieldEl=null,this._labelEl=null,this._labelTextEl=null,this._requiredEl=null,this._inputEl=null,this._clearBtn=null,this._toggleBtn=null,this._hintEl=null,this._errorEl=null,this._hiddenInputEl=null,this._schedulePosition=a.rafThrottle(()=>this._positionOverlay()),this._onRootClickBound=t=>this._onRootClick(t),this._onRootInputBound=t=>this._onRootInput(t),this._onRootBlurBound=t=>this._onRootBlur(t),this._onRootKeyDownBound=t=>this._onRootKeyDown(t),this._onOverlayClickBound=t=>this._onOverlayClick(t),this._onOverlayChangeBound=t=>this._onOverlayChange(t),this._onDocumentPointerDownBound=t=>this._onDocumentPointerDown(t),this._onDocumentKeyDownBound=t=>this._onDocumentKeyDown(t),this._onWindowResizeBound=()=>this._schedulePosition.run(),this._onWindowScrollBound=t=>{a.eventOriginatesWithin(t,[this._overlay])||this._schedulePosition.run()}}static get observedAttributes(){return["open","default-open","value","default-value","format","step","seconds","step-seconds","min","max","disabled","readonly","required","name","clearable","allow-input","mode","label","hint","error","translations","locale","variant"]}connectedCallback(){if(super.connectedCallback(),this.root.addEventListener("click",this._onRootClickBound),this.root.addEventListener("input",this._onRootInputBound),this.root.addEventListener("focusout",this._onRootBlurBound),this.root.addEventListener("keydown",this._onRootKeyDownBound),this._hasView&&!this._inputEl&&this._cacheDomRefs(),!this._isInitialized){const t=this._normalizeCanonical(this.getAttribute("value")||this.getAttribute("default-value"));this._value=t,this._pending=t,this._draft=this._formatDisplay(t),this._open=this.hasAttribute("open")||a.isTruthyAttr(this.getAttribute("default-open")),this._isInitialized=!0}this._open&&!this._isInlineMode()&&this._ensureOverlay()}disconnectedCallback(){this.root.removeEventListener("click",this._onRootClickBound),this.root.removeEventListener("input",this._onRootInputBound),this.root.removeEventListener("focusout",this._onRootBlurBound),this.root.removeEventListener("keydown",this._onRootKeyDownBound),this._destroyOverlay(),this._fieldEl=null,this._labelEl=null,this._labelTextEl=null,this._requiredEl=null,this._inputEl=null,this._clearBtn=null,this._toggleBtn=null,this._hintEl=null,this._errorEl=null,this._hiddenInputEl=null,super.disconnectedCallback()}attributeChangedCallback(t,e,i){if(e!==i&&(t==="value"&&!this._syncing&&(this._value=this._normalizeCanonical(i),this._pending=this._value,this._draft=this._formatDisplay(this._value),this._inlineError=""),t==="open"&&!this._syncing&&(this._open=this.hasAttribute("open"),this._syncOverlay("attribute")),t==="mode"&&this._syncOverlay("attribute"),t==="disabled"&&this.hasAttribute("disabled")&&this._setOpen(!1,"outside"),!!this.isConnected)){if(!this._hasView){this.requestRender();return}this._updateHostState()}}_isInlineMode(){return(this.getAttribute("mode")||"popover")==="inline"}_isMobileSheet(){return a.shouldUseMobileSheet(this.getAttribute("mode"))}_isDisabled(){return this.hasAttribute("disabled")}_isReadonly(){return this.hasAttribute("readonly")}_allowInput(){return a.isTruthyAttr(this.getAttribute("allow-input"),!0)}_clearable(){return a.isTruthyAttr(this.getAttribute("clearable"),!0)}_withSeconds(){return this.hasAttribute("seconds")}_is12h(){return(this.getAttribute("format")||"24h")==="12h"}_minuteStep(){const t=Number(this.getAttribute("step")||5),e=5;return!Number.isFinite(t)||t<1?e:Math.min(60,Math.trunc(t))}_secondStep(){const t=Number(this.getAttribute("step-seconds")||1);return!Number.isFinite(t)||t<1?1:Math.min(60,Math.trunc(t))}_translations(){return k.resolveDateTimeTranslations(this.getAttribute("locale"),this.getAttribute("translations"))}_normalizeCanonical(t){if(!t)return null;const e=a.parseTimeInput(t);return e?b(e.hours,e.minutes,e.seconds,this._withSeconds()):null}_minTime(){return this._normalizeCanonical(this.getAttribute("min"))}_maxTime(){return this._normalizeCanonical(this.getAttribute("max"))}_formatDisplay(t){return t?this._is12h()?a.to12hDisplay(t,this.getAttribute("locale")||"en-US"):t:""}_syncOpenAttribute(t){this._syncing=!0;try{t?this.hasAttribute("open")||this.setAttribute("open",""):this.hasAttribute("open")&&this.removeAttribute("open")}finally{this._syncing=!1}}_syncValueAttribute(t){this._syncing=!0;try{t?this.getAttribute("value")!==t&&this.setAttribute("value",t):this.hasAttribute("value")&&this.removeAttribute("value")}finally{this._syncing=!1}}_emitInput(t){const e={mode:"time",value:this._pending,source:t};this.dispatchEvent(new CustomEvent("input",{detail:e,bubbles:!0,composed:!0}))}_emitChange(t){const e={mode:"time",value:this._value,source:t};this.dispatchEvent(new CustomEvent("change",{detail:e,bubbles:!0,composed:!0}))}_emitInvalid(t,e){this.dispatchEvent(new CustomEvent("invalid",{detail:{raw:t,reason:e},bubbles:!0,composed:!0}))}_clampToBounds(t){if(!t)return null;const e=this._minTime(),i=this._maxTime();let s=t;return e&&a.compareTimes(s,e)<0&&(s=e),i&&a.compareTimes(s,i)>0&&(s=i),s}_commit(t,e){if(this._isDisabled()||this._isReadonly())return;const i=this._clampToBounds(this._normalizeCanonical(t));this._value=i,this._pending=i,this._draft=this._formatDisplay(i),this._inlineError="",this._syncValueAttribute(i),this._emitInput(e),this._emitChange(e),this._updateHostState()}_setOpen(t,e){this._isDisabled()||this._open!==t&&(this._open=t,this._syncOpenAttribute(t),this._syncOverlay(e),this._updateHostState(),this.dispatchEvent(new CustomEvent(t?"open":"close",{bubbles:!0,composed:!0})))}_syncOverlay(t){if(this._isInlineMode()){this._destroyOverlay();return}if(this._open){this._ensureOverlay(),this._syncOverlayState();return}this._destroyOverlay();const e=this._restoreFocusEl;if(this._restoreFocusEl=null,e&&e.isConnected)try{e.focus()}catch{}}_ensureOverlay(){if(this._overlay||typeof document>"u")return;const t=document.createElement("div");t.className="ui-time-picker-overlay-host",t.style.position="fixed",t.style.left="0",t.style.top="0",t.style.pointerEvents="none",t.addEventListener("click",this._onOverlayClickBound),t.addEventListener("change",this._onOverlayChangeBound),document.body.appendChild(t),this._overlay=t,this._syncOverlayHostZIndex(),document.addEventListener("pointerdown",this._onDocumentPointerDownBound,!0),document.addEventListener("keydown",this._onDocumentKeyDownBound),window.addEventListener("resize",this._onWindowResizeBound),window.addEventListener("scroll",this._onWindowScrollBound,{passive:!0,capture:!0}),this._isMobileSheet()&&(this._releaseScrollLock=a.lockBodyScroll())}_syncOverlayHostZIndex(){if(!this._overlay||typeof window>"u")return;const t=window.getComputedStyle(this).getPropertyValue("--ui-dp-z").trim();this._overlay.style.zIndex=t||"1600"}_destroyOverlay(){this._dismissableLayer?.destroy(),this._dismissableLayer=null,this._overlay&&(this._schedulePosition.cancel(),document.removeEventListener("pointerdown",this._onDocumentPointerDownBound,!0),document.removeEventListener("keydown",this._onDocumentKeyDownBound),window.removeEventListener("resize",this._onWindowResizeBound),window.removeEventListener("scroll",this._onWindowScrollBound,!0),this._overlay.removeEventListener("click",this._onOverlayClickBound),this._overlay.removeEventListener("change",this._onOverlayChangeBound),this._overlay.parentElement&&this._overlay.parentElement.removeChild(this._overlay),this._overlay=null,this._overlayKey=null,this._releaseScrollLock&&(this._releaseScrollLock(),this._releaseScrollLock=null))}_syncDismissableLayer(){if(this._dismissableLayer?.destroy(),this._dismissableLayer=null,!this._open||!this._overlay)return;const t=this._overlay.querySelector(".panel, .sheet");t&&(this._dismissableLayer=E.createDismissableLayer({node:t,trigger:this._fieldEl,closeOnEscape:!0,closeOnPointerOutside:!0,closeOnFocusOutside:!1,onBeforeDismiss:e=>e==="escape-key"?(this._setOpen(!1,"escape"),!1):(e==="outside-pointer"&&this._setOpen(!1,"outside"),!1)}))}_positionOverlay(){if(!this._overlay||!this._open||this._isMobileSheet())return;const t=this._fieldEl,e=this._overlay.querySelector(".panel");if(!t||!e)return;const i=e.getAttribute("data-placement"),s=a.computePopoverPosition(t.getBoundingClientRect(),e.getBoundingClientRect(),8,8,i==="top"?"top":i==="bottom"?"bottom":null);e.style.position="absolute",e.style.top=`${Math.round(s.top)}px`,e.style.left=`${Math.round(s.left)}px`,e.setAttribute("data-placement",s.placement)}_timeParts(t){const e=a.parseTimeInput(t||"00:00")||{hours:0,minutes:0,seconds:0},i=e.hours>=12?"pm":"am";return{hours:e.hours,minutes:e.minutes,seconds:e.seconds,meridiem:i}}_buildOverlayContent(t){const e=this._translations(),i=this._timeParts(this._pending),s=this._is12h(),n=this._withSeconds(),r=s?i.hours%12||12:i.hours,o=this._minuteStep(),u=this._secondStep(),l=Array.from({length:s?12:24},(v,_)=>{const c=s?_+1:_;return`<option value="${c}" ${c===r?"selected":""}>${m(c)}</option>`}).join(""),p=Array.from({length:Math.ceil(60/o)},(v,_)=>{const c=Math.min(59,_*o);return`<option value="${c}" ${c===i.minutes?"selected":""}>${m(c)}</option>`}).join(""),y=Array.from({length:Math.ceil(60/u)},(v,_)=>{const c=Math.min(59,_*u);return`<option value="${c}" ${c===i.seconds?"selected":""}>${m(c)}</option>`}).join(""),g=`
257
260
  <div class="pickers" data-seconds="${n?"true":"false"}" data-ampm="${s?"true":"false"}">
258
261
  <div class="picker"><label>${d(e.hour)}</label><select data-segment="hours">${l}</select></div>
259
262
  <div class="picker"><label>${d(e.minute)}</label><select data-segment="minutes">${p}</select></div>
@@ -289,4 +292,4 @@
289
292
  <div class="error" part="error" role="alert"></div>
290
293
  <input class="hidden-input" type="hidden" disabled />
291
294
  </div>
292
- `,{force:!0}),this._cacheDomRefs(),this._hasView=!0),this._updateHostState()}shouldRenderOnAttributeChange(t,e,i){return!1}}typeof customElements<"u"&&!customElements.get("ui-time-picker")&&customElements.define("ui-time-picker",v);exports.UITimePicker=v;
295
+ `,{force:!0}),this._cacheDomRefs(),this._hasView=!0),this._updateHostState()}shouldRenderOnAttributeChange(t,e,i){return!1}}typeof customElements<"u"&&!customElements.get("ui-time-picker")&&customElements.define("ui-time-picker",f);exports.UITimePicker=f;
@@ -1,28 +1,28 @@
1
1
  import { E } from "./ElementBase-BeZT54Hj.mjs";
2
2
  import { c as k } from "./dismissable-layer-BmPIoK80.mjs";
3
- import { r as w } from "./calendar-B3PUKHQm.mjs";
4
- import { r as S, e as C, i as b, s as B, q as f, t as O, w as y, l as I, c as A } from "./date-time-utils-BTlxnz5j.mjs";
3
+ import { r as w } from "./calendar-DkSDFg33.mjs";
4
+ import { r as S, e as C, i as b, s as B, q as v, t as O, w as y, l as I, c as A } from "./date-time-utils-zAx4ghvC.mjs";
5
5
  const D = `
6
6
  <svg viewBox="0 0 20 20" class="icon-svg" aria-hidden="true" focusable="false">
7
7
  <path d="M10 2.4a7.6 7.6 0 1 1 0 15.2A7.6 7.6 0 0 1 10 2.4Zm0 1.4a6.2 6.2 0 1 0 0 12.4 6.2 6.2 0 0 0 0-12.4Zm.7 2.4a.7.7 0 0 0-1.4 0v4.1c0 .2.1.4.2.5l2.6 2.5a.7.7 0 1 0 1-1l-2.4-2.3v-3.8Z" fill="currentColor"/>
8
8
  </svg>
9
- `, $ = `
9
+ `, z = `
10
10
  <svg viewBox="0 0 20 20" class="icon-svg" aria-hidden="true" focusable="false">
11
11
  <path d="m6 6 8 8M14 6l-8 8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
12
12
  </svg>
13
- `, M = `
13
+ `, $ = `
14
14
  <svg viewBox="0 0 20 20" class="icon-svg" aria-hidden="true" focusable="false">
15
15
  <path d="m5.6 7.6 4.4 4.6 4.4-4.6" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
16
16
  </svg>
17
- `, z = `
17
+ `, M = `
18
18
  :host {
19
19
  --ui-dp-bg: color-mix(in srgb, var(--ui-color-surface, #ffffff) 96%, transparent);
20
- --ui-dp-border: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 72%, transparent);
20
+ --ui-dp-border: var(--ui-color-line, var(--ui-color-border, #cbd5e1));
21
21
  --ui-dp-text: var(--ui-color-text, #0f172a);
22
22
  --ui-dp-muted: var(--ui-color-muted, #526175);
23
23
  --ui-dp-accent: var(--ui-color-primary, #2563eb);
24
- --ui-dp-radius: 12px;
25
- --ui-dp-field-error: var(--ui-color-danger, #dc2626);
24
+ --ui-dp-radius: var(--ui-control-radius-2, var(--ui-radius, 6px));
25
+ --ui-dp-field-error: var(--ui-color-danger-text, var(--ui-color-danger, #dc2626));
26
26
  --ui-dp-z: 1600;
27
27
  color-scheme: light dark;
28
28
  display: inline-grid;
@@ -38,11 +38,12 @@ const D = `
38
38
  .required { color: var(--ui-dp-field-error); font-size: 11px; }
39
39
 
40
40
  .field {
41
+ box-sizing: border-box;
41
42
  display: grid;
42
43
  grid-template-columns: auto minmax(0, 1fr) auto auto;
43
44
  align-items: center;
44
45
  gap: 8px;
45
- min-block-size: 38px;
46
+ min-block-size: var(--ui-control-height-2, 32px);
46
47
  border: 1px solid var(--ui-dp-border);
47
48
  border-radius: var(--ui-dp-radius);
48
49
  background: var(--ui-dp-bg);
@@ -51,8 +52,10 @@ const D = `
51
52
  }
52
53
 
53
54
  .field:focus-within {
54
- border-color: color-mix(in srgb, var(--ui-dp-accent) 70%, var(--ui-dp-border));
55
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--ui-dp-accent) 22%, transparent);
55
+ border-color: var(--ui-ring-color, var(--ui-dp-accent));
56
+ outline: var(--ui-ring-width, 2px) solid var(--ui-ring-color, var(--ui-dp-accent));
57
+ outline-offset: -1px;
58
+ box-shadow: none;
56
59
  }
57
60
 
58
61
  .input {
@@ -62,7 +65,7 @@ const D = `
62
65
  color: var(--ui-dp-text);
63
66
  inline-size: 100%;
64
67
  min-inline-size: 0;
65
- padding: 8px 0;
68
+ padding: 0;
66
69
  font: 500 14px/1.35 "Inter", "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
67
70
  }
68
71
 
@@ -83,8 +86,8 @@ const D = `
83
86
  .btn {
84
87
  border: 0;
85
88
  background: transparent;
86
- inline-size: 28px;
87
- block-size: 28px;
89
+ inline-size: var(--ui-dp-action-size, 24px);
90
+ block-size: var(--ui-dp-action-size, 24px);
88
91
  border-radius: 8px;
89
92
  color: color-mix(in srgb, var(--ui-dp-text) 72%, transparent);
90
93
  cursor: pointer;
@@ -146,11 +149,11 @@ const D = `
146
149
  `, L = `
147
150
  .ui-time-picker-overlay-host {
148
151
  --ui-dp-bg: color-mix(in srgb, var(--ui-color-surface, #ffffff) 96%, transparent);
149
- --ui-dp-border: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 72%, transparent);
152
+ --ui-dp-border: var(--ui-color-line, var(--ui-color-border, #cbd5e1));
150
153
  --ui-dp-text: var(--ui-color-text, #0f172a);
151
154
  --ui-dp-muted: var(--ui-color-muted, #526175);
152
155
  --ui-dp-accent: var(--ui-color-primary, #2563eb);
153
- --ui-dp-radius: 12px;
156
+ --ui-dp-radius: var(--ui-control-radius-2, var(--ui-radius, 6px));
154
157
  }
155
158
  .overlay { position: fixed; z-index: var(--ui-dp-z, 1600); pointer-events: none; }
156
159
  .panel {
@@ -360,7 +363,7 @@ class T extends E {
360
363
  }
361
364
  _normalizeCanonical(t) {
362
365
  if (!t) return null;
363
- const e = f(t);
366
+ const e = v(t);
364
367
  return e ? m(e.hours, e.minutes, e.seconds, this._withSeconds()) : null;
365
368
  }
366
369
  _minTime() {
@@ -469,7 +472,7 @@ class T extends E {
469
472
  e.style.position = "absolute", e.style.top = `${Math.round(s.top)}px`, e.style.left = `${Math.round(s.left)}px`, e.setAttribute("data-placement", s.placement);
470
473
  }
471
474
  _timeParts(t) {
472
- const e = f(t || "00:00") || { hours: 0, minutes: 0, seconds: 0 }, i = e.hours >= 12 ? "pm" : "am";
475
+ const e = v(t || "00:00") || { hours: 0, minutes: 0, seconds: 0 }, i = e.hours >= 12 ? "pm" : "am";
473
476
  return {
474
477
  hours: e.hours,
475
478
  minutes: e.minutes,
@@ -478,13 +481,13 @@ class T extends E {
478
481
  };
479
482
  }
480
483
  _buildOverlayContent(t) {
481
- const e = this._translations(), i = this._timeParts(this._pending), s = this._is12h(), n = this._withSeconds(), r = s ? i.hours % 12 || 12 : i.hours, o = this._minuteStep(), l = this._secondStep(), a = Array.from({ length: s ? 12 : 24 }, (v, p) => {
484
+ const e = this._translations(), i = this._timeParts(this._pending), s = this._is12h(), n = this._withSeconds(), r = s ? i.hours % 12 || 12 : i.hours, o = this._minuteStep(), l = this._secondStep(), a = Array.from({ length: s ? 12 : 24 }, (f, p) => {
482
485
  const u = s ? p + 1 : p;
483
486
  return `<option value="${u}" ${u === r ? "selected" : ""}>${_(u)}</option>`;
484
- }).join(""), h = Array.from({ length: Math.ceil(60 / o) }, (v, p) => {
487
+ }).join(""), h = Array.from({ length: Math.ceil(60 / o) }, (f, p) => {
485
488
  const u = Math.min(59, p * o);
486
489
  return `<option value="${u}" ${u === i.minutes ? "selected" : ""}>${_(u)}</option>`;
487
- }).join(""), g = Array.from({ length: Math.ceil(60 / l) }, (v, p) => {
490
+ }).join(""), g = Array.from({ length: Math.ceil(60 / l) }, (f, p) => {
488
491
  const u = Math.min(59, p * l);
489
492
  return `<option value="${u}" ${u === i.seconds ? "selected" : ""}>${_(u)}</option>`;
490
493
  }).join(""), x = `
@@ -598,7 +601,7 @@ class T extends E {
598
601
  this._commit(i, "blur");
599
602
  }
600
603
  _stepBy(t) {
601
- const e = f(this._pending || this._value || "00:00") || { hours: 0, minutes: 0, seconds: 0 }, i = this._minuteStep() * t, s = ((e.hours * 60 + e.minutes + i) % 1440 + 1440) % 1440, n = Math.floor(s / 60), r = s % 60, o = m(n, r, e.seconds, this._withSeconds());
604
+ const e = v(this._pending || this._value || "00:00") || { hours: 0, minutes: 0, seconds: 0 }, i = this._minuteStep() * t, s = ((e.hours * 60 + e.minutes + i) % 1440 + 1440) % 1440, n = Math.floor(s / 60), r = s % 60, o = m(n, r, e.seconds, this._withSeconds());
602
605
  this._pending = this._clampToBounds(o), this._emitInput("keyboard-step"), this._updateHostState();
603
606
  }
604
607
  _onRootKeyDown(t) {
@@ -676,7 +679,7 @@ class T extends E {
676
679
  }
677
680
  render() {
678
681
  this._hasView || (this.setContent(`
679
- <style>${z}</style>
682
+ <style>${M}</style>
680
683
  <div class="root">
681
684
  <label class="label" part="label">
682
685
  <span class="label-text"></span>
@@ -685,8 +688,8 @@ class T extends E {
685
688
  <div class="field" part="field input">
686
689
  <span class="icon" part="icon">${D}</span>
687
690
  <input class="input" part="input" />
688
- <button type="button" class="btn" part="clear" data-action="clear">${$}</button>
689
- <button type="button" class="btn" part="toggle" data-action="toggle">${M}</button>
691
+ <button type="button" class="btn" part="clear" data-action="clear">${z}</button>
692
+ <button type="button" class="btn" part="toggle" data-action="toggle">${$}</button>
690
693
  </div>
691
694
  <div class="hint" part="hint"></div>
692
695
  <div class="error" part="error" role="alert"></div>
@@ -1,7 +1,7 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("./ElementBase-DxbvhLJs.js"),m=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("./ElementBase-DxbvhLJs.js"),u=`
2
2
  :host {
3
3
  --ui-timeline-bg: color-mix(in srgb, var(--ui-color-surface, #ffffff) 95%, transparent);
4
- --ui-timeline-border: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 76%, transparent);
4
+ --ui-timeline-border: var(--ui-color-line, color-mix(in srgb, var(--ui-color-border, #cbd5e1) 76%, transparent));
5
5
  --ui-timeline-text: var(--ui-color-text, #0f172a);
6
6
  --ui-timeline-muted: var(--ui-color-muted, #526175);
7
7
  --ui-timeline-accent: var(--ui-color-primary, #2563eb);
@@ -14,11 +14,11 @@
14
14
  }
15
15
 
16
16
  .frame {
17
- border: 1px solid var(--ui-timeline-border);
18
- border-radius: 14px;
19
- background: var(--ui-timeline-bg);
20
- padding: 14px;
21
- box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
17
+ border: 0;
18
+ border-radius: 0;
19
+ background: transparent;
20
+ padding: 0;
21
+ box-shadow: none;
22
22
  }
23
23
 
24
24
  .list {
@@ -62,7 +62,7 @@
62
62
  margin-top: 3px;
63
63
  border-radius: 999px;
64
64
  background: var(--dot, var(--ui-timeline-accent));
65
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--dot, var(--ui-timeline-accent)) 20%, transparent);
65
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--dot, var(--ui-timeline-accent)) 18%, var(--ui-color-background, #ffffff));
66
66
  }
67
67
 
68
68
  .item[data-active="true"] .dot::after {
@@ -181,7 +181,7 @@
181
181
  background: Highlight;
182
182
  }
183
183
  }
184
- `,o={default:"var(--ui-color-primary, #2563eb)",info:"var(--ui-color-info, #0e7490)",success:"var(--ui-color-success, #15803d)",warning:"var(--ui-color-warning, #b45309)",danger:"var(--ui-color-danger, #dc2626)"};function a(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function u(n){if(!n)return[];try{const t=JSON.parse(n);return Array.isArray(t)?t.map(e=>{if(!e||typeof e!="object")return null;const r=String(e.title||"").trim();return r?{title:r,description:e.description?String(e.description):void 0,time:e.time?String(e.time):void 0,tone:e.tone,active:!!e.active}:null}).filter(Boolean):[]}catch{return[]}}class s extends d.ElementBase{static get observedAttributes(){return["items","variant","headless"]}render(){const t=u(this.getAttribute("items")),e=t.some(i=>i.active),r=t.length?t.map((i,l)=>{const c=o[i.tone||"default"]||o.default;return`
184
+ `,o={default:"var(--ui-color-primary, #2563eb)",info:"var(--ui-color-info, #0e7490)",success:"var(--ui-color-success, #15803d)",warning:"var(--ui-color-warning, #b45309)",danger:"var(--ui-color-danger, #dc2626)"};function a(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function m(n){if(!n)return[];try{const t=JSON.parse(n);return Array.isArray(t)?t.map(e=>{if(!e||typeof e!="object")return null;const r=String(e.title||"").trim();return r?{title:r,description:e.description?String(e.description):void 0,time:e.time?String(e.time):void 0,tone:e.tone,active:!!e.active}:null}).filter(Boolean):[]}catch{return[]}}class s extends d.ElementBase{static get observedAttributes(){return["items","variant","headless"]}render(){const t=m(this.getAttribute("items")),e=t.some(i=>i.active),r=t.length?t.map((i,l)=>{const c=o[i.tone||"default"]||o.default;return`
185
185
  <li class="item" part="item" data-active="${(e?!!i.active:l===0)?"true":"false"}">
186
186
  <div class="rail"><span class="dot" style="--dot:${c}"></span></div>
187
187
  <article class="content">
@@ -191,7 +191,7 @@
191
191
  </article>
192
192
  </li>
193
193
  `}).join(""):'<div class="description">No timeline entries</div>';this.setContent(`
194
- <style>${m}</style>
194
+ <style>${u}</style>
195
195
  <section class="frame" part="frame">
196
196
  <ol class="list" part="list">${r}</ol>
197
197
  </section>
@@ -2,7 +2,7 @@ import { E as c } from "./ElementBase-BeZT54Hj.mjs";
2
2
  const d = `
3
3
  :host {
4
4
  --ui-timeline-bg: color-mix(in srgb, var(--ui-color-surface, #ffffff) 95%, transparent);
5
- --ui-timeline-border: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 76%, transparent);
5
+ --ui-timeline-border: var(--ui-color-line, color-mix(in srgb, var(--ui-color-border, #cbd5e1) 76%, transparent));
6
6
  --ui-timeline-text: var(--ui-color-text, #0f172a);
7
7
  --ui-timeline-muted: var(--ui-color-muted, #526175);
8
8
  --ui-timeline-accent: var(--ui-color-primary, #2563eb);
@@ -15,11 +15,11 @@ const d = `
15
15
  }
16
16
 
17
17
  .frame {
18
- border: 1px solid var(--ui-timeline-border);
19
- border-radius: 14px;
20
- background: var(--ui-timeline-bg);
21
- padding: 14px;
22
- box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
18
+ border: 0;
19
+ border-radius: 0;
20
+ background: transparent;
21
+ padding: 0;
22
+ box-shadow: none;
23
23
  }
24
24
 
25
25
  .list {
@@ -63,7 +63,7 @@ const d = `
63
63
  margin-top: 3px;
64
64
  border-radius: 999px;
65
65
  background: var(--dot, var(--ui-timeline-accent));
66
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--dot, var(--ui-timeline-accent)) 20%, transparent);
66
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--dot, var(--ui-timeline-accent)) 18%, var(--ui-color-background, #ffffff));
67
67
  }
68
68
 
69
69
  .item[data-active="true"] .dot::after {
package/dist/toast.cjs.js CHANGED
@@ -214,7 +214,7 @@
214
214
  <style>${h}</style>
215
215
  <div class="toast-list" aria-live="polite" part="list">
216
216
  ${this._toasts.map(t=>{const e=t.ariaLive==="assertive"||t.tone==="error"?"alert":"status",o=t.duration>0?'<span class="meta" part="meta">Auto-dismiss</span>':'<span class="meta" part="meta">Persistent</span>';return`
217
- <article
217
+ <div
218
218
  class="toast show${t.closing?" closing":""}"
219
219
  part="toast"
220
220
  data-toast-id="${t.id}"
@@ -228,7 +228,7 @@
228
228
  <button class="close" part="close" data-toast-id="${t.id}" aria-label="Close notification" type="button">
229
229
  <span aria-hidden="true">&times;</span>
230
230
  </button>
231
- </article>
231
+ </div>
232
232
  `}).join("")}
233
233
  </div>
234
234
  `)}shouldRenderOnAttributeChange(t,e,o){return e===o?!1:t==="headless"||t==="position"||t==="max-visible"}}typeof customElements<"u"&&!customElements.get("ui-toast")&&customElements.define("ui-toast",l);exports.UIToast=l;
package/dist/toast.esm.js CHANGED
@@ -355,7 +355,7 @@ class b extends l {
355
355
  ${this._toasts.map((t) => {
356
356
  const e = t.ariaLive === "assertive" || t.tone === "error" ? "alert" : "status", o = t.duration > 0 ? '<span class="meta" part="meta">Auto-dismiss</span>' : '<span class="meta" part="meta">Persistent</span>';
357
357
  return `
358
- <article
358
+ <div
359
359
  class="toast show${t.closing ? " closing" : ""}"
360
360
  part="toast"
361
361
  data-toast-id="${t.id}"
@@ -369,7 +369,7 @@ class b extends l {
369
369
  <button class="close" part="close" data-toast-id="${t.id}" aria-label="Close notification" type="button">
370
370
  <span aria-hidden="true">&times;</span>
371
371
  </button>
372
- </article>
372
+ </div>
373
373
  `;
374
374
  }).join("")}
375
375
  </div>
@@ -1,10 +1,10 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const A=require("./ElementBase-DxbvhLJs.js"),g=require("./roving-focus-group-BdJ_4Njm.js"),y=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const A=require("./ElementBase-DxbvhLJs.js"),d=require("./roving-focus-group-BdJ_4Njm.js"),y=`
2
2
  :host {
3
- --ui-toggle-group-gap: 8px;
4
- --ui-toggle-group-padding: 6px;
5
- --ui-toggle-group-radius: 12px;
6
- --ui-toggle-group-bg: color-mix(in srgb, var(--ui-color-surface, #ffffff) 96%, transparent);
7
- --ui-toggle-group-border: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 74%, transparent);
3
+ --ui-toggle-group-gap: 4px;
4
+ --ui-toggle-group-padding: 0px;
5
+ --ui-toggle-group-radius: var(--ui-control-radius-2, var(--ui-radius, 6px));
6
+ --ui-toggle-group-bg: transparent;
7
+ --ui-toggle-group-border: transparent;
8
8
  --ui-toggle-group-shadow:
9
9
  none;
10
10
 
@@ -54,15 +54,15 @@
54
54
  }
55
55
 
56
56
  :host([size="sm"]) {
57
- --ui-toggle-group-gap: 6px;
58
- --ui-toggle-group-padding: 4px;
59
- --ui-toggle-group-radius: 10px;
57
+ --ui-toggle-group-gap: 4px;
58
+ --ui-toggle-group-padding: 0px;
59
+ --ui-toggle-group-radius: var(--ui-control-radius-1, var(--ui-radius, 6px));
60
60
  }
61
61
 
62
62
  :host([size="lg"]) {
63
- --ui-toggle-group-gap: 10px;
64
- --ui-toggle-group-padding: 8px;
65
- --ui-toggle-group-radius: 14px;
63
+ --ui-toggle-group-gap: 4px;
64
+ --ui-toggle-group-padding: 0px;
65
+ --ui-toggle-group-radius: var(--ui-control-radius-3, var(--ui-radius, 6px));
66
66
  }
67
67
 
68
68
  :host([density="compact"]) {
@@ -115,7 +115,7 @@
115
115
  --ui-toggle-group-shadow: none;
116
116
  }
117
117
  }
118
- `,_=new Set(["multiple","orientation","aria-label","required","disabled"]);function x(u){return String(u).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function S(u){try{return JSON.parse(u)}catch{return}}function w(u,t){if(!t)return u||"";if(!u)return[];const e=S(u);return Array.isArray(e)?Array.from(new Set(e.map(i=>String(i)).filter(Boolean))):u.includes(",")?Array.from(new Set(u.split(",").map(i=>i.trim()).filter(Boolean))):[u]}function f(u,t){return t?JSON.stringify(Array.isArray(u)?u:[String(u)]):String(u||"")}class v extends A.ElementBase{constructor(){super(),this._observer=null,this._isSyncing=!1,this._focusIndex=-1,this._onToggleEvent=this._onToggleEvent.bind(this),this._onKeyDown=this._onKeyDown.bind(this)}static get observedAttributes(){return["value","multiple","disabled","headless","orientation","variant","size","density","shape","elevation","allow-empty","required","activation","aria-label"]}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._onToggleEvent),this.addEventListener("keydown",this._onKeyDown),this._observer=new MutationObserver(t=>{this._isSyncing||(t.forEach(e=>{e.type!=="childList"||e.removedNodes.length===0||e.removedNodes.forEach(i=>this._clearGroupFlagsFromNode(i))}),this._syncChildren())}),this._observer.observe(this,{childList:!0,subtree:!0,attributes:!0,characterData:!0,attributeFilter:["value","data-value","disabled","pressed","data-disabled"]}),this._syncChildren()}attributeChangedCallback(t,e,i){if(e!==i){if(_.has(t)){if(!this.root.querySelector(".group")){this.requestRender();return}this._syncGroupA11y()}this._syncChildren()}}disconnectedCallback(){this.removeEventListener("change",this._onToggleEvent),this.removeEventListener("keydown",this._onKeyDown),this._toggles().forEach(t=>this._clearGroupFlags(t)),this._observer&&(this._observer.disconnect(),this._observer=null),super.disconnectedCallback()}get multiple(){return this.hasAttribute("multiple")}set multiple(t){t?this.setAttribute("multiple",""):this.removeAttribute("multiple")}get value(){return w(this.getAttribute("value"),this.multiple)}set value(t){const e=f(t,this.multiple);if(!this.multiple&&!e){this.hasAttribute("value")&&this.removeAttribute("value"),this._syncChildren();return}this.getAttribute("value")!==e&&this.setAttribute("value",e),this._syncChildren()}_toggles(){return Array.from(this.querySelectorAll("ui-toggle"))}_toggleValue(t,e){return t.getAttribute("value")||t.getAttribute("data-value")||t.textContent?.trim()||String(e)}_clearGroupFlags(t){t.hasAttribute("data-group-item")&&t.removeAttribute("data-group-item"),t.hasAttribute("data-group-disabled")&&t.removeAttribute("data-group-disabled"),t.hasAttribute("role")&&t.removeAttribute("role"),t.hasAttribute("aria-checked")&&t.removeAttribute("aria-checked"),t._syncAria?.()}_clearGroupFlagsFromNode(t){if(!(t instanceof HTMLElement))return;t.matches("ui-toggle")&&this._clearGroupFlags(t),Array.from(t.querySelectorAll("ui-toggle")).forEach(i=>this._clearGroupFlags(i))}_selectedSet(){const t=this.value;return Array.isArray(t)?new Set(t.map(e=>String(e))):t?new Set([String(t)]):new Set}_setGroupValue(t,e=!0){const i=f(t,this.multiple),n=this.getAttribute("value")||"";if(!this.multiple&&!i&&!n||n===i){this._syncChildren();return}if(!this.multiple&&!i?this.removeAttribute("value"):this.setAttribute("value",i),this._syncChildren(),!e)return;const r={value:this.multiple?Array.isArray(t)?t:[String(t)]:String(t||""),values:this.multiple?Array.isArray(t)?t:[String(t)]:t?[String(t)]:[],multiple:this.multiple};this.dispatchEvent(new CustomEvent("input",{detail:r,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:r,bubbles:!0,composed:!0}))}_syncChildren(){const t=this._toggles(),e=this.hasAttribute("disabled"),i=this._selectedSet(),n=this.multiple,r=(d,s,o)=>{const a=d.hasAttribute(s);o&&!a&&d.setAttribute(s,""),!o&&a&&d.removeAttribute(s)},h=(d,s,o)=>{d.getAttribute(s)!==o&&d.setAttribute(s,o)};let c=-1,l=-1;this._isSyncing=!0;try{t.forEach((s,o)=>{const a=this._toggleValue(s,o),p=s.hasAttribute("data-disabled")||s.getAttribute("aria-disabled")==="true",m=e||p;r(s,"data-group-item",!0),m?(r(s,"disabled",!0),r(s,"data-group-disabled",e&&!p)):s.hasAttribute("data-group-disabled")&&(r(s,"disabled",!1),r(s,"data-group-disabled",!1));const b=i.has(a);r(s,"pressed",b),h(s,"role",n?"checkbox":"radio"),h(s,"aria-checked",b?"true":"false"),b&&l<0&&(l=o),!s.hasAttribute("disabled")&&c<0&&(c=o)});const d=g.resolveRovingFocusIndex(t,{activeIndex:this._focusIndex,selectedIndex:l>=0?l:c,getDisabled:s=>s.hasAttribute("disabled")});this._focusIndex=d,g.syncRovingTabStops(t,t[d]||null,{activeAttribute:null})}finally{this._isSyncing=!1}}_onToggleEvent(t){const e=t.target;if(!e||e.tagName.toLowerCase()!=="ui-toggle"||this.hasAttribute("disabled"))return;const n=this._toggles().indexOf(e);if(n<0)return;const r=this._toggleValue(e,n),h=t.detail?.pressed??e.hasAttribute("pressed");if(this._focusIndex=n,this.multiple){const l=this._selectedSet();h?l.add(r):l.delete(r),this._setGroupValue(Array.from(l),!0);return}const c=this.hasAttribute("allow-empty")&&!this.hasAttribute("required");if(h){this._setGroupValue(r,!0);return}if(c)this._setGroupValue("",!0);else{const l=String(this.value||"");this._setGroupValue(l||r,!1)}}_onKeyDown(t){const e=t.target;if(!e||e.tagName.toLowerCase()!=="ui-toggle")return;const i=this.getAttribute("orientation")==="vertical"?"vertical":"horizontal",n=this.getAttribute("activation")==="manual"?"manual":"auto",r=this._toggles().filter(o=>!o.hasAttribute("disabled"));if(r.length<2)return;const h=r.indexOf(e);if(h<0)return;const c=this._isHorizontalRtl(),l=o=>{const a=g.moveRovingFocusIndex(r,h,o,{wrap:!0,fallbackIndex:g.resolveRovingFocusIndex(r,{activeIndex:h,getDisabled:()=>!1}),getDisabled:()=>!1});if(a<0)return;const p=r[a];this._focusIndex=this._toggles().indexOf(p),g.syncRovingTabStops(r,p,{activeAttribute:null}),g.focusRovingItem(p),n==="auto"&&p.toggle?.(!0)},d=i==="horizontal"&&(t.key==="ArrowRight"&&!c||t.key==="ArrowLeft"&&c)||i==="vertical"&&t.key==="ArrowDown",s=i==="horizontal"&&(t.key==="ArrowLeft"&&!c||t.key==="ArrowRight"&&c)||i==="vertical"&&t.key==="ArrowUp";if(d){t.preventDefault(),l(1);return}if(s){t.preventDefault(),l(-1);return}if(t.key==="Home"){t.preventDefault();const o=g.getRovingFocusBoundaryIndex(r,"first",()=>!1);if(o<0)return;const a=r[o];this._focusIndex=this._toggles().indexOf(a),g.syncRovingTabStops(r,a,{activeAttribute:null}),g.focusRovingItem(a),n==="auto"&&a.toggle?.(!0);return}if(t.key==="End"){t.preventDefault();const o=g.getRovingFocusBoundaryIndex(r,"last",()=>!1);if(o<0)return;const a=r[o];this._focusIndex=this._toggles().indexOf(a),g.syncRovingTabStops(r,a,{activeAttribute:null}),g.focusRovingItem(a),n==="auto"&&a.toggle?.(!0)}}render(){const t=this.multiple?"group":"radiogroup";this.getAttribute("orientation");const e=this.getAttribute("aria-label")||"Toggle group",i=this.hasAttribute("required"),n=this.hasAttribute("disabled");this.setContent(`
118
+ `,_=new Set(["multiple","orientation","aria-label","required","disabled"]);function x(u){return String(u).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function S(u){try{return JSON.parse(u)}catch{return}}function w(u,t){if(!t)return u||"";if(!u)return[];const e=S(u);return Array.isArray(e)?Array.from(new Set(e.map(i=>String(i)).filter(Boolean))):u.includes(",")?Array.from(new Set(u.split(",").map(i=>i.trim()).filter(Boolean))):[u]}function f(u,t){return t?JSON.stringify(Array.isArray(u)?u:[String(u)]):String(u||"")}class v extends A.ElementBase{constructor(){super(),this._observer=null,this._isSyncing=!1,this._focusIndex=-1,this._onToggleEvent=this._onToggleEvent.bind(this),this._onKeyDown=this._onKeyDown.bind(this)}static get observedAttributes(){return["value","multiple","disabled","headless","orientation","variant","size","density","shape","elevation","allow-empty","required","activation","aria-label"]}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._onToggleEvent),this.addEventListener("keydown",this._onKeyDown),this._observer=new MutationObserver(t=>{this._isSyncing||(t.forEach(e=>{e.type!=="childList"||e.removedNodes.length===0||e.removedNodes.forEach(i=>this._clearGroupFlagsFromNode(i))}),this._syncChildren())}),this._observer.observe(this,{childList:!0,subtree:!0,attributes:!0,characterData:!0,attributeFilter:["value","data-value","disabled","pressed","data-disabled"]}),this._syncChildren()}attributeChangedCallback(t,e,i){if(e!==i){if(_.has(t)){if(!this.root.querySelector(".group")){this.requestRender();return}this._syncGroupA11y()}this._syncChildren()}}disconnectedCallback(){this.removeEventListener("change",this._onToggleEvent),this.removeEventListener("keydown",this._onKeyDown),this._toggles().forEach(t=>this._clearGroupFlags(t)),this._observer&&(this._observer.disconnect(),this._observer=null),super.disconnectedCallback()}get multiple(){return this.hasAttribute("multiple")}set multiple(t){t?this.setAttribute("multiple",""):this.removeAttribute("multiple")}get value(){return w(this.getAttribute("value"),this.multiple)}set value(t){const e=f(t,this.multiple);if(!this.multiple&&!e){this.hasAttribute("value")&&this.removeAttribute("value"),this._syncChildren();return}this.getAttribute("value")!==e&&this.setAttribute("value",e),this._syncChildren()}_toggles(){return Array.from(this.querySelectorAll("ui-toggle"))}_toggleValue(t,e){return t.getAttribute("value")||t.getAttribute("data-value")||t.textContent?.trim()||String(e)}_clearGroupFlags(t){t.hasAttribute("data-group-item")&&t.removeAttribute("data-group-item"),t.hasAttribute("data-group-disabled")&&t.removeAttribute("data-group-disabled"),t.hasAttribute("role")&&t.removeAttribute("role"),t.hasAttribute("aria-checked")&&t.removeAttribute("aria-checked"),t._syncAria?.()}_clearGroupFlagsFromNode(t){if(!(t instanceof HTMLElement))return;t.matches("ui-toggle")&&this._clearGroupFlags(t),Array.from(t.querySelectorAll("ui-toggle")).forEach(i=>this._clearGroupFlags(i))}_selectedSet(){const t=this.value;return Array.isArray(t)?new Set(t.map(e=>String(e))):t?new Set([String(t)]):new Set}_setGroupValue(t,e=!0){const i=f(t,this.multiple),n=this.getAttribute("value")||"";if(!this.multiple&&!i&&!n||n===i){this._syncChildren();return}if(!this.multiple&&!i?this.removeAttribute("value"):this.setAttribute("value",i),this._syncChildren(),!e)return;const r={value:this.multiple?Array.isArray(t)?t:[String(t)]:String(t||""),values:this.multiple?Array.isArray(t)?t:[String(t)]:t?[String(t)]:[],multiple:this.multiple};this.dispatchEvent(new CustomEvent("input",{detail:r,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:r,bubbles:!0,composed:!0}))}_inheritVariant(t){const e=this.getAttribute("variant")==="contrast";e&&!t.hasAttribute("variant")?(t.setAttribute("variant","contrast"),t.setAttribute("data-inherited-variant","")):!e&&t.hasAttribute("data-inherited-variant")&&(t.removeAttribute("variant"),t.removeAttribute("data-inherited-variant"))}_syncChildren(){const t=this._toggles(),e=this.hasAttribute("disabled"),i=this._selectedSet(),n=this.multiple,r=(g,s,o)=>{const a=g.hasAttribute(s);o&&!a&&g.setAttribute(s,""),!o&&a&&g.removeAttribute(s)},h=(g,s,o)=>{g.getAttribute(s)!==o&&g.setAttribute(s,o)};let c=-1,l=-1;this._isSyncing=!0;try{t.forEach((s,o)=>{const a=this._toggleValue(s,o),p=s.hasAttribute("data-disabled")||s.getAttribute("aria-disabled")==="true",m=e||p;r(s,"data-group-item",!0),this._inheritVariant(s),m?(r(s,"disabled",!0),r(s,"data-group-disabled",e&&!p)):s.hasAttribute("data-group-disabled")&&(r(s,"disabled",!1),r(s,"data-group-disabled",!1));const b=i.has(a);r(s,"pressed",b),h(s,"role",n?"checkbox":"radio"),h(s,"aria-checked",b?"true":"false"),b&&l<0&&(l=o),!s.hasAttribute("disabled")&&c<0&&(c=o)});const g=d.resolveRovingFocusIndex(t,{activeIndex:this._focusIndex,selectedIndex:l>=0?l:c,getDisabled:s=>s.hasAttribute("disabled")});this._focusIndex=g,d.syncRovingTabStops(t,t[g]||null,{activeAttribute:null})}finally{this._isSyncing=!1}}_onToggleEvent(t){const e=t.target;if(!e||e.tagName.toLowerCase()!=="ui-toggle"||this.hasAttribute("disabled"))return;const n=this._toggles().indexOf(e);if(n<0)return;const r=this._toggleValue(e,n),h=t.detail?.pressed??e.hasAttribute("pressed");if(this._focusIndex=n,this.multiple){const l=this._selectedSet();h?l.add(r):l.delete(r),this._setGroupValue(Array.from(l),!0);return}const c=this.hasAttribute("allow-empty")&&!this.hasAttribute("required");if(h){this._setGroupValue(r,!0);return}if(c)this._setGroupValue("",!0);else{const l=String(this.value||"");this._setGroupValue(l||r,!1)}}_onKeyDown(t){const e=t.target;if(!e||e.tagName.toLowerCase()!=="ui-toggle")return;const i=this.getAttribute("orientation")==="vertical"?"vertical":"horizontal",n=this.getAttribute("activation")==="manual"?"manual":"auto",r=this._toggles().filter(o=>!o.hasAttribute("disabled"));if(r.length<2)return;const h=r.indexOf(e);if(h<0)return;const c=this._isHorizontalRtl(),l=o=>{const a=d.moveRovingFocusIndex(r,h,o,{wrap:!0,fallbackIndex:d.resolveRovingFocusIndex(r,{activeIndex:h,getDisabled:()=>!1}),getDisabled:()=>!1});if(a<0)return;const p=r[a];this._focusIndex=this._toggles().indexOf(p),d.syncRovingTabStops(r,p,{activeAttribute:null}),d.focusRovingItem(p),n==="auto"&&p.toggle?.(!0)},g=i==="horizontal"&&(t.key==="ArrowRight"&&!c||t.key==="ArrowLeft"&&c)||i==="vertical"&&t.key==="ArrowDown",s=i==="horizontal"&&(t.key==="ArrowLeft"&&!c||t.key==="ArrowRight"&&c)||i==="vertical"&&t.key==="ArrowUp";if(g){t.preventDefault(),l(1);return}if(s){t.preventDefault(),l(-1);return}if(t.key==="Home"){t.preventDefault();const o=d.getRovingFocusBoundaryIndex(r,"first",()=>!1);if(o<0)return;const a=r[o];this._focusIndex=this._toggles().indexOf(a),d.syncRovingTabStops(r,a,{activeAttribute:null}),d.focusRovingItem(a),n==="auto"&&a.toggle?.(!0);return}if(t.key==="End"){t.preventDefault();const o=d.getRovingFocusBoundaryIndex(r,"last",()=>!1);if(o<0)return;const a=r[o];this._focusIndex=this._toggles().indexOf(a),d.syncRovingTabStops(r,a,{activeAttribute:null}),d.focusRovingItem(a),n==="auto"&&a.toggle?.(!0)}}render(){const t=this.multiple?"group":"radiogroup";this.getAttribute("orientation");const e=this.getAttribute("aria-label")||"Toggle group",i=this.hasAttribute("required"),n=this.hasAttribute("disabled");this.setContent(`
119
119
  <style>${y}</style>
120
120
  <div
121
121
  class="group"