@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
@@ -2,9 +2,9 @@
2
2
  :host {
3
3
  --ui-splitter-size: 10px;
4
4
  --ui-splitter-hit-area: 10px;
5
- --ui-splitter-line: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 80%, transparent);
6
- --ui-splitter-accent: var(--ui-color-primary, #2563eb);
7
- --ui-splitter-handle-bg: color-mix(in srgb, var(--ui-splitter-line) 48%, transparent);
5
+ --ui-splitter-line: var(--ui-color-line-subtle, color-mix(in srgb, var(--ui-color-border, #cbd5e1) 80%, transparent));
6
+ --ui-splitter-accent: var(--ui-color-accent-solid, var(--ui-color-primary, #2563eb));
7
+ --ui-splitter-handle-bg: var(--ui-color-line-strong, color-mix(in srgb, var(--ui-color-border, #cbd5e1) 90%, #64748b));
8
8
  display: block;
9
9
  position: relative;
10
10
  flex: 0 0 auto;
@@ -32,24 +32,65 @@
32
32
  place-items: center;
33
33
  }
34
34
 
35
+ /* The divider: a hairline across the whole gap, so the edge between two panels is always visible. */
36
+ .splitter::before {
37
+ content: "";
38
+ position: absolute;
39
+ inset-block: 0;
40
+ inset-inline: calc(50% - 0.5px) auto;
41
+ inline-size: 1px;
42
+ background: var(--ui-splitter-line);
43
+ transition: background-color 140ms ease, inline-size 140ms ease, inset-inline-start 140ms ease;
44
+ }
45
+
46
+ :host([orientation="vertical"]) .splitter::before {
47
+ inset-block: calc(50% - 0.5px) auto;
48
+ inset-inline: 0;
49
+ inline-size: auto;
50
+ block-size: 1px;
51
+ }
52
+
53
+ /* The grip: a short pill in the middle that says "drag me". */
35
54
  .line {
36
- inline-size: 2px;
37
- block-size: 36px;
55
+ position: relative;
56
+ inline-size: 4px;
57
+ block-size: 28px;
38
58
  border-radius: 999px;
39
59
  background: var(--ui-splitter-handle-bg);
40
- transition: background-color 140ms ease, transform 140ms ease;
60
+ transition: background-color 140ms ease;
41
61
  }
42
62
 
43
63
  :host([orientation="vertical"]) .line {
44
- inline-size: 36px;
64
+ inline-size: 28px;
65
+ block-size: 4px;
66
+ }
67
+
68
+ :host(:hover) .splitter::before,
69
+ :host(:focus-visible) .splitter::before,
70
+ :host([data-dragging="true"]) .splitter::before {
71
+ background: var(--ui-splitter-accent);
72
+ inline-size: 2px;
73
+ inset-inline-start: calc(50% - 1px);
74
+ }
75
+
76
+ :host([orientation="vertical"]:hover) .splitter::before,
77
+ :host([orientation="vertical"]:focus-visible) .splitter::before,
78
+ :host([orientation="vertical"][data-dragging="true"]) .splitter::before {
79
+ inline-size: auto;
45
80
  block-size: 2px;
81
+ inset-inline-start: 0;
82
+ inset-block-start: calc(50% - 1px);
46
83
  }
47
84
 
48
85
  :host(:hover) .line,
49
86
  :host(:focus-visible) .line,
50
87
  :host([data-dragging="true"]) .line {
51
- background: color-mix(in srgb, var(--ui-splitter-accent) 72%, white 28%);
52
- transform: scale(1.04);
88
+ background: var(--ui-splitter-accent);
89
+ }
90
+
91
+ :host(:focus-visible) .line {
92
+ outline: var(--ui-ring-width, 2px) solid var(--ui-ring-color, var(--ui-splitter-accent));
93
+ outline-offset: 2px;
53
94
  }
54
95
 
55
96
  :host([disabled]) {
@@ -58,7 +99,8 @@
58
99
  }
59
100
 
60
101
  @media (prefers-reduced-motion: reduce) {
61
- .line {
102
+ .line,
103
+ .splitter::before {
62
104
  transition: none !important;
63
105
  }
64
106
  }
@@ -3,9 +3,9 @@ const r = `
3
3
  :host {
4
4
  --ui-splitter-size: 10px;
5
5
  --ui-splitter-hit-area: 10px;
6
- --ui-splitter-line: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 80%, transparent);
7
- --ui-splitter-accent: var(--ui-color-primary, #2563eb);
8
- --ui-splitter-handle-bg: color-mix(in srgb, var(--ui-splitter-line) 48%, transparent);
6
+ --ui-splitter-line: var(--ui-color-line-subtle, color-mix(in srgb, var(--ui-color-border, #cbd5e1) 80%, transparent));
7
+ --ui-splitter-accent: var(--ui-color-accent-solid, var(--ui-color-primary, #2563eb));
8
+ --ui-splitter-handle-bg: var(--ui-color-line-strong, color-mix(in srgb, var(--ui-color-border, #cbd5e1) 90%, #64748b));
9
9
  display: block;
10
10
  position: relative;
11
11
  flex: 0 0 auto;
@@ -33,24 +33,65 @@ const r = `
33
33
  place-items: center;
34
34
  }
35
35
 
36
+ /* The divider: a hairline across the whole gap, so the edge between two panels is always visible. */
37
+ .splitter::before {
38
+ content: "";
39
+ position: absolute;
40
+ inset-block: 0;
41
+ inset-inline: calc(50% - 0.5px) auto;
42
+ inline-size: 1px;
43
+ background: var(--ui-splitter-line);
44
+ transition: background-color 140ms ease, inline-size 140ms ease, inset-inline-start 140ms ease;
45
+ }
46
+
47
+ :host([orientation="vertical"]) .splitter::before {
48
+ inset-block: calc(50% - 0.5px) auto;
49
+ inset-inline: 0;
50
+ inline-size: auto;
51
+ block-size: 1px;
52
+ }
53
+
54
+ /* The grip: a short pill in the middle that says "drag me". */
36
55
  .line {
37
- inline-size: 2px;
38
- block-size: 36px;
56
+ position: relative;
57
+ inline-size: 4px;
58
+ block-size: 28px;
39
59
  border-radius: 999px;
40
60
  background: var(--ui-splitter-handle-bg);
41
- transition: background-color 140ms ease, transform 140ms ease;
61
+ transition: background-color 140ms ease;
42
62
  }
43
63
 
44
64
  :host([orientation="vertical"]) .line {
45
- inline-size: 36px;
65
+ inline-size: 28px;
66
+ block-size: 4px;
67
+ }
68
+
69
+ :host(:hover) .splitter::before,
70
+ :host(:focus-visible) .splitter::before,
71
+ :host([data-dragging="true"]) .splitter::before {
72
+ background: var(--ui-splitter-accent);
73
+ inline-size: 2px;
74
+ inset-inline-start: calc(50% - 1px);
75
+ }
76
+
77
+ :host([orientation="vertical"]:hover) .splitter::before,
78
+ :host([orientation="vertical"]:focus-visible) .splitter::before,
79
+ :host([orientation="vertical"][data-dragging="true"]) .splitter::before {
80
+ inline-size: auto;
46
81
  block-size: 2px;
82
+ inset-inline-start: 0;
83
+ inset-block-start: calc(50% - 1px);
47
84
  }
48
85
 
49
86
  :host(:hover) .line,
50
87
  :host(:focus-visible) .line,
51
88
  :host([data-dragging="true"]) .line {
52
- background: color-mix(in srgb, var(--ui-splitter-accent) 72%, white 28%);
53
- transform: scale(1.04);
89
+ background: var(--ui-splitter-accent);
90
+ }
91
+
92
+ :host(:focus-visible) .line {
93
+ outline: var(--ui-ring-width, 2px) solid var(--ui-ring-color, var(--ui-splitter-accent));
94
+ outline-offset: 2px;
54
95
  }
55
96
 
56
97
  :host([disabled]) {
@@ -59,12 +100,13 @@ const r = `
59
100
  }
60
101
 
61
102
  @media (prefers-reduced-motion: reduce) {
62
- .line {
103
+ .line,
104
+ .splitter::before {
63
105
  transition: none !important;
64
106
  }
65
107
  }
66
108
  `;
67
- class n extends s {
109
+ class l extends s {
68
110
  static get observedAttributes() {
69
111
  return ["orientation", "disabled", "aria-label"];
70
112
  }
@@ -99,7 +141,7 @@ class n extends s {
99
141
  `), this._syncAccessibility();
100
142
  }
101
143
  }
102
- typeof customElements < "u" && !customElements.get("ui-splitter") && customElements.define("ui-splitter", n);
144
+ typeof customElements < "u" && !customElements.get("ui-splitter") && customElements.define("ui-splitter", l);
103
145
  export {
104
- n as UISplitter
146
+ l as UISplitter
105
147
  };
@@ -1,9 +1,9 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const b=require("./ElementBase-DxbvhLJs.js"),g=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const g=require("./ElementBase-DxbvhLJs.js"),b=`
2
2
  :host {
3
3
  --ui-stepper-gap: 8px;
4
- --ui-stepper-radius: 12px;
5
- --ui-stepper-bg: color-mix(in srgb, var(--ui-color-surface, #ffffff) 95%, transparent);
6
- --ui-stepper-border: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 76%, transparent);
4
+ --ui-stepper-radius: calc(var(--ui-radius, 6px) + 2px);
5
+ --ui-stepper-bg: transparent;
6
+ --ui-stepper-border: var(--ui-color-line, color-mix(in srgb, var(--ui-color-border, #cbd5e1) 76%, transparent));
7
7
  --ui-stepper-text: var(--ui-color-text, #0f172a);
8
8
  --ui-stepper-muted: var(--ui-color-muted, #526175);
9
9
  --ui-stepper-accent: var(--ui-color-primary, #2563eb);
@@ -17,11 +17,10 @@
17
17
  }
18
18
 
19
19
  .frame {
20
- border: 1px solid var(--ui-stepper-border);
20
+ border: 0;
21
21
  border-radius: var(--ui-stepper-radius);
22
22
  background: var(--ui-stepper-bg);
23
- box-shadow: 0 6px 16px rgba(15, 23, 42, 0.05);
24
- padding: 10px;
23
+ padding: 0;
25
24
  }
26
25
 
27
26
  .list {
@@ -48,9 +47,9 @@
48
47
  .trigger {
49
48
  min-inline-size: 0;
50
49
  inline-size: 100%;
51
- border: 1px solid color-mix(in srgb, var(--ui-stepper-border) 82%, transparent);
52
- border-radius: 11px;
53
- background: color-mix(in srgb, var(--ui-stepper-bg) 98%, transparent);
50
+ border: 1px solid transparent;
51
+ border-radius: var(--ui-control-radius-2, var(--ui-radius, 6px));
52
+ background: transparent;
54
53
  color: var(--ui-stepper-text);
55
54
  padding: 8px 10px;
56
55
  display: grid;
@@ -63,13 +62,12 @@
63
62
  }
64
63
 
65
64
  .trigger:hover {
66
- border-color: color-mix(in srgb, var(--ui-stepper-accent) 20%, var(--ui-stepper-border));
67
- background: color-mix(in srgb, var(--ui-stepper-accent) 4%, transparent);
65
+ background: var(--ui-color-fill, color-mix(in srgb, var(--ui-stepper-accent) 4%, transparent));
68
66
  }
69
67
 
70
68
  .trigger:focus-visible {
71
- outline: 2px solid var(--ui-stepper-focus);
72
- outline-offset: 1px;
69
+ outline: var(--ui-ring-width, 2px) solid var(--ui-ring-color, var(--ui-stepper-focus));
70
+ outline-offset: var(--ui-ring-offset, 2px);
73
71
  }
74
72
 
75
73
  .trigger[disabled] {
@@ -79,27 +77,17 @@
79
77
 
80
78
  .index {
81
79
  position: relative;
82
- inline-size: 20px;
83
- block-size: 20px;
80
+ inline-size: 24px;
81
+ block-size: 24px;
84
82
  border-radius: 999px;
85
- border: 1px solid color-mix(in srgb, var(--ui-stepper-border) 82%, transparent);
83
+ border: 1px solid var(--ui-stepper-border);
86
84
  display: inline-grid;
87
85
  place-items: center;
88
- font-size: 11px;
89
- font-weight: 700;
86
+ font-size: 12px;
87
+ font-weight: 500;
90
88
  line-height: 1;
91
89
  }
92
90
 
93
- .item[data-state="current"] .index::after {
94
- content: "";
95
- position: absolute;
96
- inset: -5px;
97
- border-radius: inherit;
98
- border: 1px solid color-mix(in srgb, var(--ui-stepper-accent) 34%, transparent);
99
- opacity: 0.18;
100
- pointer-events: none;
101
- }
102
-
103
91
  .meta {
104
92
  min-inline-size: 0;
105
93
  display: grid;
@@ -115,8 +103,8 @@
115
103
  }
116
104
 
117
105
  .label {
118
- font-size: 12px;
119
- font-weight: 600;
106
+ font-size: 14px;
107
+ font-weight: 500;
120
108
  }
121
109
 
122
110
  .description {
@@ -129,7 +117,7 @@
129
117
  inline-size: 100%;
130
118
  block-size: 2px;
131
119
  border-radius: 999px;
132
- background: color-mix(in srgb, var(--ui-stepper-border) 82%, transparent);
120
+ background: var(--ui-stepper-border);
133
121
  overflow: hidden;
134
122
  }
135
123
 
@@ -139,45 +127,23 @@
139
127
  margin-inline-start: 9px;
140
128
  }
141
129
 
142
- .item[data-state="current"] .trigger {
143
- border-color: color-mix(in srgb, var(--ui-stepper-accent) 28%, var(--ui-stepper-border));
144
- background: color-mix(in srgb, var(--ui-stepper-accent) 7%, transparent);
130
+ /* Done is a soft accent fill; the current step is a solid one. */
131
+ .item[data-state="complete"] .index {
132
+ border-color: transparent;
133
+ background: var(--ui-color-accent-fill, color-mix(in srgb, var(--ui-stepper-accent) 14%, transparent));
134
+ color: var(--ui-color-accent-text, color-mix(in srgb, var(--ui-stepper-accent) 68%, #0f172a 32%));
145
135
  }
146
136
 
147
- .item[data-state="current"] .index,
148
- .item[data-state="complete"] .index {
149
- border-color: color-mix(in srgb, var(--ui-stepper-accent) 28%, var(--ui-stepper-border));
150
- background: color-mix(in srgb, var(--ui-stepper-accent) 10%, transparent);
151
- color: color-mix(in srgb, var(--ui-stepper-accent) 68%, #0f172a 32%);
137
+ .item[data-state="current"] .index {
138
+ border-color: transparent;
139
+ background: var(--ui-stepper-accent);
140
+ color: var(--ui-color-foreground-on-primary, #ffffff);
152
141
  }
153
142
 
154
143
  .item[data-state="complete"] .connector {
155
144
  background: color-mix(in srgb, var(--ui-stepper-accent) 32%, transparent);
156
145
  }
157
146
 
158
- .item[data-state="current"] .connector::after {
159
- content: "";
160
- position: absolute;
161
- inset: 0;
162
- background: linear-gradient(
163
- 90deg,
164
- transparent 0%,
165
- color-mix(in srgb, var(--ui-stepper-accent) 24%, transparent) 50%,
166
- transparent 100%
167
- );
168
- opacity: 0.45;
169
- pointer-events: none;
170
- }
171
-
172
- :host([orientation="vertical"]) .item[data-state="current"] .connector::after {
173
- background: linear-gradient(
174
- 180deg,
175
- transparent 0%,
176
- color-mix(in srgb, var(--ui-stepper-accent) 24%, transparent) 50%,
177
- transparent 100%
178
- );
179
- }
180
-
181
147
  .item[data-state="error"] .trigger {
182
148
  border-color: color-mix(in srgb, var(--ui-color-danger, #dc2626) 50%, transparent);
183
149
  }
@@ -279,7 +245,7 @@
279
245
  border-color: CanvasText;
280
246
  }
281
247
  }
282
- `;function u(o){return o.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function f(o){if(!o)return[];try{const t=JSON.parse(o);return Array.isArray(t)?t.filter(e=>e&&typeof e=="object"):[]}catch{return[]}}function p(o){if(o==null)return!1;const t=String(o).toLowerCase();return t!=="false"&&t!=="0"&&t!=="off"}class d extends b.ElementBase{constructor(){super(),this._observer=null,this._isSyncingValueAttribute=!1,this._onClick=this._onClick.bind(this),this._onKeyDown=this._onKeyDown.bind(this)}static get observedAttributes(){return["steps","value","orientation","variant","size","clickable","linear","headless","aria-label"]}connectedCallback(){super.connectedCallback(),this.root.addEventListener("click",this._onClick),this.root.addEventListener("keydown",this._onKeyDown),this._observer=new MutationObserver(()=>{this.hasAttribute("steps")||this.requestRender()}),this._observer.observe(this,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["slot","data-value","data-label","data-description","data-optional","data-disabled","data-state","disabled"]})}disconnectedCallback(){this.root.removeEventListener("click",this._onClick),this.root.removeEventListener("keydown",this._onKeyDown),this._observer&&(this._observer.disconnect(),this._observer=null),super.disconnectedCallback()}attributeChangedCallback(t,e,r){if(e!==r){if(t==="value"){this._isSyncingValueAttribute||this._syncValueUi();return}if(t==="aria-label"){const s=this.root.querySelector(".frame");if(s){s.setAttribute("aria-label",r||"Stepper");return}}this.isConnected&&this.requestRender()}}_fromSlots(){return Array.from(this.querySelectorAll('[slot="step"], [data-step]')).map((e,r)=>{const s=e.getAttribute("data-value")||String(r+1),i=e.getAttribute("data-label")||e.getAttribute("title")||e.textContent?.trim()||`Step ${r+1}`,a=e.getAttribute("data-description")||"",l=p(e.getAttribute("data-optional")),n=e.hasAttribute("disabled")||p(e.getAttribute("data-disabled")),c=e.getAttribute("data-state");return{index:r,value:s,label:i,description:a,optional:l,disabled:n,state:c==="complete"||c==="error"||c==="warning"?c:"default"}})}_fromAttr(){return f(this.getAttribute("steps")).map((t,e)=>{const r=t.state==="complete"||t.state==="error"||t.state==="warning"?t.state:"default";return{index:e,value:t.value!=null?String(t.value):String(e+1),label:t.label!=null?String(t.label):`Step ${e+1}`,description:t.description!=null?String(t.description):"",optional:!!t.optional,disabled:!!t.disabled,state:r}})}_steps(){const t=this._fromAttr();return t.length?t:this._fromSlots()}_activeIndex(t){if(!t.length)return-1;const e=this.getAttribute("value")||"";if(e){const s=t.findIndex(i=>i.value===e);if(s>=0)return s}const r=t.find(s=>!s.disabled)||t[0];return r&&this.getAttribute("value")!==r.value&&this.setAttribute("value",r.value),t.findIndex(s=>s.value===r.value)}get value(){return this.getAttribute("value")||""}set value(t){const e=String(t||"");e?this.setAttribute("value",e):this.removeAttribute("value")}goTo(t){const e=this._steps();if(!e.length)return!1;const r=this._activeIndex(e),s=typeof t=="number"?t:e.findIndex(i=>i.value===String(t));return!Number.isInteger(s)||s<0||s>=e.length?!1:this._selectIndex(e,r,s,"api")}next(){const t=this._steps(),e=this._activeIndex(t);if(e<0)return!1;const r=Math.min(t.length-1,e+1);return this._selectIndex(t,e,r,"next")}prev(){const t=this._steps(),e=this._activeIndex(t);if(e<0)return!1;const r=Math.max(0,e-1);return this._selectIndex(t,e,r,"prev")}_selectIndex(t,e,r,s){if(r===e)return!0;const i=t[r];if(!i||i.disabled||this.hasAttribute("linear")&&r>e+1)return!1;const a=t[e],l=new CustomEvent("before-change",{detail:{currentIndex:e,nextIndex:r,currentValue:a?.value||"",nextValue:i.value,trigger:s},bubbles:!0,composed:!0,cancelable:!0});if(!this.dispatchEvent(l))return!1;this.value=i.value;const n={index:r,value:i.value,label:i.label,trigger:s};return this.dispatchEvent(new CustomEvent("input",{detail:n,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:n,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("select",{detail:n,bubbles:!0,composed:!0})),!0}_onClick(t){const r=t.target?.closest(".trigger");if(!r||!this.hasAttribute("clickable")&&!this.hasAttribute("linear"))return;const s=Number(r.getAttribute("data-index"));if(!Number.isInteger(s))return;const i=this._steps(),a=this._activeIndex(i);this._selectIndex(i,a,s,"click")}_moveFocus(t,e){const r=Array.from(this.root.querySelectorAll(".trigger:not([disabled])"));if(!r.length)return;const s=r.indexOf(t);if(s<0)return;const i=(s+e+r.length)%r.length;r[i].focus()}_onKeyDown(t){const r=t.target?.closest(".trigger");if(!r)return;const s=this.getAttribute("orientation")==="vertical",i=!s&&getComputedStyle(this).direction==="rtl",a=s?"ArrowDown":i?"ArrowLeft":"ArrowRight",l=s?"ArrowUp":i?"ArrowRight":"ArrowLeft";if(t.key===a){t.preventDefault(),this._moveFocus(r,1);return}if(t.key===l){t.preventDefault(),this._moveFocus(r,-1);return}if(t.key==="Home"||t.key==="End"){const n=Array.from(this.root.querySelectorAll(".trigger:not([disabled])"));if(!n.length)return;t.preventDefault(),(t.key==="Home"?n[0]:n[n.length-1]).focus();return}(t.key===" "||t.key==="Enter")&&(t.preventDefault(),r.click())}_syncValueUi(){if(!this.isConnected)return;if(!this.root.querySelector(".list")){this.requestRender();return}const t=this._steps();if(!t.length)return;this._isSyncingValueAttribute=!0;let e=-1;try{e=this._activeIndex(t)}finally{this._isSyncingValueAttribute=!1}Array.from(this.root.querySelectorAll(".item")).forEach((s,i)=>{const a=t[i];if(!a)return;const l=a.state!=="default"?a.state:i<e?"complete":i===e?"current":"upcoming";s.setAttribute("data-state",l),s.setAttribute("data-active",i===e?"true":"false");const n=s.querySelector(".trigger");n&&n.setAttribute("aria-current",i===e?"step":"false");const c=s.querySelector(".index");c&&(c.textContent=i<e?"✓":String(i+1))})}render(){const t=this._steps(),e=this._activeIndex(t),r=this.getAttribute("aria-label")||"Stepper",s=t.map((i,a)=>`
248
+ `;function u(o){return o.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function f(o){if(!o)return[];try{const t=JSON.parse(o);return Array.isArray(t)?t.filter(e=>e&&typeof e=="object"):[]}catch{return[]}}function p(o){if(o==null)return!1;const t=String(o).toLowerCase();return t!=="false"&&t!=="0"&&t!=="off"}class d extends g.ElementBase{constructor(){super(),this._observer=null,this._isSyncingValueAttribute=!1,this._onClick=this._onClick.bind(this),this._onKeyDown=this._onKeyDown.bind(this)}static get observedAttributes(){return["steps","value","orientation","variant","size","clickable","linear","headless","aria-label"]}connectedCallback(){super.connectedCallback(),this.root.addEventListener("click",this._onClick),this.root.addEventListener("keydown",this._onKeyDown),this._observer=new MutationObserver(()=>{this.hasAttribute("steps")||this.requestRender()}),this._observer.observe(this,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["slot","data-value","data-label","data-description","data-optional","data-disabled","data-state","disabled"]})}disconnectedCallback(){this.root.removeEventListener("click",this._onClick),this.root.removeEventListener("keydown",this._onKeyDown),this._observer&&(this._observer.disconnect(),this._observer=null),super.disconnectedCallback()}attributeChangedCallback(t,e,r){if(e!==r){if(t==="value"){this._isSyncingValueAttribute||this._syncValueUi();return}if(t==="aria-label"){const s=this.root.querySelector(".frame");if(s){s.setAttribute("aria-label",r||"Stepper");return}}this.isConnected&&this.requestRender()}}_fromSlots(){return Array.from(this.querySelectorAll('[slot="step"], [data-step]')).map((e,r)=>{const s=e.getAttribute("data-value")||String(r+1),i=e.getAttribute("data-label")||e.getAttribute("title")||e.textContent?.trim()||`Step ${r+1}`,a=e.getAttribute("data-description")||"",l=p(e.getAttribute("data-optional")),n=e.hasAttribute("disabled")||p(e.getAttribute("data-disabled")),c=e.getAttribute("data-state");return{index:r,value:s,label:i,description:a,optional:l,disabled:n,state:c==="complete"||c==="error"||c==="warning"?c:"default"}})}_fromAttr(){return f(this.getAttribute("steps")).map((t,e)=>{const r=t.state==="complete"||t.state==="error"||t.state==="warning"?t.state:"default";return{index:e,value:t.value!=null?String(t.value):String(e+1),label:t.label!=null?String(t.label):`Step ${e+1}`,description:t.description!=null?String(t.description):"",optional:!!t.optional,disabled:!!t.disabled,state:r}})}_steps(){const t=this._fromAttr();return t.length?t:this._fromSlots()}_activeIndex(t){if(!t.length)return-1;const e=this.getAttribute("value")||"";if(e){const s=t.findIndex(i=>i.value===e);if(s>=0)return s}const r=t.find(s=>!s.disabled)||t[0];return r&&this.getAttribute("value")!==r.value&&this.setAttribute("value",r.value),t.findIndex(s=>s.value===r.value)}get value(){return this.getAttribute("value")||""}set value(t){const e=String(t||"");e?this.setAttribute("value",e):this.removeAttribute("value")}goTo(t){const e=this._steps();if(!e.length)return!1;const r=this._activeIndex(e),s=typeof t=="number"?t:e.findIndex(i=>i.value===String(t));return!Number.isInteger(s)||s<0||s>=e.length?!1:this._selectIndex(e,r,s,"api")}next(){const t=this._steps(),e=this._activeIndex(t);if(e<0)return!1;const r=Math.min(t.length-1,e+1);return this._selectIndex(t,e,r,"next")}prev(){const t=this._steps(),e=this._activeIndex(t);if(e<0)return!1;const r=Math.max(0,e-1);return this._selectIndex(t,e,r,"prev")}_selectIndex(t,e,r,s){if(r===e)return!0;const i=t[r];if(!i||i.disabled||this.hasAttribute("linear")&&r>e+1)return!1;const a=t[e],l=new CustomEvent("before-change",{detail:{currentIndex:e,nextIndex:r,currentValue:a?.value||"",nextValue:i.value,trigger:s},bubbles:!0,composed:!0,cancelable:!0});if(!this.dispatchEvent(l))return!1;this.value=i.value;const n={index:r,value:i.value,label:i.label,trigger:s};return this.dispatchEvent(new CustomEvent("input",{detail:n,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:n,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("select",{detail:n,bubbles:!0,composed:!0})),!0}_onClick(t){const r=t.target?.closest(".trigger");if(!r||!this.hasAttribute("clickable")&&!this.hasAttribute("linear"))return;const s=Number(r.getAttribute("data-index"));if(!Number.isInteger(s))return;const i=this._steps(),a=this._activeIndex(i);this._selectIndex(i,a,s,"click")}_moveFocus(t,e){const r=Array.from(this.root.querySelectorAll(".trigger:not([disabled])"));if(!r.length)return;const s=r.indexOf(t);if(s<0)return;const i=(s+e+r.length)%r.length;r[i].focus()}_onKeyDown(t){const r=t.target?.closest(".trigger");if(!r)return;const s=this.getAttribute("orientation")==="vertical",i=!s&&getComputedStyle(this).direction==="rtl",a=s?"ArrowDown":i?"ArrowLeft":"ArrowRight",l=s?"ArrowUp":i?"ArrowRight":"ArrowLeft";if(t.key===a){t.preventDefault(),this._moveFocus(r,1);return}if(t.key===l){t.preventDefault(),this._moveFocus(r,-1);return}if(t.key==="Home"||t.key==="End"){const n=Array.from(this.root.querySelectorAll(".trigger:not([disabled])"));if(!n.length)return;t.preventDefault(),(t.key==="Home"?n[0]:n[n.length-1]).focus();return}(t.key===" "||t.key==="Enter")&&(t.preventDefault(),r.click())}_syncValueUi(){if(!this.isConnected)return;if(!this.root.querySelector(".list")){this.requestRender();return}const t=this._steps();if(!t.length)return;this._isSyncingValueAttribute=!0;let e=-1;try{e=this._activeIndex(t)}finally{this._isSyncingValueAttribute=!1}Array.from(this.root.querySelectorAll(".item")).forEach((s,i)=>{const a=t[i];if(!a)return;const l=a.state!=="default"?a.state:i<e?"complete":i===e?"current":"upcoming";s.setAttribute("data-state",l),s.setAttribute("data-active",i===e?"true":"false");const n=s.querySelector(".trigger");n&&n.setAttribute("aria-current",i===e?"step":"false");const c=s.querySelector(".index");c&&(c.textContent=i<e?"✓":String(i+1))})}render(){const t=this._steps(),e=this._activeIndex(t),r=this.getAttribute("aria-label")||"Stepper",s=t.map((i,a)=>`
283
249
  <li class="item" part="item" data-state="${i.state!=="default"?i.state:a<e?"complete":a===e?"current":"upcoming"}" data-active="${a===e?"true":"false"}">
284
250
  <button
285
251
  type="button"
@@ -299,7 +265,7 @@
299
265
  ${a<t.length-1?'<span class="connector" part="connector"></span>':""}
300
266
  </li>
301
267
  `).join("");this.setContent(`
302
- <style>${g}</style>
268
+ <style>${b}</style>
303
269
  <section class="frame" part="frame" role="group" aria-label="${u(r)}">
304
270
  <ol class="list" part="list">${s}</ol>
305
271
  </section>
@@ -1,10 +1,10 @@
1
1
  import { E as d } from "./ElementBase-BeZT54Hj.mjs";
2
- const b = `
2
+ const g = `
3
3
  :host {
4
4
  --ui-stepper-gap: 8px;
5
- --ui-stepper-radius: 12px;
6
- --ui-stepper-bg: color-mix(in srgb, var(--ui-color-surface, #ffffff) 95%, transparent);
7
- --ui-stepper-border: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 76%, transparent);
5
+ --ui-stepper-radius: calc(var(--ui-radius, 6px) + 2px);
6
+ --ui-stepper-bg: transparent;
7
+ --ui-stepper-border: var(--ui-color-line, color-mix(in srgb, var(--ui-color-border, #cbd5e1) 76%, transparent));
8
8
  --ui-stepper-text: var(--ui-color-text, #0f172a);
9
9
  --ui-stepper-muted: var(--ui-color-muted, #526175);
10
10
  --ui-stepper-accent: var(--ui-color-primary, #2563eb);
@@ -18,11 +18,10 @@ const b = `
18
18
  }
19
19
 
20
20
  .frame {
21
- border: 1px solid var(--ui-stepper-border);
21
+ border: 0;
22
22
  border-radius: var(--ui-stepper-radius);
23
23
  background: var(--ui-stepper-bg);
24
- box-shadow: 0 6px 16px rgba(15, 23, 42, 0.05);
25
- padding: 10px;
24
+ padding: 0;
26
25
  }
27
26
 
28
27
  .list {
@@ -49,9 +48,9 @@ const b = `
49
48
  .trigger {
50
49
  min-inline-size: 0;
51
50
  inline-size: 100%;
52
- border: 1px solid color-mix(in srgb, var(--ui-stepper-border) 82%, transparent);
53
- border-radius: 11px;
54
- background: color-mix(in srgb, var(--ui-stepper-bg) 98%, transparent);
51
+ border: 1px solid transparent;
52
+ border-radius: var(--ui-control-radius-2, var(--ui-radius, 6px));
53
+ background: transparent;
55
54
  color: var(--ui-stepper-text);
56
55
  padding: 8px 10px;
57
56
  display: grid;
@@ -64,13 +63,12 @@ const b = `
64
63
  }
65
64
 
66
65
  .trigger:hover {
67
- border-color: color-mix(in srgb, var(--ui-stepper-accent) 20%, var(--ui-stepper-border));
68
- background: color-mix(in srgb, var(--ui-stepper-accent) 4%, transparent);
66
+ background: var(--ui-color-fill, color-mix(in srgb, var(--ui-stepper-accent) 4%, transparent));
69
67
  }
70
68
 
71
69
  .trigger:focus-visible {
72
- outline: 2px solid var(--ui-stepper-focus);
73
- outline-offset: 1px;
70
+ outline: var(--ui-ring-width, 2px) solid var(--ui-ring-color, var(--ui-stepper-focus));
71
+ outline-offset: var(--ui-ring-offset, 2px);
74
72
  }
75
73
 
76
74
  .trigger[disabled] {
@@ -80,27 +78,17 @@ const b = `
80
78
 
81
79
  .index {
82
80
  position: relative;
83
- inline-size: 20px;
84
- block-size: 20px;
81
+ inline-size: 24px;
82
+ block-size: 24px;
85
83
  border-radius: 999px;
86
- border: 1px solid color-mix(in srgb, var(--ui-stepper-border) 82%, transparent);
84
+ border: 1px solid var(--ui-stepper-border);
87
85
  display: inline-grid;
88
86
  place-items: center;
89
- font-size: 11px;
90
- font-weight: 700;
87
+ font-size: 12px;
88
+ font-weight: 500;
91
89
  line-height: 1;
92
90
  }
93
91
 
94
- .item[data-state="current"] .index::after {
95
- content: "";
96
- position: absolute;
97
- inset: -5px;
98
- border-radius: inherit;
99
- border: 1px solid color-mix(in srgb, var(--ui-stepper-accent) 34%, transparent);
100
- opacity: 0.18;
101
- pointer-events: none;
102
- }
103
-
104
92
  .meta {
105
93
  min-inline-size: 0;
106
94
  display: grid;
@@ -116,8 +104,8 @@ const b = `
116
104
  }
117
105
 
118
106
  .label {
119
- font-size: 12px;
120
- font-weight: 600;
107
+ font-size: 14px;
108
+ font-weight: 500;
121
109
  }
122
110
 
123
111
  .description {
@@ -130,7 +118,7 @@ const b = `
130
118
  inline-size: 100%;
131
119
  block-size: 2px;
132
120
  border-radius: 999px;
133
- background: color-mix(in srgb, var(--ui-stepper-border) 82%, transparent);
121
+ background: var(--ui-stepper-border);
134
122
  overflow: hidden;
135
123
  }
136
124
 
@@ -140,45 +128,23 @@ const b = `
140
128
  margin-inline-start: 9px;
141
129
  }
142
130
 
143
- .item[data-state="current"] .trigger {
144
- border-color: color-mix(in srgb, var(--ui-stepper-accent) 28%, var(--ui-stepper-border));
145
- background: color-mix(in srgb, var(--ui-stepper-accent) 7%, transparent);
131
+ /* Done is a soft accent fill; the current step is a solid one. */
132
+ .item[data-state="complete"] .index {
133
+ border-color: transparent;
134
+ background: var(--ui-color-accent-fill, color-mix(in srgb, var(--ui-stepper-accent) 14%, transparent));
135
+ color: var(--ui-color-accent-text, color-mix(in srgb, var(--ui-stepper-accent) 68%, #0f172a 32%));
146
136
  }
147
137
 
148
- .item[data-state="current"] .index,
149
- .item[data-state="complete"] .index {
150
- border-color: color-mix(in srgb, var(--ui-stepper-accent) 28%, var(--ui-stepper-border));
151
- background: color-mix(in srgb, var(--ui-stepper-accent) 10%, transparent);
152
- color: color-mix(in srgb, var(--ui-stepper-accent) 68%, #0f172a 32%);
138
+ .item[data-state="current"] .index {
139
+ border-color: transparent;
140
+ background: var(--ui-stepper-accent);
141
+ color: var(--ui-color-foreground-on-primary, #ffffff);
153
142
  }
154
143
 
155
144
  .item[data-state="complete"] .connector {
156
145
  background: color-mix(in srgb, var(--ui-stepper-accent) 32%, transparent);
157
146
  }
158
147
 
159
- .item[data-state="current"] .connector::after {
160
- content: "";
161
- position: absolute;
162
- inset: 0;
163
- background: linear-gradient(
164
- 90deg,
165
- transparent 0%,
166
- color-mix(in srgb, var(--ui-stepper-accent) 24%, transparent) 50%,
167
- transparent 100%
168
- );
169
- opacity: 0.45;
170
- pointer-events: none;
171
- }
172
-
173
- :host([orientation="vertical"]) .item[data-state="current"] .connector::after {
174
- background: linear-gradient(
175
- 180deg,
176
- transparent 0%,
177
- color-mix(in srgb, var(--ui-stepper-accent) 24%, transparent) 50%,
178
- transparent 100%
179
- );
180
- }
181
-
182
148
  .item[data-state="error"] .trigger {
183
149
  border-color: color-mix(in srgb, var(--ui-color-danger, #dc2626) 50%, transparent);
184
150
  }
@@ -284,7 +250,7 @@ const b = `
284
250
  function u(o) {
285
251
  return o.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
286
252
  }
287
- function g(o) {
253
+ function b(o) {
288
254
  if (!o) return [];
289
255
  try {
290
256
  const t = JSON.parse(o);
@@ -352,7 +318,7 @@ class f extends d {
352
318
  });
353
319
  }
354
320
  _fromAttr() {
355
- return g(this.getAttribute("steps")).map((t, e) => {
321
+ return b(this.getAttribute("steps")).map((t, e) => {
356
322
  const r = t.state === "complete" || t.state === "error" || t.state === "warning" ? t.state : "default";
357
323
  return {
358
324
  index: e,
@@ -514,7 +480,7 @@ class f extends d {
514
480
  </li>
515
481
  `).join("");
516
482
  this.setContent(`
517
- <style>${b}</style>
483
+ <style>${g}</style>
518
484
  <section class="frame" part="frame" role="group" aria-label="${u(r)}">
519
485
  <ol class="list" part="list">${s}</ol>
520
486
  </section>