@editora/ui-core 0.1.19 → 0.1.21

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 (313) hide show
  1. package/dist/{ElementBase-1b301e7f.js → ElementBase-EV6mVBUV.js} +1 -1
  2. package/dist/{ElementBase-909688f3.mjs → ElementBase-YlTLMsGk.mjs} +3 -3
  3. package/dist/accordion.cjs.js +3 -3
  4. package/dist/accordion.esm.js +39 -62
  5. package/dist/alert-dialog.cjs.js +19 -19
  6. package/dist/alert-dialog.esm.js +69 -87
  7. package/dist/alert.cjs.js +1 -1
  8. package/dist/alert.esm.js +4 -7
  9. package/dist/anchor.cjs.js +2 -2
  10. package/dist/anchor.esm.js +3 -3
  11. package/dist/animated-beam.cjs.js +83 -83
  12. package/dist/animated-beam.esm.js +250 -277
  13. package/dist/animated-list.cjs.js +4 -4
  14. package/dist/animated-list.esm.js +47 -61
  15. package/dist/animated-text.cjs.js +2 -2
  16. package/dist/animated-text.esm.js +13 -24
  17. package/dist/app-header.cjs.js +3 -3
  18. package/dist/app-header.esm.js +11 -13
  19. package/dist/aspect-ratio.cjs.js +1 -1
  20. package/dist/aspect-ratio.esm.js +4 -7
  21. package/dist/avatar.cjs.js +1 -1
  22. package/dist/avatar.esm.js +7 -13
  23. package/dist/badge.cjs.js +1 -1
  24. package/dist/badge.esm.js +4 -7
  25. package/dist/block-controls.cjs.js +2 -2
  26. package/dist/block-controls.esm.js +19 -35
  27. package/dist/box.cjs.js +1 -1
  28. package/dist/box.esm.js +8 -15
  29. package/dist/breadcrumb.cjs.js +2 -2
  30. package/dist/breadcrumb.esm.js +20 -37
  31. package/dist/button.cjs.js +1 -521
  32. package/dist/button.esm.js +2 -671
  33. package/dist/{calendar-2c11b824.mjs → calendar-DLY4acgn.mjs} +293 -342
  34. package/dist/{calendar-a8735e40.js → calendar-Dkof-FTK.js} +25 -25
  35. package/dist/calendar.cjs.js +1 -1
  36. package/dist/calendar.esm.js +8 -9
  37. package/dist/card.cjs.js +4 -4
  38. package/dist/card.esm.js +13 -19
  39. package/dist/chart.cjs.js +64 -64
  40. package/dist/chart.esm.js +223 -254
  41. package/dist/checkbox.cjs.js +1 -1
  42. package/dist/checkbox.esm.js +2 -3
  43. package/dist/collapsible.cjs.js +1 -1
  44. package/dist/collapsible.esm.js +5 -9
  45. package/dist/{collection-a1aac0c6.mjs → collection-C7URGjEI.mjs} +8 -14
  46. package/dist/collection.cjs.js +1 -1
  47. package/dist/collection.esm.js +30 -29
  48. package/dist/color-picker.cjs.js +10 -10
  49. package/dist/color-picker.esm.js +190 -253
  50. package/dist/combobox.cjs.js +13 -13
  51. package/dist/combobox.esm.js +93 -126
  52. package/dist/command-palette.cjs.js +3 -3
  53. package/dist/command-palette.esm.js +19 -30
  54. package/dist/command.cjs.js +4 -4
  55. package/dist/command.esm.js +41 -53
  56. package/dist/components/ui-collection.d.ts.map +1 -1
  57. package/dist/components/ui-multi-select.d.ts.map +1 -1
  58. package/dist/components/ui-orbiter.d.ts.map +1 -1
  59. package/dist/components/ui-portal.d.ts.map +1 -1
  60. package/dist/components/ui-positioner.d.ts.map +1 -1
  61. package/dist/components/ui-skeleton.d.ts.map +1 -1
  62. package/dist/components/ui-sortable.d.ts +8 -0
  63. package/dist/components/ui-sortable.d.ts.map +1 -1
  64. package/dist/components/ui-split-button.d.ts +1 -0
  65. package/dist/components/ui-split-button.d.ts.map +1 -1
  66. package/dist/components/ui-tabs.d.ts.map +1 -1
  67. package/dist/components/ui-textarea.d.ts.map +1 -1
  68. package/dist/components/ui-time-picker.d.ts.map +1 -1
  69. package/dist/container.cjs.js +2 -2
  70. package/dist/container.esm.js +2 -3
  71. package/dist/context-menu.cjs.js +8 -8
  72. package/dist/context-menu.esm.js +157 -219
  73. package/dist/control-group.cjs.js +1 -1
  74. package/dist/control-group.esm.js +2 -3
  75. package/dist/data-table.cjs.js +4 -4
  76. package/dist/data-table.esm.js +299 -381
  77. package/dist/date-field.cjs.js +3 -3
  78. package/dist/date-field.esm.js +68 -80
  79. package/dist/date-picker.cjs.js +9 -9
  80. package/dist/date-picker.esm.js +69 -97
  81. package/dist/date-range-picker.cjs.js +3 -3
  82. package/dist/date-range-picker.esm.js +32 -56
  83. package/dist/date-range-time-picker.cjs.js +9 -9
  84. package/dist/date-range-time-picker.esm.js +111 -140
  85. package/dist/date-time-picker.cjs.js +7 -7
  86. package/dist/date-time-picker.esm.js +115 -147
  87. package/dist/date-time-utils-Dmost5Ee.js +1 -0
  88. package/dist/date-time-utils-y1N2gvG2.mjs +268 -0
  89. package/dist/description.cjs.js +1 -1
  90. package/dist/description.esm.js +3 -5
  91. package/dist/dialog.cjs.js +12 -12
  92. package/dist/dialog.esm.js +44 -63
  93. package/dist/direction-provider.cjs.js +1 -1
  94. package/dist/direction-provider.esm.js +2 -3
  95. package/dist/{dismissable-layer-9c7e6b58.mjs → dismissable-layer-BmPIoK80.mjs} +29 -33
  96. package/dist/dismissable-layer-DNfrKA20.js +1 -0
  97. package/dist/dismissable-layer.cjs.js +2 -2
  98. package/dist/dismissable-layer.esm.js +4 -6
  99. package/dist/dock.cjs.js +5 -5
  100. package/dist/dock.esm.js +134 -155
  101. package/dist/drawer.cjs.js +2 -2
  102. package/dist/drawer.esm.js +18 -35
  103. package/dist/dropdown.cjs.js +2 -2
  104. package/dist/dropdown.esm.js +119 -149
  105. package/dist/dropzone.cjs.js +1 -1
  106. package/dist/dropzone.esm.js +0 -1
  107. package/dist/empty-state.cjs.js +1 -1
  108. package/dist/empty-state.esm.js +1 -1
  109. package/dist/field-error.cjs.js +1 -1
  110. package/dist/field-error.esm.js +3 -5
  111. package/dist/field.cjs.js +5 -5
  112. package/dist/field.esm.js +27 -34
  113. package/dist/fieldset.cjs.js +4 -4
  114. package/dist/fieldset.esm.js +19 -24
  115. package/dist/file-upload.cjs.js +4 -4
  116. package/dist/file-upload.esm.js +69 -93
  117. package/dist/flex.cjs.js +1 -1
  118. package/dist/flex.esm.js +5 -9
  119. package/dist/floating-toolbar.cjs.js +4 -4
  120. package/dist/floating-toolbar.esm.js +60 -85
  121. package/dist/focus-scope-Bwug2gDv.js +1 -0
  122. package/dist/{focus-scope-103833ee.mjs → focus-scope-CmEsG5UZ.mjs} +39 -48
  123. package/dist/focus-scope.cjs.js +2 -2
  124. package/dist/focus-scope.esm.js +15 -20
  125. package/dist/form.cjs.js +2 -2
  126. package/dist/form.esm.js +26 -53
  127. package/dist/gantt.cjs.js +43 -43
  128. package/dist/gantt.esm.js +295 -322
  129. package/dist/grid.cjs.js +1 -1
  130. package/dist/grid.esm.js +5 -9
  131. package/dist/hover-card.cjs.js +4 -4
  132. package/dist/hover-card.esm.js +22 -28
  133. package/dist/icon-cloud.cjs.js +7 -7
  134. package/dist/icon-cloud.esm.js +48 -62
  135. package/dist/icon.cjs.js +1 -1
  136. package/dist/icon.esm.js +2 -4
  137. package/dist/index.cjs.js +1 -1
  138. package/dist/index.esm.js +378 -390
  139. package/dist/inline-edit.cjs.js +11 -11
  140. package/dist/inline-edit.esm.js +32 -36
  141. package/dist/input.cjs.js +17 -17
  142. package/dist/input.esm.js +50 -63
  143. package/dist/label.cjs.js +2 -2
  144. package/dist/label.esm.js +8 -17
  145. package/dist/layout.cjs.js +2 -2
  146. package/dist/layout.esm.js +20 -26
  147. package/dist/listbox-B6QgECax.js +46 -0
  148. package/dist/listbox-DJamVeFj.mjs +200 -0
  149. package/dist/listbox.cjs.js +1 -1
  150. package/dist/listbox.esm.js +2 -4
  151. package/dist/marquee.cjs.js +5 -5
  152. package/dist/marquee.esm.js +33 -50
  153. package/dist/masonry-grid.cjs.js +1 -1
  154. package/dist/masonry-grid.esm.js +5 -9
  155. package/dist/menu.cjs.js +3 -3
  156. package/dist/menu.esm.js +106 -126
  157. package/dist/menubar.cjs.js +5 -5
  158. package/dist/menubar.esm.js +118 -164
  159. package/dist/meter.cjs.js +2 -2
  160. package/dist/meter.esm.js +4 -4
  161. package/dist/multi-select.cjs.js +5 -5
  162. package/dist/multi-select.esm.js +125 -137
  163. package/dist/navigation-menu.cjs.js +4 -4
  164. package/dist/navigation-menu.esm.js +44 -55
  165. package/dist/number-field.cjs.js +2 -2
  166. package/dist/number-field.esm.js +73 -98
  167. package/dist/number-ticker.cjs.js +3 -3
  168. package/dist/number-ticker.esm.js +22 -43
  169. package/dist/odometer.cjs.js +1 -1
  170. package/dist/odometer.esm.js +5 -9
  171. package/dist/orbiter.cjs.js +13 -13
  172. package/dist/orbiter.esm.js +79 -90
  173. package/dist/{overlayManager-5bbd4dc3.mjs → overlayManager-BJjU1VA8.mjs} +4 -5
  174. package/dist/{overlayManager-0eda4e08.js → overlayManager-CSy3fJmJ.js} +1 -1
  175. package/dist/pagination.cjs.js +2 -2
  176. package/dist/pagination.esm.js +14 -18
  177. package/dist/{panel-group-a376cc5e.mjs → panel-group-8sVNnGxg.mjs} +24 -46
  178. package/dist/panel-group-CaD0_KQf.js +36 -0
  179. package/dist/panel-group.cjs.js +1 -1
  180. package/dist/panel-group.esm.js +2 -5
  181. package/dist/panel.cjs.js +4 -4
  182. package/dist/panel.esm.js +8 -10
  183. package/dist/password-field.cjs.js +9 -9
  184. package/dist/password-field.esm.js +62 -82
  185. package/dist/pin-input.cjs.js +3 -3
  186. package/dist/pin-input.esm.js +33 -39
  187. package/dist/placement-grid.cjs.js +4 -4
  188. package/dist/placement-grid.esm.js +108 -131
  189. package/dist/plugin-panel.cjs.js +7 -7
  190. package/dist/plugin-panel.esm.js +13 -15
  191. package/dist/popover.cjs.js +2 -2
  192. package/dist/popover.esm.js +21 -31
  193. package/dist/portal-DgpQ3Jo1.js +1 -0
  194. package/dist/{portal-fe73e5cc.mjs → portal-bR42gHvG.mjs} +43 -48
  195. package/dist/portal.cjs.js +3 -3
  196. package/dist/portal.esm.js +20 -28
  197. package/dist/{positioner-e9770c66.mjs → positioner-D0VGxtYU.mjs} +189 -209
  198. package/dist/positioner-D_fqyx_j.js +1 -0
  199. package/dist/positioner.cjs.js +2 -2
  200. package/dist/positioner.esm.js +22 -28
  201. package/dist/presence.cjs.js +1 -1
  202. package/dist/presence.esm.js +7 -13
  203. package/dist/primitives/auto-scroll.d.ts +9 -0
  204. package/dist/primitives/auto-scroll.d.ts.map +1 -0
  205. package/dist/primitives/selector.d.ts +4 -0
  206. package/dist/primitives/selector.d.ts.map +1 -0
  207. package/dist/progress.cjs.js +1 -1
  208. package/dist/progress.esm.js +5 -9
  209. package/dist/quick-actions.cjs.js +6 -6
  210. package/dist/quick-actions.esm.js +52 -62
  211. package/dist/radio-group.cjs.js +13 -13
  212. package/dist/radio-group.esm.js +39 -51
  213. package/dist/radio.cjs.js +1 -1
  214. package/dist/radio.esm.js +5 -9
  215. package/dist/rating.cjs.js +1 -1
  216. package/dist/rating.esm.js +12 -23
  217. package/dist/{roving-focus-group-4350c9a7.mjs → roving-focus-group-Dbm1Jko_.mjs} +3 -6
  218. package/dist/roving-focus-group.cjs.js +1 -1
  219. package/dist/roving-focus-group.esm.js +3 -5
  220. package/dist/runtime-CTaOSmBj.js +1 -0
  221. package/dist/{runtime-161f68a2.mjs → runtime-D1gFh1fS.mjs} +338 -366
  222. package/dist/runtime.cjs.js +1 -1
  223. package/dist/runtime.esm.js +6 -6
  224. package/dist/scroll-area.cjs.js +3 -3
  225. package/dist/scroll-area.esm.js +38 -46
  226. package/dist/{scroll-lock-31da444f.mjs → scroll-lock-LfqXXqsu.mjs} +5 -9
  227. package/dist/section.cjs.js +1 -1
  228. package/dist/section.esm.js +1 -1
  229. package/dist/select.cjs.js +7 -7
  230. package/dist/select.esm.js +67 -97
  231. package/dist/selection-popup.cjs.js +1 -1
  232. package/dist/selection-popup.esm.js +8 -15
  233. package/dist/selector-BvAh35ve.js +1 -0
  234. package/dist/selector-WI8pD7YO.mjs +18 -0
  235. package/dist/separator.cjs.js +1 -1
  236. package/dist/separator.esm.js +1 -1
  237. package/dist/sidebar.cjs.js +18 -18
  238. package/dist/sidebar.esm.js +117 -139
  239. package/dist/skeleton.cjs.js +11 -11
  240. package/dist/skeleton.esm.js +27 -24
  241. package/dist/slider.cjs.js +1 -1
  242. package/dist/slider.esm.js +6 -11
  243. package/dist/slot.cjs.js +4 -4
  244. package/dist/slot.esm.js +16 -19
  245. package/dist/sortable.cjs.js +79 -65
  246. package/dist/sortable.esm.js +714 -734
  247. package/dist/spinning-text.cjs.js +12 -12
  248. package/dist/spinning-text.esm.js +80 -92
  249. package/dist/split-button.cjs.js +4 -4
  250. package/dist/split-button.esm.js +77 -62
  251. package/dist/splitter.cjs.js +1 -1
  252. package/dist/splitter.esm.js +1 -1
  253. package/dist/stepper.cjs.js +8 -8
  254. package/dist/stepper.esm.js +32 -52
  255. package/dist/switch.cjs.js +7 -7
  256. package/dist/switch.esm.js +23 -31
  257. package/dist/table.cjs.js +2 -2
  258. package/dist/table.esm.js +46 -56
  259. package/dist/tabs.cjs.js +8 -8
  260. package/dist/tabs.esm.js +89 -109
  261. package/dist/tags-input.cjs.js +4 -4
  262. package/dist/tags-input.esm.js +45 -62
  263. package/dist/textarea.cjs.js +10 -10
  264. package/dist/textarea.esm.js +49 -52
  265. package/dist/time-field.cjs.js +4 -4
  266. package/dist/time-field.esm.js +70 -84
  267. package/dist/time-picker.cjs.js +22 -22
  268. package/dist/time-picker.esm.js +88 -110
  269. package/dist/timeline.cjs.js +1 -1
  270. package/dist/timeline.esm.js +3 -5
  271. package/dist/toast.cjs.js +2 -2
  272. package/dist/toast.esm.js +33 -47
  273. package/dist/toggle-group.cjs.js +6 -6
  274. package/dist/toggle-group.esm.js +85 -105
  275. package/dist/toggle.cjs.js +1 -1
  276. package/dist/toggle.esm.js +3 -5
  277. package/dist/toolbar.cjs.js +1 -1
  278. package/dist/toolbar.esm.js +13 -24
  279. package/dist/tooltip.cjs.js +2 -2
  280. package/dist/tooltip.esm.js +31 -42
  281. package/dist/transfer-list.cjs.js +31 -31
  282. package/dist/transfer-list.esm.js +114 -127
  283. package/dist/{tree-dcd74a4a.mjs → tree-B3kE8ESs.mjs} +55 -62
  284. package/dist/tree-Dx_kv_ih.js +39 -0
  285. package/dist/tree-item.cjs.js +2 -2
  286. package/dist/tree-item.esm.js +2 -3
  287. package/dist/tree.cjs.js +1 -1
  288. package/dist/tree.esm.js +2 -5
  289. package/dist/ui-button-Q0GNNWKC.mjs +665 -0
  290. package/dist/ui-button-rXQOS9QJ.js +521 -0
  291. package/dist/{icon-9e9da03b.js → ui-icon-BzVNC_lr.js} +4 -4
  292. package/dist/{icon-e2a85cc1.mjs → ui-icon-YI6lyuqU.mjs} +58 -65
  293. package/dist/visually-hidden.cjs.js +1 -1
  294. package/dist/visually-hidden.esm.js +1 -1
  295. package/dist/wizard.cjs.js +14 -14
  296. package/dist/wizard.esm.js +85 -105
  297. package/package.json +2 -2
  298. package/dist/date-time-utils-66480de4.js +0 -1
  299. package/dist/date-time-utils-a2c7af25.mjs +0 -307
  300. package/dist/dismissable-layer-193e3bed.js +0 -1
  301. package/dist/focus-scope-2b12b4e7.js +0 -1
  302. package/dist/listbox-308789a0.mjs +0 -210
  303. package/dist/listbox-ef2f708e.js +0 -46
  304. package/dist/panel-group-40254cdd.js +0 -36
  305. package/dist/portal-c69756c0.js +0 -1
  306. package/dist/positioner-33529bb8.js +0 -1
  307. package/dist/runtime-3f13807b.js +0 -1
  308. package/dist/tree-0a7a8d05.js +0 -39
  309. /package/dist/{collection-a2969ad2.js → collection-qv8A8rq4.js} +0 -0
  310. /package/dist/{menu-item-styles-27fdbac4.mjs → menu-item-styles-CZiPwPwl.mjs} +0 -0
  311. /package/dist/{menu-item-styles-83ad1e22.js → menu-item-styles-CbNUEwP2.js} +0 -0
  312. /package/dist/{roving-focus-group-5c059bf9.js → roving-focus-group-BdJ_4Njm.js} +0 -0
  313. /package/dist/{scroll-lock-d7b0df21.js → scroll-lock-BX6e3Ced.js} +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const D=require("./ElementBase-1b301e7f.js"),_={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}},z=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"]),A=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-EV6mVBUV.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)));
@@ -712,21 +712,21 @@
712
712
  }
713
713
  </style>
714
714
  ${o}
715
- `;function d(o){return o.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function y(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 g(o){if(!o)return null;const e=o.trim();return e?/^\d+(\.\d+)?$/.test(e)?`${e}px`:e:null}function C(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 x(o){return o.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,"")||"item"}class E 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 t=i.closest('[slot="search"]');if(!t||!this.contains(t))return;const r=typeof i.value=="string"?i.value:"";r?this.setAttribute("search-query",r):this.removeAttribute("search-query"),this.dispatchEvent(new CustomEvent("search-change",{detail:{query:r},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(){var e,i,t;(e=this._observer)==null||e.disconnect(),this._observer=null,(i=this._resizeCleanup)==null||i.call(this),this._resizeCleanup=null,(t=this._responsiveCleanup)==null||t.call(this),this._responsiveCleanup=null,this.removeEventListener("input",this._handleSearchInput,!0),this.removeEventListener("change",this._handleSearchInput,!0),super.disconnectedCallback()}shouldRenderOnAttributeChange(e){return!(A.has(e)||z.has(e)||e==="collapsed"||e==="value"||e==="radius")}attributeChangedCallback(e,i,t){if(i!==t){if(e==="radius"&&this.isConnected){const r=y(t);if(r&&r!==t){this.setAttribute("radius",r);return}}if(this.isConnected){if(A.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(!z.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,t)}}}}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"]'),t=!this.querySelector('[slot="search"]'),r=!this.querySelector('[slot="footer"]'),s=!this.querySelector('[slot="promo"]'),a=`
715
+ `;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
716
  <aside class="shell" part="shell">
717
717
  <div class="header-wrap" part="header" ${i?"hidden":""}><slot name="header"></slot></div>
718
- <div class="search-wrap" part="search" ${t?"hidden":""}><slot name="search"></slot></div>
718
+ <div class="search-wrap" part="search" ${r?"hidden":""}><slot name="search"></slot></div>
719
719
  <nav class="nav" part="nav" aria-label="${d(this.getAttribute("aria-label")||"Sidebar")}">
720
720
  ${e}
721
721
  </nav>
722
722
  <div class="promo-wrap" part="promo" ${s?"hidden":""}><slot name="promo"></slot></div>
723
- <div class="footer-wrap" part="footer" ${r?"hidden":""}><slot name="footer"></slot></div>
723
+ <div class="footer-wrap" part="footer" ${t?"hidden":""}><slot name="footer"></slot></div>
724
724
  <button class="resize-handle" part="resize-handle" type="button" aria-label="Resize sidebar"></button>
725
725
  </aside>
726
- `;this.setContent(M(a)),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:t})=>`
726
+ `;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})=>`
727
727
  <section class="section" part="section">
728
728
  ${i?`<div class="section-label" part="section-label">${d(i)}</div>`:""}
729
- <div class="section-items">${t.map((s,a)=>this._renderItem(s,`${x(i||"general")}-${a}`)).join("")}</div>
729
+ <div class="section-items">${r.map((s,n)=>this._renderItem(s,`${v(i||"general")}-${n}`)).join("")}</div>
730
730
  </section>
731
731
  `).join(""):`
732
732
  <section class="section" part="section">
@@ -741,17 +741,17 @@
741
741
  </div>
742
742
  </div>
743
743
  </section>
744
- `}_renderItem(e,i){const t=e.id||i,r=this.value?this.value===e.value:!!e.active,s=this._expanded.has(t),a=this.getAttribute("show-icons")!=="false",n=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">
744
+ `}_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",c=e.description?`<div class="item-description">${d(e.description)}</div>`:"",u=e.contentHtml?`<span class="copy custom-copy">${e.contentHtml}</span>`:`<span class="copy">
745
745
  <span class="item-label">${d(e.label)}</span>
746
- ${u}
747
- </span>`,h=a?this._renderIcon(e):"",b=n&&e.badge?`<span class="badge" part="badge">${d(e.badge)}</span>`:"",p=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>':"",v=h?`<span class="icon-wrap" part="icon"><span class="icon">${h}</span></span>`:"",f=b||p?`<span class="end-wrap">${b?`<span class="meta">${b}</span>`:""}${p}</span>`:"",m=!!e.href&&!e.children.length,$=r?' 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=m?` href="${d(e.href||"")}"`:"",P=m&&e.target?` target="${d(e.target)}"`:"",L=m&&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,`${t}-${T}`)).join("")}</div></div>`:"",w=m?"a":"button",R=m?"":' type="button"';return`
748
- <div class="item" data-item-id="${d(t)}" data-value="${d(e.value)}" ${s?'data-expanded="true"':""}>
749
- <${w}
746
+ ${c}
747
+ </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`
748
+ <div class="item" data-item-id="${d(r)}" data-value="${d(e.value)}" ${s?'data-expanded="true"':""}>
749
+ <${x}
750
750
  class="item-button"
751
751
  part="item"
752
752
  ${R}
753
- data-action="${e.children.length?"toggle":m?"navigate":"select"}"
754
- data-item-id="${d(t)}"
753
+ data-action="${e.children.length?"toggle":h?"navigate":"select"}"
754
+ data-item-id="${d(r)}"
755
755
  data-value="${d(e.value)}"
756
756
  ${S}
757
757
  ${P}
@@ -760,10 +760,10 @@
760
760
  ${k}
761
761
  ${I}
762
762
  >
763
- ${v}
764
- ${c}
765
- ${f}
766
- </${w}>
763
+ ${C}
764
+ ${u}
765
+ ${E}
766
+ </${x}>
767
767
  ${H}
768
768
  </div>
769
- `}_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){var r,s;let i=[];const t=e.dataset.children;if(t)try{const a=JSON.parse(t);Array.isArray(a)&&(i=a)}catch{i=[]}return{value:e.dataset.value||((r=e.textContent)==null?void 0:r.trim())||"item",label:e.dataset.label||((s=e.textContent)==null?void 0:s.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 t=String(e.icon||"").trim();return t?d(t):""}_normalizeItems(e,i=0,t=""){return e.map((r,s)=>{var b,p,v,f;const a=((b=r.label)==null?void 0:b.trim())||((p=r.value)==null?void 0:p.trim())||`Item ${s+1}`,n=((v=r.value)==null?void 0:v.trim())||x(a),u=((f=r.section)==null?void 0:f.trim())||t||"",c=`${x(u||"nav")}-${x(n)}-${i}-${s}`,h=this._normalizeItems(r.children||[],i+1,u);return{...r,id:c,label:a,value:n,section:u,children:h,depth:i}})}_groupItems(e){const i=[],t=new Map;for(const r of e){const s=r.section||"",a=t.get(s);if(a){a.items.push(r);continue}const n={label:s,items:[r]};t.set(s,n),i.push(n)}return i}_filterItems(e,i){const t=i.trim().toLowerCase();return t?e.map(r=>{const s=[r.label,r.description,r.value,r.section].filter(Boolean).some(n=>String(n).toLowerCase().includes(t)),a=s?r.children:this._filterItems(r.children,t);return!s&&!a.length?null:{...r,children:a}}).filter(r=>!!r):e}_bindInteractions(){this.root.querySelectorAll(".item-button").forEach(i=>{i.onclick=t=>{const r=t.currentTarget,s=r.dataset.action,a=r.dataset.itemId||"",n=r.dataset.value||"";if(r.getAttribute("aria-disabled")!=="true"){if(s==="toggle"){t.preventDefault(),this._toggleExpanded(a);return}if(s==="navigate"){this._selectValue(n);return}t.preventDefault(),this._selectValue(n)}},i.onkeydown=t=>{const r=t.currentTarget,s=r.dataset.itemId||"",a=r.dataset.value||"";t.key==="ArrowRight"&&r.dataset.action==="toggle"?(t.preventDefault(),this._expanded.add(s),this._syncExpandedDom()):t.key==="ArrowLeft"?(t.preventDefault(),this._expanded.delete(s),this._syncExpandedDom()):(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),r.dataset.action==="toggle"?this._toggleExpanded(s):this._selectValue(a))}});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()),t=i.findIndex(a=>a.value===e),r=i[t],s={index:t,value:e,label:(r==null?void 0:r.label)||e,item:r};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=C(this.getAttribute("size")),i=_[e],t=l(this.getAttribute("width"),i.expanded),r=l(this.getAttribute("min-width"),i.min),s=l(this.getAttribute("max-width"),i.max),a=l(this.getAttribute("collapsed-width"),i.collapsed),n=this._restoreWidth(t),u=Math.min(Math.max(n,r),s),c=this.hasAttribute("collapsed")?a:u;this.style.setProperty("--ui-sidebar-width",`${u}px`),this.style.setProperty("--ui-sidebar-min-width",`${r}px`),this.style.setProperty("--ui-sidebar-max-width",`${s}px`),this.style.setProperty("--ui-sidebar-collapsed-width",`${a}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 t=y(e)||e;this.style.setProperty("--ui-sidebar-radius",t),i||this.style.setProperty("--ui-sidebar-item-radius",t),this.style.setProperty("--ui-sidebar-promo-radius",t)}_applyItemMetrics(){const e=y(this.getAttribute("item-radius")),i=g(this.getAttribute("item-gap")),t=g(this.getAttribute("item-padding-x")),r=g(this.getAttribute("item-padding-y")),s=g(this.getAttribute("item-height")),a=g(this.getAttribute("item-font-size")),n=g(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",t),this._setOptionalCssVar("--ui-sidebar-item-padding-y",r),this._setOptionalCssVar("--ui-sidebar-item-height",s),this._setOptionalCssVar("--ui-sidebar-item-font-size",a),this._setOptionalCssVar("--ui-sidebar-item-line-height",n)}_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 t=window.localStorage.getItem(`ui-sidebar:${i}`);if(!t)return e;const r=Number.parseFloat(t);return Number.isFinite(r)?r: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"),_[C(this.getAttribute("size"))].expanded)}_bindResponsiveCollapse(){var t;if((t=this._responsiveCleanup)==null||t.call(this),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 t=this.getAttribute("position")==="right"?-1:1,r=this._currentExpandedWidth(),s=l(this.style.getPropertyValue("--ui-sidebar-min-width"),r),a=l(this.style.getPropertyValue("--ui-sidebar-max-width"),r);let n=r;if(e.key==="ArrowRight")n=r+16*t;else if(e.key==="ArrowLeft")n=r-16*t;else if(e.key==="Home")n=s;else if(e.key==="End")n=a;else return;e.preventDefault(),n=Math.min(Math.max(n,s),a),this.style.setProperty("--ui-sidebar-width",`${n}px`),this.hasAttribute("collapsed")||(this.style.setProperty("--ui-sidebar-current-width",`${n}px`),this.style.setProperty("inline-size",`${n}px`)),this._persistWidth(n),this._emitWidthChange("keyboard")}_startResize(e){if(!this.hasAttribute("resizable"))return;e.preventDefault();const i=this.getAttribute("position")==="right",t=e.clientX,r=this._currentExpandedWidth(),s=l(this.style.getPropertyValue("--ui-sidebar-min-width"),r),a=l(this.style.getPropertyValue("--ui-sidebar-max-width"),r);this._dragging=!0,this.dispatchEvent(new CustomEvent("resize-start",{detail:{width:r},bubbles:!0}));const n=c=>{const h=c.clientX-t,b=i?r-h:r+h,p=Math.min(Math.max(b,s),a);this.style.setProperty("--ui-sidebar-width",`${p}px`),this.hasAttribute("collapsed")||(this.style.setProperty("--ui-sidebar-current-width",`${p}px`),this.style.setProperty("inline-size",`${p}px`)),this.dispatchEvent(new CustomEvent("resize",{detail:{width:p},bubbles:!0}))},u=()=>{if(!this._dragging)return;this._dragging=!1,window.removeEventListener("pointermove",n),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",n),window.addEventListener("pointerup",u),this._resizeCleanup=()=>{window.removeEventListener("pointermove",n),window.removeEventListener("pointerup",u)}}}customElements.get("ui-sidebar")||customElements.define("ui-sidebar",E);exports.UISidebar=E;
769
+ `}_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),c=t.section?.trim()||r||"",u=`${v(c||"nav")}-${v(a)}-${i}-${s}`,p=this._normalizeItems(t.children||[],i+1,c);return{...t,id:u,label:n,value:a,section:c,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),c=Math.min(Math.max(a,t),s),u=this.hasAttribute("collapsed")?n:c;this.style.setProperty("--ui-sidebar-width",`${c}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=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=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}))},c=()=>{if(!this._dragging)return;this._dragging=!1,window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",c);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",c),this._resizeCleanup=()=>{window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",c)}}}customElements.get("ui-sidebar")||customElements.define("ui-sidebar",A);exports.UISidebar=A;