@mkbabb/glass-ui 0.3.0 → 2.1.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 (945) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +179 -70
  3. package/dist/CardFooter-Yi0xtLLd.js +129 -0
  4. package/dist/CollapsibleContent-DHRuXE3P.js +52 -0
  5. package/dist/CommandShortcut-_INFUMu6.js +285 -0
  6. package/dist/ContextMenuContent-CvXfU5qz.js +85 -0
  7. package/dist/ContextMenuSubContent-DCkweFW9.js +250 -0
  8. package/dist/DataTable-Ce00dbHD.js +460 -0
  9. package/dist/DialogContent-CmCijgX9.js +93 -0
  10. package/dist/DialogFooter-DRdaCok0.js +165 -0
  11. package/dist/DiscoGlyph-wRA02zAJ.js +132 -0
  12. package/dist/GlyphFace-BnPMUZ16.js +51 -0
  13. package/dist/HoverCardContent-4nN5-5bz.js +83 -0
  14. package/dist/HoverPopover-Btv4RQfv.js +80 -0
  15. package/dist/IconTooltip-ge_mBSWR.js +25 -0
  16. package/dist/Input-CbakTe3B.js +32 -0
  17. package/dist/InstrumentChassis-DOaVYyWq.js +65 -0
  18. package/dist/InstrumentRail-jHDqXj70.js +44 -0
  19. package/dist/Label-C8QMJSsf.js +32 -0
  20. package/dist/MetricBadge-DRBB18Xq.js +78 -0
  21. package/dist/ModalOverlay-DKLVY-cj.js +53 -0
  22. package/dist/Notification-DrI1DT2v.js +99 -0
  23. package/dist/PaperBackdrop-Bc2drCqJ.js +31 -0
  24. package/dist/PopoverContent-BCH4eYs8.js +121 -0
  25. package/dist/Progress-CCH-2UBR.js +126 -0
  26. package/dist/ScrollingText-7P8skg5W.js +40 -0
  27. package/dist/SelectGroup-O69GTQ77.js +31 -0
  28. package/dist/SelectScrollDownButton-yu8EYUnu.js +235 -0
  29. package/dist/SelectSeparator-GTHxKO0a.js +49 -0
  30. package/dist/Separator-_NCypg_C.js +37 -0
  31. package/dist/Switch-CL0uxu8F.js +41 -0
  32. package/dist/Toaster-DY8_jtHv.js +255 -0
  33. package/dist/ToggleGroupItem-BYG_8M9M.js +152 -0
  34. package/dist/TooltipProvider-C5QLSPto.js +104 -0
  35. package/dist/UnderlineTabs-BtrUcXn-.js +64 -0
  36. package/dist/_plugin-vue_export-helper-n-_DRHWS.js +8 -0
  37. package/dist/animated-digit.d.ts +1 -0
  38. package/dist/animated-digit.js +44 -0
  39. package/dist/api/index.d.ts +30 -0
  40. package/dist/api.js +2 -0
  41. package/dist/aurora.d.ts +1 -0
  42. package/dist/aurora.js +541 -0
  43. package/dist/badge-BbxVKZfw.js +49 -0
  44. package/dist/badge.d.ts +1 -0
  45. package/dist/badge.js +2 -0
  46. package/dist/button-BlOW34DT.js +70 -0
  47. package/dist/button.d.ts +1 -0
  48. package/dist/button.js +2 -0
  49. package/dist/card.d.ts +1 -0
  50. package/dist/card.js +2 -0
  51. package/dist/carousel.d.ts +2 -0
  52. package/dist/carousel.js +394 -0
  53. package/dist/check-dwgetki8.js +7 -0
  54. package/dist/chevron-down-DILQA1t6.js +7 -0
  55. package/dist/chevron-right-fS7fal2t.js +7 -0
  56. package/dist/chevron-up-BtYjYQOS.js +7 -0
  57. package/dist/cn-DJXf4yaB.js +97 -0
  58. package/dist/collapsible.d.ts +1 -0
  59. package/dist/collapsible.js +2 -0
  60. package/dist/command.d.ts +1 -0
  61. package/dist/command.js +2 -0
  62. package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +48 -0
  63. package/dist/components/custom/animated-digit/index.d.ts +2 -0
  64. package/dist/components/custom/aurora/Aurora.vue.d.ts +95 -0
  65. package/dist/components/custom/aurora/composables/color.d.ts +39 -0
  66. package/dist/components/custom/aurora/composables/configSource.d.ts +10 -0
  67. package/dist/components/custom/aurora/composables/runtime.d.ts +54 -0
  68. package/dist/components/custom/aurora/composables/useAurora.d.ts +67 -0
  69. package/dist/components/custom/aurora/composables/useCursorInteraction.d.ts +25 -0
  70. package/dist/components/custom/aurora/index.d.ts +9 -0
  71. package/dist/components/custom/aurora/presets.d.ts +121 -0
  72. package/dist/components/custom/aurora/renderMode.d.ts +30 -0
  73. package/dist/components/custom/aurora/shaders/aurora.frag.d.ts +1 -0
  74. package/dist/components/custom/aurora/shaders/aurora.vert.d.ts +1 -0
  75. package/dist/components/custom/configurator/Configurator.vue.d.ts +102 -0
  76. package/dist/components/custom/configurator/ConfiguratorLayer.vue.d.ts +68 -0
  77. package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +63 -0
  78. package/dist/components/custom/configurator/density.d.ts +30 -0
  79. package/dist/components/custom/configurator/index.d.ts +6 -0
  80. package/dist/components/custom/configurator/useConfiguratorState.d.ts +45 -0
  81. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +32 -0
  82. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +23 -0
  83. package/dist/components/custom/disco-glyph/DiscoGlyph.vue.d.ts +58 -0
  84. package/dist/components/custom/disco-glyph/index.d.ts +1 -0
  85. package/dist/components/custom/dock/DockDropdownTrigger.vue.d.ts +29 -0
  86. package/dist/components/custom/dock/DockIconButton.vue.d.ts +30 -0
  87. package/dist/components/custom/dock/DockLayer.vue.d.ts +34 -0
  88. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +43 -0
  89. package/dist/components/custom/dock/DockSelectTrigger.vue.d.ts +29 -0
  90. package/dist/components/custom/dock/DockTabButton.vue.d.ts +39 -0
  91. package/dist/components/custom/dock/GlassDock.vue.d.ts +96 -0
  92. package/dist/components/custom/dock/composables/dockContext.d.ts +40 -0
  93. package/dist/components/custom/dock/composables/dockLayerContext.d.ts +29 -0
  94. package/dist/components/custom/dock/composables/index.d.ts +7 -0
  95. package/dist/components/custom/dock/composables/isTeleportedTarget.d.ts +9 -0
  96. package/dist/components/custom/dock/composables/useDockState.d.ts +70 -0
  97. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +34 -0
  98. package/dist/components/custom/dock/index.d.ts +9 -0
  99. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +40 -0
  100. package/dist/components/custom/glass-carousel/GlassCarousel.vue.d.ts +36 -0
  101. package/dist/components/custom/glass-carousel/GlassCarouselItem.vue.d.ts +28 -0
  102. package/dist/components/custom/glass-carousel/index.d.ts +4 -0
  103. package/dist/components/custom/glass-carousel/useGlassCarousel.d.ts +30 -0
  104. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +41 -0
  105. package/dist/components/custom/glass-panel/index.d.ts +2 -0
  106. package/dist/components/custom/glyph-face/GlyphFace.vue.d.ts +64 -0
  107. package/dist/components/custom/glyph-face/index.d.ts +2 -0
  108. package/dist/components/custom/glyph-face/keys.d.ts +35 -0
  109. package/dist/components/custom/header-ribbon/HeaderRibbon.vue.d.ts +31 -0
  110. package/dist/components/custom/header-ribbon/index.d.ts +2 -0
  111. package/dist/components/custom/header-ribbon/types.d.ts +7 -0
  112. package/dist/components/custom/hover-popover/HoverPopover.vue.d.ts +71 -0
  113. package/dist/components/custom/hover-popover/index.d.ts +1 -0
  114. package/dist/components/custom/icon-tooltip/IconTooltip.vue.d.ts +16 -0
  115. package/dist/components/custom/infinite-scroll/InfiniteScroll.vue.d.ts +33 -0
  116. package/dist/components/custom/infinite-scroll/composables/types.d.ts +21 -0
  117. package/dist/components/custom/infinite-scroll/composables/useInfiniteScroll.d.ts +9 -0
  118. package/dist/components/custom/instrument-chassis/ChassisDivider.vue.d.ts +30 -0
  119. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +82 -0
  120. package/dist/components/custom/instrument-chassis/index.d.ts +3 -0
  121. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +91 -0
  122. package/dist/components/custom/instrument-rail/index.d.ts +2 -0
  123. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +36 -0
  124. package/dist/components/custom/labeled-field/LabeledInput.vue.d.ts +15 -0
  125. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +18 -0
  126. package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +16 -0
  127. package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +13 -0
  128. package/dist/components/custom/labeled-field/index.d.ts +5 -0
  129. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +39 -0
  130. package/dist/components/custom/metric-badge/index.d.ts +1 -0
  131. package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +97 -0
  132. package/dist/components/custom/metric-cell/index.d.ts +2 -0
  133. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +103 -0
  134. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +92 -0
  135. package/dist/components/custom/metric-stack/index.d.ts +4 -0
  136. package/dist/components/custom/paper-backdrop/PaperBackdrop.vue.d.ts +21 -0
  137. package/dist/components/custom/paper-backdrop/index.d.ts +2 -0
  138. package/dist/components/custom/pulse/Pulse.vue.d.ts +53 -0
  139. package/dist/components/custom/pulse/index.d.ts +1 -0
  140. package/dist/components/custom/responsive-tabs/ResponsiveTabs.vue.d.ts +67 -0
  141. package/dist/components/custom/responsive-tabs/index.d.ts +2 -0
  142. package/dist/components/custom/scrolling-text/ScrollingText.vue.d.ts +20 -0
  143. package/dist/components/custom/scrolling-text/index.d.ts +1 -0
  144. package/dist/components/custom/search/FuzzySearch.vue.d.ts +16 -0
  145. package/dist/components/custom/search/SearchBar.vue.d.ts +30 -0
  146. package/dist/components/custom/search/composables/fuzzySearchIndex.d.ts +42 -0
  147. package/dist/components/custom/search/composables/types.d.ts +31 -0
  148. package/dist/components/custom/search/composables/useFuzzySearch.d.ts +12 -0
  149. package/dist/components/custom/sortable-list/SortableHandle.vue.d.ts +32 -0
  150. package/dist/components/custom/sortable-list/SortableItem.vue.d.ts +38 -0
  151. package/dist/components/custom/sortable-list/SortableList.vue.d.ts +76 -0
  152. package/dist/components/custom/sortable-list/context.d.ts +26 -0
  153. package/dist/components/custom/sortable-list/index.d.ts +4 -0
  154. package/dist/components/custom/stacked-icons/StackedIconGroup.vue.d.ts +30 -0
  155. package/dist/components/custom/stacked-icons/index.d.ts +2 -0
  156. package/dist/components/custom/stacked-icons/types.d.ts +18 -0
  157. package/dist/components/custom/status-dot/StatusDot.vue.d.ts +18 -0
  158. package/dist/components/custom/status-dot/index.d.ts +1 -0
  159. package/dist/components/custom/tabs/BouncyTabs.vue.d.ts +24 -0
  160. package/dist/components/custom/tabs/BouncyToggle.vue.d.ts +56 -0
  161. package/dist/components/custom/tabs/UnderlineTabs.vue.d.ts +17 -0
  162. package/dist/components/custom/timeline/ContinuousTimeline.vue.d.ts +118 -0
  163. package/dist/components/custom/timeline/GlassTimeline.vue.d.ts +114 -0
  164. package/dist/components/custom/timeline/ScrubberTimeline.vue.d.ts +29 -0
  165. package/dist/components/custom/timeline/SegmentedTimeline.vue.d.ts +46 -0
  166. package/dist/components/custom/timeline/geometry.d.ts +100 -0
  167. package/dist/components/custom/timeline/index.d.ts +2 -0
  168. package/dist/components/custom/timeline/types.d.ts +57 -0
  169. package/dist/components/custom/toggle-chip/ToggleChip.vue.d.ts +39 -0
  170. package/dist/components/custom/toggle-chip/index.d.ts +17 -0
  171. package/dist/components/custom/typewriter/TypewriterText.vue.d.ts +85 -0
  172. package/dist/components/custom/typewriter/composables/useTypewriter.d.ts +22 -0
  173. package/dist/components/custom/typewriter/types.d.ts +137 -0
  174. package/dist/components/custom/typewriter/utils/keyboard.d.ts +15 -0
  175. package/dist/components/custom/typewriter/utils/pausePatterns.d.ts +28 -0
  176. package/dist/components/custom/typewriter/utils/timing.d.ts +17 -0
  177. package/dist/components/custom/typewriter/utils/typoStateMachine.d.ts +24 -0
  178. package/dist/components/ui/_shared/ModalOverlay.vue.d.ts +90 -0
  179. package/dist/components/ui/_shared/index.d.ts +2 -0
  180. package/dist/components/ui/_shared/menuItemVariants.d.ts +32 -0
  181. package/dist/components/ui/_shared/useStalePropWarning.d.ts +27 -0
  182. package/dist/components/ui/accordion/Accordion.vue.d.ts +19 -0
  183. package/dist/components/ui/accordion/AccordionContent.vue.d.ts +18 -0
  184. package/dist/components/ui/accordion/AccordionItem.vue.d.ts +18 -0
  185. package/dist/components/ui/accordion/AccordionTrigger.vue.d.ts +20 -0
  186. package/dist/components/ui/accordion/index.d.ts +4 -0
  187. package/dist/components/ui/alert/Alert.vue.d.ts +19 -0
  188. package/dist/components/ui/alert/AlertDescription.vue.d.ts +17 -0
  189. package/dist/components/ui/alert/AlertTitle.vue.d.ts +17 -0
  190. package/dist/components/ui/alert/index.d.ts +8 -0
  191. package/dist/components/ui/avatar/Avatar.vue.d.ts +23 -0
  192. package/dist/components/ui/avatar/AvatarFallback.vue.d.ts +14 -0
  193. package/dist/components/ui/avatar/AvatarImage.vue.d.ts +4 -0
  194. package/dist/components/ui/avatar/index.d.ts +9 -0
  195. package/dist/components/ui/badge/Badge.vue.d.ts +20 -0
  196. package/dist/components/ui/badge/index.d.ts +7 -0
  197. package/dist/components/ui/button/Button.vue.d.ts +23 -0
  198. package/dist/components/ui/button/index.d.ts +7 -0
  199. package/dist/components/ui/card/Card.vue.d.ts +56 -0
  200. package/dist/components/ui/card/CardContent.vue.d.ts +17 -0
  201. package/dist/components/ui/card/CardDescription.vue.d.ts +17 -0
  202. package/dist/components/ui/card/CardFooter.vue.d.ts +17 -0
  203. package/dist/components/ui/card/CardHeader.vue.d.ts +55 -0
  204. package/dist/components/ui/card/CardTitle.vue.d.ts +17 -0
  205. package/dist/components/ui/card/index.d.ts +6 -0
  206. package/dist/components/ui/carousel/Carousel.vue.d.ts +37 -0
  207. package/dist/components/ui/carousel/CarouselContent.vue.d.ts +16 -0
  208. package/dist/components/ui/carousel/CarouselDots.vue.d.ts +4 -0
  209. package/dist/components/ui/carousel/CarouselItem.vue.d.ts +14 -0
  210. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +22 -0
  211. package/dist/components/ui/carousel/CarouselPager.vue.d.ts +10 -0
  212. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +22 -0
  213. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +51 -0
  214. package/dist/components/ui/carousel/index.d.ts +10 -0
  215. package/dist/components/ui/carousel/interface.d.ts +20 -0
  216. package/dist/components/ui/carousel/useCarousel.d.ts +20 -0
  217. package/dist/components/ui/checkbox/Checkbox.vue.d.ts +22 -0
  218. package/dist/components/ui/checkbox/index.d.ts +1 -0
  219. package/dist/components/ui/collapsible/Collapsible.vue.d.ts +20 -0
  220. package/dist/components/ui/collapsible/CollapsibleContent.vue.d.ts +14 -0
  221. package/dist/components/ui/collapsible/CollapsibleTrigger.vue.d.ts +14 -0
  222. package/dist/components/ui/collapsible/index.d.ts +3 -0
  223. package/dist/components/ui/combobox/Combobox.vue.d.ts +29 -0
  224. package/dist/components/ui/combobox/ComboboxAnchor.vue.d.ts +18 -0
  225. package/dist/components/ui/combobox/ComboboxEmpty.vue.d.ts +18 -0
  226. package/dist/components/ui/combobox/ComboboxGroup.vue.d.ts +19 -0
  227. package/dist/components/ui/combobox/ComboboxInput.vue.d.ts +22 -0
  228. package/dist/components/ui/combobox/ComboboxItem.vue.d.ts +22 -0
  229. package/dist/components/ui/combobox/ComboboxItemIndicator.vue.d.ts +18 -0
  230. package/dist/components/ui/combobox/ComboboxList.vue.d.ts +32 -0
  231. package/dist/components/ui/combobox/ComboboxSeparator.vue.d.ts +18 -0
  232. package/dist/components/ui/combobox/ComboboxViewport.vue.d.ts +18 -0
  233. package/dist/components/ui/combobox/index.d.ts +11 -0
  234. package/dist/components/ui/command/Command.vue.d.ts +35 -0
  235. package/dist/components/ui/command/CommandDialog.vue.d.ts +18 -0
  236. package/dist/components/ui/command/CommandEmpty.vue.d.ts +18 -0
  237. package/dist/components/ui/command/CommandGroup.vue.d.ts +19 -0
  238. package/dist/components/ui/command/CommandInput.vue.d.ts +8 -0
  239. package/dist/components/ui/command/CommandItem.vue.d.ts +22 -0
  240. package/dist/components/ui/command/CommandList.vue.d.ts +30 -0
  241. package/dist/components/ui/command/CommandSeparator.vue.d.ts +18 -0
  242. package/dist/components/ui/command/CommandShortcut.vue.d.ts +17 -0
  243. package/dist/components/ui/command/index.d.ts +9 -0
  244. package/dist/components/ui/context-menu/ContextMenu.vue.d.ts +18 -0
  245. package/dist/components/ui/context-menu/ContextMenuCheckboxItem.vue.d.ts +24 -0
  246. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +30 -0
  247. package/dist/components/ui/context-menu/ContextMenuItem.vue.d.ts +23 -0
  248. package/dist/components/ui/context-menu/ContextMenuLabel.vue.d.ts +19 -0
  249. package/dist/components/ui/context-menu/ContextMenuRadioGroup.vue.d.ts +18 -0
  250. package/dist/components/ui/context-menu/ContextMenuRadioItem.vue.d.ts +22 -0
  251. package/dist/components/ui/context-menu/ContextMenuSeparator.vue.d.ts +8 -0
  252. package/dist/components/ui/context-menu/ContextMenuShortcut.vue.d.ts +17 -0
  253. package/dist/components/ui/context-menu/ContextMenuSubContent.vue.d.ts +34 -0
  254. package/dist/components/ui/context-menu/ContextMenuSubTrigger.vue.d.ts +19 -0
  255. package/dist/components/ui/context-menu/ContextMenuTrigger.vue.d.ts +14 -0
  256. package/dist/components/ui/context-menu/index.d.ts +12 -0
  257. package/dist/components/ui/data-table/DataTable.vue.d.ts +81 -0
  258. package/dist/components/ui/data-table/DataTablePagination.vue.d.ts +13 -0
  259. package/dist/components/ui/data-table/types.d.ts +56 -0
  260. package/dist/components/ui/dialog/Dialog.vue.d.ts +18 -0
  261. package/dist/components/ui/dialog/DialogClose.vue.d.ts +14 -0
  262. package/dist/components/ui/dialog/DialogContent.vue.d.ts +71 -0
  263. package/dist/components/ui/dialog/DialogDescription.vue.d.ts +18 -0
  264. package/dist/components/ui/dialog/DialogFooter.vue.d.ts +17 -0
  265. package/dist/components/ui/dialog/DialogHeader.vue.d.ts +17 -0
  266. package/dist/components/ui/dialog/DialogScrollContent.vue.d.ts +33 -0
  267. package/dist/components/ui/dialog/DialogTitle.vue.d.ts +18 -0
  268. package/dist/components/ui/dialog/DialogTrigger.vue.d.ts +14 -0
  269. package/dist/components/ui/dialog/index.d.ts +9 -0
  270. package/dist/components/ui/drawer/Drawer.vue.d.ts +53 -0
  271. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +43 -0
  272. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +18 -0
  273. package/dist/components/ui/drawer/DrawerFooter.vue.d.ts +17 -0
  274. package/dist/components/ui/drawer/DrawerHeader.vue.d.ts +17 -0
  275. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +8 -0
  276. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +18 -0
  277. package/dist/components/ui/drawer/index.d.ts +17 -0
  278. package/dist/components/ui/dropdown-menu/DropdownMenu.vue.d.ts +18 -0
  279. package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +24 -0
  280. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +32 -0
  281. package/dist/components/ui/dropdown-menu/DropdownMenuGroup.vue.d.ts +14 -0
  282. package/dist/components/ui/dropdown-menu/DropdownMenuItem.vue.d.ts +19 -0
  283. package/dist/components/ui/dropdown-menu/DropdownMenuLabel.vue.d.ts +19 -0
  284. package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue.d.ts +18 -0
  285. package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.vue.d.ts +22 -0
  286. package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.vue.d.ts +8 -0
  287. package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.vue.d.ts +17 -0
  288. package/dist/components/ui/dropdown-menu/DropdownMenuSub.vue.d.ts +18 -0
  289. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +34 -0
  290. package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts +18 -0
  291. package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.vue.d.ts +14 -0
  292. package/dist/components/ui/dropdown-menu/index.d.ts +15 -0
  293. package/dist/components/ui/hover-card/HoverCard.vue.d.ts +18 -0
  294. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +20 -0
  295. package/dist/components/ui/hover-card/HoverCardTrigger.vue.d.ts +14 -0
  296. package/dist/components/ui/hover-card/index.d.ts +3 -0
  297. package/dist/components/ui/index.d.ts +41 -0
  298. package/dist/components/ui/input/Input.vue.d.ts +13 -0
  299. package/dist/components/ui/input/index.d.ts +1 -0
  300. package/dist/components/ui/label/Label.vue.d.ts +18 -0
  301. package/dist/components/ui/label/index.d.ts +1 -0
  302. package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +43 -0
  303. package/dist/components/ui/metric-pill/index.d.ts +1 -0
  304. package/dist/components/ui/multi-select/MultiSelect.vue.d.ts +24 -0
  305. package/dist/components/ui/multi-select/index.d.ts +7 -0
  306. package/dist/components/ui/notification/Notification.vue.d.ts +16 -0
  307. package/dist/components/ui/notification/index.d.ts +1 -0
  308. package/dist/components/ui/number-field/NumberField.vue.d.ts +22 -0
  309. package/dist/components/ui/number-field/NumberFieldContent.vue.d.ts +17 -0
  310. package/dist/components/ui/number-field/NumberFieldDecrement.vue.d.ts +18 -0
  311. package/dist/components/ui/number-field/NumberFieldIncrement.vue.d.ts +18 -0
  312. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +3 -0
  313. package/dist/components/ui/number-field/index.d.ts +5 -0
  314. package/dist/components/ui/popover/Popover.vue.d.ts +18 -0
  315. package/dist/components/ui/popover/PopoverContent.vue.d.ts +39 -0
  316. package/dist/components/ui/popover/PopoverTrigger.vue.d.ts +14 -0
  317. package/dist/components/ui/popover/index.d.ts +3 -0
  318. package/dist/components/ui/progress/Progress.vue.d.ts +111 -0
  319. package/dist/components/ui/progress/index.d.ts +2 -0
  320. package/dist/components/ui/radio-group/RadioGroup.vue.d.ts +22 -0
  321. package/dist/components/ui/radio-group/RadioGroupItem.vue.d.ts +8 -0
  322. package/dist/components/ui/radio-group/index.d.ts +2 -0
  323. package/dist/components/ui/section/Section.vue.d.ts +73 -0
  324. package/dist/components/ui/section/index.d.ts +1 -0
  325. package/dist/components/ui/select/Select.vue.d.ts +21 -0
  326. package/dist/components/ui/select/SelectContent.vue.d.ts +30 -0
  327. package/dist/components/ui/select/SelectGroup.vue.d.ts +18 -0
  328. package/dist/components/ui/select/SelectItem.vue.d.ts +21 -0
  329. package/dist/components/ui/select/SelectLabel.vue.d.ts +18 -0
  330. package/dist/components/ui/select/SelectScrollDownButton.vue.d.ts +18 -0
  331. package/dist/components/ui/select/SelectScrollUpButton.vue.d.ts +18 -0
  332. package/dist/components/ui/select/SelectSeparator.vue.d.ts +8 -0
  333. package/dist/components/ui/select/SelectTrigger.vue.d.ts +22 -0
  334. package/dist/components/ui/select/SelectValue.vue.d.ts +14 -0
  335. package/dist/components/ui/select/index.d.ts +10 -0
  336. package/dist/components/ui/separator/Separator.vue.d.ts +9 -0
  337. package/dist/components/ui/separator/index.d.ts +1 -0
  338. package/dist/components/ui/sheet/Sheet.vue.d.ts +18 -0
  339. package/dist/components/ui/sheet/SheetClose.vue.d.ts +14 -0
  340. package/dist/components/ui/sheet/SheetContent.vue.d.ts +53 -0
  341. package/dist/components/ui/sheet/SheetDescription.vue.d.ts +18 -0
  342. package/dist/components/ui/sheet/SheetFooter.vue.d.ts +17 -0
  343. package/dist/components/ui/sheet/SheetHeader.vue.d.ts +17 -0
  344. package/dist/components/ui/sheet/SheetTitle.vue.d.ts +18 -0
  345. package/dist/components/ui/sheet/SheetTrigger.vue.d.ts +14 -0
  346. package/dist/components/ui/sheet/index.d.ts +13 -0
  347. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +32 -0
  348. package/dist/components/ui/skeleton/index.d.ts +1 -0
  349. package/dist/components/ui/slider/Slider.vue.d.ts +26 -0
  350. package/dist/components/ui/slider/index.d.ts +31 -0
  351. package/dist/components/ui/switch/Switch.vue.d.ts +12 -0
  352. package/dist/components/ui/switch/index.d.ts +1 -0
  353. package/dist/components/ui/table/Table.vue.d.ts +17 -0
  354. package/dist/components/ui/table/TableBody.vue.d.ts +17 -0
  355. package/dist/components/ui/table/TableCaption.vue.d.ts +17 -0
  356. package/dist/components/ui/table/TableCell.vue.d.ts +17 -0
  357. package/dist/components/ui/table/TableEmpty.vue.d.ts +20 -0
  358. package/dist/components/ui/table/TableHead.vue.d.ts +17 -0
  359. package/dist/components/ui/table/TableHeader.vue.d.ts +17 -0
  360. package/dist/components/ui/table/TableRow.vue.d.ts +17 -0
  361. package/dist/components/ui/table/index.d.ts +8 -0
  362. package/dist/components/ui/tabs/Tabs.vue.d.ts +19 -0
  363. package/dist/components/ui/tabs/TabsContent.vue.d.ts +18 -0
  364. package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +8 -0
  365. package/dist/components/ui/tabs/TabsList.vue.d.ts +18 -0
  366. package/dist/components/ui/tabs/TabsTrigger.vue.d.ts +18 -0
  367. package/dist/components/ui/tabs/index.d.ts +5 -0
  368. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +28 -0
  369. package/dist/components/ui/tags-input/TagsInputInput.vue.d.ts +8 -0
  370. package/dist/components/ui/tags-input/TagsInputItem.vue.d.ts +18 -0
  371. package/dist/components/ui/tags-input/TagsInputItemDelete.vue.d.ts +18 -0
  372. package/dist/components/ui/tags-input/TagsInputItemText.vue.d.ts +8 -0
  373. package/dist/components/ui/tags-input/index.d.ts +5 -0
  374. package/dist/components/ui/textarea/Textarea.vue.d.ts +13 -0
  375. package/dist/components/ui/textarea/index.d.ts +1 -0
  376. package/dist/components/ui/toast/Toast.vue.d.ts +104 -0
  377. package/dist/components/ui/toast/ToastAction.vue.d.ts +18 -0
  378. package/dist/components/ui/toast/ToastClose.vue.d.ts +8 -0
  379. package/dist/components/ui/toast/ToastDescription.vue.d.ts +18 -0
  380. package/dist/components/ui/toast/ToastTitle.vue.d.ts +18 -0
  381. package/dist/components/ui/toast/Toaster.vue.d.ts +3 -0
  382. package/dist/components/ui/toast/index.d.ts +8 -0
  383. package/dist/components/ui/toast/use-toast.d.ts +168 -0
  384. package/dist/components/ui/toggle/Toggle.vue.d.ts +29 -0
  385. package/dist/components/ui/toggle/index.d.ts +26 -0
  386. package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +25 -0
  387. package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +21 -0
  388. package/dist/components/ui/toggle-group/index.d.ts +2 -0
  389. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +21 -0
  390. package/dist/components/ui/tooltip/Tooltip.vue.d.ts +18 -0
  391. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +26 -0
  392. package/dist/components/ui/tooltip/TooltipProvider.vue.d.ts +14 -0
  393. package/dist/components/ui/tooltip/TooltipTrigger.vue.d.ts +14 -0
  394. package/dist/components/ui/tooltip/index.d.ts +4 -0
  395. package/dist/composables/dark/index.d.ts +1 -0
  396. package/dist/composables/dark/useGlobalDark.d.ts +7 -0
  397. package/dist/composables/dom/index.d.ts +6 -0
  398. package/dist/composables/dom/useBreakpoint.d.ts +38 -0
  399. package/dist/composables/dom/useClipboard.d.ts +45 -0
  400. package/dist/composables/dom/useResizeObserver.d.ts +50 -0
  401. package/dist/composables/dom/useTokenColor.d.ts +27 -0
  402. package/dist/composables/dom/useTouchGate.d.ts +18 -0
  403. package/dist/composables/dom/useViewportReady.d.ts +87 -0
  404. package/dist/composables/glass/index.d.ts +1 -0
  405. package/dist/composables/glass/useGlassRenderer.d.ts +37 -0
  406. package/dist/composables/glass/webgl/frostShader.d.ts +27 -0
  407. package/dist/composables/index.d.ts +9 -0
  408. package/dist/composables/keyboard/index.d.ts +1 -0
  409. package/dist/composables/keyboard/useKeyboardShortcuts.d.ts +33 -0
  410. package/dist/composables/motion/constants.d.ts +19 -0
  411. package/dist/composables/motion/index.d.ts +14 -0
  412. package/dist/composables/motion/installDarkModeSync.d.ts +1 -0
  413. package/dist/composables/motion/useAnimatedNumber.d.ts +40 -0
  414. package/dist/composables/motion/useAnimatedNumberMap.d.ts +29 -0
  415. package/dist/composables/motion/useIntersectionPause.d.ts +33 -0
  416. package/dist/composables/motion/useNumericTransition.d.ts +32 -0
  417. package/dist/composables/motion/useRAFLoop.d.ts +43 -0
  418. package/dist/composables/motion/useScrollProgress.d.ts +23 -0
  419. package/dist/composables/motion/useSpring.d.ts +66 -0
  420. package/dist/composables/motion/useSpringMount.d.ts +52 -0
  421. package/dist/composables/motion/useSpringOrchestrator.d.ts +15 -0
  422. package/dist/composables/motion/useSpringPress.d.ts +46 -0
  423. package/dist/composables/motion/useStagger.d.ts +50 -0
  424. package/dist/composables/motion/useStaggerReveal.d.ts +22 -0
  425. package/dist/composables/reactive/index.d.ts +2 -0
  426. package/dist/composables/reactive/useInterval.d.ts +24 -0
  427. package/dist/composables/reactive/useTimer.d.ts +24 -0
  428. package/dist/composables/sidebar/index.d.ts +7 -0
  429. package/dist/composables/sidebar/types.d.ts +44 -0
  430. package/dist/composables/sidebar/useScrollTracker.d.ts +12 -0
  431. package/dist/composables/sidebar/useSidebarFollow.d.ts +16 -0
  432. package/dist/composables/sidebar/useSidebarState.d.ts +39 -0
  433. package/dist/composables/sidebar/useTreeIndex.d.ts +37 -0
  434. package/dist/composables/sortable/index.d.ts +1 -0
  435. package/dist/composables/sortable/useSortable.d.ts +149 -0
  436. package/dist/configurator.d.ts +1 -0
  437. package/dist/configurator.js +2 -0
  438. package/dist/confirm-dialog.d.ts +1 -0
  439. package/dist/confirm-dialog.js +69 -0
  440. package/dist/context-menu.d.ts +1 -0
  441. package/dist/context-menu.js +3 -0
  442. package/dist/controls.d.ts +1 -0
  443. package/dist/controls.js +51 -0
  444. package/dist/createLucideIcon-Bn9a1b70.js +43 -0
  445. package/dist/dark.d.ts +1 -0
  446. package/dist/dark.js +2 -0
  447. package/dist/data-table.d.ts +1 -0
  448. package/dist/data-table.js +2 -0
  449. package/dist/dialog.d.ts +1 -0
  450. package/dist/dialog.js +3 -0
  451. package/dist/disco-glyph.d.ts +1 -0
  452. package/dist/disco-glyph.js +2 -0
  453. package/dist/dock.d.ts +1 -0
  454. package/dist/dock.js +548 -0
  455. package/dist/dockContext-BDGSrwsV.js +16 -0
  456. package/dist/dom.d.ts +1 -0
  457. package/dist/dom.js +4 -0
  458. package/dist/dropdown-menu-2K-SGkZU.js +363 -0
  459. package/dist/dropdown-menu.d.ts +1 -0
  460. package/dist/dropdown-menu.js +2 -0
  461. package/dist/expandable-container.d.ts +1 -0
  462. package/dist/expandable-container.js +64 -0
  463. package/dist/fonts/README.md +95 -0
  464. package/dist/fonts/fira-code/OFL.txt +93 -0
  465. package/dist/fonts/fira-code/fira-code-latin-ext.woff2 +0 -0
  466. package/dist/fonts/fira-code/fira-code-latin.woff2 +0 -0
  467. package/dist/fonts/plus-jakarta-sans/OFL.txt +93 -0
  468. package/dist/fonts/plus-jakarta-sans/plus-jakarta-sans-latin-ext.woff2 +0 -0
  469. package/dist/fonts/plus-jakarta-sans/plus-jakarta-sans-latin.woff2 +0 -0
  470. package/dist/forms.d.ts +3 -0
  471. package/dist/forms.js +311 -0
  472. package/dist/glass-carousel.d.ts +1 -0
  473. package/dist/glass-carousel.js +207 -0
  474. package/dist/glass-panel.d.ts +1 -0
  475. package/dist/glass-panel.js +44 -0
  476. package/dist/glass-ui.css +2 -1
  477. package/dist/glass-ui.js +1174 -10021
  478. package/dist/glyph-face.d.ts +1 -0
  479. package/dist/glyph-face.js +3 -0
  480. package/dist/header-ribbon.d.ts +1 -0
  481. package/dist/header-ribbon.js +63 -0
  482. package/dist/hover-card.d.ts +1 -0
  483. package/dist/hover-card.js +2 -0
  484. package/dist/hover-popover.d.ts +1 -0
  485. package/dist/hover-popover.js +2 -0
  486. package/dist/icon-tooltip.d.ts +1 -0
  487. package/dist/icon-tooltip.js +2 -0
  488. package/dist/index.d.ts +49 -6619
  489. package/dist/infinite-scroll.d.ts +2 -0
  490. package/dist/infinite-scroll.js +73 -0
  491. package/dist/instrument-chassis.d.ts +1 -0
  492. package/dist/instrument-chassis.js +2 -0
  493. package/dist/instrument-rail.d.ts +1 -0
  494. package/dist/instrument-rail.js +2 -0
  495. package/dist/keyboard.d.ts +1 -0
  496. package/dist/keyboard.js +2 -0
  497. package/dist/keys-DVkcUktU.js +11 -0
  498. package/dist/label.d.ts +1 -0
  499. package/dist/label.js +2 -0
  500. package/dist/labeled-field.d.ts +1 -0
  501. package/dist/labeled-field.js +194 -0
  502. package/dist/menuItemVariants-B2nDL7zH.js +30 -0
  503. package/dist/metric-badge.d.ts +1 -0
  504. package/dist/metric-badge.js +2 -0
  505. package/dist/metric-cell.d.ts +1 -0
  506. package/dist/metric-cell.js +54 -0
  507. package/dist/metric-stack.d.ts +1 -0
  508. package/dist/metric-stack.js +107 -0
  509. package/dist/minimize-2-LsCJ_eNt.js +38 -0
  510. package/dist/motion.d.ts +1 -0
  511. package/dist/motion.js +286 -0
  512. package/dist/notification.d.ts +1 -0
  513. package/dist/notification.js +2 -0
  514. package/dist/paper-backdrop.d.ts +1 -0
  515. package/dist/paper-backdrop.js +2 -0
  516. package/dist/popover.d.ts +1 -0
  517. package/dist/popover.js +2 -0
  518. package/dist/presets-BMzCDrmR.js +71 -0
  519. package/dist/progress.d.ts +1 -0
  520. package/dist/progress.js +2 -0
  521. package/dist/pulse.d.ts +1 -0
  522. package/dist/pulse.js +54 -0
  523. package/dist/reactive.d.ts +1 -0
  524. package/dist/reactive.js +3 -0
  525. package/dist/responsive-tabs.d.ts +1 -0
  526. package/dist/responsive-tabs.js +89 -0
  527. package/dist/scrolling-text.d.ts +1 -0
  528. package/dist/scrolling-text.js +2 -0
  529. package/dist/search-ocd8tmL9.js +12 -0
  530. package/dist/search.d.ts +1 -0
  531. package/dist/search.js +425 -0
  532. package/dist/select.d.ts +1 -0
  533. package/dist/select.js +4 -0
  534. package/dist/separator.d.ts +1 -0
  535. package/dist/separator.js +2 -0
  536. package/dist/sheet-CLVkb3AO.js +214 -0
  537. package/dist/sheet.d.ts +1 -0
  538. package/dist/sheet.js +2 -0
  539. package/dist/sidebar.d.ts +1 -0
  540. package/dist/sidebar.js +304 -0
  541. package/dist/slider-BQaLYFLh.js +133 -0
  542. package/dist/slider.d.ts +1 -0
  543. package/dist/slider.js +2 -0
  544. package/dist/sortable-list.d.ts +1 -0
  545. package/dist/sortable-list.js +85 -0
  546. package/dist/stacked-icons.d.ts +1 -0
  547. package/dist/stacked-icons.js +83 -0
  548. package/dist/status-dot.d.ts +1 -0
  549. package/dist/status-dot.js +58 -0
  550. package/dist/styles/animations.css +298 -0
  551. package/dist/styles/cards.css +44 -0
  552. package/dist/styles/disco-glyph.css +26 -0
  553. package/dist/styles/dock.css +1085 -0
  554. package/dist/styles/drawer.css +138 -0
  555. package/dist/styles/floating-panel.css +34 -0
  556. package/dist/styles/fonts.css +143 -0
  557. package/dist/styles/glass.css +277 -0
  558. package/dist/styles/glyph-face.css +92 -0
  559. package/dist/styles/hover-popover.css +44 -0
  560. package/dist/styles/index.css +112 -0
  561. package/dist/styles/instrument-chassis.css +313 -0
  562. package/dist/styles/instrument-rail.css +128 -0
  563. package/dist/styles/paper.css +68 -0
  564. package/dist/styles/theme.css +358 -0
  565. package/dist/styles/tokens.css +1495 -0
  566. package/dist/styles/transitions.css +245 -0
  567. package/dist/styles/typography.css +553 -0
  568. package/dist/styles/utilities.css +893 -0
  569. package/dist/tabs.d.ts +1 -0
  570. package/dist/tabs.js +206 -0
  571. package/dist/timeline.d.ts +1 -0
  572. package/dist/timeline.js +466 -0
  573. package/dist/toast.d.ts +1 -0
  574. package/dist/toast.js +2 -0
  575. package/dist/toggle-chip.d.ts +1 -0
  576. package/dist/toggle-chip.js +71 -0
  577. package/dist/toggle-group.d.ts +1 -0
  578. package/dist/toggle-group.js +2 -0
  579. package/dist/tokens.d.ts +53 -0
  580. package/dist/tokens.js +16 -0
  581. package/dist/tooltip.d.ts +1 -0
  582. package/dist/tooltip.js +2 -0
  583. package/dist/typewriter.d.ts +1 -0
  584. package/dist/typewriter.js +860 -0
  585. package/dist/useAnimatedNumber-DcvTR9B4.js +51 -0
  586. package/dist/useBreakpoint-BHlX-MhR.js +134 -0
  587. package/dist/useConfiguratorState-BlaevW0S.js +266 -0
  588. package/dist/useGlassRenderer-DMDdMH55.js +69 -0
  589. package/dist/useGlobalDark-PMiP5Jku.js +24 -0
  590. package/dist/useIntersectionPause-CXYfYg_C.js +39 -0
  591. package/dist/useInterval-COlTCeVa.js +18 -0
  592. package/dist/useKeyboardShortcuts-B1ev1YEC.js +99 -0
  593. package/dist/useResizeObserver-F4aRR4Cj.js +44 -0
  594. package/dist/useSortable-Ck0rBJ4g.js +175 -0
  595. package/dist/useSpringMount-BTRBNzXP.js +113 -0
  596. package/dist/useTimer-lp5NlH4w.js +20 -0
  597. package/dist/useTouchGate-BhhEMlwJ.js +84 -0
  598. package/dist/utils/cn.d.ts +27 -0
  599. package/dist/x-cdWAmO-q.js +10 -0
  600. package/package.json +514 -26
  601. package/src/fonts/README.md +95 -0
  602. package/src/fonts/fira-code/OFL.txt +93 -0
  603. package/src/fonts/fira-code/fira-code-latin-ext.woff2 +0 -0
  604. package/src/fonts/fira-code/fira-code-latin.woff2 +0 -0
  605. package/src/fonts/plus-jakarta-sans/OFL.txt +93 -0
  606. package/src/fonts/plus-jakarta-sans/plus-jakarta-sans-latin-ext.woff2 +0 -0
  607. package/src/fonts/plus-jakarta-sans/plus-jakarta-sans-latin.woff2 +0 -0
  608. package/src/styles/animations.css +172 -107
  609. package/src/styles/cards.css +30 -52
  610. package/src/styles/disco-glyph.css +26 -0
  611. package/src/styles/dock.css +991 -127
  612. package/src/styles/drawer.css +138 -0
  613. package/src/styles/floating-panel.css +22 -37
  614. package/src/styles/fonts.css +143 -0
  615. package/src/styles/glass.css +129 -126
  616. package/src/styles/glyph-face.css +92 -0
  617. package/src/styles/hover-popover.css +44 -0
  618. package/src/styles/index.css +85 -3
  619. package/src/styles/instrument-chassis.css +313 -0
  620. package/src/styles/instrument-rail.css +128 -0
  621. package/src/styles/paper.css +68 -0
  622. package/src/styles/theme.css +292 -72
  623. package/src/styles/tokens.css +1345 -183
  624. package/src/styles/transitions.css +227 -208
  625. package/src/styles/typography.css +498 -222
  626. package/src/styles/utilities.css +612 -437
  627. package/src/components/custom/aurora/Aurora.vue +0 -34
  628. package/src/components/custom/aurora/composables/color.ts +0 -122
  629. package/src/components/custom/aurora/composables/useAurora.ts +0 -352
  630. package/src/components/custom/aurora/index.ts +0 -8
  631. package/src/components/custom/confirm-dialog/ConfirmDialog.vue +0 -88
  632. package/src/components/custom/controls/DarkModeToggle.vue +0 -96
  633. package/src/components/custom/dock/DockLayerGroup.vue +0 -21
  634. package/src/components/custom/dock/DockPopover.vue +0 -263
  635. package/src/components/custom/dock/GlassDock.vue +0 -276
  636. package/src/components/custom/dock/composables/index.ts +0 -16
  637. package/src/components/custom/dock/composables/isTeleportedTarget.ts +0 -19
  638. package/src/components/custom/dock/composables/useDockActionBar.ts +0 -33
  639. package/src/components/custom/dock/composables/useDockState.ts +0 -314
  640. package/src/components/custom/dock/composables/useDockTransition.ts +0 -146
  641. package/src/components/custom/dock/composables/useLayerTransition.ts +0 -135
  642. package/src/components/custom/dock/composables/usePopupMutex.ts +0 -83
  643. package/src/components/custom/dock/index.ts +0 -9
  644. package/src/components/custom/expandable-container/ExpandableContainer.vue +0 -64
  645. package/src/components/custom/glass-panel/GlassPanel.vue +0 -98
  646. package/src/components/custom/glass-panel/index.ts +0 -2
  647. package/src/components/custom/icon-tooltip/IconTooltip.vue +0 -20
  648. package/src/components/custom/index.ts +0 -15
  649. package/src/components/custom/infinite-scroll/InfiniteScroll.vue +0 -55
  650. package/src/components/custom/infinite-scroll/composables/types.ts +0 -23
  651. package/src/components/custom/infinite-scroll/composables/useInfiniteScroll.ts +0 -73
  652. package/src/components/custom/labeled-field/LabeledInput.vue +0 -29
  653. package/src/components/custom/labeled-field/LabeledSelect.vue +0 -59
  654. package/src/components/custom/labeled-field/LabeledSlider.vue +0 -32
  655. package/src/components/custom/labeled-field/LabeledSwitch.vue +0 -27
  656. package/src/components/custom/labeled-field/index.ts +0 -4
  657. package/src/components/custom/metaballs/MetaballCanvas.vue +0 -23
  658. package/src/components/custom/metaballs/index.ts +0 -4
  659. package/src/components/custom/metaballs/shaders.ts +0 -63
  660. package/src/components/custom/metaballs/types.ts +0 -29
  661. package/src/components/custom/metaballs/useMetaballs.ts +0 -252
  662. package/src/components/custom/search/FuzzySearch.vue +0 -589
  663. package/src/components/custom/search/SearchBar.vue +0 -44
  664. package/src/components/custom/search/composables/fuzzySearchIndex.ts +0 -224
  665. package/src/components/custom/search/composables/types.ts +0 -34
  666. package/src/components/custom/search/composables/useFuzzySearch.ts +0 -115
  667. package/src/components/custom/sidebar/ProgressiveSidebar.vue +0 -256
  668. package/src/components/custom/sidebar/composables/index.ts +0 -6
  669. package/src/components/custom/sidebar/composables/useScrollTracker.ts +0 -242
  670. package/src/components/custom/sidebar/composables/useSidebarFollow.ts +0 -247
  671. package/src/components/custom/sidebar/composables/useSidebarState.ts +0 -72
  672. package/src/components/custom/sidebar/composables/useTreeIndex.ts +0 -152
  673. package/src/components/custom/sidebar/index.ts +0 -15
  674. package/src/components/custom/sidebar/types.ts +0 -50
  675. package/src/components/custom/tabs/BouncyTabs.vue +0 -39
  676. package/src/components/custom/tabs/BouncyToggle.vue +0 -352
  677. package/src/components/custom/tabs/UnderlineTabs.vue +0 -115
  678. package/src/components/custom/timeline/GlassTimeline.vue +0 -174
  679. package/src/components/custom/timeline/index.ts +0 -1
  680. package/src/components/custom/typewriter/TypewriterText.vue +0 -239
  681. package/src/components/custom/typewriter/composables/useTypewriter.ts +0 -413
  682. package/src/components/custom/typewriter/types.ts +0 -159
  683. package/src/components/custom/typewriter/utils/keyboard.ts +0 -213
  684. package/src/components/custom/typewriter/utils/pausePatterns.ts +0 -55
  685. package/src/components/custom/typewriter/utils/timing.ts +0 -104
  686. package/src/components/custom/typewriter/utils/typoStateMachine.ts +0 -197
  687. package/src/components/index.ts +0 -2
  688. package/src/components/ui/accordion/Accordion.vue +0 -19
  689. package/src/components/ui/accordion/AccordionContent.vue +0 -24
  690. package/src/components/ui/accordion/AccordionItem.vue +0 -24
  691. package/src/components/ui/accordion/AccordionTrigger.vue +0 -39
  692. package/src/components/ui/accordion/index.ts +0 -4
  693. package/src/components/ui/alert/Alert.vue +0 -20
  694. package/src/components/ui/alert/AlertDescription.vue +0 -17
  695. package/src/components/ui/alert/AlertTitle.vue +0 -17
  696. package/src/components/ui/alert/index.ts +0 -23
  697. package/src/components/ui/avatar/Avatar.vue +0 -21
  698. package/src/components/ui/avatar/AvatarFallback.vue +0 -11
  699. package/src/components/ui/avatar/AvatarImage.vue +0 -9
  700. package/src/components/ui/avatar/index.ts +0 -24
  701. package/src/components/ui/badge/Badge.vue +0 -16
  702. package/src/components/ui/badge/index.ts +0 -25
  703. package/src/components/ui/button/Button.vue +0 -26
  704. package/src/components/ui/button/index.ts +0 -43
  705. package/src/components/ui/card/Card.vue +0 -28
  706. package/src/components/ui/card/CardContent.vue +0 -14
  707. package/src/components/ui/card/CardDescription.vue +0 -14
  708. package/src/components/ui/card/CardFooter.vue +0 -14
  709. package/src/components/ui/card/CardHeader.vue +0 -14
  710. package/src/components/ui/card/CardTitle.vue +0 -21
  711. package/src/components/ui/card/index.ts +0 -6
  712. package/src/components/ui/carousel/Carousel.vue +0 -53
  713. package/src/components/ui/carousel/CarouselContent.vue +0 -35
  714. package/src/components/ui/carousel/CarouselItem.vue +0 -24
  715. package/src/components/ui/carousel/CarouselNext.vue +0 -40
  716. package/src/components/ui/carousel/CarouselPrevious.vue +0 -40
  717. package/src/components/ui/carousel/index.ts +0 -10
  718. package/src/components/ui/carousel/interface.ts +0 -26
  719. package/src/components/ui/carousel/useCarousel.ts +0 -56
  720. package/src/components/ui/checkbox/Checkbox.vue +0 -33
  721. package/src/components/ui/checkbox/index.ts +0 -1
  722. package/src/components/ui/collapsible/Collapsible.vue +0 -15
  723. package/src/components/ui/collapsible/CollapsibleContent.vue +0 -11
  724. package/src/components/ui/collapsible/CollapsibleTrigger.vue +0 -11
  725. package/src/components/ui/collapsible/index.ts +0 -3
  726. package/src/components/ui/combobox/Combobox.vue +0 -17
  727. package/src/components/ui/combobox/ComboboxAnchor.vue +0 -23
  728. package/src/components/ui/combobox/ComboboxEmpty.vue +0 -21
  729. package/src/components/ui/combobox/ComboboxGroup.vue +0 -27
  730. package/src/components/ui/combobox/ComboboxInput.vue +0 -41
  731. package/src/components/ui/combobox/ComboboxItem.vue +0 -24
  732. package/src/components/ui/combobox/ComboboxItemIndicator.vue +0 -23
  733. package/src/components/ui/combobox/ComboboxList.vue +0 -29
  734. package/src/components/ui/combobox/ComboboxSeparator.vue +0 -21
  735. package/src/components/ui/combobox/ComboboxViewport.vue +0 -23
  736. package/src/components/ui/combobox/index.ts +0 -12
  737. package/src/components/ui/command/Command.vue +0 -30
  738. package/src/components/ui/command/CommandDialog.vue +0 -21
  739. package/src/components/ui/command/CommandEmpty.vue +0 -20
  740. package/src/components/ui/command/CommandGroup.vue +0 -29
  741. package/src/components/ui/command/CommandInput.vue +0 -33
  742. package/src/components/ui/command/CommandItem.vue +0 -26
  743. package/src/components/ui/command/CommandList.vue +0 -27
  744. package/src/components/ui/command/CommandSeparator.vue +0 -23
  745. package/src/components/ui/command/CommandShortcut.vue +0 -14
  746. package/src/components/ui/command/index.ts +0 -9
  747. package/src/components/ui/context-menu/ContextMenu.vue +0 -15
  748. package/src/components/ui/context-menu/ContextMenuCheckboxItem.vue +0 -40
  749. package/src/components/ui/context-menu/ContextMenuContent.vue +0 -36
  750. package/src/components/ui/context-menu/ContextMenuGroup.vue +0 -11
  751. package/src/components/ui/context-menu/ContextMenuItem.vue +0 -34
  752. package/src/components/ui/context-menu/ContextMenuLabel.vue +0 -25
  753. package/src/components/ui/context-menu/ContextMenuPortal.vue +0 -11
  754. package/src/components/ui/context-menu/ContextMenuRadioGroup.vue +0 -19
  755. package/src/components/ui/context-menu/ContextMenuRadioItem.vue +0 -40
  756. package/src/components/ui/context-menu/ContextMenuSeparator.vue +0 -20
  757. package/src/components/ui/context-menu/ContextMenuShortcut.vue +0 -14
  758. package/src/components/ui/context-menu/ContextMenuSub.vue +0 -19
  759. package/src/components/ui/context-menu/ContextMenuSubContent.vue +0 -35
  760. package/src/components/ui/context-menu/ContextMenuSubTrigger.vue +0 -34
  761. package/src/components/ui/context-menu/ContextMenuTrigger.vue +0 -13
  762. package/src/components/ui/context-menu/index.ts +0 -14
  763. package/src/components/ui/data-table/DataTable.vue +0 -167
  764. package/src/components/ui/data-table/DataTablePagination.vue +0 -112
  765. package/src/components/ui/data-table/types.ts +0 -48
  766. package/src/components/ui/dialog/Dialog.vue +0 -14
  767. package/src/components/ui/dialog/DialogClose.vue +0 -11
  768. package/src/components/ui/dialog/DialogContent.vue +0 -61
  769. package/src/components/ui/dialog/DialogDescription.vue +0 -24
  770. package/src/components/ui/dialog/DialogFooter.vue +0 -19
  771. package/src/components/ui/dialog/DialogHeader.vue +0 -16
  772. package/src/components/ui/dialog/DialogScrollContent.vue +0 -65
  773. package/src/components/ui/dialog/DialogTitle.vue +0 -29
  774. package/src/components/ui/dialog/DialogTrigger.vue +0 -11
  775. package/src/components/ui/dialog/index.ts +0 -9
  776. package/src/components/ui/drawer/Drawer.vue +0 -19
  777. package/src/components/ui/drawer/DrawerContent.vue +0 -28
  778. package/src/components/ui/drawer/DrawerDescription.vue +0 -20
  779. package/src/components/ui/drawer/DrawerFooter.vue +0 -14
  780. package/src/components/ui/drawer/DrawerHeader.vue +0 -14
  781. package/src/components/ui/drawer/DrawerOverlay.vue +0 -18
  782. package/src/components/ui/drawer/DrawerTitle.vue +0 -20
  783. package/src/components/ui/drawer/index.ts +0 -8
  784. package/src/components/ui/dropdown-menu/DropdownMenu.vue +0 -14
  785. package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +0 -40
  786. package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +0 -44
  787. package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +0 -11
  788. package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +0 -28
  789. package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +0 -24
  790. package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +0 -19
  791. package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +0 -40
  792. package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +0 -22
  793. package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +0 -14
  794. package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +0 -19
  795. package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +0 -36
  796. package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +0 -33
  797. package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +0 -13
  798. package/src/components/ui/dropdown-menu/index.ts +0 -16
  799. package/src/components/ui/hover-card/HoverCard.vue +0 -14
  800. package/src/components/ui/hover-card/HoverCardContent.vue +0 -41
  801. package/src/components/ui/hover-card/HoverCardTrigger.vue +0 -11
  802. package/src/components/ui/hover-card/index.ts +0 -3
  803. package/src/components/ui/index.ts +0 -41
  804. package/src/components/ui/input/Input.vue +0 -24
  805. package/src/components/ui/input/index.ts +0 -1
  806. package/src/components/ui/label/Label.vue +0 -27
  807. package/src/components/ui/label/index.ts +0 -1
  808. package/src/components/ui/multi-select/MultiSelect.vue +0 -141
  809. package/src/components/ui/multi-select/index.ts +0 -7
  810. package/src/components/ui/notification/Notification.vue +0 -85
  811. package/src/components/ui/notification/index.ts +0 -1
  812. package/src/components/ui/number-field/NumberField.vue +0 -23
  813. package/src/components/ui/number-field/NumberFieldContent.vue +0 -14
  814. package/src/components/ui/number-field/NumberFieldDecrement.vue +0 -25
  815. package/src/components/ui/number-field/NumberFieldIncrement.vue +0 -25
  816. package/src/components/ui/number-field/NumberFieldInput.vue +0 -8
  817. package/src/components/ui/number-field/index.ts +0 -5
  818. package/src/components/ui/popover/Popover.vue +0 -15
  819. package/src/components/ui/popover/PopoverContent.vue +0 -61
  820. package/src/components/ui/popover/PopoverTrigger.vue +0 -11
  821. package/src/components/ui/popover/index.ts +0 -3
  822. package/src/components/ui/progress/Progress.vue +0 -39
  823. package/src/components/ui/progress/index.ts +0 -1
  824. package/src/components/ui/radio-group/RadioGroup.vue +0 -25
  825. package/src/components/ui/radio-group/RadioGroupItem.vue +0 -39
  826. package/src/components/ui/radio-group/index.ts +0 -2
  827. package/src/components/ui/scroll-area/ScrollArea.vue +0 -29
  828. package/src/components/ui/scroll-area/ScrollBar.vue +0 -30
  829. package/src/components/ui/scroll-area/index.ts +0 -2
  830. package/src/components/ui/scroll-pane/ScrollPane.vue +0 -25
  831. package/src/components/ui/scroll-pane/ScrollPaneHeader.vue +0 -75
  832. package/src/components/ui/scroll-pane/index.ts +0 -2
  833. package/src/components/ui/select/Select.vue +0 -15
  834. package/src/components/ui/select/SelectContent.vue +0 -57
  835. package/src/components/ui/select/SelectGroup.vue +0 -19
  836. package/src/components/ui/select/SelectItem.vue +0 -47
  837. package/src/components/ui/select/SelectItemText.vue +0 -11
  838. package/src/components/ui/select/SelectLabel.vue +0 -13
  839. package/src/components/ui/select/SelectScrollDownButton.vue +0 -24
  840. package/src/components/ui/select/SelectScrollUpButton.vue +0 -24
  841. package/src/components/ui/select/SelectSeparator.vue +0 -17
  842. package/src/components/ui/select/SelectTrigger.vue +0 -45
  843. package/src/components/ui/select/SelectValue.vue +0 -11
  844. package/src/components/ui/select/index.ts +0 -11
  845. package/src/components/ui/separator/Separator.vue +0 -35
  846. package/src/components/ui/separator/index.ts +0 -1
  847. package/src/components/ui/sheet/Sheet.vue +0 -14
  848. package/src/components/ui/sheet/SheetClose.vue +0 -11
  849. package/src/components/ui/sheet/SheetContent.vue +0 -56
  850. package/src/components/ui/sheet/SheetDescription.vue +0 -22
  851. package/src/components/ui/sheet/SheetFooter.vue +0 -19
  852. package/src/components/ui/sheet/SheetHeader.vue +0 -16
  853. package/src/components/ui/sheet/SheetTitle.vue +0 -22
  854. package/src/components/ui/sheet/SheetTrigger.vue +0 -11
  855. package/src/components/ui/sheet/index.ts +0 -31
  856. package/src/components/ui/skeleton/Skeleton.vue +0 -14
  857. package/src/components/ui/skeleton/index.ts +0 -1
  858. package/src/components/ui/slider/Slider.vue +0 -67
  859. package/src/components/ui/slider/index.ts +0 -1
  860. package/src/components/ui/switch/Switch.vue +0 -37
  861. package/src/components/ui/switch/index.ts +0 -1
  862. package/src/components/ui/table/Table.vue +0 -16
  863. package/src/components/ui/table/TableBody.vue +0 -14
  864. package/src/components/ui/table/TableCaption.vue +0 -14
  865. package/src/components/ui/table/TableCell.vue +0 -14
  866. package/src/components/ui/table/TableEmpty.vue +0 -39
  867. package/src/components/ui/table/TableFooter.vue +0 -16
  868. package/src/components/ui/table/TableHead.vue +0 -21
  869. package/src/components/ui/table/TableHeader.vue +0 -14
  870. package/src/components/ui/table/TableRow.vue +0 -21
  871. package/src/components/ui/table/index.ts +0 -9
  872. package/src/components/ui/tabs/Tabs.vue +0 -15
  873. package/src/components/ui/tabs/TabsContent.vue +0 -22
  874. package/src/components/ui/tabs/TabsIndicator.vue +0 -22
  875. package/src/components/ui/tabs/TabsList.vue +0 -25
  876. package/src/components/ui/tabs/TabsTrigger.vue +0 -29
  877. package/src/components/ui/tabs/index.ts +0 -5
  878. package/src/components/ui/tags-input/TagsInput.vue +0 -22
  879. package/src/components/ui/tags-input/TagsInputInput.vue +0 -19
  880. package/src/components/ui/tags-input/TagsInputItem.vue +0 -22
  881. package/src/components/ui/tags-input/TagsInputItemDelete.vue +0 -24
  882. package/src/components/ui/tags-input/TagsInputItemText.vue +0 -19
  883. package/src/components/ui/tags-input/index.ts +0 -5
  884. package/src/components/ui/textarea/Textarea.vue +0 -24
  885. package/src/components/ui/textarea/index.ts +0 -1
  886. package/src/components/ui/toast/Toast.vue +0 -57
  887. package/src/components/ui/toast/ToastAction.vue +0 -30
  888. package/src/components/ui/toast/ToastClose.vue +0 -31
  889. package/src/components/ui/toast/ToastDescription.vue +0 -25
  890. package/src/components/ui/toast/ToastTitle.vue +0 -25
  891. package/src/components/ui/toast/Toaster.vue +0 -31
  892. package/src/components/ui/toast/index.ts +0 -8
  893. package/src/components/ui/toast/use-toast.ts +0 -136
  894. package/src/components/ui/toggle/Toggle.vue +0 -35
  895. package/src/components/ui/toggle/index.ts +0 -27
  896. package/src/components/ui/toggle-group/ToggleGroup.vue +0 -34
  897. package/src/components/ui/toggle-group/ToggleGroupItem.vue +0 -35
  898. package/src/components/ui/toggle-group/index.ts +0 -2
  899. package/src/components/ui/tooltip/Tooltip.vue +0 -14
  900. package/src/components/ui/tooltip/TooltipContent.vue +0 -31
  901. package/src/components/ui/tooltip/TooltipProvider.vue +0 -11
  902. package/src/components/ui/tooltip/TooltipTrigger.vue +0 -11
  903. package/src/components/ui/tooltip/index.ts +0 -4
  904. package/src/composables/glass/index.ts +0 -8
  905. package/src/composables/glass/useGlassRenderer.ts +0 -252
  906. package/src/composables/glass/webgl/frostShader.ts +0 -221
  907. package/src/composables/glass/webgpu/glassShader.wgsl +0 -173
  908. package/src/composables/index.ts +0 -32
  909. package/src/composables/infinite-scroll/index.ts +0 -2
  910. package/src/composables/infinite-scroll/types.ts +0 -25
  911. package/src/composables/infinite-scroll/useInfiniteScroll.ts +0 -101
  912. package/src/composables/interaction/index.ts +0 -5
  913. package/src/composables/interaction/useHeightTransition.ts +0 -82
  914. package/src/composables/interaction/useHoverPopover.ts +0 -64
  915. package/src/composables/interaction/useHoverToggle.ts +0 -103
  916. package/src/composables/interaction/useLeaveTimer.ts +0 -17
  917. package/src/composables/interaction/useTouchGate.ts +0 -207
  918. package/src/composables/pagination/index.ts +0 -2
  919. package/src/composables/pagination/useOffsetPagination.ts +0 -70
  920. package/src/composables/prng.ts +0 -32
  921. package/src/composables/useCharSplit.ts +0 -31
  922. package/src/composables/useClipboard.ts +0 -46
  923. package/src/composables/useGlobalDark.ts +0 -61
  924. package/src/composables/useKeyboardShortcuts.ts +0 -205
  925. package/src/composables/useWatercolorBlob.ts +0 -136
  926. package/src/composables/virtual/index.ts +0 -22
  927. package/src/composables/virtual/useVirtualSectionWindow.ts +0 -338
  928. package/src/composables/virtual/useWindowedStore.ts +0 -86
  929. package/src/composables/virtual/virtualSectionLayout.ts +0 -212
  930. package/src/index.ts +0 -9
  931. package/src/styles/scroll-pane.css +0 -10
  932. package/src/utils/cn.ts +0 -6
  933. /package/{src/components/custom/confirm-dialog/index.ts → dist/components/custom/confirm-dialog/index.d.ts} +0 -0
  934. /package/{src/components/custom/controls/index.ts → dist/components/custom/controls/index.d.ts} +0 -0
  935. /package/{src/components/custom/expandable-container/index.ts → dist/components/custom/expandable-container/index.d.ts} +0 -0
  936. /package/{src/components/custom/icon-tooltip/index.ts → dist/components/custom/icon-tooltip/index.d.ts} +0 -0
  937. /package/{src/components/custom/infinite-scroll/composables/index.ts → dist/components/custom/infinite-scroll/composables/index.d.ts} +0 -0
  938. /package/{src/components/custom/infinite-scroll/index.ts → dist/components/custom/infinite-scroll/index.d.ts} +0 -0
  939. /package/{src/components/custom/search/composables/index.ts → dist/components/custom/search/composables/index.d.ts} +0 -0
  940. /package/{src/components/custom/search/index.ts → dist/components/custom/search/index.d.ts} +0 -0
  941. /package/{src/components/custom/tabs/index.ts → dist/components/custom/tabs/index.d.ts} +0 -0
  942. /package/{src/components/custom/typewriter/composables/index.ts → dist/components/custom/typewriter/composables/index.d.ts} +0 -0
  943. /package/{src/components/custom/typewriter/index.ts → dist/components/custom/typewriter/index.d.ts} +0 -0
  944. /package/{src/components/ui/data-table/index.ts → dist/components/ui/data-table/index.d.ts} +0 -0
  945. /package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -0
@@ -0,0 +1,38 @@
1
+ import { type Ref } from "vue";
2
+ export interface UseBreakpointControls {
3
+ /** Live `matches` state for the given media query. */
4
+ readonly matches: Readonly<Ref<boolean>>;
5
+ /** Tear down the `matchMedia` listener. Auto-called on scope dispose. */
6
+ stop: () => void;
7
+ }
8
+ /**
9
+ * `useBreakpoint(query)` — a reactive read of a CSS media query's `matches`
10
+ * state, kept live across resize / orientation / display-mode changes.
11
+ *
12
+ * Wraps `window.matchMedia(query)`, subscribes a single `change` handler,
13
+ * and mirrors `mql.matches` into a `Ref<boolean>`. Auto-cleans on Vue scope
14
+ * disposal (mirrors `useResizeObserver` / `useInterval` upstream); outside
15
+ * a scope callers use the returned `stop()` control.
16
+ *
17
+ * SSR-safe: when `window` is undefined the composable returns a
18
+ * permanently-`false` ref. Consumers should treat the initial frame as
19
+ * "mobile-first / narrow-default" because the matchMedia subscription only
20
+ * mounts client-side. This is the same shape consumers wrote by hand at the
21
+ * speedtest origin sites.
22
+ *
23
+ * Why this exists (speedtest origin, glass-ui promotion W6-β): the survey
24
+ * cockpit (`SurveyWizard.vue`) and the admin data-source toggle
25
+ * (`AdminDataSourceToggle.vue`) both hand-rolled the same `matchMedia`
26
+ * subscribe-on-mount + tear-down-on-unmount pattern. Two hand-rolls of one
27
+ * pattern is the `feedback_generic_components` 2-consumer trigger;
28
+ * absorbed publisher-side per `feedback_library_gaps`.
29
+ *
30
+ * Usage:
31
+ * const { matches: isDesktop } = useBreakpoint("(min-width: 720px)");
32
+ * const wide = isDesktop.value; // live across resize.
33
+ *
34
+ * @param query A CSS `@media` query string, e.g. `"(min-width: 720px)"`.
35
+ * @returns Object with `matches: Ref<boolean>` and `stop()` for manual
36
+ * disposal outside a Vue scope.
37
+ */
38
+ export declare function useBreakpoint(query: string): UseBreakpointControls;
@@ -0,0 +1,45 @@
1
+ import { type Ref } from "vue";
2
+ export interface UseClipboardOptions {
3
+ /** Milliseconds before `copied` auto-resets to `false` (default 1500). */
4
+ resetMs?: number;
5
+ }
6
+ export interface UseClipboardReturn {
7
+ /** Reactive flag—flips `true` on successful copy, auto-resets after `resetMs`. */
8
+ copied: Ref<boolean>;
9
+ /** Copy `text` to the clipboard. Returns the success boolean. */
10
+ copy: (text: string) => Promise<boolean>;
11
+ }
12
+ /**
13
+ * Bare clipboard copy—stateless `Promise<boolean>` return, no reactive `copied`
14
+ * flag. P.W5 Lane A.1 (Path B) co-export paralleling the canonical
15
+ * `useClipboard()` composable. Use this when call sites manage their own
16
+ * confirmation state (e.g. hand-rolled `ref + setTimeout`) or in non-component
17
+ * contexts (utility modules, stores).
18
+ *
19
+ * The `resetMs` option is currently a no-op for the bare function (no reactive
20
+ * state to auto-reset); kept on the signature for forward-compatibility with
21
+ * future paired-callback hooks.
22
+ *
23
+ * @example
24
+ * import { copyToClipboard } from "@mkbabb/glass-ui";
25
+ *
26
+ * async function shareLink(url: string) {
27
+ * const ok = await copyToClipboard(url);
28
+ * if (ok) toast.show("Link copied");
29
+ * }
30
+ */
31
+ export declare function copyToClipboard(text: string, _options?: UseClipboardOptions): Promise<boolean>;
32
+ /**
33
+ * Reactive clipboard copy with auto-reset confirmation flag.
34
+ *
35
+ * @example
36
+ * const { copied, copy } = useClipboard();
37
+ * <button @click="copy(value)">
38
+ * {{ copied ? "Copied" : "Copy" }}
39
+ * </button>
40
+ *
41
+ * @example
42
+ * // Custom reset window (e.g. for paired toast feedback):
43
+ * const { copied, copy } = useClipboard({ resetMs: 2000 });
44
+ */
45
+ export declare function useClipboard(options?: UseClipboardOptions): UseClipboardReturn;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Structural Ref shape — accepts the consumer's `Ref<T>` regardless of
3
+ * which `@vue/reactivity` package the brand symbol comes from. Glass-ui
4
+ * may sit at a different vue minor than the consumer, and Vue 3.5's
5
+ * `[RefSymbol]` phantom is nominal-by-package; structural-by-`.value`
6
+ * is the gestalt-correct contract for a consumer-facing API.
7
+ */
8
+ type RefLike<T> = {
9
+ value: T;
10
+ };
11
+ export interface UseResizeObserverOptions {
12
+ /**
13
+ * Skip dispatch if every observed dimension delta is below this
14
+ * threshold (in CSS pixels). Helps dodge sub-pixel resize-drag storms.
15
+ * Default: 0.5.
16
+ */
17
+ threshold?: number;
18
+ /**
19
+ * Coalesce dispatch into the next animation frame. The most recent
20
+ * entry wins; older entries within the same frame are dropped.
21
+ * Default: true.
22
+ */
23
+ rafBatch?: boolean;
24
+ /** Forwarded to `ResizeObserver.observe`. Default: `"content-box"`. */
25
+ box?: ResizeObserverBoxOptions;
26
+ }
27
+ export interface UseResizeObserverControls {
28
+ /** Stop observing and disconnect the underlying observer. */
29
+ stop: () => void;
30
+ }
31
+ /**
32
+ * Vue-scope-aware ResizeObserver wrapper.
33
+ *
34
+ * Watches one element ref and fires a callback when its bounding box
35
+ * changes by more than `threshold` CSS pixels in either dimension.
36
+ * Dispatch coalesces through `requestAnimationFrame` by default so a
37
+ * caller wiring an expensive re-init (canvas DPR-resync, layout
38
+ * remeasure) doesn't pay for every drag-resize step.
39
+ *
40
+ * Safe to call outside setup/effect scopes. In a scope it auto-cleans
41
+ * on disposal; outside a scope callers use the returned `stop()`
42
+ * explicitly. Mirrors the auto-disposal pattern of `useTimer` and
43
+ * `useInterval` upstream.
44
+ *
45
+ * Usage:
46
+ * const el = ref<HTMLElement | null>(null);
47
+ * useResizeObserver(el, (rect) => recompute(rect));
48
+ */
49
+ export declare function useResizeObserver<T extends Element>(target: RefLike<T | null>, callback: (rect: DOMRectReadOnly, entry: ResizeObserverEntry) => void, options?: UseResizeObserverOptions): UseResizeObserverControls;
50
+ export {};
@@ -0,0 +1,27 @@
1
+ import { type MaybeRefOrGetter, type Ref } from "vue";
2
+ export interface UseTokenColorOptions {
3
+ /** Element to resolve the property against. Defaults to `<html>`. */
4
+ element?: MaybeRefOrGetter<HTMLElement | null | undefined>;
5
+ /** Fallback when the property is unset or `document` is unavailable (SSR). */
6
+ fallback?: string;
7
+ }
8
+ export interface UseTokenColorControls {
9
+ /** Reactive resolved value. Trimmed; falls back to `options.fallback` when empty. */
10
+ value: Readonly<Ref<string>>;
11
+ /** Force a re-read of the property — useful after manual cascade mutations. */
12
+ refresh: () => void;
13
+ }
14
+ /**
15
+ * Read a CSS custom property as a reactive ref.
16
+ *
17
+ * The ref re-resolves automatically on dark-mode toggles via `useGlobalDark`
18
+ * and at mount. SSR returns the fallback.
19
+ *
20
+ * @example
21
+ * const stroke = useTokenColor("--meter-track-stroke", { fallback: "#ccc" });
22
+ * watch(stroke, (next) => repaintRingTrack(next));
23
+ *
24
+ * // With an element-scoped resolve (e.g. a themed container):
25
+ * const accent = useTokenColor("--accent", { element: panelEl });
26
+ */
27
+ export declare function useTokenColor(token: MaybeRefOrGetter<string>, options?: UseTokenColorOptions): UseTokenColorControls;
@@ -0,0 +1,18 @@
1
+ import { type Ref } from "vue";
2
+ export interface TouchGateReturn {
3
+ isActive: Ref<boolean>;
4
+ isTouchDevice: boolean;
5
+ handleTouchStart: (el: HTMLElement, clientY: number) => boolean;
6
+ handleScrollCheck: (event: TouchEvent) => void;
7
+ handleTouchEnd: () => void;
8
+ resetTimer: () => void;
9
+ deactivate: () => void;
10
+ suppressDeactivate: (suppress: boolean) => void;
11
+ }
12
+ /**
13
+ * Per-control tap-to-activate guard for mobile touch controls.
14
+ *
15
+ * Desktop pointers pass through immediately. On touch devices, the first tap
16
+ * activates the control unless it turns into a vertical scroll gesture.
17
+ */
18
+ export declare function useTouchGate(deactivateDelayMs?: number): TouchGateReturn;
@@ -0,0 +1,87 @@
1
+ import { type Ref } from "vue";
2
+ /**
3
+ * Structural Ref shape — accepts the consumer's `Ref<T>` regardless of which
4
+ * `@vue/reactivity` package the brand symbol comes from. Glass-ui may sit at
5
+ * a different vue minor than the consumer, and Vue 3.5's `[RefSymbol]`
6
+ * phantom is nominal-by-package; structural-by-`.value` is the correct
7
+ * contract for a consumer-facing API. Same shape `useResizeObserver` uses.
8
+ */
9
+ type RefLike<T> = {
10
+ value: T;
11
+ };
12
+ export interface UseViewportReadyOptions {
13
+ /**
14
+ * IntersectionObserver `rootMargin`. Default `"200px"` so the gate flips
15
+ * before the host actually crosses the viewport edge — gives the
16
+ * consumer a quiet window for lazy-mount (`echarts`, `<canvas>` re-init,
17
+ * heavy widget hydration) to land off the LCP frame.
18
+ */
19
+ rootMargin?: string;
20
+ /**
21
+ * `requestIdleCallback` timeout, in ms. Default 10_000.
22
+ *
23
+ * Why 10s and not the conventional 1–2s: a cold-loading consumer (slow
24
+ * throughput, weak device) may not sustainably idle inside a 1–2s
25
+ * window — the timeout fires inside the LCP measurement window and
26
+ * defeats the IO gate's "wait for viewport AND idle main thread"
27
+ * semantic. The IO gate fronts the budget, so the timeout only fires
28
+ * after intersection has already resolved; ten seconds gives the main
29
+ * thread room to idle naturally.
30
+ */
31
+ idleTimeout?: number;
32
+ /**
33
+ * IntersectionObserver `threshold`. Default 0.01 (1 % visible). Mirrors
34
+ * the speedtest origin-site semantic — "any pixel visible counts".
35
+ */
36
+ threshold?: number;
37
+ }
38
+ export interface UseViewportReadyControls {
39
+ /** Flips `false → true` exactly once when the host is visible + idle. */
40
+ readonly ready: Ref<boolean>;
41
+ /** Tear down observer + idle handle. Auto-called on scope dispose. */
42
+ stop: () => void;
43
+ }
44
+ /**
45
+ * `useViewportReady(host)` — two-stage `IntersectionObserver` +
46
+ * `requestIdleCallback` gate that flips a `Ref<boolean>` exactly once when
47
+ * the host element has entered the viewport AND the main thread has idled.
48
+ *
49
+ * The intended use is lazy-mount of a heavy widget (echarts, leaflet,
50
+ * three.js, codemirror, custom canvas) that would otherwise pull its chunk
51
+ * into the first-paint critical path. The two-stage gate ensures:
52
+ *
53
+ * 1. Visibility-first — `IntersectionObserver` watches `host`. Until the
54
+ * host crosses into the viewport (+ `rootMargin`), no fetch fires.
55
+ * 2. Idle-second — once visible, `requestIdleCallback` schedules the flip
56
+ * so the chunk fetch waits for an idle main thread. Safari (no rIC)
57
+ * falls back to `setTimeout(fire, 16)` — one frame later — so the
58
+ * composition still defers past the IO callback's paint frame.
59
+ *
60
+ * The composable is one-shot: once the gate flips to `true` it disconnects
61
+ * its observer and clears any pending idle handle. Auto-cleans on Vue scope
62
+ * disposal (mirrors `useResizeObserver` / `useInterval` upstream); outside
63
+ * a scope callers receive the manual `stop()` control.
64
+ *
65
+ * Why this exists (speedtest origin, glass-ui promotion AJ.W6-α): both
66
+ * `AdminOverviewView` and `ChartsView` shipped a near-identical `chartReady`
67
+ * flag flipped by `requestIdleCallback` alone. The W3-R1 idiom in those
68
+ * sites — gate visibility first, then schedule rIC inside the IO callback —
69
+ * is generic across heavy-widget hydration; the speedtest 2-consumer trigger
70
+ * fired for a publisher-side absorption per `feedback_generic_components`.
71
+ *
72
+ * Usage:
73
+ * const host = ref<HTMLElement | null>(null);
74
+ * const { ready } = useViewportReady(host);
75
+ * // <Chart v-if="ready" /> — fetched lazily once host is visible + idle.
76
+ *
77
+ * @param host A `Ref<Element | null>` for the element to gate visibility on.
78
+ * The observer watches THIS element, not the lazy-mounted
79
+ * widget (which doesn't exist pre-flip).
80
+ * @param options.rootMargin Default `"200px"`.
81
+ * @param options.idleTimeout Default `10000` ms.
82
+ * @param options.threshold Default `0.01`.
83
+ * @returns Object with `ready: Ref<boolean>` (flips false → true once) and
84
+ * `stop()` for manual disposal outside a Vue scope.
85
+ */
86
+ export declare function useViewportReady(host: RefLike<Element | null>, options?: UseViewportReadyOptions): UseViewportReadyControls;
87
+ export {};
@@ -0,0 +1 @@
1
+ export { useGlassRenderer, createGlassFilter, destroyGlassFilter, type GlassTier, type GlassFilterState, } from "./useGlassRenderer";
@@ -0,0 +1,37 @@
1
+ export type GlassTier = "svg-filter" | "css" | "fallback";
2
+ export interface GlassFilterState {
3
+ filterId: string;
4
+ svgEl: SVGSVGElement;
5
+ dispCanvas: HTMLCanvasElement;
6
+ specCanvas: HTMLCanvasElement;
7
+ observer: ResizeObserver | null;
8
+ }
9
+ /**
10
+ * Create an SVG filter for glass refraction + frost.
11
+ *
12
+ * Architecture (Chromium SVG displacement approach):
13
+ * 1. Hidden canvas generates Snell's law displacement map
14
+ * 2. Inline SVG <filter> references the canvas via <feImage>
15
+ * 3. <feDisplacementMap> warps the backdrop using R/G channels
16
+ * 4. CSS `backdrop-filter: url(#filterId) blur(Xpx) saturate(Y)` applies it
17
+ *
18
+ * This naturally composites with whatever is behind the element —
19
+ * no texture capture, no WebGL context, no scroll sync needed.
20
+ */
21
+ export declare function createGlassFilter(el: HTMLElement, opts?: {
22
+ blur?: number;
23
+ refraction?: number;
24
+ chromaticAberration?: number;
25
+ }): GlassFilterState;
26
+ /**
27
+ * Remove a glass filter and clean up DOM elements.
28
+ */
29
+ export declare function destroyGlassFilter(state: GlassFilterState): void;
30
+ /**
31
+ * Composable for tiered glass rendering.
32
+ */
33
+ export declare function useGlassRenderer(options?: {
34
+ preferredTier?: GlassTier;
35
+ }): {
36
+ tier: import("vue").Ref<GlassTier, GlassTier>;
37
+ };
@@ -0,0 +1,27 @@
1
+ /**
2
+ * WebGL frost/refraction fragment shader for glass-ui.
3
+ *
4
+ * Features:
5
+ * - Frosted glass blur (Gaussian kernel with spatial variation)
6
+ * - Snell's law refraction displacement
7
+ * - Fresnel-based specular highlights
8
+ * - Chromatic aberration at glass edges
9
+ */
10
+ /** Vertex shader — full-screen quad */
11
+ export declare const VERTEX_SHADER = "#version 300 es\nprecision highp float;\n\nin vec2 a_position;\nin vec2 a_texCoord;\n\nout vec2 v_texCoord;\n\nvoid main() {\n gl_Position = vec4(a_position, 0.0, 1.0);\n v_texCoord = a_texCoord;\n}\n";
12
+ /** Fragment shader — frosted glass with refraction and chromatic aberration */
13
+ export declare const FRAGMENT_SHADER = "#version 300 es\nprecision highp float;\n\nuniform sampler2D u_background; // Captured page content behind glass\nuniform vec2 u_resolution; // Canvas resolution (px)\nuniform vec4 u_glassBounds; // Glass panel rect (x, y, w, h) in UV space\nuniform float u_blurRadius; // Base blur radius (0-40)\nuniform float u_refractionStrength; // Refraction displacement (0-1)\nuniform float u_chromaticAberration; // Edge chromatic aberration (0-1)\nuniform vec2 u_lightPos; // Light source position (UV, 0-1)\nuniform float u_time; // Animation time (seconds)\n\nin vec2 v_texCoord;\nout vec4 fragColor;\n\n// Gaussian weight for blur kernel\nfloat gaussian(float x, float sigma) {\n return exp(-(x * x) / (2.0 * sigma * sigma));\n}\n\n// Distance from point to nearest edge of glass panel (in UV space)\nfloat edgeDistance(vec2 uv) {\n vec2 glassMin = u_glassBounds.xy;\n vec2 glassMax = u_glassBounds.xy + u_glassBounds.zw;\n vec2 d = min(uv - glassMin, glassMax - uv);\n return min(d.x, d.y);\n}\n\n// Fresnel approximation (Schlick)\nfloat fresnel(vec3 viewDir, vec3 normal, float ior) {\n float r0 = pow((1.0 - ior) / (1.0 + ior), 2.0);\n return r0 + (1.0 - r0) * pow(1.0 - max(dot(viewDir, normal), 0.0), 5.0);\n}\n\nvoid main() {\n vec2 uv = v_texCoord;\n vec2 pixelSize = 1.0 / u_resolution;\n\n // Check if fragment is inside the glass panel\n vec2 glassMin = u_glassBounds.xy;\n vec2 glassMax = u_glassBounds.xy + u_glassBounds.zw;\n\n if (uv.x < glassMin.x || uv.x > glassMax.x ||\n uv.y < glassMin.y || uv.y > glassMax.y) {\n fragColor = texture(u_background, uv);\n return;\n }\n\n // Progressive blur \u2014 stronger at center, weaker at edges\n float edgeDist = edgeDistance(uv);\n float maxEdgeDist = min(u_glassBounds.z, u_glassBounds.w) * 0.5;\n float blurFactor = smoothstep(0.0, maxEdgeDist * 0.3, edgeDist);\n float effectiveBlur = u_blurRadius * (0.4 + 0.6 * blurFactor);\n\n // Refraction displacement (Snell's law approximation)\n vec2 center = u_glassBounds.xy + u_glassBounds.zw * 0.5;\n vec2 fromCenter = uv - center;\n vec2 refractionOffset = fromCenter * u_refractionStrength * 0.02;\n\n // Gaussian blur with refraction offset\n vec3 blurColor = vec3(0.0);\n float totalWeight = 0.0;\n\n int samples = int(min(effectiveBlur * 2.0, 20.0));\n float sigma = max(effectiveBlur * 0.5, 0.1);\n\n for (int x = -10; x <= 10; x++) {\n for (int y = -10; y <= 10; y++) {\n if (abs(x) > samples || abs(y) > samples) continue;\n\n vec2 offset = vec2(float(x), float(y)) * pixelSize * effectiveBlur * 0.1;\n float weight = gaussian(float(x), sigma) * gaussian(float(y), sigma);\n\n vec2 sampleUV = uv + offset + refractionOffset;\n blurColor += texture(u_background, sampleUV).rgb * weight;\n totalWeight += weight;\n }\n }\n blurColor /= totalWeight;\n\n // Chromatic aberration at edges\n if (u_chromaticAberration > 0.0) {\n float edgeStrength = 1.0 - smoothstep(0.0, maxEdgeDist * 0.15, edgeDist);\n vec2 aberrationDir = normalize(fromCenter) * edgeStrength * u_chromaticAberration * 0.003;\n\n float r = texture(u_background, uv + refractionOffset + aberrationDir).r;\n float b = texture(u_background, uv + refractionOffset - aberrationDir).b;\n blurColor.r = mix(blurColor.r, r, edgeStrength * 0.5);\n blurColor.b = mix(blurColor.b, b, edgeStrength * 0.5);\n }\n\n // Specular highlight (Fresnel)\n vec3 viewDir = vec3(0.0, 0.0, 1.0);\n vec2 normalXY = fromCenter / (u_glassBounds.zw * 0.5);\n vec3 normal = normalize(vec3(normalXY * 0.3, 1.0));\n float spec = fresnel(viewDir, normal, 1.5);\n\n // Light-source-aware specular\n vec2 lightDir = normalize(u_lightPos - uv);\n float lightDot = max(dot(normalXY, lightDir), 0.0);\n spec *= 0.3 + 0.7 * lightDot;\n\n // Combine: frosted blur + specular + slight tint\n vec3 tint = vec3(1.0, 1.0, 1.0); // neutral tint\n vec3 result = blurColor * tint + vec3(spec * 0.15);\n\n // Glass opacity with frosted appearance\n float alpha = 0.85 + spec * 0.1;\n fragColor = vec4(result, alpha);\n}\n";
14
+ /** Shader program setup — compiles and links vertex + fragment shaders */
15
+ export declare function createFrostProgram(gl: WebGL2RenderingContext | WebGLRenderingContext): WebGLProgram | null;
16
+ /** Uniform locations cache for the frost program */
17
+ export interface FrostUniforms {
18
+ u_background: WebGLUniformLocation | null;
19
+ u_resolution: WebGLUniformLocation | null;
20
+ u_glassBounds: WebGLUniformLocation | null;
21
+ u_blurRadius: WebGLUniformLocation | null;
22
+ u_refractionStrength: WebGLUniformLocation | null;
23
+ u_chromaticAberration: WebGLUniformLocation | null;
24
+ u_lightPos: WebGLUniformLocation | null;
25
+ u_time: WebGLUniformLocation | null;
26
+ }
27
+ export declare function getFrostUniforms(gl: WebGL2RenderingContext | WebGLRenderingContext, program: WebGLProgram): FrostUniforms;
@@ -0,0 +1,9 @@
1
+ export * from "./dark";
2
+ export * from "./keyboard";
3
+ export * from "./reactive";
4
+ export * from "./dom";
5
+ export * from "./motion";
6
+ export * from "./glass";
7
+ export * from "./sortable";
8
+ export * from "./sidebar";
9
+ export * from "../components/custom/infinite-scroll/composables";
@@ -0,0 +1 @@
1
+ export * from "./useKeyboardShortcuts";
@@ -0,0 +1,33 @@
1
+ import { type ComputedRef } from "vue";
2
+ export type ShortcutEventType = "keydown" | "keyup";
3
+ export interface ShortcutOptions {
4
+ /** Fire even when focus is in input/textarea/contenteditable. Default: false */
5
+ allowInInput?: boolean;
6
+ /** Call preventDefault on the event. Default: false */
7
+ preventDefault?: boolean;
8
+ /** Human-readable label for the shortcuts modal */
9
+ label?: string;
10
+ /** Group name for display (e.g. "Playback", "Navigation") */
11
+ group?: string;
12
+ /** Keyboard event phase to match. Default: keydown */
13
+ event?: ShortcutEventType;
14
+ }
15
+ export interface RegisteredShortcut {
16
+ combo: ShortcutCombo;
17
+ raw: string;
18
+ handler: (e: KeyboardEvent) => void;
19
+ options: ShortcutOptions;
20
+ }
21
+ export interface ShortcutCombo {
22
+ key: string;
23
+ ctrl: boolean;
24
+ meta: boolean;
25
+ shift: boolean;
26
+ alt: boolean;
27
+ mod: boolean;
28
+ }
29
+ export declare const isMac: boolean;
30
+ export declare function formatComboParts(raw: string): string[];
31
+ export declare function formatCombo(raw: string): string;
32
+ export declare function registerShortcut(combo: string, handler: (e: KeyboardEvent) => void, options?: ShortcutOptions): () => void;
33
+ export declare function useRegisteredShortcuts(): ComputedRef<RegisteredShortcut[]>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Shared damping factors for live numeric motion.
3
+ *
4
+ * These values preserve the app-level tuning that used to live in
5
+ * speedtest's local animation utility while making glass-ui the owner of the
6
+ * generic motion contract.
7
+ */
8
+ export declare const DAMPING: {
9
+ readonly canvasNeedle: 0.08;
10
+ readonly domHero: 0.12;
11
+ readonly domPill: 0.14;
12
+ readonly domProgress: 0.18;
13
+ };
14
+ /** Shared absolute snap thresholds for live numeric motion. */
15
+ export declare const SNAP_THRESHOLD: {
16
+ readonly canvas: 0.002;
17
+ readonly dom: 0.05;
18
+ readonly domProgress: 0.5;
19
+ };
@@ -0,0 +1,14 @@
1
+ export * from "./constants";
2
+ export * from "./useSpring";
3
+ export * from "./useSpringMount";
4
+ export * from "./useSpringPress";
5
+ export * from "./useNumericTransition";
6
+ export * from "./useSpringOrchestrator";
7
+ export * from "./useStaggerReveal";
8
+ export * from "./useScrollProgress";
9
+ export * from "./useAnimatedNumber";
10
+ export * from "./useAnimatedNumberMap";
11
+ export * from "./installDarkModeSync";
12
+ export * from "./useRAFLoop";
13
+ export * from "./useIntersectionPause";
14
+ export * from "./useStagger";
@@ -0,0 +1 @@
1
+ export declare function installDarkModeSync(onSync: () => void): void;
@@ -0,0 +1,40 @@
1
+ import { type MaybeRefOrGetter, type Ref } from "vue";
2
+ export type AnimatedNumberMode = "absolute" | "progress";
3
+ export interface UseAnimatedNumberOptions {
4
+ /** Numeric contract. Progress mode accepts and clamps 0..100. Default absolute. */
5
+ mode?: AnimatedNumberMode;
6
+ /** SmoothProgress damping. Lower = smoother, higher = snappier. */
7
+ damping?: number;
8
+ /** Absolute-delta threshold below which current snaps to target. */
9
+ snapThreshold?: number;
10
+ /** Minimum target change accepted as noise filter. Default 0. */
11
+ targetEpsilon?: number;
12
+ /** Starting current value. Default 0. */
13
+ initial?: number;
14
+ /** Absolute-mode clamp to [0, 1]. Progress mode always clamps to [0, 100]. */
15
+ clamp?: boolean;
16
+ /** Respect prefers-reduced-motion with synchronous target snaps. Default true. */
17
+ respectReducedMotion?: boolean;
18
+ /** Per-frame side-effect hook. Receives the smoothed current value. */
19
+ onValue?: (value: number) => void;
20
+ }
21
+ export interface AnimatedNumber {
22
+ /** Reactive smoothed value. Bind in templates. */
23
+ current: Readonly<Ref<number>>;
24
+ /** True while the rAF loop is running and not settled. */
25
+ isAnimating: Readonly<Ref<boolean>>;
26
+ /** Force current to the target immediately and stop the loop. */
27
+ snap: () => void;
28
+ /** Reset current and target to `value` (default 0), then stop the loop. */
29
+ reset: (value?: number) => void;
30
+ /** Stop the smoother and target watcher. */
31
+ dispose: () => void;
32
+ }
33
+ /**
34
+ * Track a live numeric target with exponentially damped hysteresis.
35
+ *
36
+ * Wraps keyframes.js `SmoothProgress.play(onFrame)`. The engine owns rAF; this
37
+ * composable wires Vue reactivity, reduced-motion handling, and lifecycle
38
+ * cleanup.
39
+ */
40
+ export declare function useAnimatedNumber(target: MaybeRefOrGetter<number | null | undefined>, options?: UseAnimatedNumberOptions): AnimatedNumber;
@@ -0,0 +1,29 @@
1
+ import { type ComputedRef } from "vue";
2
+ import { type UseAnimatedNumberOptions } from "./useAnimatedNumber";
3
+ export interface UseAnimatedNumberMapOptions extends UseAnimatedNumberOptions {
4
+ }
5
+ /**
6
+ * Fan out N independent `useAnimatedNumber` instances into a `Record<K, ...>`.
7
+ *
8
+ * Each key gets one rAF-smoothed `ComputedRef<number | null>`. The smoothing
9
+ * options apply identically across the set; consumers that need per-key
10
+ * options should call `useAnimatedNumber` per key directly.
11
+ *
12
+ * The `null` propagation is preserved: when `source(key)` resolves to `null`,
13
+ * the corresponding ref returns `null` rather than freezing on the last
14
+ * smoothed sample. This matches the per-metric `raw → smoothed` contract.
15
+ *
16
+ * @example
17
+ * const keys = ["ping", "jitter", "download", "upload"] as const;
18
+ * const smoothed = useAnimatedNumberMap({
19
+ * keys,
20
+ * source: (k) => computed(() => store.resultFor(k).value ?? null),
21
+ * damping: DAMPING.domPill,
22
+ * snapThreshold: SNAP_THRESHOLD.dom,
23
+ * });
24
+ * // smoothed.ping.value, smoothed.jitter.value, ...
25
+ */
26
+ export declare function useAnimatedNumberMap<K extends string>(options: {
27
+ keys: readonly K[];
28
+ source: (key: K) => ComputedRef<number | null>;
29
+ } & UseAnimatedNumberMapOptions): Record<K, ComputedRef<number | null>>;
@@ -0,0 +1,33 @@
1
+ import { type MaybeRefOrGetter, type Ref } from "vue";
2
+ export interface PausableRuntime {
3
+ pause: () => void;
4
+ resume: () => void;
5
+ }
6
+ export interface UseIntersectionPauseOptions {
7
+ /** IntersectionObserver root. Default null (viewport). */
8
+ root?: Element | Document | null;
9
+ /** IntersectionObserver rootMargin. Default 0px. */
10
+ rootMargin?: string;
11
+ /** IntersectionObserver threshold. Default 0. */
12
+ threshold?: number | number[];
13
+ /** Pause while document.hidden is true. Default true. */
14
+ pauseWhenHidden?: boolean;
15
+ }
16
+ export interface IntersectionPauseControls {
17
+ /** Latest IntersectionObserver visible state. Defaults true until observed. */
18
+ readonly isIntersecting: Readonly<Ref<boolean>>;
19
+ /** Current document visibility state, SSR-safe default true. */
20
+ readonly isDocumentVisible: Readonly<Ref<boolean>>;
21
+ /** True when the runtime should be paused. */
22
+ readonly isPaused: Readonly<Ref<boolean>>;
23
+ /** Re-apply current intersection and visibility state to the runtime. */
24
+ refresh: () => void;
25
+ /** Disconnect observers and document listeners. */
26
+ dispose: () => void;
27
+ }
28
+ /**
29
+ * Pause a runtime while its target is outside the viewport or the document is
30
+ * hidden. Safe to call in SSR/tests; unavailable observers leave runtime state
31
+ * controlled by document visibility only.
32
+ */
33
+ export declare function useIntersectionPause(target: MaybeRefOrGetter<Element | null | undefined>, runtime: PausableRuntime, options?: UseIntersectionPauseOptions): IntersectionPauseControls;
@@ -0,0 +1,32 @@
1
+ import type { TimingFunction, TimingFunctionNames } from "@mkbabb/keyframes.js";
2
+ export type SpringSnapshot<K extends string> = Record<K, number>;
3
+ export interface UseNumericTransitionOptions<K extends string> {
4
+ /** Named numeric endpoints to interpolate between. */
5
+ from: SpringSnapshot<K>;
6
+ to: SpringSnapshot<K>;
7
+ /** Playback duration in ms. */
8
+ duration: number;
9
+ /** keyframes.js timing function — string name or explicit function. */
10
+ timingFunction?: TimingFunction | TimingFunctionNames;
11
+ /** Per-frame consumer. Receives the same zero-allocation record each tick. */
12
+ onFrame?: (values: SpringSnapshot<K>) => void;
13
+ }
14
+ /**
15
+ * Drive a numeric transition between two snapshots — e.g. CSS variable
16
+ * values, element transforms, or color channel tuples. Wraps keyframes.js's
17
+ * `NumericAnimation`, which handles easing, binary-search segment lookup,
18
+ * and zero-allocation playback.
19
+ *
20
+ * The caller owns how values map to the DOM: provide `onFrame` and write
21
+ * the record into `element.style.setProperty`, a `ref`, or wherever. This
22
+ * composable never touches the DOM directly — it's the orchestrator, not
23
+ * the renderer.
24
+ *
25
+ * For physics-based motion (mass / stiffness / damping), use `useSpring`.
26
+ */
27
+ export declare function useNumericTransition<K extends string>(options: UseNumericTransitionOptions<K>): {
28
+ start: () => Promise<void>;
29
+ stop: () => void;
30
+ progress: import("vue").Ref<number, number>;
31
+ playing: import("vue").Ref<boolean, boolean>;
32
+ };
@@ -0,0 +1,43 @@
1
+ import { type Ref } from "vue";
2
+ export interface RAFLoopTiming {
3
+ /** Current frame timestamp from requestAnimationFrame. */
4
+ now: number;
5
+ /** Milliseconds since the previous delivered frame. First frame is 0. */
6
+ delta: number;
7
+ /** Accumulated running time, excluding paused time. */
8
+ elapsed: number;
9
+ /** Delivered frame count since the last start(), zero-based. */
10
+ frame: number;
11
+ }
12
+ export type RAFLoopCallback = (timing: RAFLoopTiming) => void;
13
+ export interface UseRAFLoopOptions {
14
+ /** Start the loop immediately. Default true. */
15
+ immediate?: boolean;
16
+ /** Stop scheduling frames while document.hidden is true. Default true. */
17
+ pauseWhenHidden?: boolean;
18
+ /** Honor prefers-reduced-motion by pausing the loop. Default true. */
19
+ respectReducedMotion?: boolean;
20
+ }
21
+ export interface RAFLoopControls {
22
+ /** True while a frame is scheduled or being delivered. */
23
+ readonly isActive: Readonly<Ref<boolean>>;
24
+ /** True when the loop was requested but is paused by controls or environment. */
25
+ readonly isPaused: Readonly<Ref<boolean>>;
26
+ /** Current prefers-reduced-motion state when monitored. */
27
+ readonly isReducedMotion: Readonly<Ref<boolean>>;
28
+ /** Request frame delivery, resetting elapsed/frame counters. */
29
+ start: () => void;
30
+ /** Stop frame delivery and clear elapsed/frame counters. */
31
+ stop: () => void;
32
+ /** Temporarily pause frame delivery without clearing counters. */
33
+ pause: () => void;
34
+ /** Resume a paused loop if start() has been requested. */
35
+ resume: () => void;
36
+ /** Stop the loop and detach document/media listeners. */
37
+ dispose: () => void;
38
+ }
39
+ /**
40
+ * Scope-aware requestAnimationFrame loop with manual controls plus document
41
+ * visibility and reduced-motion gates.
42
+ */
43
+ export declare function useRAFLoop(callback: RAFLoopCallback, options?: UseRAFLoopOptions): RAFLoopControls;
@@ -0,0 +1,23 @@
1
+ import type { MaybeRef, Ref } from "vue";
2
+ interface ScrollProgressConfig {
3
+ /** Element whose vertical position maps to 0..1. */
4
+ target: MaybeRef<HTMLElement | null>;
5
+ /** Pixel offset added to the mapped start. Negative values start earlier. */
6
+ offset?: number;
7
+ /**
8
+ * When true, progress reaches 1 at the target's bottom rather than its
9
+ * top. Default false — progress is 0 when target top is at viewport
10
+ * bottom, 1 when target top reaches viewport top.
11
+ */
12
+ trackExit?: boolean;
13
+ }
14
+ /**
15
+ * Map a target element's scroll position in the viewport to a reactive
16
+ * `Ref<number>` in [0, 1]. Drives things like scroll-linked typography
17
+ * axes, parallax depth, or progress indicators.
18
+ *
19
+ * Uses a rAF-coalesced scroll listener plus ResizeObserver so the mapping
20
+ * stays accurate when layout shifts.
21
+ */
22
+ export declare function useScrollProgress(options: ScrollProgressConfig): Ref<number>;
23
+ export {};