@mkbabb/glass-ui 3.2.0 → 3.4.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 (306) hide show
  1. package/dist/{CardFooter-3-VGho1J.js → CardFooter-C390imy7.js} +2 -2
  2. package/dist/{CollapsibleContent-wlmlDujU.js → CollapsibleContent-cauTbZEM.js} +1 -1
  3. package/dist/{CommandShortcut-C6lsz3pG.js → CommandShortcut-BiVyqipe.js} +5 -4
  4. package/dist/DataTable-FfkaAg2z.js +465 -0
  5. package/dist/DialogContent-IQ8_BRrC.js +100 -0
  6. package/dist/{DiscoGlyph-B7YooI2-.js → DiscoGlyph-BaZ8OawK.js} +1 -1
  7. package/dist/{GlyphFace-Bvk6OIas.js → GlyphFace-B_7vOmYn.js} +1 -1
  8. package/dist/HoverPopover-DTSYkJtw.js +96 -0
  9. package/dist/{IconTooltip-DXveGjx7.js → IconTooltip-BTyYn4mr.js} +1 -1
  10. package/dist/Input-CU9CNKmo.js +52 -0
  11. package/dist/{MetricBadge-J_GBCb8e.js → MetricBadge-BlrdbOGN.js} +1 -1
  12. package/dist/{NumberFieldContent-B6L6YrQz.js → NumberFieldContent-iOTQ5rGO.js} +8 -4
  13. package/dist/{PopoverContent-CxEEUL7Y.js → PopoverContent-B8WtJECb.js} +1 -1
  14. package/dist/Progress-DjM86vfb.js +254 -0
  15. package/dist/{ScrollingText-1Qjnwz6H.js → ScrollingText-P9o_DuMn.js} +1 -1
  16. package/dist/{SelectScrollDownButton-BvvvAbuh.js → SelectScrollDownButton-BGn3rjs9.js} +9 -8
  17. package/dist/TabsIndicator-DA0x9gPr.js +97 -0
  18. package/dist/{ToggleGroupItem-Cy7xHFEo.js → ToggleGroupItem-gyXj998A.js} +37 -40
  19. package/dist/UnderlineTabs-Cq_AD03t.js +39 -0
  20. package/dist/animated-digit.js +2 -2
  21. package/dist/api/index.d.ts +2 -0
  22. package/dist/api.js +1 -1
  23. package/dist/aurora.js +454 -271
  24. package/dist/{button-DS3ULf5i.js → button-Ckn3eDfB.js} +27 -22
  25. package/dist/button.js +1 -1
  26. package/dist/card.js +1 -1
  27. package/dist/carousel.js +2 -2
  28. package/dist/collapsible.js +1 -1
  29. package/dist/color-rkK4RMx2.js +33 -0
  30. package/dist/color.d.ts +1 -0
  31. package/dist/color.js +2 -0
  32. package/dist/command.js +1 -1
  33. package/dist/compile-DVgAxagk.js +106 -0
  34. package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +7 -7
  35. package/dist/components/custom/aurora/Aurora.vue.d.ts +3 -3
  36. package/dist/components/custom/aurora/composables/color.d.ts +3 -25
  37. package/dist/components/custom/aurora/composables/cursorModel.d.ts +45 -0
  38. package/dist/components/custom/aurora/composables/frameLoop.d.ts +30 -0
  39. package/dist/components/custom/aurora/composables/glSetup.d.ts +29 -0
  40. package/dist/components/custom/aurora/composables/runtime.d.ts +45 -35
  41. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +67 -0
  42. package/dist/components/custom/aurora/composables/useAurora.d.ts +14 -1
  43. package/dist/components/custom/aurora/composables/useCursorInteraction.d.ts +1 -1
  44. package/dist/components/custom/aurora/constants/budget.d.ts +50 -0
  45. package/dist/components/custom/aurora/{presets.d.ts → constants/presets.d.ts} +2 -5
  46. package/dist/components/custom/aurora/constants/shaders/aurora.frag.d.ts +1 -0
  47. package/dist/components/custom/aurora/constants/shaders/brush.glsl.d.ts +1 -0
  48. package/dist/components/custom/aurora/constants/shaders/composition.glsl.d.ts +1 -0
  49. package/dist/components/custom/aurora/constants/shaders/flow.glsl.d.ts +1 -0
  50. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +2 -0
  51. package/dist/components/custom/aurora/constants/shaders/tonemap.glsl.d.ts +1 -0
  52. package/dist/components/custom/aurora/index.d.ts +2 -2
  53. package/dist/components/custom/configurator/ConfiguratorLayer.vue.d.ts +14 -7
  54. package/dist/components/custom/configurator/density.d.ts +3 -8
  55. package/dist/components/custom/dock/DockBackgroundToggle.vue.d.ts +46 -0
  56. package/dist/components/custom/dock/DockIconButton.vue.d.ts +3 -3
  57. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +2 -2
  58. package/dist/components/custom/dock/GlassDock.vue.d.ts +22 -18
  59. package/dist/components/custom/dock/composables/dockContext.d.ts +4 -4
  60. package/dist/components/custom/dock/composables/dockLayerContext.d.ts +13 -6
  61. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +32 -8
  62. package/dist/components/custom/dock/index.d.ts +1 -0
  63. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +10 -0
  64. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
  65. package/dist/components/custom/glyph-face/keys.d.ts +3 -29
  66. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +48 -0
  67. package/dist/components/custom/goo-blob/composables/easing.d.ts +6 -0
  68. package/dist/components/custom/goo-blob/composables/useBlobMood.d.ts +14 -0
  69. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +18 -0
  70. package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +13 -0
  71. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +42 -0
  72. package/dist/components/custom/goo-blob/index.d.ts +7 -0
  73. package/dist/components/custom/goo-blob/shaders/metaball.frag.d.ts +1 -0
  74. package/dist/components/custom/goo-blob/shaders/metaball.vert.d.ts +1 -0
  75. package/dist/components/custom/goo-blob/shaders/oklch-perturb.glsl.d.ts +1 -0
  76. package/dist/components/custom/goo-blob/shaders/sdf-body.glsl.d.ts +1 -0
  77. package/dist/components/custom/goo-blob/shaders/watercolor-edges.glsl.d.ts +2 -0
  78. package/dist/components/custom/goo-blob/types.d.ts +77 -0
  79. package/dist/components/custom/hover-popover/HoverPopover.vue.d.ts +48 -9
  80. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +2 -0
  81. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +2 -2
  82. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +2 -2
  83. package/dist/components/custom/responsive-tabs/ResponsiveTabs.vue.d.ts +13 -7
  84. package/dist/components/custom/search/FuzzySearch.vue.d.ts +1 -1
  85. package/dist/components/custom/search/SearchBar.vue.d.ts +1 -1
  86. package/dist/components/custom/sortable-list/SortableHandle.vue.d.ts +7 -1
  87. package/dist/components/custom/sortable-list/context.d.ts +2 -3
  88. package/dist/components/custom/tabs/BouncyTabs.vue.d.ts +6 -3
  89. package/dist/components/custom/tabs/BouncyToggle.vue.d.ts +7 -3
  90. package/dist/components/custom/tabs/UnderlineTabs.vue.d.ts +6 -3
  91. package/dist/components/custom/tabs/composables/useBouncySlider.d.ts +39 -0
  92. package/dist/components/custom/timeline/ContinuousMarkers.vue.d.ts +49 -0
  93. package/dist/components/custom/timeline/ContinuousRail.vue.d.ts +26 -0
  94. package/dist/components/custom/timeline/ContinuousTimeline.vue.d.ts +4 -4
  95. package/dist/components/custom/typewriter/TypewriterText.vue.d.ts +2 -2
  96. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +45 -0
  97. package/dist/components/custom/watercolor-dot/index.d.ts +3 -0
  98. package/dist/components/custom/watercolor-dot/prng.d.ts +5 -0
  99. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +24 -0
  100. package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
  101. package/dist/components/ui/avatar/Avatar.vue.d.ts +1 -1
  102. package/dist/components/ui/avatar/AvatarImage.vue.d.ts +5 -1
  103. package/dist/components/ui/avatar/index.d.ts +1 -1
  104. package/dist/components/ui/badge/index.d.ts +2 -2
  105. package/dist/components/ui/button/Button.vue.d.ts +3 -1
  106. package/dist/components/ui/button/index.d.ts +2 -2
  107. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
  108. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
  109. package/dist/components/ui/combobox/Combobox.vue.d.ts +2 -2
  110. package/dist/components/ui/combobox/ComboboxInput.vue.d.ts +2 -1
  111. package/dist/components/ui/command/Command.vue.d.ts +3 -3
  112. package/dist/components/ui/command/CommandInput.vue.d.ts +2 -1
  113. package/dist/components/ui/data-table/DataTable.vue.d.ts +5 -4
  114. package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -0
  115. package/dist/components/ui/drawer/Drawer.vue.d.ts +4 -4
  116. package/dist/components/ui/input/Input.vue.d.ts +19 -1
  117. package/dist/components/ui/multi-select/MultiSelect.vue.d.ts +8 -4
  118. package/dist/components/ui/progress/Progress.vue.d.ts +26 -88
  119. package/dist/components/ui/progress/ProgressDefault.vue.d.ts +14 -0
  120. package/dist/components/ui/progress/ProgressGradient.vue.d.ts +25 -0
  121. package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +36 -0
  122. package/dist/components/ui/progress/index.d.ts +5 -2
  123. package/dist/components/ui/progress/useProgressGeometry.d.ts +60 -0
  124. package/dist/components/ui/select/Select.vue.d.ts +2 -2
  125. package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
  126. package/dist/components/ui/select/SelectTrigger.vue.d.ts +3 -0
  127. package/dist/components/ui/sheet/index.d.ts +1 -1
  128. package/dist/components/ui/slider/index.d.ts +12 -11
  129. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
  130. package/dist/components/ui/textarea/Textarea.vue.d.ts +5 -1
  131. package/dist/components/ui/toast/Toast.vue.d.ts +4 -4
  132. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  133. package/dist/components/ui/toggle/index.d.ts +1 -1
  134. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +2 -3
  135. package/dist/composables/color/index.d.ts +49 -0
  136. package/dist/composables/context/createContext.d.ts +56 -0
  137. package/dist/composables/context/index.d.ts +1 -0
  138. package/dist/composables/dark/darkModeSyncScript.d.ts +23 -0
  139. package/dist/composables/dark/index.d.ts +3 -0
  140. package/dist/composables/dark/useGlobalDark.d.ts +19 -2
  141. package/dist/composables/dom/index.d.ts +0 -3
  142. package/dist/composables/dom/useClipboard.d.ts +35 -12
  143. package/dist/composables/dom/useDocumentVisibility.d.ts +20 -0
  144. package/dist/composables/glass/webgl/compile.d.ts +15 -0
  145. package/dist/composables/glass/webgl/shaders/procedural-color.glsl.d.ts +3 -0
  146. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +55 -0
  147. package/dist/composables/motion/core/index.d.ts +1 -1
  148. package/dist/composables/motion/index.d.ts +1 -1
  149. package/dist/composables/motion/useCountup.d.ts +29 -0
  150. package/dist/composables/motion/useNumericTransition.d.ts +14 -3
  151. package/dist/composables/motion/vReveal.d.ts +2 -0
  152. package/dist/composables/sidebar/useSidebarState.d.ts +2 -2
  153. package/dist/composables/sortable/dragController.d.ts +44 -0
  154. package/dist/composables/sortable/dropResolver.d.ts +34 -0
  155. package/dist/composables/sortable/ghostRenderer.d.ts +44 -0
  156. package/dist/composables/sortable/index.d.ts +1 -1
  157. package/dist/composables/sortable/touchGate.d.ts +26 -0
  158. package/dist/composables/sortable/transitionTiming.d.ts +50 -0
  159. package/dist/composables/sortable/types.d.ts +133 -0
  160. package/dist/composables/sortable/useSortable.d.ts +25 -153
  161. package/dist/configurator.js +1 -1
  162. package/dist/confirm-dialog.js +1 -1
  163. package/dist/controls.js +4 -4
  164. package/dist/createContext-DBMGRlx4.js +25 -0
  165. package/dist/dark.d.ts +2 -1
  166. package/dist/dark.js +9 -2
  167. package/dist/data-table.js +1 -1
  168. package/dist/dialog.js +1 -1
  169. package/dist/disco-glyph.js +1 -1
  170. package/dist/dock.js +400 -261
  171. package/dist/dockContext-spUj_-E5.js +9 -0
  172. package/dist/dom.js +6 -6
  173. package/dist/{dropdown-menu-naE0skDg.js → dropdown-menu-EFjl5iKo.js} +1 -1
  174. package/dist/dropdown-menu.js +1 -1
  175. package/dist/expandable-container.js +26 -20
  176. package/dist/fonts/README.md +21 -0
  177. package/dist/fonts/fraunces/fraunces-latin.woff2 +0 -0
  178. package/dist/forms.js +68 -59
  179. package/dist/glass-panel.js +1 -1
  180. package/dist/glass-ui.css +1 -1
  181. package/dist/glass-ui.js +226 -328
  182. package/dist/glyph-face.js +2 -2
  183. package/dist/goo-blob.d.ts +1 -0
  184. package/dist/goo-blob.js +538 -0
  185. package/dist/header-ribbon.js +2 -2
  186. package/dist/hover-card.js +1 -1
  187. package/dist/hover-popover.js +1 -1
  188. package/dist/icon-tooltip.js +1 -1
  189. package/dist/index.d.ts +1 -0
  190. package/dist/instrument-chassis.js +1 -1
  191. package/dist/instrument-rail.js +1 -1
  192. package/dist/keys-BFoma9vm.js +9 -0
  193. package/dist/label.js +1 -1
  194. package/dist/labeled-field.js +57 -39
  195. package/dist/metric-badge.js +1 -1
  196. package/dist/motion-core.js +82 -123
  197. package/dist/motion.js +62 -14
  198. package/dist/number-field.js +1 -1
  199. package/dist/paper-backdrop.js +1 -1
  200. package/dist/popover.js +1 -1
  201. package/dist/{presets-BpTf63Hp.js → presets-1OhFpaIC.js} +1 -1
  202. package/dist/prng-Bz_1Tydc.js +15 -0
  203. package/dist/progress.js +2 -2
  204. package/dist/reactive.js +2 -2
  205. package/dist/responsive-tabs.js +38 -32
  206. package/dist/scrolling-text.js +1 -1
  207. package/dist/search.js +8 -8
  208. package/dist/select.js +3 -3
  209. package/dist/separator.js +1 -1
  210. package/dist/sheet.js +1 -1
  211. package/dist/{slider-wx8ifVFB.js → slider-BOh8ycfZ.js} +7 -11
  212. package/dist/slider.js +1 -1
  213. package/dist/sortable-list.js +36 -38
  214. package/dist/stacked-icons.js +2 -2
  215. package/dist/styles/animations.css +1 -1
  216. package/dist/styles/cards.css +1 -1
  217. package/dist/styles/components.css +1 -1
  218. package/dist/styles/dock-controls.css +486 -0
  219. package/dist/styles/dock.css +284 -450
  220. package/dist/styles/fonts.css +25 -0
  221. package/dist/styles/glass-specular-track.css +154 -0
  222. package/dist/styles/glass.css +74 -2
  223. package/dist/styles/index.css +21 -2
  224. package/dist/styles/instrument-chassis.css +11 -4
  225. package/dist/styles/theme.css +73 -21
  226. package/dist/styles/tokens.css +271 -140
  227. package/dist/styles/typography.css +14 -8
  228. package/dist/styles/utilities.css +36 -8
  229. package/dist/styles/view-transition.css +10 -4
  230. package/dist/switch.js +1 -1
  231. package/dist/tabs.js +139 -112
  232. package/dist/timeline.js +219 -158
  233. package/dist/toast.js +1 -1
  234. package/dist/toggle-group.js +1 -1
  235. package/dist/tokens.d.ts +1 -1
  236. package/dist/tooltip.js +1 -1
  237. package/dist/{useAnimatedNumber-BOxrS3a6.js → useAnimatedNumber-BF6r64lA.js} +1 -1
  238. package/dist/useClipboard-D8vFyRCa.js +97 -0
  239. package/dist/{useConfiguratorState-Dq2gNv4A.js → useConfiguratorState-DUtC1jxr.js} +82 -86
  240. package/dist/useGlobalDark-CWiaCoEw.js +34 -0
  241. package/dist/useIntersectionPause-DAdVPVp4.js +53 -0
  242. package/dist/useSortable-DnyGXKKY.js +246 -0
  243. package/dist/{useTouchGate-XX8gHfay.js → useTouchGate-CS5Csc2h.js} +1 -1
  244. package/dist/utils/prng.d.ts +4 -0
  245. package/dist/vReveal-u2wSG2El.js +35 -0
  246. package/dist/watercolor-dot.d.ts +1 -0
  247. package/dist/watercolor-dot.js +129 -0
  248. package/package.json +101 -16
  249. package/src/fonts/README.md +21 -0
  250. package/src/fonts/fraunces/fraunces-latin.woff2 +0 -0
  251. package/src/styles/animations.css +1 -1
  252. package/src/styles/cards.css +1 -1
  253. package/src/styles/dock-controls.css +486 -0
  254. package/src/styles/dock.css +284 -450
  255. package/src/styles/fonts.css +25 -0
  256. package/src/styles/glass-specular-track.css +154 -0
  257. package/src/styles/glass.css +74 -2
  258. package/src/styles/index.css +21 -2
  259. package/src/styles/instrument-chassis.css +11 -4
  260. package/src/styles/theme.css +73 -21
  261. package/src/styles/tokens.css +271 -140
  262. package/src/styles/typography.css +14 -8
  263. package/src/styles/utilities.css +36 -8
  264. package/src/styles/view-transition.css +10 -4
  265. package/dist/DataTable-BsrDYdoE.js +0 -460
  266. package/dist/DialogContent-B61rP8lj.js +0 -93
  267. package/dist/HoverPopover-BlEwqG7S.js +0 -96
  268. package/dist/Input-IFsIzId2.js +0 -30
  269. package/dist/Progress-Bs44qWEM.js +0 -126
  270. package/dist/UnderlineTabs-B4FV2zi_.js +0 -37
  271. package/dist/components/custom/aurora/shaders/aurora.frag.d.ts +0 -1
  272. package/dist/composables/dom/useBreakpoint.d.ts +0 -38
  273. package/dist/composables/dom/useIdleReady.d.ts +0 -63
  274. package/dist/composables/dom/useViewportReady.d.ts +0 -87
  275. package/dist/composables/glass/webgl/frostShader.d.ts +0 -27
  276. package/dist/composables/motion/useAnimatedNumberMap.d.ts +0 -29
  277. package/dist/composables/motion/useStagger.d.ts +0 -50
  278. package/dist/dockContext-DM58L1Jt.js +0 -16
  279. package/dist/keys-SIKQYNx1.js +0 -11
  280. package/dist/supportsCssTimeline-IQY3gfKD.js +0 -12
  281. package/dist/useGlobalDark-BUUTZvkU.js +0 -24
  282. package/dist/useIdleReady-sLhGo6CL.js +0 -162
  283. package/dist/useIntersectionPause-CUmANkoc.js +0 -39
  284. package/dist/useSortable-DLK9kwZp.js +0 -189
  285. /package/dist/{HoverCardContent-DGUhpRVt.js → HoverCardContent-ICfIMZX1.js} +0 -0
  286. /package/dist/{InstrumentChassis-CqKPBNqp.js → InstrumentChassis-DaHIZCqy.js} +0 -0
  287. /package/dist/{InstrumentRail-CCjvKkpB.js → InstrumentRail-B0qqLFN0.js} +0 -0
  288. /package/dist/{Label-D53EOwLE.js → Label-CZk-3nTc.js} +0 -0
  289. /package/dist/{PaperBackdrop-Ds-wDsKf.js → PaperBackdrop-D_YZW47j.js} +0 -0
  290. /package/dist/{SelectGroup-DAgcsfFw.js → SelectGroup-CMdoCjRE.js} +0 -0
  291. /package/dist/{SelectSeparator-DN1jzLaI.js → SelectSeparator-CaJnPF3_.js} +0 -0
  292. /package/dist/{Separator-DXxac0j8.js → Separator-C2XtAXRp.js} +0 -0
  293. /package/dist/{Switch-imA0Hdjs.js → Switch-x8n6husW.js} +0 -0
  294. /package/dist/{Toaster-Brs6QjBU.js → Toaster-DdhMKfus.js} +0 -0
  295. /package/dist/{TooltipProvider-MZFRxOvT.js → TooltipProvider-D-JrSqDu.js} +0 -0
  296. /package/dist/components/custom/aurora/{renderMode.d.ts → constants/renderMode.d.ts} +0 -0
  297. /package/dist/components/custom/aurora/{shaders → constants/shaders}/aurora.vert.d.ts +0 -0
  298. /package/dist/{constants-DfWPi8kh.js → constants-DsCdlK9I.js} +0 -0
  299. /package/dist/{sheet-BnvZRXPq.js → sheet-CQYYrkr9.js} +0 -0
  300. /package/dist/{useGlassRenderer-C98tZnJ7.js → useGlassRenderer-Dn3WpfG-.js} +0 -0
  301. /package/dist/{useInterval-B58LmYth.js → useInterval-CHVYFpXV.js} +0 -0
  302. /package/dist/{useResizeObserver-C_7GjpRn.js → useResizeObserver-DX-STszm.js} +0 -0
  303. /package/dist/{useTextHighlight-CLST6an0.js → useTextHighlight-Dmtofpk2.js} +0 -0
  304. /package/dist/{useTimer-6FoosoDY.js → useTimer-DGgoxTXL.js} +0 -0
  305. /package/dist/{useUserInvalidAria-BW5iyqWR.js → useUserInvalidAria-DmvZ_6Dx.js} +0 -0
  306. /package/dist/{useViewTransition-CUJM7fXT.js → useViewTransition-D4ssvnXZ.js} +0 -0
@@ -1,162 +1,34 @@
1
1
  /**
2
2
  * useSortable — pointer-capture drag-reorder for Vue lists.
3
3
  *
4
- * Headless composable that owns all pointer handling, drop-target
5
- * resolution, splice math, AND a DOM-clone drag ghost. Consumers
6
- * spread the returned per-item binding on each row; the composable
7
- * handles everything else. No `#preview` slot required the
8
- * ghost is a cloned snapshot of the row the user grabbed, so it
9
- * always looks exactly like what's being dragged regardless of the
10
- * row's markup.
4
+ * Headless composable that owns all pointer handling, drop-target resolution,
5
+ * splice math, AND a DOM-clone drag ghost. Consumers spread the returned per-item
6
+ * binding on each row; the composable handles everything else. No `#preview` slot
7
+ * required the ghost is a cloned snapshot of the row the user grabbed, so it
8
+ * always looks exactly like what's being dragged regardless of the row's markup.
11
9
  *
12
- * Why pointer events (not HTML5 DnD): HTML5 DnD is flaky inside
13
- * reactive rendering loops, doesn't respect `user-select: none`
14
- * ancestors, and can't render a non-ghost drag preview without
15
- * fighting the browser. Pointer capture gives us direct control
16
- * over the entire drag lifecycle and composes cleanly with other
10
+ * Why pointer events (not HTML5 DnD): HTML5 DnD is flaky inside reactive rendering
11
+ * loops, doesn't respect `user-select: none` ancestors, and can't render a
12
+ * non-ghost drag preview without fighting the browser. Pointer capture gives us
13
+ * direct control over the entire drag lifecycle and composes cleanly with other
17
14
  * pointer-driven UI (canvas editors, pan/zoom, hover popovers).
18
15
  *
19
- * Cross-list drops via `group`: two or more SortableList
20
- * instances that share a group id accept items from each other.
21
- * On drag move, the composable hit-tests `elementFromPoint` for
22
- * any `[data-sortable-container]` element matching the same
23
- * group; when the cursor crosses into a sibling instance, the
24
- * drop target transfers to that instance. On drop into a
25
- * foreign group, the source's `onReorder` emits the removal
26
- * and the target's `onInsert` receives the item + insertion
27
- * index.
16
+ * Cross-list drops via `group`: two or more SortableList instances that share a
17
+ * group id accept items from each other. On drag move, the composable hit-tests
18
+ * the sibling instance registry; when the cursor crosses into a sibling instance,
19
+ * the drop target transfers to that instance. On drop into a foreign group, the
20
+ * source's `onReorder` emits the removal and the target's `onInsert` receives the
21
+ * item + insertion index.
28
22
  *
29
- * Drop resolution walks registered row elements via a data
30
- * attribute rather than subscribing to each row's bounding-box
31
- * reactively that keeps the cost at O(rows) per pointermove
32
- * frame and avoids a layout thrash storm.
23
+ * This module is the thin orchestrator. It composes five cohesive services:
24
+ * - dragController — the drag-state lifecycle + cross-list routing
25
+ * - dropResolver pure collision/measure math + the instance registry
26
+ * - ghostRenderer — the snap-physics + visual clone
27
+ * - touchGate — the handle constraint + pointer-capture optimization
28
+ * - transitionTiming — the drop-target class grammar
33
29
  */
34
- import { type ComputedRef, type Ref } from "vue";
35
- /**
36
- * Identifier type for sortable rows. Must be stable across
37
- * reorders (e.g. a record id, not a positional index).
38
- */
39
- export type SortableId = string | number;
40
- interface SortableOptions<T> {
41
- /** The reactive array being reordered. */
42
- items: Ref<readonly T[]> | ComputedRef<readonly T[]>;
43
- /**
44
- * Extract a stable id from an item. The id is used both as
45
- * the drop-target key (via `data-sortable-id`) and as the
46
- * row registration key. Two items with the same id in the
47
- * same list is undefined behavior.
48
- */
49
- getId: (item: T) => SortableId;
50
- /**
51
- * Called once per successful same-list drop with the full
52
- * reordered array. Also called with the post-removal array
53
- * when an item is transferred OUT to another list in the
54
- * same group.
55
- */
56
- onReorder: (next: T[]) => void;
57
- /**
58
- * Cross-list group id. Instances that share a group id
59
- * accept drops from each other. Undefined (the default)
60
- * isolates this instance — drags stay within the same list.
61
- */
62
- group?: string;
63
- /**
64
- * Called when a foreign item is dropped into this list. The
65
- * consumer is responsible for the insert (typically by
66
- * calling its own onReorder counterpart to mutate the
67
- * source-of-truth). The item type is `unknown` because the
68
- * source list may own a different T — the group id is the
69
- * only contract that asserts compatibility.
70
- */
71
- onInsert?: (index: number, item: unknown) => void;
72
- /**
73
- * Optional grip constraint. When set, drag only starts if
74
- * the pointerdown target is (or is a descendant of) an
75
- * element matching this selector. Defaults to
76
- * `[data-sortable-handle]` — the selector that
77
- * <SortableHandle> emits. Pass `null` to allow drag from
78
- * anywhere on the row.
79
- */
80
- handleSelector?: string | null;
81
- /**
82
- * Axis constraint for drop resolution. `"y"` uses row
83
- * midpoint Y (vertical list), `"x"` uses row midpoint X
84
- * (horizontal list). Default: `"y"`.
85
- */
86
- axis?: "x" | "y";
87
- }
88
- /**
89
- * Handlers + attrs to spread on a row element. `SortableList`
90
- * calls `registerItem(id)` once per row and forwards these via
91
- * a `v-bind` on the row's root.
92
- */
93
- interface SortableRowBinding {
94
- /**
95
- * Template ref callback. Spread on the row's root element
96
- * via `:ref="binding.ref"`.
97
- */
98
- ref: (el: Element | null) => void;
99
- /** Data attribute set — includes `data-sortable-id`. */
100
- dataAttrs: Record<string, string>;
101
- /**
102
- * Reactive class object — carries the drop-target hint
103
- * classes (`is-sortable-drop-above` / `-below`) when this
104
- * row is the live drop target during a drag.
105
- */
106
- class: ComputedRef<Record<string, boolean>>;
107
- /** Pointerdown handler — spread as `@pointerdown`. */
108
- onPointerdown: (e: PointerEvent) => void;
109
- }
110
- /**
111
- * Container binding — spread on the list's root element so the
112
- * composable can hit-test it during cross-list drags.
113
- */
114
- export interface SortableContainerBinding {
115
- ref: (el: Element | null) => void;
116
- dataAttrs: Record<string, string>;
117
- }
118
- export interface UseSortableReturn {
119
- /**
120
- * Register a row by its stable id. Returns the binding
121
- * object the row should spread on its root element.
122
- * Idempotent — calling with the same id returns the same
123
- * binding so Vue's `v-bind` stays stable across rerenders.
124
- */
125
- registerItem: (id: SortableId) => SortableRowBinding;
126
- /**
127
- * Binding to spread on the list's container element. Marks
128
- * it as a drop target for cross-list drags in the same
129
- * group and exposes the container bounding rect for hit
130
- * testing.
131
- */
132
- container: SortableContainerBinding;
133
- /** True while a drag is in progress. */
134
- isDragging: ComputedRef<boolean>;
135
- /** Id of the row currently being dragged, or null. */
136
- dragId: ComputedRef<SortableId | null>;
137
- /**
138
- * Live pointer position in page coordinates while a drag
139
- * is in progress.
140
- */
141
- dragPosition: ComputedRef<{
142
- x: number;
143
- y: number;
144
- } | null>;
145
- /** Index the drop will land at, or null when no target. */
146
- dropIndex: ComputedRef<number | null>;
147
- }
148
- /**
149
- * True when a computed `border-radius` string has any non-zero
150
- * corner. Computed values resolve to space-separated lengths
151
- * (e.g. `"0px"`, `"6px"`, `"12px 12px 0px 0px"`) with an optional
152
- * `/` separating the horizontal/vertical radii of elliptical
153
- * corners. A radius is "zero" only when every numeric component
154
- * parses to 0; a non-length token (`%`, `auto`) counts as
155
- * non-zero so we never miss a rounded corner.
156
- *
157
- * Exported (not re-exported from the package barrel) for the D9 drag-ring
158
- * regression test — keep it a pure string predicate.
159
- */
160
- export declare function isNonZeroRadius(radius: string): boolean;
30
+ import type { SortableOptions, UseSortableReturn } from "./types";
31
+ import { isNonZeroRadius } from "./ghostRenderer";
161
32
  export declare function useSortable<T>(options: SortableOptions<T>): UseSortableReturn;
162
- export {};
33
+ export { isNonZeroRadius };
34
+ export type { SortableId, SortableContainerBinding, UseSortableReturn } from "./types";
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./useConfiguratorState-Dq2gNv4A.js";
1
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./useConfiguratorState-DUtC1jxr.js";
2
2
  export { e as CONFIGURATOR_DENSITY_KEY, t as Configurator, i as ConfiguratorLayer, n as ConfiguratorRow, r as provideConfiguratorDensity, o as useConfiguratorState, a as useOptionalConfiguratorDensity };
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./createLucideIcon-DuDoe_ra.js";
2
- import { n as t } from "./button-DS3ULf5i.js";
2
+ import { n as t } from "./button-Ckn3eDfB.js";
3
3
  import { t as n } from "./_plugin-vue_export-helper-C1je1s0u.js";
4
4
  import { Transition as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineComponent as u, mergeModels as d, openBlock as f, renderSlot as p, toDisplayString as m, unref as h, useModel as g, withCtx as _, withKeys as v, withModifiers as y } from "vue";
5
5
  var b = e("loader-circle", [["path", {
package/dist/controls.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./cn-DJXf4yaB.js";
2
2
  import { t } from "./_plugin-vue_export-helper-C1je1s0u.js";
3
- import { t as n } from "./useGlobalDark-BUUTZvkU.js";
3
+ import { t as n } from "./useGlobalDark-CWiaCoEw.js";
4
4
  import { computed as r, createBlock as i, createElementVNode as a, defineComponent as o, mergeProps as s, openBlock as c, resolveDynamicComponent as l, unref as u, useAttrs as d, watchEffect as f, withCtx as p } from "vue";
5
5
  //#endregion
6
6
  //#region src/components/custom/controls/DarkModeToggle.vue
@@ -19,7 +19,7 @@ var m = /* @__PURE__ */ t(/* @__PURE__ */ o({
19
19
  }
20
20
  },
21
21
  setup(t) {
22
- let o = t, m = d(), h = r(() => e("dark-mode-toggle-button", "relative isolate inline-flex shrink-0 items-center justify-center", "cursor-pointer border-0 bg-transparent", "rounded-[var(--radius-pill)]", "opacity-80", "focus-ring", m.class)), { isDark: g, toggleDark: _, setDisableTransitions: v } = n(), y = r(() => {
22
+ let o = t, m = d(), h = r(() => e("dark-mode-toggle-button", "relative isolate inline-flex shrink-0 items-center justify-center", "cursor-pointer border-0 bg-transparent", "rounded-pill", "opacity-80", "focus-ring", m.class)), { isDark: g, toggleDark: _, setDisableTransitions: v } = n(), y = r(() => {
23
23
  let { class: e, ...t } = m;
24
24
  return o.passive ? t : {
25
25
  type: "button",
@@ -37,7 +37,7 @@ var m = /* @__PURE__ */ t(/* @__PURE__ */ o({
37
37
  default: p(() => [...n[1] ||= [a("svg", {
38
38
  xmlns: "http://www.w3.org/2000/svg",
39
39
  viewBox: "0 0 472.39 472.39",
40
- class: "block h-full w-full fill-[var(--foreground)]"
40
+ class: "block h-full w-full fill-foreground"
41
41
  }, [a("g", { class: "toggle-sun" }, [a("path", { d: "M403.21,167V69.18H305.38L236.2,0,167,69.18H69.18V167L0,236.2l69.18,69.18v97.83H167l69.18,69.18,69.18-69.18h97.83V305.38l69.18-69.18Zm-167,198.17a129,129,0,1,1,129-129A129,129,0,0,1,236.2,365.19Z" })]), a("g", { class: "toggle-circle" }, [a("circle", {
42
42
  cx: "236.2",
43
43
  cy: "236.2",
@@ -46,6 +46,6 @@ var m = /* @__PURE__ */ t(/* @__PURE__ */ o({
46
46
  _: 1
47
47
  }, 16, ["class", "data-size"]));
48
48
  }
49
- }), [["__scopeId", "data-v-f361509a"]]);
49
+ }), [["__scopeId", "data-v-10981347"]]);
50
50
  //#endregion
51
51
  export { m as DarkModeToggle };
@@ -0,0 +1,25 @@
1
+ import { inject as e, provide as t } from "vue";
2
+ //#region src/composables/context/createContext.ts
3
+ function n(n, r) {
4
+ let i = Symbol(n);
5
+ return {
6
+ KEY: i,
7
+ provide: (e) => t(i, e),
8
+ use: () => {
9
+ let t = e(i);
10
+ if (!t) throw Error(r);
11
+ return t;
12
+ },
13
+ useOptional: () => e(i, null)
14
+ };
15
+ }
16
+ function r(n) {
17
+ let r = Symbol(n);
18
+ return {
19
+ KEY: r,
20
+ provide: (e) => t(r, e),
21
+ use: () => e(r, null)
22
+ };
23
+ }
24
+ //#endregion
25
+ export { n, r as t };
package/dist/dark.d.ts CHANGED
@@ -1 +1,2 @@
1
- export { useGlobalDark, installDarkModeSync } from "./composables/dark";
1
+ export { useGlobalDark, installDarkModeSync, darkModeSyncScript, DARK_MODE_STORAGE_KEY, } from "./composables/dark";
2
+ export type { UseGlobalDarkOptions, DarkModeSyncScriptOptions } from "./composables/dark";
package/dist/dark.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as e } from "./useGlobalDark-BUUTZvkU.js";
1
+ import { t as e } from "./useGlobalDark-CWiaCoEw.js";
2
2
  import { nextTick as t, watch as n } from "vue";
3
3
  //#region src/composables/dark/installDarkModeSync.ts
4
4
  function r(r) {
@@ -10,4 +10,11 @@ function r(r) {
10
10
  });
11
11
  }
12
12
  //#endregion
13
- export { r as installDarkModeSync, e as useGlobalDark };
13
+ //#region src/composables/dark/darkModeSyncScript.ts
14
+ var i = "vueuse-color-scheme", a = "dark";
15
+ function o(e = {}) {
16
+ let t = e.storageKey ?? "vueuse-color-scheme";
17
+ return `(function(){try{var m=localStorage.getItem(${JSON.stringify(t)});var d=m==="${a}"||((m===null||m==="auto")&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches);var e=document.documentElement;e.classList.toggle("${a}",d);e.style.colorScheme=d?"dark":"light";}catch(_){}})();`;
18
+ }
19
+ //#endregion
20
+ export { i as DARK_MODE_STORAGE_KEY, o as darkModeSyncScript, r as installDarkModeSync, e as useGlobalDark };
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./DataTable-BsrDYdoE.js";
1
+ import { n as e, t } from "./DataTable-FfkaAg2z.js";
2
2
  export { t as DataTable, e as DataTablePagination };
package/dist/dialog.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as e, t } from "./DialogContent-B61rP8lj.js";
1
+ import { n as e, t } from "./DialogContent-IQ8_BRrC.js";
2
2
  import { a as n, i as r, n as i, o as a, r as o, s, t as c } from "./DialogFooter-Er0wA3K6.js";
3
3
  export { e as Dialog, s as DialogClose, t as DialogContent, o as DialogDescription, c as DialogFooter, n as DialogHeader, i as DialogScrollContent, r as DialogTitle, a as DialogTrigger };
@@ -1,2 +1,2 @@
1
- import { t as e } from "./DiscoGlyph-B7YooI2-.js";
1
+ import { t as e } from "./DiscoGlyph-BaZ8OawK.js";
2
2
  export { e as DiscoGlyph };