@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
package/dist/label.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { E as s } from "./ElementBase-909688f3.mjs";
1
+ import { E as s } from "./ElementBase-YlTLMsGk.mjs";
2
2
  const n = `
3
3
  :host {
4
4
  --ui-label-color: var(--ui-color-text, var(--ui-text, #0f172a));
@@ -187,17 +187,12 @@ function a(i) {
187
187
  return i.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
188
188
  }
189
189
  function u(i) {
190
- if (!i)
191
- return !1;
190
+ if (!i) return !1;
192
191
  const e = i.assignedNodes({ flatten: !0 });
193
- return e.length ? e.some((o) => {
194
- var t;
195
- return o.nodeType === Node.TEXT_NODE ? !!((t = o.textContent) != null && t.trim()) : o.nodeType === Node.ELEMENT_NODE;
196
- }) : !1;
192
+ return e.length ? e.some((o) => o.nodeType === Node.TEXT_NODE ? !!o.textContent?.trim() : o.nodeType === Node.ELEMENT_NODE) : !1;
197
193
  }
198
194
  function l(i) {
199
- if (i.hasAttribute("disabled") || i.getAttribute("aria-disabled") === "true")
200
- return !1;
195
+ if (i.hasAttribute("disabled") || i.getAttribute("aria-disabled") === "true") return !1;
201
196
  const e = window.getComputedStyle(i);
202
197
  return !(e.display === "none" || e.visibility === "hidden");
203
198
  }
@@ -229,8 +224,7 @@ class c extends s {
229
224
  const e = this.getAttribute("for");
230
225
  if (e) {
231
226
  const t = document.getElementById(e);
232
- if (t instanceof HTMLElement && l(t))
233
- return t;
227
+ if (t instanceof HTMLElement && l(t)) return t;
234
228
  }
235
229
  const o = [
236
230
  this.nextElementSibling,
@@ -238,13 +232,11 @@ class c extends s {
238
232
  this.closest('[role="group"], form, ui-form, fieldset, .field, [data-field]')
239
233
  ];
240
234
  for (const t of o) {
241
- if (!t)
242
- continue;
235
+ if (!t) continue;
243
236
  const r = t.querySelector(
244
237
  'ui-input, ui-textarea, ui-select, ui-combobox, input, textarea, select, button, [tabindex]:not([tabindex="-1"])'
245
238
  );
246
- if (r && l(r))
247
- return r;
239
+ if (r && l(r)) return r;
248
240
  }
249
241
  return null;
250
242
  }
@@ -258,8 +250,7 @@ class c extends s {
258
250
  }
259
251
  }
260
252
  _onRootClick(e) {
261
- if (this.hasAttribute("disabled"))
262
- return;
253
+ if (this.hasAttribute("disabled")) return;
263
254
  const o = e.composedPath(), t = this.root.querySelector(".label");
264
255
  !t || !o.includes(t) || (this._focusControl(), this.dispatchEvent(new CustomEvent("click", { bubbles: !0 })));
265
256
  }
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("./ElementBase-1b301e7f.js"),x=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("./ElementBase-EV6mVBUV.js"),x=`
2
2
  :host {
3
3
  --ui-layout-bg: var(--ui-color-background, #f8fafc);
4
4
  --ui-layout-surface: var(--ui-color-surface, #ffffff);
@@ -241,7 +241,7 @@
241
241
  box-shadow: none;
242
242
  }
243
243
  }
244
- `;function r(e){return e?e.assignedNodes({flatten:!0}).some(t=>{var a;return t.nodeType===Node.ELEMENT_NODE?!0:t.nodeType===Node.TEXT_NODE?!!((a=t.textContent)!=null&&a.trim()):!1}):!1}function g(e){if(e==null)return!1;const t=String(e).trim().toLowerCase();return t!=="false"&&t!=="0"}function c(e,t){const a=e==null?void 0:e.trim();return a?/^-?\d+(\.\d+)?$/.test(a)?`${a}px`:a:t}class p extends f.ElementBase{constructor(){super(),this._layoutNode=null,this._headerEl=null,this._bodyEl=null,this._footerEl=null,this._sidebarPanel=null,this._contentPanel=null,this._asidePanel=null,this._headerSlot=null,this._sidebarSlot=null,this._contentSlot=null,this._defaultSlot=null,this._asideSlot=null,this._footerSlot=null,this._lastLayoutSignature="",this._onSlotChange=this._onSlotChange.bind(this)}static get observedAttributes(){return["mode","variant","density","max-width","sidebar-side","collapsed","headless","sidebar-width","aside-width"]}connectedCallback(){super.connectedCallback(),queueMicrotask(()=>this._syncShell({emit:!1}))}disconnectedCallback(){this._detachSlotHandlers(),super.disconnectedCallback()}collapse(){this.setAttribute("collapsed","")}expand(){this.removeAttribute("collapsed")}toggleSidebar(){this.collapsed?this.expand():this.collapse()}get collapsed(){return g(this.getAttribute("collapsed"))}set collapsed(t){t?this.setAttribute("collapsed",""):this.removeAttribute("collapsed")}attributeChangedCallback(t,a,o){if(a!==o){if(t==="variant"||t==="density"||t==="max-width"||t==="headless"){super.attributeChangedCallback(t,a,o),queueMicrotask(()=>this._syncShell({emit:!1}));return}queueMicrotask(()=>this._syncShell({emit:!0}))}}_mode(){const t=this.getAttribute("mode");return t==="split"||t==="stack"?t:"dashboard"}_sidebarSide(){return this.getAttribute("sidebar-side")==="end"?"end":"start"}_attachSlotHandlers(){this._detachSlotHandlers(),this._headerSlot=this.root.querySelector('slot[name="header"]'),this._sidebarSlot=this.root.querySelector('slot[name="sidebar"]'),this._contentSlot=this.root.querySelector('slot[name="content"]'),this._defaultSlot=this.root.querySelector("slot:not([name])"),this._asideSlot=this.root.querySelector('slot[name="aside"]'),this._footerSlot=this.root.querySelector('slot[name="footer"]'),[this._headerSlot,this._sidebarSlot,this._contentSlot,this._defaultSlot,this._asideSlot,this._footerSlot].forEach(t=>t==null?void 0:t.addEventListener("slotchange",this._onSlotChange))}_detachSlotHandlers(){[this._headerSlot,this._sidebarSlot,this._contentSlot,this._defaultSlot,this._asideSlot,this._footerSlot].forEach(t=>t==null?void 0:t.removeEventListener("slotchange",this._onSlotChange)),this._headerSlot=null,this._sidebarSlot=null,this._contentSlot=null,this._defaultSlot=null,this._asideSlot=null,this._footerSlot=null}_onSlotChange(){this._syncShell({emit:!0})}_emitLayoutChange(t){this.dispatchEvent(new CustomEvent("layoutchange",{detail:t,bubbles:!0,composed:!0}))}_signature(t){return JSON.stringify(t)}_computeShellState(){if(!this.isConnected||!this._layoutNode||!this._bodyEl)return null;const t=this._mode(),a=this._sidebarSide(),o=this.collapsed,y=r(this._headerSlot),b=r(this._footerSlot),u=r(this._sidebarSlot),n=r(this._asideSlot),d=r(this._contentSlot)||r(this._defaultSlot),i=u&&(!o||t==="stack")&&!(t==="split"&&n),s=n,m=d||i||s,h=t==="stack";let l="content-only";return h||(t==="split"?s&&d?l="split-with-aside":i&&d&&(l=a==="end"?"split-with-sidebar-end":"split-with-sidebar-start"):i&&s?l=a==="end"?"dashboard-end":"dashboard-start":i?l=a==="end"?"dashboard-end-no-aside":"dashboard-start-no-aside":s&&(l=a==="end"?"dashboard-end-no-sidebar":"dashboard-start-no-sidebar")),{mode:t,sidebarSide:a,collapsed:o,hasHeader:y,hasFooter:b,hasSidebarContent:u,hasAsideContent:n,hasContent:d,sidebarVisible:i,asideVisible:s,bodyVisible:m,layout:l,stack:h,sidebarTrack:i?c(this.getAttribute("sidebar-width"),"clamp(220px, 22vw, 320px)"):"0px",asideTrack:s?c(this.getAttribute("aside-width"),"clamp(240px, 26vw, 360px)"):"0px"}}_syncShell(t){const a=this._computeShellState();if(!a||!this._bodyEl)return;this._headerEl&&(this._headerEl.hidden=!a.hasHeader),this._footerEl&&(this._footerEl.hidden=!a.hasFooter),this.style.setProperty("--ui-layout-sidebar-track",a.sidebarTrack),this.style.setProperty("--ui-layout-aside-track",a.asideTrack),this._sidebarPanel&&(this._sidebarPanel.hidden=!a.sidebarVisible),this._contentPanel&&(this._contentPanel.hidden=!a.hasContent),this._asidePanel&&(this._asidePanel.hidden=!a.asideVisible),this._bodyEl.hidden=!a.bodyVisible,this._bodyEl.dataset.layout=a.layout,this._bodyEl.dataset.mode=a.mode,this._bodyEl.dataset.sidebarSide=a.sidebarSide,a.stack?this._bodyEl.classList.add("stack"):this._bodyEl.classList.remove("stack");const o=this._signature(a);t.emit&&o!==this._lastLayoutSignature&&this._emitLayoutChange(a),this._lastLayoutSignature=o}shouldRenderOnAttributeChange(t,a,o){return!1}render(){this.setContent(`
244
+ `;function r(o){return o?o.assignedNodes({flatten:!0}).some(t=>t.nodeType===Node.ELEMENT_NODE?!0:t.nodeType===Node.TEXT_NODE?!!t.textContent?.trim():!1):!1}function g(o){if(o==null)return!1;const t=String(o).trim().toLowerCase();return t!=="false"&&t!=="0"}function c(o,t){const a=o?.trim();return a?/^-?\d+(\.\d+)?$/.test(a)?`${a}px`:a:t}class p extends f.ElementBase{constructor(){super(),this._layoutNode=null,this._headerEl=null,this._bodyEl=null,this._footerEl=null,this._sidebarPanel=null,this._contentPanel=null,this._asidePanel=null,this._headerSlot=null,this._sidebarSlot=null,this._contentSlot=null,this._defaultSlot=null,this._asideSlot=null,this._footerSlot=null,this._lastLayoutSignature="",this._onSlotChange=this._onSlotChange.bind(this)}static get observedAttributes(){return["mode","variant","density","max-width","sidebar-side","collapsed","headless","sidebar-width","aside-width"]}connectedCallback(){super.connectedCallback(),queueMicrotask(()=>this._syncShell({emit:!1}))}disconnectedCallback(){this._detachSlotHandlers(),super.disconnectedCallback()}collapse(){this.setAttribute("collapsed","")}expand(){this.removeAttribute("collapsed")}toggleSidebar(){this.collapsed?this.expand():this.collapse()}get collapsed(){return g(this.getAttribute("collapsed"))}set collapsed(t){t?this.setAttribute("collapsed",""):this.removeAttribute("collapsed")}attributeChangedCallback(t,a,e){if(a!==e){if(t==="variant"||t==="density"||t==="max-width"||t==="headless"){super.attributeChangedCallback(t,a,e),queueMicrotask(()=>this._syncShell({emit:!1}));return}queueMicrotask(()=>this._syncShell({emit:!0}))}}_mode(){const t=this.getAttribute("mode");return t==="split"||t==="stack"?t:"dashboard"}_sidebarSide(){return this.getAttribute("sidebar-side")==="end"?"end":"start"}_attachSlotHandlers(){this._detachSlotHandlers(),this._headerSlot=this.root.querySelector('slot[name="header"]'),this._sidebarSlot=this.root.querySelector('slot[name="sidebar"]'),this._contentSlot=this.root.querySelector('slot[name="content"]'),this._defaultSlot=this.root.querySelector("slot:not([name])"),this._asideSlot=this.root.querySelector('slot[name="aside"]'),this._footerSlot=this.root.querySelector('slot[name="footer"]'),[this._headerSlot,this._sidebarSlot,this._contentSlot,this._defaultSlot,this._asideSlot,this._footerSlot].forEach(t=>t?.addEventListener("slotchange",this._onSlotChange))}_detachSlotHandlers(){[this._headerSlot,this._sidebarSlot,this._contentSlot,this._defaultSlot,this._asideSlot,this._footerSlot].forEach(t=>t?.removeEventListener("slotchange",this._onSlotChange)),this._headerSlot=null,this._sidebarSlot=null,this._contentSlot=null,this._defaultSlot=null,this._asideSlot=null,this._footerSlot=null}_onSlotChange(){this._syncShell({emit:!0})}_emitLayoutChange(t){this.dispatchEvent(new CustomEvent("layoutchange",{detail:t,bubbles:!0,composed:!0}))}_signature(t){return JSON.stringify(t)}_computeShellState(){if(!this.isConnected||!this._layoutNode||!this._bodyEl)return null;const t=this._mode(),a=this._sidebarSide(),e=this.collapsed,y=r(this._headerSlot),b=r(this._footerSlot),u=r(this._sidebarSlot),n=r(this._asideSlot),d=r(this._contentSlot)||r(this._defaultSlot),i=u&&(!e||t==="stack")&&!(t==="split"&&n),s=n,m=d||i||s,h=t==="stack";let l="content-only";return h||(t==="split"?s&&d?l="split-with-aside":i&&d&&(l=a==="end"?"split-with-sidebar-end":"split-with-sidebar-start"):i&&s?l=a==="end"?"dashboard-end":"dashboard-start":i?l=a==="end"?"dashboard-end-no-aside":"dashboard-start-no-aside":s&&(l=a==="end"?"dashboard-end-no-sidebar":"dashboard-start-no-sidebar")),{mode:t,sidebarSide:a,collapsed:e,hasHeader:y,hasFooter:b,hasSidebarContent:u,hasAsideContent:n,hasContent:d,sidebarVisible:i,asideVisible:s,bodyVisible:m,layout:l,stack:h,sidebarTrack:i?c(this.getAttribute("sidebar-width"),"clamp(220px, 22vw, 320px)"):"0px",asideTrack:s?c(this.getAttribute("aside-width"),"clamp(240px, 26vw, 360px)"):"0px"}}_syncShell(t){const a=this._computeShellState();if(!a||!this._bodyEl)return;this._headerEl&&(this._headerEl.hidden=!a.hasHeader),this._footerEl&&(this._footerEl.hidden=!a.hasFooter),this.style.setProperty("--ui-layout-sidebar-track",a.sidebarTrack),this.style.setProperty("--ui-layout-aside-track",a.asideTrack),this._sidebarPanel&&(this._sidebarPanel.hidden=!a.sidebarVisible),this._contentPanel&&(this._contentPanel.hidden=!a.hasContent),this._asidePanel&&(this._asidePanel.hidden=!a.asideVisible),this._bodyEl.hidden=!a.bodyVisible,this._bodyEl.dataset.layout=a.layout,this._bodyEl.dataset.mode=a.mode,this._bodyEl.dataset.sidebarSide=a.sidebarSide,a.stack?this._bodyEl.classList.add("stack"):this._bodyEl.classList.remove("stack");const e=this._signature(a);t.emit&&e!==this._lastLayoutSignature&&this._emitLayoutChange(a),this._lastLayoutSignature=e}shouldRenderOnAttributeChange(t,a,e){return!1}render(){this.setContent(`
245
245
  <style>${x}</style>
246
246
  <div class="layout" part="layout">
247
247
  <header class="header" part="header">
@@ -1,4 +1,4 @@
1
- import { E as m } from "./ElementBase-909688f3.mjs";
1
+ import { E as m } from "./ElementBase-YlTLMsGk.mjs";
2
2
  const f = `
3
3
  :host {
4
4
  --ui-layout-bg: var(--ui-color-background, #f8fafc);
@@ -243,20 +243,16 @@ const f = `
243
243
  }
244
244
  }
245
245
  `;
246
- function r(e) {
247
- return e ? e.assignedNodes({ flatten: !0 }).some((t) => {
248
- var a;
249
- return t.nodeType === Node.ELEMENT_NODE ? !0 : t.nodeType === Node.TEXT_NODE ? !!((a = t.textContent) != null && a.trim()) : !1;
250
- }) : !1;
246
+ function r(o) {
247
+ return o ? o.assignedNodes({ flatten: !0 }).some((t) => t.nodeType === Node.ELEMENT_NODE ? !0 : t.nodeType === Node.TEXT_NODE ? !!t.textContent?.trim() : !1) : !1;
251
248
  }
252
- function x(e) {
253
- if (e == null)
254
- return !1;
255
- const t = String(e).trim().toLowerCase();
249
+ function x(o) {
250
+ if (o == null) return !1;
251
+ const t = String(o).trim().toLowerCase();
256
252
  return t !== "false" && t !== "0";
257
253
  }
258
- function c(e, t) {
259
- const a = e == null ? void 0 : e.trim();
254
+ function c(o, t) {
255
+ const a = o?.trim();
260
256
  return a ? /^-?\d+(\.\d+)?$/.test(a) ? `${a}px` : a : t;
261
257
  }
262
258
  class g extends m {
@@ -297,10 +293,10 @@ class g extends m {
297
293
  set collapsed(t) {
298
294
  t ? this.setAttribute("collapsed", "") : this.removeAttribute("collapsed");
299
295
  }
300
- attributeChangedCallback(t, a, o) {
301
- if (a !== o) {
296
+ attributeChangedCallback(t, a, e) {
297
+ if (a !== e) {
302
298
  if (t === "variant" || t === "density" || t === "max-width" || t === "headless") {
303
- super.attributeChangedCallback(t, a, o), queueMicrotask(() => this._syncShell({ emit: !1 }));
299
+ super.attributeChangedCallback(t, a, e), queueMicrotask(() => this._syncShell({ emit: !1 }));
304
300
  return;
305
301
  }
306
302
  queueMicrotask(() => this._syncShell({ emit: !0 }));
@@ -321,7 +317,7 @@ class g extends m {
321
317
  this._defaultSlot,
322
318
  this._asideSlot,
323
319
  this._footerSlot
324
- ].forEach((t) => t == null ? void 0 : t.addEventListener("slotchange", this._onSlotChange));
320
+ ].forEach((t) => t?.addEventListener("slotchange", this._onSlotChange));
325
321
  }
326
322
  _detachSlotHandlers() {
327
323
  [
@@ -331,7 +327,7 @@ class g extends m {
331
327
  this._defaultSlot,
332
328
  this._asideSlot,
333
329
  this._footerSlot
334
- ].forEach((t) => t == null ? void 0 : t.removeEventListener("slotchange", this._onSlotChange)), this._headerSlot = null, this._sidebarSlot = null, this._contentSlot = null, this._defaultSlot = null, this._asideSlot = null, this._footerSlot = null;
330
+ ].forEach((t) => t?.removeEventListener("slotchange", this._onSlotChange)), this._headerSlot = null, this._sidebarSlot = null, this._contentSlot = null, this._defaultSlot = null, this._asideSlot = null, this._footerSlot = null;
335
331
  }
336
332
  _onSlotChange() {
337
333
  this._syncShell({ emit: !0 });
@@ -343,14 +339,13 @@ class g extends m {
343
339
  return JSON.stringify(t);
344
340
  }
345
341
  _computeShellState() {
346
- if (!this.isConnected || !this._layoutNode || !this._bodyEl)
347
- return null;
348
- const t = this._mode(), a = this._sidebarSide(), o = this.collapsed, p = r(this._headerSlot), y = r(this._footerSlot), u = r(this._sidebarSlot), n = r(this._asideSlot), d = r(this._contentSlot) || r(this._defaultSlot), i = u && (!o || t === "stack") && !(t === "split" && n), s = n, b = d || i || s, h = t === "stack";
342
+ if (!this.isConnected || !this._layoutNode || !this._bodyEl) return null;
343
+ const t = this._mode(), a = this._sidebarSide(), e = this.collapsed, p = r(this._headerSlot), y = r(this._footerSlot), u = r(this._sidebarSlot), n = r(this._asideSlot), d = r(this._contentSlot) || r(this._defaultSlot), i = u && (!e || t === "stack") && !(t === "split" && n), s = n, b = d || i || s, h = t === "stack";
349
344
  let l = "content-only";
350
345
  return h || (t === "split" ? s && d ? l = "split-with-aside" : i && d && (l = a === "end" ? "split-with-sidebar-end" : "split-with-sidebar-start") : i && s ? l = a === "end" ? "dashboard-end" : "dashboard-start" : i ? l = a === "end" ? "dashboard-end-no-aside" : "dashboard-start-no-aside" : s && (l = a === "end" ? "dashboard-end-no-sidebar" : "dashboard-start-no-sidebar")), {
351
346
  mode: t,
352
347
  sidebarSide: a,
353
- collapsed: o,
348
+ collapsed: e,
354
349
  hasHeader: p,
355
350
  hasFooter: y,
356
351
  hasSidebarContent: u,
@@ -367,13 +362,12 @@ class g extends m {
367
362
  }
368
363
  _syncShell(t) {
369
364
  const a = this._computeShellState();
370
- if (!a || !this._bodyEl)
371
- return;
365
+ if (!a || !this._bodyEl) return;
372
366
  this._headerEl && (this._headerEl.hidden = !a.hasHeader), this._footerEl && (this._footerEl.hidden = !a.hasFooter), this.style.setProperty("--ui-layout-sidebar-track", a.sidebarTrack), this.style.setProperty("--ui-layout-aside-track", a.asideTrack), this._sidebarPanel && (this._sidebarPanel.hidden = !a.sidebarVisible), this._contentPanel && (this._contentPanel.hidden = !a.hasContent), this._asidePanel && (this._asidePanel.hidden = !a.asideVisible), this._bodyEl.hidden = !a.bodyVisible, this._bodyEl.dataset.layout = a.layout, this._bodyEl.dataset.mode = a.mode, this._bodyEl.dataset.sidebarSide = a.sidebarSide, a.stack ? this._bodyEl.classList.add("stack") : this._bodyEl.classList.remove("stack");
373
- const o = this._signature(a);
374
- t.emit && o !== this._lastLayoutSignature && this._emitLayoutChange(a), this._lastLayoutSignature = o;
367
+ const e = this._signature(a);
368
+ t.emit && e !== this._lastLayoutSignature && this._emitLayoutChange(a), this._lastLayoutSignature = e;
375
369
  }
376
- shouldRenderOnAttributeChange(t, a, o) {
370
+ shouldRenderOnAttributeChange(t, a, e) {
377
371
  return !1;
378
372
  }
379
373
  render() {
@@ -0,0 +1,46 @@
1
+ "use strict";const b=require("./collection-qv8A8rq4.js"),y=require("./collection.cjs.js");function E(s){return!!(s&&typeof s=="object"&&"disabled"in s&&s.disabled)}function w(s,t,e=E){return t==="first"?b.findFirstEnabledIndex(s,e):b.findLastEnabledIndex(s,e)}function C(s,t={}){const e=t.getDisabled||E,i=t.activeIndex??-1,c=t.selectedIndex??-1;return i>=0&&i<s.length&&!e(s[i])?i:c>=0&&c<s.length&&!e(s[c])?c:b.findFirstEnabledIndex(s,e)}function T(s,t,e,i={}){const c=typeof i.fallbackIndex=="number"?i.fallbackIndex:t;return b.findNextEnabledIndex(s,t>=0?t:c,e,i)}function X(s,t,e={}){return b.findTypeaheadMatch(s,t,e)}function S(s,t={block:"nearest",inline:"nearest"}){if(!s)return;const e=s.ownerDocument,i=e?.defaultView;if(!e||!i)return;const c=(a,r)=>{const o=i.getComputedStyle(a),u=r==="y"?o.overflowY||o.overflow:o.overflowX||o.overflow;return/(auto|scroll|overlay)/.test(u)};let n=s.parentElement;for(;n;){const a=c(n,"y")&&n.scrollHeight>n.clientHeight;if(c(n,"x")&&n.scrollWidth>n.clientWidth||a)break;n=n.parentElement}if(!n)return;const l=s.getBoundingClientRect(),h=n.getBoundingClientRect(),d=l.top-h.top+n.scrollTop,f=d+l.height,v=l.left-h.left+n.scrollLeft,D=v+l.width,I=(a,r,o,u,W)=>{const m=W||"nearest",p=o-r;return m==="start"?r:m==="end"?o-u:m==="center"?r-(u-p)/2:p>=u||r<a?r:o>a+u?o-u:a},q=I(n.scrollTop,d,f,n.clientHeight,t.block),M=I(n.scrollLeft,v,D,n.clientWidth,t.inline),R=Math.max(0,n.scrollHeight-n.clientHeight),H=Math.max(0,n.scrollWidth-n.clientWidth),A=Math.max(0,Math.min(R,q)),g=Math.max(0,Math.min(H,M));Math.abs(n.scrollTop-A)>.5&&(n.scrollTop=A),Math.abs(n.scrollLeft-g)>.5&&(n.scrollLeft=g)}function B(s,t){s&&(t?s.setAttribute("aria-activedescendant",t):s.removeAttribute("aria-activedescendant"))}const x="data-ui-listbox-base-style",L=`
2
+ ui-listbox {
3
+ display: block;
4
+ min-inline-size: 0;
5
+ }
6
+
7
+ ui-listbox[role="menu"] {
8
+ display: flex;
9
+ flex-direction: column;
10
+ gap: 0;
11
+ min-inline-size: 0;
12
+ }
13
+
14
+ ui-listbox .option-text,
15
+ ui-listbox [data-option-text] {
16
+ min-inline-size: 0;
17
+ display: grid;
18
+ gap: 1px;
19
+ flex: 1 1 auto;
20
+ }
21
+
22
+ ui-listbox .option-label,
23
+ ui-listbox [data-option-label] {
24
+ display: block;
25
+ min-inline-size: 0;
26
+ overflow: hidden;
27
+ text-overflow: ellipsis;
28
+ white-space: nowrap;
29
+ font-size: inherit;
30
+ line-height: inherit;
31
+ letter-spacing: inherit;
32
+ }
33
+
34
+ ui-listbox .option-description,
35
+ ui-listbox [data-option-description] {
36
+ display: block;
37
+ min-inline-size: 0;
38
+ overflow: hidden;
39
+ text-overflow: ellipsis;
40
+ white-space: nowrap;
41
+ color: color-mix(in srgb, currentColor 58%, transparent);
42
+ font-size: 0.92em;
43
+ line-height: 1.35;
44
+ letter-spacing: inherit;
45
+ }
46
+ `;function k(s,t){s.removeAttribute(t)}function z(s){const t=s.getAttribute("tabindex");return t!=null?t!=="-1"||s.matches(":focus"):typeof s.focus=="function"}class _ extends y.UICollection{constructor(){super(...arguments),this._onClickBound=this._onClick.bind(this)}connectedCallback(){this._ensureBaseStyle(),super.connectedCallback(),this.addEventListener("click",this._onClickBound)}disconnectedCallback(){this.removeEventListener("click",this._onClickBound),super.disconnectedCallback()}static get observedAttributes(){return[...y.UICollection.observedAttributes,"active-attribute"]}get activeAttribute(){return this.getAttribute("active-attribute")||"data-active"}set activeAttribute(t){t?this.setAttribute("active-attribute",t):this.removeAttribute("active-attribute")}getActiveItem(t={}){const e=this.activeAttribute;return this.queryItems(t).find(i=>i.getAttribute(e)==="true")||null}clearActive(t={}){const e=this.activeAttribute;this.queryItems(t).forEach(i=>{k(i,e),i.hasAttribute("disabled")||i.setAttribute("tabindex","-1")})}setActiveItem(t,e={}){const i=this.queryItems(e),c=this.activeAttribute,n=t&&i.includes(t)?t:null;if(i.forEach(l=>{l===n?(l.setAttribute(c,"true"),z(l)&&l.setAttribute("tabindex","0")):(k(l,c),l.hasAttribute("disabled")||l.setAttribute("tabindex","-1"))}),B(e.owner||null,n?.id||null),!n)return null;if(e.scroll!==!1&&S(n,{block:"nearest",inline:"nearest"}),e.focus)try{n.focus({preventScroll:e.scroll===!1})}catch{n.focus()}return n}focusBoundary(t,e={}){const i=this.queryItems(e),c=w(i,t,n=>this.isItemDisabled(n));return c<0?null:this.setActiveItem(i[c],e)}move(t,e={}){const i=this.queryItems(e);if(!i.length)return null;const c=e.current||this.getActiveItem(e),n=c?i.indexOf(c):-1,h=C(i,{activeIndex:n,selectedIndex:n,getDisabled:f=>this.isItemDisabled(f)}),d=T(i,n,t,{wrap:e.wrap!==!1,fallbackIndex:h,getDisabled:f=>this.isItemDisabled(f)});return d<0?null:this.setActiveItem(i[d],e)}typeahead(t,e={}){const i=e.current||this.getActiveItem(e),c=this.queryEnabledItems(e),n=i?c.indexOf(i):-1,l=this.findTypeaheadMatch(t,{container:e.container,startIndex:n});return l?this.setActiveItem(l,e):null}_ensureBaseStyle(){const t=this.getRootNode();if(t instanceof ShadowRoot){if(t.querySelector(`style[${x}]`))return;const i=document.createElement("style");i.setAttribute(x,""),i.textContent=L,t.append(i);return}if(typeof document>"u"||document.head.querySelector(`style[${x}]`))return;const e=document.createElement("style");e.setAttribute(x,""),e.textContent=L,document.head.append(e)}_onClick(t){const e=t.target;if(!e)return;const i=e.closest(this.itemSelector);if(!i||!this.contains(i)||this.isItemDisabled(i))return;const c=this.setActiveItem(i,{focus:!1,scroll:!1});c&&this.dispatchEvent(new CustomEvent("select",{detail:{value:c.getAttribute("data-value")||c.getAttribute("value")||c.textContent||"",item:c},bubbles:!0,composed:!0}))}}typeof customElements<"u"&&!customElements.get("ui-listbox")&&customElements.define("ui-listbox",_);exports.UIListbox=_;exports.findListboxTypeaheadIndex=X;exports.getListboxBoundaryIndex=w;exports.moveListboxActiveIndex=T;exports.resolveListboxActiveIndex=C;exports.scrollListboxItemIntoView=S;exports.syncActiveDescendant=B;
@@ -0,0 +1,200 @@
1
+ import { f as E, b as D, c as M, d as q } from "./collection-C7URGjEI.mjs";
2
+ import { UICollection as A } from "./collection.esm.js";
3
+ function L(s) {
4
+ return !!(s && typeof s == "object" && "disabled" in s && s.disabled);
5
+ }
6
+ function R(s, t, e = L) {
7
+ return t === "first" ? E(s, e) : D(s, e);
8
+ }
9
+ function H(s, t = {}) {
10
+ const e = t.getDisabled || L, i = t.activeIndex ?? -1, l = t.selectedIndex ?? -1;
11
+ return i >= 0 && i < s.length && !e(s[i]) ? i : l >= 0 && l < s.length && !e(s[l]) ? l : E(s, e);
12
+ }
13
+ function W(s, t, e, i = {}) {
14
+ const l = typeof i.fallbackIndex == "number" ? i.fallbackIndex : t;
15
+ return M(s, t >= 0 ? t : l, e, i);
16
+ }
17
+ function N(s, t, e = {}) {
18
+ return q(s, t, e);
19
+ }
20
+ function X(s, t = { block: "nearest", inline: "nearest" }) {
21
+ if (!s) return;
22
+ const e = s.ownerDocument, i = e?.defaultView;
23
+ if (!e || !i) return;
24
+ const l = (a, r) => {
25
+ const o = i.getComputedStyle(a), u = r === "y" ? o.overflowY || o.overflow : o.overflowX || o.overflow;
26
+ return /(auto|scroll|overlay)/.test(u);
27
+ };
28
+ let n = s.parentElement;
29
+ for (; n; ) {
30
+ const a = l(n, "y") && n.scrollHeight > n.clientHeight;
31
+ if (l(n, "x") && n.scrollWidth > n.clientWidth || a) break;
32
+ n = n.parentElement;
33
+ }
34
+ if (!n) return;
35
+ const c = s.getBoundingClientRect(), b = n.getBoundingClientRect(), d = c.top - b.top + n.scrollTop, f = d + c.height, m = c.left - b.left + n.scrollLeft, w = m + c.width, v = (a, r, o, u, _) => {
36
+ const x = _ || "nearest", p = o - r;
37
+ return x === "start" ? r : x === "end" ? o - u : x === "center" ? r - (u - p) / 2 : p >= u || r < a ? r : o > a + u ? o - u : a;
38
+ }, C = v(n.scrollTop, d, f, n.clientHeight, t.block), T = v(n.scrollLeft, m, w, n.clientWidth, t.inline), S = Math.max(0, n.scrollHeight - n.clientHeight), B = Math.max(0, n.scrollWidth - n.clientWidth), g = Math.max(0, Math.min(S, C)), I = Math.max(0, Math.min(B, T));
39
+ Math.abs(n.scrollTop - g) > 0.5 && (n.scrollTop = g), Math.abs(n.scrollLeft - I) > 0.5 && (n.scrollLeft = I);
40
+ }
41
+ function z(s, t) {
42
+ s && (t ? s.setAttribute("aria-activedescendant", t) : s.removeAttribute("aria-activedescendant"));
43
+ }
44
+ const h = "data-ui-listbox-base-style", y = `
45
+ ui-listbox {
46
+ display: block;
47
+ min-inline-size: 0;
48
+ }
49
+
50
+ ui-listbox[role="menu"] {
51
+ display: flex;
52
+ flex-direction: column;
53
+ gap: 0;
54
+ min-inline-size: 0;
55
+ }
56
+
57
+ ui-listbox .option-text,
58
+ ui-listbox [data-option-text] {
59
+ min-inline-size: 0;
60
+ display: grid;
61
+ gap: 1px;
62
+ flex: 1 1 auto;
63
+ }
64
+
65
+ ui-listbox .option-label,
66
+ ui-listbox [data-option-label] {
67
+ display: block;
68
+ min-inline-size: 0;
69
+ overflow: hidden;
70
+ text-overflow: ellipsis;
71
+ white-space: nowrap;
72
+ font-size: inherit;
73
+ line-height: inherit;
74
+ letter-spacing: inherit;
75
+ }
76
+
77
+ ui-listbox .option-description,
78
+ ui-listbox [data-option-description] {
79
+ display: block;
80
+ min-inline-size: 0;
81
+ overflow: hidden;
82
+ text-overflow: ellipsis;
83
+ white-space: nowrap;
84
+ color: color-mix(in srgb, currentColor 58%, transparent);
85
+ font-size: 0.92em;
86
+ line-height: 1.35;
87
+ letter-spacing: inherit;
88
+ }
89
+ `;
90
+ function k(s, t) {
91
+ s.removeAttribute(t);
92
+ }
93
+ function O(s) {
94
+ const t = s.getAttribute("tabindex");
95
+ return t != null ? t !== "-1" || s.matches(":focus") : typeof s.focus == "function";
96
+ }
97
+ class Y extends A {
98
+ constructor() {
99
+ super(...arguments), this._onClickBound = this._onClick.bind(this);
100
+ }
101
+ connectedCallback() {
102
+ this._ensureBaseStyle(), super.connectedCallback(), this.addEventListener("click", this._onClickBound);
103
+ }
104
+ disconnectedCallback() {
105
+ this.removeEventListener("click", this._onClickBound), super.disconnectedCallback();
106
+ }
107
+ static get observedAttributes() {
108
+ return [...A.observedAttributes, "active-attribute"];
109
+ }
110
+ get activeAttribute() {
111
+ return this.getAttribute("active-attribute") || "data-active";
112
+ }
113
+ set activeAttribute(t) {
114
+ t ? this.setAttribute("active-attribute", t) : this.removeAttribute("active-attribute");
115
+ }
116
+ getActiveItem(t = {}) {
117
+ const e = this.activeAttribute;
118
+ return this.queryItems(t).find((i) => i.getAttribute(e) === "true") || null;
119
+ }
120
+ clearActive(t = {}) {
121
+ const e = this.activeAttribute;
122
+ this.queryItems(t).forEach((i) => {
123
+ k(i, e), i.hasAttribute("disabled") || i.setAttribute("tabindex", "-1");
124
+ });
125
+ }
126
+ setActiveItem(t, e = {}) {
127
+ const i = this.queryItems(e), l = this.activeAttribute, n = t && i.includes(t) ? t : null;
128
+ if (i.forEach((c) => {
129
+ c === n ? (c.setAttribute(l, "true"), O(c) && c.setAttribute("tabindex", "0")) : (k(c, l), c.hasAttribute("disabled") || c.setAttribute("tabindex", "-1"));
130
+ }), z(e.owner || null, n?.id || null), !n) return null;
131
+ if (e.scroll !== !1 && X(n, { block: "nearest", inline: "nearest" }), e.focus)
132
+ try {
133
+ n.focus({ preventScroll: e.scroll === !1 });
134
+ } catch {
135
+ n.focus();
136
+ }
137
+ return n;
138
+ }
139
+ focusBoundary(t, e = {}) {
140
+ const i = this.queryItems(e), l = R(i, t, (n) => this.isItemDisabled(n));
141
+ return l < 0 ? null : this.setActiveItem(i[l], e);
142
+ }
143
+ move(t, e = {}) {
144
+ const i = this.queryItems(e);
145
+ if (!i.length) return null;
146
+ const l = e.current || this.getActiveItem(e), n = l ? i.indexOf(l) : -1, b = H(i, {
147
+ activeIndex: n,
148
+ selectedIndex: n,
149
+ getDisabled: (f) => this.isItemDisabled(f)
150
+ }), d = W(i, n, t, {
151
+ wrap: e.wrap !== !1,
152
+ fallbackIndex: b,
153
+ getDisabled: (f) => this.isItemDisabled(f)
154
+ });
155
+ return d < 0 ? null : this.setActiveItem(i[d], e);
156
+ }
157
+ typeahead(t, e = {}) {
158
+ const i = e.current || this.getActiveItem(e), l = this.queryEnabledItems(e), n = i ? l.indexOf(i) : -1, c = this.findTypeaheadMatch(t, { container: e.container, startIndex: n });
159
+ return c ? this.setActiveItem(c, e) : null;
160
+ }
161
+ _ensureBaseStyle() {
162
+ const t = this.getRootNode();
163
+ if (t instanceof ShadowRoot) {
164
+ if (t.querySelector(`style[${h}]`)) return;
165
+ const i = document.createElement("style");
166
+ i.setAttribute(h, ""), i.textContent = y, t.append(i);
167
+ return;
168
+ }
169
+ if (typeof document > "u" || document.head.querySelector(`style[${h}]`)) return;
170
+ const e = document.createElement("style");
171
+ e.setAttribute(h, ""), e.textContent = y, document.head.append(e);
172
+ }
173
+ _onClick(t) {
174
+ const e = t.target;
175
+ if (!e) return;
176
+ const i = e.closest(this.itemSelector);
177
+ if (!i || !this.contains(i) || this.isItemDisabled(i)) return;
178
+ const l = this.setActiveItem(i, { focus: !1, scroll: !1 });
179
+ l && this.dispatchEvent(
180
+ new CustomEvent("select", {
181
+ detail: {
182
+ value: l.getAttribute("data-value") || l.getAttribute("value") || l.textContent || "",
183
+ item: l
184
+ },
185
+ bubbles: !0,
186
+ composed: !0
187
+ })
188
+ );
189
+ }
190
+ }
191
+ typeof customElements < "u" && !customElements.get("ui-listbox") && customElements.define("ui-listbox", Y);
192
+ export {
193
+ Y as U,
194
+ z as a,
195
+ N as f,
196
+ R as g,
197
+ W as m,
198
+ H as r,
199
+ X as s
200
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./listbox-ef2f708e.js");require("./collection-a2969ad2.js");require("./collection.cjs.js");exports.UIListbox=e.UIListbox;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./listbox-B6QgECax.js");exports.UIListbox=e.UIListbox;
@@ -1,6 +1,4 @@
1
- import { U as m } from "./listbox-308789a0.mjs";
2
- import "./collection-a1aac0c6.mjs";
3
- import "./collection.esm.js";
1
+ import { U as s } from "./listbox-DJamVeFj.mjs";
4
2
  export {
5
- m as UIListbox
3
+ s as UIListbox
6
4
  };
@@ -1,6 +1,6 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const p=require("./ElementBase-1b301e7f.js"),c="24px",f="48px",b=60,g=new Set(["none","sm","md","lg","full"]),v=new Set(["direction","speed","gap","size","padding"]),q=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const p=require("./ElementBase-EV6mVBUV.js"),l="24px",f="48px",b=60,g=new Set(["none","sm","md","lg","full"]),v=new Set(["direction","speed","gap","size","padding"]),q=`
2
2
  :host {
3
- --ui-marquee-gap: ${c};
3
+ --ui-marquee-gap: ${l};
4
4
  --ui-marquee-fade-size: ${f};
5
5
  --ui-marquee-duration: 12s;
6
6
  --ui-marquee-distance: 0px;
@@ -87,7 +87,7 @@
87
87
 
88
88
  :host([size="md"]),
89
89
  :host([size="2"]) {
90
- --ui-marquee-gap: ${c};
90
+ --ui-marquee-gap: ${l};
91
91
  --ui-marquee-padding-inline: 18px;
92
92
  --ui-marquee-padding-block: 12px;
93
93
  --ui-marquee-min-block-size: 56px;
@@ -496,7 +496,7 @@
496
496
  mask-image: none !important;
497
497
  }
498
498
  }
499
- `;function _(i){return i==="right"||i==="up"||i==="down"?i:"left"}function x(i,e){if(i==null||i==="")return e;const r=Number(i);return Number.isFinite(r)&&r>0?r:e}function l(i){if(i==null||i.trim()==="")return null;const e=i.trim();return/^-?\d+(\.\d+)?$/.test(e)?`${e}px`:e}function y(i){return!!(i&&g.has(i.trim().toLowerCase()))}function z(i){var e;return i.nodeType===Node.TEXT_NODE?!!((e=i.textContent)!=null&&e.trim()):i.nodeType===Node.ELEMENT_NODE}function m(i){if(i.tabIndex=-1,"inert"in i)try{i.inert=!0}catch{}if("disabled"in i)try{i.disabled=!0}catch{}i.setAttribute("aria-hidden","true"),i.removeAttribute("autofocus")}function k(i){if(i.nodeType!==Node.ELEMENT_NODE)return;const e=i;if(e.removeAttribute("id"),e.removeAttribute("slot"),e.setAttribute("data-marquee-clone",""),m(e),e instanceof HTMLAnchorElement&&e.removeAttribute("href"),e instanceof HTMLMediaElement){e.muted=!0,e.controls=!1,e.autoplay=!1,e.loop=!0;try{e.pause()}catch{}}e.querySelectorAll("*").forEach(t=>{if(t.removeAttribute("id"),t.removeAttribute("slot"),t.setAttribute("data-marquee-clone",""),m(t),t instanceof HTMLAnchorElement&&t.removeAttribute("href"),t instanceof HTMLMediaElement){t.muted=!0,t.controls=!1,t.autoplay=!1,t.loop=!0;try{t.pause()}catch{}}})}function E(i){if(i.nodeType===Node.TEXT_NODE)return document.createTextNode(i.textContent||"");if(i.nodeType!==Node.ELEMENT_NODE)return null;const e=i.cloneNode(!0);return k(e),e}class d extends p.ElementBase{constructor(){super(),this._slotEl=null,this._viewportEl=null,this._sourceEl=null,this._trackEl=null,this._cloneRootEl=null,this._resizeObserver=null,this._lightDomObserver=null,this._mediaQuery=null,this._measureFrame=null,this._cloneCount=0,this._onSlotChange=this._onSlotChange.bind(this),this._onContentMutation=this._onContentMutation.bind(this),this._onResize=this._onResize.bind(this),this._onReducedMotionChange=this._onReducedMotionChange.bind(this)}static get observedAttributes(){return["direction","speed","gap","fade","fade-size","paused","pause-on-hover","pause-on-focus","variant","tone","size","radius","elevation","padding"]}connectedCallback(){super.connectedCallback(),this._observeLightDom(),this._bindReducedMotion(),this._syncHostStyles()}disconnectedCallback(){if(this._slotEl&&(this._slotEl.removeEventListener("slotchange",this._onSlotChange),this._slotEl=null),this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null),this._lightDomObserver&&(this._lightDomObserver.disconnect(),this._lightDomObserver=null),this._mediaQuery){try{this._mediaQuery.removeEventListener("change",this._onReducedMotionChange)}catch{this._mediaQuery.removeListener(this._onReducedMotionChange)}this._mediaQuery=null}this._measureFrame!=null&&(this._cancelFrame(this._measureFrame),this._measureFrame=null),super.disconnectedCallback()}play(){this.removeAttribute("paused"),this._syncPlaybackState()}pause(){this.setAttribute("paused",""),this._syncPlaybackState()}refresh(){this._scheduleMeasurement(!0)}attributeChangedCallback(e,r,t){if(!(r===t||!e||!this.isConnected)){if((e==="gap"||e==="fade-size"||e==="radius"||e==="padding")&&this._syncHostStyles(),e==="paused"){this._syncPlaybackState();return}v.has(e)&&this._scheduleMeasurement(e!=="speed")}}shouldRenderOnAttributeChange(){return!1}render(){this.setContent(`
499
+ `;function _(i){return i==="right"||i==="up"||i==="down"?i:"left"}function x(i,e){if(i==null||i==="")return e;const r=Number(i);return Number.isFinite(r)&&r>0?r:e}function u(i){if(i==null||i.trim()==="")return null;const e=i.trim();return/^-?\d+(\.\d+)?$/.test(e)?`${e}px`:e}function y(i){return!!(i&&g.has(i.trim().toLowerCase()))}function z(i){return i.nodeType===Node.TEXT_NODE?!!i.textContent?.trim():i.nodeType===Node.ELEMENT_NODE}function m(i){if(i.tabIndex=-1,"inert"in i)try{i.inert=!0}catch{}if("disabled"in i)try{i.disabled=!0}catch{}i.setAttribute("aria-hidden","true"),i.removeAttribute("autofocus")}function k(i){if(i.nodeType!==Node.ELEMENT_NODE)return;const e=i;if(e.removeAttribute("id"),e.removeAttribute("slot"),e.setAttribute("data-marquee-clone",""),m(e),e instanceof HTMLAnchorElement&&e.removeAttribute("href"),e instanceof HTMLMediaElement){e.muted=!0,e.controls=!1,e.autoplay=!1,e.loop=!0;try{e.pause()}catch{}}e.querySelectorAll("*").forEach(t=>{if(t.removeAttribute("id"),t.removeAttribute("slot"),t.setAttribute("data-marquee-clone",""),m(t),t instanceof HTMLAnchorElement&&t.removeAttribute("href"),t instanceof HTMLMediaElement){t.muted=!0,t.controls=!1,t.autoplay=!1,t.loop=!0;try{t.pause()}catch{}}})}function E(i){if(i.nodeType===Node.TEXT_NODE)return document.createTextNode(i.textContent||"");if(i.nodeType!==Node.ELEMENT_NODE)return null;const e=i.cloneNode(!0);return k(e),e}class d extends p.ElementBase{constructor(){super(),this._slotEl=null,this._viewportEl=null,this._sourceEl=null,this._trackEl=null,this._cloneRootEl=null,this._resizeObserver=null,this._lightDomObserver=null,this._mediaQuery=null,this._measureFrame=null,this._cloneCount=0,this._onSlotChange=this._onSlotChange.bind(this),this._onContentMutation=this._onContentMutation.bind(this),this._onResize=this._onResize.bind(this),this._onReducedMotionChange=this._onReducedMotionChange.bind(this)}static get observedAttributes(){return["direction","speed","gap","fade","fade-size","paused","pause-on-hover","pause-on-focus","variant","tone","size","radius","elevation","padding"]}connectedCallback(){super.connectedCallback(),this._observeLightDom(),this._bindReducedMotion(),this._syncHostStyles()}disconnectedCallback(){if(this._slotEl&&(this._slotEl.removeEventListener("slotchange",this._onSlotChange),this._slotEl=null),this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null),this._lightDomObserver&&(this._lightDomObserver.disconnect(),this._lightDomObserver=null),this._mediaQuery){try{this._mediaQuery.removeEventListener("change",this._onReducedMotionChange)}catch{this._mediaQuery.removeListener(this._onReducedMotionChange)}this._mediaQuery=null}this._measureFrame!=null&&(this._cancelFrame(this._measureFrame),this._measureFrame=null),super.disconnectedCallback()}play(){this.removeAttribute("paused"),this._syncPlaybackState()}pause(){this.setAttribute("paused",""),this._syncPlaybackState()}refresh(){this._scheduleMeasurement(!0)}attributeChangedCallback(e,r,t){if(!(r===t||!e||!this.isConnected)){if((e==="gap"||e==="fade-size"||e==="radius"||e==="padding")&&this._syncHostStyles(),e==="paused"){this._syncPlaybackState();return}v.has(e)&&this._scheduleMeasurement(e!=="speed")}}shouldRenderOnAttributeChange(){return!1}render(){this.setContent(`
500
500
  <style>${q}</style>
501
501
  <div class="root" part="root">
502
502
  <div class="viewport" part="viewport">
@@ -510,4 +510,4 @@
510
510
  </div>
511
511
  </div>
512
512
  </div>
513
- `),this._bindElements(),this._syncHostStyles(),this._scheduleMeasurement()}_bindElements(){const e=this.root.querySelector("slot");e&&e!==this._slotEl&&(this._slotEl&&this._slotEl.removeEventListener("slotchange",this._onSlotChange),e.addEventListener("slotchange",this._onSlotChange),this._slotEl=e),this._viewportEl=this.root.querySelector(".viewport"),this._sourceEl=this.root.querySelector(".source"),this._trackEl=this.root.querySelector(".track"),this._cloneRootEl=this.root.querySelector(".clone-root"),this._ensureResizeObserver()}_observeLightDom(){this._lightDomObserver||typeof MutationObserver>"u"||(this._lightDomObserver=new MutationObserver(this._onContentMutation),this._lightDomObserver.observe(this,{childList:!0,subtree:!0,characterData:!0,attributes:!0}))}_bindReducedMotion(){if(!(this._mediaQuery||typeof window>"u"||typeof window.matchMedia!="function")){this._mediaQuery=window.matchMedia("(prefers-reduced-motion: reduce)");try{this._mediaQuery.addEventListener("change",this._onReducedMotionChange)}catch{this._mediaQuery.addListener(this._onReducedMotionChange)}this._syncPlaybackState()}}_ensureResizeObserver(){var r;if(!this.isConnected||typeof ResizeObserver>"u")return;this._resizeObserver||(this._resizeObserver=new ResizeObserver(this._onResize)),this._resizeObserver.disconnect(),this._viewportEl&&this._resizeObserver.observe(this._viewportEl),this._sourceEl&&this._resizeObserver.observe(this._sourceEl),this._resizeObserver.observe(this),(((r=this._slotEl)==null?void 0:r.assignedElements({flatten:!0}))||[]).forEach(t=>{var a;return(a=this._resizeObserver)==null?void 0:a.observe(t)})}_onSlotChange(){this._ensureResizeObserver(),this._scheduleMeasurement(!0)}_onContentMutation(){this._ensureResizeObserver(),this._scheduleMeasurement(!0)}_onResize(){this._scheduleMeasurement()}_onReducedMotionChange(){this._syncPlaybackState()}_scheduleMeasurement(e=!1){this.isConnected&&(this._measureFrame!=null&&(this._cancelFrame(this._measureFrame),this._measureFrame=null),this._measureFrame=this._requestFrame(()=>{this._measureFrame=null,this._syncLayout(e)}))}_syncLayout(e=!1){if(!this._viewportEl||!this._sourceEl||!this._cloneRootEl)return;const r=_(this.getAttribute("direction"));this.hasAttribute("direction")||this.setAttribute("direction",r);const t=this._measureCssLength(this.style.getPropertyValue("--ui-marquee-gap")||c),a=x(this.getAttribute("speed"),b),n=this._measureSourceSize(r),o=this._measureViewportSize(r);if(n<=0||o<=0){this._cloneRootEl.innerHTML="",this._cloneCount=0,this._setRuntimeState("idle"),this.style.setProperty("--ui-marquee-distance","0px"),this.style.setProperty("--ui-marquee-duration","0s");return}const s=Math.max(n+t,n),u=Math.max(1,Math.ceil((o+t)/Math.max(s,1))+1);(e||u!==this._cloneCount||!this._cloneRootEl.childElementCount)&&this._syncClones(u);const h=Math.max(s/a,.1);this.style.setProperty("--ui-marquee-distance",`${s}px`),this.style.setProperty("--ui-marquee-duration",`${h}s`),this._setRuntimeState(this._isMotionPaused()?"paused":"running")}_syncClones(e){var t;if(!this._cloneRootEl)return;this._cloneRootEl.innerHTML="",this._cloneCount=e;const r=((t=this._slotEl)==null?void 0:t.assignedNodes({flatten:!0}).filter(z))||[];for(let a=0;a<e;a+=1){const n=document.createElement("div");n.className="lane lane--clone",n.setAttribute("part","lane lane-clone"),n.setAttribute("aria-hidden","true");const o=document.createElement("div");o.className="clone-content",o.setAttribute("part","clone-content"),r.forEach(s=>{const u=E(s);u&&o.appendChild(u)}),n.appendChild(o),this._cloneRootEl.appendChild(n)}}_syncHostStyles(){const e=l(this.getAttribute("gap")),r=l(this.getAttribute("fade-size")),t=l(this.getAttribute("padding")),a=l(this.getAttribute("radius"));e?this.style.setProperty("--ui-marquee-gap",e):this.style.removeProperty("--ui-marquee-gap"),r?this.style.setProperty("--ui-marquee-fade-size",r):this.style.removeProperty("--ui-marquee-fade-size"),t?this.style.setProperty("--ui-marquee-padding",t):this.style.removeProperty("--ui-marquee-padding"),a&&!y(this.getAttribute("radius"))?this.style.setProperty("--ui-marquee-radius",a):this.style.removeProperty("--ui-marquee-radius"),this._syncPlaybackState()}_syncPlaybackState(){this._trackEl&&this._setRuntimeState(this._isMotionPaused()?"paused":"running")}_setRuntimeState(e){this.getAttribute("data-state")!==e&&this.setAttribute("data-state",e)}_isMotionPaused(){var e;return this.hasAttribute("paused")?!0:!!((e=this._mediaQuery)!=null&&e.matches)}_measureViewportSize(e){return this._viewportEl?e==="up"||e==="down"?this._viewportEl.clientHeight||this._viewportEl.getBoundingClientRect().height||0:this._viewportEl.clientWidth||this._viewportEl.getBoundingClientRect().width||0:0}_measureSourceSize(e){if(!this._sourceEl)return 0;const r=this._sourceEl.getBoundingClientRect();return e==="up"||e==="down"?Math.max(this._sourceEl.scrollHeight,this._sourceEl.offsetHeight,r.height||0):Math.max(this._sourceEl.scrollWidth,this._sourceEl.offsetWidth,r.width||0)}_measureCssLength(e){const r=e.trim();if(!r)return 0;if(/^-?\d+(\.\d+)?px$/.test(r)||/^-?\d+(\.\d+)?$/.test(r))return parseFloat(r);const t=document.createElement("div");t.style.position="absolute",t.style.visibility="hidden",t.style.pointerEvents="none",t.style.inlineSize=r,this.appendChild(t);const a=parseFloat(getComputedStyle(t).inlineSize||getComputedStyle(t).width||"0");return t.remove(),Number.isFinite(a)?a:0}_requestFrame(e){return typeof requestAnimationFrame=="function"?requestAnimationFrame(e):window.setTimeout(()=>e(performance.now()),16)}_cancelFrame(e){if(typeof cancelAnimationFrame=="function"){cancelAnimationFrame(e);return}window.clearTimeout(e)}}typeof customElements<"u"&&!customElements.get("ui-marquee")&&customElements.define("ui-marquee",d);exports.UIMarquee=d;
513
+ `),this._bindElements(),this._syncHostStyles(),this._scheduleMeasurement()}_bindElements(){const e=this.root.querySelector("slot");e&&e!==this._slotEl&&(this._slotEl&&this._slotEl.removeEventListener("slotchange",this._onSlotChange),e.addEventListener("slotchange",this._onSlotChange),this._slotEl=e),this._viewportEl=this.root.querySelector(".viewport"),this._sourceEl=this.root.querySelector(".source"),this._trackEl=this.root.querySelector(".track"),this._cloneRootEl=this.root.querySelector(".clone-root"),this._ensureResizeObserver()}_observeLightDom(){this._lightDomObserver||typeof MutationObserver>"u"||(this._lightDomObserver=new MutationObserver(this._onContentMutation),this._lightDomObserver.observe(this,{childList:!0,subtree:!0,characterData:!0,attributes:!0}))}_bindReducedMotion(){if(!(this._mediaQuery||typeof window>"u"||typeof window.matchMedia!="function")){this._mediaQuery=window.matchMedia("(prefers-reduced-motion: reduce)");try{this._mediaQuery.addEventListener("change",this._onReducedMotionChange)}catch{this._mediaQuery.addListener(this._onReducedMotionChange)}this._syncPlaybackState()}}_ensureResizeObserver(){if(!this.isConnected||typeof ResizeObserver>"u")return;this._resizeObserver||(this._resizeObserver=new ResizeObserver(this._onResize)),this._resizeObserver.disconnect(),this._viewportEl&&this._resizeObserver.observe(this._viewportEl),this._sourceEl&&this._resizeObserver.observe(this._sourceEl),this._resizeObserver.observe(this),(this._slotEl?.assignedElements({flatten:!0})||[]).forEach(r=>this._resizeObserver?.observe(r))}_onSlotChange(){this._ensureResizeObserver(),this._scheduleMeasurement(!0)}_onContentMutation(){this._ensureResizeObserver(),this._scheduleMeasurement(!0)}_onResize(){this._scheduleMeasurement()}_onReducedMotionChange(){this._syncPlaybackState()}_scheduleMeasurement(e=!1){this.isConnected&&(this._measureFrame!=null&&(this._cancelFrame(this._measureFrame),this._measureFrame=null),this._measureFrame=this._requestFrame(()=>{this._measureFrame=null,this._syncLayout(e)}))}_syncLayout(e=!1){if(!this._viewportEl||!this._sourceEl||!this._cloneRootEl)return;const r=_(this.getAttribute("direction"));this.hasAttribute("direction")||this.setAttribute("direction",r);const t=this._measureCssLength(this.style.getPropertyValue("--ui-marquee-gap")||l),a=x(this.getAttribute("speed"),b),n=this._measureSourceSize(r),s=this._measureViewportSize(r);if(n<=0||s<=0){this._cloneRootEl.innerHTML="",this._cloneCount=0,this._setRuntimeState("idle"),this.style.setProperty("--ui-marquee-distance","0px"),this.style.setProperty("--ui-marquee-duration","0s");return}const o=Math.max(n+t,n),c=Math.max(1,Math.ceil((s+t)/Math.max(o,1))+1);(e||c!==this._cloneCount||!this._cloneRootEl.childElementCount)&&this._syncClones(c);const h=Math.max(o/a,.1);this.style.setProperty("--ui-marquee-distance",`${o}px`),this.style.setProperty("--ui-marquee-duration",`${h}s`),this._setRuntimeState(this._isMotionPaused()?"paused":"running")}_syncClones(e){if(!this._cloneRootEl)return;this._cloneRootEl.innerHTML="",this._cloneCount=e;const r=this._slotEl?.assignedNodes({flatten:!0}).filter(z)||[];for(let t=0;t<e;t+=1){const a=document.createElement("div");a.className="lane lane--clone",a.setAttribute("part","lane lane-clone"),a.setAttribute("aria-hidden","true");const n=document.createElement("div");n.className="clone-content",n.setAttribute("part","clone-content"),r.forEach(s=>{const o=E(s);o&&n.appendChild(o)}),a.appendChild(n),this._cloneRootEl.appendChild(a)}}_syncHostStyles(){const e=u(this.getAttribute("gap")),r=u(this.getAttribute("fade-size")),t=u(this.getAttribute("padding")),a=u(this.getAttribute("radius"));e?this.style.setProperty("--ui-marquee-gap",e):this.style.removeProperty("--ui-marquee-gap"),r?this.style.setProperty("--ui-marquee-fade-size",r):this.style.removeProperty("--ui-marquee-fade-size"),t?this.style.setProperty("--ui-marquee-padding",t):this.style.removeProperty("--ui-marquee-padding"),a&&!y(this.getAttribute("radius"))?this.style.setProperty("--ui-marquee-radius",a):this.style.removeProperty("--ui-marquee-radius"),this._syncPlaybackState()}_syncPlaybackState(){this._trackEl&&this._setRuntimeState(this._isMotionPaused()?"paused":"running")}_setRuntimeState(e){this.getAttribute("data-state")!==e&&this.setAttribute("data-state",e)}_isMotionPaused(){return this.hasAttribute("paused")?!0:!!this._mediaQuery?.matches}_measureViewportSize(e){return this._viewportEl?e==="up"||e==="down"?this._viewportEl.clientHeight||this._viewportEl.getBoundingClientRect().height||0:this._viewportEl.clientWidth||this._viewportEl.getBoundingClientRect().width||0:0}_measureSourceSize(e){if(!this._sourceEl)return 0;const r=this._sourceEl.getBoundingClientRect();return e==="up"||e==="down"?Math.max(this._sourceEl.scrollHeight,this._sourceEl.offsetHeight,r.height||0):Math.max(this._sourceEl.scrollWidth,this._sourceEl.offsetWidth,r.width||0)}_measureCssLength(e){const r=e.trim();if(!r)return 0;if(/^-?\d+(\.\d+)?px$/.test(r)||/^-?\d+(\.\d+)?$/.test(r))return parseFloat(r);const t=document.createElement("div");t.style.position="absolute",t.style.visibility="hidden",t.style.pointerEvents="none",t.style.inlineSize=r,this.appendChild(t);const a=parseFloat(getComputedStyle(t).inlineSize||getComputedStyle(t).width||"0");return t.remove(),Number.isFinite(a)?a:0}_requestFrame(e){return typeof requestAnimationFrame=="function"?requestAnimationFrame(e):window.setTimeout(()=>e(performance.now()),16)}_cancelFrame(e){if(typeof cancelAnimationFrame=="function"){cancelAnimationFrame(e);return}window.clearTimeout(e)}}typeof customElements<"u"&&!customElements.get("ui-marquee")&&customElements.define("ui-marquee",d);exports.UIMarquee=d;