@editora/ui-core 0.1.21 → 0.1.22

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 (274) hide show
  1. package/dist/accordion.cjs.js +3 -3
  2. package/dist/accordion.esm.js +3 -3
  3. package/dist/alert-dialog.cjs.js +32 -32
  4. package/dist/alert-dialog.esm.js +95 -75
  5. package/dist/alert.cjs.js +6 -6
  6. package/dist/alert.esm.js +6 -6
  7. package/dist/animated-list.cjs.js +4 -4
  8. package/dist/animated-list.esm.js +4 -4
  9. package/dist/animated-text.cjs.js +4 -4
  10. package/dist/animated-text.esm.js +4 -4
  11. package/dist/app-header.cjs.js +3 -3
  12. package/dist/app-header.esm.js +3 -3
  13. package/dist/aspect-ratio.cjs.js +3 -3
  14. package/dist/aspect-ratio.esm.js +3 -3
  15. package/dist/avatar.cjs.js +14 -14
  16. package/dist/avatar.esm.js +31 -29
  17. package/dist/badge.cjs.js +4 -4
  18. package/dist/badge.esm.js +4 -4
  19. package/dist/block-controls.cjs.js +4 -4
  20. package/dist/block-controls.esm.js +4 -4
  21. package/dist/box.cjs.js +2 -2
  22. package/dist/box.esm.js +2 -2
  23. package/dist/breadcrumb.cjs.js +5 -5
  24. package/dist/breadcrumb.esm.js +5 -5
  25. package/dist/button.cjs.js +1 -1
  26. package/dist/button.esm.js +1 -1
  27. package/dist/{calendar-DLY4acgn.mjs → calendar-DbxYRdlv.mjs} +227 -183
  28. package/dist/{calendar-Dkof-FTK.js → calendar-Qa-cFOp3.js} +74 -35
  29. package/dist/calendar.cjs.js +1 -1
  30. package/dist/calendar.esm.js +1 -1
  31. package/dist/card.cjs.js +8 -8
  32. package/dist/card.esm.js +63 -20
  33. package/dist/chart.cjs.js +4 -4
  34. package/dist/chart.esm.js +6 -6
  35. package/dist/checkbox.cjs.js +2 -2
  36. package/dist/checkbox.esm.js +2 -2
  37. package/dist/collapsible.cjs.js +7 -7
  38. package/dist/collapsible.esm.js +7 -7
  39. package/dist/color-picker.cjs.js +30 -10
  40. package/dist/color-picker.esm.js +82 -60
  41. package/dist/combobox.cjs.js +29 -27
  42. package/dist/combobox.esm.js +51 -45
  43. package/dist/command.cjs.js +2 -2
  44. package/dist/command.esm.js +2 -2
  45. package/dist/components/ui-alert-dialog.d.ts +1 -0
  46. package/dist/components/ui-alert-dialog.d.ts.map +1 -1
  47. package/dist/components/ui-avatar.d.ts +1 -0
  48. package/dist/components/ui-avatar.d.ts.map +1 -1
  49. package/dist/components/ui-button.d.ts +1 -0
  50. package/dist/components/ui-button.d.ts.map +1 -1
  51. package/dist/components/ui-calendar.d.ts.map +1 -1
  52. package/dist/components/ui-card.d.ts +3 -0
  53. package/dist/components/ui-card.d.ts.map +1 -1
  54. package/dist/components/ui-checkbox.d.ts.map +1 -1
  55. package/dist/components/ui-color-picker.d.ts.map +1 -1
  56. package/dist/components/ui-combobox.d.ts.map +1 -1
  57. package/dist/components/ui-data-table.d.ts.map +1 -1
  58. package/dist/components/ui-date-field.d.ts.map +1 -1
  59. package/dist/components/ui-date-picker.d.ts.map +1 -1
  60. package/dist/components/ui-date-range-picker.d.ts.map +1 -1
  61. package/dist/components/ui-date-range-time-picker.d.ts.map +1 -1
  62. package/dist/components/ui-date-time-picker.d.ts.map +1 -1
  63. package/dist/components/ui-dock.d.ts +1 -0
  64. package/dist/components/ui-dock.d.ts.map +1 -1
  65. package/dist/components/ui-drawer.d.ts.map +1 -1
  66. package/dist/components/ui-dropdown.d.ts.map +1 -1
  67. package/dist/components/ui-field.d.ts.map +1 -1
  68. package/dist/components/ui-file-upload.d.ts.map +1 -1
  69. package/dist/components/ui-gantt.d.ts.map +1 -1
  70. package/dist/components/ui-input.d.ts.map +1 -1
  71. package/dist/components/ui-menu.d.ts.map +1 -1
  72. package/dist/components/ui-multi-select.d.ts.map +1 -1
  73. package/dist/components/ui-number-field.d.ts.map +1 -1
  74. package/dist/components/ui-password-field.d.ts.map +1 -1
  75. package/dist/components/ui-pin-input.d.ts +1 -0
  76. package/dist/components/ui-pin-input.d.ts.map +1 -1
  77. package/dist/components/ui-placement-grid.d.ts.map +1 -1
  78. package/dist/components/ui-progress.d.ts.map +1 -1
  79. package/dist/components/ui-radio.d.ts.map +1 -1
  80. package/dist/components/ui-rating.d.ts +1 -0
  81. package/dist/components/ui-rating.d.ts.map +1 -1
  82. package/dist/components/ui-select.d.ts.map +1 -1
  83. package/dist/components/ui-sortable.d.ts.map +1 -1
  84. package/dist/components/ui-switch.d.ts.map +1 -1
  85. package/dist/components/ui-table.d.ts.map +1 -1
  86. package/dist/components/ui-tabs.d.ts +1 -0
  87. package/dist/components/ui-tabs.d.ts.map +1 -1
  88. package/dist/components/ui-tags-input.d.ts +1 -0
  89. package/dist/components/ui-tags-input.d.ts.map +1 -1
  90. package/dist/components/ui-textarea.d.ts.map +1 -1
  91. package/dist/components/ui-time-field.d.ts.map +1 -1
  92. package/dist/components/ui-toggle-group.d.ts.map +1 -1
  93. package/dist/components/ui-toggle.d.ts.map +1 -1
  94. package/dist/components/ui-tree.d.ts.map +1 -1
  95. package/dist/components/ui-wizard.d.ts.map +1 -1
  96. package/dist/context-menu.cjs.js +3 -3
  97. package/dist/context-menu.esm.js +4 -4
  98. package/dist/control-name-BmoI1m3a.js +1 -0
  99. package/dist/control-name-Bpj7F34X.mjs +48 -0
  100. package/dist/data-table.cjs.js +5 -2
  101. package/dist/data-table.esm.js +145 -142
  102. package/dist/date-field.cjs.js +5 -5
  103. package/dist/date-field.esm.js +34 -31
  104. package/dist/date-picker.cjs.js +16 -16
  105. package/dist/date-picker.esm.js +48 -44
  106. package/dist/date-range-picker.cjs.js +5 -5
  107. package/dist/date-range-picker.esm.js +120 -118
  108. package/dist/date-range-time-picker.cjs.js +22 -22
  109. package/dist/date-range-time-picker.esm.js +88 -84
  110. package/dist/date-time-picker.cjs.js +23 -23
  111. package/dist/date-time-picker.esm.js +102 -98
  112. package/dist/{date-time-utils-Dmost5Ee.js → date-time-utils-BzfTpeU-.js} +1 -1
  113. package/dist/{date-time-utils-y1N2gvG2.mjs → date-time-utils-Cps2aSu2.mjs} +1 -1
  114. package/dist/description.cjs.js +3 -3
  115. package/dist/description.esm.js +3 -3
  116. package/dist/dialog.cjs.js +2 -2
  117. package/dist/dialog.esm.js +2 -2
  118. package/dist/dock.cjs.js +12 -12
  119. package/dist/dock.esm.js +72 -74
  120. package/dist/drawer.cjs.js +19 -19
  121. package/dist/drawer.esm.js +58 -58
  122. package/dist/dropdown.cjs.js +13 -13
  123. package/dist/dropdown.esm.js +49 -48
  124. package/dist/empty-state.cjs.js +3 -3
  125. package/dist/empty-state.esm.js +3 -3
  126. package/dist/field-error.cjs.js +1 -1
  127. package/dist/field-error.esm.js +1 -1
  128. package/dist/field.cjs.js +12 -12
  129. package/dist/field.esm.js +84 -75
  130. package/dist/fieldset.cjs.js +4 -4
  131. package/dist/fieldset.esm.js +4 -4
  132. package/dist/file-upload.cjs.js +3 -3
  133. package/dist/file-upload.esm.js +5 -3
  134. package/dist/floating-toolbar.cjs.js +8 -8
  135. package/dist/floating-toolbar.esm.js +9 -9
  136. package/dist/form.cjs.js +11 -11
  137. package/dist/form.esm.js +11 -11
  138. package/dist/gantt.cjs.js +43 -32
  139. package/dist/gantt.esm.js +99 -88
  140. package/dist/icon-cloud.cjs.js +3 -3
  141. package/dist/icon-cloud.esm.js +3 -3
  142. package/dist/icon.cjs.js +1 -1
  143. package/dist/icon.esm.js +1 -1
  144. package/dist/index.cjs.js +1 -1
  145. package/dist/index.esm.js +121 -118
  146. package/dist/inline-edit.cjs.js +1 -1
  147. package/dist/inline-edit.esm.js +1 -1
  148. package/dist/input.cjs.js +14 -14
  149. package/dist/input.esm.js +39 -32
  150. package/dist/label.cjs.js +3 -3
  151. package/dist/label.esm.js +3 -3
  152. package/dist/{listbox-B6QgECax.js → listbox-CTpRpuF7.js} +1 -1
  153. package/dist/{listbox-DJamVeFj.mjs → listbox-hMVOhKHC.mjs} +1 -1
  154. package/dist/listbox.cjs.js +1 -1
  155. package/dist/listbox.esm.js +1 -1
  156. package/dist/marquee.cjs.js +3 -3
  157. package/dist/marquee.esm.js +3 -3
  158. package/dist/{menu-item-styles-CbNUEwP2.js → menu-item-styles-B4onAr4C.js} +3 -3
  159. package/dist/{menu-item-styles-CZiPwPwl.mjs → menu-item-styles-IGSFLAHu.mjs} +3 -3
  160. package/dist/menu.cjs.js +7 -7
  161. package/dist/menu.esm.js +29 -28
  162. package/dist/menubar.cjs.js +1 -1
  163. package/dist/menubar.esm.js +2 -2
  164. package/dist/meter.cjs.js +1 -1
  165. package/dist/meter.esm.js +1 -1
  166. package/dist/multi-select.cjs.js +17 -17
  167. package/dist/multi-select.esm.js +51 -43
  168. package/dist/navigation-menu.cjs.js +1 -1
  169. package/dist/navigation-menu.esm.js +1 -1
  170. package/dist/number-field.cjs.js +11 -13
  171. package/dist/number-field.esm.js +29 -27
  172. package/dist/number-ticker.cjs.js +4 -4
  173. package/dist/number-ticker.esm.js +4 -4
  174. package/dist/odometer.cjs.js +2 -2
  175. package/dist/odometer.esm.js +2 -2
  176. package/dist/orbiter.cjs.js +3 -3
  177. package/dist/orbiter.esm.js +3 -3
  178. package/dist/pagination.cjs.js +1 -1
  179. package/dist/pagination.esm.js +1 -1
  180. package/dist/password-field.cjs.js +23 -23
  181. package/dist/password-field.esm.js +48 -47
  182. package/dist/pin-input.cjs.js +8 -6
  183. package/dist/pin-input.esm.js +21 -15
  184. package/dist/placement-grid.cjs.js +4 -4
  185. package/dist/placement-grid.esm.js +58 -58
  186. package/dist/plugin-panel.cjs.js +1 -1
  187. package/dist/plugin-panel.esm.js +1 -1
  188. package/dist/popover.cjs.js +5 -5
  189. package/dist/popover.esm.js +4 -4
  190. package/dist/primitives/control-name.d.ts +30 -0
  191. package/dist/primitives/control-name.d.ts.map +1 -0
  192. package/dist/primitives/trigger.d.ts +2 -0
  193. package/dist/primitives/trigger.d.ts.map +1 -0
  194. package/dist/progress.cjs.js +4 -4
  195. package/dist/progress.esm.js +20 -18
  196. package/dist/quick-actions.cjs.js +3 -3
  197. package/dist/quick-actions.esm.js +3 -3
  198. package/dist/radio-group.cjs.js +1 -1
  199. package/dist/radio-group.esm.js +1 -1
  200. package/dist/radio.cjs.js +2 -2
  201. package/dist/radio.esm.js +2 -2
  202. package/dist/rating.cjs.js +17 -16
  203. package/dist/rating.esm.js +91 -92
  204. package/dist/{runtime-D1gFh1fS.mjs → runtime-CFnK53iC.mjs} +133 -94
  205. package/dist/runtime-DwE-tizc.js +1 -0
  206. package/dist/runtime.cjs.js +1 -1
  207. package/dist/runtime.d.ts +1 -1
  208. package/dist/runtime.d.ts.map +1 -1
  209. package/dist/runtime.esm.js +29 -26
  210. package/dist/select.cjs.js +20 -19
  211. package/dist/select.esm.js +36 -32
  212. package/dist/selection-popup.cjs.js +2 -2
  213. package/dist/selection-popup.esm.js +2 -2
  214. package/dist/separator.cjs.js +7 -7
  215. package/dist/separator.esm.js +7 -7
  216. package/dist/sidebar.cjs.js +7 -7
  217. package/dist/sidebar.esm.js +7 -7
  218. package/dist/skeleton.cjs.js +7 -7
  219. package/dist/skeleton.esm.js +7 -7
  220. package/dist/slider.cjs.js +3 -3
  221. package/dist/slider.esm.js +3 -3
  222. package/dist/slot.cjs.js +3 -3
  223. package/dist/slot.esm.js +3 -3
  224. package/dist/sortable.cjs.js +41 -42
  225. package/dist/sortable.esm.js +98 -99
  226. package/dist/spinning-text.cjs.js +3 -3
  227. package/dist/spinning-text.esm.js +3 -3
  228. package/dist/split-button.cjs.js +1 -1
  229. package/dist/split-button.esm.js +1 -1
  230. package/dist/stepper.cjs.js +1 -1
  231. package/dist/stepper.esm.js +1 -1
  232. package/dist/switch.cjs.js +10 -12
  233. package/dist/switch.esm.js +10 -12
  234. package/dist/table.cjs.js +9 -6
  235. package/dist/table.esm.js +46 -43
  236. package/dist/tabs.cjs.js +20 -21
  237. package/dist/tabs.esm.js +70 -66
  238. package/dist/tags-input.cjs.js +9 -9
  239. package/dist/tags-input.esm.js +32 -25
  240. package/dist/textarea.cjs.js +10 -10
  241. package/dist/textarea.esm.js +30 -21
  242. package/dist/theme.d.ts +18 -0
  243. package/dist/theme.d.ts.map +1 -1
  244. package/dist/time-field.cjs.js +5 -5
  245. package/dist/time-field.esm.js +21 -18
  246. package/dist/time-picker.cjs.js +4 -4
  247. package/dist/time-picker.esm.js +5 -5
  248. package/dist/timeline.cjs.js +2 -2
  249. package/dist/timeline.esm.js +4 -4
  250. package/dist/toast.cjs.js +6 -6
  251. package/dist/toast.esm.js +13 -13
  252. package/dist/toggle-group.cjs.js +5 -6
  253. package/dist/toggle-group.esm.js +63 -60
  254. package/dist/toggle.cjs.js +18 -18
  255. package/dist/toggle.esm.js +32 -31
  256. package/dist/tooltip.cjs.js +4 -4
  257. package/dist/tooltip.esm.js +4 -4
  258. package/dist/transfer-list.cjs.js +3 -3
  259. package/dist/transfer-list.esm.js +3 -3
  260. package/dist/tree-7qbVnpGp.js +39 -0
  261. package/dist/{tree-B3kE8ESs.mjs → tree-Deoft-kO.mjs} +34 -33
  262. package/dist/tree.cjs.js +1 -1
  263. package/dist/tree.esm.js +1 -1
  264. package/dist/trigger-BjnxLCeQ.mjs +9 -0
  265. package/dist/trigger-DkPsKxsP.js +1 -0
  266. package/dist/{ui-button-rXQOS9QJ.js → ui-button-BInsgSbr.js} +27 -26
  267. package/dist/{ui-button-Q0GNNWKC.mjs → ui-button-rfiuUnUD.mjs} +65 -48
  268. package/dist/{ui-icon-YI6lyuqU.mjs → ui-icon-BSi_GtqO.mjs} +2 -2
  269. package/dist/{ui-icon-BzVNC_lr.js → ui-icon-Bvt9oIIR.js} +5 -5
  270. package/dist/wizard.cjs.js +12 -13
  271. package/dist/wizard.esm.js +17 -15
  272. package/package.json +1 -1
  273. package/dist/runtime-CTaOSmBj.js +0 -1
  274. package/dist/tree-Dx_kv_ih.js +0 -39
package/dist/dock.cjs.js CHANGED
@@ -1,9 +1,9 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const T=require("./ElementBase-EV6mVBUV.js"),F=1.92,C=148,R=1,D=20,_=.18,g="12px",y="12px 14px",x="56px",O=56,k={xs:{gap:"8px",padding:"8px 10px",itemSize:40,iconSize:18,itemRadius:14},sm:{gap:"10px",padding:"10px 12px",itemSize:48,iconSize:20,itemRadius:16},md:{gap:g,padding:y,itemSize:56,iconSize:24,itemRadius:18},lg:{gap:"14px",padding:"14px 16px",itemSize:64,iconSize:28,itemRadius:20},xl:{gap:"18px",padding:"16px 20px",itemSize:74,iconSize:32,itemRadius:24}},v={calm:{response:.11,damping:.82,spread:.62,lift:.82},smooth:{response:.16,damping:.78,spread:.82,lift:1},snappy:{response:.22,damping:.74,spread:.92,lift:1.06},bouncy:{response:.24,damping:.66,spread:1,lift:1.12}},z=new Set(["gap","padding","radius","item-size","variant","tone","size","elevation"]),N=new Set(["orientation","magnification","distance","idle-scale","lift","smoothing","animation","gap","padding","item-size"]),P=new Set(["label-mode","label-placement"]),V=new Set(["none","sm","md","lg","full"]),q=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const T=require("./ElementBase-EV6mVBUV.js"),F=1.92,C=148,R=1,D=20,k=.18,_="12px",x="12px 14px",v="56px",O=56,z={xs:{gap:"8px",padding:"8px 10px",itemSize:40,iconSize:18,itemRadius:14},sm:{gap:"10px",padding:"10px 12px",itemSize:48,iconSize:20,itemRadius:16},md:{gap:_,padding:x,itemSize:56,iconSize:24,itemRadius:18},lg:{gap:"14px",padding:"14px 16px",itemSize:64,iconSize:28,itemRadius:20},xl:{gap:"18px",padding:"16px 20px",itemSize:74,iconSize:32,itemRadius:24}},P={calm:{response:.11,damping:.82,spread:.62,lift:.82},smooth:{response:.16,damping:.78,spread:.82,lift:1},snappy:{response:.22,damping:.74,spread:.92,lift:1.06},bouncy:{response:.24,damping:.66,spread:1,lift:1.12}},E=new Set(["gap","padding","radius","item-size","variant","tone","size","elevation"]),N=new Set(["orientation","magnification","distance","idle-scale","lift","smoothing","animation","gap","padding","item-size"]),I=new Set(["label-mode","label-placement"]),V=new Set(["none","sm","md","lg","full"]),q=`
2
2
  :host {
3
- --ui-dock-gap: ${g};
4
- --ui-dock-padding: ${y};
3
+ --ui-dock-gap: ${_};
4
+ --ui-dock-padding: ${x};
5
5
  --ui-dock-radius: 24px;
6
- --ui-dock-item-size: ${x};
6
+ --ui-dock-item-size: ${v};
7
7
  --ui-dock-icon-size: 24px;
8
8
  --ui-dock-item-radius: 18px;
9
9
  --ui-dock-accent: var(--ui-color-primary, var(--ui-primary, #2563eb));
@@ -64,9 +64,9 @@
64
64
 
65
65
  :host([size="md"]),
66
66
  :host([size="2"]) {
67
- --ui-dock-gap: ${g};
68
- --ui-dock-padding: ${y};
69
- --ui-dock-item-size: ${x};
67
+ --ui-dock-gap: ${_};
68
+ --ui-dock-padding: ${x};
69
+ --ui-dock-item-size: ${v};
70
70
  --ui-dock-icon-size: 24px;
71
71
  --ui-dock-item-radius: 18px;
72
72
  --ui-dock-label-padding: 6px 10px;
@@ -116,7 +116,7 @@
116
116
  }
117
117
 
118
118
  :host([tone="neutral"]) {
119
- --ui-dock-accent: #64748b;
119
+ --ui-dock-accent: #526175;
120
120
  }
121
121
 
122
122
  :host([tone="info"]) {
@@ -124,11 +124,11 @@
124
124
  }
125
125
 
126
126
  :host([tone="success"]) {
127
- --ui-dock-accent: var(--ui-color-success, #16a34a);
127
+ --ui-dock-accent: var(--ui-color-success, #15803d);
128
128
  }
129
129
 
130
130
  :host([tone="warning"]) {
131
- --ui-dock-accent: var(--ui-color-warning, #d97706);
131
+ --ui-dock-accent: var(--ui-color-warning, #b45309);
132
132
  }
133
133
 
134
134
  :host([tone="danger"]) {
@@ -335,7 +335,7 @@
335
335
  scroll-behavior: auto;
336
336
  }
337
337
  }
338
- `;function p(s,e,t){return Math.min(t,Math.max(e,s))}function S(s,e){if(s==null||s.trim()==="")return e;const t=Number(s);return Number.isFinite(t)?t:e}function m(s,e){return Math.max(0,S(s,e))}function U(s,e){return p(S(s,e),.01,1)}function h(s){if(s==null||s.trim()==="")return null;const e=s.trim().split(/\s+/).filter(Boolean);return e.length?e.map(t=>/^-?\d+(\.\d+)?$/.test(t)?`${t}px`:t).join(" "):null}function $(s){return typeof requestAnimationFrame=="function"?requestAnimationFrame(s):window.setTimeout(()=>s(Date.now()),16)}function E(s){if(s!=null){if(typeof cancelAnimationFrame=="function"){cancelAnimationFrame(s);return}window.clearTimeout(s)}}function B(s){return s instanceof HTMLElement}function H(s){return s.hasAttribute("disabled")||s.getAttribute("aria-disabled")==="true"}function j(s){return s.hasAttribute("data-active")||s.getAttribute("aria-current")==="page"||s.getAttribute("aria-current")==="true"}function I(s,e){return s==="top"||s==="bottom"||s==="start"||s==="end"?s:e==="horizontal"?"top":"end"}function A(s,e,t){if(!s.length)return-1;let a=e;for(let n=0;n<s.length;n+=1)if(a=(a+t+s.length)%s.length,!s[a]?.disabled)return a;return-1}class L extends T.ElementBase{constructor(){super(),this._frameEl=null,this._slotEl=null,this._items=[],this._resizeObserver=null,this._mutationObserver=null,this._mediaQuery=null,this._raf=null,this._pointerActive=!1,this._pointerCoord=Number.NaN,this._focusedIndex=-1,this._rovingIndex=0,this._reducedMotion=!1,this._handleSlotChange=this._handleSlotChange.bind(this),this._handlePointerMove=this._handlePointerMove.bind(this),this._handlePointerLeave=this._handlePointerLeave.bind(this),this._handleFocusIn=this._handleFocusIn.bind(this),this._handleFocusOut=this._handleFocusOut.bind(this),this._handleKeyDown=this._handleKeyDown.bind(this),this._handleResize=this._handleResize.bind(this),this._handleLightDomMutation=this._handleLightDomMutation.bind(this),this._handleReducedMotionChange=this._handleReducedMotionChange.bind(this)}static get observedAttributes(){return["orientation","magnification","distance","idle-scale","lift","smoothing","animation","gap","padding","item-size","label-mode","label-placement","variant","tone","size","radius","elevation"]}connectedCallback(){super.connectedCallback(),this.hasAttribute("role")||this.setAttribute("role","toolbar"),this._observeLightDom(),this._bindReducedMotion(),this._syncHostStyles(),queueMicrotask(()=>this.refresh())}disconnectedCallback(){if(this._slotEl&&(this._slotEl.removeEventListener("slotchange",this._handleSlotChange),this._slotEl=null),this._frameEl&&(this._frameEl.removeEventListener("pointermove",this._handlePointerMove),this._frameEl.removeEventListener("pointerleave",this._handlePointerLeave),this._frameEl=null),this.removeEventListener("focusin",this._handleFocusIn),this.removeEventListener("focusout",this._handleFocusOut),this.removeEventListener("keydown",this._handleKeyDown),this._resizeObserver?.disconnect(),this._resizeObserver=null,this._mutationObserver?.disconnect(),this._mutationObserver=null,this._mediaQuery){try{this._mediaQuery.removeEventListener("change",this._handleReducedMotionChange)}catch{this._mediaQuery.removeListener(this._handleReducedMotionChange)}this._mediaQuery=null}E(this._raf),this._raf=null,super.disconnectedCallback()}refresh(){this._collectItems(),this._syncHostStyles(),this._measureItems(),this._syncTabIndices(),this._updateTargets(),this._queueAnimation()}focusItem(e){const t=typeof e=="number"?e:this._items.findIndex(a=>a.el.getAttribute("data-value")===String(e));t<0||t>=this._items.length||this._items[t]?.disabled||(this._focusedIndex=t,this._rovingIndex=t,this._syncTabIndices(),this._items[t]?.el.focus(),this._pointerActive=!1,this._pointerCoord=Number.NaN,this._updateTargets(),this._queueAnimation())}clearActive(){this._pointerActive=!1,this._pointerCoord=Number.NaN,this._focusedIndex=-1,this._updateTargets(),this._queueAnimation()}attributeChangedCallback(e,t,a){!e||t===a||!this.isConnected||(z.has(e)&&this._syncHostStyles(),P.has(e)&&this._syncItemChrome(),(N.has(e)||P.has(e)||z.has(e))&&this.refresh())}shouldRenderOnAttributeChange(){return!1}render(){this.setContent(`
338
+ `;function g(s,e,t){return Math.min(t,Math.max(e,s))}function w(s,e){if(s==null||s.trim()==="")return e;const t=Number(s);return Number.isFinite(t)?t:e}function y(s,e){return Math.max(0,w(s,e))}function U(s,e){return g(w(s,e),.01,1)}function b(s){if(s==null||s.trim()==="")return null;const e=s.trim().split(/\s+/).filter(Boolean);return e.length?e.map(t=>/^-?\d+(\.\d+)?$/.test(t)?`${t}px`:t).join(" "):null}function $(s){return typeof requestAnimationFrame=="function"?requestAnimationFrame(s):window.setTimeout(()=>s(Date.now()),16)}function A(s){if(s!=null){if(typeof cancelAnimationFrame=="function"){cancelAnimationFrame(s);return}window.clearTimeout(s)}}function B(s){return s instanceof HTMLElement}function H(s){return s.hasAttribute("disabled")||s.getAttribute("aria-disabled")==="true"}function j(s){return s.hasAttribute("data-active")||s.getAttribute("aria-current")==="page"||s.getAttribute("aria-current")==="true"}function S(s,e){return s==="top"||s==="bottom"||s==="start"||s==="end"?s:e==="horizontal"?"top":"end"}function L(s,e,t){if(!s.length)return-1;let a=e;for(let n=0;n<s.length;n+=1)if(a=(a+t+s.length)%s.length,!s[a]?.disabled)return a;return-1}class M extends T.ElementBase{constructor(){super(),this._frameEl=null,this._slotEl=null,this._items=[],this._itemNames=new WeakMap,this._resizeObserver=null,this._mutationObserver=null,this._mediaQuery=null,this._raf=null,this._pointerActive=!1,this._pointerCoord=Number.NaN,this._focusedIndex=-1,this._rovingIndex=0,this._reducedMotion=!1,this._handleSlotChange=this._handleSlotChange.bind(this),this._handlePointerMove=this._handlePointerMove.bind(this),this._handlePointerLeave=this._handlePointerLeave.bind(this),this._handleFocusIn=this._handleFocusIn.bind(this),this._handleFocusOut=this._handleFocusOut.bind(this),this._handleKeyDown=this._handleKeyDown.bind(this),this._handleResize=this._handleResize.bind(this),this._handleLightDomMutation=this._handleLightDomMutation.bind(this),this._handleReducedMotionChange=this._handleReducedMotionChange.bind(this)}static get observedAttributes(){return["orientation","magnification","distance","idle-scale","lift","smoothing","animation","gap","padding","item-size","label-mode","label-placement","variant","tone","size","radius","elevation"]}connectedCallback(){super.connectedCallback(),this.hasAttribute("role")||this.setAttribute("role","toolbar"),this._observeLightDom(),this._bindReducedMotion(),this._syncHostStyles(),queueMicrotask(()=>this.refresh())}disconnectedCallback(){if(this._slotEl&&(this._slotEl.removeEventListener("slotchange",this._handleSlotChange),this._slotEl=null),this._frameEl&&(this._frameEl.removeEventListener("pointermove",this._handlePointerMove),this._frameEl.removeEventListener("pointerleave",this._handlePointerLeave),this._frameEl=null),this.removeEventListener("focusin",this._handleFocusIn),this.removeEventListener("focusout",this._handleFocusOut),this.removeEventListener("keydown",this._handleKeyDown),this._resizeObserver?.disconnect(),this._resizeObserver=null,this._mutationObserver?.disconnect(),this._mutationObserver=null,this._mediaQuery){try{this._mediaQuery.removeEventListener("change",this._handleReducedMotionChange)}catch{this._mediaQuery.removeListener(this._handleReducedMotionChange)}this._mediaQuery=null}A(this._raf),this._raf=null,super.disconnectedCallback()}refresh(){this._collectItems(),this._syncHostStyles(),this._measureItems(),this._syncTabIndices(),this._updateTargets(),this._queueAnimation()}focusItem(e){const t=typeof e=="number"?e:this._items.findIndex(a=>a.el.getAttribute("data-value")===String(e));t<0||t>=this._items.length||this._items[t]?.disabled||(this._focusedIndex=t,this._rovingIndex=t,this._syncTabIndices(),this._items[t]?.el.focus(),this._pointerActive=!1,this._pointerCoord=Number.NaN,this._updateTargets(),this._queueAnimation())}clearActive(){this._pointerActive=!1,this._pointerCoord=Number.NaN,this._focusedIndex=-1,this._updateTargets(),this._queueAnimation()}attributeChangedCallback(e,t,a){!e||t===a||!this.isConnected||(E.has(e)&&this._syncHostStyles(),I.has(e)&&this._syncItemChrome(),(N.has(e)||I.has(e)||E.has(e))&&this.refresh())}shouldRenderOnAttributeChange(){return!1}render(){this.setContent(`
339
339
  <style>${q}</style>
340
340
  <div class="root" part="root">
341
341
  <div class="frame" part="frame">
@@ -344,4 +344,4 @@
344
344
  </div>
345
345
  </div>
346
346
  </div>
347
- `),this._bindElements(),this._syncHostStyles(),this.refresh()}_bindElements(){const e=this.root.querySelector(".frame");e&&e!==this._frameEl&&(this._frameEl&&(this._frameEl.removeEventListener("pointermove",this._handlePointerMove),this._frameEl.removeEventListener("pointerleave",this._handlePointerLeave)),e.addEventListener("pointermove",this._handlePointerMove),e.addEventListener("pointerleave",this._handlePointerLeave),this._frameEl=e);const t=this.root.querySelector("slot");t&&t!==this._slotEl&&(this._slotEl&&this._slotEl.removeEventListener("slotchange",this._handleSlotChange),t.addEventListener("slotchange",this._handleSlotChange),this._slotEl=t),this.removeEventListener("focusin",this._handleFocusIn),this.removeEventListener("focusout",this._handleFocusOut),this.removeEventListener("keydown",this._handleKeyDown),this.addEventListener("focusin",this._handleFocusIn),this.addEventListener("focusout",this._handleFocusOut),this.addEventListener("keydown",this._handleKeyDown),this._ensureResizeObserver()}_observeLightDom(){this._mutationObserver||typeof MutationObserver>"u"||(this._mutationObserver=new MutationObserver(this._handleLightDomMutation),this._mutationObserver.observe(this,{childList:!0,subtree:!0,characterData:!0}))}_ensureResizeObserver(){this._resizeObserver||typeof ResizeObserver>"u"||(this._resizeObserver=new ResizeObserver(this._handleResize),this._resizeObserver.observe(this))}_bindReducedMotion(){if(typeof window>"u"||typeof window.matchMedia!="function")return;const e=window.matchMedia("(prefers-reduced-motion: reduce)");this._reducedMotion=e.matches,this._mediaQuery=e;try{e.addEventListener("change",this._handleReducedMotionChange)}catch{e.addListener(this._handleReducedMotionChange)}}_handleReducedMotionChange(e){this._reducedMotion=e.matches,this.refresh()}_handleSlotChange(){this.refresh()}_handleLightDomMutation(){this.refresh()}_handleResize(){this._measureItems(),this._updateTargets(),this._queueAnimation()}_handlePointerMove(e){if("pointerType"in e&&e.pointerType==="touch"||!this._frameEl)return;const t=this._frameEl.getBoundingClientRect(),n=this._orientation()==="horizontal"?e.clientX-t.left:e.clientY-t.top;this._pointerActive=!0,this._pointerCoord=n,this._measureItems(),this._updateTargets(),this._queueAnimation()}_handlePointerLeave(){this._pointerActive=!1,this._pointerCoord=Number.NaN,this._updateTargets(),this._queueAnimation()}_handleFocusIn(e){const t=e.target?.closest?.("[data-ui-dock-item]");if(!t)return;const a=this._items.findIndex(n=>n.el===t);a<0||(this._focusedIndex=a,this._rovingIndex=a,this._syncTabIndices(),this._pointerActive=!1,this._pointerCoord=Number.NaN,this._updateTargets(),this._queueAnimation())}_handleFocusOut(e){const t=e.relatedTarget;t&&this.contains(t)||(this._focusedIndex=-1,this._pointerActive||(this._updateTargets(),this._queueAnimation()))}_handleKeyDown(e){if(e.defaultPrevented||!this._items.length)return;const t=this._orientation(),a=t==="horizontal"?["ArrowLeft"]:["ArrowUp"],n=t==="horizontal"?["ArrowRight"]:["ArrowDown"];if(a.includes(e.key)){e.preventDefault();const i=A(this._items,this._rovingIndex,-1);i>=0&&this.focusItem(i);return}if(n.includes(e.key)){e.preventDefault();const i=A(this._items,this._rovingIndex,1);i>=0&&this.focusItem(i);return}if(e.key==="Home"){e.preventDefault();const i=this._items.findIndex(c=>!c.disabled);i>=0&&this.focusItem(i);return}if(e.key==="End"){e.preventDefault();for(let i=this._items.length-1;i>=0;i-=1)if(!this._items[i]?.disabled){this.focusItem(i);break}return}e.key==="Escape"&&this.clearActive()}_collectItems(){const e=new Map(this._items.map(n=>[n.el,n])),t=Array.from(this.children).filter(B).map(n=>{const i=e.get(n),c=n.querySelector("[data-ui-dock-icon]"),o=n.querySelector("[data-ui-dock-label]"),l=n.querySelector("[data-ui-dock-badge]");return{el:n,iconEl:c,labelEl:o,badgeEl:l,center:i?.center??0,currentScale:i?.currentScale??this._idleScale(),targetScale:i?.targetScale??this._idleScale(),currentLift:i?.currentLift??0,targetLift:i?.targetLift??0,labelVisible:i?.labelVisible??!1,disabled:H(n),sticky:j(n),scaleVelocity:i?.scaleVelocity??0,liftVelocity:i?.liftVelocity??0}});this._items=t;const a=this._items.findIndex(n=>n.sticky&&!n.disabled);a>=0?this._rovingIndex=a:(!this._items[this._rovingIndex]||this._items[this._rovingIndex]?.disabled)&&(this._rovingIndex=this._items.findIndex(n=>!n.disabled)),this._rovingIndex<0&&(this._rovingIndex=0),(this._focusedIndex>=this._items.length||this._items[this._focusedIndex]?.disabled)&&(this._focusedIndex=-1),this._syncItemChrome()}_syncItemChrome(){const e=I(this.getAttribute("label-placement"),this._orientation()),t=this._labelMode(),a=this._orientation();this._items.forEach(n=>{const{el:i,iconEl:c,labelEl:o,badgeEl:l,sticky:d}=n;if(i.setAttribute("data-ui-dock-item",""),i.style.setProperty("position","relative"),i.style.setProperty("display","inline-flex"),i.style.setProperty("align-items","center"),i.style.setProperty("justify-content","center"),i.style.setProperty("inline-size","var(--ui-dock-item-size)"),i.style.setProperty("block-size","var(--ui-dock-item-size)"),i.style.setProperty("min-inline-size","var(--ui-dock-item-size)"),i.style.setProperty("min-block-size","var(--ui-dock-item-size)"),i.style.setProperty("flex","0 0 var(--ui-dock-item-size)"),i.style.setProperty("box-sizing","border-box"),i.style.setProperty("background","transparent"),i.style.setProperty("border","none"),i.style.setProperty("padding","0"),i.style.setProperty("margin","0"),i.style.setProperty("color","inherit"),i.style.setProperty("text-decoration","none"),i.style.setProperty("outline","none"),i.style.setProperty("cursor",n.disabled?"not-allowed":"pointer"),i.style.setProperty("transform-origin",a==="horizontal"?"center bottom":"center center"),i.style.setProperty("touch-action","manipulation"),i.hasAttribute("tabindex")||(i.tabIndex=-1),!i.hasAttribute("aria-label")){const r=o?.textContent?.trim()||i.getAttribute("data-label")||i.getAttribute("title")||void 0;r&&i.setAttribute("aria-label",r)}d?i.setAttribute("data-dock-current","true"):i.removeAttribute("data-dock-current"),c&&(c.style.setProperty("display","inline-flex"),c.style.setProperty("align-items","center"),c.style.setProperty("justify-content","center"),c.style.setProperty("inline-size","100%"),c.style.setProperty("block-size","100%"),c.style.setProperty("border-radius","var(--ui-dock-item-radius)"),c.style.setProperty("background","var(--ui-dock-item-bg)"),c.style.setProperty("border","1px solid var(--ui-dock-item-border)"),c.style.setProperty("box-shadow","var(--ui-dock-item-shadow)"),c.style.setProperty("backdrop-filter","var(--ui-dock-item-backdrop)"),c.style.setProperty("font-size","var(--ui-dock-icon-size)"),c.style.setProperty("color","inherit"),c.style.setProperty("overflow","hidden"),c.style.setProperty("box-sizing","border-box")),o&&(o.setAttribute("aria-hidden","true"),o.style.setProperty("position","absolute"),o.style.setProperty("pointer-events","none"),o.style.setProperty("white-space","nowrap"),o.style.setProperty("padding","var(--ui-dock-label-padding)"),o.style.setProperty("border-radius","var(--ui-dock-label-radius)"),o.style.setProperty("background","var(--ui-dock-label-bg)"),o.style.setProperty("color","var(--ui-dock-label-color)"),o.style.setProperty("border","1px solid var(--ui-dock-label-border)"),o.style.setProperty("box-shadow","var(--ui-dock-label-shadow)"),o.style.setProperty("backdrop-filter","var(--ui-dock-label-backdrop)"),o.style.setProperty("font-size","var(--ui-dock-label-font-size)"),o.style.setProperty("font-weight","var(--ui-dock-label-font-weight)"),o.style.setProperty("line-height","1.2"),o.style.setProperty("letter-spacing","0.01em"),o.style.setProperty("min-inline-size","max-content"),o.style.setProperty("z-index","3"),o.style.setProperty("display",t==="none"?"none":"inline-flex"),o.style.removeProperty("top"),o.style.removeProperty("bottom"),o.style.removeProperty("left"),o.style.removeProperty("right"),e==="top"?(o.style.setProperty("left","50%"),o.style.setProperty("bottom","calc(100% + var(--ui-dock-label-offset))")):e==="bottom"?(o.style.setProperty("left","50%"),o.style.setProperty("top","calc(100% + var(--ui-dock-label-offset))")):e==="start"?(o.style.setProperty("right","calc(100% + var(--ui-dock-label-offset))"),o.style.setProperty("top","50%")):(o.style.setProperty("left","calc(100% + var(--ui-dock-label-offset))"),o.style.setProperty("top","50%"))),l&&(l.setAttribute("aria-hidden","true"),l.style.setProperty("position","absolute"),l.style.setProperty("inset-inline-end","-2px"),l.style.setProperty("inset-block-start","-2px"),l.style.setProperty("display","inline-flex"),l.style.setProperty("align-items","center"),l.style.setProperty("justify-content","center"),l.style.setProperty("min-inline-size","18px"),l.style.setProperty("min-block-size","18px"),l.style.setProperty("padding","0 6px"),l.style.setProperty("border-radius","999px"),l.style.setProperty("background","var(--ui-dock-accent)"),l.style.setProperty("color","#ffffff"),l.style.setProperty("font-size","11px"),l.style.setProperty("font-weight","700"),l.style.setProperty("box-shadow","0 8px 18px color-mix(in srgb, var(--ui-dock-accent) 32%, rgba(15, 23, 42, 0.18))"),l.style.setProperty("z-index","4"))})}_syncTabIndices(){const e=this._items.findIndex(t=>!t.disabled);e>=0&&(this._rovingIndex<0||this._items[this._rovingIndex]?.disabled)&&(this._rovingIndex=e),this._items.forEach((t,a)=>{if(t.disabled){t.el.tabIndex=-1;return}t.el.tabIndex=a===this._rovingIndex?0:-1})}_measureItems(){if(!this._frameEl)return;const e=this._frameEl.getBoundingClientRect(),t=this._orientation(),a=t==="horizontal"?e.left:e.top;this._items.forEach(n=>{const i=n.el.getBoundingClientRect();n.center=(t==="horizontal"?i.left+i.width/2:i.top+i.height/2)-a})}_updateTargets(){const e=this._idleScale(),t=Math.max(e,this._magnification()),a=Math.max(1,this._distance()),n=this._lift()*this._motion().lift,i=this._labelMode();this._items.forEach((c,o)=>{let l=e;if(c.sticky&&(l=Math.max(l,e+(t-e)*.08)),this._pointerActive&&Number.isFinite(this._pointerCoord)){const r=Math.abs(this._pointerCoord-c.center),u=p(1-r/a,0,1);l=Math.max(l,e+(t-e)*u*u)}o===this._focusedIndex&&(l=Math.max(l,t)),c.disabled&&(l=e);const d=t===e?0:(l-e)/(t-e);c.targetScale=p(l,e,t),c.targetLift=d*n,c.labelVisible=i==="always"||i!=="none"&&(o===this._focusedIndex||d>.18)}),this._updateRuntimeState()}_applyFrame(e=!1){const t=this._smoothing(),a=this._motion(),n=p(a.response+t*.12,.05,.42),i=p(a.damping+(t-_)*.14,.52,.9),c=this._orientation(),o=I(this.getAttribute("label-placement"),c),l=this._mainAxisOffsets(a.spread);let d=!1;this._items.forEach((r,u)=>{e?(r.currentScale=r.targetScale,r.currentLift=r.targetLift,r.scaleVelocity=0,r.liftVelocity=0):(r.scaleVelocity=r.scaleVelocity*i+(r.targetScale-r.currentScale)*n,r.liftVelocity=r.liftVelocity*i+(r.targetLift-r.currentLift)*n,r.currentScale+=r.scaleVelocity,r.currentLift+=r.liftVelocity,Math.abs(r.targetScale-r.currentScale)<.002&&Math.abs(r.scaleVelocity)<.002&&(r.currentScale=r.targetScale,r.scaleVelocity=0),Math.abs(r.targetLift-r.currentLift)<.002&&Math.abs(r.liftVelocity)<.002&&(r.currentLift=r.targetLift,r.liftVelocity=0)),(Math.abs(r.targetScale-r.currentScale)>=.002||Math.abs(r.targetLift-r.currentLift)>=.002||Math.abs(r.scaleVelocity)>=.002||Math.abs(r.liftVelocity)>=.002)&&(d=!0);const b=l[u]??0,w=c==="horizontal"?b:o==="start"?-r.currentLift*.28:r.currentLift*.28,M=c==="horizontal"?-r.currentLift:b;if(r.el.style.setProperty("transform",`translate3d(${w}px, ${M}px, 0) scale(${r.currentScale})`),r.el.style.setProperty("z-index",String(100+Math.round(r.currentScale*100)+u)),r.iconEl){const f=u===this._focusedIndex?"0 0 0 3px color-mix(in srgb, var(--ui-dock-focus-ring) 26%, transparent), ":r.sticky?"0 0 0 2px color-mix(in srgb, var(--ui-dock-accent) 22%, transparent), ":"";r.iconEl.style.setProperty("box-shadow",`${f}var(--ui-dock-item-shadow)`),r.iconEl.style.setProperty("border-color",r.sticky||u===this._focusedIndex?"color-mix(in srgb, var(--ui-dock-accent) 30%, var(--ui-dock-item-border))":"var(--ui-dock-item-border)")}if(r.labelEl){const f=r.labelVisible;r.labelEl.style.setProperty("opacity",f?"1":"0"),r.labelEl.style.setProperty("transform",this._labelTransform(o,f)),r.labelEl.style.setProperty("filter",f?"blur(0px)":"blur(6px)")}}),d&&this._queueAnimation()}_queueAnimation(){if(this._reducedMotion){E(this._raf),this._raf=null,this._applyFrame(!0);return}this._raf==null&&(this._raf=$(()=>{this._raf=null,this._applyFrame(!1)}))}_mainAxisOffsets(e){if(this._items.length<2)return this._items.map(()=>0);const t=this._resolvedItemSizePx(),a=this._resolvedGapPx(),n=t+a,i=[0];for(let o=1;o<this._items.length;o+=1){const l=this._items[o-1],d=this._items[o],r=t*l.currentScale/2,u=t*d.currentScale/2,b=Math.max(0,r+u-n);i[o]=i[o-1]+b*e}const c=i[i.length-1]/2;return i.map(o=>o-c)}_labelTransform(e,t){return e==="top"?t?"translate3d(-50%, 0, 0)":"translate3d(-50%, 6px, 0)":e==="bottom"?t?"translate3d(-50%, 0, 0)":"translate3d(-50%, -6px, 0)":e==="start"?t?"translate3d(0, -50%, 0)":"translate3d(6px, -50%, 0)":t?"translate3d(0, -50%, 0)":"translate3d(-6px, -50%, 0)"}_syncHostStyles(){const e=h(this.getAttribute("gap"));e?this.style.setProperty("--ui-dock-gap",e):this.style.removeProperty("--ui-dock-gap");const t=h(this.getAttribute("padding"));t?this.style.setProperty("--ui-dock-padding",t):this.style.removeProperty("--ui-dock-padding");const a=h(this.getAttribute("item-size"));a?(this.style.setProperty("--ui-dock-item-size",a),this.style.setProperty("--ui-dock-icon-size",`calc(${a} * 0.44)`)):(this.style.removeProperty("--ui-dock-item-size"),this.style.removeProperty("--ui-dock-icon-size"));const n=this.getAttribute("radius");if(n&&!V.has(n)){const i=h(n)||n;this.style.setProperty("--ui-dock-radius",i),this.style.setProperty("--ui-dock-item-radius",`calc(${i} * 0.82)`)}else this.style.removeProperty("--ui-dock-radius"),this.style.removeProperty("--ui-dock-item-radius")}_orientation(){return this.getAttribute("orientation")==="vertical"?"vertical":"horizontal"}_motion(){const e=this.getAttribute("animation");return e==="calm"||e==="snappy"||e==="bouncy"?v[e]:v.smooth}_labelMode(){const e=this.getAttribute("label-mode");return e==="always"||e==="none"?e:"hover"}_magnification(){return Math.max(this._idleScale(),m(this.getAttribute("magnification"),F))}_distance(){return m(this.getAttribute("distance"),C)}_idleScale(){return Math.max(.5,m(this.getAttribute("idle-scale"),R))}_lift(){return m(this.getAttribute("lift"),D)}_smoothing(){return U(this.getAttribute("smoothing"),_)}_sizeToken(){const e=this.getAttribute("size");return e==="xs"||e==="0"?"xs":e==="sm"||e==="1"?"sm":e==="lg"||e==="3"?"lg":e==="xl"||e==="4"?"xl":"md"}_resolvedItemSizePx(){const e=h(this.getAttribute("item-size"));if(e){const t=Number.parseFloat(e);if(Number.isFinite(t))return t}return k[this._sizeToken()]?.itemSize??O}_resolvedGapPx(){const e=h(this.getAttribute("gap"));if(e){const a=Number.parseFloat(e);if(Number.isFinite(a))return a}const t=k[this._sizeToken()];return t?Number.parseFloat(t.gap):Number.parseFloat(g)}_updateRuntimeState(){const e=this._focusedIndex>=0?"keyboard":this._pointerActive?"pointer":"idle";this.setAttribute("data-state",e)}}typeof customElements<"u"&&!customElements.get("ui-dock")&&customElements.define("ui-dock",L);exports.UIDock=L;
347
+ `),this._bindElements(),this._syncHostStyles(),this.refresh()}_bindElements(){const e=this.root.querySelector(".frame");e&&e!==this._frameEl&&(this._frameEl&&(this._frameEl.removeEventListener("pointermove",this._handlePointerMove),this._frameEl.removeEventListener("pointerleave",this._handlePointerLeave)),e.addEventListener("pointermove",this._handlePointerMove),e.addEventListener("pointerleave",this._handlePointerLeave),this._frameEl=e);const t=this.root.querySelector("slot");t&&t!==this._slotEl&&(this._slotEl&&this._slotEl.removeEventListener("slotchange",this._handleSlotChange),t.addEventListener("slotchange",this._handleSlotChange),this._slotEl=t),this.removeEventListener("focusin",this._handleFocusIn),this.removeEventListener("focusout",this._handleFocusOut),this.removeEventListener("keydown",this._handleKeyDown),this.addEventListener("focusin",this._handleFocusIn),this.addEventListener("focusout",this._handleFocusOut),this.addEventListener("keydown",this._handleKeyDown),this._ensureResizeObserver()}_observeLightDom(){this._mutationObserver||typeof MutationObserver>"u"||(this._mutationObserver=new MutationObserver(this._handleLightDomMutation),this._mutationObserver.observe(this,{childList:!0,subtree:!0,characterData:!0}))}_ensureResizeObserver(){this._resizeObserver||typeof ResizeObserver>"u"||(this._resizeObserver=new ResizeObserver(this._handleResize),this._resizeObserver.observe(this))}_bindReducedMotion(){if(typeof window>"u"||typeof window.matchMedia!="function")return;const e=window.matchMedia("(prefers-reduced-motion: reduce)");this._reducedMotion=e.matches,this._mediaQuery=e;try{e.addEventListener("change",this._handleReducedMotionChange)}catch{e.addListener(this._handleReducedMotionChange)}}_handleReducedMotionChange(e){this._reducedMotion=e.matches,this.refresh()}_handleSlotChange(){this.refresh()}_handleLightDomMutation(){this.refresh()}_handleResize(){this._measureItems(),this._updateTargets(),this._queueAnimation()}_handlePointerMove(e){if("pointerType"in e&&e.pointerType==="touch"||!this._frameEl)return;const t=this._frameEl.getBoundingClientRect(),n=this._orientation()==="horizontal"?e.clientX-t.left:e.clientY-t.top;this._pointerActive=!0,this._pointerCoord=n,this._measureItems(),this._updateTargets(),this._queueAnimation()}_handlePointerLeave(){this._pointerActive=!1,this._pointerCoord=Number.NaN,this._updateTargets(),this._queueAnimation()}_handleFocusIn(e){const t=e.target?.closest?.("[data-ui-dock-item]");if(!t)return;const a=this._items.findIndex(n=>n.el===t);a<0||(this._focusedIndex=a,this._rovingIndex=a,this._syncTabIndices(),this._pointerActive=!1,this._pointerCoord=Number.NaN,this._updateTargets(),this._queueAnimation())}_handleFocusOut(e){const t=e.relatedTarget;t&&this.contains(t)||(this._focusedIndex=-1,this._pointerActive||(this._updateTargets(),this._queueAnimation()))}_handleKeyDown(e){if(e.defaultPrevented||!this._items.length)return;const t=this._orientation(),a=t==="horizontal"?["ArrowLeft"]:["ArrowUp"],n=t==="horizontal"?["ArrowRight"]:["ArrowDown"];if(a.includes(e.key)){e.preventDefault();const i=L(this._items,this._rovingIndex,-1);i>=0&&this.focusItem(i);return}if(n.includes(e.key)){e.preventDefault();const i=L(this._items,this._rovingIndex,1);i>=0&&this.focusItem(i);return}if(e.key==="Home"){e.preventDefault();const i=this._items.findIndex(c=>!c.disabled);i>=0&&this.focusItem(i);return}if(e.key==="End"){e.preventDefault();for(let i=this._items.length-1;i>=0;i-=1)if(!this._items[i]?.disabled){this.focusItem(i);break}return}e.key==="Escape"&&this.clearActive()}_collectItems(){const e=new Map(this._items.map(n=>[n.el,n])),t=Array.from(this.children).filter(B).map(n=>{const i=e.get(n),c=n.querySelector("[data-ui-dock-icon]"),o=n.querySelector("[data-ui-dock-label]"),l=n.querySelector("[data-ui-dock-badge]");return{el:n,iconEl:c,labelEl:o,badgeEl:l,center:i?.center??0,currentScale:i?.currentScale??this._idleScale(),targetScale:i?.targetScale??this._idleScale(),currentLift:i?.currentLift??0,targetLift:i?.targetLift??0,labelVisible:i?.labelVisible??!1,disabled:H(n),sticky:j(n),scaleVelocity:i?.scaleVelocity??0,liftVelocity:i?.liftVelocity??0}});this._items=t;const a=this._items.findIndex(n=>n.sticky&&!n.disabled);a>=0?this._rovingIndex=a:(!this._items[this._rovingIndex]||this._items[this._rovingIndex]?.disabled)&&(this._rovingIndex=this._items.findIndex(n=>!n.disabled)),this._rovingIndex<0&&(this._rovingIndex=0),(this._focusedIndex>=this._items.length||this._items[this._focusedIndex]?.disabled)&&(this._focusedIndex=-1),this._syncItemChrome()}_syncItemChrome(){const e=S(this.getAttribute("label-placement"),this._orientation()),t=this._labelMode(),a=this._orientation();this._items.forEach(n=>{const{el:i,iconEl:c,labelEl:o,badgeEl:l,sticky:h}=n;i.setAttribute("data-ui-dock-item",""),i.style.setProperty("position","relative"),i.style.setProperty("display","inline-flex"),i.style.setProperty("align-items","center"),i.style.setProperty("justify-content","center"),i.style.setProperty("inline-size","var(--ui-dock-item-size)"),i.style.setProperty("block-size","var(--ui-dock-item-size)"),i.style.setProperty("min-inline-size","var(--ui-dock-item-size)"),i.style.setProperty("min-block-size","var(--ui-dock-item-size)"),i.style.setProperty("flex","0 0 var(--ui-dock-item-size)"),i.style.setProperty("box-sizing","border-box"),i.style.setProperty("background","transparent"),i.style.setProperty("border","none"),i.style.setProperty("padding","0"),i.style.setProperty("margin","0"),i.style.setProperty("color","inherit"),i.style.setProperty("text-decoration","none"),i.style.setProperty("outline","none"),i.style.setProperty("cursor",n.disabled?"not-allowed":"pointer"),i.style.setProperty("transform-origin",a==="horizontal"?"center bottom":"center center"),i.style.setProperty("touch-action","manipulation"),i.hasAttribute("tabindex")||(i.tabIndex=-1);const r=i.getAttribute("aria-label"),d=this._itemNames.get(i),u=d&&d.composed===r?d.base:r||o?.textContent?.trim()||i.getAttribute("data-label")||i.getAttribute("title")||"",m=l?.textContent?.trim()??"",f=u&&m&&!u.includes(m)?`${u}, ${m}`:u;f&&(f!==r&&i.setAttribute("aria-label",f),this._itemNames.set(i,{base:u,composed:f})),h?i.setAttribute("data-dock-current","true"):i.removeAttribute("data-dock-current"),c&&(c.style.setProperty("display","inline-flex"),c.style.setProperty("align-items","center"),c.style.setProperty("justify-content","center"),c.style.setProperty("inline-size","100%"),c.style.setProperty("block-size","100%"),c.style.setProperty("border-radius","var(--ui-dock-item-radius)"),c.style.setProperty("background","var(--ui-dock-item-bg)"),c.style.setProperty("border","1px solid var(--ui-dock-item-border)"),c.style.setProperty("box-shadow","var(--ui-dock-item-shadow)"),c.style.setProperty("backdrop-filter","var(--ui-dock-item-backdrop)"),c.style.setProperty("font-size","var(--ui-dock-icon-size)"),c.style.setProperty("color","inherit"),c.style.setProperty("overflow","hidden"),c.style.setProperty("box-sizing","border-box")),o&&(o.setAttribute("aria-hidden","true"),o.style.setProperty("position","absolute"),o.style.setProperty("pointer-events","none"),o.style.setProperty("white-space","nowrap"),o.style.setProperty("padding","var(--ui-dock-label-padding)"),o.style.setProperty("border-radius","var(--ui-dock-label-radius)"),o.style.setProperty("background","var(--ui-dock-label-bg)"),o.style.setProperty("color","var(--ui-dock-label-color)"),o.style.setProperty("border","1px solid var(--ui-dock-label-border)"),o.style.setProperty("box-shadow","var(--ui-dock-label-shadow)"),o.style.setProperty("backdrop-filter","var(--ui-dock-label-backdrop)"),o.style.setProperty("font-size","var(--ui-dock-label-font-size)"),o.style.setProperty("font-weight","var(--ui-dock-label-font-weight)"),o.style.setProperty("line-height","1.2"),o.style.setProperty("letter-spacing","0.01em"),o.style.setProperty("min-inline-size","max-content"),o.style.setProperty("z-index","3"),o.style.setProperty("display",t==="none"?"none":"inline-flex"),o.style.removeProperty("top"),o.style.removeProperty("bottom"),o.style.removeProperty("left"),o.style.removeProperty("right"),e==="top"?(o.style.setProperty("left","50%"),o.style.setProperty("bottom","calc(100% + var(--ui-dock-label-offset))")):e==="bottom"?(o.style.setProperty("left","50%"),o.style.setProperty("top","calc(100% + var(--ui-dock-label-offset))")):e==="start"?(o.style.setProperty("right","calc(100% + var(--ui-dock-label-offset))"),o.style.setProperty("top","50%")):(o.style.setProperty("left","calc(100% + var(--ui-dock-label-offset))"),o.style.setProperty("top","50%"))),l&&(l.setAttribute("aria-hidden","true"),l.style.setProperty("position","absolute"),l.style.setProperty("inset-inline-end","-2px"),l.style.setProperty("inset-block-start","-2px"),l.style.setProperty("display","inline-flex"),l.style.setProperty("align-items","center"),l.style.setProperty("justify-content","center"),l.style.setProperty("min-inline-size","18px"),l.style.setProperty("min-block-size","18px"),l.style.setProperty("padding","0 6px"),l.style.setProperty("border-radius","999px"),l.style.setProperty("background","var(--ui-dock-accent)"),l.style.setProperty("color","#ffffff"),l.style.setProperty("font-size","11px"),l.style.setProperty("font-weight","700"),l.style.setProperty("box-shadow","0 8px 18px color-mix(in srgb, var(--ui-dock-accent) 32%, rgba(15, 23, 42, 0.18))"),l.style.setProperty("z-index","4"))})}_syncTabIndices(){const e=this._items.findIndex(t=>!t.disabled);e>=0&&(this._rovingIndex<0||this._items[this._rovingIndex]?.disabled)&&(this._rovingIndex=e),this._items.forEach((t,a)=>{if(t.disabled){t.el.tabIndex=-1;return}t.el.tabIndex=a===this._rovingIndex?0:-1})}_measureItems(){if(!this._frameEl)return;const e=this._frameEl.getBoundingClientRect(),t=this._orientation(),a=t==="horizontal"?e.left:e.top;this._items.forEach(n=>{const i=n.el.getBoundingClientRect();n.center=(t==="horizontal"?i.left+i.width/2:i.top+i.height/2)-a})}_updateTargets(){const e=this._idleScale(),t=Math.max(e,this._magnification()),a=Math.max(1,this._distance()),n=this._lift()*this._motion().lift,i=this._labelMode();this._items.forEach((c,o)=>{let l=e;if(c.sticky&&(l=Math.max(l,e+(t-e)*.08)),this._pointerActive&&Number.isFinite(this._pointerCoord)){const r=Math.abs(this._pointerCoord-c.center),d=g(1-r/a,0,1);l=Math.max(l,e+(t-e)*d*d)}o===this._focusedIndex&&(l=Math.max(l,t)),c.disabled&&(l=e);const h=t===e?0:(l-e)/(t-e);c.targetScale=g(l,e,t),c.targetLift=h*n,c.labelVisible=i==="always"||i!=="none"&&(o===this._focusedIndex||h>.18)}),this._updateRuntimeState()}_applyFrame(e=!1){const t=this._smoothing(),a=this._motion(),n=g(a.response+t*.12,.05,.42),i=g(a.damping+(t-k)*.14,.52,.9),c=this._orientation(),o=S(this.getAttribute("label-placement"),c),l=this._mainAxisOffsets(a.spread);let h=!1;this._items.forEach((r,d)=>{e?(r.currentScale=r.targetScale,r.currentLift=r.targetLift,r.scaleVelocity=0,r.liftVelocity=0):(r.scaleVelocity=r.scaleVelocity*i+(r.targetScale-r.currentScale)*n,r.liftVelocity=r.liftVelocity*i+(r.targetLift-r.currentLift)*n,r.currentScale+=r.scaleVelocity,r.currentLift+=r.liftVelocity,Math.abs(r.targetScale-r.currentScale)<.002&&Math.abs(r.scaleVelocity)<.002&&(r.currentScale=r.targetScale,r.scaleVelocity=0),Math.abs(r.targetLift-r.currentLift)<.002&&Math.abs(r.liftVelocity)<.002&&(r.currentLift=r.targetLift,r.liftVelocity=0)),(Math.abs(r.targetScale-r.currentScale)>=.002||Math.abs(r.targetLift-r.currentLift)>=.002||Math.abs(r.scaleVelocity)>=.002||Math.abs(r.liftVelocity)>=.002)&&(h=!0);const u=l[d]??0,m=c==="horizontal"?u:o==="start"?-r.currentLift*.28:r.currentLift*.28,f=c==="horizontal"?-r.currentLift:u;if(r.el.style.setProperty("transform",`translate3d(${m}px, ${f}px, 0) scale(${r.currentScale})`),r.el.style.setProperty("z-index",String(100+Math.round(r.currentScale*100)+d)),r.iconEl){const p=d===this._focusedIndex?"0 0 0 3px color-mix(in srgb, var(--ui-dock-focus-ring) 26%, transparent), ":r.sticky?"0 0 0 2px color-mix(in srgb, var(--ui-dock-accent) 22%, transparent), ":"";r.iconEl.style.setProperty("box-shadow",`${p}var(--ui-dock-item-shadow)`),r.iconEl.style.setProperty("border-color",r.sticky||d===this._focusedIndex?"color-mix(in srgb, var(--ui-dock-accent) 30%, var(--ui-dock-item-border))":"var(--ui-dock-item-border)")}if(r.labelEl){const p=r.labelVisible;r.labelEl.style.setProperty("opacity",p?"1":"0"),r.labelEl.style.setProperty("visibility",p?"visible":"hidden"),r.labelEl.style.setProperty("transform",this._labelTransform(o,p)),r.labelEl.style.setProperty("filter",p?"blur(0px)":"blur(6px)")}}),h&&this._queueAnimation()}_queueAnimation(){if(this._reducedMotion){A(this._raf),this._raf=null,this._applyFrame(!0);return}this._raf==null&&(this._raf=$(()=>{this._raf=null,this._applyFrame(!1)}))}_mainAxisOffsets(e){if(this._items.length<2)return this._items.map(()=>0);const t=this._resolvedItemSizePx(),a=this._resolvedGapPx(),n=t+a,i=[0];for(let o=1;o<this._items.length;o+=1){const l=this._items[o-1],h=this._items[o],r=t*l.currentScale/2,d=t*h.currentScale/2,u=Math.max(0,r+d-n);i[o]=i[o-1]+u*e}const c=i[i.length-1]/2;return i.map(o=>o-c)}_labelTransform(e,t){return e==="top"?t?"translate3d(-50%, 0, 0)":"translate3d(-50%, 6px, 0)":e==="bottom"?t?"translate3d(-50%, 0, 0)":"translate3d(-50%, -6px, 0)":e==="start"?t?"translate3d(0, -50%, 0)":"translate3d(6px, -50%, 0)":t?"translate3d(0, -50%, 0)":"translate3d(-6px, -50%, 0)"}_syncHostStyles(){const e=b(this.getAttribute("gap"));e?this.style.setProperty("--ui-dock-gap",e):this.style.removeProperty("--ui-dock-gap");const t=b(this.getAttribute("padding"));t?this.style.setProperty("--ui-dock-padding",t):this.style.removeProperty("--ui-dock-padding");const a=b(this.getAttribute("item-size"));a?(this.style.setProperty("--ui-dock-item-size",a),this.style.setProperty("--ui-dock-icon-size",`calc(${a} * 0.44)`)):(this.style.removeProperty("--ui-dock-item-size"),this.style.removeProperty("--ui-dock-icon-size"));const n=this.getAttribute("radius");if(n&&!V.has(n)){const i=b(n)||n;this.style.setProperty("--ui-dock-radius",i),this.style.setProperty("--ui-dock-item-radius",`calc(${i} * 0.82)`)}else this.style.removeProperty("--ui-dock-radius"),this.style.removeProperty("--ui-dock-item-radius")}_orientation(){return this.getAttribute("orientation")==="vertical"?"vertical":"horizontal"}_motion(){const e=this.getAttribute("animation");return e==="calm"||e==="snappy"||e==="bouncy"?P[e]:P.smooth}_labelMode(){const e=this.getAttribute("label-mode");return e==="always"||e==="none"?e:"hover"}_magnification(){return Math.max(this._idleScale(),y(this.getAttribute("magnification"),F))}_distance(){return y(this.getAttribute("distance"),C)}_idleScale(){return Math.max(.5,y(this.getAttribute("idle-scale"),R))}_lift(){return y(this.getAttribute("lift"),D)}_smoothing(){return U(this.getAttribute("smoothing"),k)}_sizeToken(){const e=this.getAttribute("size");return e==="xs"||e==="0"?"xs":e==="sm"||e==="1"?"sm":e==="lg"||e==="3"?"lg":e==="xl"||e==="4"?"xl":"md"}_resolvedItemSizePx(){const e=b(this.getAttribute("item-size"));if(e){const t=Number.parseFloat(e);if(Number.isFinite(t))return t}return z[this._sizeToken()]?.itemSize??O}_resolvedGapPx(){const e=b(this.getAttribute("gap"));if(e){const a=Number.parseFloat(e);if(Number.isFinite(a))return a}const t=z[this._sizeToken()];return t?Number.parseFloat(t.gap):Number.parseFloat(_)}_updateRuntimeState(){const e=this._focusedIndex>=0?"keyboard":this._pointerActive?"pointer":"idle";this.setAttribute("data-state",e)}}typeof customElements<"u"&&!customElements.get("ui-dock")&&customElements.define("ui-dock",M);exports.UIDock=M;
package/dist/dock.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { E as M } from "./ElementBase-YlTLMsGk.mjs";
2
- const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x = "56px", D = 56, k = {
2
+ const T = 1.92, F = 148, C = 1, R = 20, k = 0.18, _ = "12px", x = "12px 14px", v = "56px", D = 56, z = {
3
3
  xs: {
4
4
  gap: "8px",
5
5
  padding: "8px 10px",
@@ -15,8 +15,8 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
15
15
  itemRadius: 16
16
16
  },
17
17
  md: {
18
- gap: g,
19
- padding: y,
18
+ gap: _,
19
+ padding: x,
20
20
  itemSize: 56,
21
21
  iconSize: 24,
22
22
  itemRadius: 18
@@ -35,7 +35,7 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
35
35
  iconSize: 32,
36
36
  itemRadius: 24
37
37
  }
38
- }, v = {
38
+ }, P = {
39
39
  calm: {
40
40
  response: 0.11,
41
41
  damping: 0.82,
@@ -60,7 +60,7 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
60
60
  spread: 1,
61
61
  lift: 1.12
62
62
  }
63
- }, z = /* @__PURE__ */ new Set([
63
+ }, E = /* @__PURE__ */ new Set([
64
64
  "gap",
65
65
  "padding",
66
66
  "radius",
@@ -69,7 +69,7 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
69
69
  "tone",
70
70
  "size",
71
71
  "elevation"
72
- ]), O = /* @__PURE__ */ new Set([
72
+ ]), N = /* @__PURE__ */ new Set([
73
73
  "orientation",
74
74
  "magnification",
75
75
  "distance",
@@ -80,12 +80,12 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
80
80
  "gap",
81
81
  "padding",
82
82
  "item-size"
83
- ]), P = /* @__PURE__ */ new Set(["label-mode", "label-placement"]), N = /* @__PURE__ */ new Set(["none", "sm", "md", "lg", "full"]), V = `
83
+ ]), I = /* @__PURE__ */ new Set(["label-mode", "label-placement"]), O = /* @__PURE__ */ new Set(["none", "sm", "md", "lg", "full"]), V = `
84
84
  :host {
85
- --ui-dock-gap: ${g};
86
- --ui-dock-padding: ${y};
85
+ --ui-dock-gap: ${_};
86
+ --ui-dock-padding: ${x};
87
87
  --ui-dock-radius: 24px;
88
- --ui-dock-item-size: ${x};
88
+ --ui-dock-item-size: ${v};
89
89
  --ui-dock-icon-size: 24px;
90
90
  --ui-dock-item-radius: 18px;
91
91
  --ui-dock-accent: var(--ui-color-primary, var(--ui-primary, #2563eb));
@@ -146,9 +146,9 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
146
146
 
147
147
  :host([size="md"]),
148
148
  :host([size="2"]) {
149
- --ui-dock-gap: ${g};
150
- --ui-dock-padding: ${y};
151
- --ui-dock-item-size: ${x};
149
+ --ui-dock-gap: ${_};
150
+ --ui-dock-padding: ${x};
151
+ --ui-dock-item-size: ${v};
152
152
  --ui-dock-icon-size: 24px;
153
153
  --ui-dock-item-radius: 18px;
154
154
  --ui-dock-label-padding: 6px 10px;
@@ -198,7 +198,7 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
198
198
  }
199
199
 
200
200
  :host([tone="neutral"]) {
201
- --ui-dock-accent: #64748b;
201
+ --ui-dock-accent: #526175;
202
202
  }
203
203
 
204
204
  :host([tone="info"]) {
@@ -206,11 +206,11 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
206
206
  }
207
207
 
208
208
  :host([tone="success"]) {
209
- --ui-dock-accent: var(--ui-color-success, #16a34a);
209
+ --ui-dock-accent: var(--ui-color-success, #15803d);
210
210
  }
211
211
 
212
212
  :host([tone="warning"]) {
213
- --ui-dock-accent: var(--ui-color-warning, #d97706);
213
+ --ui-dock-accent: var(--ui-color-warning, #b45309);
214
214
  }
215
215
 
216
216
  :host([tone="danger"]) {
@@ -418,21 +418,21 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
418
418
  }
419
419
  }
420
420
  `;
421
- function p(s, e, t) {
421
+ function g(s, e, t) {
422
422
  return Math.min(t, Math.max(e, s));
423
423
  }
424
- function S(s, e) {
424
+ function w(s, e) {
425
425
  if (s == null || s.trim() === "") return e;
426
426
  const t = Number(s);
427
427
  return Number.isFinite(t) ? t : e;
428
428
  }
429
- function m(s, e) {
430
- return Math.max(0, S(s, e));
429
+ function y(s, e) {
430
+ return Math.max(0, w(s, e));
431
431
  }
432
432
  function q(s, e) {
433
- return p(S(s, e), 0.01, 1);
433
+ return g(w(s, e), 0.01, 1);
434
434
  }
435
- function h(s) {
435
+ function b(s) {
436
436
  if (s == null || s.trim() === "") return null;
437
437
  const e = s.trim().split(/\s+/).filter(Boolean);
438
438
  return e.length ? e.map((t) => /^-?\d+(\.\d+)?$/.test(t) ? `${t}px` : t).join(" ") : null;
@@ -440,7 +440,7 @@ function h(s) {
440
440
  function U(s) {
441
441
  return typeof requestAnimationFrame == "function" ? requestAnimationFrame(s) : window.setTimeout(() => s(Date.now()), 16);
442
442
  }
443
- function E(s) {
443
+ function A(s) {
444
444
  if (s != null) {
445
445
  if (typeof cancelAnimationFrame == "function") {
446
446
  cancelAnimationFrame(s);
@@ -458,10 +458,10 @@ function B(s) {
458
458
  function H(s) {
459
459
  return s.hasAttribute("data-active") || s.getAttribute("aria-current") === "page" || s.getAttribute("aria-current") === "true";
460
460
  }
461
- function I(s, e) {
461
+ function S(s, e) {
462
462
  return s === "top" || s === "bottom" || s === "start" || s === "end" ? s : e === "horizontal" ? "top" : "end";
463
463
  }
464
- function A(s, e, t) {
464
+ function L(s, e, t) {
465
465
  if (!s.length) return -1;
466
466
  let a = e;
467
467
  for (let n = 0; n < s.length; n += 1)
@@ -470,7 +470,7 @@ function A(s, e, t) {
470
470
  }
471
471
  class G extends M {
472
472
  constructor() {
473
- super(), this._frameEl = null, this._slotEl = null, this._items = [], this._resizeObserver = null, this._mutationObserver = null, this._mediaQuery = null, this._raf = null, this._pointerActive = !1, this._pointerCoord = Number.NaN, this._focusedIndex = -1, this._rovingIndex = 0, this._reducedMotion = !1, this._handleSlotChange = this._handleSlotChange.bind(this), this._handlePointerMove = this._handlePointerMove.bind(this), this._handlePointerLeave = this._handlePointerLeave.bind(this), this._handleFocusIn = this._handleFocusIn.bind(this), this._handleFocusOut = this._handleFocusOut.bind(this), this._handleKeyDown = this._handleKeyDown.bind(this), this._handleResize = this._handleResize.bind(this), this._handleLightDomMutation = this._handleLightDomMutation.bind(this), this._handleReducedMotionChange = this._handleReducedMotionChange.bind(this);
473
+ super(), this._frameEl = null, this._slotEl = null, this._items = [], this._itemNames = /* @__PURE__ */ new WeakMap(), this._resizeObserver = null, this._mutationObserver = null, this._mediaQuery = null, this._raf = null, this._pointerActive = !1, this._pointerCoord = Number.NaN, this._focusedIndex = -1, this._rovingIndex = 0, this._reducedMotion = !1, this._handleSlotChange = this._handleSlotChange.bind(this), this._handlePointerMove = this._handlePointerMove.bind(this), this._handlePointerLeave = this._handlePointerLeave.bind(this), this._handleFocusIn = this._handleFocusIn.bind(this), this._handleFocusOut = this._handleFocusOut.bind(this), this._handleKeyDown = this._handleKeyDown.bind(this), this._handleResize = this._handleResize.bind(this), this._handleLightDomMutation = this._handleLightDomMutation.bind(this), this._handleReducedMotionChange = this._handleReducedMotionChange.bind(this);
474
474
  }
475
475
  static get observedAttributes() {
476
476
  return [
@@ -505,7 +505,7 @@ class G extends M {
505
505
  }
506
506
  this._mediaQuery = null;
507
507
  }
508
- E(this._raf), this._raf = null, super.disconnectedCallback();
508
+ A(this._raf), this._raf = null, super.disconnectedCallback();
509
509
  }
510
510
  refresh() {
511
511
  this._collectItems(), this._syncHostStyles(), this._measureItems(), this._syncTabIndices(), this._updateTargets(), this._queueAnimation();
@@ -518,7 +518,7 @@ class G extends M {
518
518
  this._pointerActive = !1, this._pointerCoord = Number.NaN, this._focusedIndex = -1, this._updateTargets(), this._queueAnimation();
519
519
  }
520
520
  attributeChangedCallback(e, t, a) {
521
- !e || t === a || !this.isConnected || (z.has(e) && this._syncHostStyles(), P.has(e) && this._syncItemChrome(), (O.has(e) || P.has(e) || z.has(e)) && this.refresh());
521
+ !e || t === a || !this.isConnected || (E.has(e) && this._syncHostStyles(), I.has(e) && this._syncItemChrome(), (N.has(e) || I.has(e) || E.has(e)) && this.refresh());
522
522
  }
523
523
  shouldRenderOnAttributeChange() {
524
524
  return !1;
@@ -596,13 +596,13 @@ class G extends M {
596
596
  const t = this._orientation(), a = t === "horizontal" ? ["ArrowLeft"] : ["ArrowUp"], n = t === "horizontal" ? ["ArrowRight"] : ["ArrowDown"];
597
597
  if (a.includes(e.key)) {
598
598
  e.preventDefault();
599
- const i = A(this._items, this._rovingIndex, -1);
599
+ const i = L(this._items, this._rovingIndex, -1);
600
600
  i >= 0 && this.focusItem(i);
601
601
  return;
602
602
  }
603
603
  if (n.includes(e.key)) {
604
604
  e.preventDefault();
605
- const i = A(this._items, this._rovingIndex, 1);
605
+ const i = L(this._items, this._rovingIndex, 1);
606
606
  i >= 0 && this.focusItem(i);
607
607
  return;
608
608
  }
@@ -648,14 +648,12 @@ class G extends M {
648
648
  a >= 0 ? this._rovingIndex = a : (!this._items[this._rovingIndex] || this._items[this._rovingIndex]?.disabled) && (this._rovingIndex = this._items.findIndex((n) => !n.disabled)), this._rovingIndex < 0 && (this._rovingIndex = 0), (this._focusedIndex >= this._items.length || this._items[this._focusedIndex]?.disabled) && (this._focusedIndex = -1), this._syncItemChrome();
649
649
  }
650
650
  _syncItemChrome() {
651
- const e = I(this.getAttribute("label-placement"), this._orientation()), t = this._labelMode(), a = this._orientation();
651
+ const e = S(this.getAttribute("label-placement"), this._orientation()), t = this._labelMode(), a = this._orientation();
652
652
  this._items.forEach((n) => {
653
- const { el: i, iconEl: c, labelEl: o, badgeEl: l, sticky: d } = n;
654
- if (i.setAttribute("data-ui-dock-item", ""), i.style.setProperty("position", "relative"), i.style.setProperty("display", "inline-flex"), i.style.setProperty("align-items", "center"), i.style.setProperty("justify-content", "center"), i.style.setProperty("inline-size", "var(--ui-dock-item-size)"), i.style.setProperty("block-size", "var(--ui-dock-item-size)"), i.style.setProperty("min-inline-size", "var(--ui-dock-item-size)"), i.style.setProperty("min-block-size", "var(--ui-dock-item-size)"), i.style.setProperty("flex", "0 0 var(--ui-dock-item-size)"), i.style.setProperty("box-sizing", "border-box"), i.style.setProperty("background", "transparent"), i.style.setProperty("border", "none"), i.style.setProperty("padding", "0"), i.style.setProperty("margin", "0"), i.style.setProperty("color", "inherit"), i.style.setProperty("text-decoration", "none"), i.style.setProperty("outline", "none"), i.style.setProperty("cursor", n.disabled ? "not-allowed" : "pointer"), i.style.setProperty("transform-origin", a === "horizontal" ? "center bottom" : "center center"), i.style.setProperty("touch-action", "manipulation"), i.hasAttribute("tabindex") || (i.tabIndex = -1), !i.hasAttribute("aria-label")) {
655
- const r = o?.textContent?.trim() || i.getAttribute("data-label") || i.getAttribute("title") || void 0;
656
- r && i.setAttribute("aria-label", r);
657
- }
658
- d ? i.setAttribute("data-dock-current", "true") : i.removeAttribute("data-dock-current"), c && (c.style.setProperty("display", "inline-flex"), c.style.setProperty("align-items", "center"), c.style.setProperty("justify-content", "center"), c.style.setProperty("inline-size", "100%"), c.style.setProperty("block-size", "100%"), c.style.setProperty("border-radius", "var(--ui-dock-item-radius)"), c.style.setProperty("background", "var(--ui-dock-item-bg)"), c.style.setProperty("border", "1px solid var(--ui-dock-item-border)"), c.style.setProperty("box-shadow", "var(--ui-dock-item-shadow)"), c.style.setProperty("backdrop-filter", "var(--ui-dock-item-backdrop)"), c.style.setProperty("font-size", "var(--ui-dock-icon-size)"), c.style.setProperty("color", "inherit"), c.style.setProperty("overflow", "hidden"), c.style.setProperty("box-sizing", "border-box")), o && (o.setAttribute("aria-hidden", "true"), o.style.setProperty("position", "absolute"), o.style.setProperty("pointer-events", "none"), o.style.setProperty("white-space", "nowrap"), o.style.setProperty("padding", "var(--ui-dock-label-padding)"), o.style.setProperty("border-radius", "var(--ui-dock-label-radius)"), o.style.setProperty("background", "var(--ui-dock-label-bg)"), o.style.setProperty("color", "var(--ui-dock-label-color)"), o.style.setProperty("border", "1px solid var(--ui-dock-label-border)"), o.style.setProperty("box-shadow", "var(--ui-dock-label-shadow)"), o.style.setProperty("backdrop-filter", "var(--ui-dock-label-backdrop)"), o.style.setProperty("font-size", "var(--ui-dock-label-font-size)"), o.style.setProperty("font-weight", "var(--ui-dock-label-font-weight)"), o.style.setProperty("line-height", "1.2"), o.style.setProperty("letter-spacing", "0.01em"), o.style.setProperty("min-inline-size", "max-content"), o.style.setProperty("z-index", "3"), o.style.setProperty("display", t === "none" ? "none" : "inline-flex"), o.style.removeProperty("top"), o.style.removeProperty("bottom"), o.style.removeProperty("left"), o.style.removeProperty("right"), e === "top" ? (o.style.setProperty("left", "50%"), o.style.setProperty("bottom", "calc(100% + var(--ui-dock-label-offset))")) : e === "bottom" ? (o.style.setProperty("left", "50%"), o.style.setProperty("top", "calc(100% + var(--ui-dock-label-offset))")) : e === "start" ? (o.style.setProperty("right", "calc(100% + var(--ui-dock-label-offset))"), o.style.setProperty("top", "50%")) : (o.style.setProperty("left", "calc(100% + var(--ui-dock-label-offset))"), o.style.setProperty("top", "50%"))), l && (l.setAttribute("aria-hidden", "true"), l.style.setProperty("position", "absolute"), l.style.setProperty("inset-inline-end", "-2px"), l.style.setProperty("inset-block-start", "-2px"), l.style.setProperty("display", "inline-flex"), l.style.setProperty("align-items", "center"), l.style.setProperty("justify-content", "center"), l.style.setProperty("min-inline-size", "18px"), l.style.setProperty("min-block-size", "18px"), l.style.setProperty("padding", "0 6px"), l.style.setProperty("border-radius", "999px"), l.style.setProperty("background", "var(--ui-dock-accent)"), l.style.setProperty("color", "#ffffff"), l.style.setProperty("font-size", "11px"), l.style.setProperty("font-weight", "700"), l.style.setProperty("box-shadow", "0 8px 18px color-mix(in srgb, var(--ui-dock-accent) 32%, rgba(15, 23, 42, 0.18))"), l.style.setProperty("z-index", "4"));
653
+ const { el: i, iconEl: c, labelEl: o, badgeEl: l, sticky: h } = n;
654
+ i.setAttribute("data-ui-dock-item", ""), i.style.setProperty("position", "relative"), i.style.setProperty("display", "inline-flex"), i.style.setProperty("align-items", "center"), i.style.setProperty("justify-content", "center"), i.style.setProperty("inline-size", "var(--ui-dock-item-size)"), i.style.setProperty("block-size", "var(--ui-dock-item-size)"), i.style.setProperty("min-inline-size", "var(--ui-dock-item-size)"), i.style.setProperty("min-block-size", "var(--ui-dock-item-size)"), i.style.setProperty("flex", "0 0 var(--ui-dock-item-size)"), i.style.setProperty("box-sizing", "border-box"), i.style.setProperty("background", "transparent"), i.style.setProperty("border", "none"), i.style.setProperty("padding", "0"), i.style.setProperty("margin", "0"), i.style.setProperty("color", "inherit"), i.style.setProperty("text-decoration", "none"), i.style.setProperty("outline", "none"), i.style.setProperty("cursor", n.disabled ? "not-allowed" : "pointer"), i.style.setProperty("transform-origin", a === "horizontal" ? "center bottom" : "center center"), i.style.setProperty("touch-action", "manipulation"), i.hasAttribute("tabindex") || (i.tabIndex = -1);
655
+ const r = i.getAttribute("aria-label"), d = this._itemNames.get(i), u = d && d.composed === r ? d.base : r || o?.textContent?.trim() || i.getAttribute("data-label") || i.getAttribute("title") || "", m = l?.textContent?.trim() ?? "", f = u && m && !u.includes(m) ? `${u}, ${m}` : u;
656
+ f && (f !== r && i.setAttribute("aria-label", f), this._itemNames.set(i, { base: u, composed: f })), h ? i.setAttribute("data-dock-current", "true") : i.removeAttribute("data-dock-current"), c && (c.style.setProperty("display", "inline-flex"), c.style.setProperty("align-items", "center"), c.style.setProperty("justify-content", "center"), c.style.setProperty("inline-size", "100%"), c.style.setProperty("block-size", "100%"), c.style.setProperty("border-radius", "var(--ui-dock-item-radius)"), c.style.setProperty("background", "var(--ui-dock-item-bg)"), c.style.setProperty("border", "1px solid var(--ui-dock-item-border)"), c.style.setProperty("box-shadow", "var(--ui-dock-item-shadow)"), c.style.setProperty("backdrop-filter", "var(--ui-dock-item-backdrop)"), c.style.setProperty("font-size", "var(--ui-dock-icon-size)"), c.style.setProperty("color", "inherit"), c.style.setProperty("overflow", "hidden"), c.style.setProperty("box-sizing", "border-box")), o && (o.setAttribute("aria-hidden", "true"), o.style.setProperty("position", "absolute"), o.style.setProperty("pointer-events", "none"), o.style.setProperty("white-space", "nowrap"), o.style.setProperty("padding", "var(--ui-dock-label-padding)"), o.style.setProperty("border-radius", "var(--ui-dock-label-radius)"), o.style.setProperty("background", "var(--ui-dock-label-bg)"), o.style.setProperty("color", "var(--ui-dock-label-color)"), o.style.setProperty("border", "1px solid var(--ui-dock-label-border)"), o.style.setProperty("box-shadow", "var(--ui-dock-label-shadow)"), o.style.setProperty("backdrop-filter", "var(--ui-dock-label-backdrop)"), o.style.setProperty("font-size", "var(--ui-dock-label-font-size)"), o.style.setProperty("font-weight", "var(--ui-dock-label-font-weight)"), o.style.setProperty("line-height", "1.2"), o.style.setProperty("letter-spacing", "0.01em"), o.style.setProperty("min-inline-size", "max-content"), o.style.setProperty("z-index", "3"), o.style.setProperty("display", t === "none" ? "none" : "inline-flex"), o.style.removeProperty("top"), o.style.removeProperty("bottom"), o.style.removeProperty("left"), o.style.removeProperty("right"), e === "top" ? (o.style.setProperty("left", "50%"), o.style.setProperty("bottom", "calc(100% + var(--ui-dock-label-offset))")) : e === "bottom" ? (o.style.setProperty("left", "50%"), o.style.setProperty("top", "calc(100% + var(--ui-dock-label-offset))")) : e === "start" ? (o.style.setProperty("right", "calc(100% + var(--ui-dock-label-offset))"), o.style.setProperty("top", "50%")) : (o.style.setProperty("left", "calc(100% + var(--ui-dock-label-offset))"), o.style.setProperty("top", "50%"))), l && (l.setAttribute("aria-hidden", "true"), l.style.setProperty("position", "absolute"), l.style.setProperty("inset-inline-end", "-2px"), l.style.setProperty("inset-block-start", "-2px"), l.style.setProperty("display", "inline-flex"), l.style.setProperty("align-items", "center"), l.style.setProperty("justify-content", "center"), l.style.setProperty("min-inline-size", "18px"), l.style.setProperty("min-block-size", "18px"), l.style.setProperty("padding", "0 6px"), l.style.setProperty("border-radius", "999px"), l.style.setProperty("background", "var(--ui-dock-accent)"), l.style.setProperty("color", "#ffffff"), l.style.setProperty("font-size", "11px"), l.style.setProperty("font-weight", "700"), l.style.setProperty("box-shadow", "0 8px 18px color-mix(in srgb, var(--ui-dock-accent) 32%, rgba(15, 23, 42, 0.18))"), l.style.setProperty("z-index", "4"));
659
657
  });
660
658
  }
661
659
  _syncTabIndices() {
@@ -681,39 +679,39 @@ class G extends M {
681
679
  this._items.forEach((c, o) => {
682
680
  let l = e;
683
681
  if (c.sticky && (l = Math.max(l, e + (t - e) * 0.08)), this._pointerActive && Number.isFinite(this._pointerCoord)) {
684
- const r = Math.abs(this._pointerCoord - c.center), u = p(1 - r / a, 0, 1);
685
- l = Math.max(l, e + (t - e) * u * u);
682
+ const r = Math.abs(this._pointerCoord - c.center), d = g(1 - r / a, 0, 1);
683
+ l = Math.max(l, e + (t - e) * d * d);
686
684
  }
687
685
  o === this._focusedIndex && (l = Math.max(l, t)), c.disabled && (l = e);
688
- const d = t === e ? 0 : (l - e) / (t - e);
689
- c.targetScale = p(l, e, t), c.targetLift = d * n, c.labelVisible = i === "always" || i !== "none" && (o === this._focusedIndex || d > 0.18);
686
+ const h = t === e ? 0 : (l - e) / (t - e);
687
+ c.targetScale = g(l, e, t), c.targetLift = h * n, c.labelVisible = i === "always" || i !== "none" && (o === this._focusedIndex || h > 0.18);
690
688
  }), this._updateRuntimeState();
691
689
  }
692
690
  _applyFrame(e = !1) {
693
- const t = this._smoothing(), a = this._motion(), n = p(a.response + t * 0.12, 0.05, 0.42), i = p(a.damping + (t - _) * 0.14, 0.52, 0.9), c = this._orientation(), o = I(this.getAttribute("label-placement"), c), l = this._mainAxisOffsets(a.spread);
694
- let d = !1;
695
- this._items.forEach((r, u) => {
696
- e ? (r.currentScale = r.targetScale, r.currentLift = r.targetLift, r.scaleVelocity = 0, r.liftVelocity = 0) : (r.scaleVelocity = r.scaleVelocity * i + (r.targetScale - r.currentScale) * n, r.liftVelocity = r.liftVelocity * i + (r.targetLift - r.currentLift) * n, r.currentScale += r.scaleVelocity, r.currentLift += r.liftVelocity, Math.abs(r.targetScale - r.currentScale) < 2e-3 && Math.abs(r.scaleVelocity) < 2e-3 && (r.currentScale = r.targetScale, r.scaleVelocity = 0), Math.abs(r.targetLift - r.currentLift) < 2e-3 && Math.abs(r.liftVelocity) < 2e-3 && (r.currentLift = r.targetLift, r.liftVelocity = 0)), (Math.abs(r.targetScale - r.currentScale) >= 2e-3 || Math.abs(r.targetLift - r.currentLift) >= 2e-3 || Math.abs(r.scaleVelocity) >= 2e-3 || Math.abs(r.liftVelocity) >= 2e-3) && (d = !0);
697
- const b = l[u] ?? 0, L = c === "horizontal" ? b : o === "start" ? -r.currentLift * 0.28 : r.currentLift * 0.28, w = c === "horizontal" ? -r.currentLift : b;
698
- if (r.el.style.setProperty("transform", `translate3d(${L}px, ${w}px, 0) scale(${r.currentScale})`), r.el.style.setProperty("z-index", String(100 + Math.round(r.currentScale * 100) + u)), r.iconEl) {
699
- const f = u === this._focusedIndex ? "0 0 0 3px color-mix(in srgb, var(--ui-dock-focus-ring) 26%, transparent), " : r.sticky ? "0 0 0 2px color-mix(in srgb, var(--ui-dock-accent) 22%, transparent), " : "";
700
- r.iconEl.style.setProperty("box-shadow", `${f}var(--ui-dock-item-shadow)`), r.iconEl.style.setProperty(
691
+ const t = this._smoothing(), a = this._motion(), n = g(a.response + t * 0.12, 0.05, 0.42), i = g(a.damping + (t - k) * 0.14, 0.52, 0.9), c = this._orientation(), o = S(this.getAttribute("label-placement"), c), l = this._mainAxisOffsets(a.spread);
692
+ let h = !1;
693
+ this._items.forEach((r, d) => {
694
+ e ? (r.currentScale = r.targetScale, r.currentLift = r.targetLift, r.scaleVelocity = 0, r.liftVelocity = 0) : (r.scaleVelocity = r.scaleVelocity * i + (r.targetScale - r.currentScale) * n, r.liftVelocity = r.liftVelocity * i + (r.targetLift - r.currentLift) * n, r.currentScale += r.scaleVelocity, r.currentLift += r.liftVelocity, Math.abs(r.targetScale - r.currentScale) < 2e-3 && Math.abs(r.scaleVelocity) < 2e-3 && (r.currentScale = r.targetScale, r.scaleVelocity = 0), Math.abs(r.targetLift - r.currentLift) < 2e-3 && Math.abs(r.liftVelocity) < 2e-3 && (r.currentLift = r.targetLift, r.liftVelocity = 0)), (Math.abs(r.targetScale - r.currentScale) >= 2e-3 || Math.abs(r.targetLift - r.currentLift) >= 2e-3 || Math.abs(r.scaleVelocity) >= 2e-3 || Math.abs(r.liftVelocity) >= 2e-3) && (h = !0);
695
+ const u = l[d] ?? 0, m = c === "horizontal" ? u : o === "start" ? -r.currentLift * 0.28 : r.currentLift * 0.28, f = c === "horizontal" ? -r.currentLift : u;
696
+ if (r.el.style.setProperty("transform", `translate3d(${m}px, ${f}px, 0) scale(${r.currentScale})`), r.el.style.setProperty("z-index", String(100 + Math.round(r.currentScale * 100) + d)), r.iconEl) {
697
+ const p = d === this._focusedIndex ? "0 0 0 3px color-mix(in srgb, var(--ui-dock-focus-ring) 26%, transparent), " : r.sticky ? "0 0 0 2px color-mix(in srgb, var(--ui-dock-accent) 22%, transparent), " : "";
698
+ r.iconEl.style.setProperty("box-shadow", `${p}var(--ui-dock-item-shadow)`), r.iconEl.style.setProperty(
701
699
  "border-color",
702
- r.sticky || u === this._focusedIndex ? "color-mix(in srgb, var(--ui-dock-accent) 30%, var(--ui-dock-item-border))" : "var(--ui-dock-item-border)"
700
+ r.sticky || d === this._focusedIndex ? "color-mix(in srgb, var(--ui-dock-accent) 30%, var(--ui-dock-item-border))" : "var(--ui-dock-item-border)"
703
701
  );
704
702
  }
705
703
  if (r.labelEl) {
706
- const f = r.labelVisible;
707
- r.labelEl.style.setProperty("opacity", f ? "1" : "0"), r.labelEl.style.setProperty(
704
+ const p = r.labelVisible;
705
+ r.labelEl.style.setProperty("opacity", p ? "1" : "0"), r.labelEl.style.setProperty("visibility", p ? "visible" : "hidden"), r.labelEl.style.setProperty(
708
706
  "transform",
709
- this._labelTransform(o, f)
710
- ), r.labelEl.style.setProperty("filter", f ? "blur(0px)" : "blur(6px)");
707
+ this._labelTransform(o, p)
708
+ ), r.labelEl.style.setProperty("filter", p ? "blur(0px)" : "blur(6px)");
711
709
  }
712
- }), d && this._queueAnimation();
710
+ }), h && this._queueAnimation();
713
711
  }
714
712
  _queueAnimation() {
715
713
  if (this._reducedMotion) {
716
- E(this._raf), this._raf = null, this._applyFrame(!0);
714
+ A(this._raf), this._raf = null, this._applyFrame(!0);
717
715
  return;
718
716
  }
719
717
  this._raf == null && (this._raf = U(() => {
@@ -724,8 +722,8 @@ class G extends M {
724
722
  if (this._items.length < 2) return this._items.map(() => 0);
725
723
  const t = this._resolvedItemSizePx(), a = this._resolvedGapPx(), n = t + a, i = [0];
726
724
  for (let o = 1; o < this._items.length; o += 1) {
727
- const l = this._items[o - 1], d = this._items[o], r = t * l.currentScale / 2, u = t * d.currentScale / 2, b = Math.max(0, r + u - n);
728
- i[o] = i[o - 1] + b * e;
725
+ const l = this._items[o - 1], h = this._items[o], r = t * l.currentScale / 2, d = t * h.currentScale / 2, u = Math.max(0, r + d - n);
726
+ i[o] = i[o - 1] + u * e;
729
727
  }
730
728
  const c = i[i.length - 1] / 2;
731
729
  return i.map((o) => o - c);
@@ -734,15 +732,15 @@ class G extends M {
734
732
  return e === "top" ? t ? "translate3d(-50%, 0, 0)" : "translate3d(-50%, 6px, 0)" : e === "bottom" ? t ? "translate3d(-50%, 0, 0)" : "translate3d(-50%, -6px, 0)" : e === "start" ? t ? "translate3d(0, -50%, 0)" : "translate3d(6px, -50%, 0)" : t ? "translate3d(0, -50%, 0)" : "translate3d(-6px, -50%, 0)";
735
733
  }
736
734
  _syncHostStyles() {
737
- const e = h(this.getAttribute("gap"));
735
+ const e = b(this.getAttribute("gap"));
738
736
  e ? this.style.setProperty("--ui-dock-gap", e) : this.style.removeProperty("--ui-dock-gap");
739
- const t = h(this.getAttribute("padding"));
737
+ const t = b(this.getAttribute("padding"));
740
738
  t ? this.style.setProperty("--ui-dock-padding", t) : this.style.removeProperty("--ui-dock-padding");
741
- const a = h(this.getAttribute("item-size"));
739
+ const a = b(this.getAttribute("item-size"));
742
740
  a ? (this.style.setProperty("--ui-dock-item-size", a), this.style.setProperty("--ui-dock-icon-size", `calc(${a} * 0.44)`)) : (this.style.removeProperty("--ui-dock-item-size"), this.style.removeProperty("--ui-dock-icon-size"));
743
741
  const n = this.getAttribute("radius");
744
- if (n && !N.has(n)) {
745
- const i = h(n) || n;
742
+ if (n && !O.has(n)) {
743
+ const i = b(n) || n;
746
744
  this.style.setProperty("--ui-dock-radius", i), this.style.setProperty("--ui-dock-item-radius", `calc(${i} * 0.82)`);
747
745
  } else
748
746
  this.style.removeProperty("--ui-dock-radius"), this.style.removeProperty("--ui-dock-item-radius");
@@ -752,47 +750,47 @@ class G extends M {
752
750
  }
753
751
  _motion() {
754
752
  const e = this.getAttribute("animation");
755
- return e === "calm" || e === "snappy" || e === "bouncy" ? v[e] : v.smooth;
753
+ return e === "calm" || e === "snappy" || e === "bouncy" ? P[e] : P.smooth;
756
754
  }
757
755
  _labelMode() {
758
756
  const e = this.getAttribute("label-mode");
759
757
  return e === "always" || e === "none" ? e : "hover";
760
758
  }
761
759
  _magnification() {
762
- return Math.max(this._idleScale(), m(this.getAttribute("magnification"), T));
760
+ return Math.max(this._idleScale(), y(this.getAttribute("magnification"), T));
763
761
  }
764
762
  _distance() {
765
- return m(this.getAttribute("distance"), F);
763
+ return y(this.getAttribute("distance"), F);
766
764
  }
767
765
  _idleScale() {
768
- return Math.max(0.5, m(this.getAttribute("idle-scale"), C));
766
+ return Math.max(0.5, y(this.getAttribute("idle-scale"), C));
769
767
  }
770
768
  _lift() {
771
- return m(this.getAttribute("lift"), R);
769
+ return y(this.getAttribute("lift"), R);
772
770
  }
773
771
  _smoothing() {
774
- return q(this.getAttribute("smoothing"), _);
772
+ return q(this.getAttribute("smoothing"), k);
775
773
  }
776
774
  _sizeToken() {
777
775
  const e = this.getAttribute("size");
778
776
  return e === "xs" || e === "0" ? "xs" : e === "sm" || e === "1" ? "sm" : e === "lg" || e === "3" ? "lg" : e === "xl" || e === "4" ? "xl" : "md";
779
777
  }
780
778
  _resolvedItemSizePx() {
781
- const e = h(this.getAttribute("item-size"));
779
+ const e = b(this.getAttribute("item-size"));
782
780
  if (e) {
783
781
  const t = Number.parseFloat(e);
784
782
  if (Number.isFinite(t)) return t;
785
783
  }
786
- return k[this._sizeToken()]?.itemSize ?? D;
784
+ return z[this._sizeToken()]?.itemSize ?? D;
787
785
  }
788
786
  _resolvedGapPx() {
789
- const e = h(this.getAttribute("gap"));
787
+ const e = b(this.getAttribute("gap"));
790
788
  if (e) {
791
789
  const a = Number.parseFloat(e);
792
790
  if (Number.isFinite(a)) return a;
793
791
  }
794
- const t = k[this._sizeToken()];
795
- return t ? Number.parseFloat(t.gap) : Number.parseFloat(g);
792
+ const t = z[this._sizeToken()];
793
+ return t ? Number.parseFloat(t.gap) : Number.parseFloat(_);
796
794
  }
797
795
  _updateRuntimeState() {
798
796
  const e = this._focusedIndex >= 0 ? "keyboard" : this._pointerActive ? "pointer" : "idle";