@editora/ui-core 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/dist/{ElementBase-DxbvhLJs.js → ElementBase-CbUsP3D6.js} +1 -1
  2. package/dist/{ElementBase-BeZT54Hj.mjs → ElementBase-D5QsC5Vw.mjs} +10 -1
  3. package/dist/ElementBase.d.ts +7 -0
  4. package/dist/ElementBase.d.ts.map +1 -1
  5. package/dist/accordion.cjs.js +1 -1
  6. package/dist/accordion.esm.js +1 -1
  7. package/dist/add-icons-CVeHOsWl.js +1 -0
  8. package/dist/add-icons-DBUZJ0g7.mjs +14 -0
  9. package/dist/add-icons.cjs.js +1 -0
  10. package/dist/add-icons.d.ts +16 -0
  11. package/dist/add-icons.d.ts.map +1 -0
  12. package/dist/add-icons.esm.js +4 -0
  13. package/dist/alert-dialog.cjs.js +24 -24
  14. package/dist/alert-dialog.esm.js +112 -107
  15. package/dist/alert.cjs.js +8 -8
  16. package/dist/alert.esm.js +22 -22
  17. package/dist/animated-beam.cjs.js +1 -1
  18. package/dist/animated-beam.esm.js +1 -1
  19. package/dist/animated-list.cjs.js +1 -1
  20. package/dist/animated-list.esm.js +1 -1
  21. package/dist/animated-text.cjs.js +1 -1
  22. package/dist/animated-text.esm.js +1 -1
  23. package/dist/app-header.cjs.js +15 -3
  24. package/dist/app-header.esm.js +31 -4
  25. package/dist/aspect-ratio.cjs.js +1 -1
  26. package/dist/aspect-ratio.esm.js +1 -1
  27. package/dist/avatar.cjs.js +1 -1
  28. package/dist/avatar.esm.js +1 -1
  29. package/dist/badge.cjs.js +1 -1
  30. package/dist/badge.esm.js +1 -1
  31. package/dist/block-controls.cjs.js +1 -1
  32. package/dist/block-controls.esm.js +1 -1
  33. package/dist/box.cjs.js +1 -1
  34. package/dist/box.esm.js +1 -1
  35. package/dist/breadcrumb.cjs.js +4 -4
  36. package/dist/breadcrumb.esm.js +93 -84
  37. package/dist/button.cjs.js +520 -1
  38. package/dist/button.esm.js +682 -2
  39. package/dist/{calendar-CzpWDxLc.js → calendar-BsVqtpjM.js} +6 -6
  40. package/dist/{calendar-DkSDFg33.mjs → calendar-CFafqZVA.mjs} +6 -6
  41. package/dist/calendar.cjs.js +1 -1
  42. package/dist/calendar.esm.js +1 -1
  43. package/dist/card.cjs.js +6 -5
  44. package/dist/card.esm.js +52 -39
  45. package/dist/chart.cjs.js +2 -2
  46. package/dist/chart.esm.js +2 -2
  47. package/dist/checkbox.cjs.js +4 -4
  48. package/dist/checkbox.esm.js +36 -15
  49. package/dist/clone-source-BxK2pEVw.mjs +11 -0
  50. package/dist/clone-source-C7E_ri5f.js +1 -0
  51. package/dist/collapsible.cjs.js +1 -1
  52. package/dist/collapsible.esm.js +1 -1
  53. package/dist/color-picker.cjs.js +2 -2
  54. package/dist/color-picker.esm.js +3 -3
  55. package/dist/combobox.cjs.js +4 -4
  56. package/dist/combobox.esm.js +22 -19
  57. package/dist/command-palette.cjs.js +1 -1
  58. package/dist/command-palette.esm.js +1 -1
  59. package/dist/command.cjs.js +1 -1
  60. package/dist/command.esm.js +1 -1
  61. package/dist/components/ui-alert-dialog.d.ts.map +1 -1
  62. package/dist/components/ui-alert.d.ts.map +1 -1
  63. package/dist/components/ui-app-header.d.ts +1 -0
  64. package/dist/components/ui-app-header.d.ts.map +1 -1
  65. package/dist/components/ui-breadcrumb.d.ts.map +1 -1
  66. package/dist/components/ui-card.d.ts +7 -0
  67. package/dist/components/ui-card.d.ts.map +1 -1
  68. package/dist/components/ui-checkbox.d.ts +6 -0
  69. package/dist/components/ui-checkbox.d.ts.map +1 -1
  70. package/dist/components/ui-combobox.d.ts.map +1 -1
  71. package/dist/components/ui-date-time-picker.d.ts.map +1 -1
  72. package/dist/components/ui-dialog.d.ts +1 -0
  73. package/dist/components/ui-dialog.d.ts.map +1 -1
  74. package/dist/components/ui-drawer.d.ts.map +1 -1
  75. package/dist/components/ui-dropdown.d.ts.map +1 -1
  76. package/dist/components/ui-empty-state.d.ts.map +1 -1
  77. package/dist/components/ui-hover-card.d.ts.map +1 -1
  78. package/dist/components/ui-icon.d.ts +1 -0
  79. package/dist/components/ui-icon.d.ts.map +1 -1
  80. package/dist/components/ui-input.d.ts +16 -0
  81. package/dist/components/ui-input.d.ts.map +1 -1
  82. package/dist/components/ui-layout.d.ts +20 -0
  83. package/dist/components/ui-layout.d.ts.map +1 -1
  84. package/dist/components/ui-menu.d.ts +1 -0
  85. package/dist/components/ui-menu.d.ts.map +1 -1
  86. package/dist/components/ui-menubar.d.ts.map +1 -1
  87. package/dist/components/ui-multi-select.d.ts +6 -0
  88. package/dist/components/ui-multi-select.d.ts.map +1 -1
  89. package/dist/components/ui-number-field.d.ts +6 -0
  90. package/dist/components/ui-number-field.d.ts.map +1 -1
  91. package/dist/components/ui-pagination.d.ts.map +1 -1
  92. package/dist/components/ui-password-field.d.ts +11 -0
  93. package/dist/components/ui-password-field.d.ts.map +1 -1
  94. package/dist/components/ui-popover.d.ts.map +1 -1
  95. package/dist/components/ui-positioner.d.ts.map +1 -1
  96. package/dist/components/ui-radio-group.d.ts +6 -0
  97. package/dist/components/ui-radio-group.d.ts.map +1 -1
  98. package/dist/components/ui-rating.d.ts +1 -0
  99. package/dist/components/ui-rating.d.ts.map +1 -1
  100. package/dist/components/ui-select.d.ts +7 -0
  101. package/dist/components/ui-select.d.ts.map +1 -1
  102. package/dist/components/ui-sidebar.d.ts +1 -0
  103. package/dist/components/ui-sidebar.d.ts.map +1 -1
  104. package/dist/components/ui-slider.d.ts +6 -0
  105. package/dist/components/ui-slider.d.ts.map +1 -1
  106. package/dist/components/ui-sortable.d.ts +1 -0
  107. package/dist/components/ui-sortable.d.ts.map +1 -1
  108. package/dist/components/ui-switch.d.ts +6 -0
  109. package/dist/components/ui-switch.d.ts.map +1 -1
  110. package/dist/components/ui-tabs.d.ts +2 -0
  111. package/dist/components/ui-tabs.d.ts.map +1 -1
  112. package/dist/components/ui-textarea.d.ts +6 -0
  113. package/dist/components/ui-textarea.d.ts.map +1 -1
  114. package/dist/components/ui-toast.d.ts.map +1 -1
  115. package/dist/components/ui-tooltip.d.ts.map +1 -1
  116. package/dist/container.cjs.js +1 -1
  117. package/dist/container.esm.js +1 -1
  118. package/dist/context-menu.cjs.js +2 -2
  119. package/dist/context-menu.esm.js +2 -2
  120. package/dist/control-group.cjs.js +1 -1
  121. package/dist/control-group.esm.js +1 -1
  122. package/dist/data-table.cjs.js +5 -5
  123. package/dist/data-table.esm.js +7 -7
  124. package/dist/date-field.cjs.js +1 -1
  125. package/dist/date-field.esm.js +3 -3
  126. package/dist/date-picker.cjs.js +2 -2
  127. package/dist/date-picker.esm.js +17 -17
  128. package/dist/date-range-picker.cjs.js +2 -2
  129. package/dist/date-range-picker.esm.js +4 -4
  130. package/dist/date-range-time-picker.cjs.js +3 -3
  131. package/dist/date-range-time-picker.esm.js +16 -16
  132. package/dist/date-time-picker.cjs.js +26 -23
  133. package/dist/date-time-picker.esm.js +49 -46
  134. package/dist/{date-time-utils-zAx4ghvC.mjs → date-time-utils-CJUksWj3.mjs} +1 -1
  135. package/dist/{date-time-utils-C-4eHTyy.js → date-time-utils-D3hQQ5Om.js} +1 -1
  136. package/dist/description.cjs.js +1 -1
  137. package/dist/description.esm.js +1 -1
  138. package/dist/dialog.cjs.js +7 -7
  139. package/dist/dialog.esm.js +51 -47
  140. package/dist/direction-provider.cjs.js +1 -1
  141. package/dist/direction-provider.esm.js +1 -1
  142. package/dist/dismissable-layer.cjs.js +1 -1
  143. package/dist/dismissable-layer.esm.js +1 -1
  144. package/dist/dock.cjs.js +1 -1
  145. package/dist/dock.esm.js +1 -1
  146. package/dist/drawer.cjs.js +5 -5
  147. package/dist/drawer.esm.js +18 -17
  148. package/dist/dropdown.cjs.js +7 -7
  149. package/dist/dropdown.esm.js +39 -38
  150. package/dist/empty-state.cjs.js +12 -2
  151. package/dist/empty-state.esm.js +17 -7
  152. package/dist/field-error.cjs.js +1 -1
  153. package/dist/field-error.esm.js +1 -1
  154. package/dist/field.cjs.js +2 -2
  155. package/dist/field.esm.js +2 -2
  156. package/dist/fieldset.cjs.js +1 -1
  157. package/dist/fieldset.esm.js +1 -1
  158. package/dist/file-upload.cjs.js +1 -1
  159. package/dist/file-upload.esm.js +1 -1
  160. package/dist/flex.cjs.js +1 -1
  161. package/dist/flex.esm.js +1 -1
  162. package/dist/floating-toolbar.cjs.js +2 -2
  163. package/dist/floating-toolbar.esm.js +2 -2
  164. package/dist/focus-scope-Dl0qk5GP.mjs +177 -0
  165. package/dist/focus-scope-Doz0bnE1.js +1 -0
  166. package/dist/focus-scope.cjs.js +1 -1
  167. package/dist/focus-scope.esm.js +2 -2
  168. package/dist/form-control-B90_3kYN.js +1 -0
  169. package/dist/form-control-D9wWUMBl.mjs +86 -0
  170. package/dist/form.cjs.js +2 -2
  171. package/dist/form.esm.js +2 -2
  172. package/dist/gantt.cjs.js +2 -2
  173. package/dist/gantt.esm.js +2 -2
  174. package/dist/grid.cjs.js +1 -1
  175. package/dist/grid.esm.js +1 -1
  176. package/dist/hover-card.cjs.js +5 -5
  177. package/dist/hover-card.esm.js +19 -18
  178. package/dist/icon-cloud.cjs.js +1 -1
  179. package/dist/icon-cloud.esm.js +1 -1
  180. package/dist/icon.cjs.js +207 -1
  181. package/dist/icon.esm.js +294 -2
  182. package/dist/icons-CpCpPXV5.js +1 -0
  183. package/dist/icons-DWYbbhb0.mjs +115 -0
  184. package/dist/icons.d.ts +11 -1
  185. package/dist/icons.d.ts.map +1 -1
  186. package/dist/implicit-submit-B6M5Uc56.js +1 -0
  187. package/dist/implicit-submit-Lr0-q2LR.mjs +44 -0
  188. package/dist/index.cjs.js +1 -1
  189. package/dist/index.d.ts +1 -0
  190. package/dist/index.d.ts.map +1 -1
  191. package/dist/index.esm.js +309 -299
  192. package/dist/inline-edit.cjs.js +1 -1
  193. package/dist/inline-edit.esm.js +1 -1
  194. package/dist/input.cjs.js +62 -20
  195. package/dist/input.esm.js +164 -58
  196. package/dist/label.cjs.js +1 -1
  197. package/dist/label.esm.js +1 -1
  198. package/dist/layout.cjs.js +145 -4
  199. package/dist/layout.esm.js +278 -40
  200. package/dist/marquee.cjs.js +1 -1
  201. package/dist/marquee.esm.js +1 -1
  202. package/dist/masonry-grid.cjs.js +1 -1
  203. package/dist/masonry-grid.esm.js +1 -1
  204. package/dist/menu.cjs.js +8 -8
  205. package/dist/menu.esm.js +51 -47
  206. package/dist/menubar.cjs.js +9 -9
  207. package/dist/menubar.esm.js +41 -40
  208. package/dist/meter.cjs.js +1 -1
  209. package/dist/meter.esm.js +1 -1
  210. package/dist/multi-select.cjs.js +7 -7
  211. package/dist/multi-select.esm.js +55 -34
  212. package/dist/navigate-CXebafwF.mjs +18 -0
  213. package/dist/navigate-ChJVIIuS.js +1 -0
  214. package/dist/navigation-menu.cjs.js +1 -1
  215. package/dist/navigation-menu.esm.js +1 -1
  216. package/dist/number-attribute-BAF07JrU.mjs +8 -0
  217. package/dist/number-attribute-C4Rrl7d3.js +1 -0
  218. package/dist/number-field.cjs.js +8 -8
  219. package/dist/number-field.esm.js +90 -69
  220. package/dist/number-ticker.cjs.js +1 -1
  221. package/dist/number-ticker.esm.js +1 -1
  222. package/dist/odometer.cjs.js +1 -1
  223. package/dist/odometer.esm.js +1 -1
  224. package/dist/orbiter.cjs.js +1 -1
  225. package/dist/orbiter.esm.js +1 -1
  226. package/dist/pagination.cjs.js +24 -23
  227. package/dist/pagination.esm.js +61 -46
  228. package/dist/{panel-group-BVHJEdfx.js → panel-group-BIzzpQ5i.js} +1 -1
  229. package/dist/{panel-group-BxO_eNW6.mjs → panel-group-CFLjzRWI.mjs} +1 -1
  230. package/dist/panel-group.cjs.js +1 -1
  231. package/dist/panel-group.esm.js +1 -1
  232. package/dist/panel.cjs.js +1 -1
  233. package/dist/panel.esm.js +1 -1
  234. package/dist/password-field.cjs.js +36 -16
  235. package/dist/password-field.esm.js +113 -44
  236. package/dist/pin-input.cjs.js +1 -1
  237. package/dist/pin-input.esm.js +1 -1
  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 +2 -2
  243. package/dist/popover.esm.js +28 -26
  244. package/dist/portal.cjs.js +1 -1
  245. package/dist/portal.esm.js +1 -1
  246. package/dist/positioner.cjs.js +2 -2
  247. package/dist/positioner.esm.js +35 -38
  248. package/dist/preload.cjs.js +221 -0
  249. package/dist/preload.css +220 -0
  250. package/dist/preload.d.ts +17 -0
  251. package/dist/preload.d.ts.map +1 -0
  252. package/dist/preload.esm.js +224 -0
  253. package/dist/presence.cjs.js +1 -1
  254. package/dist/presence.esm.js +1 -1
  255. package/dist/primitives/clone-source.d.ts +3 -0
  256. package/dist/primitives/clone-source.d.ts.map +1 -0
  257. package/dist/primitives/focus-scope.d.ts +6 -0
  258. package/dist/primitives/focus-scope.d.ts.map +1 -1
  259. package/dist/primitives/form-control.d.ts +68 -0
  260. package/dist/primitives/form-control.d.ts.map +1 -0
  261. package/dist/primitives/implicit-submit.d.ts +17 -0
  262. package/dist/primitives/implicit-submit.d.ts.map +1 -0
  263. package/dist/primitives/navigate.d.ts +27 -0
  264. package/dist/primitives/navigate.d.ts.map +1 -0
  265. package/dist/primitives/number-attribute.d.ts +7 -0
  266. package/dist/primitives/number-attribute.d.ts.map +1 -0
  267. package/dist/primitives/slotted-input.d.ts +19 -0
  268. package/dist/primitives/slotted-input.d.ts.map +1 -0
  269. package/dist/progress.cjs.js +3 -3
  270. package/dist/progress.esm.js +3 -3
  271. package/dist/quick-actions.cjs.js +5 -5
  272. package/dist/quick-actions.esm.js +3 -3
  273. package/dist/radio-group.cjs.js +9 -9
  274. package/dist/radio-group.esm.js +47 -24
  275. package/dist/radio.cjs.js +1 -1
  276. package/dist/radio.esm.js +1 -1
  277. package/dist/rating.cjs.js +6 -6
  278. package/dist/rating.esm.js +21 -10
  279. package/dist/{runtime-CJzoaC8Z.mjs → runtime-CORXjP7e.mjs} +366 -352
  280. package/dist/runtime-uCly3ECd.js +5 -0
  281. package/dist/runtime.cjs.js +1 -1
  282. package/dist/runtime.esm.js +1 -1
  283. package/dist/scroll-area.cjs.js +1 -1
  284. package/dist/scroll-area.esm.js +1 -1
  285. package/dist/section.cjs.js +1 -1
  286. package/dist/section.esm.js +1 -1
  287. package/dist/select.cjs.js +21 -21
  288. package/dist/select.esm.js +111 -71
  289. package/dist/selection-popup.cjs.js +2 -2
  290. package/dist/selection-popup.esm.js +2 -2
  291. package/dist/semantic-tokens.d.ts.map +1 -1
  292. package/dist/separator.cjs.js +1 -1
  293. package/dist/separator.esm.js +1 -1
  294. package/dist/sidebar.cjs.js +15 -15
  295. package/dist/sidebar.esm.js +48 -42
  296. package/dist/skeleton.cjs.js +1 -1
  297. package/dist/skeleton.esm.js +1 -1
  298. package/dist/slider.cjs.js +11 -11
  299. package/dist/slider.esm.js +40 -23
  300. package/dist/slot.cjs.js +1 -1
  301. package/dist/slot.esm.js +1 -1
  302. package/dist/slotted-input-BVq2QQg2.js +1 -0
  303. package/dist/slotted-input-atWznLfm.mjs +13 -0
  304. package/dist/sortable.cjs.js +25 -25
  305. package/dist/sortable.esm.js +29 -21
  306. package/dist/spinning-text.cjs.js +1 -1
  307. package/dist/spinning-text.esm.js +1 -1
  308. package/dist/split-button.cjs.js +1 -1
  309. package/dist/split-button.esm.js +1 -1
  310. package/dist/splitter.cjs.js +1 -1
  311. package/dist/splitter.esm.js +1 -1
  312. package/dist/standalone/add-icons.d.ts +2 -0
  313. package/dist/standalone/add-icons.d.ts.map +1 -0
  314. package/dist/standalone/preload.d.ts +2 -0
  315. package/dist/standalone/preload.d.ts.map +1 -0
  316. package/dist/stepper.cjs.js +3 -3
  317. package/dist/stepper.esm.js +3 -3
  318. package/dist/switch.cjs.js +9 -9
  319. package/dist/switch.esm.js +56 -35
  320. package/dist/table.cjs.js +1 -1
  321. package/dist/table.esm.js +1 -1
  322. package/dist/tabs.cjs.js +14 -14
  323. package/dist/tabs.esm.js +129 -115
  324. package/dist/tags-input.cjs.js +1 -1
  325. package/dist/tags-input.esm.js +1 -1
  326. package/dist/textarea.cjs.js +33 -11
  327. package/dist/textarea.esm.js +74 -35
  328. package/dist/theme.d.ts +6 -0
  329. package/dist/theme.d.ts.map +1 -1
  330. package/dist/time-field.cjs.js +1 -1
  331. package/dist/time-field.esm.js +2 -2
  332. package/dist/time-picker.cjs.js +1 -1
  333. package/dist/time-picker.esm.js +3 -3
  334. package/dist/timeline.cjs.js +2 -2
  335. package/dist/timeline.esm.js +2 -2
  336. package/dist/toast.cjs.js +4 -4
  337. package/dist/toast.esm.js +17 -16
  338. package/dist/toggle-group.cjs.js +1 -1
  339. package/dist/toggle-group.esm.js +1 -1
  340. package/dist/toggle.cjs.js +3 -3
  341. package/dist/toggle.esm.js +9 -9
  342. package/dist/toolbar.cjs.js +1 -1
  343. package/dist/toolbar.esm.js +1 -1
  344. package/dist/tooltip.cjs.js +2 -2
  345. package/dist/tooltip.esm.js +12 -14
  346. package/dist/transfer-list.cjs.js +1 -1
  347. package/dist/transfer-list.esm.js +1 -1
  348. package/dist/{tree-33fVNnaf.mjs → tree-CD2k2lIC.mjs} +1 -1
  349. package/dist/{tree-Dc02MChE.js → tree-ChQfhxya.js} +1 -1
  350. package/dist/tree-item.cjs.js +1 -1
  351. package/dist/tree-item.esm.js +1 -1
  352. package/dist/tree.cjs.js +1 -1
  353. package/dist/tree.esm.js +1 -1
  354. package/dist/visually-hidden.cjs.js +1 -1
  355. package/dist/visually-hidden.esm.js +1 -1
  356. package/dist/wizard.cjs.js +4 -4
  357. package/dist/wizard.esm.js +4 -4
  358. package/package.json +3 -2
  359. package/dist/focus-scope-Bwug2gDv.js +0 -1
  360. package/dist/focus-scope-CmEsG5UZ.mjs +0 -138
  361. package/dist/runtime-DYSIU3sR.js +0 -5
  362. package/dist/ui-button-C3OmI7Sn.mjs +0 -684
  363. package/dist/ui-button-CnLwXBnx.js +0 -520
  364. package/dist/ui-icon-D3avtxX_.js +0 -207
  365. package/dist/ui-icon-DLhB08Fo.mjs +0 -361
@@ -1,10 +1,12 @@
1
- import { E as R } from "./ElementBase-BeZT54Hj.mjs";
2
- import { s as M, O as $ } from "./overlay-motion-BX3dPLay.mjs";
3
- import { e as q } from "./control-name-Bpj7F34X.mjs";
4
- import { f as L, b as F, a as D } from "./collection-C7URGjEI.mjs";
5
- import { r as O } from "./listbox-hMVOhKHC.mjs";
6
- const T = `
7
- ${$}
1
+ import { E as q } from "./ElementBase-D5QsC5Vw.mjs";
2
+ import { h as L } from "./clone-source-BxK2pEVw.mjs";
3
+ import { F as D, i as O } from "./form-control-D9wWUMBl.mjs";
4
+ import { s as T, O as B } from "./overlay-motion-BX3dPLay.mjs";
5
+ import { e as N } from "./control-name-Bpj7F34X.mjs";
6
+ import { f as H, b as U, a as V } from "./collection-C7URGjEI.mjs";
7
+ import { r as W } from "./listbox-hMVOhKHC.mjs";
8
+ const Y = `
9
+ ${B}
8
10
 
9
11
  :host {
10
12
  --ui-select-width: var(--ui-width, min(340px, 100%));
@@ -609,7 +611,7 @@ const T = `
609
611
  --ui-select-label: #e2e8f0;
610
612
  --ui-select-description: #93a4bd;
611
613
  --ui-select-border-color: #334155;
612
- --ui-select-focus: #93c5fd;
614
+ --ui-select-focus: var(--ui-color-accent-on-dark, #93c5fd);
613
615
  --ui-select-indicator-color: #9fb3cf;
614
616
  --ui-select-elevation: 0 10px 30px rgba(2, 6, 23, 0.35);
615
617
  --ui-select-menu-bg: #0b1324;
@@ -715,20 +717,20 @@ const T = `
715
717
  }
716
718
  }
717
719
  `;
718
- function h(p) {
719
- if (p == null) return !1;
720
- const e = String(p).toLowerCase();
720
+ function h(m) {
721
+ if (m == null) return !1;
722
+ const e = String(m).toLowerCase();
721
723
  return e !== "false" && e !== "0";
722
724
  }
723
- function v(p) {
724
- return String(p).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
725
+ function _(m) {
726
+ return String(m).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
725
727
  }
726
- function U(p) {
727
- if (!p) return null;
728
- const e = String(p).trim();
728
+ function j(m) {
729
+ if (!m) return null;
730
+ const e = String(m).trim();
729
731
  return e ? e === "none" ? "4px" : e === "full" ? "999px" : e === "large" ? "16px" : /^-?\\d+(\\.\\d+)?$/.test(e) ? `${e}px` : e : null;
730
732
  }
731
- const S = /* @__PURE__ */ new Set([
733
+ const P = /* @__PURE__ */ new Set([
732
734
  "value",
733
735
  "disabled",
734
736
  "loading",
@@ -756,10 +758,20 @@ const S = /* @__PURE__ */ new Set([
756
758
  "data-invalid",
757
759
  "data-valid",
758
760
  "close-on-scroll"
759
- ]);
760
- class B extends R {
761
+ ]), E = class E extends q {
761
762
  constructor() {
762
- super(), this._controlEl = null, this._triggerEl = null, this._valueEl = null, this._panelEl = null, this._menuEl = null, this._observer = null, this._formUnregister = null, this._optionsSyncRaf = 0, this._panelPlacementRaf = 0, this._uid = Math.random().toString(36).slice(2, 8), this._options = [], this._menuItems = [], this._optionsFingerprint = "", this._menuRenderFingerprint = "", this._open = !1, this._activeIndex = -1, this._placement = "bottom", this._onRootClick = this._onRootClick.bind(this), this._onRootKeyDown = this._onRootKeyDown.bind(this), this._onRootPointerDown = this._onRootPointerDown.bind(this), this._onRootPointerMove = this._onRootPointerMove.bind(this), this._onSlotChange = this._onSlotChange.bind(this), this._onDocumentPointerDown = this._onDocumentPointerDown.bind(this), this._onWindowResize = this._onWindowResize.bind(this), this._onWindowScroll = this._onWindowScroll.bind(this);
763
+ super(), this._formControl = new D(this, {
764
+ getValue: () => this.value,
765
+ getValidity: () => ({
766
+ valueMissing: O(this) && !this.value,
767
+ message: "Please select an item in the list.",
768
+ anchor: this._triggerEl
769
+ }),
770
+ defaultAttribute: "value",
771
+ onFormDisabled: () => {
772
+ this._syncControlState(), this.disabled && this._open && this._closeMenu({ restoreFocus: !1 });
773
+ }
774
+ }), this._controlEl = null, this._triggerEl = null, this._valueEl = null, this._panelEl = null, this._menuEl = null, this._observer = null, this._formUnregister = null, this._optionsSyncRaf = 0, this._panelPlacementRaf = 0, this._renderedExternalHtml = "", this._uid = Math.random().toString(36).slice(2, 8), this._options = [], this._menuItems = [], this._optionsFingerprint = "", this._menuRenderFingerprint = "", this._open = !1, this._activeIndex = -1, this._placement = "bottom", this._onRootClick = this._onRootClick.bind(this), this._onRootKeyDown = this._onRootKeyDown.bind(this), this._onRootPointerDown = this._onRootPointerDown.bind(this), this._onRootPointerMove = this._onRootPointerMove.bind(this), this._onSlotChange = this._onSlotChange.bind(this), this._onDocumentPointerDown = this._onDocumentPointerDown.bind(this), this._onWindowResize = this._onWindowResize.bind(this), this._onWindowScroll = this._onWindowScroll.bind(this);
763
775
  }
764
776
  static get observedAttributes() {
765
777
  return [
@@ -794,8 +806,18 @@ class B extends R {
794
806
  "close-on-scroll"
795
807
  ];
796
808
  }
809
+ formResetCallback() {
810
+ this._formControl.formResetCallback();
811
+ }
812
+ formDisabledCallback(e) {
813
+ this._formControl.formDisabledCallback(e);
814
+ }
815
+ /** The `<form>` this field belongs to, if any. */
816
+ get form() {
817
+ return this._formControl.form;
818
+ }
797
819
  connectedCallback() {
798
- super.connectedCallback(), this.root.addEventListener("click", this._onRootClick), this.root.addEventListener("keydown", this._onRootKeyDown), this.root.addEventListener("pointerdown", this._onRootPointerDown), this.root.addEventListener("pointermove", this._onRootPointerMove, { passive: !0 }), this.root.addEventListener("slotchange", this._onSlotChange), this._observer = new MutationObserver((e) => {
820
+ super.connectedCallback(), this._formControl.connect(), this.root.addEventListener("click", this._onRootClick), this.root.addEventListener("keydown", this._onRootKeyDown), this.root.addEventListener("pointerdown", this._onRootPointerDown), this.root.addEventListener("pointermove", this._onRootPointerMove, { passive: !0 }), this.root.addEventListener("slotchange", this._onSlotChange), this._observer = new MutationObserver((e) => {
799
821
  e.some((i) => {
800
822
  if (!(i.target instanceof HTMLElement) || i.target === this) return i.type === "childList";
801
823
  const s = i.target.tagName.toLowerCase();
@@ -809,14 +831,14 @@ class B extends R {
809
831
  }), this._attachFormRegistration();
810
832
  }
811
833
  disconnectedCallback() {
812
- this.root.removeEventListener("click", this._onRootClick), this.root.removeEventListener("keydown", this._onRootKeyDown), this.root.removeEventListener("pointerdown", this._onRootPointerDown), this.root.removeEventListener("pointermove", this._onRootPointerMove), this.root.removeEventListener("slotchange", this._onSlotChange), this._teardownOpenListeners(), this._observer && (this._observer.disconnect(), this._observer = null), this._cancelOptionsSync(), this._cancelPanelPlacement(), this._formUnregister && (this._formUnregister(), this._formUnregister = null), super.disconnectedCallback();
834
+ this._formControl.disconnect(), this.root.removeEventListener("click", this._onRootClick), this.root.removeEventListener("keydown", this._onRootKeyDown), this.root.removeEventListener("pointerdown", this._onRootPointerDown), this.root.removeEventListener("pointermove", this._onRootPointerMove), this.root.removeEventListener("slotchange", this._onSlotChange), this._teardownOpenListeners(), this._observer && (this._observer.disconnect(), this._observer = null), this._cancelOptionsSync(), this._cancelPanelPlacement(), this._formUnregister && (this._formUnregister(), this._formUnregister = null), super.disconnectedCallback();
813
835
  }
814
836
  shouldRenderOnAttributeChange(e) {
815
- return !S.has(e);
837
+ return !P.has(e);
816
838
  }
817
839
  attributeChangedCallback(e, t, i) {
818
840
  if (t !== i) {
819
- if (e === "name" && this._attachFormRegistration(), this._triggerEl && S.has(e)) {
841
+ if (e === "name" && this._attachFormRegistration(), this._triggerEl && P.has(e)) {
820
842
  (e === "value" || e === "placeholder" || e === "required") && (this._syncOptionsData(), this._open && this._renderMenu()), (e === "show-check" || e === "check-placement") && this._open && this._renderMenu(), this._syncControlState(), this.disabled && this._open && this._closeMenu({ restoreFocus: !1 });
821
843
  return;
822
844
  }
@@ -831,7 +853,7 @@ class B extends R {
831
853
  t !== this.value && this.setAttribute("value", t);
832
854
  }
833
855
  get disabled() {
834
- return h(this.getAttribute("disabled")) || h(this.getAttribute("loading"));
856
+ return h(this.getAttribute("disabled")) || h(this.getAttribute("loading")) || !!this._formControl?.disabledByForm;
835
857
  }
836
858
  set disabled(e) {
837
859
  e ? this.setAttribute("disabled", "") : this.removeAttribute("disabled");
@@ -993,8 +1015,8 @@ class B extends R {
993
1015
  },
994
1016
  validate: async () => {
995
1017
  if (!(h(this.getAttribute("required")) || this.hasAttribute("required"))) return { valid: !0 };
996
- const l = this.value.trim().length > 0;
997
- return { valid: l, message: l ? void 0 : "This field is required." };
1018
+ const u = this.value.trim().length > 0;
1019
+ return { valid: u, message: u ? void 0 : "This field is required." };
998
1020
  },
999
1021
  setError: (o) => {
1000
1022
  o ? (this.setAttribute("validation", "error"), this.setAttribute("error", o)) : (this.getAttribute("validation") === "error" && this.removeAttribute("validation"), this.removeAttribute("error"));
@@ -1009,22 +1031,27 @@ class B extends R {
1009
1031
  this.getAttribute("value") !== t && this.setAttribute("value", t);
1010
1032
  }
1011
1033
  _buildOptionsFromChildren() {
1012
- const e = [], t = (r, u) => {
1034
+ const e = [];
1035
+ Array.from(this.children).forEach((r) => {
1036
+ const l = r.tagName.toLowerCase();
1037
+ (l === "option" || l === "optgroup") && !r.hasAttribute("slot") && L(r);
1038
+ });
1039
+ const t = (r, l) => {
1013
1040
  const n = (r.label || r.textContent || r.value || "").trim(), a = String(r.value ?? "");
1014
1041
  e.push({
1015
1042
  value: a,
1016
1043
  label: n || a,
1017
1044
  disabled: !!r.disabled,
1018
- group: u
1045
+ group: l
1019
1046
  });
1020
1047
  };
1021
1048
  Array.from(this.children).filter((r) => r instanceof HTMLElement ? !r.hasAttribute("slot") : !1).forEach((r) => {
1022
- const u = r.tagName.toLowerCase();
1023
- if (u === "option") {
1049
+ const l = r.tagName.toLowerCase();
1050
+ if (l === "option") {
1024
1051
  t(r, "");
1025
1052
  return;
1026
1053
  }
1027
- if (u === "optgroup") {
1054
+ if (l === "optgroup") {
1028
1055
  const n = r, a = (n.label || "").trim();
1029
1056
  Array.from(n.children).forEach((c) => {
1030
1057
  c instanceof HTMLOptionElement && e.push({
@@ -1036,20 +1063,20 @@ class B extends R {
1036
1063
  });
1037
1064
  }
1038
1065
  });
1039
- const s = (this.getAttribute("placeholder") || "").trim(), o = h(this.getAttribute("required")) || this.hasAttribute("required"), l = e.some((r) => r.value === "");
1040
- return s && !o && !l && e.unshift({ value: "", label: s, disabled: !1, group: "" }), e;
1066
+ const s = (this.getAttribute("placeholder") || "").trim(), o = h(this.getAttribute("required")) || this.hasAttribute("required"), u = e.some((r) => r.value === "");
1067
+ return s && !o && !u && e.unshift({ value: "", label: s, disabled: !1, group: "" }), e;
1041
1068
  }
1042
1069
  _computeOptionsFingerprint(e) {
1043
1070
  return e.map((t) => `${t.value}${t.label}${t.disabled ? "1" : "0"}${t.group}`).join("");
1044
1071
  }
1045
1072
  _firstEnabledIndex() {
1046
- return L(this._options, (e) => e.disabled);
1073
+ return H(this._options, (e) => e.disabled);
1047
1074
  }
1048
1075
  _lastEnabledIndex() {
1049
- return F(this._options, (e) => e.disabled);
1076
+ return U(this._options, (e) => e.disabled);
1050
1077
  }
1051
1078
  _selectedIndex() {
1052
- return D(this._options, this.value, (e) => e.value);
1079
+ return V(this._options, this.value, (e) => e.value);
1053
1080
  }
1054
1081
  _checkPlacement() {
1055
1082
  return this.getAttribute("check-placement") === "start" ? "start" : "end";
@@ -1057,8 +1084,8 @@ class B extends R {
1057
1084
  _syncOptionsData() {
1058
1085
  const e = this._buildOptionsFromChildren(), t = this._computeOptionsFingerprint(e), i = t !== this._optionsFingerprint;
1059
1086
  this._options = e, this._optionsFingerprint = t;
1060
- const s = this.getAttribute("value") || "", o = this.hasAttribute("value"), l = this._options.some((a) => a.value === s), r = h(this.getAttribute("required")) || this.hasAttribute("required"), u = this._options.find((a) => !a.disabled)?.value || "", n = !r && this._options.some((a) => a.value === "") ? "" : u;
1061
- return o ? l || this._setValueAttr(n) : this._setValueAttr(n), i;
1087
+ const s = this.getAttribute("value") || "", o = this.hasAttribute("value"), u = this._options.some((a) => a.value === s), r = h(this.getAttribute("required")) || this.hasAttribute("required"), l = this._options.find((a) => !a.disabled)?.value || "", n = !r && this._options.some((a) => a.value === "") ? "" : l;
1088
+ return o ? u || this._setValueAttr(n) : this._setValueAttr(n), i;
1062
1089
  }
1063
1090
  _currentDisplayText() {
1064
1091
  const e = this.value, t = (this.getAttribute("placeholder") || "").trim();
@@ -1105,23 +1132,23 @@ class B extends R {
1105
1132
  return;
1106
1133
  }
1107
1134
  let s = "__none__";
1108
- this._options.forEach((r, u) => {
1135
+ this._options.forEach((r, l) => {
1109
1136
  if (r.group && r.group !== s) {
1110
1137
  const d = document.createElement("div");
1111
1138
  d.className = "menu-group", d.setAttribute("role", "presentation"), d.textContent = r.group, e.appendChild(d), s = r.group;
1112
1139
  }
1113
1140
  r.group || (s = "__none__");
1114
1141
  const n = document.createElement("button");
1115
- n.type = "button", n.className = "menu-item", n.id = `${this._uid}-opt-${u}`, n.setAttribute("role", "option"), n.setAttribute("data-index", String(u)), n.setAttribute("data-value", r.value), n.setAttribute("aria-selected", r.value === this.value ? "true" : "false"), n.setAttribute("aria-disabled", r.disabled ? "true" : "false"), n.tabIndex = -1, r.disabled && (n.disabled = !0);
1142
+ n.type = "button", n.className = "menu-item", n.id = `${this._uid}-opt-${l}`, n.setAttribute("role", "option"), n.setAttribute("data-index", String(l)), n.setAttribute("data-value", r.value), n.setAttribute("aria-selected", r.value === this.value ? "true" : "false"), n.setAttribute("aria-disabled", r.disabled ? "true" : "false"), n.tabIndex = -1, r.disabled && (n.disabled = !0);
1116
1143
  const a = document.createElement("span");
1117
1144
  a.className = "menu-item-label", a.textContent = r.label;
1118
1145
  const c = document.createElement("span");
1119
1146
  c.className = "menu-item-check", c.setAttribute("aria-hidden", "true");
1120
- const m = this.showCheck, b = this._checkPlacement();
1121
- c.hidden = !m, n.setAttribute("data-check-placement", b), m && b === "start" ? n.append(c, a) : n.append(a, c), e.appendChild(n), this._menuItems.push(n);
1147
+ const b = this.showCheck, p = this._checkPlacement();
1148
+ c.hidden = !b, n.setAttribute("data-check-placement", p), b && p === "start" ? n.append(c, a) : n.append(a, c), e.appendChild(n), this._menuItems.push(n);
1122
1149
  });
1123
- const o = this._menuItems[0] || null, l = this._menuItems[this._menuItems.length - 1] || null;
1124
- o && o.setAttribute("data-edge-start", "true"), l && l.setAttribute("data-edge-end", "true"), e.refresh(), this._menuRenderFingerprint = t, this._syncMenuSelectionState(), this._schedulePanelPlacement();
1150
+ const o = this._menuItems[0] || null, u = this._menuItems[this._menuItems.length - 1] || null;
1151
+ o && o.setAttribute("data-edge-start", "true"), u && u.setAttribute("data-edge-end", "true"), e.refresh(), this._menuRenderFingerprint = t, this._syncMenuSelectionState(), this._schedulePanelPlacement();
1125
1152
  }
1126
1153
  _syncMenuSelectionState() {
1127
1154
  if (!this._menuEl) return;
@@ -1129,7 +1156,7 @@ class B extends R {
1129
1156
  this._menuItems.forEach((i) => {
1130
1157
  const s = Number(i.dataset.index || "-1");
1131
1158
  i.setAttribute("aria-selected", s === e ? "true" : "false");
1132
- }), this._activeIndex = O(this._options, {
1159
+ }), this._activeIndex = W(this._options, {
1133
1160
  selectedIndex: e,
1134
1161
  getDisabled: (i) => i.disabled
1135
1162
  });
@@ -1143,8 +1170,8 @@ class B extends R {
1143
1170
  _syncPanelPlacement() {
1144
1171
  const e = this._panelEl, t = this._controlEl, i = this._menuEl;
1145
1172
  if (!e || !t || !i || !this._open) return;
1146
- const s = t.getBoundingClientRect(), o = window.innerHeight || document.documentElement.clientHeight || 0, l = Math.max(0, o - s.bottom - 12), r = Math.max(0, s.top - 12), u = Math.min(Math.max(i.scrollHeight, i.offsetHeight) + 4, 320), n = l < u && r > l;
1147
- this._placement = n ? "top" : "bottom", e.setAttribute("data-placement", this._placement), e.style.setProperty("--ui-select-available-height", `${Math.floor(n ? r : l)}px`);
1173
+ const s = t.getBoundingClientRect(), o = window.innerHeight || document.documentElement.clientHeight || 0, u = Math.max(0, o - s.bottom - 12), r = Math.max(0, s.top - 12), l = Math.min(Math.max(i.scrollHeight, i.offsetHeight) + 4, 320), n = u < l && r > u;
1174
+ this._placement = n ? "top" : "bottom", e.setAttribute("data-placement", this._placement), e.style.setProperty("--ui-select-available-height", `${Math.floor(n ? r : u)}px`);
1148
1175
  }
1149
1176
  _openMenu() {
1150
1177
  this._open || this.disabled || (this._cancelPanelPlacement(), this._syncOptionsData(), this._open = !0, this._syncControlState(), this._renderMenu(), this._attachOpenListeners());
@@ -1160,44 +1187,55 @@ class B extends R {
1160
1187
  _syncControlState() {
1161
1188
  const e = this._triggerEl, t = this._controlEl, i = this._valueEl, s = this._panelEl;
1162
1189
  if (!e || !t || !i || !s) return;
1163
- const o = this.getAttribute("label") || "", l = this.getAttribute("description") || "", r = this.getAttribute("error") || "", u = this.getAttribute("aria-label") || o || "Select", n = h(this.getAttribute("loading")), a = h(this.getAttribute("required")) || this.hasAttribute("required"), c = this.getAttribute("tabindex"), m = this.hasAttribute("validation") && this.getAttribute("validation") === "error" || this.hasAttribute("invalid") || this.getAttribute("data-invalid") === "true", b = U(this.getAttribute("radius")), d = this.root.querySelector(".label"), x = this.root.querySelector(".label-text"), g = this.root.querySelector(".description"), f = this.root.querySelector(".description-text"), _ = this.root.querySelector(".error"), y = this.root.querySelector(".error-text"), w = this.root.querySelector(".meta"), A = this.root.querySelector(".required"), E = !!o || this._hasSlotContent("label"), k = !!l || this._hasSlotContent("description"), C = !!r || this._hasSlotContent("error"), I = this._hasSlotContent("leading"), z = this._hasSlotContent("trailing"), P = !!(this.getAttribute("placeholder") || "").trim() && this.value === "";
1164
- x && (x.textContent = o), f && (f.textContent = l), y && (y.textContent = r), d && (d.hidden = !E), g && (g.hidden = !k), _ && (_.hidden = !C), w && (w.hidden = !E && !k), A && (A.hidden = !a), i.textContent = this._currentDisplayText(), t.setAttribute("data-open", this._open ? "true" : "false"), t.setAttribute("data-placeholder-shown", P ? "true" : "false"), t.setAttribute("data-has-leading", String(I)), t.setAttribute("data-has-trailing", String(z)), e.disabled = this.disabled, e.setAttribute("aria-label", u), e.setAttribute("aria-expanded", this._open ? "true" : "false"), e.setAttribute("aria-busy", n ? "true" : "false"), e.setAttribute("aria-required", a ? "true" : "false"), m ? e.setAttribute("aria-invalid", "true") : e.removeAttribute("aria-invalid"), c != null && !this.disabled ? e.setAttribute("tabindex", c) : this.disabled ? e.setAttribute("tabindex", "-1") : e.setAttribute("tabindex", "0"), s.setAttribute("data-placement", this._placement), M(s, this._open, String(this._placement).split("-")[0]), this._open ? e.setAttribute("aria-controls", `${this._uid}-listbox`) : e.removeAttribute("aria-controls"), b && !["none", "full", "large"].includes(this.getAttribute("radius") || "") ? this.style.setProperty("--ui-select-radius", b) : this.style.removeProperty("--ui-select-radius"), this.setAttribute("aria-disabled", this.disabled ? "true" : "false"), this.setAttribute("aria-busy", n ? "true" : "false"), this.toggleAttribute("open", this._open), this._open && this._schedulePanelPlacement();
1190
+ const o = this.getAttribute("label") || "", u = this.getAttribute("description") || "", r = this.getAttribute("error") || "", l = this.getAttribute("aria-label") || o || "Select", n = h(this.getAttribute("loading")), a = h(this.getAttribute("required")) || this.hasAttribute("required"), c = this.getAttribute("tabindex"), b = this.hasAttribute("validation") && this.getAttribute("validation") === "error" || this.hasAttribute("invalid") || this.getAttribute("data-invalid") === "true", p = j(this.getAttribute("radius")), d = this.root.querySelector(".label"), f = this.root.querySelector(".label-text"), x = this.root.querySelector(".description"), g = this.root.querySelector(".description-text"), v = this.root.querySelector(".error"), k = this.root.querySelector(".error-text"), C = this.root.querySelector(".meta"), S = this.root.querySelector(".required"), y = !!o || this._hasSlotContent("label"), w = !!u || this._hasSlotContent("description"), I = !!r || this._hasSlotContent("error"), R = this._hasSlotContent("leading"), M = this._hasSlotContent("trailing"), $ = !!(this.getAttribute("placeholder") || "").trim() && this.value === "";
1191
+ f && (f.textContent = o), g && (g.textContent = u), k && (k.textContent = r), d && (d.hidden = !y), x && (x.hidden = !w), v && (v.hidden = !I), C && (C.hidden = !y && !w), S && (S.hidden = !a), i.textContent = this._currentDisplayText(), t.setAttribute("data-open", this._open ? "true" : "false"), t.setAttribute("data-placeholder-shown", $ ? "true" : "false"), t.setAttribute("data-has-leading", String(R)), t.setAttribute("data-has-trailing", String(M)), e.disabled = this.disabled, e.setAttribute("aria-label", l), y ? e.setAttribute("aria-labelledby", `${this._uid}-label`) : e.removeAttribute("aria-labelledby");
1192
+ const F = this._renderedExternalHtml ? `${this._uid}-external-description` : "", z = [
1193
+ w ? `${this._uid}-description` : "",
1194
+ I ? `${this._uid}-error` : "",
1195
+ F
1196
+ ].filter(Boolean).join(" ");
1197
+ z ? e.setAttribute("aria-describedby", z) : e.removeAttribute("aria-describedby"), e.setAttribute("aria-expanded", this._open ? "true" : "false"), e.setAttribute("aria-busy", n ? "true" : "false"), e.setAttribute("aria-required", a ? "true" : "false"), b ? e.setAttribute("aria-invalid", "true") : e.removeAttribute("aria-invalid"), c != null && !this.disabled ? e.setAttribute("tabindex", c) : this.disabled ? e.setAttribute("tabindex", "-1") : e.setAttribute("tabindex", "0"), s.setAttribute("data-placement", this._placement), T(s, this._open, String(this._placement).split("-")[0]), this._open ? e.setAttribute("aria-controls", `${this._uid}-listbox`) : e.removeAttribute("aria-controls"), p && !["none", "full", "large"].includes(this.getAttribute("radius") || "") ? this.style.setProperty("--ui-select-radius", p) : this.style.removeProperty("--ui-select-radius"), this.setAttribute("aria-disabled", this.disabled ? "true" : "false"), this.setAttribute("aria-busy", n ? "true" : "false"), this.toggleAttribute("open", this._open), this._open && this._schedulePanelPlacement();
1165
1198
  }
1166
1199
  render() {
1167
- const e = this.getAttribute("label") || "", t = this.getAttribute("description") || "", i = this.getAttribute("error") || "", s = h(this.getAttribute("required")) || this.hasAttribute("required"), o = this.getAttribute("aria-label") || e || "Select", l = !!e || this._hasSlotContent("label"), r = !!t || this._hasSlotContent("description"), u = !!i || this._hasSlotContent("error"), n = this._hasSlotContent("leading"), a = this._hasSlotContent("trailing"), c = `${this._uid}-label`, m = `${this._uid}-description`, b = `${this._uid}-error`, d = `${this._uid}-trigger`, x = `${this._uid}-listbox`, g = q(this, this._uid), f = [r ? m : "", u ? b : "", g.id].filter(Boolean).join(" ");
1168
- this.setContent(`
1169
- <style>${T}</style>
1200
+ const e = N(this, this._uid);
1201
+ if (this._triggerEl && this._triggerEl.getRootNode() === this.root && e.html === this._renderedExternalHtml) {
1202
+ this._syncOptionsData(), this._renderMenu(), !this._open && this._panelEl && (this._panelEl.hidden = !0), this._syncControlState();
1203
+ return;
1204
+ }
1205
+ const t = this.getAttribute("label") || "", i = this.getAttribute("description") || "", s = this.getAttribute("error") || "", o = h(this.getAttribute("required")) || this.hasAttribute("required"), u = this.getAttribute("aria-label") || t || "Select", r = !!t || this._hasSlotContent("label"), l = !!i || this._hasSlotContent("description"), n = !!s || this._hasSlotContent("error"), a = this._hasSlotContent("leading"), c = this._hasSlotContent("trailing"), b = `${this._uid}-label`, p = `${this._uid}-description`, d = `${this._uid}-error`, f = `${this._uid}-trigger`, x = `${this._uid}-listbox`, g = e, v = [l ? p : "", n ? d : "", g.id].filter(Boolean).join(" ");
1206
+ this._renderedExternalHtml = g.html, this.setContent(`
1207
+ <style>${Y}</style>
1170
1208
  <slot class="content-slot"></slot>
1171
1209
  <div class="root" part="root">
1172
- <div class="meta" part="meta" ${l || r ? "" : "hidden"}>
1173
- <label class="label" part="label" id="${c}" for="${d}" ${l ? "" : "hidden"}>
1174
- <slot name="label"><span class="label-text">${v(e)}</span></slot>
1175
- <span class="required" aria-hidden="true" ${s ? "" : "hidden"}>*</span>
1210
+ <div class="meta" part="meta" ${r || l ? "" : "hidden"}>
1211
+ <label class="label" part="label" id="${b}" for="${f}" ${r ? "" : "hidden"}>
1212
+ <slot name="label"><span class="label-text">${_(t)}</span></slot>
1213
+ <span class="required" aria-hidden="true" ${o ? "" : "hidden"}>*</span>
1176
1214
  </label>
1177
- <p class="description" part="description" id="${m}" ${r ? "" : "hidden"}>
1178
- <slot name="description"><span class="description-text">${v(t)}</span></slot>
1215
+ <p class="description" part="description" id="${p}" ${l ? "" : "hidden"}>
1216
+ <slot name="description"><span class="description-text">${_(i)}</span></slot>
1179
1217
  </p>
1180
1218
  </div>
1181
1219
  <div class="field-shell" part="field-shell">
1182
- <div class="control" part="control" data-has-leading="${n}" data-has-trailing="${a}" data-open="false">
1183
- <span class="leading" part="leading" ${n ? "" : "hidden"}>
1220
+ <div class="control" part="control" data-has-leading="${a}" data-has-trailing="${c}" data-open="false">
1221
+ <span class="leading" part="leading" ${a ? "" : "hidden"}>
1184
1222
  <slot name="leading"></slot>
1185
1223
  </span>
1186
1224
  <button
1187
- id="${d}"
1225
+ id="${f}"
1188
1226
  type="button"
1189
1227
  class="trigger native"
1190
1228
  part="trigger"
1191
1229
  role="combobox"
1192
1230
  aria-haspopup="listbox"
1193
1231
  aria-expanded="false"
1194
- aria-label="${v(o)}"
1195
- ${l ? `aria-labelledby="${c}"` : ""}
1196
- ${f ? `aria-describedby="${v(f)}"` : ""}
1232
+ aria-label="${_(u)}"
1233
+ ${r ? `aria-labelledby="${b}"` : ""}
1234
+ ${v ? `aria-describedby="${_(v)}"` : ""}
1197
1235
  >
1198
1236
  <span class="value" part="value"></span>
1199
1237
  </button>
1200
- <span class="trailing" part="trailing" ${a ? "" : "hidden"}>
1238
+ <span class="trailing" part="trailing" ${c ? "" : "hidden"}>
1201
1239
  <slot name="trailing"></slot>
1202
1240
  </span>
1203
1241
  <span class="indicator" part="indicator" aria-hidden="true"></span>
@@ -1214,15 +1252,17 @@ class B extends R {
1214
1252
  ></ui-listbox>
1215
1253
  </div>
1216
1254
  </div>
1217
- <p class="error" part="error" id="${b}" ${u ? "" : "hidden"}>
1218
- <slot name="error"><span class="error-text">${v(i)}</span></slot>
1255
+ <p class="error" part="error" id="${d}" ${n ? "" : "hidden"}>
1256
+ <slot name="error"><span class="error-text">${_(s)}</span></slot>
1219
1257
  </p>
1220
1258
  ${g.html}
1221
1259
  </div>
1222
1260
  `), this._controlEl = this.root.querySelector(".control"), this._triggerEl = this.root.querySelector(".trigger"), this._valueEl = this.root.querySelector(".value"), this._panelEl = this.root.querySelector(".panel"), this._menuEl = this.root.querySelector(".menu"), this._menuItems = [], this._menuRenderFingerprint = "", this._syncOptionsData(), this._renderMenu(), !this._open && this._panelEl && (this._panelEl.hidden = !0), this._syncControlState();
1223
1261
  }
1224
- }
1225
- typeof customElements < "u" && !customElements.get("ui-select") && customElements.define("ui-select", B);
1262
+ };
1263
+ E.formAssociated = !0;
1264
+ let A = E;
1265
+ typeof customElements < "u" && !customElements.get("ui-select") && customElements.define("ui-select", A);
1226
1266
  export {
1227
- B as UISelect
1267
+ A as UISelect
1228
1268
  };
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const E=require("./ElementBase-DxbvhLJs.js"),S=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const E=require("./ElementBase-CbUsP3D6.js"),S=`
2
2
  :host {
3
3
  --ui-selection-popup-z: 1280;
4
4
  --ui-selection-popup-offset: 10px;
@@ -131,7 +131,7 @@
131
131
  --ui-selection-popup-bg: #0f172a;
132
132
  --ui-selection-popup-color: #e2e8f0;
133
133
  --ui-selection-popup-border-color: #334155;
134
- --ui-selection-popup-focus: #93c5fd;
134
+ --ui-selection-popup-focus: var(--ui-color-accent-on-dark, #93c5fd);
135
135
  --ui-selection-popup-shadow:
136
136
  0 16px 42px rgba(2, 6, 23, 0.42),
137
137
  0 34px 72px rgba(2, 6, 23, 0.38);
@@ -1,4 +1,4 @@
1
- import { E as D } from "./ElementBase-BeZT54Hj.mjs";
1
+ import { E as D } from "./ElementBase-D5QsC5Vw.mjs";
2
2
  const E = `
3
3
  :host {
4
4
  --ui-selection-popup-z: 1280;
@@ -132,7 +132,7 @@ const E = `
132
132
  --ui-selection-popup-bg: #0f172a;
133
133
  --ui-selection-popup-color: #e2e8f0;
134
134
  --ui-selection-popup-border-color: #334155;
135
- --ui-selection-popup-focus: #93c5fd;
135
+ --ui-selection-popup-focus: var(--ui-color-accent-on-dark, #93c5fd);
136
136
  --ui-selection-popup-shadow:
137
137
  0 16px 42px rgba(2, 6, 23, 0.42),
138
138
  0 34px 72px rgba(2, 6, 23, 0.38);
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-tokens.d.ts","sourceRoot":"","sources":["../src/semantic-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAWtD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,gBAAgB,CAkE1E"}
1
+ {"version":3,"file":"semantic-tokens.d.ts","sourceRoot":"","sources":["../src/semantic-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AA2BtD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,gBAAgB,CA0E1E"}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("./ElementBase-DxbvhLJs.js"),l=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("./ElementBase-CbUsP3D6.js"),l=`
2
2
  :host {
3
3
  --ui-separator-color: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 80%, transparent);
4
4
  --ui-separator-thickness: 1px;
@@ -1,4 +1,4 @@
1
- import { E as n } from "./ElementBase-BeZT54Hj.mjs";
1
+ import { E as n } from "./ElementBase-D5QsC5Vw.mjs";
2
2
  const s = `
3
3
  :host {
4
4
  --ui-separator-color: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 80%, transparent);
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const D=require("./ElementBase-DxbvhLJs.js"),y={sm:{expanded:220,collapsed:64,min:168,max:300},md:{expanded:236,collapsed:72,min:180,max:320},lg:{expanded:268,collapsed:80,min:192,max:360}},w=new Set(["variant","size","density","tone","radius","item-radius","item-gap","item-padding-x","item-padding-y","item-height","item-font-size","item-line-height","section-label-transform","elevation","position","rail","headless"]),_=new Set(["width","min-width","max-width","collapsed-width","storage-key","auto-save"]),M=o=>`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const D=require("./ElementBase-CbUsP3D6.js"),q=require("./navigate-ChJVIIuS.js"),y={sm:{expanded:220,collapsed:64,min:168,max:300},md:{expanded:236,collapsed:72,min:180,max:320},lg:{expanded:268,collapsed:80,min:192,max:360}},w=new Set(["variant","size","density","tone","radius","item-radius","item-gap","item-padding-x","item-padding-y","item-height","item-font-size","item-line-height","section-label-transform","elevation","position","rail","headless"]),_=new Set(["width","min-width","max-width","collapsed-width","storage-key","auto-save"]),M=o=>`
2
2
  <style>
3
3
  :host {
4
4
  --ui-sidebar-bg: var(--base-sidebar-bg, var(--color-panel-solid, var(--ui-color-surface, #ffffff)));
@@ -250,7 +250,7 @@
250
250
  inset: 0;
251
251
  border-radius: inherit;
252
252
  pointer-events: none;
253
- box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 8%, transparent);
253
+ box-shadow: var(--base-sidebar-outline, inset 0 0 0 1px color-mix(in srgb, currentColor 8%, transparent));
254
254
  }
255
255
 
256
256
  .header-wrap,
@@ -713,11 +713,11 @@
713
713
  }
714
714
  </style>
715
715
  ${o}
716
- `;function d(o){return o.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function f(o){if(!o)return null;const e=o.trim();return e?["none","sm","md","lg","full"].includes(e)?e:/^\d+(\.\d+)?$/.test(e)?`${e}px`:e:null}function m(o){if(!o)return null;const e=o.trim();return e?/^\d+(\.\d+)?$/.test(e)?`${e}px`:e:null}function z(o){return o==="sm"||o==="1"?"sm":o==="lg"||o==="3"?"lg":"md"}function l(o,e){if(!o)return e;const i=Number.parseFloat(String(o));return Number.isFinite(i)?i:e}function v(o){return o.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,"")||"item"}class A extends D.ElementBase{constructor(){super(...arguments),this._observer=null,this._resizeCleanup=null,this._responsiveCleanup=null,this._responsiveAutoCollapsed=!1,this._userCollapsePreference=!1,this._expanded=new Set,this._dragging=!1,this._lastExpandedWidth=0,this._handleSearchInput=e=>{const i=e.target;if(!i)return;const r=i.closest('[slot="search"]');if(!r||!this.contains(r))return;const t=typeof i.value=="string"?i.value:"";t?this.setAttribute("search-query",t):this.removeAttribute("search-query"),this.dispatchEvent(new CustomEvent("search-change",{detail:{query:t},bubbles:!0}))}}static get observedAttributes(){return["collapsed","collapsible","rail","resizable","position","value","items","variant","size","density","tone","show-icons","show-badges","item-radius","item-gap","item-padding-x","item-padding-y","item-height","item-font-size","item-line-height","section-label-transform","search-query","headless","width","min-width","max-width","collapsed-width","storage-key","auto-save","radius","elevation"]}connectedCallback(){super.connectedCallback(),this._observeLightDom(),this._bindResponsiveCollapse(),this.addEventListener("input",this._handleSearchInput,!0),this.addEventListener("change",this._handleSearchInput,!0)}disconnectedCallback(){this._observer?.disconnect(),this._observer=null,this._resizeCleanup?.(),this._resizeCleanup=null,this._responsiveCleanup?.(),this._responsiveCleanup=null,this.removeEventListener("input",this._handleSearchInput,!0),this.removeEventListener("change",this._handleSearchInput,!0),super.disconnectedCallback()}shouldRenderOnAttributeChange(e){return!(_.has(e)||w.has(e)||e==="collapsed"||e==="value"||e==="radius")}attributeChangedCallback(e,i,r){if(i!==r){if(e==="radius"&&this.isConnected){const t=f(r);if(t&&t!==r){this.setAttribute("radius",t);return}}if(this.isConnected){if(_.has(e)){this._applySizing();return}if(e==="radius"){this._applyRadius();return}if(e==="item-radius"||e==="item-gap"||e==="item-padding-x"||e==="item-padding-y"||e==="item-height"||e==="item-font-size"||e==="item-line-height"){this._applyItemMetrics();return}if(!w.has(e)){if(e==="collapsed"){this.hasAttribute("collapsed")&&this._expanded.clear(),this._applySizing(),this._syncExpandedDom();return}if(e==="value"){this._syncActiveDom();return}super.attributeChangedCallback(e,i,r)}}}}get value(){return this.getAttribute("value")||""}set value(e){e?this.setAttribute("value",e):this.removeAttribute("value")}collapse(){this.hasAttribute("collapsible")&&(this.hasAttribute("collapsed")||(this._userCollapsePreference=!0,this._lastExpandedWidth=this._currentExpandedWidth(),this.setAttribute("collapsed",""),this.dispatchEvent(new CustomEvent("toggle",{detail:{collapsed:!0},bubbles:!0})),this.dispatchEvent(new CustomEvent("collapse-change",{detail:{collapsed:!0},bubbles:!0}))))}expand(){this.hasAttribute("collapsible")&&this.hasAttribute("collapsed")&&(this._userCollapsePreference=!0,this.removeAttribute("collapsed"),this.dispatchEvent(new CustomEvent("toggle",{detail:{collapsed:!1},bubbles:!0})),this.dispatchEvent(new CustomEvent("collapse-change",{detail:{collapsed:!1},bubbles:!0})))}toggle(e){(typeof e=="boolean"?e:!this.hasAttribute("collapsed"))?this.collapse():this.expand()}render(){const e=this._buildSections(),i=!this.querySelector('[slot="header"]'),r=!this.querySelector('[slot="search"]'),t=!this.querySelector('[slot="footer"]'),s=!this.querySelector('[slot="promo"]'),n=`
716
+ `;function l(o){return o.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function v(o){if(!o)return null;const e=o.trim();return e?["none","sm","md","lg","full"].includes(e)?e:/^\d+(\.\d+)?$/.test(e)?`${e}px`:e:null}function m(o){if(!o)return null;const e=o.trim();return e?/^\d+(\.\d+)?$/.test(e)?`${e}px`:e:null}function z(o){return o==="sm"||o==="1"?"sm":o==="lg"||o==="3"?"lg":"md"}function c(o,e){if(!o)return e;const i=Number.parseFloat(String(o));return Number.isFinite(i)?i:e}function f(o){return o.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,"")||"item"}class A extends D.ElementBase{constructor(){super(...arguments),this._observer=null,this._resizeCleanup=null,this._responsiveCleanup=null,this._responsiveAutoCollapsed=!1,this._userCollapsePreference=!1,this._expanded=new Set,this._dragging=!1,this._lastExpandedWidth=0,this._handleSearchInput=e=>{const i=e.target;if(!i)return;const r=i.closest('[slot="search"]');if(!r||!this.contains(r))return;const t=typeof i.value=="string"?i.value:"";t?this.setAttribute("search-query",t):this.removeAttribute("search-query"),this.dispatchEvent(new CustomEvent("search-change",{detail:{query:t},bubbles:!0}))}}static get observedAttributes(){return["collapsed","collapsible","rail","resizable","position","value","items","variant","size","density","tone","show-icons","show-badges","item-radius","item-gap","item-padding-x","item-padding-y","item-height","item-font-size","item-line-height","section-label-transform","search-query","headless","width","min-width","max-width","collapsed-width","storage-key","auto-save","radius","elevation"]}connectedCallback(){super.connectedCallback(),this._observeLightDom(),this._bindResponsiveCollapse(),this.addEventListener("input",this._handleSearchInput,!0),this.addEventListener("change",this._handleSearchInput,!0)}disconnectedCallback(){this._observer?.disconnect(),this._observer=null,this._resizeCleanup?.(),this._resizeCleanup=null,this._responsiveCleanup?.(),this._responsiveCleanup=null,this.removeEventListener("input",this._handleSearchInput,!0),this.removeEventListener("change",this._handleSearchInput,!0),super.disconnectedCallback()}shouldRenderOnAttributeChange(e){return!(_.has(e)||w.has(e)||e==="collapsed"||e==="value"||e==="radius")}attributeChangedCallback(e,i,r){if(i!==r){if(e==="radius"&&this.isConnected){const t=v(r);if(t&&t!==r){this.setAttribute("radius",t);return}}if(this.isConnected){if(_.has(e)){this._applySizing();return}if(e==="radius"){this._applyRadius();return}if(e==="item-radius"||e==="item-gap"||e==="item-padding-x"||e==="item-padding-y"||e==="item-height"||e==="item-font-size"||e==="item-line-height"){this._applyItemMetrics();return}if(!w.has(e)){if(e==="collapsed"){this.hasAttribute("collapsed")&&this._expanded.clear(),this._applySizing(),this._syncExpandedDom();return}if(e==="value"){this._syncActiveDom();return}super.attributeChangedCallback(e,i,r)}}}}get value(){return this.getAttribute("value")||""}set value(e){e?this.setAttribute("value",e):this.removeAttribute("value")}collapse(){this.hasAttribute("collapsible")&&(this.hasAttribute("collapsed")||(this._userCollapsePreference=!0,this._lastExpandedWidth=this._currentExpandedWidth(),this.setAttribute("collapsed",""),this.dispatchEvent(new CustomEvent("toggle",{detail:{collapsed:!0},bubbles:!0})),this.dispatchEvent(new CustomEvent("collapse-change",{detail:{collapsed:!0},bubbles:!0}))))}expand(){this.hasAttribute("collapsible")&&this.hasAttribute("collapsed")&&(this._userCollapsePreference=!0,this.removeAttribute("collapsed"),this.dispatchEvent(new CustomEvent("toggle",{detail:{collapsed:!1},bubbles:!0})),this.dispatchEvent(new CustomEvent("collapse-change",{detail:{collapsed:!1},bubbles:!0})))}toggle(e){(typeof e=="boolean"?e:!this.hasAttribute("collapsed"))?this.collapse():this.expand()}render(){const e=this._buildSections(),i=!this.querySelector('[slot="header"]'),r=!this.querySelector('[slot="search"]'),t=!this.querySelector('[slot="footer"]'),s=!this.querySelector('[slot="promo"]'),n=`
717
717
  <aside class="shell" part="shell">
718
718
  <div class="header-wrap" part="header" ${i?"hidden":""}><slot name="header"></slot></div>
719
719
  <div class="search-wrap" part="search" ${r?"hidden":""}><slot name="search"></slot></div>
720
- <nav class="nav" part="nav" aria-label="${d(this.getAttribute("aria-label")||"Sidebar")}">
720
+ <nav class="nav" part="nav" aria-label="${l(this.getAttribute("aria-label")||"Sidebar")}">
721
721
  ${e}
722
722
  </nav>
723
723
  <div class="promo-wrap" part="promo" ${s?"hidden":""}><slot name="promo"></slot></div>
@@ -726,8 +726,8 @@
726
726
  </aside>
727
727
  `;this.setContent(M(n)),this._applyItemMetrics(),this._applyRadius(),this._applySizing(),this._bindInteractions(),this._syncActiveDom(),this._syncExpandedDom()}_observeLightDom(){this._observer||(this._observer=new MutationObserver(e=>{e.some(i=>i.type==="childList"||i.type==="attributes"&&i.target.slot)&&this.requestRender()}),this._observer.observe(this,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["slot","data-value","data-href","data-target","data-rel","data-section","data-active","data-badge","data-description","data-content-html","data-icon","data-tone","data-disabled"]}))}_buildSections(){const e=this._groupItems(this._filterItems(this._collectItems(),this.getAttribute("search-query")||""));return e.length?e.map(({label:i,items:r})=>`
728
728
  <section class="section" part="section">
729
- ${i?`<div class="section-label" part="section-label">${d(i)}</div>`:""}
730
- <div class="section-items">${r.map((s,n)=>this._renderItem(s,`${v(i||"general")}-${n}`)).join("")}</div>
729
+ ${i?`<div class="section-label" part="section-label">${l(i)}</div>`:""}
730
+ <div class="section-items">${r.map((s,n)=>this._renderItem(s,`${f(i||"general")}-${n}`)).join("")}</div>
731
731
  </section>
732
732
  `).join(""):`
733
733
  <section class="section" part="section">
@@ -742,18 +742,18 @@
742
742
  </div>
743
743
  </div>
744
744
  </section>
745
- `}_renderItem(e,i){const r=e.id||i,t=this.value?this.value===e.value:!!e.active,s=this._expanded.has(r),n=this.getAttribute("show-icons")!=="false",a=this.getAttribute("show-badges")!=="false",u=e.description?`<div class="item-description">${d(e.description)}</div>`:"",c=e.contentHtml?`<span class="copy custom-copy">${e.contentHtml}</span>`:`<span class="copy">
746
- <span class="item-label">${d(e.label)}</span>
747
- ${u}
748
- </span>`,p=n?this._renderIcon(e):"",g=a&&e.badge?`<span class="badge" part="badge">${d(e.badge)}</span>`:"",b=e.children.length?'<span class="arrow-wrap" part="arrow" aria-hidden="true"><svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" focusable="false" aria-hidden="true"><path d="M6 3.75L10.25 8L6 12.25" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg></span>':"",C=p?`<span class="icon-wrap" part="icon"><span class="icon">${p}</span></span>`:"",E=g||b?`<span class="end-wrap">${g?`<span class="meta">${g}</span>`:""}${b}</span>`:"",h=!!e.href&&!e.children.length,$=t?' aria-current="page" data-active="true"':"",k=e.disabled?' aria-disabled="true"':' aria-disabled="false"',I=e.tone&&e.tone!=="default"?` data-tone="${d(e.tone)}"`:"",S=h?` href="${d(e.href||"")}"`:"",P=h&&e.target?` target="${d(e.target)}"`:"",L=h&&e.rel?` rel="${d(e.rel)}"`:"",H=e.children.length?`<div class="submenu" part="submenu"><div class="submenu-inner">${e.children.map((W,T)=>this._renderItem(W,`${r}-${T}`)).join("")}</div></div>`:"",x=h?"a":"button",R=h?"":' type="button"';return`
749
- <div class="item" data-item-id="${d(r)}" data-value="${d(e.value)}" ${s?'data-expanded="true"':""}>
745
+ `}_renderItem(e,i){const r=e.id||i,t=this.value?this.value===e.value:!!e.active,s=this._expanded.has(r),n=this.getAttribute("show-icons")!=="false",a=this.getAttribute("show-badges")!=="false",d=e.description?`<div class="item-description">${l(e.description)}</div>`:"",u=e.contentHtml?`<span class="copy custom-copy">${e.contentHtml}</span>`:`<span class="copy">
746
+ <span class="item-label">${l(e.label)}</span>
747
+ ${d}
748
+ </span>`,p=n?this._renderIcon(e):"",g=a&&e.badge?`<span class="badge" part="badge">${l(e.badge)}</span>`:"",b=e.children.length?'<span class="arrow-wrap" part="arrow" aria-hidden="true"><svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" focusable="false" aria-hidden="true"><path d="M6 3.75L10.25 8L6 12.25" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg></span>':"",C=p?`<span class="icon-wrap" part="icon"><span class="icon">${p}</span></span>`:"",E=g||b?`<span class="end-wrap">${g?`<span class="meta">${g}</span>`:""}${b}</span>`:"",h=!!e.href&&!e.children.length,$=t?' aria-current="page" data-active="true"':"",k=e.disabled?' aria-disabled="true"':' aria-disabled="false"',I=e.tone&&e.tone!=="default"?` data-tone="${l(e.tone)}"`:"",S=h?` href="${l(e.href||"")}"`:"",P=h&&e.target?` target="${l(e.target)}"`:"",L=h&&e.rel?` rel="${l(e.rel)}"`:"",H=e.children.length?`<div class="submenu" part="submenu"><div class="submenu-inner">${e.children.map((W,T)=>this._renderItem(W,`${r}-${T}`)).join("")}</div></div>`:"",x=h?"a":"button",R=h?"":' type="button"';return`
749
+ <div class="item" data-item-id="${l(r)}" data-value="${l(e.value)}" ${s?'data-expanded="true"':""}>
750
750
  <${x}
751
751
  class="item-button"
752
752
  part="item"
753
753
  ${R}
754
754
  data-action="${e.children.length?"toggle":h?"navigate":"select"}"
755
- data-item-id="${d(r)}"
756
- data-value="${d(e.value)}"
755
+ data-item-id="${l(r)}"
756
+ data-value="${l(e.value)}"
757
757
  ${S}
758
758
  ${P}
759
759
  ${L}
@@ -762,9 +762,9 @@
762
762
  ${I}
763
763
  >
764
764
  ${C}
765
- ${c}
765
+ ${u}
766
766
  ${E}
767
767
  </${x}>
768
768
  ${H}
769
769
  </div>
770
- `}_collectItems(){const e=this.getAttribute("items"),i=e?this._parseItems(e):this._parseSlottedItems();return this._normalizeItems(i)}_parseItems(e){try{const i=JSON.parse(e);return Array.isArray(i)?i:[]}catch{return[]}}_parseSlottedItems(){return Array.from(this.querySelectorAll('[slot="item"]')).map(e=>this._parseSlottedItem(e))}_parseSlottedItem(e){let i=[];const r=e.dataset.children;if(r)try{const t=JSON.parse(r);Array.isArray(t)&&(i=t)}catch{i=[]}return{value:e.dataset.value||e.textContent?.trim()||"item",label:e.dataset.label||e.textContent?.trim()||e.dataset.value||"Item",href:e.dataset.href,target:e.dataset.target,rel:e.dataset.rel,icon:e.dataset.icon,iconHtml:e.dataset.iconHtml,contentHtml:e.dataset.contentHtml,badge:e.dataset.badge,description:e.dataset.description,section:e.dataset.section,disabled:e.hasAttribute("data-disabled"),active:e.hasAttribute("data-active"),tone:e.dataset.tone||"default",children:i}}_renderIcon(e){const i=String(e.iconHtml||"").trim();if(i)return i;const r=String(e.icon||"").trim();return r?d(r):""}_normalizeItems(e,i=0,r=""){return e.map((t,s)=>{const n=t.label?.trim()||t.value?.trim()||`Item ${s+1}`,a=t.value?.trim()||v(n),u=t.section?.trim()||r||"",c=`${v(u||"nav")}-${v(a)}-${i}-${s}`,p=this._normalizeItems(t.children||[],i+1,u);return{...t,id:c,label:n,value:a,section:u,children:p,depth:i}})}_groupItems(e){const i=[],r=new Map;for(const t of e){const s=t.section||"",n=r.get(s);if(n){n.items.push(t);continue}const a={label:s,items:[t]};r.set(s,a),i.push(a)}return i}_filterItems(e,i){const r=i.trim().toLowerCase();return r?e.map(t=>{const s=[t.label,t.description,t.value,t.section].filter(Boolean).some(a=>String(a).toLowerCase().includes(r)),n=s?t.children:this._filterItems(t.children,r);return!s&&!n.length?null:{...t,children:n}}).filter(t=>!!t):e}_bindInteractions(){this.root.querySelectorAll(".item-button").forEach(i=>{i.onclick=r=>{const t=r.currentTarget,s=t.dataset.action,n=t.dataset.itemId||"",a=t.dataset.value||"";if(t.getAttribute("aria-disabled")!=="true"){if(s==="toggle"){r.preventDefault(),this._toggleExpanded(n);return}if(s==="navigate"){this._selectValue(a);return}r.preventDefault(),this._selectValue(a)}},i.onkeydown=r=>{const t=r.currentTarget,s=t.dataset.itemId||"",n=t.dataset.value||"";r.key==="ArrowRight"&&t.dataset.action==="toggle"?(r.preventDefault(),this._expanded.add(s),this._syncExpandedDom()):r.key==="ArrowLeft"?(r.preventDefault(),this._expanded.delete(s),this._syncExpandedDom()):(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),t.dataset.action==="toggle"?this._toggleExpanded(s):this._selectValue(n))}});const e=this.root.querySelector(".resize-handle");e&&(e.onkeydown=i=>this._handleResizeKey(i),e.onpointerdown=i=>this._startResize(i))}_toggleExpanded(e){this.hasAttribute("collapsed")||(this._expanded.has(e)?this._expanded.delete(e):this._expanded.add(e),this._syncExpandedDom())}_syncExpandedDom(){this.root.querySelectorAll(".item").forEach(e=>{const i=e.dataset.itemId||"";this._expanded.has(i)&&!this.hasAttribute("collapsed")?e.setAttribute("data-expanded","true"):e.removeAttribute("data-expanded")})}_selectValue(e){this.value=e;const i=this._flattenItems(this._collectItems()),r=i.findIndex(n=>n.value===e),t=i[r],s={index:r,value:e,label:t?.label||e,item:t};this.dispatchEvent(new CustomEvent("select",{detail:s,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:s,bubbles:!0}))}_syncActiveDom(){const e=this.value;this.root.querySelectorAll(".item-button").forEach(i=>{e&&i.dataset.value===e?(i.setAttribute("data-active","true"),i.setAttribute("aria-current","page")):(i.removeAttribute("data-active"),i.removeAttribute("aria-current"))})}_flattenItems(e){return e.flatMap(i=>[i,...this._flattenItems(i.children)])}_applySizing(){const e=z(this.getAttribute("size")),i=y[e],r=l(this.getAttribute("width"),i.expanded),t=l(this.getAttribute("min-width"),i.min),s=l(this.getAttribute("max-width"),i.max),n=l(this.getAttribute("collapsed-width"),i.collapsed),a=this._restoreWidth(r),u=Math.min(Math.max(a,t),s),c=this.hasAttribute("collapsed")?n:u;this.style.setProperty("--ui-sidebar-width",`${u}px`),this.style.setProperty("--ui-sidebar-min-width",`${t}px`),this.style.setProperty("--ui-sidebar-max-width",`${s}px`),this.style.setProperty("--ui-sidebar-collapsed-width",`${n}px`),this.style.setProperty("--ui-sidebar-current-width",`${c}px`),this.style.setProperty("inline-size",`${c}px`)}_applyRadius(){const e=this.getAttribute("radius"),i=this.getAttribute("item-radius");if(!e||["none","sm","md","lg","full"].includes(e)){this.style.removeProperty("--ui-sidebar-radius"),i||this.style.removeProperty("--ui-sidebar-item-radius"),this.style.removeProperty("--ui-sidebar-promo-radius");return}const r=f(e)||e;this.style.setProperty("--ui-sidebar-radius",r),i||this.style.setProperty("--ui-sidebar-item-radius",r),this.style.setProperty("--ui-sidebar-promo-radius",r)}_applyItemMetrics(){const e=f(this.getAttribute("item-radius")),i=m(this.getAttribute("item-gap")),r=m(this.getAttribute("item-padding-x")),t=m(this.getAttribute("item-padding-y")),s=m(this.getAttribute("item-height")),n=m(this.getAttribute("item-font-size")),a=m(this.getAttribute("item-line-height"));this._setOptionalCssVar("--ui-sidebar-item-radius",e),this._setOptionalCssVar("--ui-sidebar-item-gap",i),this._setOptionalCssVar("--ui-sidebar-item-padding-x",r),this._setOptionalCssVar("--ui-sidebar-item-padding-y",t),this._setOptionalCssVar("--ui-sidebar-item-height",s),this._setOptionalCssVar("--ui-sidebar-item-font-size",n),this._setOptionalCssVar("--ui-sidebar-item-line-height",a)}_setOptionalCssVar(e,i){if(!i){this.style.removeProperty(e);return}this.style.setProperty(e,i)}_restoreWidth(e){if(!this.hasAttribute("auto-save"))return e;const i=this.getAttribute("storage-key");if(!i)return e;try{const r=window.localStorage.getItem(`ui-sidebar:${i}`);if(!r)return e;const t=Number.parseFloat(r);return Number.isFinite(t)?t:e}catch{return e}}_persistWidth(e){if(!this.hasAttribute("auto-save"))return;const i=this.getAttribute("storage-key");if(i)try{window.localStorage.setItem(`ui-sidebar:${i}`,`${e}`)}catch{}}_currentExpandedWidth(){const e=Number.parseFloat(this.style.getPropertyValue("--ui-sidebar-width"));return Number.isFinite(e)&&e>0?e:l(this.getAttribute("width"),y[z(this.getAttribute("size"))].expanded)}_bindResponsiveCollapse(){if(this._responsiveCleanup?.(),this._responsiveCleanup=null,typeof window>"u"||typeof window.matchMedia!="function")return;const e=window.matchMedia("(max-width: 767px)"),i=()=>this._syncResponsiveCollapse(e.matches);typeof e.addEventListener=="function"?e.addEventListener("change",i):typeof e.addListener=="function"&&e.addListener(i),this._responsiveCleanup=()=>{typeof e.removeEventListener=="function"?e.removeEventListener("change",i):typeof e.removeListener=="function"&&e.removeListener(i)},i()}_syncResponsiveCollapse(e){if(this.hasAttribute("collapsible")){if(e){!this.hasAttribute("collapsed")&&!this._userCollapsePreference&&(this._responsiveAutoCollapsed=!0,this._lastExpandedWidth=this._currentExpandedWidth(),this.setAttribute("collapsed",""),this.dispatchEvent(new CustomEvent("toggle",{detail:{collapsed:!0,source:"responsive"},bubbles:!0})),this.dispatchEvent(new CustomEvent("collapse-change",{detail:{collapsed:!0,source:"responsive"},bubbles:!0})));return}this._responsiveAutoCollapsed&&!this._userCollapsePreference&&(this._responsiveAutoCollapsed=!1,this.hasAttribute("collapsed")&&(this.removeAttribute("collapsed"),this.dispatchEvent(new CustomEvent("toggle",{detail:{collapsed:!1,source:"responsive"},bubbles:!0})),this.dispatchEvent(new CustomEvent("collapse-change",{detail:{collapsed:!1,source:"responsive"},bubbles:!0}))))}}_emitWidthChange(e){const i={width:l(this.style.getPropertyValue("--ui-sidebar-width"),0),collapsedWidth:l(this.style.getPropertyValue("--ui-sidebar-collapsed-width"),0),minWidth:l(this.style.getPropertyValue("--ui-sidebar-min-width"),0),maxWidth:l(this.style.getPropertyValue("--ui-sidebar-max-width"),0),source:e};this.dispatchEvent(new CustomEvent("width-change",{detail:i,bubbles:!0}))}_handleResizeKey(e){const r=this.getAttribute("position")==="right"?-1:1,t=this._currentExpandedWidth(),s=l(this.style.getPropertyValue("--ui-sidebar-min-width"),t),n=l(this.style.getPropertyValue("--ui-sidebar-max-width"),t);let a=t;if(e.key==="ArrowRight")a=t+16*r;else if(e.key==="ArrowLeft")a=t-16*r;else if(e.key==="Home")a=s;else if(e.key==="End")a=n;else return;e.preventDefault(),a=Math.min(Math.max(a,s),n),this.style.setProperty("--ui-sidebar-width",`${a}px`),this.hasAttribute("collapsed")||(this.style.setProperty("--ui-sidebar-current-width",`${a}px`),this.style.setProperty("inline-size",`${a}px`)),this._persistWidth(a),this._emitWidthChange("keyboard")}_startResize(e){if(!this.hasAttribute("resizable"))return;e.preventDefault();const i=this.getAttribute("position")==="right",r=e.clientX,t=this._currentExpandedWidth(),s=l(this.style.getPropertyValue("--ui-sidebar-min-width"),t),n=l(this.style.getPropertyValue("--ui-sidebar-max-width"),t);this._dragging=!0,this.dispatchEvent(new CustomEvent("resize-start",{detail:{width:t},bubbles:!0}));const a=c=>{const p=c.clientX-r,g=i?t-p:t+p,b=Math.min(Math.max(g,s),n);this.style.setProperty("--ui-sidebar-width",`${b}px`),this.hasAttribute("collapsed")||(this.style.setProperty("--ui-sidebar-current-width",`${b}px`),this.style.setProperty("inline-size",`${b}px`)),this.dispatchEvent(new CustomEvent("resize",{detail:{width:b},bubbles:!0}))},u=()=>{if(!this._dragging)return;this._dragging=!1,window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",u);const c=this._currentExpandedWidth();this._persistWidth(c),this._emitWidthChange("pointer"),this.dispatchEvent(new CustomEvent("resize-end",{detail:{width:c},bubbles:!0}))};window.addEventListener("pointermove",a),window.addEventListener("pointerup",u),this._resizeCleanup=()=>{window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",u)}}}typeof customElements<"u"&&!customElements.get("ui-sidebar")&&customElements.define("ui-sidebar",A);exports.UISidebar=A;
770
+ `}_collectItems(){const e=this.getAttribute("items"),i=e?this._parseItems(e):this._parseSlottedItems();return this._normalizeItems(i)}_parseItems(e){try{const i=JSON.parse(e);return Array.isArray(i)?i:[]}catch{return[]}}_parseSlottedItems(){return Array.from(this.querySelectorAll('[slot="item"]')).map(e=>this._parseSlottedItem(e))}_parseSlottedItem(e){let i=[];const r=e.dataset.children;if(r)try{const t=JSON.parse(r);Array.isArray(t)&&(i=t)}catch{i=[]}return{value:e.dataset.value||e.textContent?.trim()||"item",label:e.dataset.label||e.textContent?.trim()||e.dataset.value||"Item",href:e.dataset.href,target:e.dataset.target,rel:e.dataset.rel,icon:e.dataset.icon,iconHtml:e.dataset.iconHtml,contentHtml:e.dataset.contentHtml,badge:e.dataset.badge,description:e.dataset.description,section:e.dataset.section,disabled:e.hasAttribute("data-disabled"),active:e.hasAttribute("data-active"),tone:e.dataset.tone||"default",children:i}}_renderIcon(e){const i=String(e.iconHtml||"").trim();if(i)return i;const r=String(e.icon||"").trim();return r?l(r):""}_normalizeItems(e,i=0,r=""){return e.map((t,s)=>{const n=t.label?.trim()||t.value?.trim()||`Item ${s+1}`,a=t.value?.trim()||f(n),d=t.section?.trim()||r||"",u=`${f(d||"nav")}-${f(a)}-${i}-${s}`,p=this._normalizeItems(t.children||[],i+1,d);return{...t,id:u,label:n,value:a,section:d,children:p,depth:i}})}_groupItems(e){const i=[],r=new Map;for(const t of e){const s=t.section||"",n=r.get(s);if(n){n.items.push(t);continue}const a={label:s,items:[t]};r.set(s,a),i.push(a)}return i}_filterItems(e,i){const r=i.trim().toLowerCase();return r?e.map(t=>{const s=[t.label,t.description,t.value,t.section].filter(Boolean).some(a=>String(a).toLowerCase().includes(r)),n=s?t.children:this._filterItems(t.children,r);return!s&&!n.length?null:{...t,children:n}}).filter(t=>!!t):e}_bindInteractions(){this.root.querySelectorAll(".item-button").forEach(i=>{i.onclick=r=>{const t=r.currentTarget,s=t.dataset.action,n=t.dataset.itemId||"",a=t.dataset.value||"";if(t.getAttribute("aria-disabled")!=="true"){if(s==="toggle"){r.preventDefault(),this._toggleExpanded(n);return}if(s==="navigate"){this._selectValue(a),this._handleNavigate(r,t,a);return}r.preventDefault(),this._selectValue(a)}},i.onkeydown=r=>{const t=r.currentTarget,s=t.dataset.itemId||"",n=t.dataset.value||"";r.key==="ArrowRight"&&t.dataset.action==="toggle"?(r.preventDefault(),this._expanded.add(s),this._syncExpandedDom()):r.key==="ArrowLeft"?(r.preventDefault(),this._expanded.delete(s),this._syncExpandedDom()):r.key==="Enter"&&t.dataset.action==="navigate"||(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),t.dataset.action==="toggle"?this._toggleExpanded(s):t.dataset.action==="navigate"?t.click():this._selectValue(n))}});const e=this.root.querySelector(".resize-handle");e&&(e.onkeydown=i=>this._handleResizeKey(i),e.onpointerdown=i=>this._startResize(i))}_handleNavigate(e,i,r){const t=this._flattenItems(this._collectItems()),s=t.findIndex(d=>d.value===r),n=t[s],a=i.getAttribute("href")||"";q.requestNavigate(this,{index:s,value:r,label:n?.label||r,href:a,item:n},e,i.getAttribute("target")||"")&&e.preventDefault()}_toggleExpanded(e){this.hasAttribute("collapsed")||(this._expanded.has(e)?this._expanded.delete(e):this._expanded.add(e),this._syncExpandedDom())}_syncExpandedDom(){this.root.querySelectorAll(".item").forEach(e=>{const i=e.dataset.itemId||"";this._expanded.has(i)&&!this.hasAttribute("collapsed")?e.setAttribute("data-expanded","true"):e.removeAttribute("data-expanded")})}_selectValue(e){this.value=e;const i=this._flattenItems(this._collectItems()),r=i.findIndex(n=>n.value===e),t=i[r],s={index:r,value:e,label:t?.label||e,item:t};this.dispatchEvent(new CustomEvent("select",{detail:s,bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{detail:s,bubbles:!0}))}_syncActiveDom(){const e=this.value;this.root.querySelectorAll(".item-button").forEach(i=>{e&&i.dataset.value===e?(i.setAttribute("data-active","true"),i.setAttribute("aria-current","page")):(i.removeAttribute("data-active"),i.removeAttribute("aria-current"))})}_flattenItems(e){return e.flatMap(i=>[i,...this._flattenItems(i.children)])}_applySizing(){const e=z(this.getAttribute("size")),i=y[e],r=c(this.getAttribute("width"),i.expanded),t=c(this.getAttribute("min-width"),i.min),s=c(this.getAttribute("max-width"),i.max),n=c(this.getAttribute("collapsed-width"),i.collapsed),a=this._restoreWidth(r),d=Math.min(Math.max(a,t),s),u=this.hasAttribute("collapsed")?n:d;this.style.setProperty("--ui-sidebar-width",`${d}px`),this.style.setProperty("--ui-sidebar-min-width",`${t}px`),this.style.setProperty("--ui-sidebar-max-width",`${s}px`),this.style.setProperty("--ui-sidebar-collapsed-width",`${n}px`),this.style.setProperty("--ui-sidebar-current-width",`${u}px`),this.style.setProperty("inline-size",`${u}px`)}_applyRadius(){const e=this.getAttribute("radius"),i=this.getAttribute("item-radius");if(!e||["none","sm","md","lg","full"].includes(e)){this.style.removeProperty("--ui-sidebar-radius"),i||this.style.removeProperty("--ui-sidebar-item-radius"),this.style.removeProperty("--ui-sidebar-promo-radius");return}const r=v(e)||e;this.style.setProperty("--ui-sidebar-radius",r),i||this.style.setProperty("--ui-sidebar-item-radius",r),this.style.setProperty("--ui-sidebar-promo-radius",r)}_applyItemMetrics(){const e=v(this.getAttribute("item-radius")),i=m(this.getAttribute("item-gap")),r=m(this.getAttribute("item-padding-x")),t=m(this.getAttribute("item-padding-y")),s=m(this.getAttribute("item-height")),n=m(this.getAttribute("item-font-size")),a=m(this.getAttribute("item-line-height"));this._setOptionalCssVar("--ui-sidebar-item-radius",e),this._setOptionalCssVar("--ui-sidebar-item-gap",i),this._setOptionalCssVar("--ui-sidebar-item-padding-x",r),this._setOptionalCssVar("--ui-sidebar-item-padding-y",t),this._setOptionalCssVar("--ui-sidebar-item-height",s),this._setOptionalCssVar("--ui-sidebar-item-font-size",n),this._setOptionalCssVar("--ui-sidebar-item-line-height",a)}_setOptionalCssVar(e,i){if(!i){this.style.removeProperty(e);return}this.style.setProperty(e,i)}_restoreWidth(e){if(!this.hasAttribute("auto-save"))return e;const i=this.getAttribute("storage-key");if(!i)return e;try{const r=window.localStorage.getItem(`ui-sidebar:${i}`);if(!r)return e;const t=Number.parseFloat(r);return Number.isFinite(t)?t:e}catch{return e}}_persistWidth(e){if(!this.hasAttribute("auto-save"))return;const i=this.getAttribute("storage-key");if(i)try{window.localStorage.setItem(`ui-sidebar:${i}`,`${e}`)}catch{}}_currentExpandedWidth(){const e=Number.parseFloat(this.style.getPropertyValue("--ui-sidebar-width"));return Number.isFinite(e)&&e>0?e:c(this.getAttribute("width"),y[z(this.getAttribute("size"))].expanded)}_bindResponsiveCollapse(){if(this._responsiveCleanup?.(),this._responsiveCleanup=null,typeof window>"u"||typeof window.matchMedia!="function")return;const e=window.matchMedia("(max-width: 767px)"),i=()=>this._syncResponsiveCollapse(e.matches);typeof e.addEventListener=="function"?e.addEventListener("change",i):typeof e.addListener=="function"&&e.addListener(i),this._responsiveCleanup=()=>{typeof e.removeEventListener=="function"?e.removeEventListener("change",i):typeof e.removeListener=="function"&&e.removeListener(i)},i()}_syncResponsiveCollapse(e){if(this.hasAttribute("collapsible")){if(e){!this.hasAttribute("collapsed")&&!this._userCollapsePreference&&(this._responsiveAutoCollapsed=!0,this._lastExpandedWidth=this._currentExpandedWidth(),this.setAttribute("collapsed",""),this.dispatchEvent(new CustomEvent("toggle",{detail:{collapsed:!0,source:"responsive"},bubbles:!0})),this.dispatchEvent(new CustomEvent("collapse-change",{detail:{collapsed:!0,source:"responsive"},bubbles:!0})));return}this._responsiveAutoCollapsed&&!this._userCollapsePreference&&(this._responsiveAutoCollapsed=!1,this.hasAttribute("collapsed")&&(this.removeAttribute("collapsed"),this.dispatchEvent(new CustomEvent("toggle",{detail:{collapsed:!1,source:"responsive"},bubbles:!0})),this.dispatchEvent(new CustomEvent("collapse-change",{detail:{collapsed:!1,source:"responsive"},bubbles:!0}))))}}_emitWidthChange(e){const i={width:c(this.style.getPropertyValue("--ui-sidebar-width"),0),collapsedWidth:c(this.style.getPropertyValue("--ui-sidebar-collapsed-width"),0),minWidth:c(this.style.getPropertyValue("--ui-sidebar-min-width"),0),maxWidth:c(this.style.getPropertyValue("--ui-sidebar-max-width"),0),source:e};this.dispatchEvent(new CustomEvent("width-change",{detail:i,bubbles:!0}))}_handleResizeKey(e){const r=this.getAttribute("position")==="right"?-1:1,t=this._currentExpandedWidth(),s=c(this.style.getPropertyValue("--ui-sidebar-min-width"),t),n=c(this.style.getPropertyValue("--ui-sidebar-max-width"),t);let a=t;if(e.key==="ArrowRight")a=t+16*r;else if(e.key==="ArrowLeft")a=t-16*r;else if(e.key==="Home")a=s;else if(e.key==="End")a=n;else return;e.preventDefault(),a=Math.min(Math.max(a,s),n),this.style.setProperty("--ui-sidebar-width",`${a}px`),this.hasAttribute("collapsed")||(this.style.setProperty("--ui-sidebar-current-width",`${a}px`),this.style.setProperty("inline-size",`${a}px`)),this._persistWidth(a),this._emitWidthChange("keyboard")}_startResize(e){if(!this.hasAttribute("resizable"))return;e.preventDefault();const i=this.getAttribute("position")==="right",r=e.clientX,t=this._currentExpandedWidth(),s=c(this.style.getPropertyValue("--ui-sidebar-min-width"),t),n=c(this.style.getPropertyValue("--ui-sidebar-max-width"),t);this._dragging=!0,this.dispatchEvent(new CustomEvent("resize-start",{detail:{width:t},bubbles:!0}));const a=u=>{const p=u.clientX-r,g=i?t-p:t+p,b=Math.min(Math.max(g,s),n);this.style.setProperty("--ui-sidebar-width",`${b}px`),this.hasAttribute("collapsed")||(this.style.setProperty("--ui-sidebar-current-width",`${b}px`),this.style.setProperty("inline-size",`${b}px`)),this.dispatchEvent(new CustomEvent("resize",{detail:{width:b},bubbles:!0}))},d=()=>{if(!this._dragging)return;this._dragging=!1,window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",d);const u=this._currentExpandedWidth();this._persistWidth(u),this._emitWidthChange("pointer"),this.dispatchEvent(new CustomEvent("resize-end",{detail:{width:u},bubbles:!0}))};window.addEventListener("pointermove",a),window.addEventListener("pointerup",d),this._resizeCleanup=()=>{window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",d)}}}typeof customElements<"u"&&!customElements.get("ui-sidebar")&&customElements.define("ui-sidebar",A);exports.UISidebar=A;