@editora/ui-core 0.1.18 → 0.1.20

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 (307) 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 -669
  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 +4 -7
  48. package/dist/color-picker.cjs.js +9 -9
  49. package/dist/color-picker.esm.js +189 -252
  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-button.d.ts +1 -0
  57. package/dist/components/ui-button.d.ts.map +1 -1
  58. package/dist/components/ui-date-picker.d.ts.map +1 -1
  59. package/dist/components/ui-date-range-picker.d.ts.map +1 -1
  60. package/dist/components/ui-date-range-time-picker.d.ts +1 -0
  61. package/dist/components/ui-date-range-time-picker.d.ts.map +1 -1
  62. package/dist/components/ui-date-time-picker.d.ts +1 -0
  63. package/dist/components/ui-date-time-picker.d.ts.map +1 -1
  64. package/dist/components/ui-orbiter.d.ts.map +1 -1
  65. package/dist/components/ui-skeleton.d.ts.map +1 -1
  66. package/dist/components/ui-split-button.d.ts +1 -0
  67. package/dist/components/ui-split-button.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 +30 -9
  80. package/dist/date-picker.esm.js +90 -97
  81. package/dist/date-range-picker.cjs.js +22 -3
  82. package/dist/date-range-picker.esm.js +103 -108
  83. package/dist/date-range-time-picker.cjs.js +28 -12
  84. package/dist/date-range-time-picker.esm.js +137 -150
  85. package/dist/date-time-picker.cjs.js +25 -9
  86. package/dist/date-time-picker.esm.js +139 -155
  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 +4 -4
  162. package/dist/multi-select.esm.js +120 -140
  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 +2 -2
  196. package/dist/portal.esm.js +10 -19
  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 +11 -18
  201. package/dist/presence.cjs.js +1 -1
  202. package/dist/presence.esm.js +7 -13
  203. package/dist/progress.cjs.js +1 -1
  204. package/dist/progress.esm.js +5 -9
  205. package/dist/quick-actions.cjs.js +6 -6
  206. package/dist/quick-actions.esm.js +52 -62
  207. package/dist/radio-group.cjs.js +13 -13
  208. package/dist/radio-group.esm.js +39 -51
  209. package/dist/radio.cjs.js +1 -1
  210. package/dist/radio.esm.js +5 -9
  211. package/dist/rating.cjs.js +1 -1
  212. package/dist/rating.esm.js +12 -23
  213. package/dist/{roving-focus-group-4350c9a7.mjs → roving-focus-group-Dbm1Jko_.mjs} +3 -6
  214. package/dist/roving-focus-group.cjs.js +1 -1
  215. package/dist/roving-focus-group.esm.js +3 -5
  216. package/dist/runtime-CTaOSmBj.js +1 -0
  217. package/dist/{runtime-161f68a2.mjs → runtime-D1gFh1fS.mjs} +338 -366
  218. package/dist/runtime.cjs.js +1 -1
  219. package/dist/runtime.esm.js +6 -6
  220. package/dist/scroll-area.cjs.js +3 -3
  221. package/dist/scroll-area.esm.js +38 -46
  222. package/dist/{scroll-lock-31da444f.mjs → scroll-lock-LfqXXqsu.mjs} +5 -9
  223. package/dist/section.cjs.js +1 -1
  224. package/dist/section.esm.js +1 -1
  225. package/dist/select.cjs.js +7 -7
  226. package/dist/select.esm.js +67 -97
  227. package/dist/selection-popup.cjs.js +1 -1
  228. package/dist/selection-popup.esm.js +8 -15
  229. package/dist/separator.cjs.js +1 -1
  230. package/dist/separator.esm.js +1 -1
  231. package/dist/sidebar.cjs.js +18 -18
  232. package/dist/sidebar.esm.js +117 -139
  233. package/dist/skeleton.cjs.js +11 -11
  234. package/dist/skeleton.esm.js +27 -24
  235. package/dist/slider.cjs.js +1 -1
  236. package/dist/slider.esm.js +6 -11
  237. package/dist/slot.cjs.js +4 -4
  238. package/dist/slot.esm.js +16 -19
  239. package/dist/sortable.cjs.js +45 -45
  240. package/dist/sortable.esm.js +421 -524
  241. package/dist/spinning-text.cjs.js +12 -12
  242. package/dist/spinning-text.esm.js +80 -92
  243. package/dist/split-button.cjs.js +4 -4
  244. package/dist/split-button.esm.js +77 -62
  245. package/dist/splitter.cjs.js +1 -1
  246. package/dist/splitter.esm.js +1 -1
  247. package/dist/stepper.cjs.js +8 -8
  248. package/dist/stepper.esm.js +32 -52
  249. package/dist/switch.cjs.js +7 -7
  250. package/dist/switch.esm.js +23 -31
  251. package/dist/table.cjs.js +2 -2
  252. package/dist/table.esm.js +46 -56
  253. package/dist/tabs.cjs.js +3 -3
  254. package/dist/tabs.esm.js +35 -55
  255. package/dist/tags-input.cjs.js +4 -4
  256. package/dist/tags-input.esm.js +45 -62
  257. package/dist/textarea.cjs.js +6 -6
  258. package/dist/textarea.esm.js +32 -41
  259. package/dist/time-field.cjs.js +4 -4
  260. package/dist/time-field.esm.js +70 -84
  261. package/dist/time-picker.cjs.js +29 -21
  262. package/dist/time-picker.esm.js +96 -110
  263. package/dist/timeline.cjs.js +1 -1
  264. package/dist/timeline.esm.js +3 -5
  265. package/dist/toast.cjs.js +2 -2
  266. package/dist/toast.esm.js +33 -47
  267. package/dist/toggle-group.cjs.js +6 -6
  268. package/dist/toggle-group.esm.js +85 -105
  269. package/dist/toggle.cjs.js +1 -1
  270. package/dist/toggle.esm.js +3 -5
  271. package/dist/toolbar.cjs.js +1 -1
  272. package/dist/toolbar.esm.js +13 -24
  273. package/dist/tooltip.cjs.js +2 -2
  274. package/dist/tooltip.esm.js +31 -42
  275. package/dist/transfer-list.cjs.js +19 -19
  276. package/dist/transfer-list.esm.js +98 -111
  277. package/dist/{tree-dcd74a4a.mjs → tree-B3kE8ESs.mjs} +55 -62
  278. package/dist/tree-Dx_kv_ih.js +39 -0
  279. package/dist/tree-item.cjs.js +2 -2
  280. package/dist/tree-item.esm.js +2 -3
  281. package/dist/tree.cjs.js +1 -1
  282. package/dist/tree.esm.js +2 -5
  283. package/dist/ui-button-Q0GNNWKC.mjs +665 -0
  284. package/dist/ui-button-rXQOS9QJ.js +521 -0
  285. package/dist/{icon-9e9da03b.js → ui-icon-BzVNC_lr.js} +4 -4
  286. package/dist/{icon-e2a85cc1.mjs → ui-icon-YI6lyuqU.mjs} +58 -65
  287. package/dist/visually-hidden.cjs.js +1 -1
  288. package/dist/visually-hidden.esm.js +1 -1
  289. package/dist/wizard.cjs.js +14 -14
  290. package/dist/wizard.esm.js +85 -105
  291. package/package.json +3 -3
  292. package/dist/date-time-utils-66480de4.js +0 -1
  293. package/dist/date-time-utils-a2c7af25.mjs +0 -307
  294. package/dist/dismissable-layer-193e3bed.js +0 -1
  295. package/dist/focus-scope-2b12b4e7.js +0 -1
  296. package/dist/listbox-308789a0.mjs +0 -210
  297. package/dist/listbox-ef2f708e.js +0 -46
  298. package/dist/panel-group-40254cdd.js +0 -36
  299. package/dist/portal-c69756c0.js +0 -1
  300. package/dist/positioner-33529bb8.js +0 -1
  301. package/dist/runtime-3f13807b.js +0 -1
  302. package/dist/tree-0a7a8d05.js +0 -39
  303. /package/dist/{collection-a2969ad2.js → collection-qv8A8rq4.js} +0 -0
  304. /package/dist/{menu-item-styles-27fdbac4.mjs → menu-item-styles-CZiPwPwl.mjs} +0 -0
  305. /package/dist/{menu-item-styles-83ad1e22.js → menu-item-styles-CbNUEwP2.js} +0 -0
  306. /package/dist/{roving-focus-group-5c059bf9.js → roving-focus-group-BdJ_4Njm.js} +0 -0
  307. /package/dist/{scroll-lock-d7b0df21.js → scroll-lock-BX6e3Ced.js} +0 -0
@@ -1,7 +1,7 @@
1
- import { E as h } from "./ElementBase-909688f3.mjs";
2
- const c = "24px", p = "48px", f = 60, b = /* @__PURE__ */ new Set(["none", "sm", "md", "lg", "full"]), g = /* @__PURE__ */ new Set(["direction", "speed", "gap", "size", "padding"]), v = `
1
+ import { E as h } from "./ElementBase-YlTLMsGk.mjs";
2
+ const l = "24px", p = "48px", f = 60, b = /* @__PURE__ */ new Set(["none", "sm", "md", "lg", "full"]), g = /* @__PURE__ */ new Set(["direction", "speed", "gap", "size", "padding"]), v = `
3
3
  :host {
4
- --ui-marquee-gap: ${c};
4
+ --ui-marquee-gap: ${l};
5
5
  --ui-marquee-fade-size: ${p};
6
6
  --ui-marquee-duration: 12s;
7
7
  --ui-marquee-distance: 0px;
@@ -88,7 +88,7 @@ const c = "24px", p = "48px", f = 60, b = /* @__PURE__ */ new Set(["none", "sm",
88
88
 
89
89
  :host([size="md"]),
90
90
  :host([size="2"]) {
91
- --ui-marquee-gap: ${c};
91
+ --ui-marquee-gap: ${l};
92
92
  --ui-marquee-padding-inline: 18px;
93
93
  --ui-marquee-padding-block: 12px;
94
94
  --ui-marquee-min-block-size: 56px;
@@ -502,14 +502,12 @@ function q(i) {
502
502
  return i === "right" || i === "up" || i === "down" ? i : "left";
503
503
  }
504
504
  function _(i, e) {
505
- if (i == null || i === "")
506
- return e;
505
+ if (i == null || i === "") return e;
507
506
  const r = Number(i);
508
507
  return Number.isFinite(r) && r > 0 ? r : e;
509
508
  }
510
- function l(i) {
511
- if (i == null || i.trim() === "")
512
- return null;
509
+ function u(i) {
510
+ if (i == null || i.trim() === "") return null;
513
511
  const e = i.trim();
514
512
  return /^-?\d+(\.\d+)?$/.test(e) ? `${e}px` : e;
515
513
  }
@@ -517,8 +515,7 @@ function x(i) {
517
515
  return !!(i && b.has(i.trim().toLowerCase()));
518
516
  }
519
517
  function y(i) {
520
- var e;
521
- return i.nodeType === Node.TEXT_NODE ? !!((e = i.textContent) != null && e.trim()) : i.nodeType === Node.ELEMENT_NODE;
518
+ return i.nodeType === Node.TEXT_NODE ? !!i.textContent?.trim() : i.nodeType === Node.ELEMENT_NODE;
522
519
  }
523
520
  function m(i) {
524
521
  if (i.tabIndex = -1, "inert" in i)
@@ -534,8 +531,7 @@ function m(i) {
534
531
  i.setAttribute("aria-hidden", "true"), i.removeAttribute("autofocus");
535
532
  }
536
533
  function z(i) {
537
- if (i.nodeType !== Node.ELEMENT_NODE)
538
- return;
534
+ if (i.nodeType !== Node.ELEMENT_NODE) return;
539
535
  const e = i;
540
536
  if (e.removeAttribute("id"), e.removeAttribute("slot"), e.setAttribute("data-marquee-clone", ""), m(e), e instanceof HTMLAnchorElement && e.removeAttribute("href"), e instanceof HTMLMediaElement) {
541
537
  e.muted = !0, e.controls = !1, e.autoplay = !1, e.loop = !0;
@@ -557,8 +553,7 @@ function z(i) {
557
553
  function k(i) {
558
554
  if (i.nodeType === Node.TEXT_NODE)
559
555
  return document.createTextNode(i.textContent || "");
560
- if (i.nodeType !== Node.ELEMENT_NODE)
561
- return null;
556
+ if (i.nodeType !== Node.ELEMENT_NODE) return null;
562
557
  const e = i.cloneNode(!0);
563
558
  return z(e), e;
564
559
  }
@@ -660,13 +655,8 @@ class E extends h {
660
655
  }
661
656
  }
662
657
  _ensureResizeObserver() {
663
- var r;
664
- if (!this.isConnected || typeof ResizeObserver > "u")
665
- return;
666
- 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) => {
667
- var a;
668
- return (a = this._resizeObserver) == null ? void 0 : a.observe(t);
669
- });
658
+ if (!this.isConnected || typeof ResizeObserver > "u") return;
659
+ 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));
670
660
  }
671
661
  _onSlotChange() {
672
662
  this._ensureResizeObserver(), this._scheduleMeasurement(!0);
@@ -686,38 +676,35 @@ class E extends h {
686
676
  }));
687
677
  }
688
678
  _syncLayout(e = !1) {
689
- if (!this._viewportEl || !this._sourceEl || !this._cloneRootEl)
690
- return;
679
+ if (!this._viewportEl || !this._sourceEl || !this._cloneRootEl) return;
691
680
  const r = q(this.getAttribute("direction"));
692
681
  this.hasAttribute("direction") || this.setAttribute("direction", r);
693
- const t = this._measureCssLength(this.style.getPropertyValue("--ui-marquee-gap") || c), a = _(this.getAttribute("speed"), f), n = this._measureSourceSize(r), o = this._measureViewportSize(r);
694
- if (n <= 0 || o <= 0) {
682
+ const t = this._measureCssLength(this.style.getPropertyValue("--ui-marquee-gap") || l), a = _(this.getAttribute("speed"), f), n = this._measureSourceSize(r), s = this._measureViewportSize(r);
683
+ if (n <= 0 || s <= 0) {
695
684
  this._cloneRootEl.innerHTML = "", this._cloneCount = 0, this._setRuntimeState("idle"), this.style.setProperty("--ui-marquee-distance", "0px"), this.style.setProperty("--ui-marquee-duration", "0s");
696
685
  return;
697
686
  }
698
- const s = Math.max(n + t, n), u = Math.max(1, Math.ceil((o + t) / Math.max(s, 1)) + 1);
699
- (e || u !== this._cloneCount || !this._cloneRootEl.childElementCount) && this._syncClones(u);
700
- const d = Math.max(s / a, 0.1);
701
- this.style.setProperty("--ui-marquee-distance", `${s}px`), this.style.setProperty("--ui-marquee-duration", `${d}s`), this._setRuntimeState(this._isMotionPaused() ? "paused" : "running");
687
+ const o = Math.max(n + t, n), c = Math.max(1, Math.ceil((s + t) / Math.max(o, 1)) + 1);
688
+ (e || c !== this._cloneCount || !this._cloneRootEl.childElementCount) && this._syncClones(c);
689
+ const d = Math.max(o / a, 0.1);
690
+ this.style.setProperty("--ui-marquee-distance", `${o}px`), this.style.setProperty("--ui-marquee-duration", `${d}s`), this._setRuntimeState(this._isMotionPaused() ? "paused" : "running");
702
691
  }
703
692
  _syncClones(e) {
704
- var t;
705
- if (!this._cloneRootEl)
706
- return;
693
+ if (!this._cloneRootEl) return;
707
694
  this._cloneRootEl.innerHTML = "", this._cloneCount = e;
708
- const r = ((t = this._slotEl) == null ? void 0 : t.assignedNodes({ flatten: !0 }).filter(y)) || [];
709
- for (let a = 0; a < e; a += 1) {
695
+ const r = this._slotEl?.assignedNodes({ flatten: !0 }).filter(y) || [];
696
+ for (let t = 0; t < e; t += 1) {
697
+ const a = document.createElement("div");
698
+ a.className = "lane lane--clone", a.setAttribute("part", "lane lane-clone"), a.setAttribute("aria-hidden", "true");
710
699
  const n = document.createElement("div");
711
- n.className = "lane lane--clone", n.setAttribute("part", "lane lane-clone"), n.setAttribute("aria-hidden", "true");
712
- const o = document.createElement("div");
713
- o.className = "clone-content", o.setAttribute("part", "clone-content"), r.forEach((s) => {
714
- const u = k(s);
715
- u && o.appendChild(u);
716
- }), n.appendChild(o), this._cloneRootEl.appendChild(n);
700
+ n.className = "clone-content", n.setAttribute("part", "clone-content"), r.forEach((s) => {
701
+ const o = k(s);
702
+ o && n.appendChild(o);
703
+ }), a.appendChild(n), this._cloneRootEl.appendChild(a);
717
704
  }
718
705
  }
719
706
  _syncHostStyles() {
720
- const e = l(this.getAttribute("gap")), r = l(this.getAttribute("fade-size")), t = l(this.getAttribute("padding")), a = l(this.getAttribute("radius"));
707
+ const e = u(this.getAttribute("gap")), r = u(this.getAttribute("fade-size")), t = u(this.getAttribute("padding")), a = u(this.getAttribute("radius"));
721
708
  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 && !x(this.getAttribute("radius")) ? this.style.setProperty("--ui-marquee-radius", a) : this.style.removeProperty("--ui-marquee-radius"), this._syncPlaybackState();
722
709
  }
723
710
  _syncPlaybackState() {
@@ -727,24 +714,20 @@ class E extends h {
727
714
  this.getAttribute("data-state") !== e && this.setAttribute("data-state", e);
728
715
  }
729
716
  _isMotionPaused() {
730
- var e;
731
- return this.hasAttribute("paused") ? !0 : !!((e = this._mediaQuery) != null && e.matches);
717
+ return this.hasAttribute("paused") ? !0 : !!this._mediaQuery?.matches;
732
718
  }
733
719
  _measureViewportSize(e) {
734
720
  return this._viewportEl ? e === "up" || e === "down" ? this._viewportEl.clientHeight || this._viewportEl.getBoundingClientRect().height || 0 : this._viewportEl.clientWidth || this._viewportEl.getBoundingClientRect().width || 0 : 0;
735
721
  }
736
722
  _measureSourceSize(e) {
737
- if (!this._sourceEl)
738
- return 0;
723
+ if (!this._sourceEl) return 0;
739
724
  const r = this._sourceEl.getBoundingClientRect();
740
725
  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);
741
726
  }
742
727
  _measureCssLength(e) {
743
728
  const r = e.trim();
744
- if (!r)
745
- return 0;
746
- if (/^-?\d+(\.\d+)?px$/.test(r) || /^-?\d+(\.\d+)?$/.test(r))
747
- return parseFloat(r);
729
+ if (!r) return 0;
730
+ if (/^-?\d+(\.\d+)?px$/.test(r) || /^-?\d+(\.\d+)?$/.test(r)) return parseFloat(r);
748
731
  const t = document.createElement("div");
749
732
  t.style.position = "absolute", t.style.visibility = "hidden", t.style.pointerEvents = "none", t.style.inlineSize = r, this.appendChild(t);
750
733
  const a = parseFloat(getComputedStyle(t).inlineSize || getComputedStyle(t).width || "0");
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("./ElementBase-1b301e7f.js"),b={sm:"var(--ui-breakpoint-sm, 640px)",md:"var(--ui-breakpoint-md, 768px)",lg:"var(--ui-breakpoint-lg, 1024px)",xl:"var(--ui-breakpoint-xl, 1280px)"},p=["display","columns","columnwidth","gap","columngap","itemgap","fill"],v={xs:"var(--ui-space-xs, 4px)",sm:"var(--ui-space-sm, 8px)",md:"var(--ui-space-md, 12px)",lg:"var(--ui-space-lg, 20px)",xl:"var(--ui-space-xl, 28px)"},x=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("./ElementBase-EV6mVBUV.js"),b={sm:"var(--ui-breakpoint-sm, 640px)",md:"var(--ui-breakpoint-md, 768px)",lg:"var(--ui-breakpoint-lg, 1024px)",xl:"var(--ui-breakpoint-xl, 1280px)"},p=["display","columns","columnwidth","gap","columngap","itemgap","fill"],v={xs:"var(--ui-space-xs, 4px)",sm:"var(--ui-space-sm, 8px)",md:"var(--ui-space-md, 12px)",lg:"var(--ui-space-lg, 20px)",xl:"var(--ui-space-xl, 28px)"},x=`
2
2
  :host {
3
3
  --ui-masonry-display: block;
4
4
  --ui-masonry-columns: auto;
@@ -1,4 +1,4 @@
1
- import { E as f } from "./ElementBase-909688f3.mjs";
1
+ import { E as f } from "./ElementBase-YlTLMsGk.mjs";
2
2
  const g = {
3
3
  sm: "var(--ui-breakpoint-sm, 640px)",
4
4
  md: "var(--ui-breakpoint-md, 768px)",
@@ -74,11 +74,9 @@ const g = {
74
74
  }
75
75
  `;
76
76
  function d(t) {
77
- if (!t)
78
- return null;
77
+ if (!t) return null;
79
78
  const s = t.trim();
80
- if (!s.startsWith("{"))
81
- return null;
79
+ if (!s.startsWith("{")) return null;
82
80
  try {
83
81
  const e = JSON.parse(s);
84
82
  return !e || typeof e != "object" ? null : e;
@@ -130,8 +128,7 @@ class x extends f {
130
128
  _applyInlineStyles() {
131
129
  this._appliedInlineProps.forEach((s) => this.style.removeProperty(s)), this._appliedInlineProps.clear(), p.forEach((s) => {
132
130
  const e = this.getAttribute(s);
133
- if (!e || d(e))
134
- return;
131
+ if (!e || d(e)) return;
135
132
  const l = y(s, e);
136
133
  Object.entries(l).forEach(([o, c]) => {
137
134
  this.style.setProperty(o, c), this._appliedInlineProps.add(o);
@@ -147,8 +144,7 @@ class x extends f {
147
144
  };
148
145
  p.forEach((n) => {
149
146
  const a = this.getAttribute(n), i = d(a);
150
- if (!i)
151
- return;
147
+ if (!i) return;
152
148
  const r = (m, h) => {
153
149
  Object.assign(m, y(n, h));
154
150
  };
package/dist/menu.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const v=require("./ElementBase-1b301e7f.js"),y=require("./portal-c69756c0.js"),x=require("./dismissable-layer-193e3bed.js"),A=require("./positioner-33529bb8.js"),E=require("./menu-item-styles-83ad1e22.js");function g(n){return n==="top"||n==="left"||n==="right"?n:"bottom"}function k(n){return n==="sm"||n==="1"||n==="compact"?"sm":n==="lg"||n==="3"||n==="comfortable"?"lg":"md"}function S(n){return!n||n==="default"?null:n==="none"?"0px":n==="sm"?"8px":n==="md"?"12px":n==="lg"?"16px":n==="full"?"999px":n==="square"?"6px":n==="soft"?"14px":/^\d+(\.\d+)?$/.test(n)?`${n}px`:/^\d+(\.\d+)?(px|rem|em|%)$/.test(n)?n:null}function l(n,e){return n.getAttribute(e)||""}function h(n,e){if(n==null)return e;const i=String(n).toLowerCase();return i!=="false"&&i!=="0"}function u(){return['[role="menuitem"]','[role="menuitemcheckbox"]','[role="menuitemradio"]',".item","[data-menu-item]"].join(", ")}function m(n){return n.hasAttribute("disabled")||n.getAttribute("aria-disabled")==="true"||!!n.disabled}function p(n){const e=typeof n.composedPath=="function"?n.composedPath():[];for(const t of e)if(t instanceof HTMLElement&&t.matches(u()))return t;const i=n.target;return i instanceof HTMLElement?i.closest(u()):null}const w=new Set(["variant","density","shape","elevation","tone","size","radius"]),I=["--ui-menu-bg","--ui-menu-color","--ui-menu-border-color","--ui-menu-border","--ui-menu-shadow","--ui-menu-radius","--ui-menu-padding","--ui-menu-min-width","--ui-menu-ring","--ui-menu-backdrop","--ui-menu-z","--ui-menu-item-radius","--ui-menu-item-gap","--ui-menu-item-min-height","--ui-menu-item-pad-y","--ui-menu-item-pad-x","--ui-menu-item-font-size","--ui-menu-item-line-height","--ui-menu-separator-margin","--ui-menu-item-hover-bg","--ui-menu-item-active-color"],C=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const v=require("./ElementBase-EV6mVBUV.js"),y=require("./portal-DgpQ3Jo1.js"),x=require("./dismissable-layer-DNfrKA20.js"),A=require("./positioner-D_fqyx_j.js"),E=require("./menu-item-styles-CbNUEwP2.js");function g(r){return r==="top"||r==="left"||r==="right"?r:"bottom"}function k(r){return r==="sm"||r==="1"||r==="compact"?"sm":r==="lg"||r==="3"||r==="comfortable"?"lg":"md"}function S(r){return!r||r==="default"?null:r==="none"?"0px":r==="sm"?"8px":r==="md"?"12px":r==="lg"?"16px":r==="full"?"999px":r==="square"?"6px":r==="soft"?"14px":/^\d+(\.\d+)?$/.test(r)?`${r}px`:/^\d+(\.\d+)?(px|rem|em|%)$/.test(r)?r:null}function l(r,e){return r.getAttribute(e)||""}function h(r,e){if(r==null)return e;const t=String(r).toLowerCase();return t!=="false"&&t!=="0"}function u(){return['[role="menuitem"]','[role="menuitemcheckbox"]','[role="menuitemradio"]',".item","[data-menu-item]"].join(", ")}function m(r){return r.hasAttribute("disabled")||r.getAttribute("aria-disabled")==="true"||!!r.disabled}function p(r){const e=typeof r.composedPath=="function"?r.composedPath():[];for(const i of e)if(i instanceof HTMLElement&&i.matches(u()))return i;const t=r.target;return t instanceof HTMLElement?t.closest(u()):null}const w=new Set(["variant","density","shape","elevation","tone","size","radius"]),I=["--ui-menu-bg","--ui-menu-color","--ui-menu-border-color","--ui-menu-border","--ui-menu-shadow","--ui-menu-radius","--ui-menu-padding","--ui-menu-min-width","--ui-menu-ring","--ui-menu-backdrop","--ui-menu-z","--ui-menu-item-radius","--ui-menu-item-gap","--ui-menu-item-min-height","--ui-menu-item-pad-y","--ui-menu-item-pad-x","--ui-menu-item-font-size","--ui-menu-item-line-height","--ui-menu-separator-margin","--ui-menu-item-hover-bg","--ui-menu-item-active-color"],C=`
2
2
  :host {
3
3
  --ui-menu-bg: var(--base-menu-bg, var(--color-panel-solid, var(--ui-color-surface, var(--ui-surface, #ffffff))));
4
4
  --ui-menu-color: var(--ui-color-text, var(--ui-text, #0f172a));
@@ -262,7 +262,7 @@
262
262
  box-shadow: none;
263
263
  }
264
264
  }
265
- `;class _ extends v.ElementBase{constructor(){super(),this._isOpen=!1,this._portalEl=null,this._positioner=null,this._dismissableLayer=null,this._restoreFocusEl=null,this._typeaheadBuffer="",this._typeaheadTimer=null,this._globalListenersBound=!1,this._menuClickHandler=null,this._menuId=`ui-menu-${Math.random().toString(36).slice(2,10)}`,this._onHostClick=this._onHostClick.bind(this),this._onDocumentKeyDown=this._onDocumentKeyDown.bind(this),this._onDocumentScroll=this._onDocumentScroll.bind(this),this._onSlotChange=this._onSlotChange.bind(this)}static get observedAttributes(){return["open","disabled","placement","variant","size","density","radius","shape","elevation","tone","close-on-select","close-on-scroll","typeahead"]}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._onHostClick),this.root.addEventListener("slotchange",this._onSlotChange),this._syncOpenState(),this._syncTriggerA11y()}disconnectedCallback(){this.removeEventListener("click",this._onHostClick),this.root.removeEventListener("slotchange",this._onSlotChange),this._unbindGlobalListeners(),this._teardownPortal(),super.disconnectedCallback()}attributeChangedCallback(e,i,t){if(i!==t){if(e==="open"){this._syncOpenState();return}if(!(e==="close-on-select"||e==="close-on-scroll"||e==="typeahead")){if(e==="disabled"){this.hasAttribute("disabled")&&this.close(),this._syncTriggerA11y();return}if(e==="placement"&&this._isOpen){this._rebuildPositioner();return}w.has(e)&&this._isOpen&&this._syncPortalVisualState()}}}open(){this.hasAttribute("disabled")||this.setAttribute("open","")}close(){this.removeAttribute("open")}toggle(){this.hasAttribute("open")?this.close():this.open()}get closeOnSelect(){return h(this.getAttribute("close-on-select"),!0)}set closeOnSelect(e){this.setAttribute("close-on-select",e?"true":"false")}get closeOnScroll(){return h(this.getAttribute("close-on-scroll"),!0)}set closeOnScroll(e){this.setAttribute("close-on-scroll",e?"true":"false")}get typeahead(){return h(this.getAttribute("typeahead"),!0)}set typeahead(e){this.setAttribute("typeahead",e?"true":"false")}_getTrigger(){return this.querySelector('[slot="trigger"]')}_getContentSource(){return this.querySelector('[slot="content"]')}_getItemSources(){return Array.from(this.querySelectorAll('[slot="item"]'))}_onSlotChange(){this._isOpen&&this._rebuildPortalContent()}_syncTriggerA11y(){const e=this._getTrigger();if(e){if(e.setAttribute("aria-haspopup","menu"),e.setAttribute("aria-expanded",this._isOpen?"true":"false"),e.setAttribute("aria-controls",this._menuId),this.hasAttribute("disabled")){e.setAttribute("aria-disabled","true"),e.setAttribute("tabindex","-1");return}e.getAttribute("aria-disabled")==="true"&&e.removeAttribute("aria-disabled"),e.getAttribute("tabindex")==="-1"&&e.removeAttribute("tabindex")}}_syncOpenState(){var t;const e=this.hasAttribute("open")&&!this.hasAttribute("disabled");if(e===this._isOpen){this._syncTriggerA11y(),e&&!this._portalEl?this._mountPortal():e&&((t=this._positioner)==null||t.update());return}if(this._isOpen=e,this._syncTriggerA11y(),e){this._bindGlobalListeners(),this._restoreFocusEl=document.activeElement,this._mountPortal(),this.dispatchEvent(new CustomEvent("open",{bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{open:!0}})),requestAnimationFrame(()=>this._focusFirstItem());return}this._unbindGlobalListeners(),this._teardownPortal(),this.dispatchEvent(new CustomEvent("close",{bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{open:!1}}));const i=this._getTrigger();if(i)try{i.focus({preventScroll:!0})}catch{i.focus()}this._restoreFocusEl=null}_bindGlobalListeners(){this._globalListenersBound||(document.addEventListener("keydown",this._onDocumentKeyDown),document.addEventListener("scroll",this._onDocumentScroll,{passive:!0,capture:!0}),this._globalListenersBound=!0)}_unbindGlobalListeners(){this._globalListenersBound&&(document.removeEventListener("keydown",this._onDocumentKeyDown),document.removeEventListener("scroll",this._onDocumentScroll,!0),this._globalListenersBound=!1)}_clearActiveState(){this._portalEl&&this._portalEl.querySelectorAll(u()).forEach(e=>e.removeAttribute("data-active"))}_queryItems(){return this._portalEl?Array.from(this._portalEl.querySelectorAll(u())).filter(e=>!m(e)):[]}_focusItem(e){if(e){this._clearActiveState(),e.setAttribute("data-active","true");try{e.focus({preventScroll:!0})}catch{e.focus()}typeof e.scrollIntoView=="function"&&e.scrollIntoView({block:"nearest"})}}_focusFirstItem(){this._focusItem(this._queryItems()[0]||null)}_focusLastItem(){const e=this._queryItems();this._focusItem(e[e.length-1]||null)}_moveFocus(e){const i=this._queryItems();if(!i.length)return;const t=document.activeElement,r=t?i.findIndex(o=>o===t||o.contains(t)):-1,a=r===-1?0:Math.max(0,Math.min(i.length-1,r+e));this._focusItem(i[a]||null)}_resetTypeahead(){this._typeaheadBuffer="",this._typeaheadTimer!=null&&(window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=null)}_isTypeaheadKey(e){return e.ctrlKey||e.metaKey||e.altKey?!1:e.key.length===1&&/\S/.test(e.key)}_handleTypeahead(e){if(!this.typeahead||!this._isTypeaheadKey(e))return!1;this._typeaheadBuffer=`${this._typeaheadBuffer}${e.key.toLowerCase()}`.slice(0,24),this._typeaheadTimer!=null&&window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=window.setTimeout(()=>this._resetTypeahead(),420);const i=document.activeElement,t=this._queryItems();if(!t.length)return!1;const r=i?t.findIndex(s=>s===i||s.contains(i)):-1,o=(r>=0?[...t.slice(r+1),...t.slice(0,r+1)]:t).find(s=>(s.textContent||"").trim().toLowerCase().startsWith(this._typeaheadBuffer));return o?(e.preventDefault(),this._focusItem(o),!0):!1}_applySelectionBehavior(e){const i=e.getAttribute("role");if(i==="menuitemcheckbox"){const r=e.getAttribute("aria-checked")==="true";e.setAttribute("aria-checked",r?"false":"true"),e.setAttribute("data-state",r?"unchecked":"checked");return}if(i!=="menuitemradio"||!this._portalEl)return;const t=e.getAttribute("data-group")||e.getAttribute("name")||"";this._portalEl.querySelectorAll('[role="menuitemradio"]').forEach(r=>{const a=r.getAttribute("data-group")||r.getAttribute("name")||"";t&&a!==t||(r.setAttribute("aria-checked",r===e?"true":"false"),r.setAttribute("data-state",r===e?"checked":"unchecked"))})}_handleItemSelect(e){var r;this._applySelectionBehavior(e);const i=e.getAttribute("data-index"),t=i!=null&&!Number.isNaN(Number(i))?Number(i):void 0;this.dispatchEvent(new CustomEvent("select",{bubbles:!0,detail:{index:t,value:e.getAttribute("data-value")||e.getAttribute("value")||void 0,label:e.getAttribute("aria-label")||((r=e.textContent)==null?void 0:r.trim())||void 0,checked:e.getAttribute("aria-checked")==="true",item:e}})),this.closeOnSelect?this.close():this._focusItem(e)}_buildLegacyItems(e){const i=this._getItemSources();return i.forEach((t,r)=>{const a=t.cloneNode(!0);a.removeAttribute("slot"),a.getAttribute("role")||a.setAttribute("role","menuitem"),a.classList.contains("item")||a.classList.add("item"),a.hasAttribute("tabindex")||a.setAttribute("tabindex","-1"),a.hasAttribute("data-index")||a.setAttribute("data-index",String(r)),e.appendChild(a)}),i.length}_hydrateMenuItems(e){const i=Array.from(e.querySelectorAll(u()));return i.forEach((t,r)=>{t.getAttribute("role")||t.setAttribute("role","menuitem"),t.hasAttribute("tabindex")||t.setAttribute("tabindex","-1"),t.classList.contains("item")||t.classList.add("item"),t.hasAttribute("data-index")||t.setAttribute("data-index",String(r))}),i.length}_applyPortalTokens(e){const i=window.getComputedStyle(this);I.forEach(t=>{const r=i.getPropertyValue(t).trim();r?e.style.setProperty(t,r):e.style.removeProperty(t)})}_applyPortalVariantData(e){const i=l(this,"variant"),t=k(this.getAttribute("size")||this.getAttribute("density")),r=l(this,"density"),a=this.getAttribute("radius"),o=l(this,"shape"),s=l(this,"elevation"),c=l(this,"tone"),f=i==="default"||i===""?"":i==="line"?"outline":i==="glass"?"soft":i;f?e.setAttribute("data-variant",f):e.removeAttribute("data-variant"),t!=="md"?e.setAttribute("data-size",t):e.removeAttribute("data-size"),r&&r!=="default"?e.setAttribute("data-density",r):e.removeAttribute("data-density"),s&&s!=="default"?e.setAttribute("data-elevation",s):e.removeAttribute("data-elevation");const b=c==="default"||c==="brand"||c===""?"":c;b?e.setAttribute("data-tone",b):e.removeAttribute("data-tone");const d=S(a||o||null);d?(e.style.setProperty("--ui-menu-radius",d),e.style.setProperty("--ui-menu-item-radius",d==="999px"?"999px":`calc(${d} - 2px)`)):(e.style.removeProperty("--ui-menu-radius"),e.style.removeProperty("--ui-menu-item-radius"))}_syncPortalVisualState(){this._portalEl&&(this._applyPortalTokens(this._portalEl),this._applyPortalVariantData(this._portalEl),this._portalEl.setAttribute("aria-hidden","false"),this._portalEl.setAttribute("aria-busy","false"),this._portalEl.style.display="block",this._portalEl.style.visibility="visible",this._portalEl.style.opacity="1",this._portalEl.style.transform="translateY(0px) scale(1)",this._portalEl.style.pointerEvents="auto")}_attachMenuEvents(e){this._menuClickHandler=i=>{const t=p(i);!t||m(t)||this._handleItemSelect(t)},e.addEventListener("click",this._menuClickHandler),e.addEventListener("mouseover",i=>{const t=p(i);!t||m(t)||this._focusItem(t)}),e.addEventListener("focusin",i=>{const t=p(i);!t||m(t)||this._focusItem(t)}),e.addEventListener("mouseleave",()=>this._clearActiveState())}_buildPortalElement(){const e=document.createElement("div");e.className="surface menu",e.id=this._menuId,e.setAttribute("part","menu"),e.setAttribute("role","menu"),e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","false"),e.setAttribute("aria-busy","false"),e.setAttribute("data-placement",g(this.getAttribute("placement")));const i=document.createElement("style");i.textContent=T,e.appendChild(i);const t=this._getContentSource();let r=0;if(t){const a=t.cloneNode(!0);a.removeAttribute("slot"),e.appendChild(a)}else r=this._buildLegacyItems(e);if(r=this._hydrateMenuItems(e)||r,r===0){const a=document.createElement("div");a.className="empty-state",a.textContent="No items",e.appendChild(a)}return this._applyPortalTokens(e),this._applyPortalVariantData(e),e.style.display="block",e.style.visibility="visible",e.style.opacity="1",e.style.transform="translateY(0px) scale(1)",e.style.pointerEvents="auto",this._attachMenuEvents(e),e}_rebuildPortalContent(){if(!this._portalEl)return;const e=this._portalEl.parentElement;if(!e)return;const i=this._portalEl,t=this._buildPortalElement();e.replaceChild(t,i),this._portalEl=t,this._rebuildPositioner()}_rebuildPositioner(){var i;const e=this._getTrigger();!this._portalEl||!e||((i=this._positioner)==null||i.destroy(),this._positioner=A.createPositioner({anchor:e,floating:this._portalEl,placement:g(this.getAttribute("placement")),offset:6,flip:!0,shift:!0,fitViewport:!0,observeScroll:!1}))}_mountPortal(){var i;const e=this._getTrigger();if(e){if(this._portalEl)this._syncPortalVisualState();else{this._portalEl=this._buildPortalElement();const t=y.createPortalContainer();if(!t){this._portalEl=null;return}t.appendChild(this._portalEl)}this._rebuildPositioner(),(i=this._dismissableLayer)==null||i.destroy(),this._dismissableLayer=x.createDismissableLayer({node:this._portalEl,trigger:e,closeOnEscape:!0,closeOnPointerOutside:!0,onDismiss:()=>this.close()})}}_teardownPortal(){var e,i,t;if((e=this._dismissableLayer)==null||e.destroy(),this._dismissableLayer=null,(i=this._positioner)==null||i.destroy(),this._positioner=null,(t=this._portalEl)!=null&&t.parentElement)try{this._portalEl.parentElement.removeChild(this._portalEl)}catch{}this._portalEl=null,this._menuClickHandler=null,this._resetTypeahead()}_isEventInsideTrigger(e){const i=this._getTrigger();return!!i&&e.composedPath().includes(i)}_isEventInsideMenu(e){return!!this._portalEl&&e.composedPath().includes(this._portalEl)}_isInternalScrollEvent(e){var a;const i=typeof e.composedPath=="function"?e.composedPath():[];if(this._portalEl&&i.includes(this._portalEl))return!0;const t=this._getTrigger();if(t&&i.includes(t))return!0;const r=e.target;return!!(r instanceof Node&&((a=this._portalEl)!=null&&a.contains(r)||t!=null&&t.contains(r)))}_onHostClick(e){this.hasAttribute("disabled")||this._isEventInsideTrigger(e)&&(e.preventDefault(),this.toggle())}_onDocumentScroll(e){!this._isOpen||!this.closeOnScroll||this._isInternalScrollEvent(e)||this.close()}_onDocumentKeyDown(e){var i;if(!this._isOpen){if(e.key!=="ArrowDown"&&e.key!=="ArrowUp"||!this._isEventInsideTrigger(e))return;e.preventDefault(),this.open(),requestAnimationFrame(()=>{e.key==="ArrowUp"?this._focusLastItem():this._focusFirstItem()});return}if(!(!this._isEventInsideTrigger(e)&&!this._isEventInsideMenu(e))&&!this._handleTypeahead(e)){if(e.key==="Escape"){e.preventDefault(),e.stopPropagation(),this.close();return}if(e.key==="ArrowDown"){e.preventDefault(),this._moveFocus(1);return}if(e.key==="ArrowUp"){e.preventDefault(),this._moveFocus(-1);return}if(e.key==="Home"){e.preventDefault(),this._focusFirstItem();return}if(e.key==="End"){e.preventDefault(),this._focusLastItem();return}if(e.key==="Tab"){this.close();return}if(e.key==="Enter"||e.key===" "){const t=document.activeElement;if(!t||!((i=this._portalEl)!=null&&i.contains(t)))return;const r=t.closest(u());if(!r||m(r))return;e.preventDefault(),this._handleItemSelect(r)}}}render(){var e;this.setContent(`
265
+ `;class _ extends v.ElementBase{constructor(){super(),this._isOpen=!1,this._portalEl=null,this._positioner=null,this._dismissableLayer=null,this._restoreFocusEl=null,this._typeaheadBuffer="",this._typeaheadTimer=null,this._globalListenersBound=!1,this._menuClickHandler=null,this._menuId=`ui-menu-${Math.random().toString(36).slice(2,10)}`,this._onHostClick=this._onHostClick.bind(this),this._onDocumentKeyDown=this._onDocumentKeyDown.bind(this),this._onDocumentScroll=this._onDocumentScroll.bind(this),this._onSlotChange=this._onSlotChange.bind(this)}static get observedAttributes(){return["open","disabled","placement","variant","size","density","radius","shape","elevation","tone","close-on-select","close-on-scroll","typeahead"]}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._onHostClick),this.root.addEventListener("slotchange",this._onSlotChange),this._syncOpenState(),this._syncTriggerA11y()}disconnectedCallback(){this.removeEventListener("click",this._onHostClick),this.root.removeEventListener("slotchange",this._onSlotChange),this._unbindGlobalListeners(),this._teardownPortal(),super.disconnectedCallback()}attributeChangedCallback(e,t,i){if(t!==i){if(e==="open"){this._syncOpenState();return}if(!(e==="close-on-select"||e==="close-on-scroll"||e==="typeahead")){if(e==="disabled"){this.hasAttribute("disabled")&&this.close(),this._syncTriggerA11y();return}if(e==="placement"&&this._isOpen){this._rebuildPositioner();return}w.has(e)&&this._isOpen&&this._syncPortalVisualState()}}}open(){this.hasAttribute("disabled")||this.setAttribute("open","")}close(){this.removeAttribute("open")}toggle(){this.hasAttribute("open")?this.close():this.open()}get closeOnSelect(){return h(this.getAttribute("close-on-select"),!0)}set closeOnSelect(e){this.setAttribute("close-on-select",e?"true":"false")}get closeOnScroll(){return h(this.getAttribute("close-on-scroll"),!0)}set closeOnScroll(e){this.setAttribute("close-on-scroll",e?"true":"false")}get typeahead(){return h(this.getAttribute("typeahead"),!0)}set typeahead(e){this.setAttribute("typeahead",e?"true":"false")}_getTrigger(){return this.querySelector('[slot="trigger"]')}_getContentSource(){return this.querySelector('[slot="content"]')}_getItemSources(){return Array.from(this.querySelectorAll('[slot="item"]'))}_onSlotChange(){this._isOpen&&this._rebuildPortalContent()}_syncTriggerA11y(){const e=this._getTrigger();if(e){if(e.setAttribute("aria-haspopup","menu"),e.setAttribute("aria-expanded",this._isOpen?"true":"false"),e.setAttribute("aria-controls",this._menuId),this.hasAttribute("disabled")){e.setAttribute("aria-disabled","true"),e.setAttribute("tabindex","-1");return}e.getAttribute("aria-disabled")==="true"&&e.removeAttribute("aria-disabled"),e.getAttribute("tabindex")==="-1"&&e.removeAttribute("tabindex")}}_syncOpenState(){const e=this.hasAttribute("open")&&!this.hasAttribute("disabled");if(e===this._isOpen){this._syncTriggerA11y(),e&&!this._portalEl?this._mountPortal():e&&this._positioner?.update();return}if(this._isOpen=e,this._syncTriggerA11y(),e){this._bindGlobalListeners(),this._restoreFocusEl=document.activeElement,this._mountPortal(),this.dispatchEvent(new CustomEvent("open",{bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{open:!0}})),requestAnimationFrame(()=>this._focusFirstItem());return}this._unbindGlobalListeners(),this._teardownPortal(),this.dispatchEvent(new CustomEvent("close",{bubbles:!0})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{open:!1}}));const t=this._getTrigger();if(t)try{t.focus({preventScroll:!0})}catch{t.focus()}this._restoreFocusEl=null}_bindGlobalListeners(){this._globalListenersBound||(document.addEventListener("keydown",this._onDocumentKeyDown),document.addEventListener("scroll",this._onDocumentScroll,{passive:!0,capture:!0}),this._globalListenersBound=!0)}_unbindGlobalListeners(){this._globalListenersBound&&(document.removeEventListener("keydown",this._onDocumentKeyDown),document.removeEventListener("scroll",this._onDocumentScroll,!0),this._globalListenersBound=!1)}_clearActiveState(){this._portalEl&&this._portalEl.querySelectorAll(u()).forEach(e=>e.removeAttribute("data-active"))}_queryItems(){return this._portalEl?Array.from(this._portalEl.querySelectorAll(u())).filter(e=>!m(e)):[]}_focusItem(e){if(e){this._clearActiveState(),e.setAttribute("data-active","true");try{e.focus({preventScroll:!0})}catch{e.focus()}typeof e.scrollIntoView=="function"&&e.scrollIntoView({block:"nearest"})}}_focusFirstItem(){this._focusItem(this._queryItems()[0]||null)}_focusLastItem(){const e=this._queryItems();this._focusItem(e[e.length-1]||null)}_moveFocus(e){const t=this._queryItems();if(!t.length)return;const i=document.activeElement,n=i?t.findIndex(o=>o===i||o.contains(i)):-1,a=n===-1?0:Math.max(0,Math.min(t.length-1,n+e));this._focusItem(t[a]||null)}_resetTypeahead(){this._typeaheadBuffer="",this._typeaheadTimer!=null&&(window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=null)}_isTypeaheadKey(e){return e.ctrlKey||e.metaKey||e.altKey?!1:e.key.length===1&&/\S/.test(e.key)}_handleTypeahead(e){if(!this.typeahead||!this._isTypeaheadKey(e))return!1;this._typeaheadBuffer=`${this._typeaheadBuffer}${e.key.toLowerCase()}`.slice(0,24),this._typeaheadTimer!=null&&window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=window.setTimeout(()=>this._resetTypeahead(),420);const t=document.activeElement,i=this._queryItems();if(!i.length)return!1;const n=t?i.findIndex(s=>s===t||s.contains(t)):-1,o=(n>=0?[...i.slice(n+1),...i.slice(0,n+1)]:i).find(s=>(s.textContent||"").trim().toLowerCase().startsWith(this._typeaheadBuffer));return o?(e.preventDefault(),this._focusItem(o),!0):!1}_applySelectionBehavior(e){const t=e.getAttribute("role");if(t==="menuitemcheckbox"){const n=e.getAttribute("aria-checked")==="true";e.setAttribute("aria-checked",n?"false":"true"),e.setAttribute("data-state",n?"unchecked":"checked");return}if(t!=="menuitemradio"||!this._portalEl)return;const i=e.getAttribute("data-group")||e.getAttribute("name")||"";this._portalEl.querySelectorAll('[role="menuitemradio"]').forEach(n=>{const a=n.getAttribute("data-group")||n.getAttribute("name")||"";i&&a!==i||(n.setAttribute("aria-checked",n===e?"true":"false"),n.setAttribute("data-state",n===e?"checked":"unchecked"))})}_handleItemSelect(e){this._applySelectionBehavior(e);const t=e.getAttribute("data-index"),i=t!=null&&!Number.isNaN(Number(t))?Number(t):void 0;this.dispatchEvent(new CustomEvent("select",{bubbles:!0,detail:{index:i,value:e.getAttribute("data-value")||e.getAttribute("value")||void 0,label:e.getAttribute("aria-label")||e.textContent?.trim()||void 0,checked:e.getAttribute("aria-checked")==="true",item:e}})),this.closeOnSelect?this.close():this._focusItem(e)}_buildLegacyItems(e){const t=this._getItemSources();return t.forEach((i,n)=>{const a=i.cloneNode(!0);a.removeAttribute("slot"),a.getAttribute("role")||a.setAttribute("role","menuitem"),a.classList.contains("item")||a.classList.add("item"),a.hasAttribute("tabindex")||a.setAttribute("tabindex","-1"),a.hasAttribute("data-index")||a.setAttribute("data-index",String(n)),e.appendChild(a)}),t.length}_hydrateMenuItems(e){const t=Array.from(e.querySelectorAll(u()));return t.forEach((i,n)=>{i.getAttribute("role")||i.setAttribute("role","menuitem"),i.hasAttribute("tabindex")||i.setAttribute("tabindex","-1"),i.classList.contains("item")||i.classList.add("item"),i.hasAttribute("data-index")||i.setAttribute("data-index",String(n))}),t.length}_applyPortalTokens(e){const t=window.getComputedStyle(this);I.forEach(i=>{const n=t.getPropertyValue(i).trim();n?e.style.setProperty(i,n):e.style.removeProperty(i)})}_applyPortalVariantData(e){const t=l(this,"variant"),i=k(this.getAttribute("size")||this.getAttribute("density")),n=l(this,"density"),a=this.getAttribute("radius"),o=l(this,"shape"),s=l(this,"elevation"),c=l(this,"tone"),f=t==="default"||t===""?"":t==="line"?"outline":t==="glass"?"soft":t;f?e.setAttribute("data-variant",f):e.removeAttribute("data-variant"),i!=="md"?e.setAttribute("data-size",i):e.removeAttribute("data-size"),n&&n!=="default"?e.setAttribute("data-density",n):e.removeAttribute("data-density"),s&&s!=="default"?e.setAttribute("data-elevation",s):e.removeAttribute("data-elevation");const b=c==="default"||c==="brand"||c===""?"":c;b?e.setAttribute("data-tone",b):e.removeAttribute("data-tone");const d=S(a||o||null);d?(e.style.setProperty("--ui-menu-radius",d),e.style.setProperty("--ui-menu-item-radius",d==="999px"?"999px":`calc(${d} - 2px)`)):(e.style.removeProperty("--ui-menu-radius"),e.style.removeProperty("--ui-menu-item-radius"))}_syncPortalVisualState(){this._portalEl&&(this._applyPortalTokens(this._portalEl),this._applyPortalVariantData(this._portalEl),this._portalEl.setAttribute("aria-hidden","false"),this._portalEl.setAttribute("aria-busy","false"),this._portalEl.style.display="block",this._portalEl.style.visibility="visible",this._portalEl.style.opacity="1",this._portalEl.style.transform="translateY(0px) scale(1)",this._portalEl.style.pointerEvents="auto")}_attachMenuEvents(e){this._menuClickHandler=t=>{const i=p(t);!i||m(i)||this._handleItemSelect(i)},e.addEventListener("click",this._menuClickHandler),e.addEventListener("mouseover",t=>{const i=p(t);!i||m(i)||this._focusItem(i)}),e.addEventListener("focusin",t=>{const i=p(t);!i||m(i)||this._focusItem(i)}),e.addEventListener("mouseleave",()=>this._clearActiveState())}_buildPortalElement(){const e=document.createElement("div");e.className="surface menu",e.id=this._menuId,e.setAttribute("part","menu"),e.setAttribute("role","menu"),e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","false"),e.setAttribute("aria-busy","false"),e.setAttribute("data-placement",g(this.getAttribute("placement")));const t=document.createElement("style");t.textContent=T,e.appendChild(t);const i=this._getContentSource();let n=0;if(i){const a=i.cloneNode(!0);a.removeAttribute("slot"),e.appendChild(a)}else n=this._buildLegacyItems(e);if(n=this._hydrateMenuItems(e)||n,n===0){const a=document.createElement("div");a.className="empty-state",a.textContent="No items",e.appendChild(a)}return this._applyPortalTokens(e),this._applyPortalVariantData(e),e.style.display="block",e.style.visibility="visible",e.style.opacity="1",e.style.transform="translateY(0px) scale(1)",e.style.pointerEvents="auto",this._attachMenuEvents(e),e}_rebuildPortalContent(){if(!this._portalEl)return;const e=this._portalEl.parentElement;if(!e)return;const t=this._portalEl,i=this._buildPortalElement();e.replaceChild(i,t),this._portalEl=i,this._rebuildPositioner()}_rebuildPositioner(){const e=this._getTrigger();!this._portalEl||!e||(this._positioner?.destroy(),this._positioner=A.createPositioner({anchor:e,floating:this._portalEl,placement:g(this.getAttribute("placement")),offset:6,flip:!0,shift:!0,fitViewport:!0,observeScroll:!1}))}_mountPortal(){const e=this._getTrigger();if(e){if(this._portalEl)this._syncPortalVisualState();else{this._portalEl=this._buildPortalElement();const t=y.createPortalContainer();if(!t){this._portalEl=null;return}t.appendChild(this._portalEl)}this._rebuildPositioner(),this._dismissableLayer?.destroy(),this._dismissableLayer=x.createDismissableLayer({node:this._portalEl,trigger:e,closeOnEscape:!0,closeOnPointerOutside:!0,onDismiss:()=>this.close()})}}_teardownPortal(){if(this._dismissableLayer?.destroy(),this._dismissableLayer=null,this._positioner?.destroy(),this._positioner=null,this._portalEl?.parentElement)try{this._portalEl.parentElement.removeChild(this._portalEl)}catch{}this._portalEl=null,this._menuClickHandler=null,this._resetTypeahead()}_isEventInsideTrigger(e){const t=this._getTrigger();return!!t&&e.composedPath().includes(t)}_isEventInsideMenu(e){return!!this._portalEl&&e.composedPath().includes(this._portalEl)}_isInternalScrollEvent(e){const t=typeof e.composedPath=="function"?e.composedPath():[];if(this._portalEl&&t.includes(this._portalEl))return!0;const i=this._getTrigger();if(i&&t.includes(i))return!0;const n=e.target;return!!(n instanceof Node&&(this._portalEl?.contains(n)||i?.contains(n)))}_onHostClick(e){this.hasAttribute("disabled")||this._isEventInsideTrigger(e)&&(e.preventDefault(),this.toggle())}_onDocumentScroll(e){!this._isOpen||!this.closeOnScroll||this._isInternalScrollEvent(e)||this.close()}_onDocumentKeyDown(e){if(!this._isOpen){if(e.key!=="ArrowDown"&&e.key!=="ArrowUp"||!this._isEventInsideTrigger(e))return;e.preventDefault(),this.open(),requestAnimationFrame(()=>{e.key==="ArrowUp"?this._focusLastItem():this._focusFirstItem()});return}if(!(!this._isEventInsideTrigger(e)&&!this._isEventInsideMenu(e))&&!this._handleTypeahead(e)){if(e.key==="Escape"){e.preventDefault(),e.stopPropagation(),this.close();return}if(e.key==="ArrowDown"){e.preventDefault(),this._moveFocus(1);return}if(e.key==="ArrowUp"){e.preventDefault(),this._moveFocus(-1);return}if(e.key==="Home"){e.preventDefault(),this._focusFirstItem();return}if(e.key==="End"){e.preventDefault(),this._focusLastItem();return}if(e.key==="Tab"){this.close();return}if(e.key==="Enter"||e.key===" "){const t=document.activeElement;if(!t||!this._portalEl?.contains(t))return;const i=t.closest(u());if(!i||m(i))return;e.preventDefault(),this._handleItemSelect(i)}}}render(){this.setContent(`
266
266
  <style>${C}</style>
267
267
  <div class="trigger" part="trigger">
268
268
  <slot name="trigger"></slot>
@@ -272,4 +272,4 @@
272
272
  <slot name="content"></slot>
273
273
  </div>
274
274
  <slot></slot>
275
- `),this._syncTriggerA11y(),this._isOpen&&!this._portalEl?this._mountPortal():this._isOpen&&((e=this._positioner)==null||e.update())}shouldRenderOnAttributeChange(){return!1}}typeof customElements<"u"&&!customElements.get("ui-menu")&&customElements.define("ui-menu",_);exports.UIMenu=_;
275
+ `),this._syncTriggerA11y(),this._isOpen&&!this._portalEl?this._mountPortal():this._isOpen&&this._positioner?.update()}shouldRenderOnAttributeChange(){return!1}}typeof customElements<"u"&&!customElements.get("ui-menu")&&customElements.define("ui-menu",_);exports.UIMenu=_;