@mkbabb/glass-ui 4.1.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/dist/{CardAction-8whJrLWt.js → CardAction-DlVP2evz.js} +58 -54
  2. package/dist/{CommandShortcut-D3yxgHNn.js → CommandShortcut-By-VQcLO.js} +3 -3
  3. package/dist/{ConfiguratorRow-CaP7U3ZA.js → ConfiguratorRow-YMXdINHx.js} +3 -3
  4. package/dist/{ContextMenuContent-B3ZsheLV.js → ContextMenuContent-CMWn6huB.js} +1 -1
  5. package/dist/{ContextMenuSubContent-DDRID3qC.js → ContextMenuSubContent-DvwWCUc0.js} +1 -1
  6. package/dist/{DataTable-Bc9kUtu_.js → DataTable-C4tG3eIJ.js} +4 -4
  7. package/dist/DialogContent-D8U9ZfWS.js +121 -0
  8. package/dist/{DialogScrollContent-TTuovQst.js → DialogScrollContent-BMekN7gq.js} +1 -1
  9. package/dist/{FadingScroll-DLRbH5Xr.js → FadingScroll-P8B30rAD.js} +1 -1
  10. package/dist/{HoverCardContent-Bel1gdLZ.js → HoverCardContent-DAmGYglo.js} +1 -1
  11. package/dist/{HoverPopover-BcIxvyqZ.js → HoverPopover-DYpBOzzF.js} +1 -1
  12. package/dist/{IconChip-DhbdGdFQ.js → IconChip-CQa7XZYc.js} +7 -5
  13. package/dist/{IconTooltip-B0zimd2H.js → IconTooltip-_df8M3xm.js} +1 -1
  14. package/dist/{Input-Cg9DF62r.js → Input-CyU4_hIC.js} +2 -2
  15. package/dist/{MetricBadge-RHdBP72w.js → MetricBadge-DQt_dGah.js} +1 -1
  16. package/dist/{Notification-CphK7AAm.js → Notification-BlSPJhtZ.js} +1 -1
  17. package/dist/{NumberFieldContent-D8cXeyO4.js → NumberFieldContent-Z3VxGu_6.js} +3 -3
  18. package/dist/PagerDots-CYlqVFd4.js +196 -0
  19. package/dist/PaperBackdrop-DYWgrnh8.js +42 -0
  20. package/dist/{PopoverContent-DL7E6vJP.js → PopoverContent-BuKyHZSz.js} +2 -2
  21. package/dist/{Progress-CnqB7gLm.js → Progress-C9SsdwIZ.js} +1 -1
  22. package/dist/{ScrollingText-CTZbA_cG.js → ScrollingText-DY3W1Jfh.js} +2 -2
  23. package/dist/{SelectScrollDownButton-DAKCBEdW.js → SelectScrollDownButton-3mFHX_R-.js} +15 -12
  24. package/dist/{Switch-B8RscmRu.js → Switch-uf-UKPA2.js} +1 -1
  25. package/dist/{Toaster-D9qIHjBI.js → Toaster-ozrsR4mP.js} +1 -1
  26. package/dist/{ToggleGroupItem-BLtr3TJq.js → ToggleGroupItem-BpzaVzNm.js} +4 -4
  27. package/dist/{TooltipProvider-BJ_Y5EGX.js → TooltipProvider-QQVM_80r.js} +1 -1
  28. package/dist/animated-digit.js +2 -2
  29. package/dist/api/index.d.ts +1 -0
  30. package/dist/api/types-extra.d.ts +3 -1
  31. package/dist/api.js +2 -2
  32. package/dist/aurora.js +163 -131
  33. package/dist/badge-Bt14yURi.js +72 -0
  34. package/dist/badge.js +1 -1
  35. package/dist/border-progress.js +1 -1
  36. package/dist/button-D1W9PrzI.js +130 -0
  37. package/dist/button.js +1 -1
  38. package/dist/canvas.js +1 -1
  39. package/dist/card.js +1 -1
  40. package/dist/carousel.js +227 -98
  41. package/dist/chipVariants-BJQ0I2kB.js +18 -0
  42. package/dist/collapsible.js +1 -1
  43. package/dist/color.js +1 -1
  44. package/dist/command.js +1 -1
  45. package/dist/components/custom/aurora/composables/glSetup.d.ts +1 -1
  46. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +1 -1
  47. package/dist/components/custom/aurora/constants/presets.d.ts +29 -0
  48. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
  49. package/dist/components/custom/aurora/index.d.ts +1 -1
  50. package/dist/components/custom/concentric/Concentric.vue.d.ts +15 -12
  51. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +8 -3
  52. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +8 -4
  53. package/dist/components/custom/concentric/composables/levelField.d.ts +50 -0
  54. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +7 -4
  55. package/dist/components/custom/concentric/composables/useConcentric.d.ts +3 -3
  56. package/dist/components/custom/concentric/constants.d.ts +62 -41
  57. package/dist/components/custom/concentric/index.d.ts +2 -2
  58. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +2 -2
  59. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -1
  60. package/dist/components/custom/configurator/Configurator.vue.d.ts +23 -2
  61. package/dist/components/custom/configurator/index.d.ts +1 -1
  62. package/dist/components/custom/dock/DockDropdownTrigger.vue.d.ts +4 -3
  63. package/dist/components/custom/dock/DockIconButton.vue.d.ts +10 -0
  64. package/dist/components/custom/dock/DockPopoverTrigger.vue.d.ts +19 -0
  65. package/dist/components/custom/dock/DockStack.vue.d.ts +35 -22
  66. package/dist/components/custom/dock/GlassDock.vue.d.ts +19 -3
  67. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +18 -32
  68. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +76 -145
  69. package/dist/components/custom/dock/composables/index.d.ts +1 -0
  70. package/dist/components/custom/dock/composables/railProjection.d.ts +45 -0
  71. package/dist/components/custom/dock/composables/useDockContextSilhouette.d.ts +192 -0
  72. package/dist/components/custom/dock/composables/useDockFission.d.ts +158 -0
  73. package/dist/components/custom/dock/composables/useDockItemDrag.d.ts +18 -0
  74. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +38 -0
  75. package/dist/components/custom/dock/constants.d.ts +14 -3
  76. package/dist/components/custom/dock/index.d.ts +3 -0
  77. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +21 -0
  78. package/dist/components/custom/dot-flow-field/composables/flowGLProgram.d.ts +8 -0
  79. package/dist/components/custom/dot-flow-field/composables/flowSetupGL.d.ts +9 -0
  80. package/dist/components/custom/dot-flow-field/composables/flowSetupGLFlow.d.ts +12 -0
  81. package/dist/components/custom/dot-flow-field/composables/flowSetupWGPU.d.ts +7 -0
  82. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +28 -2
  83. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -17
  84. package/dist/components/custom/dot-flow-field/constants.d.ts +51 -0
  85. package/dist/components/custom/dot-flow-field/index.d.ts +1 -1
  86. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -1
  87. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +29 -0
  88. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +2 -1
  89. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +10 -1
  90. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +7 -0
  91. package/dist/components/custom/dot-matrix/constants.d.ts +14 -0
  92. package/dist/components/custom/dot-matrix/index.d.ts +1 -1
  93. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +2 -2
  94. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -1
  95. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +4 -0
  96. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +9 -0
  97. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +11 -0
  98. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +16 -1
  99. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +22 -1
  100. package/dist/components/custom/fourier-field/constants.d.ts +53 -0
  101. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +1 -1
  102. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -1
  103. package/dist/components/custom/goo-blob/composables/easing.d.ts +1 -0
  104. package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +1 -0
  105. package/dist/components/custom/goo-blob/constants.d.ts +26 -1
  106. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
  107. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -1
  108. package/dist/components/custom/goo-blob/types.d.ts +50 -1
  109. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +32 -3
  110. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +14 -4
  111. package/dist/components/custom/goo-dot-matrix/constants.d.ts +55 -16
  112. package/dist/components/custom/goo-dot-matrix/index.d.ts +1 -1
  113. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +2 -0
  114. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +1 -0
  115. package/dist/components/custom/goo-filter/GooFilter.vue.d.ts +22 -0
  116. package/dist/components/custom/goo-filter/index.d.ts +1 -0
  117. package/dist/components/custom/handmark/brush.d.ts +17 -17
  118. package/dist/components/custom/handmark/constants.d.ts +28 -8
  119. package/dist/components/custom/handmark/geometry.d.ts +34 -1
  120. package/dist/components/custom/handmark/index.d.ts +1 -1
  121. package/dist/components/custom/icon-chip/types.d.ts +10 -0
  122. package/dist/components/custom/paper-backdrop/PaperBackdrop.vue.d.ts +18 -0
  123. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +44 -29
  124. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +2 -0
  125. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +3 -1
  126. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +2 -2
  127. package/dist/components/custom/paper-grid/constants.d.ts +44 -6
  128. package/dist/components/custom/paper-grid/index.d.ts +2 -2
  129. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +1 -1
  130. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -1
  131. package/dist/components/custom/selectable-chip/chipVariants.d.ts +39 -0
  132. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +12 -20
  133. package/dist/components/custom/tabs/constants.d.ts +16 -8
  134. package/dist/components/custom/timeline/ScrubberTimeline.vue.d.ts +16 -0
  135. package/dist/components/custom/timeline/geometry.d.ts +0 -8
  136. package/dist/components/custom/toggle-chip/index.d.ts +15 -4
  137. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +12 -10
  138. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +17 -3
  139. package/dist/components/ui/badge/Badge.vue.d.ts +14 -0
  140. package/dist/components/ui/badge/index.d.ts +1 -0
  141. package/dist/components/ui/button/Button.vue.d.ts +1 -0
  142. package/dist/components/ui/card/Card.vue.d.ts +1 -1
  143. package/dist/components/ui/card/ScrollCard.vue.d.ts +1 -1
  144. package/dist/components/ui/carousel/CarouselContent.vue.d.ts +2 -4
  145. package/dist/components/ui/dialog/DialogContent.vue.d.ts +9 -0
  146. package/dist/components/ui/drawer/Drawer.vue.d.ts +33 -14
  147. package/dist/components/ui/drawer/constants.d.ts +8 -6
  148. package/dist/components/ui/drawer/index.d.ts +12 -2
  149. package/dist/components/ui/select/SelectContent.vue.d.ts +9 -0
  150. package/dist/components/ui/slider/Slider.vue.d.ts +9 -0
  151. package/dist/composables/dom/index.d.ts +1 -0
  152. package/dist/composables/dom/useDragVelocity.d.ts +46 -0
  153. package/dist/composables/glass/wave/index.d.ts +4 -0
  154. package/dist/composables/glass/wave/waveField.d.ts +115 -0
  155. package/dist/composables/glass/wave/waveField.glsl.d.ts +1 -0
  156. package/dist/composables/glass/wave/waveField.wgsl.d.ts +1 -0
  157. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +95 -2
  158. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +40 -2
  159. package/dist/composables/glass/webgpu/index.d.ts +1 -0
  160. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +37 -0
  161. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +49 -2
  162. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +1 -1
  163. package/dist/composables/motion/core/index.d.ts +4 -0
  164. package/dist/composables/motion/core/useHaptic.d.ts +48 -0
  165. package/dist/composables/motion/core/writeVelocityWeight.d.ts +31 -0
  166. package/dist/composables/motion/index.d.ts +2 -0
  167. package/dist/composables/motion/springPresets.d.ts +16 -17
  168. package/dist/composables/motion/suite.d.ts +2 -2
  169. package/dist/composables/motion/useBloomUp.d.ts +97 -0
  170. package/dist/composables/motion/useCelebrationBurst.d.ts +50 -0
  171. package/dist/composables/motion/useDockCtaReceive.d.ts +10 -28
  172. package/dist/composables/motion/useGooMorph.d.ts +72 -0
  173. package/dist/composables/motion/useLiquidFlex.d.ts +18 -0
  174. package/dist/composables/motion/useLiquidMorph.d.ts +108 -0
  175. package/dist/composables/motion/useLiquidPress.d.ts +12 -0
  176. package/dist/composables/motion/useLiquidReveal.d.ts +7 -4
  177. package/dist/composables/motion/useMorphField.d.ts +157 -0
  178. package/dist/composables/motion/useScrollPin.d.ts +49 -0
  179. package/dist/composables/motion/useScrollScene.d.ts +67 -0
  180. package/dist/concentric.js +532 -563
  181. package/dist/configurator.js +2 -2
  182. package/dist/confirm-dialog.js +3 -3
  183. package/dist/constellation.js +4 -4
  184. package/dist/context-menu.js +2 -2
  185. package/dist/controls.js +2 -2
  186. package/dist/createCanvasLifecycle-CuCrGRfq.js +173 -0
  187. package/dist/dark.js +1 -1
  188. package/dist/data-table.js +1 -1
  189. package/dist/deck.js +1 -1
  190. package/dist/dialog.js +3 -3
  191. package/dist/dock.js +1163 -618
  192. package/dist/dockContext-gFVS2gMg.js +18 -0
  193. package/dist/dom.js +7 -6
  194. package/dist/dot-flow-field.js +1114 -523
  195. package/dist/dot-matrix.js +348 -204
  196. package/dist/drawer.js +106 -96
  197. package/dist/{dropdown-menu-aJmV5SqE.js → dropdown-menu-CCfcCQ68.js} +3 -3
  198. package/dist/dropdown-menu.js +1 -1
  199. package/dist/easing.js +3 -3
  200. package/dist/expandable-container.js +2 -2
  201. package/dist/fading-scroll.js +1 -1
  202. package/dist/forms.js +6 -6
  203. package/dist/fourier-field.js +441 -197
  204. package/dist/fourier-math.js +1 -1
  205. package/dist/glass-panel.js +2 -2
  206. package/dist/glass-ui.css +1 -1
  207. package/dist/glass-ui.js +139 -135
  208. package/dist/goo-blob.js +11 -9
  209. package/dist/goo-dot-matrix.js +418 -198
  210. package/dist/handmark.js +137 -94
  211. package/dist/header-ribbon.js +1 -1
  212. package/dist/hover-card.js +1 -1
  213. package/dist/hover-popover.js +1 -1
  214. package/dist/icon-chip.js +1 -1
  215. package/dist/icon-tooltip.js +1 -1
  216. package/dist/index.d.ts +3 -0
  217. package/dist/instrument-chassis.js +1 -1
  218. package/dist/keyboard.js +1 -1
  219. package/dist/label.js +1 -1
  220. package/dist/labeled-field.js +7 -7
  221. package/dist/metric-badge.js +1 -1
  222. package/dist/metric-cell.js +1 -1
  223. package/dist/metric-stack.js +1 -1
  224. package/dist/motion-core.js +42 -39
  225. package/dist/motion-curves.js +20 -14
  226. package/dist/motion.js +226 -26
  227. package/dist/notification.js +1 -1
  228. package/dist/number-field.js +1 -1
  229. package/dist/pager-dots.js +1 -1
  230. package/dist/paper-backdrop.js +1 -1
  231. package/dist/paper-grid.js +315 -342
  232. package/dist/paperGrid-CXCSMbZ1.js +191 -0
  233. package/dist/popover.js +1 -1
  234. package/dist/{presets-CvOUqtdY.js → presets-QvYgnFIZ.js} +13 -12
  235. package/dist/progress.js +1 -1
  236. package/dist/pulse.js +1 -1
  237. package/dist/reactive.js +2 -2
  238. package/dist/{resolveCanvasColor-yPyIpJt9.js → resolveCanvasColor-DsSJk06I.js} +5 -5
  239. package/dist/scrolling-text.js +1 -1
  240. package/dist/search.js +7 -7
  241. package/dist/select.js +3 -3
  242. package/dist/selectable-chip.js +18 -35
  243. package/dist/separator.js +1 -1
  244. package/dist/{sheet-B2flBfLH.js → sheet-DUCIoOe0.js} +3 -3
  245. package/dist/sheet.js +1 -1
  246. package/dist/sidebar.js +1 -1
  247. package/dist/slider-CcICPe3u.js +149 -0
  248. package/dist/slider.js +1 -1
  249. package/dist/sortable-list.js +3 -3
  250. package/dist/{spectrum-walk-BVzA7Biz.js → spectrum-walk-cBNSx_zm.js} +1 -1
  251. package/dist/springPresets-DfoQ6XRY.js +64 -0
  252. package/dist/stacked-icons.js +54 -39
  253. package/dist/styles/cards.css +202 -2
  254. package/dist/styles/components.css +1 -3
  255. package/dist/styles/configurator.css +172 -7
  256. package/dist/styles/critical-partition.mjs +35 -2
  257. package/dist/styles/deferred.css +2 -0
  258. package/dist/styles/dock/adaptive-legibility.css +119 -0
  259. package/dist/styles/dock/density.css +18 -10
  260. package/dist/styles/dock/fission-bridge.css +552 -0
  261. package/dist/styles/dock/layers.css +88 -124
  262. package/dist/styles/dock/morph-bridge.css +15 -2
  263. package/dist/styles/dock/morph.css +45 -114
  264. package/dist/styles/dock/shape.css +137 -11
  265. package/dist/styles/dock/shell.css +1 -3
  266. package/dist/styles/dock/stack-rail.css +95 -7
  267. package/dist/styles/dock-controls/icon-button.css +34 -2
  268. package/dist/styles/dock-controls/triggers.css +23 -1
  269. package/dist/styles/dock-controls.css +18 -0
  270. package/dist/styles/dock.css +16 -1
  271. package/dist/styles/drawer.css +166 -0
  272. package/dist/styles/glass/glass-atom.css +244 -0
  273. package/dist/styles/glass/glass-capsule.css +143 -0
  274. package/dist/styles/glass/glass-chip.css +215 -0
  275. package/dist/styles/glass/liquid-enter.css +252 -0
  276. package/dist/styles/glass/liquid-morph.css +850 -0
  277. package/dist/styles/glass/material.css +70 -1
  278. package/dist/styles/glass/reveal.css +22 -2
  279. package/dist/styles/glass/rim.css +13 -1
  280. package/dist/styles/glass/surfaces.css +18 -8
  281. package/dist/styles/glass.css +11 -0
  282. package/dist/styles/icon-chip.css +45 -0
  283. package/dist/styles/index.css +11 -0
  284. package/dist/styles/jubilance.css +65 -0
  285. package/dist/styles/motion/morph-field.css +229 -0
  286. package/dist/styles/paper.css +230 -14
  287. package/dist/styles/scroll-choreography.css +135 -78
  288. package/dist/styles/segmented-tabs.css +85 -51
  289. package/dist/styles/select.css +151 -0
  290. package/dist/styles/tokens/color-radius.css +1 -1
  291. package/dist/styles/tokens/dark-arm.css +57 -8
  292. package/dist/styles/tokens/glass-deep.css +8 -4
  293. package/dist/styles/tokens/glass-fx.css +80 -2
  294. package/dist/styles/tokens/glass.css +140 -8
  295. package/dist/styles/tokens/light-dark.css +2 -2
  296. package/dist/styles/tokens/property-regs.css +144 -0
  297. package/dist/styles/tokens/scale-paper.css +20 -8
  298. package/dist/styles/tokens/scheme-motion.css +92 -157
  299. package/dist/styles/tokens/scheme-spring.css +239 -0
  300. package/dist/styles/tokens/scroll-tokens.css +15 -15
  301. package/dist/styles/tokens/shadow.css +73 -13
  302. package/dist/styles/tokens.css +9 -2
  303. package/dist/styles/utilities/btn.css +70 -0
  304. package/dist/switch.js +1 -1
  305. package/dist/tabs.js +198 -181
  306. package/dist/timeline.js +241 -206
  307. package/dist/toast.js +1 -1
  308. package/dist/toggle-chip.js +14 -41
  309. package/dist/toggle-group.js +1 -1
  310. package/dist/tooltip.js +1 -1
  311. package/dist/typewriter.js +1 -1
  312. package/dist/{uniformBridgeWGPU-CtAKl45L.js → uniformBridgeWGPU-BCse1SHU.js} +191 -127
  313. package/dist/{useAnimatedNumber-CLrxicG9.js → useAnimatedNumber-BntskVdQ.js} +1 -1
  314. package/dist/{useConfiguratorState-4xblKfwd.js → useConfiguratorState-22BcULzF.js} +37 -35
  315. package/dist/useDockCtaReceive-DX7RDb6_.js +88 -0
  316. package/dist/{useDragMorph-BUgAC-zK.js → useDragMorph-DGLSewwB.js} +2 -2
  317. package/dist/useDragVelocity-CjcfX3dA.js +57 -0
  318. package/dist/useGooMorph-Cs13NgYL.js +104 -0
  319. package/dist/useGpuSubstrate-Ceet70xq.js +347 -0
  320. package/dist/{useViewTransition-CUI1nAgn.js → useHaptic-CPz5BT9I.js} +40 -1
  321. package/dist/{useLiquidFlex-UmA6LMZu.js → useLiquidFlex-Cc6PjVJD.js} +8 -3
  322. package/dist/useLiquidPress-CtOQ8Z0_.js +43 -0
  323. package/dist/useMorphField-ogBM7ubT.js +141 -0
  324. package/dist/{useScrollChrome-D66AVP7C.js → useScrollChrome-JuImi1DM.js} +2 -2
  325. package/dist/{useSpringMount-BWDnKIwh.js → useSpringMount-DFxtzmkR.js} +1 -1
  326. package/dist/{useSpringPress-B1-Czp-V.js → useSpringPress-VM9RgVq3.js} +1 -1
  327. package/dist/{useSurfaceAxis-g0NloYEF.js → useSurfaceAxis-Ci7Dnaw2.js} +1 -1
  328. package/dist/{useTouchGate-CBZTD4SD.js → useTouchGate-B1Lf9XqN.js} +1 -1
  329. package/dist/virtual.js +1 -1
  330. package/dist/watercolor-dot.js +16 -26
  331. package/dist/writeVelocityWeight-Bh83xZfs.js +19 -0
  332. package/package.json +14 -3
  333. package/src/styles/cards.css +202 -2
  334. package/src/styles/configurator.css +172 -7
  335. package/src/styles/critical-partition.mjs +35 -2
  336. package/src/styles/dock/adaptive-legibility.css +119 -0
  337. package/src/styles/dock/density.css +18 -10
  338. package/src/styles/dock/fission-bridge.css +552 -0
  339. package/src/styles/dock/layers.css +88 -124
  340. package/src/styles/dock/morph-bridge.css +15 -2
  341. package/src/styles/dock/morph.css +45 -114
  342. package/src/styles/dock/shape.css +137 -11
  343. package/src/styles/dock/shell.css +1 -3
  344. package/src/styles/dock/stack-rail.css +95 -7
  345. package/src/styles/dock-controls/icon-button.css +34 -2
  346. package/src/styles/dock-controls/triggers.css +23 -1
  347. package/src/styles/dock-controls.css +18 -0
  348. package/src/styles/dock.css +16 -1
  349. package/src/styles/drawer.css +164 -0
  350. package/src/styles/glass/glass-atom.css +244 -0
  351. package/src/styles/glass/glass-capsule.css +143 -0
  352. package/src/styles/glass/glass-chip.css +215 -0
  353. package/src/styles/glass/liquid-enter.css +252 -0
  354. package/src/styles/glass/liquid-morph.css +850 -0
  355. package/src/styles/glass/material.css +70 -1
  356. package/src/styles/glass/reveal.css +22 -2
  357. package/src/styles/glass/rim.css +13 -1
  358. package/src/styles/glass/surfaces.css +18 -8
  359. package/src/styles/glass.css +11 -0
  360. package/src/styles/icon-chip.css +45 -0
  361. package/src/styles/index.css +11 -0
  362. package/src/styles/jubilance.css +65 -0
  363. package/src/styles/motion/morph-field.css +229 -0
  364. package/src/styles/paper.css +230 -14
  365. package/src/styles/scroll-choreography.css +135 -78
  366. package/src/styles/segmented-tabs.css +85 -47
  367. package/src/styles/select.css +151 -0
  368. package/src/styles/tokens/color-radius.css +1 -1
  369. package/src/styles/tokens/dark-arm.css +57 -8
  370. package/src/styles/tokens/glass-deep.css +8 -4
  371. package/src/styles/tokens/glass-fx.css +80 -2
  372. package/src/styles/tokens/glass.css +140 -8
  373. package/src/styles/tokens/light-dark.css +2 -2
  374. package/src/styles/tokens/property-regs.css +144 -0
  375. package/src/styles/tokens/scale-paper.css +20 -8
  376. package/src/styles/tokens/scheme-motion.css +92 -157
  377. package/src/styles/tokens/scheme-spring.css +239 -0
  378. package/src/styles/tokens/scroll-tokens.css +15 -15
  379. package/src/styles/tokens/shadow.css +73 -13
  380. package/src/styles/tokens.css +9 -2
  381. package/src/styles/utilities/btn.css +70 -0
  382. package/dist/DialogContent-6JtTB5x2.js +0 -106
  383. package/dist/PagerDots-Cjx96la-.js +0 -98
  384. package/dist/PaperBackdrop-CqwjnfLv.js +0 -31
  385. package/dist/badge-D9XWW4GT.js +0 -53
  386. package/dist/button-5dY1Dvhd.js +0 -125
  387. package/dist/components/custom/concentric/composables/ringField.d.ts +0 -85
  388. package/dist/createCanvasLifecycle-Gh45Ce-p.js +0 -93
  389. package/dist/dockContext-BNfyPLe9.js +0 -17
  390. package/dist/slider-2A0rPn79.js +0 -142
  391. package/dist/springPresets-Ce7OYCm9.js +0 -46
  392. package/dist/useDockCtaReceive-DfFkmgL1.js +0 -82
  393. package/dist/useGpuSubstrate-4pTcp6mX.js +0 -294
  394. package/dist/useLiquidPress-BooG97RY.js +0 -39
  395. /package/dist/{CollapsibleContent-68dEXIAl.js → CollapsibleContent-D7UNsXQr.js} +0 -0
  396. /package/dist/{DialogFooter-9phqcRIS.js → DialogFooter-DoLy0ewI.js} +0 -0
  397. /package/dist/{InstrumentChassis-CxsHSyMj.js → InstrumentChassis-UUJX0-mW.js} +0 -0
  398. /package/dist/{Label-C2ejNWeC.js → Label-B_HPqi_q.js} +0 -0
  399. /package/dist/{ModalOverlay-D1VrWyoi.js → ModalOverlay-DfAf7o15.js} +0 -0
  400. /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-Dcczq44n.js} +0 -0
  401. /package/dist/{SelectSeparator-C2UGOkXF.js → SelectSeparator-CNRGG7Ew.js} +0 -0
  402. /package/dist/{Separator-DQcwC2TR.js → Separator-Cf9-JFgi.js} +0 -0
  403. /package/dist/{_plugin-vue_export-helper-C1je1s0u.js → _plugin-vue_export-helper-gLzyemvl.js} +0 -0
  404. /package/dist/{color-Cs0-oxYL.js → color-B9jZdhJX.js} +0 -0
  405. /package/dist/{compile-nZ1xVYTp.js → compile-INR_tPk_.js} +0 -0
  406. /package/dist/{constants--C2DkLW8.js → constants-BWj7DkMn.js} +0 -0
  407. /package/dist/{createContext-CpBNTRMI.js → createContext-Cd23P9j0.js} +0 -0
  408. /package/dist/{dotMatrixField-D_x9_1qq.js → dotMatrixField-CRO0ZFk4.js} +0 -0
  409. /package/dist/{flow.glsl-B2P7e0MT.js → flow.glsl-DqEGRpl4.js} +0 -0
  410. /package/dist/{math-Eb0w3LqU.js → math-5RcIgCB4.js} +0 -0
  411. /package/dist/{menuItemVariants-D8VNHq22.js → menuItemVariants-DAXquKja.js} +0 -0
  412. /package/dist/{prng-B-d9eYX8.js → prng-B5tIXTtj.js} +0 -0
  413. /package/dist/{procedural-color.wgsl-m7Zgv35j.js → procedural-color.wgsl-C1Y5PkM6.js} +0 -0
  414. /package/dist/{scrollReader-DI1NWxUw.js → scrollReader-rc3Ns_NM.js} +0 -0
  415. /package/dist/{useControlSize-SH1UmJCi.js → useControlSize-DAZ062x7.js} +0 -0
  416. /package/dist/{useFuzzySearch-DIhcYtcw.js → useFuzzySearch-0fTYOhS4.js} +0 -0
  417. /package/dist/{useGlobalDark-CmjB9E32.js → useGlobalDark-B4HO9LXG.js} +0 -0
  418. /package/dist/{useIntersectionPause-Dbozzjgm.js → useIntersectionPause-DO8Vl4gs.js} +0 -0
  419. /package/dist/{useInterval-CNdua40W.js → useInterval-BVUI-sez.js} +0 -0
  420. /package/dist/{useKeyboardShortcuts-BPRp33Im.js → useKeyboardShortcuts-BEut54Tk.js} +0 -0
  421. /package/dist/{usePointerVelocityField-QLsy3_kv.js → usePointerVelocityField-BrkqZFhj.js} +0 -0
  422. /package/dist/{useResizeObserver-Bpoi7tRE.js → useResizeObserver-DdEn3v2f.js} +0 -0
  423. /package/dist/{useResolveTokenColor-vAylyR0x.js → useResolveTokenColor-ChOnCckA.js} +0 -0
  424. /package/dist/{useScrollProgress-c3yxmH6a.js → useScrollProgress-A0M6qRl7.js} +0 -0
  425. /package/dist/{useSortable-BVqlJRBR.js → useSortable-DQV_UNDw.js} +0 -0
  426. /package/dist/{useTextHighlight-NmBM5V_4.js → useTextHighlight-Bma3UlKA.js} +0 -0
  427. /package/dist/{useTimer-BHJOKr35.js → useTimer-BBLGPXR8.js} +0 -0
  428. /package/dist/{useUserInvalidAria-y5namzeE.js → useUserInvalidAria-EmmwWPOl.js} +0 -0
  429. /package/dist/{useViewportReady-anbac3m6.js → useViewportReady-C9pYnn7K.js} +0 -0
  430. /package/dist/{vReveal-D9k0jADx.js → vReveal-CT1KtwZA.js} +0 -0
package/dist/dock.js CHANGED
@@ -1,34 +1,225 @@
1
1
  import { t as e } from "./cn-DJXf4yaB.js";
2
2
  import { a as t, d as n, o as r, x as i } from "./vendor-B2qOlYY3.js";
3
- import { t as a } from "./useLiquidFlex-UmA6LMZu.js";
4
- import { t as o } from "./vSpecular-EX7loENl.js";
5
- import { t as s } from "./useResizeObserver-Bpoi7tRE.js";
6
- import { t as c } from "./useTouchGate-CBZTD4SD.js";
7
- import { n as l } from "./useResolveTokenColor-vAylyR0x.js";
8
- import { n as u, t as d } from "./createContext-CpBNTRMI.js";
9
- import { a as f, c as p, i as m, n as h, o as g, r as _, s as v, t as y } from "./dockContext-BNfyPLe9.js";
10
- import { t as b } from "./FadingScroll-DLRbH5Xr.js";
11
- import { t as x } from "./useIntersectionPause-Dbozzjgm.js";
12
- import { t as S } from "./useDragMorph-BUgAC-zK.js";
13
- import { t as C } from "./useDockCtaReceive-DfFkmgL1.js";
14
- import { r as w, t as T } from "./useScrollChrome-D66AVP7C.js";
15
- import { t as E } from "./useFuzzySearch-DIhcYtcw.js";
16
- import { Fragment as D, computed as O, createBlock as k, createCommentVNode as A, createElementBlock as j, createElementVNode as M, createVNode as N, defineComponent as P, mergeModels as F, mergeProps as I, nextTick as L, normalizeClass as R, normalizeStyle as z, onBeforeUnmount as ee, onMounted as te, onScopeDispose as B, onUnmounted as V, openBlock as H, readonly as U, ref as W, renderList as ne, renderSlot as G, resolveDynamicComponent as re, toDisplayString as ie, unref as K, useId as ae, useModel as q, useSlots as oe, useTemplateRef as J, watch as Y, withCtx as X, withDirectives as Z } from "vue";
17
- import { DropdownMenuTrigger as se, Primitive as ce, SelectIcon as le, SelectTrigger as ue, TabsIndicator as de, TabsList as fe, TabsRoot as pe, TabsTrigger as me, useForwardProps as he, useForwardPropsEmits as ge } from "reka-ui";
18
- import { SpringProgress as _e } from "@mkbabb/keyframes.js";
3
+ import { n as a } from "./springPresets-DfoQ6XRY.js";
4
+ import { t as o } from "./useLiquidFlex-Cc6PjVJD.js";
5
+ import { t as s } from "./vSpecular-EX7loENl.js";
6
+ import { n as c, r as l } from "./writeVelocityWeight-Bh83xZfs.js";
7
+ import { t as u } from "./_plugin-vue_export-helper-gLzyemvl.js";
8
+ import { t as d } from "./useResizeObserver-DdEn3v2f.js";
9
+ import { t as f } from "./useTouchGate-B1Lf9XqN.js";
10
+ import { n as p } from "./useResolveTokenColor-ChOnCckA.js";
11
+ import { n as m, t as h } from "./createContext-Cd23P9j0.js";
12
+ import { a as g, c as _, i as v, n as y, o as b, r as x, s as S, t as C } from "./dockContext-gFVS2gMg.js";
13
+ import { t as w } from "./FadingScroll-P8B30rAD.js";
14
+ import { t as T } from "./useMorphField-ogBM7ubT.js";
15
+ import { t as E } from "./usePointerVelocityField-BrkqZFhj.js";
16
+ import { t as D } from "./useIntersectionPause-DO8Vl4gs.js";
17
+ import { t as O } from "./useDragMorph-DGLSewwB.js";
18
+ import { t as k } from "./useDockCtaReceive-DX7RDb6_.js";
19
+ import { r as ee, t as A } from "./useScrollChrome-JuImi1DM.js";
20
+ import { t as te } from "./useFuzzySearch-0fTYOhS4.js";
21
+ import { Fragment as j, computed as M, createBlock as N, createCommentVNode as P, createElementBlock as F, createElementVNode as I, createVNode as L, defineComponent as R, mergeModels as ne, mergeProps as z, nextTick as re, normalizeClass as B, normalizeStyle as V, onBeforeUnmount as ie, onMounted as ae, onScopeDispose as oe, onUnmounted as se, openBlock as H, readonly as U, ref as W, renderList as ce, renderSlot as G, resolveDynamicComponent as le, shallowRef as ue, toDisplayString as de, unref as K, useId as fe, useModel as pe, useSlots as me, useTemplateRef as he, watch as q, withCtx as J, withDirectives as ge } from "vue";
22
+ import { DropdownMenuTrigger as _e, PopoverTrigger as ve, Primitive as ye, SelectIcon as be, SelectTrigger as xe, TabsIndicator as Se, TabsList as Ce, TabsRoot as Y, TabsTrigger as we, useForwardProps as Te, useForwardPropsEmits as Ee } from "reka-ui";
23
+ import { SpringProgress as X } from "@mkbabb/keyframes.js";
24
+ import { rawOklabToOklch as De, srgbToOKLab as Oe } from "@mkbabb/value.js";
25
+ //#region src/components/custom/dock/composables/useDockFission.ts
26
+ var ke = {
27
+ beside: {
28
+ dx: 1,
29
+ dy: 0
30
+ },
31
+ above: {
32
+ dx: 0,
33
+ dy: -1
34
+ },
35
+ below: {
36
+ dx: 0,
37
+ dy: 1
38
+ }
39
+ }, Ae = {
40
+ search: {
41
+ context: "search",
42
+ vector: "radial",
43
+ neckHold: T.radialBurst.neckHold,
44
+ staggerRank: (e, t) => {
45
+ let n = (t - 1) / 2;
46
+ return Math.round(Math.abs(e - n));
47
+ },
48
+ squishPeak: "late"
49
+ },
50
+ media: {
51
+ context: "media",
52
+ vector: "lateral",
53
+ neckHold: T.lateralPeel.neckHold,
54
+ staggerRank: (e, t) => {
55
+ let n = (t - 1) / 2;
56
+ return Math.round(n - Math.abs(e - n));
57
+ },
58
+ squishPeak: "long"
59
+ },
60
+ nav: {
61
+ context: "nav",
62
+ vector: "inward-merge",
63
+ neckHold: T.inwardMerge.neckHold,
64
+ staggerRank: (e, t) => {
65
+ let n = (t - 1) / 2;
66
+ return Math.round(n - Math.abs(e - n));
67
+ },
68
+ squishPeak: "coalesce"
69
+ }
70
+ }, Z = .02;
71
+ function je(e) {
72
+ let { rootEl: t, signature: n, placement: r, maxStretch: i, seamTensionCap: a = .12, seamTensionGain: s = .6, staggerStep: c = .08 } = e, l = e.respectReducedMotion !== !1;
73
+ function u() {
74
+ return ke[r?.value ?? "beside"];
75
+ }
76
+ let d = W(0), f = W(!1), p = 0, m = null, h = E({ respectReducedMotion: l }), g = /* @__PURE__ */ new Set(), _ = 0;
77
+ function v() {
78
+ return t.value;
79
+ }
80
+ function y() {
81
+ return l && typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
82
+ }
83
+ function b() {
84
+ m &&= (m.dispose(), null);
85
+ }
86
+ function x(e) {
87
+ let t = n.value, r = g.size, i = Math.min(a, Math.max(0, h.speed.value * s)), o = v();
88
+ if (o) {
89
+ o.style.setProperty("--seam-tension", String(i));
90
+ let t = u();
91
+ o.style.setProperty("--island-t", String(e)), o.style.setProperty("--island-dx", String(t.dx)), o.style.setProperty("--island-dy", String(t.dy));
92
+ }
93
+ for (let n of g) {
94
+ let a = n.el.value;
95
+ if (!a) continue;
96
+ let o = t.staggerRank(n.rank, r) * c, s = Math.max(1e-4, 1 - o), l = Math.min(1, Math.max(0, (e - o) / s));
97
+ n.flex.drive(l);
98
+ let u = n.vectorOf();
99
+ a.style.setProperty("--split-dx", String(u.dx)), a.style.setProperty("--split-dy", String(u.dy)), a.style.setProperty("--i", String(n.rank)), a.style.setProperty("--neck-t", String(l));
100
+ let d = (l * 360 + i * 60) % 360;
101
+ a.style.setProperty("--neck-specular-angle", `${d.toFixed(1)}deg`), a.style.setProperty("--stretch", String(n.flex.stretch.value));
102
+ }
103
+ }
104
+ function C() {
105
+ d.value = p;
106
+ let e = v(), t = u();
107
+ e && (e.style.setProperty("--dock-split-t", String(p)), e.style.setProperty("--island-t", String(p)), e.style.setProperty("--island-dx", String(t.dx)), e.style.setProperty("--island-dy", String(t.dy)), e.style.setProperty("--seam-tension", "0"), p < Z ? (e.removeAttribute("data-fissioning"), e.removeAttribute("data-fissioned")) : (e.setAttribute("data-fissioning", ""), e.setAttribute("data-fissioned", "")), e.removeAttribute("data-merging")), h.tick(0);
108
+ for (let e of g) {
109
+ let t = e.el.value;
110
+ if (!t) continue;
111
+ let n = e.vectorOf();
112
+ e.flex.drive(p), t.style.setProperty("--split-dx", String(n.dx)), t.style.setProperty("--split-dy", String(n.dy)), t.style.setProperty("--i", String(e.rank)), t.style.setProperty("--neck-t", String(p)), t.style.setProperty("--neck-specular-angle", `${(p * 360).toFixed(1)}deg`), t.style.setProperty("--stretch", "1");
113
+ }
114
+ f.value = p >= Z;
115
+ }
116
+ function w() {
117
+ let e = v();
118
+ if (!e) return;
119
+ if (y()) {
120
+ b(), C();
121
+ return;
122
+ }
123
+ let t = m !== null && !m.settled ? m.velocity : 0;
124
+ b(), m = new X({
125
+ response: S.response,
126
+ dampingFraction: S.dampingFraction,
127
+ initial: d.value,
128
+ respectReducedMotion: !0
129
+ });
130
+ let n = m;
131
+ n.reset(d.value, t), n.target = p, e.setAttribute("data-fissioning", ""), p >= Z && e.setAttribute("data-fissioned", ""), p < Z ? e.setAttribute("data-merging", "") : e.removeAttribute("data-merging"), _ = 0, n.play((e) => {
132
+ let t = v();
133
+ if (!t) return;
134
+ d.value = e, t.style.setProperty("--dock-split-t", String(e));
135
+ let r = typeof performance < "u" ? performance.now() : Date.now(), i = _ === 0 ? 16 : r - _;
136
+ _ = r, h.tick(i), x(e), n.settled && (f.value = p >= Z, p < Z && (t.removeAttribute("data-fissioning"), t.removeAttribute("data-fissioned"), t.style.removeProperty("--seam-tension")), t.removeAttribute("data-merging"), b());
137
+ });
138
+ }
139
+ function T() {
140
+ p = 1, w();
141
+ }
142
+ function D() {
143
+ p = 0, w();
144
+ }
145
+ function O() {
146
+ p >= Z ? D() : T();
147
+ }
148
+ function k(e) {
149
+ h.onPointerMove(e);
150
+ }
151
+ function ee(e) {
152
+ let t = typeof e.vector == "function" ? e.vector : () => e.vector, n = o({
153
+ from: 0,
154
+ to: 0,
155
+ axis: "width",
156
+ squishLaw: "tanh",
157
+ maxStretch: i ?? 1.08
158
+ }), r = {
159
+ el: e.el,
160
+ vectorOf: t,
161
+ rank: e.rank,
162
+ flex: n,
163
+ stop: () => {}
164
+ };
165
+ return g.add(r), { release: () => {
166
+ g.delete(r);
167
+ } };
168
+ }
169
+ function A() {
170
+ b(), h.dispose();
171
+ }
172
+ return oe(A), {
173
+ t: d,
174
+ fissioned: f,
175
+ registerPiece: ee,
176
+ split: T,
177
+ merge: D,
178
+ toggle: O,
179
+ onPointerMove: k,
180
+ dispose: A
181
+ };
182
+ }
183
+ //#endregion
19
184
  //#region src/composables/glass/useGlassBackdropLuminance.ts
20
- var ve = "(prefers-reduced-motion: reduce)", Q = 32;
21
- function ye(e) {
185
+ var Me = "(prefers-reduced-motion: reduce)", Q = 32, $ = 12, Ne = .72, Pe = .06, Fe = .004;
186
+ function Ie() {
187
+ return {
188
+ weight: new Float64Array($),
189
+ sumCos: new Float64Array($),
190
+ sumSin: new Float64Array($),
191
+ totalMass: 0,
192
+ n: 0
193
+ };
194
+ }
195
+ function Le(e, t, n, r, i) {
196
+ e.n++;
197
+ let [a, o, s] = Oe(t, n, r), [, c, l] = De(a, o, s);
198
+ if (!Number.isFinite(c) || !Number.isFinite(l) || c <= 0) return;
199
+ let u = c * i;
200
+ if (u <= 0) return;
201
+ let d = l * Math.PI / 180, f = Math.floor(l / 360 * $) % $;
202
+ f < 0 && (f += $), e.weight[f] += u, e.sumCos[f] += u * Math.cos(d), e.sumSin[f] += u * Math.sin(d), e.totalMass += u;
203
+ }
204
+ function Re(e) {
205
+ if (e.n === 0 || e.totalMass / e.n < Fe) return "transparent";
206
+ let t = 0;
207
+ for (let n = 1; n < $; n++) e.weight[n] > e.weight[t] && (t = n);
208
+ if (e.weight[t] <= 0) return "transparent";
209
+ let n = Math.atan2(e.sumSin[t], e.sumCos[t]) * 180 / Math.PI;
210
+ return n < 0 && (n += 360), `oklch(${Ne} ${Pe} ${n.toFixed(1)})`;
211
+ }
212
+ function ze(e) {
22
213
  return typeof HTMLCanvasElement < "u" && e instanceof HTMLCanvasElement;
23
214
  }
24
- function be(e) {
215
+ function Be(e) {
25
216
  let t = e / 255;
26
217
  return t <= .03928 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4;
27
218
  }
28
- function xe(e, t, n) {
29
- return .2126 * be(e) + .7152 * be(t) + .0722 * be(n);
219
+ function Ve(e, t, n) {
220
+ return .2126 * Be(e) + .7152 * Be(t) + .0722 * Be(n);
30
221
  }
31
- function Se(e) {
222
+ function He(e) {
32
223
  let t = e.match(/rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)(?:[,\s/]+([\d.]+))?/i);
33
224
  return t ? [
34
225
  Number(t[1]),
@@ -37,36 +228,36 @@ function Se(e) {
37
228
  t[4] === void 0 ? 1 : Number(t[4])
38
229
  ] : null;
39
230
  }
40
- function Ce(e) {
231
+ function Ue(e) {
41
232
  if (!e) return null;
42
- if (ye(e)) return e;
233
+ if (ze(e)) return e;
43
234
  if (typeof e == "function") {
44
235
  let t = e();
45
- return ye(t) ? t : null;
236
+ return ze(t) ? t : null;
46
237
  }
47
238
  if (typeof e == "string" && typeof document < "u") {
48
239
  let t = document.querySelector(e);
49
- return ye(t) ? t : null;
240
+ return ze(t) ? t : null;
50
241
  }
51
242
  return null;
52
243
  }
53
- function we(e, t = {}) {
54
- let { lightThreshold: n = .6, minSampleIntervalMs: r = 250, writeBucket: i = !0 } = t, a = Math.max(250, r), o = W(null), c = W(null);
244
+ function We(e, t = {}) {
245
+ let { lightThreshold: n = .6, minSampleIntervalMs: r = 250, writeBucket: i = !0 } = t, a = Math.max(250, r), o = W(null), s = W(null);
55
246
  if (typeof window > "u") return {
56
247
  luma: U(o),
57
- bucket: U(c),
248
+ bucket: U(s),
58
249
  sampleNow: () => {},
59
250
  dispose: () => {}
60
251
  };
61
- let u = window.matchMedia(ve), d = u.matches, f = null, p = null;
252
+ let c = window.matchMedia(Me), l = c.matches, u = null, f = null;
62
253
  function m() {
63
- return f || (f = document.createElement("canvas"), f.width = Q, f.height = Q), p ||= f.getContext("2d", { willReadFrequently: !0 }), p;
254
+ return u || (u = document.createElement("canvas"), u.width = Q, u.height = Q), f ||= u.getContext("2d", { willReadFrequently: !0 }), f;
64
255
  }
65
256
  function h() {
66
257
  return t.live === void 0 ? e.value?.dataset.glassSample === "live" : t.live;
67
258
  }
68
259
  function g(e) {
69
- let n = Ce(t.backgroundCanvas);
260
+ let n = Ue(t.backgroundCanvas);
70
261
  if (!n || n.width === 0 || n.height === 0) return null;
71
262
  let r = m();
72
263
  if (!r) return null;
@@ -76,12 +267,15 @@ function we(e, t = {}) {
76
267
  if (u <= 0 || d <= 0) return null;
77
268
  try {
78
269
  r.clearRect(0, 0, Q, Q), r.drawImage(n, c, l, u, d, 0, 0, Q, Q);
79
- let e = r.getImageData(0, 0, Q, Q).data, t = 0, i = 0;
270
+ let e = r.getImageData(0, 0, Q, Q).data, t = 0, i = 0, a = Ie();
80
271
  for (let n = 0; n < e.length; n += 4) {
81
- let r = e[n + 3] / 255, a = e[n] * r + 255 * (1 - r), o = e[n + 1] * r + 255 * (1 - r), s = e[n + 2] * r + 255 * (1 - r);
82
- t += xe(a, o, s), i++;
272
+ let r = e[n + 3] / 255, o = e[n] * r + 255 * (1 - r), s = e[n + 1] * r + 255 * (1 - r), c = e[n + 2] * r + 255 * (1 - r);
273
+ t += Ve(o, s, c), Le(a, o, s, c, r), i++;
83
274
  }
84
- return i > 0 ? t / i : null;
275
+ return i > 0 ? {
276
+ luma: t / i,
277
+ ambientHue: Re(a)
278
+ } : null;
85
279
  } catch {
86
280
  return null;
87
281
  }
@@ -90,71 +284,79 @@ function we(e, t = {}) {
90
284
  let t = e.getBoundingClientRect(), n = t.left + t.width / 2, r = t.top + t.height / 2, i = document.elementsFromPoint(n, r);
91
285
  for (let t of i) {
92
286
  if (!(t instanceof HTMLElement) || t === e || e.contains(t)) continue;
93
- let n = getComputedStyle(t).backgroundColor, r = Se(l(n, e));
94
- if (r && !(r[3] < .5)) return xe(r[0], r[1], r[2]);
287
+ let n = getComputedStyle(t).backgroundColor, r = He(p(n, e));
288
+ if (r && !(r[3] < .5)) return v(r);
95
289
  }
96
- let a = Se(l(getComputedStyle(document.body).backgroundColor, e));
97
- return a ? xe(a[0], a[1], a[2]) : null;
98
- }
99
- function v(t) {
100
- o.value = t;
101
- let r = e.value;
102
- if (r && (r.style.setProperty("--glass-backdrop-luma", t.toFixed(3)), i)) {
103
- let e = t >= n ? "light" : "dark";
104
- c.value = e, r.style.setProperty("--glass-backdrop", e);
290
+ let a = He(p(getComputedStyle(document.body).backgroundColor, e));
291
+ return a ? v(a) : null;
292
+ }
293
+ function v(e) {
294
+ let t = Ie();
295
+ return Le(t, e[0], e[1], e[2], e[3]), {
296
+ luma: Ve(e[0], e[1], e[2]),
297
+ ambientHue: Re(t)
298
+ };
299
+ }
300
+ function y(t) {
301
+ let r = t.luma;
302
+ o.value = r;
303
+ let a = e.value;
304
+ if (a && (a.style.setProperty("--glass-backdrop-luma", r.toFixed(3)), a.style.setProperty("--glass-ambient-hue", t.ambientHue), i)) {
305
+ let e = r >= n ? "light" : "dark";
306
+ s.value = e, a.style.setProperty("--glass-backdrop", e);
105
307
  }
106
308
  }
107
- let y = 0;
108
- function b() {
309
+ let b = 0;
310
+ function x() {
109
311
  let t = e.value;
110
312
  if (!t) return;
111
313
  let n = h() ? g(t) ?? _(t) : _(t);
112
- n !== null && v(n), y = typeof performance < "u" ? performance.now() : Date.now();
314
+ n !== null && y(n), b = typeof performance < "u" ? performance.now() : Date.now();
113
315
  }
114
- let S = w(({ now: e }) => {
115
- d || e - y < a || b();
316
+ let S = ee(({ now: e }) => {
317
+ l || e - b < a || x();
116
318
  }, {
117
319
  immediate: !1,
118
320
  pauseWhenHidden: !0,
119
321
  respectReducedMotion: !0
120
- }), C = x(() => e.value, {
322
+ }), C = D(() => e.value, {
121
323
  pause: () => S.pause(),
122
324
  resume: () => {
123
- h() && !d && S.resume();
325
+ h() && !l && S.resume();
124
326
  }
125
- }, { rootMargin: "200px" }), T = s(e, () => b());
126
- function E() {
127
- d = u.matches, d ? (S.stop(), b()) : h() && S.start();
327
+ }, { rootMargin: "200px" }), w = d(e, () => x());
328
+ function T() {
329
+ l = c.matches, l ? (S.stop(), x()) : h() && S.start();
128
330
  }
129
- let D = () => E();
130
- typeof u.addEventListener == "function" && u.addEventListener("change", D);
131
- let O = Y(() => e.value, (e) => {
132
- e && (b(), E());
331
+ let E = () => T();
332
+ typeof c.addEventListener == "function" && c.addEventListener("change", E);
333
+ let O = q(() => e.value, (e) => {
334
+ e && (x(), T());
133
335
  }, {
134
336
  immediate: !0,
135
337
  flush: "post"
136
338
  });
137
339
  function k() {
138
- O(), S.dispose(), C.dispose(), T.stop(), typeof u.removeEventListener == "function" && u.removeEventListener("change", D), f = null, p = null;
340
+ O(), S.dispose(), C.dispose(), w.stop(), typeof c.removeEventListener == "function" && c.removeEventListener("change", E), u = null, f = null;
139
341
  }
140
- return B(k), {
342
+ return oe(k), {
141
343
  luma: U(o),
142
- bucket: U(c),
143
- sampleNow: b,
344
+ bucket: U(s),
345
+ sampleNow: x,
144
346
  dispose: k
145
347
  };
146
348
  }
147
349
  //#endregion
148
350
  //#region src/components/custom/dock/composables/isTeleportedTarget.ts
149
- function Te(e, t) {
351
+ function Ge(e, t) {
150
352
  if (!(e instanceof Element)) return !1;
151
353
  let n = e.closest("[data-glass-dock-portal]");
152
354
  return n ? t ? n.getAttribute("data-glass-dock-owner") === t : !0 : !1;
153
355
  }
154
356
  //#endregion
155
357
  //#region src/components/custom/dock/composables/useDockState.ts
156
- function Ee(e) {
157
- let { collapseDelay: t = 2500, rootEl: n, alwaysExpanded: r = !1, isTransitioning: i, dockId: a, onStateChange: o } = e, s = () => typeof r == "boolean" ? r : r.value, c = s(), l = W(c ? "pinned" : "collapsed"), u = W(c), d = W(c), f = null, p = W(0), m = O(() => p.value > 0), h = null, g = null, _ = !1, v = null;
358
+ function Ke(e) {
359
+ let { collapseDelay: t = 3600, rootEl: n, alwaysExpanded: r = !1, isTransitioning: i, dockId: a, onStateChange: o } = e, s = () => typeof r == "boolean" ? r : r.value, c = s(), l = W(c ? "pinned" : "collapsed"), u = W(c), d = W(c), f = null, p = W(0), m = M(() => p.value > 0), h = null, g = null, _ = !1, v = null;
158
360
  function y() {
159
361
  v &&= (clearTimeout(v), null);
160
362
  }
@@ -189,186 +391,139 @@ function Ee(e) {
189
391
  composed: !0
190
392
  }));
191
393
  }
192
- function k() {
394
+ function O() {
193
395
  if (s()) {
194
396
  l.value = "pinned", S();
195
397
  return;
196
398
  }
197
399
  _ ||= (_ = !0, C(), y(), D(), l.value = "collapsed", S(), !1);
198
400
  }
199
- function A() {
401
+ function k() {
200
402
  if (s()) {
201
403
  l.value = "pinned", S();
202
404
  return;
203
405
  }
204
406
  C(), y(), l.value = "hover", S();
205
407
  }
206
- function j() {
408
+ function ee() {
207
409
  s() || (C(), l.value === "collapsed" && (y(), v = setTimeout(() => {
208
410
  v = null, !s() && l.value === "collapsed" && (l.value = "hover", S());
209
411
  }, 60)));
210
412
  }
211
- function M(e) {
413
+ function A(e) {
212
414
  if (!s() && (y(), l.value === "hover")) {
213
415
  if (p.value > 0) return;
214
416
  if (e) {
215
417
  let t = n.value;
216
- if (t && e.relatedTarget instanceof Node && t.contains(e.relatedTarget) || Te(e.relatedTarget, a) || b(e)) return;
418
+ if (t && e.relatedTarget instanceof Node && t.contains(e.relatedTarget) || Ge(e.relatedTarget, a) || b(e)) return;
217
419
  }
218
420
  E();
219
421
  }
220
422
  }
221
- function N() {
423
+ function te() {
222
424
  s() || (C(), l.value === "collapsed" && (l.value = "hover", S()));
223
425
  }
224
- function P(e) {
426
+ function j(e) {
225
427
  if (s() || l.value !== "hover" || p.value > 0) return;
226
428
  let t = e.currentTarget;
227
- e.relatedTarget && t.contains(e.relatedTarget) || Te(e.relatedTarget, a) || E();
429
+ e.relatedTarget && t.contains(e.relatedTarget) || Ge(e.relatedTarget, a) || E();
228
430
  }
229
- function F() {
431
+ function N() {
230
432
  if (s()) {
231
433
  l.value = "pinned", S();
232
434
  return;
233
435
  }
234
436
  C(), y(), l.value = "pinned", S();
235
437
  }
236
- function I() {
438
+ function P() {
237
439
  p.value++, C();
238
440
  }
239
- function L() {
441
+ function F() {
240
442
  p.value = Math.max(0, p.value - 1), p.value === 0 && l.value === "hover" && (C(), f = setTimeout(() => {
241
443
  p.value === 0 && l.value === "hover" && E();
242
444
  }, Math.min(t, 800)));
243
445
  }
244
- function R(e) {
446
+ function I(e) {
245
447
  if (s() || i?.value) return;
246
448
  let t = n.value;
247
- !t || t.contains(e.target) || Te(e.target, a) || k();
449
+ !t || t.contains(e.target) || Ge(e.target, a) || O();
248
450
  }
249
- return Y(u, (e) => {
451
+ return q(u, (e) => {
250
452
  e ? (T(), g = requestAnimationFrame(() => {
251
- g = null, u.value && (document.addEventListener("pointerdown", R, !0), h = () => {
252
- document.removeEventListener("pointerdown", R, !0), h = null;
453
+ g = null, u.value && (document.addEventListener("pointerdown", I, !0), h = () => {
454
+ document.removeEventListener("pointerdown", I, !0), h = null;
253
455
  });
254
456
  })) : T();
255
- }), typeof r == "boolean" ? r && (l.value = "pinned", S()) : Y(r, (e) => {
457
+ }), typeof r == "boolean" ? r && (l.value = "pinned", S()) : q(r, (e) => {
256
458
  if (e) {
257
459
  C(), l.value = "pinned", S();
258
460
  return;
259
461
  }
260
462
  l.value = "collapsed", S();
261
- }, { immediate: !0 }), V(() => {
463
+ }, { immediate: !0 }), se(() => {
262
464
  C(), y(), T();
263
465
  }), {
264
466
  state: l,
265
467
  expanded: u,
266
468
  isPinned: d,
267
469
  isHeld: m,
268
- onMouseEnter: j,
269
- onMouseLeave: M,
270
- onFocusIn: N,
271
- onFocusOut: P,
272
- onClickCollapsed: F,
273
- keepOpen: I,
274
- release: L,
275
- expand: A,
276
- collapse: k
470
+ onMouseEnter: ee,
471
+ onMouseLeave: A,
472
+ onFocusIn: te,
473
+ onFocusOut: j,
474
+ onClickCollapsed: N,
475
+ keepOpen: P,
476
+ release: F,
477
+ expand: k,
478
+ collapse: O
277
479
  };
278
480
  }
279
481
  //#endregion
280
482
  //#region src/components/custom/dock/composables/dockMorphMeasure.ts
281
- function De(e) {
483
+ function qe(e) {
282
484
  return e === "vertical" ? "height" : "width";
283
485
  }
284
- function Oe(e) {
285
- return De(e) === "width" ? "inline-size" : "block-size";
286
- }
287
- function $(e, t) {
288
- return e.getBoundingClientRect()[De(t)];
289
- }
290
- function ke(e) {
291
- e.style.removeProperty("--dock-morph-from"), e.style.removeProperty("--dock-morph-to");
486
+ function Je(e, t) {
487
+ return e.getBoundingClientRect()[qe(t)];
292
488
  }
293
- function Ae(e) {
489
+ function Ye(e) {
294
490
  if (!e || typeof getComputedStyle != "function") return 44;
295
- let t = getComputedStyle(e).getPropertyValue("--dock-morph-min").trim();
296
- if (!t) return 44;
297
- let n = Number.parseFloat(t);
491
+ let t = getComputedStyle(e).getPropertyValue("--dock-morph-min").trim(), n = Number.parseFloat(t);
298
492
  return Number.isFinite(n) && n > 0 ? n : 44;
299
493
  }
300
- function je(e, t, n) {
301
- let r = [];
302
- for (let i of n) {
303
- if (i === e) continue;
304
- let n = i.containerEl.value;
305
- n && n !== t && t.contains(n) && r.push(i);
306
- }
307
- return r;
308
- }
309
- function Me(e) {
310
- let t = e.containerEl.value;
311
- if (!t) return () => {};
312
- let n = Oe(e.axis.value), r = t.style.getPropertyValue(n);
313
- return t.style.setProperty(n, "max-content"), () => {
314
- r ? t.style.setProperty(n, r) : t.style.removeProperty(n);
315
- };
316
- }
317
- function Ne(e, t, n) {
318
- let r = e.axis.value, i = Oe(r);
319
- ke(t);
320
- let a = je(e, t, n).map((e) => Me(e)), o = t.style.getPropertyValue(i);
321
- t.style.setProperty(i, "max-content");
322
- let s = $(t, r);
323
- o ? t.style.setProperty(i, o) : t.style.removeProperty(i);
324
- for (let e of a) e();
325
- return s;
326
- }
327
- function Pe(e, t, n, r, i) {
328
- if (t !== e.txId) return;
329
- let a = e.containerEl.value, o = n;
330
- if (!a || !o) return;
331
- let s = e.axis.value, c = Ne(e, a, r);
332
- a.style.setProperty("--dock-morph-from", `${c}px`), a.style.setProperty("--dock-morph-to", `${c}px`), o.style.setProperty("--dock-morph-t", "1"), a.getBoundingClientRect()[De(s)], i.settleTarget(e), i.maybeSettleRoot();
333
- }
334
- function Fe(e, t) {
335
- for (let n of t) {
336
- if (n === e) continue;
337
- let t = n.containerEl.value;
338
- if (t && t.style.getPropertyValue("--dock-morph-to")) {
339
- let e = $(t, n.axis.value);
340
- t.style.setProperty("--dock-morph-from", `${e}px`);
494
+ function Xe(e) {
495
+ let { rootEl: t, contentEl: n, axis: r, expanded: i } = e, a = null, o = 0, s = 0;
496
+ function c(e) {
497
+ return e.hasAttribute("data-morphing");
498
+ }
499
+ function l() {
500
+ let e = t.value, a = n.value;
501
+ if (!e || !a) return;
502
+ let l = r.value, u = Ye(e);
503
+ if (s <= 0 && (s = u), !c(e)) {
504
+ let t = Je(e, l);
505
+ t > 0 && (i.value ? o = t : s = t);
341
506
  }
507
+ let d = o > 0 ? o : Math.max(Je(a, l), s), f = Math.max(d, s);
508
+ e.style.setProperty("--dock-collapsed-px", `${s}px`), e.style.setProperty("--dock-expanded-px", `${f}px`);
342
509
  }
343
- }
344
- function Ie(e) {
345
- e && (e.style.removeProperty("--dock-root-morph-from"), e.style.removeProperty("--dock-root-morph-to"));
346
- }
347
- function Le(e, t, n) {
348
- e && (e.style.setProperty("--dock-root-morph-from", `${t}px`), e.style.setProperty("--dock-root-morph-to", `${n}px`));
349
- }
350
- function Re(e, t, n, r, i, a, o, s, c) {
351
- if (t !== e.txId) return;
352
- let l = e.containerEl.value, u = o;
353
- if (!l || !u) return;
354
- ke(l);
355
- let d = Oe(n), f = je(e, l, s).map((e) => Me(e)), p = a, m = p ? u.style.getPropertyValue("--dock-root-morph-from") : "", h = p ? u.style.getPropertyValue("--dock-root-morph-to") : "";
356
- p && Ie(u), l.style.setProperty(d, "max-content");
357
- let g = $(l, n), _ = p ? $(u, n) : 0;
358
- l.style.removeProperty(d);
359
- let v = Ae(l), y = g > 0 ? g : v, b = !p || _ > 0 ? _ : Ae(u);
360
- p && (m && u.style.setProperty("--dock-root-morph-from", m), h && u.style.setProperty("--dock-root-morph-to", h));
361
- for (let e of f) e();
362
- c.armTarget(e, t, r, y), a && (Math.abs(b - i) < .5 ? Ie(u) : Le(u, i, b));
510
+ function u(e) {
511
+ a &&= (a.disconnect(), null), !(!e || typeof ResizeObserver > "u") && (a = new ResizeObserver(() => l()), n.value && a.observe(n.value), a.observe(e), l());
512
+ }
513
+ q(t, (e) => u(e), { immediate: !0 }), q(n, () => u(t.value)), q(i, () => l());
514
+ let d = typeof document < "u" ? document.fonts : void 0;
515
+ d && d.ready.then(() => l()), oe(() => {
516
+ a && a.disconnect(), a = null;
517
+ });
363
518
  }
364
519
  //#endregion
365
520
  //#region src/components/custom/dock/composables/dockMorphContext.ts
366
- var ze = d(g), { KEY: Be } = ze;
367
- function Ve(e) {
368
- ze.provide(e);
521
+ var Ze = h(b), { KEY: Qe } = Ze;
522
+ function $e(e) {
523
+ Ze.provide(e);
369
524
  }
370
- var He = ze.use;
371
- function Ue(e) {
525
+ var et = Ze.use;
526
+ function tt(e) {
372
527
  let { rootEl: t, outerEl: n, outerActiveLayer: r, outerAxis: i } = e, a = null, o = /* @__PURE__ */ new Set();
373
528
  function s() {
374
529
  return t.value;
@@ -377,156 +532,124 @@ function Ue(e) {
377
532
  a &&= (a.dispose(), null);
378
533
  }
379
534
  function l() {
380
- return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
381
- }
382
- function u() {
383
- for (let e of o) {
384
- let t = e.containerEl.value;
385
- if (t && t.style.getPropertyValue("--dock-morph-to")) return !0;
386
- }
387
- return !1;
535
+ let e = s();
536
+ return !!e && e.hasAttribute("data-morphing");
388
537
  }
389
- function d(e) {
390
- let t = e.containerEl.value;
391
- t && ke(t), e === b && Ie(s()), e.leavingLayer.value = null;
538
+ function u(e) {
539
+ e.leavingLayer.value = null;
392
540
  }
393
- function f() {
394
- if (u()) return;
541
+ function d() {
395
542
  let e = s();
396
- e && (e.style.removeProperty("--dock-morph-t"), e.removeAttribute("data-morphing")), c();
543
+ e && (e.style.removeProperty("--dock-morph-t"), e.removeAttribute("data-morphing"), e.removeAttribute("data-punching")), c();
397
544
  }
398
- function p() {
545
+ function f() {
399
546
  let e = s();
400
547
  if (!e) return;
401
548
  let t = a !== null && !a.settled ? a.velocity : 0;
402
- c(), a = new _e({
403
- response: v.response,
404
- dampingFraction: v.dampingFraction,
549
+ c(), a = new X({
550
+ response: S.response,
551
+ dampingFraction: S.dampingFraction,
405
552
  initial: 0,
406
553
  respectReducedMotion: !0
407
554
  });
408
555
  let n = a;
409
- n.reset(0, t), n.target = 1, e.style.setProperty("--dock-morph-t", "0"), n.play((e) => {
556
+ n.reset(0, t), n.target = 1, e.setAttribute("data-morphing", ""), e.setAttribute("data-punching", ""), e.style.setProperty("--dock-morph-t", "0"), n.play((e) => {
410
557
  let t = s();
411
- if (t && t.style.setProperty("--dock-morph-t", `${e}`), n.settled) {
412
- for (let e of o) {
413
- let t = e.containerEl.value;
414
- t && t.style.getPropertyValue("--dock-morph-to") && d(e);
415
- }
416
- f();
558
+ if (t && (t.style.setProperty("--dock-morph-t", `${e}`), e > .5 && t.hasAttribute("data-punching") && t.removeAttribute("data-punching")), n.settled) {
559
+ let e = s();
560
+ e && e.removeAttribute("data-punching");
561
+ for (let e of o) u(e);
562
+ d();
417
563
  }
418
564
  });
419
565
  }
420
- function m(e, t, n, r) {
421
- if (t !== e.txId) return;
422
- let i = e.containerEl.value, a = s();
423
- if (!(!i || !a)) {
424
- if (Math.abs(r - n) < .5) {
425
- d(e), f();
566
+ function p(e, t, n) {
567
+ if (t !== n) {
568
+ if (!s()) {
569
+ e.currentLayer.value = t, e.leavingLayer.value = null;
426
570
  return;
427
571
  }
428
- i.style.setProperty("--dock-morph-from", `${n}px`), i.style.setProperty("--dock-morph-to", `${r}px`), a.setAttribute("data-morphing", ""), p();
429
- }
430
- }
431
- let h = {
432
- settleTarget: d,
433
- maybeSettleRoot: f
434
- };
435
- function g(e, t, n) {
436
- if (t === n) return;
437
- let r = e.containerEl.value, i = s();
438
- if (!r || !i) {
439
- e.currentLayer.value = t, e.leavingLayer.value = null;
440
- return;
441
- }
442
- let a = ++e.txId, c = e.axis.value, u = $(r, c), d = e === b ? $(i, c) : 0;
443
- if (e.leavingLayer.value = n, e.currentLayer.value = t, Fe(e, o), r.style.setProperty("--dock-morph-from", `${u}px`), r.style.setProperty("--dock-morph-to", `${u}px`), i.style.setProperty("--dock-morph-t", "0"), i.setAttribute("data-morphing", ""), e === b && Le(s(), d, d), l()) {
444
- L(() => Pe(e, a, s(), o, h));
445
- return;
572
+ e.leavingLayer.value = n, e.currentLayer.value = t, f();
446
573
  }
447
- L(() => requestAnimationFrame(() => Re(e, a, c, u, d, e === b, s(), o, { armTarget: m })));
448
574
  }
449
- function _(e) {
575
+ function m(e) {
450
576
  let t = {
451
577
  containerEl: e.containerEl,
452
- activeLayer: e.activeLayer,
453
578
  axis: e.axis,
579
+ activeLayer: e.activeLayer,
454
580
  currentLayer: W(e.activeLayer.value),
455
581
  leavingLayer: W(null),
456
- txId: 0,
457
582
  stop: () => {}
458
583
  };
459
- return t.stop = Y(e.activeLayer, (e, n) => {
460
- g(t, e, n);
584
+ return t.stop = q(e.activeLayer, (e, n) => {
585
+ p(t, e, n);
461
586
  }), o.add(t), t;
462
587
  }
463
- function y(e) {
464
- e.stop(), o.delete(e), f();
588
+ function h(e) {
589
+ e.stop(), o.delete(e), l() || c();
465
590
  }
466
- let b = _({
591
+ let g = m({
467
592
  containerEl: n,
468
593
  activeLayer: r,
469
594
  axis: i
470
- }), x = { registerGroup(e) {
471
- let t = _(e);
595
+ }), _ = { registerGroup(e) {
596
+ let t = m(e);
472
597
  return {
473
598
  currentLayer: U(t.currentLayer),
474
599
  leavingLayer: U(t.leavingLayer),
475
- release: () => y(t)
600
+ release: () => h(t)
476
601
  };
477
602
  } };
478
- function S(e) {
603
+ function v(e) {
479
604
  let t = n.value;
480
- if (!t || e.target !== t) return;
481
- let r = Oe(i.value);
482
- e.propertyName !== r && e.propertyName !== De(i.value) || a && a.settled && (d(b), f());
605
+ !t || e.target !== t || e.propertyName !== "width" && e.propertyName !== "height" && e.propertyName !== qe(i.value) || a && a.settled && (u(g), d());
483
606
  }
484
- return V(() => {
607
+ return se(() => {
485
608
  for (let e of o) e.stop();
486
609
  o.clear(), c();
487
610
  }), {
488
- context: x,
489
- outerCurrentLayer: U(b.currentLayer),
490
- onOuterTransitionEnd: S
611
+ context: _,
612
+ outerCurrentLayer: U(g.currentLayer),
613
+ onOuterTransitionEnd: v
491
614
  };
492
615
  }
493
616
  //#endregion
494
617
  //#region src/components/custom/dock/composables/useDockShellProps.ts
495
- function We(e) {
496
- let t = O(() => {
618
+ function nt(e) {
619
+ let t = M(() => {
497
620
  if (e.containerName) return {
498
621
  "container-type": "inline-size",
499
622
  "container-name": e.containerName
500
623
  };
501
- }), n = O(() => e.collapseDelay ?? 2e3), r = O(() => e.layout ?? "linear"), i = O(() => e.shape ?? "pill"), a = O(() => e.orientation ?? "horizontal"), o = O(() => e.density ?? "comfortable"), s = O(() => e.overflow === "scroll" ? a.value === "vertical" ? "dock-scroll-y" : "dock-scroll-x" : null), c = O(() => e.alwaysExpanded || r.value === "grid");
624
+ }), n = M(() => e.collapseDelay ?? 3600), r = M(() => e.layout ?? "linear"), i = M(() => e.shape ?? "pill"), a = M(() => e.orientation ?? "horizontal"), o = M(() => e.density ?? "comfortable"), s = M(() => e.overflow === "scroll" ? a.value === "vertical" ? "dock-scroll-y" : "dock-scroll-x" : null), c = M(() => e.alwaysExpanded || r.value === "grid");
502
625
  return {
503
626
  containerStyle: t,
504
627
  collapseDelay: n,
505
- startCollapsed: O(() => c.value ? !1 : e.startCollapsed ?? !0),
628
+ startCollapsed: M(() => c.value ? !1 : e.startCollapsed ?? !0),
506
629
  layoutValue: r,
507
630
  shape: i,
508
631
  orientation: a,
509
632
  density: o,
510
633
  scrollClass: s,
511
634
  alwaysExpanded: c,
512
- fitContent: O(() => e.fitContent ?? !1)
635
+ fitContent: M(() => e.fitContent ?? !1)
513
636
  };
514
637
  }
515
638
  //#endregion
516
639
  //#region src/components/custom/dock/composables/useDockMorphWindow.ts
517
- function Ge(e) {
640
+ function rt(e) {
518
641
  let t = e.trim();
519
642
  return t ? t.endsWith("ms") ? Number.parseFloat(t) : t.endsWith("s") ? Number.parseFloat(t) * 1e3 : Number.parseFloat(t) || 0 : 0;
520
643
  }
521
- function Ke(e) {
522
- let t = getComputedStyle(e), n = t.transitionDuration.split(",").map(Ge), r = t.transitionDelay.split(",").map(Ge);
644
+ function it(e) {
645
+ let t = getComputedStyle(e), n = t.transitionDuration.split(",").map(rt), r = t.transitionDelay.split(",").map(rt);
523
646
  return Math.max(0, ...n.map((e, t) => e + (r[t] ?? r[0] ?? 0)));
524
647
  }
525
- function qe(e) {
526
- let t = Ge(getComputedStyle(e).getPropertyValue("--duration-normal") || "0.3s");
648
+ function at(e) {
649
+ let t = rt(getComputedStyle(e).getPropertyValue("--duration-normal") || "0.3s");
527
650
  return Math.max(t > 0 ? t * 2 : 0, 600);
528
651
  }
529
- function Je(e, t) {
652
+ function ot(e, t) {
530
653
  let n = null, r = 0;
531
654
  function i() {
532
655
  n &&= (clearTimeout(n), null);
@@ -537,12 +660,12 @@ function Je(e, t) {
537
660
  let o = ++r;
538
661
  i(), t.value = !0, n = setTimeout(() => {
539
662
  o === r && (t.value = !1, n = null);
540
- }, Math.max(Ke(a), qe(a)) + 50);
663
+ }, Math.max(it(a), at(a)) + 50);
541
664
  }
542
665
  function o(n) {
543
- n.target === e.value && p.has(n.propertyName) && (i(), r++, t.value = !1);
666
+ n.target === e.value && _.has(n.propertyName) && (i(), r++, t.value = !1);
544
667
  }
545
- return ee(i), {
668
+ return ie(i), {
546
669
  markTransitioning: a,
547
670
  onDockTransitionDone: o,
548
671
  clearTransitionTimer: i
@@ -550,15 +673,15 @@ function Je(e, t) {
550
673
  }
551
674
  //#endregion
552
675
  //#region src/components/custom/dock/composables/useDockClickIntegrity.ts
553
- function Ye(e) {
676
+ function st(e) {
554
677
  let { rootEl: t, visualExpanded: n } = e, r = null, i = !1, a = 0, o = null;
555
678
  function s() {
556
679
  o !== null && (clearTimeout(o), o = null);
557
680
  }
558
681
  function c() {
559
- a = l() + 320, s(), o = setTimeout(() => {
682
+ a = l() + 840, s(), o = setTimeout(() => {
560
683
  o = null;
561
- }, 320);
684
+ }, 840);
562
685
  }
563
686
  function l() {
564
687
  return typeof performance < "u" && typeof performance.now == "function" ? performance.now() : Date.now();
@@ -594,26 +717,142 @@ function Ye(e) {
594
717
  e.stopPropagation(), e.preventDefault(), r = null;
595
718
  }
596
719
  }
597
- return ee(s), {
720
+ return ie(s), {
598
721
  onPointerDownCapture: f,
599
722
  onClickCapture: m,
600
723
  markExpandFlip: c
601
724
  };
602
725
  }
603
726
  //#endregion
727
+ //#region src/components/custom/dock/composables/useDockItemDrag.ts
728
+ function ct() {
729
+ return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
730
+ }
731
+ function lt(e) {
732
+ if (!e) return [];
733
+ let t = e.querySelector(".dock-layer.is-active") ?? e, n = Array.from(t.querySelectorAll("[data-dock-draggable]"));
734
+ return n.length ? n : Array.from(t.querySelectorAll(".dock-icon-button"));
735
+ }
736
+ function ut(e) {
737
+ let t = W(!1), n = null, r = -1, i = -1, s = [], c = 0, l = 0, u = null, d = !1, f = 0, p = 0, m = o({
738
+ from: 0,
739
+ to: 1,
740
+ axis: "width",
741
+ squishLaw: "tanh",
742
+ maxStretch: () => 1.12
743
+ }), { response: h, dampingFraction: g } = a("dock"), _ = null, v = null;
744
+ function y() {
745
+ if (_) return _;
746
+ let e = new X({
747
+ response: h,
748
+ dampingFraction: g,
749
+ respectReducedMotion: !0
750
+ });
751
+ return _ = e, v = e.subscribe((r) => {
752
+ if (n && t.value === !1 && d) {
753
+ let t = (1 - r) * f;
754
+ x(n, t), ct() || m.drive(Math.min(1, r)), e.settled && (d = !1, D());
755
+ }
756
+ }), e.play(() => {}), e;
757
+ }
758
+ function b(e, t) {
759
+ let n = e.getBoundingClientRect();
760
+ return t ? n.left + n.width / 2 : n.top + n.height / 2;
761
+ }
762
+ function x(t, n) {
763
+ let r = e.axis() === "x";
764
+ t.style.transform = r ? `translateX(${n}px)` : `translateY(${n}px)`, t.style.setProperty("--stretch", ct() ? "1" : `${m.stretch.value}`);
765
+ }
766
+ function S(e) {
767
+ e.style.transform = "", e.style.removeProperty("--stretch"), e.classList.remove("glass-drag-lift"), e.style.removeProperty("z-index"), e.style.removeProperty("position");
768
+ }
769
+ function C(i) {
770
+ if (!e.enabled() || t.value || d) return;
771
+ let a = e.rootEl.value;
772
+ if (!a) return;
773
+ let o = i.target?.closest("[data-dock-draggable], .dock-icon-button");
774
+ if (!o || !a.contains(o)) return;
775
+ let f = lt(a), p = f.indexOf(o);
776
+ if (p < 0) return;
777
+ let m = e.axis() === "x";
778
+ s = f.map((e) => b(e, m)), n = o, r = p, l = s[p], c = m ? i.clientX : i.clientY, u = i.pointerId, t.value = !0, o.classList.add("glass-drag-lift"), o.style.position = "relative", o.style.zIndex = "20";
779
+ try {
780
+ o.setPointerCapture(i.pointerId);
781
+ } catch {}
782
+ i.preventDefault();
783
+ }
784
+ function w(r) {
785
+ if (!t.value || !n || u != null && r.pointerId !== u) return;
786
+ let i = (e.axis() === "x" ? r.clientX : r.clientY) - c;
787
+ ct() || m.drive(Math.min(1, Math.abs(i) / 120)), x(n, i);
788
+ }
789
+ function T(e) {
790
+ let t = r, n = Infinity;
791
+ return s.forEach((r, i) => {
792
+ let a = Math.abs(r - e);
793
+ a < n && (n = a, t = i);
794
+ }), t;
795
+ }
796
+ function E(r) {
797
+ if (!t.value || !n || u != null && r.pointerId !== u) return;
798
+ t.value = !1;
799
+ let a = (e.axis() === "x" ? r.clientX : r.clientY) - c, o = l + a, m = T(o);
800
+ if (p = s[m], f = o - p, i = m, ct()) {
801
+ d = !1, n && x(n, 0), D();
802
+ return;
803
+ }
804
+ d = !0;
805
+ let h = y();
806
+ h.reset(0, 0), h.target = 1;
807
+ }
808
+ function D() {
809
+ let t = e.rootEl.value, a = r, o = i, s = n;
810
+ if (s && S(s), t && s && a >= 0 && o >= 0 && a !== o) {
811
+ let n = lt(t)[o];
812
+ if (n && s.parentElement) {
813
+ let t = s.parentElement;
814
+ a < o ? t.insertBefore(s, n.nextSibling) : t.insertBefore(s, n), e.onReorder?.(a, o);
815
+ }
816
+ }
817
+ n = null, r = -1, i = -1;
818
+ }
819
+ function O() {
820
+ typeof window > "u" || (window.addEventListener("pointermove", w), window.addEventListener("pointerup", E), window.addEventListener("pointercancel", E));
821
+ }
822
+ function k() {
823
+ typeof window > "u" || (window.removeEventListener("pointermove", w), window.removeEventListener("pointerup", E), window.removeEventListener("pointercancel", E));
824
+ }
825
+ let ee = q(() => [e.rootEl.value, e.enabled()], ([e, t], n, r) => {
826
+ e && t && (e.addEventListener("pointerdown", C), O(), r(() => {
827
+ e.removeEventListener("pointerdown", C), k();
828
+ }));
829
+ }, { immediate: !0 });
830
+ function A() {
831
+ ee(), k(), v?.(), _ = null;
832
+ }
833
+ return ie(A), {
834
+ dragging: t,
835
+ detach: A
836
+ };
837
+ }
838
+ //#endregion
604
839
  //#region src/components/custom/dock/GlassDock.vue?vue&type=script&setup=true&lang.ts
605
- var Xe = ["data-has-rail"], Ze = [
840
+ var dt = [
841
+ "data-has-rail",
842
+ "data-splittable",
843
+ "data-fissioned"
844
+ ], ft = [
606
845
  "data-density",
607
846
  "data-held",
608
847
  "data-search",
609
848
  "data-container-name"
610
- ], Qe = {
849
+ ], pt = {
611
850
  key: 0,
612
851
  class: "dock-persistent"
613
- }, $e = ["inert"], et = ["inert"], tt = {
852
+ }, mt = ["inert"], ht = ["inert"], gt = {
614
853
  key: 0,
615
854
  class: "dock-search-field"
616
- }, nt = /* @__PURE__ */ P({
855
+ }, _t = ["aria-hidden"], vt = ["inert"], yt = 36, bt = /* @__PURE__ */ R({
617
856
  inheritAttrs: !1,
618
857
  __name: "GlassDock",
619
858
  props: {
@@ -634,131 +873,259 @@ var Xe = ["data-has-rail"], Ze = [
634
873
  String,
635
874
  null
636
875
  ] },
637
- search: { type: Boolean }
876
+ search: { type: Boolean },
877
+ splittable: { type: Boolean },
878
+ splitContext: {},
879
+ splitPlacement: {},
880
+ draggableItems: { type: Boolean }
638
881
  },
639
- setup(e, { expose: t }) {
640
- let n = e, { containerStyle: r, collapseDelay: i, startCollapsed: a, layoutValue: o, shape: s, orientation: l, density: u, scrollClass: d, alwaysExpanded: f, fitContent: p } = We(n), m = o, g = J("dockEl"), _ = J("layersEl");
641
- n.autoLuminance !== !1 && we(g, { backgroundCanvas: n.backgroundCanvas ?? null });
642
- let v = W(!1), y = c(i.value), b = `glass-dock-${ae()}`, { expanded: x, isPinned: S, isHeld: C, onMouseEnter: w, onMouseLeave: T, onFocusIn: E, onFocusOut: D, onClickCollapsed: k, keepOpen: N, release: P, expand: F, collapse: L } = Ee({
643
- collapseDelay: i.value,
644
- rootEl: g,
645
- alwaysExpanded: f,
646
- isTransitioning: v,
647
- dockId: b
882
+ emits: ["update:order"],
883
+ setup(e, { expose: t, emit: n }) {
884
+ let r = e, i = n, { containerStyle: a, collapseDelay: o, startCollapsed: s, layoutValue: c, shape: l, orientation: u, density: d, scrollClass: p, alwaysExpanded: m, fitContent: h } = nt(r), g = c, _ = he("dockEl"), v = he("layersEl");
885
+ r.autoLuminance !== !1 && We(_, { backgroundCanvas: r.backgroundCanvas ?? null });
886
+ let b = W(!1), x = f(o.value), S = `glass-dock-${fe()}`, { expanded: C, isPinned: w, isHeld: T, onMouseEnter: E, onMouseLeave: D, onFocusIn: O, onFocusOut: k, onClickCollapsed: ee, keepOpen: A, release: te, expand: j, collapse: N } = Ke({
887
+ collapseDelay: o.value,
888
+ rootEl: _,
889
+ alwaysExpanded: m,
890
+ isTransitioning: b,
891
+ dockId: S
892
+ });
893
+ y({
894
+ id: S,
895
+ orientation: u,
896
+ layout: g,
897
+ keepOpen: A,
898
+ release: te,
899
+ held: T
648
900
  });
649
- h({
650
- id: b,
651
- orientation: l,
652
- layout: m,
653
- keepOpen: N,
654
- release: P,
655
- held: C
901
+ let L = M(() => m.value || C.value), R = me(), ne = M(() => !!R.rail), V = he("frameEl"), oe = M(() => L.value ? "full" : "summary"), se = M(() => u.value), { context: U, onOuterTransitionEnd: ce } = tt({
902
+ rootEl: _,
903
+ outerEl: v,
904
+ outerActiveLayer: oe,
905
+ outerAxis: se
656
906
  });
657
- let z = O(() => f.value || x.value), ee = oe(), B = O(() => !!ee.rail), V = J("frameEl"), { context: U, onOuterTransitionEnd: ne } = Ue({
658
- rootEl: g,
659
- outerEl: _,
660
- outerActiveLayer: O(() => z.value ? "full" : "summary"),
661
- outerAxis: O(() => l.value)
907
+ $e(U), Xe({
908
+ rootEl: _,
909
+ contentEl: v,
910
+ axis: se,
911
+ expanded: L
662
912
  });
663
- Ve(U);
664
- let re = O(() => ({ "view-transition-name": b.replace(/[^a-zA-Z0-9_-]/g, "-") })), { markTransitioning: ie, onDockTransitionDone: q } = Je(g, v), { onPointerDownCapture: X, onClickCapture: Z, markExpandFlip: se } = Ye({
665
- rootEl: g,
666
- visualExpanded: z
913
+ let le = M(() => ({ "view-transition-name": S.replace(/[^a-zA-Z0-9_-]/g, "-") })), { markTransitioning: de, onDockTransitionDone: pe } = ot(_, b), { onPointerDownCapture: J, onClickCapture: ge, markExpandFlip: _e } = st({
914
+ rootEl: _,
915
+ visualExpanded: L
667
916
  });
668
- te(() => {
669
- (n.alwaysExpanded || !a.value) && F();
917
+ ae(() => {
918
+ (r.alwaysExpanded || !s.value) && j();
670
919
  });
671
- function ce() {
672
- return !f.value;
920
+ function ve() {
921
+ return !m.value;
673
922
  }
674
- function le(e) {
675
- if (!ce() || z.value) return;
676
- let t = g.value, n = e.touches[0];
677
- !t || !n || y.handleTouchStart(t, n.clientY);
923
+ function ye(e) {
924
+ if (!ve() || L.value) return;
925
+ let t = _.value, n = e.touches[0];
926
+ !t || !n || x.handleTouchStart(t, n.clientY);
678
927
  }
679
- function ue(e) {
680
- ce() && y.handleScrollCheck(e);
928
+ function be(e) {
929
+ ve() && x.handleScrollCheck(e);
681
930
  }
682
- function de() {
683
- if (!ce()) return;
684
- let e = y.isActive.value;
685
- y.handleTouchEnd(), !e && y.isActive.value && !z.value && F();
931
+ function xe() {
932
+ if (!ve()) return;
933
+ let e = x.isActive.value;
934
+ x.handleTouchEnd(), !e && x.isActive.value && !L.value && j();
686
935
  }
687
- return Y(y.isActive, (e) => {
688
- !e && x.value && !S.value && !f.value && L();
689
- }), Y(z, (e) => {
690
- ie(), e ? se() : y.deactivate();
691
- }), t({
692
- expanded: x,
693
- isPinned: S,
694
- isHeld: C,
695
- isTransitioning: v,
696
- expand: F,
697
- collapse: L,
698
- keepOpen: N,
699
- release: P
700
- }), (t, n) => (H(), j("div", {
936
+ q(x.isActive, (e) => {
937
+ !e && C.value && !w.value && !m.value && N();
938
+ }), q(L, (e) => {
939
+ de(), e ? _e() : x.deactivate();
940
+ });
941
+ let Se = ue(Ae[r.splitContext ?? "nav"]);
942
+ q(() => r.splitContext, (e) => {
943
+ Se.value = Ae[e ?? "nav"];
944
+ });
945
+ let Ce = ue(r.splitPlacement ?? "beside");
946
+ q(() => r.splitPlacement, (e) => {
947
+ Ce.value = e ?? "beside";
948
+ });
949
+ let Y = r.splittable ? je({
950
+ rootEl: V,
951
+ signature: Se,
952
+ placement: Ce
953
+ }) : null, we = Y ? Y.fissioned : M(() => !1), Te = [];
954
+ function Ee() {
955
+ let e = _.value;
956
+ if (!e) return {
957
+ x: 0,
958
+ y: 0
959
+ };
960
+ let t = e.getBoundingClientRect();
961
+ return {
962
+ x: t.left + t.width / 2,
963
+ y: t.top + t.height / 2
964
+ };
965
+ }
966
+ function X() {
967
+ let e = _.value;
968
+ if (!e || !Y) return;
969
+ for (let e of Te.splice(0)) e.release();
970
+ let t = Array.from(e.querySelectorAll("[data-dock-splittable]")), n = r.splitContext ?? "nav";
971
+ t.forEach((e, t) => {
972
+ e.classList.add("dock-fission-piece");
973
+ let r = Y.registerPiece({
974
+ el: W(e),
975
+ rank: t,
976
+ vector: () => {
977
+ let t = Ee(), r = e.getBoundingClientRect(), i = r.left + r.width / 2, a = r.top + r.height / 2, o = i - t.x, s = a - t.y, c = Math.hypot(o, s) || 1;
978
+ return o /= c, s /= c, n === "nav" && (o = -o, s = -s), n === "media" && (s *= .25), {
979
+ dx: o,
980
+ dy: s
981
+ };
982
+ }
983
+ });
984
+ Te.push(r);
985
+ });
986
+ }
987
+ Y && (ae(() => {
988
+ re(X);
989
+ }), ie(() => {
990
+ for (let e of Te.splice(0)) e.release();
991
+ }));
992
+ let De = ut({
993
+ rootEl: _,
994
+ enabled: () => r.draggableItems === !0,
995
+ axis: () => u.value === "vertical" ? "y" : "x",
996
+ onReorder: (e, t) => i("update:order", e, t)
997
+ }).dragging;
998
+ function Oe(e) {
999
+ if (Y?.onPointerMove(e), ke) {
1000
+ let t = e.clientX - ke.x, n = e.clientY - ke.y;
1001
+ Math.hypot(t, n) > yt && Y && !Y.fissioned.value && Q();
1002
+ }
1003
+ }
1004
+ let ke = null;
1005
+ function Z(e) {
1006
+ Y && e.target?.closest("[data-dock-splittable]") && (ke = {
1007
+ x: e.clientX,
1008
+ y: e.clientY
1009
+ });
1010
+ }
1011
+ function Me() {
1012
+ ke = null;
1013
+ }
1014
+ function Q() {
1015
+ Y && (X(), Y.split());
1016
+ }
1017
+ function $() {
1018
+ Y?.merge();
1019
+ }
1020
+ function Ne() {
1021
+ Y && (X(), Y.toggle());
1022
+ }
1023
+ return t({
1024
+ expanded: C,
1025
+ isPinned: w,
1026
+ isHeld: T,
1027
+ isTransitioning: b,
1028
+ expand: j,
1029
+ collapse: N,
1030
+ keepOpen: A,
1031
+ release: te,
1032
+ split: Q,
1033
+ merge: $,
1034
+ toggleSplit: Ne,
1035
+ fissioned: Y ? Y.fissioned : M(() => !1)
1036
+ }), (t, n) => (H(), F("div", {
701
1037
  ref_key: "frameEl",
702
1038
  ref: V,
703
- class: R(["glass-dock-frame", K(l)]),
704
- "data-has-rail": B.value || void 0
705
- }, [M("div", I({
706
- ref_key: "dockEl",
707
- ref: g
708
- }, t.$attrs, {
709
- class: ["glass-dock", [
710
- K(l),
711
- `shape-${K(s)}`,
712
- `layout-${K(m)}`,
713
- K(d),
714
- {
715
- expanded: z.value,
716
- collapsed: !z.value,
717
- pinned: K(S),
718
- "fit-content": K(p),
719
- "always-expanded": K(f),
720
- "dock-overflow-wrap": e.overflow === "wrap" && K(l) !== "vertical"
721
- },
722
- e.position === "fixed" ? "fixed bottom-(--dock-pos) left-1/2 -translate-x-1/2" : e.position === "sticky" ? "dock-sticky" : "dock-inline"
723
- ]],
724
- "data-density": K(u),
725
- "data-held": K(C) || void 0,
726
- "data-search": e.search || void 0,
727
- "data-container-name": e.containerName || void 0,
728
- style: [K(r), re.value],
729
- onMouseenter: n[2] ||= (...e) => K(w) && K(w)(...e),
730
- onMouseleave: n[3] ||= (e) => K(T)(e),
731
- onFocusin: n[4] ||= (...e) => K(E) && K(E)(...e),
732
- onFocusout: n[5] ||= (...e) => K(D) && K(D)(...e),
733
- onTouchstart: le,
734
- onTouchmove: ue,
735
- onTouchend: de,
736
- onPointerdownCapture: n[6] ||= (...e) => K(X) && K(X)(...e),
737
- onClickCapture: n[7] ||= (...e) => K(Z) && K(Z)(...e),
738
- onTransitionend: n[8] ||= (...e) => K(q) && K(q)(...e),
739
- onTransitioncancel: n[9] ||= (...e) => K(q) && K(q)(...e)
740
- }), [t.$slots.persistent ? (H(), j("div", Qe, [G(t.$slots, "persistent")])) : A("", !0), M("div", {
741
- ref_key: "layersEl",
742
- ref: _,
743
- class: "dock-layers",
744
- onTransitionend: n[1] ||= (...e) => K(ne) && K(ne)(...e)
1039
+ class: B(["glass-dock-frame", K(u)]),
1040
+ "data-has-rail": ne.value || void 0,
1041
+ "data-splittable": e.splittable || void 0,
1042
+ "data-fissioned": K(we) || void 0
745
1043
  }, [
746
- M("div", {
747
- class: R(["dock-layer dock-layer--full", { "is-active": z.value }]),
748
- inert: !z.value || void 0
749
- }, [G(t.$slots, "default")], 10, $e),
750
- M("div", {
751
- class: R(["dock-layer dock-layer--summary", { "is-active": !z.value }]),
752
- inert: z.value || void 0,
753
- onClick: n[0] ||= (...e) => K(k) && K(k)(...e)
754
- }, [G(t.$slots, "collapsed")], 10, et),
755
- e.search ? (H(), j("div", tt, [G(t.$slots, "search")])) : A("", !0)
756
- ], 544)], 16, Ze), B.value ? (H(), j("div", {
757
- key: 0,
758
- class: R(["dock-hairline-slot", K(l)])
759
- }, [G(t.$slots, "rail")], 2)) : A("", !0)], 10, Xe));
1044
+ I("div", z({
1045
+ ref_key: "dockEl",
1046
+ ref: _
1047
+ }, t.$attrs, {
1048
+ class: ["glass-dock", [
1049
+ K(u),
1050
+ `shape-${K(l)}`,
1051
+ `layout-${K(g)}`,
1052
+ K(p),
1053
+ {
1054
+ expanded: L.value,
1055
+ collapsed: !L.value,
1056
+ pinned: K(w),
1057
+ "fit-content": K(h),
1058
+ "always-expanded": K(m),
1059
+ "dock-overflow-wrap": e.overflow === "wrap" && K(u) !== "vertical"
1060
+ },
1061
+ {
1062
+ "glass-drag-grabbable": e.draggableItems && !K(De),
1063
+ "dock-items-draggable": e.draggableItems
1064
+ },
1065
+ e.position === "fixed" ? "fixed bottom-(--dock-pos) left-1/2 -translate-x-1/2" : e.position === "sticky" ? "dock-sticky" : "dock-inline"
1066
+ ]],
1067
+ "data-density": K(d),
1068
+ "data-held": K(T) || void 0,
1069
+ "data-search": e.search || void 0,
1070
+ "data-container-name": e.containerName || void 0,
1071
+ style: [K(a), le.value],
1072
+ onMouseenter: n[2] ||= (...e) => K(E) && K(E)(...e),
1073
+ onMouseleave: n[3] ||= (e) => K(D)(e),
1074
+ onFocusin: n[4] ||= (...e) => K(O) && K(O)(...e),
1075
+ onFocusout: n[5] ||= (...e) => K(k) && K(k)(...e),
1076
+ onTouchstart: ye,
1077
+ onTouchmove: be,
1078
+ onTouchend: xe,
1079
+ onPointerdownCapture: n[6] ||= (...e) => K(J) && K(J)(...e),
1080
+ onClickCapture: n[7] ||= (...e) => K(ge) && K(ge)(...e),
1081
+ onPointermove: n[8] ||= (t) => e.splittable ? Oe(t) : void 0,
1082
+ onPointerdown: n[9] ||= (t) => e.splittable ? Z(t) : void 0,
1083
+ onPointerup: n[10] ||= (t) => e.splittable ? Me() : void 0,
1084
+ onPointercancel: n[11] ||= (t) => e.splittable ? Me() : void 0,
1085
+ onTransitionend: n[12] ||= (...e) => K(pe) && K(pe)(...e),
1086
+ onTransitioncancel: n[13] ||= (...e) => K(pe) && K(pe)(...e)
1087
+ }), [
1088
+ n[14] ||= I("span", {
1089
+ class: "cartoon-cast",
1090
+ "aria-hidden": "true"
1091
+ }, null, -1),
1092
+ t.$slots.persistent ? (H(), F("div", pt, [G(t.$slots, "persistent")])) : P("", !0),
1093
+ I("div", {
1094
+ ref_key: "layersEl",
1095
+ ref: v,
1096
+ class: "dock-layers",
1097
+ onTransitionend: n[1] ||= (...e) => K(ce) && K(ce)(...e)
1098
+ }, [
1099
+ I("div", {
1100
+ class: B(["dock-layer dock-layer--full", { "is-active": L.value }]),
1101
+ inert: !L.value || void 0
1102
+ }, [G(t.$slots, "default")], 10, mt),
1103
+ I("div", {
1104
+ class: B(["dock-layer dock-layer--summary", { "is-active": !L.value }]),
1105
+ inert: L.value || void 0,
1106
+ onClick: n[0] ||= (...e) => K(ee) && K(ee)(...e)
1107
+ }, [G(t.$slots, "collapsed")], 10, ht),
1108
+ e.search ? (H(), F("div", gt, [G(t.$slots, "search")])) : P("", !0)
1109
+ ], 544)
1110
+ ], 16, ft),
1111
+ e.splittable ? (H(), F("div", {
1112
+ key: 0,
1113
+ class: B(["dock-fission-bridge", [K(u), `place-${Ce.value ?? "beside"}`]]),
1114
+ "aria-hidden": !K(we) || void 0
1115
+ }, [n[15] ||= I("div", {
1116
+ class: "dock-fission-neck",
1117
+ "aria-hidden": "true"
1118
+ }, null, -1), I("div", {
1119
+ class: "dock-fission-island",
1120
+ inert: !K(we) || void 0
1121
+ }, [G(t.$slots, "split", { fissioned: K(we) })], 8, vt)], 10, _t)) : P("", !0),
1122
+ ne.value ? (H(), F("div", {
1123
+ key: 1,
1124
+ class: B(["dock-hairline-slot", K(u)])
1125
+ }, [G(t.$slots, "rail")], 2)) : P("", !0)
1126
+ ], 10, dt));
760
1127
  }
761
- }), rt = /* @__PURE__ */ P({
1128
+ }), xt = /* @__PURE__ */ R({
762
1129
  __name: "Tabs",
763
1130
  props: {
764
1131
  defaultValue: {},
@@ -772,13 +1139,13 @@ var Xe = ["data-has-rail"], Ze = [
772
1139
  },
773
1140
  emits: ["update:modelValue"],
774
1141
  setup(e, { emit: t }) {
775
- let n = ge(e, t);
776
- return (e, t) => (H(), k(K(pe), I({ "data-slot": "tabs" }, K(n)), {
777
- default: X(() => [G(e.$slots, "default")]),
1142
+ let n = Ee(e, t);
1143
+ return (e, t) => (H(), N(K(Y), z({ "data-slot": "tabs" }, K(n)), {
1144
+ default: J(() => [G(e.$slots, "default")]),
778
1145
  _: 3
779
1146
  }, 16));
780
1147
  }
781
- }), it = /* @__PURE__ */ P({
1148
+ }), St = /* @__PURE__ */ R({
782
1149
  __name: "TabsTrigger",
783
1150
  props: {
784
1151
  value: {},
@@ -794,16 +1161,16 @@ var Xe = ["data-has-rail"], Ze = [
794
1161
  ] }
795
1162
  },
796
1163
  setup(t) {
797
- let n = t, r = he(O(() => {
1164
+ let n = t, r = Te(M(() => {
798
1165
  let { class: e, ...t } = n;
799
1166
  return t;
800
1167
  }));
801
- return (t, i) => (H(), k(K(me), I({ "data-slot": "tabs-trigger" }, K(r), { class: K(e)("tap-squish focus-ring relative z-[1] inline-flex items-center justify-center whitespace-nowrap rounded-control p-1 px-3 text-sm font-medium transition-control disabled:pointer-events-none disabled:opacity-disabled data-[state=active]:text-[var(--active-tab-color,var(--foreground))] hover:text-foreground/70", n.class) }), {
802
- default: X(() => [G(t.$slots, "default")]),
1168
+ return (t, i) => (H(), N(K(we), z({ "data-slot": "tabs-trigger" }, K(r), { class: K(e)("tap-squish focus-ring relative z-[1] inline-flex items-center justify-center whitespace-nowrap rounded-control p-1 px-3 text-sm font-medium transition-control disabled:pointer-events-none disabled:opacity-disabled data-[state=active]:text-[var(--active-tab-color,var(--foreground))] hover:text-foreground/70", n.class) }), {
1169
+ default: J(() => [G(t.$slots, "default")]),
803
1170
  _: 3
804
1171
  }, 16, ["class"]));
805
1172
  }
806
- }), at = /* @__PURE__ */ P({
1173
+ }), Ct = /* @__PURE__ */ R({
807
1174
  __name: "TabsIndicator",
808
1175
  props: {
809
1176
  asChild: { type: Boolean },
@@ -821,13 +1188,13 @@ var Xe = ["data-has-rail"], Ze = [
821
1188
  }
822
1189
  },
823
1190
  setup(t) {
824
- let n = t, r = O(() => {
1191
+ let n = t, r = M(() => {
825
1192
  let { class: e, surface: t, ...r } = n;
826
1193
  return r;
827
1194
  });
828
- return (t, i) => (H(), k(K(de), I({ "data-slot": "tabs-indicator" }, r.value, { class: K(e)("pointer-events-none absolute left-0 bottom-1 top-1 z-0 w-(--reka-tabs-indicator-size) translate-x-(--reka-tabs-indicator-position) rounded-pill transition-[width,translate] duration-normal ease-spring-snappy", n.surface && "bg-(--glass-bg-quiet) [backdrop-filter:var(--glass-blur-quiet)]", n.class) }), null, 16, ["class"]));
1195
+ return (t, i) => (H(), N(K(Se), z({ "data-slot": "tabs-indicator" }, r.value, { class: K(e)("pointer-events-none absolute left-0 bottom-1 top-1 z-0 w-(--reka-tabs-indicator-size) translate-x-(--reka-tabs-indicator-position) rounded-pill transition-[width,translate] duration-normal ease-spring-snappy", n.surface && "bg-(--glass-bg-quiet) [backdrop-filter:var(--glass-blur-quiet)]", n.class) }), null, 16, ["class"]));
829
1196
  }
830
- }), ot = /* @__PURE__ */ P({
1197
+ }), wt = /* @__PURE__ */ R({
831
1198
  __name: "TabsList",
832
1199
  props: {
833
1200
  loop: { type: Boolean },
@@ -846,25 +1213,25 @@ var Xe = ["data-has-rail"], Ze = [
846
1213
  }
847
1214
  },
848
1215
  setup(t) {
849
- let n = t, r = O(() => {
1216
+ let n = t, r = M(() => {
850
1217
  let { class: e, indicator: t, ...r } = n;
851
1218
  return r;
852
1219
  });
853
- return (i, a) => (H(), k(K(fe), I({ "data-slot": "tabs-list" }, r.value, { class: K(e)("relative inline-flex h-(--control-h-md) items-center justify-center rounded-input p-1 text-muted-foreground", n.class) }), {
854
- default: X(() => [t.indicator ? (H(), k(at, { key: 0 })) : A("", !0), G(i.$slots, "default")]),
1220
+ return (i, a) => (H(), N(K(Ce), z({ "data-slot": "tabs-list" }, r.value, { class: K(e)("relative inline-flex h-(--control-h-md) items-center justify-center rounded-input p-1 text-muted-foreground", n.class) }), {
1221
+ default: J(() => [t.indicator ? (H(), N(Ct, { key: 0 })) : P("", !0), G(i.$slots, "default")]),
855
1222
  _: 3
856
1223
  }, 16, ["class"]));
857
1224
  }
858
- }), st = u(f, "[glass-ui:dock] <DockLayer> must be used inside <DockLayerGroup>"), { KEY: ct } = st;
859
- function lt(e) {
860
- st.provide(e);
1225
+ }), Tt = m(g, "[glass-ui:dock] <DockLayer> must be used inside <DockLayerGroup>"), { KEY: Et } = Tt;
1226
+ function Dt(e) {
1227
+ Tt.provide(e);
861
1228
  }
862
- var ut = st.use;
863
- st.useOptional;
1229
+ var Ot = Tt.use;
1230
+ Tt.useOptional;
864
1231
  //#endregion
865
1232
  //#region src/components/custom/dock/composables/useLayerTransition.ts
866
- function dt(e) {
867
- let { containerEl: t, activeLayer: n, axis: r } = e, i = O(() => r?.value === "vertical" ? "height" : "width"), a = O(() => i.value === "width" ? "inline-size" : "block-size"), o = (e) => e.getBoundingClientRect()[i.value], s = W(n.value), c = W(null), l = 0, u = W(!1), d = [];
1233
+ function kt(e) {
1234
+ let { containerEl: t, activeLayer: n, axis: r } = e, i = M(() => r?.value === "vertical" ? "height" : "width"), a = M(() => i.value === "width" ? "inline-size" : "block-size"), o = (e) => e.getBoundingClientRect()[i.value], s = W(n.value), c = W(null), l = 0, u = W(!1), d = [];
868
1235
  function f() {
869
1236
  if (d.length === 0) return;
870
1237
  let e = d.splice(0, d.length);
@@ -884,41 +1251,41 @@ function dt(e) {
884
1251
  }
885
1252
  requestAnimationFrame(e);
886
1253
  }
887
- function y(e) {
1254
+ function v(e) {
888
1255
  e.style.removeProperty("--dock-morph-from"), e.style.removeProperty("--dock-morph-to");
889
1256
  }
890
- function b() {
1257
+ function y() {
891
1258
  return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
892
1259
  }
893
- function x(e, t, n) {
1260
+ function b(e, t, n) {
894
1261
  if (n !== l) return;
895
1262
  let r = a.value;
896
- y(e);
1263
+ v(e);
897
1264
  let s = e.style.getPropertyValue(r);
898
1265
  e.style.setProperty(r, "max-content");
899
1266
  let c = o(e);
900
- s ? e.style.setProperty(r, s) : e.style.removeProperty(r), e.style.setProperty("--dock-morph-from", `${c}px`), e.style.setProperty("--dock-morph-to", `${c}px`), t.style.setProperty("--dock-morph-t", "1"), e.getBoundingClientRect()[i.value], S(e, t);
1267
+ s ? e.style.setProperty(r, s) : e.style.removeProperty(r), e.style.setProperty("--dock-morph-from", `${c}px`), e.style.setProperty("--dock-morph-to", `${c}px`), t.style.setProperty("--dock-morph-t", "1"), e.getBoundingClientRect()[i.value], x(e, t);
901
1268
  }
902
- function S(e, t) {
903
- y(e), t.style.removeProperty("--dock-morph-t"), t.removeAttribute("data-morphing"), c.value = null, h(), u.value = !1, f();
1269
+ function x(e, t) {
1270
+ v(e), t.style.removeProperty("--dock-morph-t"), t.removeAttribute("data-morphing"), c.value = null, h(), u.value = !1, f();
904
1271
  }
905
1272
  function C(e, t, n, r, i, a, o) {
906
1273
  if (Math.abs(i - r) < .5) {
907
- S(e, t);
1274
+ x(e, t);
908
1275
  return;
909
1276
  }
910
- e.style.setProperty("--dock-morph-from", `${r}px`), e.style.setProperty("--dock-morph-to", `${i}px`), t.style.setProperty("--dock-morph-t", "0"), t.setAttribute("data-morphing", ""), u.value = !0, o || (h(), p = new _e({
911
- response: v.response,
912
- dampingFraction: v.dampingFraction,
1277
+ e.style.setProperty("--dock-morph-from", `${r}px`), e.style.setProperty("--dock-morph-to", `${i}px`), t.style.setProperty("--dock-morph-t", "0"), t.setAttribute("data-morphing", ""), u.value = !0, o || (h(), p = new X({
1278
+ response: S.response,
1279
+ dampingFraction: S.dampingFraction,
913
1280
  initial: 0,
914
1281
  respectReducedMotion: !0
915
1282
  }), m = e);
916
1283
  let s = p;
917
1284
  s.reset(0, a), s.target = 1, s.play((r) => {
918
- n === l && (t.style.setProperty("--dock-morph-t", `${r}`), s.settled && S(e, t));
1285
+ n === l && (t.style.setProperty("--dock-morph-t", `${r}`), s.settled && x(e, t));
919
1286
  });
920
1287
  }
921
- Y(n, (e, n) => {
1288
+ q(n, (e, n) => {
922
1289
  if (e === n) return;
923
1290
  let r = t.value;
924
1291
  if (!r) {
@@ -926,8 +1293,8 @@ function dt(e) {
926
1293
  return;
927
1294
  }
928
1295
  let i = g(r), d = ++l, f = p !== null && m === r && !p.settled ? p : null, h = f ? f.velocity : 0, _ = o(r);
929
- if (c.value = n, s.value = e, r.style.setProperty("--dock-morph-from", `${_}px`), r.style.setProperty("--dock-morph-to", `${_}px`), i.style.setProperty("--dock-morph-t", "0"), i.setAttribute("data-morphing", ""), u.value = !0, b()) {
930
- L(() => x(r, i, d));
1296
+ if (c.value = n, s.value = e, r.style.setProperty("--dock-morph-from", `${_}px`), r.style.setProperty("--dock-morph-to", `${_}px`), i.style.setProperty("--dock-morph-t", "0"), i.setAttribute("data-morphing", ""), u.value = !0, y()) {
1297
+ re(() => b(r, i, d));
931
1298
  return;
932
1299
  }
933
1300
  requestAnimationFrame(() => {
@@ -935,16 +1302,16 @@ function dt(e) {
935
1302
  let e = t.value;
936
1303
  if (!e) return;
937
1304
  let n = g(e);
938
- y(e), n.style.removeProperty("--dock-morph-t"), e.style.setProperty(a.value, "max-content");
1305
+ v(e), n.style.removeProperty("--dock-morph-t"), e.style.setProperty(a.value, "max-content");
939
1306
  let r = o(e);
940
1307
  e.style.removeProperty(a.value), C(e, n, d, _, r, h, f);
941
1308
  });
942
1309
  });
943
1310
  function w(e) {
944
1311
  let n = t.value;
945
- n && e.target === n && (e.propertyName !== a.value && e.propertyName !== i.value || p && p.settled && S(n, g(n)));
1312
+ n && e.target === n && (e.propertyName !== a.value && e.propertyName !== i.value || p && p.settled && x(n, g(n)));
946
1313
  }
947
- return V(() => {
1314
+ return se(() => {
948
1315
  h(), d.length = 0;
949
1316
  }), {
950
1317
  onTransitionEnd: w,
@@ -956,9 +1323,9 @@ function dt(e) {
956
1323
  }
957
1324
  //#endregion
958
1325
  //#region src/components/custom/dock/DockLayerGroup.vue?vue&type=script&setup=true&lang.ts
959
- var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1326
+ var At = { key: 1 }, jt = { key: 2 }, Mt = /* @__PURE__ */ R({
960
1327
  __name: "DockLayerGroup",
961
- props: /* @__PURE__ */ F({
1328
+ props: /* @__PURE__ */ ne({
962
1329
  orientation: {},
963
1330
  showRail: {
964
1331
  type: Boolean,
@@ -975,15 +1342,15 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
975
1342
  }),
976
1343
  emits: ["update:active"],
977
1344
  setup(e) {
978
- let t = e, n = q(e, "active"), r = m(), i = W([]), a = J("containerEl"), o = J("groupEl");
979
- function c(e) {
980
- i.value.find((t) => t.id === e.id) || i.value.push(e), d();
1345
+ let t = e, n = pe(e, "active"), r = v(), i = W([]), a = he("containerEl"), o = he("groupEl");
1346
+ function s(e) {
1347
+ i.value.find((t) => t.id === e.id) || i.value.push(e), u();
981
1348
  }
982
- function l(e) {
983
- i.value = i.value.filter((t) => t.id !== e), d();
1349
+ function c(e) {
1350
+ i.value = i.value.filter((t) => t.id !== e), u();
984
1351
  }
985
- let u = W(0);
986
- function d() {
1352
+ let l = W(0);
1353
+ function u() {
987
1354
  let e = a.value, t = o.value;
988
1355
  if (!e || !t) return;
989
1356
  let n = 0, r = e.querySelectorAll(".dock-layer-item-host");
@@ -991,21 +1358,21 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
991
1358
  let t = e.scrollHeight;
992
1359
  t > n && (n = t);
993
1360
  }
994
- n > u.value && (u.value = n);
1361
+ n > l.value && (l.value = n);
995
1362
  }
996
- let f = O(() => u.value > 0 ? {
997
- "min-block-size": `${u.value}px`,
998
- "--dock-layer-peak-block-size": `${u.value}px`
1363
+ let f = M(() => l.value > 0 ? {
1364
+ "min-block-size": `${l.value}px`,
1365
+ "--dock-layer-peak-block-size": `${l.value}px`
999
1366
  } : void 0);
1000
- s(a, () => d()), Y(() => i.value.length, () => d());
1001
- let p = O(() => t.orientation ?? r?.orientation.value ?? "horizontal"), h = O(() => p.value === "vertical" ? "horizontal" : "vertical"), g = J("railListEl"), _ = W(null);
1002
- function v() {
1003
- let e = g.value;
1004
- _.value = e ? e.$el ?? e : null;
1367
+ d(a, () => u()), q(() => i.value.length, () => u());
1368
+ let p = M(() => t.orientation ?? r?.orientation.value ?? "horizontal"), m = M(() => p.value === "vertical" ? "horizontal" : "vertical"), h = he("railListEl"), g = W(null);
1369
+ function _() {
1370
+ let e = h.value;
1371
+ g.value = e ? e.$el ?? e : null;
1005
1372
  }
1006
- let y = O(() => h.value === "vertical" ? "y" : "x");
1373
+ let y = M(() => m.value === "vertical" ? "y" : "x");
1007
1374
  function b() {
1008
- let e = _.value;
1375
+ let e = g.value;
1009
1376
  if (!e) return [];
1010
1377
  let t = Array.from(e.querySelectorAll(".dock-layer-tab"));
1011
1378
  return i.value.map((e, n) => {
@@ -1016,33 +1383,33 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1016
1383
  };
1017
1384
  });
1018
1385
  }
1019
- let x = S({
1020
- el: _,
1386
+ let x = O({
1387
+ el: g,
1021
1388
  axis: () => y.value,
1022
1389
  snapTargets: b,
1023
1390
  onSnap: (e) => {
1024
1391
  t.draggable && n.value !== e && (n.value = e);
1025
1392
  }
1026
1393
  });
1027
- Y(() => [
1394
+ q(() => [
1028
1395
  i.value.length,
1029
- h.value,
1396
+ m.value,
1030
1397
  t.draggable
1031
1398
  ], () => {
1032
- v(), t.draggable && L(() => x.refresh());
1033
- }), te(() => {
1034
- v(), t.draggable && L(() => x.refresh());
1399
+ _(), t.draggable && re(() => x.refresh());
1400
+ }), ae(() => {
1401
+ _(), t.draggable && re(() => x.refresh());
1035
1402
  });
1036
- let C = He(), w, T, E;
1037
- if (C) {
1038
- let e = C.registerGroup({
1403
+ let S = et(), C, w, T;
1404
+ if (S) {
1405
+ let e = S.registerGroup({
1039
1406
  containerEl: a,
1040
1407
  activeLayer: n,
1041
1408
  axis: p
1042
1409
  });
1043
- w = e.currentLayer, T = e.leavingLayer, E = () => {}, ee(() => e.release());
1410
+ C = e.currentLayer, w = e.leavingLayer, T = () => {}, ie(() => e.release());
1044
1411
  } else {
1045
- let e = dt({
1412
+ let e = kt({
1046
1413
  containerEl: a,
1047
1414
  activeLayer: n,
1048
1415
  axis: p,
@@ -1051,90 +1418,90 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1051
1418
  return [i.value.findIndex((e) => e.id === t) < n ? "layer-back" : "layer-forward"];
1052
1419
  }
1053
1420
  });
1054
- w = U(e.currentLayer), T = U(e.leavingLayer), E = e.onTransitionEnd;
1421
+ C = U(e.currentLayer), w = U(e.leavingLayer), T = e.onTransitionEnd;
1055
1422
  }
1056
- let P = typeof document < "u" && "startViewTransition" in document, F = ae(), I = O(() => P ? {
1057
- "view-transition-name": `gl-dock-stack-${F.replace(/[^a-zA-Z0-9_-]/g, "-")}`,
1423
+ let E = typeof document < "u" && "startViewTransition" in document, D = fe(), k = M(() => E ? {
1424
+ "view-transition-name": `gl-dock-stack-${D.replace(/[^a-zA-Z0-9_-]/g, "-")}`,
1058
1425
  "view-transition-class": "gl-dock-layer"
1059
1426
  } : void 0);
1060
- lt({
1061
- register: c,
1062
- unregister: l,
1063
- currentLayerId: w,
1064
- leavingLayerId: T
1427
+ Dt({
1428
+ register: s,
1429
+ unregister: c,
1430
+ currentLayerId: C,
1431
+ leavingLayerId: w
1065
1432
  });
1066
- function B(e) {
1433
+ function ee(e) {
1067
1434
  return typeof e == "object" && !!e || typeof e == "function";
1068
1435
  }
1069
- let V = W(!1);
1070
- function oe() {
1071
- V.value || (V.value = !0, r?.keepOpen());
1436
+ let A = W(!1);
1437
+ function te() {
1438
+ A.value || (A.value = !0, r?.keepOpen());
1072
1439
  }
1073
- function Z(e) {
1440
+ function R(e) {
1074
1441
  let t = e.relatedTarget, n = e.currentTarget;
1075
- t && n?.contains(t) || V.value && (V.value = !1, r?.release());
1442
+ t && n?.contains(t) || A.value && (A.value = !1, r?.release());
1076
1443
  }
1077
- return (r, s) => (H(), j("div", {
1444
+ return (r, s) => (H(), F("div", {
1078
1445
  ref_key: "groupEl",
1079
1446
  ref: o,
1080
- class: R(["dock-layer-group", [p.value, `rail-${e.railPosition}`]]),
1081
- style: z(f.value)
1082
- }, [e.showRail && i.value.length > 1 ? (H(), k(K(rt), {
1447
+ class: B(["dock-layer-group", [p.value, `rail-${e.railPosition}`]]),
1448
+ style: V(f.value)
1449
+ }, [e.showRail && i.value.length > 1 ? (H(), N(K(xt), {
1083
1450
  key: 0,
1084
1451
  modelValue: n.value,
1085
1452
  "onUpdate:modelValue": s[0] ||= (e) => n.value = e,
1086
- orientation: h.value,
1453
+ orientation: m.value,
1087
1454
  "as-child": !0
1088
1455
  }, {
1089
- default: X(() => [N(K(ot), {
1456
+ default: J(() => [L(K(wt), {
1090
1457
  ref_key: "railListEl",
1091
- ref: g,
1092
- class: R(["dock-layer-rail", [
1458
+ ref: h,
1459
+ class: B(["dock-layer-rail", [
1093
1460
  e.railPosition,
1094
1461
  t.draggable && "glass-drag-grabbable",
1095
1462
  t.draggable && K(x).dragging.value && "glass-drag-lift"
1096
1463
  ]]),
1097
- style: z(t.draggable ? K(x).dragStyle.value : void 0),
1464
+ style: V(t.draggable ? K(x).dragStyle.value : void 0),
1098
1465
  indicator: !1,
1099
- onFocusin: oe,
1100
- onFocusout: Z
1466
+ onFocusin: te,
1467
+ onFocusout: R
1101
1468
  }, {
1102
- default: X(() => [(H(!0), j(D, null, ne(i.value, (e) => (H(), k(K(it), {
1469
+ default: J(() => [(H(!0), F(j, null, ce(i.value, (e) => (H(), N(K(St), {
1103
1470
  key: e.id,
1104
1471
  value: e.id,
1105
1472
  class: "dock-layer-tab",
1106
1473
  title: e.label,
1107
1474
  "aria-label": e.label ?? e.id
1108
1475
  }, {
1109
- default: X(() => [B(e.icon) ? (H(), k(re(e.icon), {
1476
+ default: J(() => [ee(e.icon) ? (H(), N(le(e.icon), {
1110
1477
  key: 0,
1111
1478
  class: "size-4"
1112
- })) : typeof e.icon == "string" ? (H(), j("span", ft, ie(e.icon), 1)) : (H(), j("span", pt, ie((e.label ?? e.id).charAt(0)), 1))]),
1479
+ })) : typeof e.icon == "string" ? (H(), F("span", At, de(e.icon), 1)) : (H(), F("span", jt, de((e.label ?? e.id).charAt(0)), 1))]),
1113
1480
  _: 2
1114
1481
  }, 1032, [
1115
1482
  "value",
1116
1483
  "title",
1117
1484
  "aria-label"
1118
- ]))), 128)), N(K(at), {
1485
+ ]))), 128)), L(K(Ct), {
1119
1486
  class: "dock-layer-tab-indicator",
1120
1487
  surface: !1
1121
1488
  })]),
1122
1489
  _: 1
1123
1490
  }, 8, ["class", "style"])]),
1124
1491
  _: 1
1125
- }, 8, ["modelValue", "orientation"])) : A("", !0), M("div", {
1492
+ }, 8, ["modelValue", "orientation"])) : P("", !0), I("div", {
1126
1493
  ref_key: "containerEl",
1127
1494
  ref: a,
1128
1495
  class: "dock-layer-stack",
1129
- style: z(I.value),
1130
- onTransitionend: s[1] ||= (...e) => K(E) && K(E)(...e)
1496
+ style: V(k.value),
1497
+ onTransitionend: s[1] ||= (...e) => K(T) && K(T)(...e)
1131
1498
  }, [G(r.$slots, "default")], 36)], 6));
1132
1499
  }
1133
- }), ht = [
1500
+ }), Nt = [
1134
1501
  "inert",
1135
1502
  "aria-hidden",
1136
1503
  "tabindex"
1137
- ], gt = /* @__PURE__ */ P({
1504
+ ], Pt = /* @__PURE__ */ R({
1138
1505
  __name: "DockLayer",
1139
1506
  props: {
1140
1507
  id: {},
@@ -1142,35 +1509,35 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1142
1509
  icon: {}
1143
1510
  },
1144
1511
  setup(e) {
1145
- let t = e, n = ut();
1146
- te(() => {
1512
+ let t = e, n = Ot();
1513
+ ae(() => {
1147
1514
  n.register({
1148
1515
  id: t.id,
1149
1516
  label: t.label,
1150
1517
  icon: t.icon
1151
1518
  });
1152
- }), ee(() => {
1519
+ }), ie(() => {
1153
1520
  n.unregister(t.id);
1154
1521
  });
1155
- let r = O(() => n.currentLayerId.value === t.id), i = O(() => n.leavingLayerId.value === t.id), a = J("hostEl");
1156
- return Y(r, async (e, t) => {
1522
+ let r = M(() => n.currentLayerId.value === t.id), i = M(() => n.leavingLayerId.value === t.id), a = he("hostEl");
1523
+ return q(r, async (e, t) => {
1157
1524
  !e || t || typeof document < "u" && (() => {
1158
1525
  let e = document.activeElement;
1159
1526
  return !e || e === document.body ? !0 : !!e.closest("[inert]");
1160
- })() && (await L(), a.value?.focus());
1161
- }), (e, t) => (H(), j("div", {
1527
+ })() && (await re(), a.value?.focus());
1528
+ }), (e, t) => (H(), F("div", {
1162
1529
  ref_key: "hostEl",
1163
1530
  ref: a,
1164
- class: R(["dock-layer-item-host", {
1531
+ class: B(["dock-layer-item-host", {
1165
1532
  "is-active": r.value,
1166
1533
  "is-leaving": i.value
1167
1534
  }]),
1168
1535
  inert: r.value ? void 0 : !0,
1169
1536
  "aria-hidden": r.value ? void 0 : !0,
1170
1537
  tabindex: r.value ? -1 : void 0
1171
- }, [G(e.$slots, "default")], 10, ht));
1538
+ }, [G(e.$slots, "default")], 10, Nt));
1172
1539
  }
1173
- }), _t = /* @__PURE__ */ P({
1540
+ }), Ft = /* @__PURE__ */ R({
1174
1541
  __name: "DockIconButton",
1175
1542
  props: {
1176
1543
  compact: {
@@ -1182,6 +1549,10 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1182
1549
  default: !1
1183
1550
  },
1184
1551
  type: { default: "button" },
1552
+ disabled: {
1553
+ type: Boolean,
1554
+ default: !1
1555
+ },
1185
1556
  as: { default: "button" },
1186
1557
  asChild: {
1187
1558
  type: Boolean,
@@ -1196,26 +1567,32 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1196
1567
  ] }
1197
1568
  },
1198
1569
  setup(t) {
1199
- let n = t, r = O(() => e("dock-icon-button glass-specular-track", { "dock-icon-button--compact": n.compact }, n.class)), i = O(() => n.active ? {
1200
- "aria-pressed": "true",
1201
- "data-active": ""
1202
- } : {}), a = O(() => !n.asChild && n.as === "button" ? { type: n.type } : {});
1203
- return (e, n) => Z((H(), k(K(ce), I({
1570
+ let n = t, r = M(() => e("dock-icon-button glass-specular-track glass-capsule-hover", { "glass-capsule": n.active }, { "dock-icon-button--compact": n.compact }, n.class)), i = M(() => ({
1571
+ ...n.active ? {
1572
+ "aria-pressed": "true",
1573
+ "data-active": ""
1574
+ } : {},
1575
+ ...n.disabled ? {
1576
+ ...n.as === "button" && !n.asChild ? { disabled: !0 } : {},
1577
+ "aria-disabled": "true"
1578
+ } : {}
1579
+ })), a = M(() => !n.asChild && n.as === "button" ? { type: n.type } : {});
1580
+ return (e, n) => ge((H(), N(K(ye), z({
1204
1581
  as: t.as,
1205
1582
  "as-child": t.asChild
1206
1583
  }, {
1207
1584
  ...a.value,
1208
1585
  ...i.value
1209
1586
  }, { class: r.value }), {
1210
- default: X(() => [G(e.$slots, "default")]),
1587
+ default: J(() => [G(e.$slots, "default")]),
1211
1588
  _: 3
1212
1589
  }, 16, [
1213
1590
  "as",
1214
1591
  "as-child",
1215
1592
  "class"
1216
- ])), [[K(o)]]);
1593
+ ])), [[K(s)]]);
1217
1594
  }
1218
- }), vt = /* @__PURE__ */ P({
1595
+ }), It = /* @__PURE__ */ R({
1219
1596
  __name: "DockBackgroundToggle",
1220
1597
  props: {
1221
1598
  paused: {
@@ -1227,22 +1604,22 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1227
1604
  },
1228
1605
  emits: ["update:paused"],
1229
1606
  setup(e, { emit: n }) {
1230
- let i = e, a = n, o = O(() => i.paused ? i.playLabel : i.pauseLabel);
1607
+ let i = e, a = n, o = M(() => i.paused ? i.playLabel : i.pauseLabel);
1231
1608
  function s() {
1232
1609
  a("update:paused", !i.paused);
1233
1610
  }
1234
- return (n, i) => (H(), k(_t, {
1611
+ return (n, i) => (H(), N(Ft, {
1235
1612
  type: "button",
1236
1613
  "aria-pressed": e.paused,
1237
1614
  "aria-label": o.value,
1238
1615
  title: o.value,
1239
1616
  onClick: s
1240
1617
  }, {
1241
- default: X(() => [e.paused ? (H(), k(K(t), {
1618
+ default: J(() => [e.paused ? (H(), N(K(t), {
1242
1619
  key: 0,
1243
1620
  size: 18,
1244
1621
  "aria-hidden": "true"
1245
- })) : (H(), k(K(r), {
1622
+ })) : (H(), N(K(r), {
1246
1623
  key: 1,
1247
1624
  size: 18,
1248
1625
  "aria-hidden": "true"
@@ -1254,7 +1631,7 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1254
1631
  "title"
1255
1632
  ]));
1256
1633
  }
1257
- }), yt = /* @__PURE__ */ P({
1634
+ }), Lt = /* @__PURE__ */ R({
1258
1635
  __name: "DockTabButton",
1259
1636
  props: {
1260
1637
  as: { default: "button" },
@@ -1271,21 +1648,21 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1271
1648
  ] }
1272
1649
  },
1273
1650
  setup(t) {
1274
- let n = t, r = O(() => e("dock-tab-button", n.class));
1275
- return (e, n) => Z((H(), k(K(ce), {
1651
+ let n = t, r = M(() => e("dock-tab-button", n.class));
1652
+ return (e, n) => ge((H(), N(K(ye), {
1276
1653
  as: t.as,
1277
1654
  "as-child": t.asChild,
1278
- class: R(r.value)
1655
+ class: B(r.value)
1279
1656
  }, {
1280
- default: X(() => [G(e.$slots, "default")]),
1657
+ default: J(() => [G(e.$slots, "default")]),
1281
1658
  _: 3
1282
1659
  }, 8, [
1283
1660
  "as",
1284
1661
  "as-child",
1285
1662
  "class"
1286
- ])), [[K(o)]]);
1663
+ ])), [[K(s)]]);
1287
1664
  }
1288
- }), bt = /* @__PURE__ */ P({
1665
+ }), Rt = /* @__PURE__ */ R({
1289
1666
  __name: "DockSelectTrigger",
1290
1667
  props: {
1291
1668
  disabled: { type: Boolean },
@@ -1301,19 +1678,19 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1301
1678
  ] }
1302
1679
  },
1303
1680
  setup(t) {
1304
- let n = t, r = he(O(() => {
1681
+ let n = t, r = Te(M(() => {
1305
1682
  let { class: e, ...t } = n;
1306
1683
  return t;
1307
1684
  }));
1308
- return (t, a) => Z((H(), k(K(ue), I(K(r), { class: K(e)("dock-select-trigger", n.class) }), {
1309
- default: X(() => [G(t.$slots, "default"), N(K(le), { "as-child": "" }, {
1310
- default: X(() => [G(t.$slots, "icon", {}, () => [N(K(i), { class: "dock-select-trigger__chevron" })])]),
1685
+ return (t, a) => ge((H(), N(K(xe), z(K(r), { class: K(e)("dock-trigger dock-select-trigger", n.class) }), {
1686
+ default: J(() => [G(t.$slots, "default"), L(K(be), { "as-child": "" }, {
1687
+ default: J(() => [G(t.$slots, "icon", {}, () => [L(K(i), { class: "dock-select-trigger__chevron" })])]),
1311
1688
  _: 3
1312
1689
  })]),
1313
1690
  _: 3
1314
- }, 16, ["class"])), [[K(o)]]);
1691
+ }, 16, ["class"])), [[K(s)]]);
1315
1692
  }
1316
- }), xt = /* @__PURE__ */ P({
1693
+ }), zt = /* @__PURE__ */ R({
1317
1694
  __name: "DockDropdownTrigger",
1318
1695
  props: {
1319
1696
  disabled: { type: Boolean },
@@ -1329,39 +1706,109 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1329
1706
  ] }
1330
1707
  },
1331
1708
  setup(t) {
1332
- let n = t, r = he(O(() => {
1709
+ let n = t, r = Te(M(() => {
1710
+ let { class: e, ...t } = n;
1711
+ return t;
1712
+ }));
1713
+ return (t, i) => ge((H(), N(K(_e), z(K(r), { class: K(e)("dock-trigger dock-dropdown-trigger", n.class) }), {
1714
+ default: J(() => [G(t.$slots, "default")]),
1715
+ _: 3
1716
+ }, 16, ["class"])), [[K(s)]]);
1717
+ }
1718
+ }), Bt = /* @__PURE__ */ R({
1719
+ __name: "DockPopoverTrigger",
1720
+ props: {
1721
+ asChild: { type: Boolean },
1722
+ as: {},
1723
+ type: {},
1724
+ class: { type: [
1725
+ Boolean,
1726
+ null,
1727
+ String,
1728
+ Object,
1729
+ Array
1730
+ ] }
1731
+ },
1732
+ setup(t) {
1733
+ let n = t, r = Te(M(() => {
1333
1734
  let { class: e, ...t } = n;
1334
1735
  return t;
1335
1736
  }));
1336
- return (t, i) => Z((H(), k(K(se), I(K(r), { class: K(e)("dock-dropdown-trigger", n.class) }), {
1337
- default: X(() => [G(t.$slots, "default")]),
1737
+ return (t, i) => ge((H(), N(K(ve), z(K(r), { class: K(e)("dock-trigger dock-dropdown-trigger", n.class) }), {
1738
+ default: J(() => [G(t.$slots, "default")]),
1338
1739
  _: 3
1339
- }, 16, ["class"])), [[K(o)]]);
1740
+ }, 16, ["class"])), [[K(s)]]);
1340
1741
  }
1341
- }), St = [
1742
+ }), Vt = [
1342
1743
  "data-orientation",
1343
1744
  "data-rail-anchor",
1344
1745
  "aria-orientation"
1345
- ], Ct = /* @__PURE__ */ P({
1746
+ ], Ht = /* @__PURE__ */ R({
1346
1747
  __name: "DockSeparator",
1347
1748
  props: { anchor: {
1348
1749
  type: Boolean,
1349
1750
  default: !1
1350
1751
  } },
1351
1752
  setup(e) {
1352
- let t = m(), n = O(() => t?.orientation.value ?? "horizontal"), r = O(() => n.value), i = O(() => n.value === "vertical" ? "horizontal" : "vertical");
1353
- return (t, n) => (H(), j("div", {
1354
- class: R(["dock-separator", { "dock-separator--anchor": e.anchor }]),
1753
+ let t = v(), n = M(() => t?.orientation.value ?? "horizontal"), r = M(() => n.value), i = M(() => n.value === "vertical" ? "horizontal" : "vertical");
1754
+ return (t, n) => (H(), F("div", {
1755
+ class: B(["dock-separator", { "dock-separator--anchor": e.anchor }]),
1355
1756
  role: "separator",
1356
1757
  "data-orientation": r.value,
1357
1758
  "data-rail-anchor": e.anchor || void 0,
1358
1759
  "aria-orientation": i.value
1359
- }, null, 10, St));
1760
+ }, null, 10, Vt));
1761
+ }
1762
+ });
1763
+ //#endregion
1764
+ //#region src/components/custom/dock/composables/railProjection.ts
1765
+ function Ut(e, t) {
1766
+ return t <= 0 ? 0 : ((e + t / 2) % t + t) % t - t / 2;
1767
+ }
1768
+ function Wt(e, t, n) {
1769
+ let r = 0, i = t, a = Math.floor(e);
1770
+ for (let e = 0; e < a; e++) r += i, i /= n;
1771
+ return r += (e - a) * i, r;
1772
+ }
1773
+ var Gt = {
1774
+ slotSpacing: 44,
1775
+ tierRatio: 1.618,
1776
+ fadeStart: .5,
1777
+ fadeRange: 2.5,
1778
+ fadeMinAlpha: 0,
1779
+ scaleStep: .06,
1780
+ scaleClampSlots: 4
1781
+ };
1782
+ function Kt(e, t, n, r = {}) {
1783
+ let i = Math.max(0, Math.floor(e));
1784
+ if (i === 0) return [];
1785
+ let a = {
1786
+ ...Gt,
1787
+ ...r
1788
+ }, o = Math.ceil(a.fadeRange + 1), s = /* @__PURE__ */ new Set(), c = [];
1789
+ for (let e = -o; e <= o; e++) {
1790
+ let r = ((Math.round(t) + e) % i + i) % i;
1791
+ if (s.has(r)) continue;
1792
+ s.add(r);
1793
+ let o = Ut(r - t, i), l = Math.abs(o), u = Wt(l, a.slotSpacing, a.tierRatio), d = Math.sign(o) * u * n, f = 1 - (l - a.fadeStart) / Math.max(1e-6, a.fadeRange), p = Math.min(1, Math.max(a.fadeMinAlpha, f)), m = l === 0 ? 1 : p * n, h = 1 - Math.min(l, a.scaleClampSlots) * a.scaleStep;
1794
+ c.push({
1795
+ index: r,
1796
+ offset: o,
1797
+ translate: d,
1798
+ opacity: m,
1799
+ scale: h,
1800
+ active: l === 0
1801
+ });
1360
1802
  }
1361
- }), wt = ["data-orientation"], Tt = /* @__PURE__ */ P({
1803
+ return c.sort((e, t) => e.index - t.index), c;
1804
+ }
1805
+ //#endregion
1806
+ //#region src/components/custom/dock/DockStack.vue?vue&type=script&setup=true&lang.ts
1807
+ var qt = ["data-orientation", "data-mode"], Jt = /* @__PURE__ */ R({
1362
1808
  __name: "DockStack",
1363
- props: /* @__PURE__ */ F({
1809
+ props: /* @__PURE__ */ ne({
1364
1810
  items: {},
1811
+ mode: { default: "stack" },
1365
1812
  core: {},
1366
1813
  coreLabel: { default: "Open stack" },
1367
1814
  visibleCount: { default: 3 },
@@ -1375,50 +1822,63 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1375
1822
  },
1376
1823
  expandedModifiers: {}
1377
1824
  }),
1378
- emits: /* @__PURE__ */ F(["select"], ["update:selected", "update:expanded"]),
1825
+ emits: /* @__PURE__ */ ne(["select"], ["update:selected", "update:expanded"]),
1379
1826
  setup(e, { emit: t }) {
1380
- let r = e, i = t, a = q(e, "selected"), o = q(e, "expanded"), s = m(), c = O(() => s?.orientation.value ?? "vertical"), l = O(() => r.core ?? n), u = O(() => [...r.items]), d = O(() => u.value.length > r.visibleCount), f = O(() => Math.min(u.value.length, r.visibleCount)), p = null;
1381
- function h() {
1382
- p != null && (clearTimeout(p), p = null);
1827
+ let r = e, i = t, a = pe(e, "selected"), o = pe(e, "expanded"), s = v(), c = M(() => s?.orientation.value ?? "vertical"), l = M(() => r.core ?? n), u = M(() => [...r.items]), d = M(() => u.value.length > r.visibleCount), f = M(() => Math.min(u.value.length, r.visibleCount)), p = M(() => r.mode === "facets"), m = M(() => Math.max(0, u.value.findIndex((e) => e.id === a.value))), h = M(() => p.value ? Kt(u.value.length, m.value, 1) : []);
1828
+ function g(e) {
1829
+ let t = h.value.find((t) => t.index === e);
1830
+ return t ? {
1831
+ scale: t.scale,
1832
+ opacity: t.opacity
1833
+ } : {
1834
+ scale: 1,
1835
+ opacity: 1
1836
+ };
1837
+ }
1838
+ let _ = null;
1839
+ function y() {
1840
+ _ != null && (clearTimeout(_), _ = null);
1383
1841
  }
1384
- function g() {
1385
- h(), p = setTimeout(() => {
1386
- o.value = !0, p = null;
1842
+ function b() {
1843
+ y(), _ = setTimeout(() => {
1844
+ o.value = !0, _ = null;
1387
1845
  }, 60);
1388
1846
  }
1389
- function _() {
1390
- h(), o.value = !1;
1847
+ function x() {
1848
+ y(), o.value = !1;
1391
1849
  }
1392
- function v() {
1393
- h(), o.value = !0;
1850
+ function S() {
1851
+ y(), o.value = !0;
1394
1852
  }
1395
- function y(e) {
1853
+ function C(e) {
1396
1854
  let t = e.relatedTarget, n = e.currentTarget;
1397
1855
  n && t && n.contains(t) || (o.value = !1);
1398
1856
  }
1399
- ee(h);
1400
- function x(e) {
1857
+ ie(y);
1858
+ function T(e) {
1401
1859
  a.value = e.id, e.onSelect?.(), i("select", e.id);
1402
1860
  }
1403
- return (t, n) => (H(), j("div", {
1404
- class: R(["dock-stack", [
1861
+ return (t, n) => (H(), F("div", {
1862
+ class: B(["dock-stack", [
1405
1863
  c.value,
1406
1864
  `at-${e.position}`,
1865
+ `mode-${e.mode}`,
1407
1866
  { "is-expanded": o.value }
1408
1867
  ]]),
1409
1868
  "data-orientation": c.value,
1410
- onPointerenter: g,
1411
- onPointerleave: _,
1412
- onFocusin: v,
1413
- onFocusout: y
1414
- }, [N(_t, {
1869
+ "data-mode": e.mode,
1870
+ onPointerenter: b,
1871
+ onPointerleave: x,
1872
+ onFocusin: S,
1873
+ onFocusout: C
1874
+ }, [L(Ft, {
1415
1875
  type: "button",
1416
1876
  class: "dock-stack-core",
1417
1877
  "aria-label": e.coreLabel,
1418
1878
  "aria-expanded": o.value,
1419
1879
  title: e.coreLabel
1420
1880
  }, {
1421
- default: X(() => [(H(), k(re(l.value), {
1881
+ default: J(() => [(H(), N(le(l.value), {
1422
1882
  class: "size-4",
1423
1883
  "aria-hidden": "true"
1424
1884
  }))]),
@@ -1427,23 +1887,36 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1427
1887
  "aria-label",
1428
1888
  "aria-expanded",
1429
1889
  "title"
1430
- ]), N(b, {
1890
+ ]), L(w, {
1431
1891
  axis: c.value === "vertical" ? "x" : "y",
1432
1892
  class: "dock-stack-fan",
1433
- style: z({ "--dock-stack-visible": f.value }),
1893
+ style: V({ "--dock-stack-visible": f.value }),
1434
1894
  "data-scrolls": d.value || void 0
1435
1895
  }, {
1436
- default: X(() => [(H(!0), j(D, null, ne(u.value, (e, t) => (H(), k(_t, {
1896
+ default: J(() => [(H(!0), F(j, null, ce(u.value, (e, t) => (H(), N(Ft, {
1437
1897
  key: e.id,
1438
1898
  type: "button",
1439
- class: R(["dock-stack-member", { "is-active": a.value === e.id }]),
1440
- style: z({ "--i": t }),
1899
+ class: B(["dock-stack-member", {
1900
+ "is-active": a.value === e.id,
1901
+ "dock-facet-chip": p.value
1902
+ }]),
1903
+ style: V({
1904
+ "--i": t,
1905
+ ...p.value && e.accent ? {
1906
+ "--glass-accent": e.accent,
1907
+ "--glass-accent-strength": "var(--dock-facet-accent-strength)"
1908
+ } : {},
1909
+ ...p.value ? {
1910
+ "--dock-facet-tier-scale": `${g(t).scale}`,
1911
+ "--dock-facet-tier-opacity": `${g(t).opacity}`
1912
+ } : {}
1913
+ }),
1441
1914
  "aria-label": e.label,
1442
1915
  "aria-pressed": a.value === e.id,
1443
1916
  title: e.label,
1444
- onClick: (t) => x(e)
1917
+ onClick: (t) => T(e)
1445
1918
  }, {
1446
- default: X(() => [(H(), k(re(e.icon ?? l.value), {
1919
+ default: J(() => [(H(), N(le(e.icon ?? l.value), {
1447
1920
  class: "size-4",
1448
1921
  "aria-hidden": "true"
1449
1922
  }))]),
@@ -1461,13 +1934,13 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1461
1934
  "axis",
1462
1935
  "style",
1463
1936
  "data-scrolls"
1464
- ])], 42, wt));
1937
+ ])], 42, qt));
1465
1938
  }
1466
- }), Et = ["aria-label"], Dt = [
1939
+ }), Yt = ["aria-label"], Xt = [
1467
1940
  "data-kind",
1468
1941
  "data-section-id",
1469
1942
  "aria-label"
1470
- ], Ot = /* @__PURE__ */ P({
1943
+ ], Zt = /* @__PURE__ */ R({
1471
1944
  __name: "DockSection",
1472
1945
  props: {
1473
1946
  sections: {},
@@ -1475,7 +1948,7 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1475
1948
  ariaLabel: { default: "Dock sections" }
1476
1949
  },
1477
1950
  setup(e) {
1478
- let t = e, n = O(() => {
1951
+ let t = e, n = M(() => {
1479
1952
  if (t.anchorId) return t.anchorId;
1480
1953
  let e = t.sections.find((e) => e.kind === "nav");
1481
1954
  return e ? e.id : t.sections.find((e) => e.kind !== "rail-core")?.id;
@@ -1489,33 +1962,33 @@ var ft = { key: 1 }, pt = { key: 2 }, mt = /* @__PURE__ */ P({
1489
1962
  function a(e) {
1490
1963
  return `dock-section-zone--${e === "rail-core" ? "core" : e}`;
1491
1964
  }
1492
- return (t, n) => (H(), j("div", {
1965
+ return (t, n) => (H(), F("div", {
1493
1966
  class: "dock-section",
1494
1967
  role: "group",
1495
1968
  "aria-label": e.ariaLabel
1496
- }, [(H(!0), j(D, null, ne(e.sections, (e, n) => (H(), j(D, { key: e.id }, [r(n) ? (H(), k(Ct, {
1969
+ }, [(H(!0), F(j, null, ce(e.sections, (e, n) => (H(), F(j, { key: e.id }, [r(n) ? (H(), N(Ht, {
1497
1970
  key: 0,
1498
1971
  anchor: i(e)
1499
- }, null, 8, ["anchor"])) : A("", !0), M("div", {
1500
- class: R(["dock-section-zone", a(e.kind)]),
1972
+ }, null, 8, ["anchor"])) : P("", !0), I("div", {
1973
+ class: B(["dock-section-zone", a(e.kind)]),
1501
1974
  "data-kind": e.kind,
1502
1975
  "data-section-id": e.id,
1503
1976
  "aria-label": e.label || void 0
1504
1977
  }, [G(t.$slots, e.id, {
1505
1978
  section: e,
1506
1979
  kind: e.kind
1507
- })], 10, Dt)], 64))), 128))], 8, Et));
1980
+ })], 10, Xt)], 64))), 128))], 8, Yt));
1508
1981
  }
1509
1982
  });
1510
1983
  //#endregion
1511
1984
  //#region src/components/custom/dock/composables/useDockSearch.ts
1512
- function kt(e) {
1985
+ function Qt(e) {
1513
1986
  let { dockState: t } = e, n = e.debounceMs ?? 120, r = e.maxResults ?? 30, i = W([]), a = null, o = e.items ? e.items : () => i.value;
1514
1987
  function s(t) {
1515
1988
  let n = t.item.id;
1516
1989
  e.ensureTargetWindow?.(n), e.scrollTo?.(n), e.onResultSelect?.(t);
1517
1990
  }
1518
- let c = E({
1991
+ let c = te({
1519
1992
  items: o,
1520
1993
  debounceMs: n,
1521
1994
  maxResults: r,
@@ -1523,7 +1996,7 @@ function kt(e) {
1523
1996
  });
1524
1997
  if (e.onSearch) {
1525
1998
  let t = e.onSearch;
1526
- Y(() => c.query.value, (e) => {
1999
+ q(() => c.query.value, (e) => {
1527
2000
  if (a?.abort(), !e) {
1528
2001
  i.value = [];
1529
2002
  return;
@@ -1536,7 +2009,7 @@ function kt(e) {
1536
2009
  });
1537
2010
  });
1538
2011
  }
1539
- let l = O(() => {
2012
+ let l = M(() => {
1540
2013
  let e = c.query.value;
1541
2014
  if (!e) return "";
1542
2015
  let t = c.results.value[0];
@@ -1556,10 +2029,10 @@ function kt(e) {
1556
2029
  d.value && (d.value = !1, c.close(), t.release());
1557
2030
  }
1558
2031
  let m = null;
1559
- return e.collapseOnScroll && e.scrollContainer && (m = T(e.scrollContainer, {
2032
+ return e.collapseOnScroll && e.scrollContainer && (m = A(e.scrollContainer, {
1560
2033
  collapseOnScroll: !0,
1561
2034
  chromeRef: e.chromeRef
1562
- })), B(() => {
2035
+ })), oe(() => {
1563
2036
  a?.abort(), a = null;
1564
2037
  }), {
1565
2038
  fuzzy: c,
@@ -1573,93 +2046,165 @@ function kt(e) {
1573
2046
  }
1574
2047
  //#endregion
1575
2048
  //#region src/components/custom/dock/composables/useDockOrientationMorph.ts
1576
- function At(e) {
1577
- let { rootEl: t } = e, n = W("vertical"), r = W(0), i = W(!1), o = () => {
2049
+ function $t(e) {
2050
+ let { rootEl: t } = e, n = W("vertical"), r = W(0), i = W(!1), a = () => {
1578
2051
  let e = t.value;
1579
- if (!e) return 1.08;
2052
+ if (!e) return 1.14;
1580
2053
  let n = getComputedStyle(e).getPropertyValue("--dock-morph-max-stretch").trim(), r = n ? Number.parseFloat(n) : NaN;
1581
- return Number.isFinite(r) && r >= 1 ? r : 1.08;
1582
- }, s = a({
2054
+ return c(e, Number.isFinite(r) && r >= 1 ? r : 1.14);
2055
+ }, s = o({
1583
2056
  from: e.verticalSize,
1584
2057
  to: 0,
1585
2058
  axis: "height",
1586
- maxStretch: o
1587
- }), c = a({
2059
+ maxStretch: a
2060
+ }), u = o({
1588
2061
  from: 0,
1589
2062
  to: e.horizontalSize,
1590
2063
  axis: "width",
1591
- maxStretch: o
1592
- }), l = null;
1593
- function u(e) {
1594
- r.value = e, s.drive(e), c.drive(e);
2064
+ maxStretch: a
2065
+ }), d = null;
2066
+ function f(e) {
2067
+ r.value = e, s.drive(e), u.drive(e);
1595
2068
  let n = t.value;
1596
- n && (n.style.setProperty("--dock-morph-t", `${e}`), n.style.setProperty("--stretch", `${Math.max(s.stretch.value, c.stretch.value)}`));
2069
+ n && (n.style.setProperty("--dock-morph-t", `${e}`), n.style.setProperty("--stretch", `${Math.max(s.stretch.value, u.stretch.value)}`), l(n, Math.max(s.flexVel.value, u.flexVel.value)));
1597
2070
  }
1598
- function d() {
1599
- l &&= (l.dispose(), null);
2071
+ function p() {
2072
+ d &&= (d.dispose(), null);
1600
2073
  }
1601
- function f() {
2074
+ function m() {
1602
2075
  return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
1603
2076
  }
1604
- function p(e) {
1605
- if (f()) {
1606
- g(e);
2077
+ function h(e) {
2078
+ if (m()) {
2079
+ v(e);
1607
2080
  return;
1608
2081
  }
1609
- let n = t.value, a = l !== null && !l.settled ? l.velocity : 0;
1610
- if (!l || l.settled) {
1611
- d(), l = new _e({
1612
- response: v.response,
1613
- dampingFraction: v.dampingFraction,
2082
+ let n = t.value, a = d !== null && !d.settled ? d.velocity : 0;
2083
+ if (!d || d.settled) {
2084
+ p(), d = new X({
2085
+ response: S.response,
2086
+ dampingFraction: S.dampingFraction,
1614
2087
  initial: r.value,
1615
2088
  respectReducedMotion: !0
1616
2089
  });
1617
- let o = l;
2090
+ let o = d;
1618
2091
  o.reset(r.value, a), o.target = e, i.value = !0, n && n.setAttribute("data-morphing", ""), o.play((e) => {
1619
- if (u(e), o.settled) {
2092
+ if (f(e), o.settled) {
1620
2093
  i.value = !1;
1621
2094
  let e = t.value;
1622
2095
  e && e.removeAttribute("data-morphing");
1623
2096
  }
1624
2097
  });
1625
- } else l.reset(r.value, a), l.target = e;
2098
+ } else d.reset(r.value, a), d.target = e;
1626
2099
  }
1627
- function m(e) {
1628
- e === n.value && !i.value || (n.value = e, p(+(e === "horizontal")));
2100
+ function g(e) {
2101
+ e === n.value && !i.value || (n.value = e, h(+(e === "horizontal")));
1629
2102
  }
1630
- function h() {
1631
- m(n.value === "vertical" ? "horizontal" : "vertical");
2103
+ function _() {
2104
+ g(n.value === "vertical" ? "horizontal" : "vertical");
1632
2105
  }
1633
- function g(e) {
2106
+ function v(e) {
1634
2107
  let r = e < 0 ? 0 : e > 1 ? 1 : e;
1635
- d(), i.value = !1, n.value = r >= .5 ? "horizontal" : "vertical", u(r), u(r);
2108
+ p(), i.value = !1, n.value = r >= .5 ? "horizontal" : "vertical", f(r), f(r);
1636
2109
  let a = t.value;
1637
2110
  a && a.removeAttribute("data-morphing");
1638
2111
  }
1639
- function _(e) {
2112
+ function y(e) {
1640
2113
  let t = Math.min(Math.max(e / .5, 0), 1);
1641
2114
  return 1 - t * t * (3 - 2 * t);
1642
2115
  }
1643
- function y(e) {
2116
+ function b(e) {
1644
2117
  let t = Math.min(Math.max((e - .5) / .5, 0), 1);
1645
2118
  return t * t * (3 - 2 * t);
1646
2119
  }
1647
- let b = O(() => s.sizeStyle.value), x = O(() => c.sizeStyle.value), S = O(() => ({ opacity: String(_(r.value)) })), C = O(() => ({ opacity: String(y(r.value)) })), w = O(() => Math.max(s.stretch.value, c.stretch.value));
1648
- return Y(t, (e) => {
2120
+ let x = M(() => s.sizeStyle.value), C = M(() => u.sizeStyle.value), w = M(() => ({ opacity: String(y(r.value)) })), T = M(() => ({ opacity: String(b(r.value)) })), E = M(() => Math.max(s.stretch.value, u.stretch.value));
2121
+ return q(t, (e) => {
1649
2122
  e && e.style.setProperty("--dock-morph-t", `${r.value}`);
1650
- }, { immediate: !0 }), B(d), {
2123
+ }, { immediate: !0 }), oe(p), {
1651
2124
  orientation: n,
1652
2125
  t: r,
1653
2126
  morphing: i,
1654
- verticalStyle: b,
1655
- horizontalStyle: x,
1656
- verticalOpacity: S,
1657
- horizontalOpacity: C,
1658
- stretch: w,
1659
- morphTo: m,
1660
- toggle: h,
1661
- pin: g
2127
+ verticalStyle: x,
2128
+ horizontalStyle: C,
2129
+ verticalOpacity: w,
2130
+ horizontalOpacity: T,
2131
+ stretch: E,
2132
+ morphTo: g,
2133
+ toggle: _,
2134
+ pin: v
1662
2135
  };
1663
2136
  }
1664
2137
  //#endregion
1665
- export { y as DOCK_CONTEXT_KEY, vt as DockBackgroundToggle, xt as DockDropdownTrigger, _t as DockIconButton, gt as DockLayer, mt as DockLayerGroup, Ot as DockSection, bt as DockSelectTrigger, Ct as DockSeparator, Tt as DockStack, yt as DockTabButton, nt as GlassDock, h as provideDockContext, _ as useDockContext, C as useDockCtaReceive, At as useDockOrientationMorph, kt as useDockSearch, dt as useLayerTransition, m as useOptionalDockContext };
2138
+ //#region src/components/custom/goo-filter/GooFilter.vue?vue&type=script&setup=true&lang.ts
2139
+ var en = {
2140
+ class: "goo-filter-host",
2141
+ "aria-hidden": "true",
2142
+ focusable: "false",
2143
+ width: "1",
2144
+ height: "1"
2145
+ }, tn = ["id"], nn = ["stdDeviation"], rn = ["values"], an = /* @__PURE__ */ u(/* @__PURE__ */ R({
2146
+ __name: "GooFilter",
2147
+ props: { extra: { default: () => [] } },
2148
+ setup(e) {
2149
+ let t = [
2150
+ {
2151
+ id: "glass-goo",
2152
+ blur: 10,
2153
+ slope: 15,
2154
+ offset: -7
2155
+ },
2156
+ {
2157
+ id: "dock-fission-goo",
2158
+ blur: 7,
2159
+ slope: 20,
2160
+ offset: -9
2161
+ },
2162
+ {
2163
+ id: "pager-goo",
2164
+ blur: 8,
2165
+ slope: 18,
2166
+ offset: -7
2167
+ },
2168
+ {
2169
+ id: "dock-morph-goo",
2170
+ blur: 16,
2171
+ slope: 14,
2172
+ offset: -7
2173
+ },
2174
+ {
2175
+ id: "morph-goo",
2176
+ blur: 10,
2177
+ slope: 18,
2178
+ offset: -7
2179
+ }
2180
+ ], n = e, r = [...t, ...n.extra];
2181
+ return (e, t) => (H(), F("svg", en, [I("defs", null, [(H(), F(j, null, ce(r, (e) => I("filter", {
2182
+ key: e.id,
2183
+ id: e.id,
2184
+ "color-interpolation-filters": "sRGB",
2185
+ x: "-50%",
2186
+ y: "-50%",
2187
+ width: "200%",
2188
+ height: "200%"
2189
+ }, [
2190
+ I("feGaussianBlur", {
2191
+ in: "SourceGraphic",
2192
+ stdDeviation: e.blur,
2193
+ result: "blur"
2194
+ }, null, 8, nn),
2195
+ I("feColorMatrix", {
2196
+ in: "blur",
2197
+ mode: "matrix",
2198
+ values: `1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 ${e.slope} ${e.offset}`,
2199
+ result: "goo"
2200
+ }, null, 8, rn),
2201
+ t[0] ||= I("feComposite", {
2202
+ in: "SourceGraphic",
2203
+ in2: "goo",
2204
+ operator: "atop"
2205
+ }, null, -1)
2206
+ ], 8, tn)), 64))])]));
2207
+ }
2208
+ }), [["__scopeId", "data-v-25de26c8"]]);
2209
+ //#endregion
2210
+ export { C as DOCK_CONTEXT_KEY, Ae as DOCK_SPLIT_SIGNATURES, It as DockBackgroundToggle, zt as DockDropdownTrigger, Ft as DockIconButton, Pt as DockLayer, Mt as DockLayerGroup, Bt as DockPopoverTrigger, Zt as DockSection, Rt as DockSelectTrigger, Ht as DockSeparator, Jt as DockStack, Lt as DockTabButton, bt as GlassDock, an as GooFilter, y as provideDockContext, x as useDockContext, k as useDockCtaReceive, je as useDockFission, $t as useDockOrientationMorph, Qt as useDockSearch, kt as useLayerTransition, v as useOptionalDockContext };