@mkbabb/glass-ui 0.2.0 → 2.0.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 (942) hide show
  1. package/README.md +170 -70
  2. package/dist/CardFooter-Yi0xtLLd.js +129 -0
  3. package/dist/CollapsibleContent-DHRuXE3P.js +52 -0
  4. package/dist/CommandShortcut-_INFUMu6.js +285 -0
  5. package/dist/ContextMenuContent-CvXfU5qz.js +85 -0
  6. package/dist/ContextMenuSubContent-DCkweFW9.js +250 -0
  7. package/dist/DataTable-Ce00dbHD.js +460 -0
  8. package/dist/DialogContent-CmCijgX9.js +93 -0
  9. package/dist/DialogFooter-DRdaCok0.js +165 -0
  10. package/dist/DiscoGlyph-wRA02zAJ.js +132 -0
  11. package/dist/GlyphFace-BnPMUZ16.js +51 -0
  12. package/dist/HoverCardContent-4nN5-5bz.js +83 -0
  13. package/dist/HoverPopover-Btv4RQfv.js +80 -0
  14. package/dist/IconTooltip-ge_mBSWR.js +25 -0
  15. package/dist/Input-CbakTe3B.js +32 -0
  16. package/dist/InstrumentChassis-DOaVYyWq.js +65 -0
  17. package/dist/InstrumentRail-jHDqXj70.js +44 -0
  18. package/dist/Label-C8QMJSsf.js +32 -0
  19. package/dist/MetricBadge-DRBB18Xq.js +78 -0
  20. package/dist/ModalOverlay-DKLVY-cj.js +53 -0
  21. package/dist/Notification-DrI1DT2v.js +99 -0
  22. package/dist/PaperBackdrop-Bc2drCqJ.js +31 -0
  23. package/dist/PopoverContent-BCH4eYs8.js +121 -0
  24. package/dist/Progress-CCH-2UBR.js +126 -0
  25. package/dist/ScrollingText-7P8skg5W.js +40 -0
  26. package/dist/SelectGroup-O69GTQ77.js +31 -0
  27. package/dist/SelectScrollDownButton-yu8EYUnu.js +235 -0
  28. package/dist/SelectSeparator-GTHxKO0a.js +49 -0
  29. package/dist/Separator-_NCypg_C.js +37 -0
  30. package/dist/Switch-CL0uxu8F.js +41 -0
  31. package/dist/Toaster-DY8_jtHv.js +255 -0
  32. package/dist/ToggleGroupItem-BYG_8M9M.js +152 -0
  33. package/dist/TooltipProvider-C5QLSPto.js +104 -0
  34. package/dist/UnderlineTabs-BtrUcXn-.js +64 -0
  35. package/dist/_plugin-vue_export-helper-n-_DRHWS.js +8 -0
  36. package/dist/animated-digit.d.ts +1 -0
  37. package/dist/animated-digit.js +44 -0
  38. package/dist/api/index.d.ts +30 -0
  39. package/dist/api.js +2 -0
  40. package/dist/aurora.d.ts +1 -0
  41. package/dist/aurora.js +541 -0
  42. package/dist/badge-BbxVKZfw.js +49 -0
  43. package/dist/badge.d.ts +1 -0
  44. package/dist/badge.js +2 -0
  45. package/dist/button-BlOW34DT.js +70 -0
  46. package/dist/button.d.ts +1 -0
  47. package/dist/button.js +2 -0
  48. package/dist/card.d.ts +1 -0
  49. package/dist/card.js +2 -0
  50. package/dist/carousel.d.ts +2 -0
  51. package/dist/carousel.js +394 -0
  52. package/dist/check-dwgetki8.js +7 -0
  53. package/dist/chevron-down-DILQA1t6.js +7 -0
  54. package/dist/chevron-right-fS7fal2t.js +7 -0
  55. package/dist/chevron-up-BtYjYQOS.js +7 -0
  56. package/dist/cn-DJXf4yaB.js +97 -0
  57. package/dist/collapsible.d.ts +1 -0
  58. package/dist/collapsible.js +2 -0
  59. package/dist/command.d.ts +1 -0
  60. package/dist/command.js +2 -0
  61. package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +48 -0
  62. package/dist/components/custom/animated-digit/index.d.ts +2 -0
  63. package/dist/components/custom/aurora/Aurora.vue.d.ts +95 -0
  64. package/dist/components/custom/aurora/composables/color.d.ts +39 -0
  65. package/dist/components/custom/aurora/composables/configSource.d.ts +10 -0
  66. package/dist/components/custom/aurora/composables/runtime.d.ts +54 -0
  67. package/dist/components/custom/aurora/composables/useAurora.d.ts +67 -0
  68. package/dist/components/custom/aurora/composables/useCursorInteraction.d.ts +25 -0
  69. package/dist/components/custom/aurora/index.d.ts +9 -0
  70. package/dist/components/custom/aurora/presets.d.ts +121 -0
  71. package/dist/components/custom/aurora/renderMode.d.ts +30 -0
  72. package/dist/components/custom/aurora/shaders/aurora.frag.d.ts +1 -0
  73. package/dist/components/custom/aurora/shaders/aurora.vert.d.ts +1 -0
  74. package/dist/components/custom/configurator/Configurator.vue.d.ts +102 -0
  75. package/dist/components/custom/configurator/ConfiguratorLayer.vue.d.ts +68 -0
  76. package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +63 -0
  77. package/dist/components/custom/configurator/density.d.ts +30 -0
  78. package/dist/components/custom/configurator/index.d.ts +6 -0
  79. package/dist/components/custom/configurator/useConfiguratorState.d.ts +45 -0
  80. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +32 -0
  81. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +23 -0
  82. package/dist/components/custom/disco-glyph/DiscoGlyph.vue.d.ts +58 -0
  83. package/dist/components/custom/disco-glyph/index.d.ts +1 -0
  84. package/dist/components/custom/dock/DockDropdownTrigger.vue.d.ts +29 -0
  85. package/dist/components/custom/dock/DockIconButton.vue.d.ts +30 -0
  86. package/dist/components/custom/dock/DockLayer.vue.d.ts +34 -0
  87. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +43 -0
  88. package/dist/components/custom/dock/DockSelectTrigger.vue.d.ts +29 -0
  89. package/dist/components/custom/dock/DockTabButton.vue.d.ts +39 -0
  90. package/dist/components/custom/dock/GlassDock.vue.d.ts +96 -0
  91. package/dist/components/custom/dock/composables/dockContext.d.ts +40 -0
  92. package/dist/components/custom/dock/composables/dockLayerContext.d.ts +29 -0
  93. package/dist/components/custom/dock/composables/index.d.ts +7 -0
  94. package/dist/components/custom/dock/composables/isTeleportedTarget.d.ts +9 -0
  95. package/dist/components/custom/dock/composables/useDockState.d.ts +70 -0
  96. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +34 -0
  97. package/dist/components/custom/dock/index.d.ts +9 -0
  98. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +40 -0
  99. package/dist/components/custom/glass-carousel/GlassCarousel.vue.d.ts +36 -0
  100. package/dist/components/custom/glass-carousel/GlassCarouselItem.vue.d.ts +28 -0
  101. package/dist/components/custom/glass-carousel/index.d.ts +4 -0
  102. package/dist/components/custom/glass-carousel/useGlassCarousel.d.ts +30 -0
  103. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +41 -0
  104. package/dist/components/custom/glass-panel/index.d.ts +2 -0
  105. package/dist/components/custom/glyph-face/GlyphFace.vue.d.ts +64 -0
  106. package/dist/components/custom/glyph-face/index.d.ts +2 -0
  107. package/dist/components/custom/glyph-face/keys.d.ts +35 -0
  108. package/dist/components/custom/header-ribbon/HeaderRibbon.vue.d.ts +31 -0
  109. package/dist/components/custom/header-ribbon/index.d.ts +2 -0
  110. package/dist/components/custom/header-ribbon/types.d.ts +7 -0
  111. package/dist/components/custom/hover-popover/HoverPopover.vue.d.ts +71 -0
  112. package/dist/components/custom/hover-popover/index.d.ts +1 -0
  113. package/dist/components/custom/icon-tooltip/IconTooltip.vue.d.ts +16 -0
  114. package/dist/components/custom/infinite-scroll/InfiniteScroll.vue.d.ts +33 -0
  115. package/dist/components/custom/infinite-scroll/composables/types.d.ts +21 -0
  116. package/dist/components/custom/infinite-scroll/composables/useInfiniteScroll.d.ts +9 -0
  117. package/dist/components/custom/instrument-chassis/ChassisDivider.vue.d.ts +30 -0
  118. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +82 -0
  119. package/dist/components/custom/instrument-chassis/index.d.ts +3 -0
  120. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +91 -0
  121. package/dist/components/custom/instrument-rail/index.d.ts +2 -0
  122. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +36 -0
  123. package/dist/components/custom/labeled-field/LabeledInput.vue.d.ts +15 -0
  124. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +18 -0
  125. package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +16 -0
  126. package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +13 -0
  127. package/dist/components/custom/labeled-field/index.d.ts +5 -0
  128. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +39 -0
  129. package/dist/components/custom/metric-badge/index.d.ts +1 -0
  130. package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +97 -0
  131. package/dist/components/custom/metric-cell/index.d.ts +2 -0
  132. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +103 -0
  133. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +92 -0
  134. package/dist/components/custom/metric-stack/index.d.ts +4 -0
  135. package/dist/components/custom/paper-backdrop/PaperBackdrop.vue.d.ts +21 -0
  136. package/dist/components/custom/paper-backdrop/index.d.ts +2 -0
  137. package/dist/components/custom/pulse/Pulse.vue.d.ts +53 -0
  138. package/dist/components/custom/pulse/index.d.ts +1 -0
  139. package/dist/components/custom/responsive-tabs/ResponsiveTabs.vue.d.ts +67 -0
  140. package/dist/components/custom/responsive-tabs/index.d.ts +2 -0
  141. package/dist/components/custom/scrolling-text/ScrollingText.vue.d.ts +20 -0
  142. package/dist/components/custom/scrolling-text/index.d.ts +1 -0
  143. package/dist/components/custom/search/FuzzySearch.vue.d.ts +16 -0
  144. package/dist/components/custom/search/SearchBar.vue.d.ts +30 -0
  145. package/dist/components/custom/search/composables/fuzzySearchIndex.d.ts +42 -0
  146. package/dist/components/custom/search/composables/types.d.ts +31 -0
  147. package/dist/components/custom/search/composables/useFuzzySearch.d.ts +12 -0
  148. package/dist/components/custom/sortable-list/SortableHandle.vue.d.ts +32 -0
  149. package/dist/components/custom/sortable-list/SortableItem.vue.d.ts +38 -0
  150. package/dist/components/custom/sortable-list/SortableList.vue.d.ts +76 -0
  151. package/dist/components/custom/sortable-list/context.d.ts +26 -0
  152. package/dist/components/custom/sortable-list/index.d.ts +4 -0
  153. package/dist/components/custom/stacked-icons/StackedIconGroup.vue.d.ts +30 -0
  154. package/dist/components/custom/stacked-icons/index.d.ts +2 -0
  155. package/dist/components/custom/stacked-icons/types.d.ts +18 -0
  156. package/dist/components/custom/status-dot/StatusDot.vue.d.ts +18 -0
  157. package/dist/components/custom/status-dot/index.d.ts +1 -0
  158. package/dist/components/custom/tabs/BouncyTabs.vue.d.ts +24 -0
  159. package/dist/components/custom/tabs/BouncyToggle.vue.d.ts +56 -0
  160. package/dist/components/custom/tabs/UnderlineTabs.vue.d.ts +17 -0
  161. package/dist/components/custom/timeline/ContinuousTimeline.vue.d.ts +118 -0
  162. package/dist/components/custom/timeline/GlassTimeline.vue.d.ts +114 -0
  163. package/dist/components/custom/timeline/ScrubberTimeline.vue.d.ts +29 -0
  164. package/dist/components/custom/timeline/SegmentedTimeline.vue.d.ts +46 -0
  165. package/dist/components/custom/timeline/geometry.d.ts +100 -0
  166. package/dist/components/custom/timeline/index.d.ts +2 -0
  167. package/dist/components/custom/timeline/types.d.ts +57 -0
  168. package/dist/components/custom/toggle-chip/ToggleChip.vue.d.ts +39 -0
  169. package/dist/components/custom/toggle-chip/index.d.ts +17 -0
  170. package/dist/components/custom/typewriter/TypewriterText.vue.d.ts +85 -0
  171. package/dist/components/custom/typewriter/composables/useTypewriter.d.ts +22 -0
  172. package/dist/components/custom/typewriter/types.d.ts +137 -0
  173. package/dist/components/custom/typewriter/utils/keyboard.d.ts +15 -0
  174. package/dist/components/custom/typewriter/utils/pausePatterns.d.ts +28 -0
  175. package/dist/components/custom/typewriter/utils/timing.d.ts +17 -0
  176. package/dist/components/custom/typewriter/utils/typoStateMachine.d.ts +24 -0
  177. package/dist/components/ui/_shared/ModalOverlay.vue.d.ts +90 -0
  178. package/dist/components/ui/_shared/index.d.ts +2 -0
  179. package/dist/components/ui/_shared/menuItemVariants.d.ts +32 -0
  180. package/dist/components/ui/_shared/useStalePropWarning.d.ts +27 -0
  181. package/dist/components/ui/accordion/Accordion.vue.d.ts +19 -0
  182. package/dist/components/ui/accordion/AccordionContent.vue.d.ts +18 -0
  183. package/dist/components/ui/accordion/AccordionItem.vue.d.ts +18 -0
  184. package/dist/components/ui/accordion/AccordionTrigger.vue.d.ts +20 -0
  185. package/dist/components/ui/accordion/index.d.ts +4 -0
  186. package/dist/components/ui/alert/Alert.vue.d.ts +19 -0
  187. package/dist/components/ui/alert/AlertDescription.vue.d.ts +17 -0
  188. package/dist/components/ui/alert/AlertTitle.vue.d.ts +17 -0
  189. package/dist/components/ui/alert/index.d.ts +8 -0
  190. package/dist/components/ui/avatar/Avatar.vue.d.ts +23 -0
  191. package/dist/components/ui/avatar/AvatarFallback.vue.d.ts +14 -0
  192. package/dist/components/ui/avatar/AvatarImage.vue.d.ts +4 -0
  193. package/dist/components/ui/avatar/index.d.ts +9 -0
  194. package/dist/components/ui/badge/Badge.vue.d.ts +20 -0
  195. package/dist/components/ui/badge/index.d.ts +7 -0
  196. package/dist/components/ui/button/Button.vue.d.ts +23 -0
  197. package/dist/components/ui/button/index.d.ts +7 -0
  198. package/dist/components/ui/card/Card.vue.d.ts +56 -0
  199. package/dist/components/ui/card/CardContent.vue.d.ts +17 -0
  200. package/dist/components/ui/card/CardDescription.vue.d.ts +17 -0
  201. package/dist/components/ui/card/CardFooter.vue.d.ts +17 -0
  202. package/dist/components/ui/card/CardHeader.vue.d.ts +55 -0
  203. package/dist/components/ui/card/CardTitle.vue.d.ts +17 -0
  204. package/dist/components/ui/card/index.d.ts +6 -0
  205. package/dist/components/ui/carousel/Carousel.vue.d.ts +37 -0
  206. package/dist/components/ui/carousel/CarouselContent.vue.d.ts +16 -0
  207. package/dist/components/ui/carousel/CarouselDots.vue.d.ts +4 -0
  208. package/dist/components/ui/carousel/CarouselItem.vue.d.ts +14 -0
  209. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +22 -0
  210. package/dist/components/ui/carousel/CarouselPager.vue.d.ts +10 -0
  211. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +22 -0
  212. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +51 -0
  213. package/dist/components/ui/carousel/index.d.ts +10 -0
  214. package/dist/components/ui/carousel/interface.d.ts +20 -0
  215. package/dist/components/ui/carousel/useCarousel.d.ts +20 -0
  216. package/dist/components/ui/checkbox/Checkbox.vue.d.ts +22 -0
  217. package/dist/components/ui/checkbox/index.d.ts +1 -0
  218. package/dist/components/ui/collapsible/Collapsible.vue.d.ts +20 -0
  219. package/dist/components/ui/collapsible/CollapsibleContent.vue.d.ts +14 -0
  220. package/dist/components/ui/collapsible/CollapsibleTrigger.vue.d.ts +14 -0
  221. package/dist/components/ui/collapsible/index.d.ts +3 -0
  222. package/dist/components/ui/combobox/Combobox.vue.d.ts +29 -0
  223. package/dist/components/ui/combobox/ComboboxAnchor.vue.d.ts +18 -0
  224. package/dist/components/ui/combobox/ComboboxEmpty.vue.d.ts +18 -0
  225. package/dist/components/ui/combobox/ComboboxGroup.vue.d.ts +19 -0
  226. package/dist/components/ui/combobox/ComboboxInput.vue.d.ts +22 -0
  227. package/dist/components/ui/combobox/ComboboxItem.vue.d.ts +22 -0
  228. package/dist/components/ui/combobox/ComboboxItemIndicator.vue.d.ts +18 -0
  229. package/dist/components/ui/combobox/ComboboxList.vue.d.ts +32 -0
  230. package/dist/components/ui/combobox/ComboboxSeparator.vue.d.ts +18 -0
  231. package/dist/components/ui/combobox/ComboboxViewport.vue.d.ts +18 -0
  232. package/dist/components/ui/combobox/index.d.ts +11 -0
  233. package/dist/components/ui/command/Command.vue.d.ts +35 -0
  234. package/dist/components/ui/command/CommandDialog.vue.d.ts +18 -0
  235. package/dist/components/ui/command/CommandEmpty.vue.d.ts +18 -0
  236. package/dist/components/ui/command/CommandGroup.vue.d.ts +19 -0
  237. package/dist/components/ui/command/CommandInput.vue.d.ts +8 -0
  238. package/dist/components/ui/command/CommandItem.vue.d.ts +22 -0
  239. package/dist/components/ui/command/CommandList.vue.d.ts +30 -0
  240. package/dist/components/ui/command/CommandSeparator.vue.d.ts +18 -0
  241. package/dist/components/ui/command/CommandShortcut.vue.d.ts +17 -0
  242. package/dist/components/ui/command/index.d.ts +9 -0
  243. package/dist/components/ui/context-menu/ContextMenu.vue.d.ts +18 -0
  244. package/dist/components/ui/context-menu/ContextMenuCheckboxItem.vue.d.ts +24 -0
  245. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +30 -0
  246. package/dist/components/ui/context-menu/ContextMenuItem.vue.d.ts +23 -0
  247. package/dist/components/ui/context-menu/ContextMenuLabel.vue.d.ts +19 -0
  248. package/dist/components/ui/context-menu/ContextMenuRadioGroup.vue.d.ts +18 -0
  249. package/dist/components/ui/context-menu/ContextMenuRadioItem.vue.d.ts +22 -0
  250. package/dist/components/ui/context-menu/ContextMenuSeparator.vue.d.ts +8 -0
  251. package/dist/components/ui/context-menu/ContextMenuShortcut.vue.d.ts +17 -0
  252. package/dist/components/ui/context-menu/ContextMenuSubContent.vue.d.ts +34 -0
  253. package/dist/components/ui/context-menu/ContextMenuSubTrigger.vue.d.ts +19 -0
  254. package/dist/components/ui/context-menu/ContextMenuTrigger.vue.d.ts +14 -0
  255. package/dist/components/ui/context-menu/index.d.ts +12 -0
  256. package/dist/components/ui/data-table/DataTable.vue.d.ts +81 -0
  257. package/dist/components/ui/data-table/DataTablePagination.vue.d.ts +13 -0
  258. package/dist/components/ui/data-table/types.d.ts +56 -0
  259. package/dist/components/ui/dialog/Dialog.vue.d.ts +18 -0
  260. package/dist/components/ui/dialog/DialogClose.vue.d.ts +14 -0
  261. package/dist/components/ui/dialog/DialogContent.vue.d.ts +71 -0
  262. package/dist/components/ui/dialog/DialogDescription.vue.d.ts +18 -0
  263. package/dist/components/ui/dialog/DialogFooter.vue.d.ts +17 -0
  264. package/dist/components/ui/dialog/DialogHeader.vue.d.ts +17 -0
  265. package/dist/components/ui/dialog/DialogScrollContent.vue.d.ts +33 -0
  266. package/dist/components/ui/dialog/DialogTitle.vue.d.ts +18 -0
  267. package/dist/components/ui/dialog/DialogTrigger.vue.d.ts +14 -0
  268. package/dist/components/ui/dialog/index.d.ts +9 -0
  269. package/dist/components/ui/drawer/Drawer.vue.d.ts +30 -0
  270. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +32 -0
  271. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +18 -0
  272. package/dist/components/ui/drawer/DrawerFooter.vue.d.ts +17 -0
  273. package/dist/components/ui/drawer/DrawerHeader.vue.d.ts +17 -0
  274. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +8 -0
  275. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +18 -0
  276. package/dist/components/ui/drawer/index.d.ts +8 -0
  277. package/dist/components/ui/dropdown-menu/DropdownMenu.vue.d.ts +18 -0
  278. package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +24 -0
  279. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +32 -0
  280. package/dist/components/ui/dropdown-menu/DropdownMenuGroup.vue.d.ts +14 -0
  281. package/dist/components/ui/dropdown-menu/DropdownMenuItem.vue.d.ts +19 -0
  282. package/dist/components/ui/dropdown-menu/DropdownMenuLabel.vue.d.ts +19 -0
  283. package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue.d.ts +18 -0
  284. package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.vue.d.ts +22 -0
  285. package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.vue.d.ts +8 -0
  286. package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.vue.d.ts +17 -0
  287. package/dist/components/ui/dropdown-menu/DropdownMenuSub.vue.d.ts +18 -0
  288. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +34 -0
  289. package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts +18 -0
  290. package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.vue.d.ts +14 -0
  291. package/dist/components/ui/dropdown-menu/index.d.ts +15 -0
  292. package/dist/components/ui/hover-card/HoverCard.vue.d.ts +18 -0
  293. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +20 -0
  294. package/dist/components/ui/hover-card/HoverCardTrigger.vue.d.ts +14 -0
  295. package/dist/components/ui/hover-card/index.d.ts +3 -0
  296. package/dist/components/ui/index.d.ts +41 -0
  297. package/dist/components/ui/input/Input.vue.d.ts +13 -0
  298. package/dist/components/ui/input/index.d.ts +1 -0
  299. package/dist/components/ui/label/Label.vue.d.ts +18 -0
  300. package/dist/components/ui/label/index.d.ts +1 -0
  301. package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +43 -0
  302. package/dist/components/ui/metric-pill/index.d.ts +1 -0
  303. package/dist/components/ui/multi-select/MultiSelect.vue.d.ts +24 -0
  304. package/dist/components/ui/multi-select/index.d.ts +7 -0
  305. package/dist/components/ui/notification/Notification.vue.d.ts +16 -0
  306. package/dist/components/ui/notification/index.d.ts +1 -0
  307. package/dist/components/ui/number-field/NumberField.vue.d.ts +22 -0
  308. package/dist/components/ui/number-field/NumberFieldContent.vue.d.ts +17 -0
  309. package/dist/components/ui/number-field/NumberFieldDecrement.vue.d.ts +18 -0
  310. package/dist/components/ui/number-field/NumberFieldIncrement.vue.d.ts +18 -0
  311. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +3 -0
  312. package/dist/components/ui/number-field/index.d.ts +5 -0
  313. package/dist/components/ui/popover/Popover.vue.d.ts +18 -0
  314. package/dist/components/ui/popover/PopoverContent.vue.d.ts +39 -0
  315. package/dist/components/ui/popover/PopoverTrigger.vue.d.ts +14 -0
  316. package/dist/components/ui/popover/index.d.ts +3 -0
  317. package/dist/components/ui/progress/Progress.vue.d.ts +111 -0
  318. package/dist/components/ui/progress/index.d.ts +2 -0
  319. package/dist/components/ui/radio-group/RadioGroup.vue.d.ts +22 -0
  320. package/dist/components/ui/radio-group/RadioGroupItem.vue.d.ts +8 -0
  321. package/dist/components/ui/radio-group/index.d.ts +2 -0
  322. package/dist/components/ui/section/Section.vue.d.ts +73 -0
  323. package/dist/components/ui/section/index.d.ts +1 -0
  324. package/dist/components/ui/select/Select.vue.d.ts +21 -0
  325. package/dist/components/ui/select/SelectContent.vue.d.ts +30 -0
  326. package/dist/components/ui/select/SelectGroup.vue.d.ts +18 -0
  327. package/dist/components/ui/select/SelectItem.vue.d.ts +21 -0
  328. package/dist/components/ui/select/SelectLabel.vue.d.ts +18 -0
  329. package/dist/components/ui/select/SelectScrollDownButton.vue.d.ts +18 -0
  330. package/dist/components/ui/select/SelectScrollUpButton.vue.d.ts +18 -0
  331. package/dist/components/ui/select/SelectSeparator.vue.d.ts +8 -0
  332. package/dist/components/ui/select/SelectTrigger.vue.d.ts +22 -0
  333. package/dist/components/ui/select/SelectValue.vue.d.ts +14 -0
  334. package/dist/components/ui/select/index.d.ts +10 -0
  335. package/dist/components/ui/separator/Separator.vue.d.ts +9 -0
  336. package/dist/components/ui/separator/index.d.ts +1 -0
  337. package/dist/components/ui/sheet/Sheet.vue.d.ts +18 -0
  338. package/dist/components/ui/sheet/SheetClose.vue.d.ts +14 -0
  339. package/dist/components/ui/sheet/SheetContent.vue.d.ts +53 -0
  340. package/dist/components/ui/sheet/SheetDescription.vue.d.ts +18 -0
  341. package/dist/components/ui/sheet/SheetFooter.vue.d.ts +17 -0
  342. package/dist/components/ui/sheet/SheetHeader.vue.d.ts +17 -0
  343. package/dist/components/ui/sheet/SheetTitle.vue.d.ts +18 -0
  344. package/dist/components/ui/sheet/SheetTrigger.vue.d.ts +14 -0
  345. package/dist/components/ui/sheet/index.d.ts +13 -0
  346. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +32 -0
  347. package/dist/components/ui/skeleton/index.d.ts +1 -0
  348. package/dist/components/ui/slider/Slider.vue.d.ts +26 -0
  349. package/dist/components/ui/slider/index.d.ts +31 -0
  350. package/dist/components/ui/switch/Switch.vue.d.ts +12 -0
  351. package/dist/components/ui/switch/index.d.ts +1 -0
  352. package/dist/components/ui/table/Table.vue.d.ts +17 -0
  353. package/dist/components/ui/table/TableBody.vue.d.ts +17 -0
  354. package/dist/components/ui/table/TableCaption.vue.d.ts +17 -0
  355. package/dist/components/ui/table/TableCell.vue.d.ts +17 -0
  356. package/dist/components/ui/table/TableEmpty.vue.d.ts +20 -0
  357. package/dist/components/ui/table/TableHead.vue.d.ts +17 -0
  358. package/dist/components/ui/table/TableHeader.vue.d.ts +17 -0
  359. package/dist/components/ui/table/TableRow.vue.d.ts +17 -0
  360. package/dist/components/ui/table/index.d.ts +8 -0
  361. package/dist/components/ui/tabs/Tabs.vue.d.ts +19 -0
  362. package/dist/components/ui/tabs/TabsContent.vue.d.ts +18 -0
  363. package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +8 -0
  364. package/dist/components/ui/tabs/TabsList.vue.d.ts +18 -0
  365. package/dist/components/ui/tabs/TabsTrigger.vue.d.ts +18 -0
  366. package/dist/components/ui/tabs/index.d.ts +5 -0
  367. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +28 -0
  368. package/dist/components/ui/tags-input/TagsInputInput.vue.d.ts +8 -0
  369. package/dist/components/ui/tags-input/TagsInputItem.vue.d.ts +18 -0
  370. package/dist/components/ui/tags-input/TagsInputItemDelete.vue.d.ts +18 -0
  371. package/dist/components/ui/tags-input/TagsInputItemText.vue.d.ts +8 -0
  372. package/dist/components/ui/tags-input/index.d.ts +5 -0
  373. package/dist/components/ui/textarea/Textarea.vue.d.ts +13 -0
  374. package/dist/components/ui/textarea/index.d.ts +1 -0
  375. package/dist/components/ui/toast/Toast.vue.d.ts +104 -0
  376. package/dist/components/ui/toast/ToastAction.vue.d.ts +18 -0
  377. package/dist/components/ui/toast/ToastClose.vue.d.ts +8 -0
  378. package/dist/components/ui/toast/ToastDescription.vue.d.ts +18 -0
  379. package/dist/components/ui/toast/ToastTitle.vue.d.ts +18 -0
  380. package/dist/components/ui/toast/Toaster.vue.d.ts +3 -0
  381. package/dist/components/ui/toast/index.d.ts +8 -0
  382. package/dist/components/ui/toast/use-toast.d.ts +155 -0
  383. package/dist/components/ui/toggle/Toggle.vue.d.ts +29 -0
  384. package/dist/components/ui/toggle/index.d.ts +26 -0
  385. package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +25 -0
  386. package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +21 -0
  387. package/dist/components/ui/toggle-group/index.d.ts +2 -0
  388. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +21 -0
  389. package/dist/components/ui/tooltip/Tooltip.vue.d.ts +18 -0
  390. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +26 -0
  391. package/dist/components/ui/tooltip/TooltipProvider.vue.d.ts +14 -0
  392. package/dist/components/ui/tooltip/TooltipTrigger.vue.d.ts +14 -0
  393. package/dist/components/ui/tooltip/index.d.ts +4 -0
  394. package/dist/composables/dark/index.d.ts +1 -0
  395. package/dist/composables/dark/useGlobalDark.d.ts +7 -0
  396. package/dist/composables/dom/index.d.ts +6 -0
  397. package/dist/composables/dom/useBreakpoint.d.ts +38 -0
  398. package/dist/composables/dom/useClipboard.d.ts +45 -0
  399. package/dist/composables/dom/useResizeObserver.d.ts +50 -0
  400. package/dist/composables/dom/useTokenColor.d.ts +27 -0
  401. package/dist/composables/dom/useTouchGate.d.ts +18 -0
  402. package/dist/composables/dom/useViewportReady.d.ts +87 -0
  403. package/dist/composables/glass/index.d.ts +1 -0
  404. package/dist/composables/glass/useGlassRenderer.d.ts +37 -0
  405. package/dist/composables/glass/webgl/frostShader.d.ts +27 -0
  406. package/dist/composables/index.d.ts +9 -0
  407. package/dist/composables/keyboard/index.d.ts +1 -0
  408. package/dist/composables/keyboard/useKeyboardShortcuts.d.ts +33 -0
  409. package/dist/composables/motion/constants.d.ts +19 -0
  410. package/dist/composables/motion/index.d.ts +14 -0
  411. package/dist/composables/motion/installDarkModeSync.d.ts +1 -0
  412. package/dist/composables/motion/useAnimatedNumber.d.ts +40 -0
  413. package/dist/composables/motion/useAnimatedNumberMap.d.ts +29 -0
  414. package/dist/composables/motion/useIntersectionPause.d.ts +33 -0
  415. package/dist/composables/motion/useNumericTransition.d.ts +32 -0
  416. package/dist/composables/motion/useRAFLoop.d.ts +43 -0
  417. package/dist/composables/motion/useScrollProgress.d.ts +23 -0
  418. package/dist/composables/motion/useSpring.d.ts +66 -0
  419. package/dist/composables/motion/useSpringMount.d.ts +52 -0
  420. package/dist/composables/motion/useSpringOrchestrator.d.ts +15 -0
  421. package/dist/composables/motion/useSpringPress.d.ts +46 -0
  422. package/dist/composables/motion/useStagger.d.ts +50 -0
  423. package/dist/composables/motion/useStaggerReveal.d.ts +22 -0
  424. package/dist/composables/reactive/index.d.ts +2 -0
  425. package/dist/composables/reactive/useInterval.d.ts +24 -0
  426. package/dist/composables/reactive/useTimer.d.ts +24 -0
  427. package/dist/composables/sidebar/index.d.ts +7 -0
  428. package/dist/composables/sidebar/types.d.ts +44 -0
  429. package/dist/composables/sidebar/useScrollTracker.d.ts +12 -0
  430. package/dist/composables/sidebar/useSidebarFollow.d.ts +16 -0
  431. package/dist/composables/sidebar/useSidebarState.d.ts +39 -0
  432. package/dist/composables/sidebar/useTreeIndex.d.ts +37 -0
  433. package/dist/composables/sortable/index.d.ts +1 -0
  434. package/dist/composables/sortable/useSortable.d.ts +149 -0
  435. package/dist/configurator.d.ts +1 -0
  436. package/dist/configurator.js +2 -0
  437. package/dist/confirm-dialog.d.ts +1 -0
  438. package/dist/confirm-dialog.js +69 -0
  439. package/dist/context-menu.d.ts +1 -0
  440. package/dist/context-menu.js +3 -0
  441. package/dist/controls.d.ts +1 -0
  442. package/dist/controls.js +51 -0
  443. package/dist/createLucideIcon-Bn9a1b70.js +43 -0
  444. package/dist/dark.d.ts +1 -0
  445. package/dist/dark.js +2 -0
  446. package/dist/data-table.d.ts +1 -0
  447. package/dist/data-table.js +2 -0
  448. package/dist/dialog.d.ts +1 -0
  449. package/dist/dialog.js +3 -0
  450. package/dist/disco-glyph.d.ts +1 -0
  451. package/dist/disco-glyph.js +2 -0
  452. package/dist/dock.d.ts +1 -0
  453. package/dist/dock.js +548 -0
  454. package/dist/dockContext-BDGSrwsV.js +16 -0
  455. package/dist/dom.d.ts +1 -0
  456. package/dist/dom.js +4 -0
  457. package/dist/dropdown-menu-2K-SGkZU.js +363 -0
  458. package/dist/dropdown-menu.d.ts +1 -0
  459. package/dist/dropdown-menu.js +2 -0
  460. package/dist/expandable-container.d.ts +1 -0
  461. package/dist/expandable-container.js +64 -0
  462. package/dist/fonts/README.md +95 -0
  463. package/dist/fonts/fira-code/OFL.txt +93 -0
  464. package/dist/fonts/fira-code/fira-code-latin-ext.woff2 +0 -0
  465. package/dist/fonts/fira-code/fira-code-latin.woff2 +0 -0
  466. package/dist/fonts/plus-jakarta-sans/OFL.txt +93 -0
  467. package/dist/fonts/plus-jakarta-sans/plus-jakarta-sans-latin-ext.woff2 +0 -0
  468. package/dist/fonts/plus-jakarta-sans/plus-jakarta-sans-latin.woff2 +0 -0
  469. package/dist/forms.d.ts +3 -0
  470. package/dist/forms.js +311 -0
  471. package/dist/glass-carousel.d.ts +1 -0
  472. package/dist/glass-carousel.js +207 -0
  473. package/dist/glass-panel.d.ts +1 -0
  474. package/dist/glass-panel.js +44 -0
  475. package/dist/glass-ui.css +2 -1
  476. package/dist/glass-ui.js +1150 -10018
  477. package/dist/glyph-face.d.ts +1 -0
  478. package/dist/glyph-face.js +3 -0
  479. package/dist/header-ribbon.d.ts +1 -0
  480. package/dist/header-ribbon.js +63 -0
  481. package/dist/hover-card.d.ts +1 -0
  482. package/dist/hover-card.js +2 -0
  483. package/dist/hover-popover.d.ts +1 -0
  484. package/dist/hover-popover.js +2 -0
  485. package/dist/icon-tooltip.d.ts +1 -0
  486. package/dist/icon-tooltip.js +2 -0
  487. package/dist/index.d.ts +49 -6619
  488. package/dist/infinite-scroll.d.ts +2 -0
  489. package/dist/infinite-scroll.js +73 -0
  490. package/dist/instrument-chassis.d.ts +1 -0
  491. package/dist/instrument-chassis.js +2 -0
  492. package/dist/instrument-rail.d.ts +1 -0
  493. package/dist/instrument-rail.js +2 -0
  494. package/dist/keyboard.d.ts +1 -0
  495. package/dist/keyboard.js +2 -0
  496. package/dist/keys-DVkcUktU.js +11 -0
  497. package/dist/label.d.ts +1 -0
  498. package/dist/label.js +2 -0
  499. package/dist/labeled-field.d.ts +1 -0
  500. package/dist/labeled-field.js +194 -0
  501. package/dist/menuItemVariants-B2nDL7zH.js +30 -0
  502. package/dist/metric-badge.d.ts +1 -0
  503. package/dist/metric-badge.js +2 -0
  504. package/dist/metric-cell.d.ts +1 -0
  505. package/dist/metric-cell.js +54 -0
  506. package/dist/metric-stack.d.ts +1 -0
  507. package/dist/metric-stack.js +107 -0
  508. package/dist/minimize-2-LsCJ_eNt.js +38 -0
  509. package/dist/motion.d.ts +1 -0
  510. package/dist/motion.js +286 -0
  511. package/dist/notification.d.ts +1 -0
  512. package/dist/notification.js +2 -0
  513. package/dist/paper-backdrop.d.ts +1 -0
  514. package/dist/paper-backdrop.js +2 -0
  515. package/dist/popover.d.ts +1 -0
  516. package/dist/popover.js +2 -0
  517. package/dist/presets-BMzCDrmR.js +71 -0
  518. package/dist/progress.d.ts +1 -0
  519. package/dist/progress.js +2 -0
  520. package/dist/pulse.d.ts +1 -0
  521. package/dist/pulse.js +54 -0
  522. package/dist/reactive.d.ts +1 -0
  523. package/dist/reactive.js +3 -0
  524. package/dist/responsive-tabs.d.ts +1 -0
  525. package/dist/responsive-tabs.js +89 -0
  526. package/dist/scrolling-text.d.ts +1 -0
  527. package/dist/scrolling-text.js +2 -0
  528. package/dist/search-ocd8tmL9.js +12 -0
  529. package/dist/search.d.ts +1 -0
  530. package/dist/search.js +425 -0
  531. package/dist/select.d.ts +1 -0
  532. package/dist/select.js +4 -0
  533. package/dist/separator.d.ts +1 -0
  534. package/dist/separator.js +2 -0
  535. package/dist/sheet-CLVkb3AO.js +214 -0
  536. package/dist/sheet.d.ts +1 -0
  537. package/dist/sheet.js +2 -0
  538. package/dist/sidebar.d.ts +1 -0
  539. package/dist/sidebar.js +304 -0
  540. package/dist/slider-BQaLYFLh.js +133 -0
  541. package/dist/slider.d.ts +1 -0
  542. package/dist/slider.js +2 -0
  543. package/dist/sortable-list.d.ts +1 -0
  544. package/dist/sortable-list.js +82 -0
  545. package/dist/stacked-icons.d.ts +1 -0
  546. package/dist/stacked-icons.js +83 -0
  547. package/dist/status-dot.d.ts +1 -0
  548. package/dist/status-dot.js +55 -0
  549. package/dist/styles/animations.css +298 -0
  550. package/dist/styles/cards.css +44 -0
  551. package/dist/styles/disco-glyph.css +26 -0
  552. package/dist/styles/dock.css +1085 -0
  553. package/dist/styles/floating-panel.css +34 -0
  554. package/dist/styles/fonts.css +143 -0
  555. package/dist/styles/glass.css +277 -0
  556. package/dist/styles/glyph-face.css +92 -0
  557. package/dist/styles/hover-popover.css +44 -0
  558. package/dist/styles/index.css +96 -0
  559. package/dist/styles/instrument-chassis.css +313 -0
  560. package/dist/styles/instrument-rail.css +128 -0
  561. package/dist/styles/paper.css +68 -0
  562. package/dist/styles/theme.css +358 -0
  563. package/dist/styles/tokens.css +1495 -0
  564. package/dist/styles/transitions.css +245 -0
  565. package/dist/styles/typography.css +553 -0
  566. package/dist/styles/utilities.css +893 -0
  567. package/dist/tabs.d.ts +1 -0
  568. package/dist/tabs.js +206 -0
  569. package/dist/timeline.d.ts +1 -0
  570. package/dist/timeline.js +466 -0
  571. package/dist/toast.d.ts +1 -0
  572. package/dist/toast.js +2 -0
  573. package/dist/toggle-chip.d.ts +1 -0
  574. package/dist/toggle-chip.js +71 -0
  575. package/dist/toggle-group.d.ts +1 -0
  576. package/dist/toggle-group.js +2 -0
  577. package/dist/tokens.d.ts +53 -0
  578. package/dist/tokens.js +16 -0
  579. package/dist/tooltip.d.ts +1 -0
  580. package/dist/tooltip.js +2 -0
  581. package/dist/typewriter.d.ts +1 -0
  582. package/dist/typewriter.js +860 -0
  583. package/dist/useAnimatedNumber-DcvTR9B4.js +51 -0
  584. package/dist/useBreakpoint-BHlX-MhR.js +134 -0
  585. package/dist/useConfiguratorState-BlaevW0S.js +266 -0
  586. package/dist/useGlassRenderer-DMDdMH55.js +69 -0
  587. package/dist/useGlobalDark-PMiP5Jku.js +24 -0
  588. package/dist/useIntersectionPause-CXYfYg_C.js +39 -0
  589. package/dist/useInterval-COlTCeVa.js +18 -0
  590. package/dist/useKeyboardShortcuts-B1ev1YEC.js +99 -0
  591. package/dist/useResizeObserver-F4aRR4Cj.js +44 -0
  592. package/dist/useSortable-Ck0rBJ4g.js +175 -0
  593. package/dist/useSpringMount-BTRBNzXP.js +113 -0
  594. package/dist/useTimer-lp5NlH4w.js +20 -0
  595. package/dist/useTouchGate-BhhEMlwJ.js +84 -0
  596. package/dist/utils/cn.d.ts +27 -0
  597. package/dist/x-cdWAmO-q.js +10 -0
  598. package/package.json +514 -26
  599. package/src/fonts/README.md +95 -0
  600. package/src/fonts/fira-code/OFL.txt +93 -0
  601. package/src/fonts/fira-code/fira-code-latin-ext.woff2 +0 -0
  602. package/src/fonts/fira-code/fira-code-latin.woff2 +0 -0
  603. package/src/fonts/plus-jakarta-sans/OFL.txt +93 -0
  604. package/src/fonts/plus-jakarta-sans/plus-jakarta-sans-latin-ext.woff2 +0 -0
  605. package/src/fonts/plus-jakarta-sans/plus-jakarta-sans-latin.woff2 +0 -0
  606. package/src/styles/animations.css +172 -107
  607. package/src/styles/cards.css +30 -52
  608. package/src/styles/disco-glyph.css +26 -0
  609. package/src/styles/dock.css +991 -127
  610. package/src/styles/floating-panel.css +22 -37
  611. package/src/styles/fonts.css +143 -0
  612. package/src/styles/glass.css +131 -120
  613. package/src/styles/glyph-face.css +92 -0
  614. package/src/styles/hover-popover.css +44 -0
  615. package/src/styles/index.css +73 -3
  616. package/src/styles/instrument-chassis.css +313 -0
  617. package/src/styles/instrument-rail.css +128 -0
  618. package/src/styles/paper.css +68 -0
  619. package/src/styles/theme.css +292 -72
  620. package/src/styles/tokens.css +1345 -183
  621. package/src/styles/transitions.css +227 -208
  622. package/src/styles/typography.css +498 -222
  623. package/src/styles/utilities.css +629 -433
  624. package/src/components/custom/aurora/Aurora.vue +0 -34
  625. package/src/components/custom/aurora/composables/color.ts +0 -122
  626. package/src/components/custom/aurora/composables/useAurora.ts +0 -355
  627. package/src/components/custom/aurora/index.ts +0 -8
  628. package/src/components/custom/confirm-dialog/ConfirmDialog.vue +0 -88
  629. package/src/components/custom/controls/DarkModeToggle.vue +0 -96
  630. package/src/components/custom/dock/DockLayerGroup.vue +0 -21
  631. package/src/components/custom/dock/DockPopover.vue +0 -263
  632. package/src/components/custom/dock/GlassDock.vue +0 -276
  633. package/src/components/custom/dock/composables/index.ts +0 -16
  634. package/src/components/custom/dock/composables/isTeleportedTarget.ts +0 -19
  635. package/src/components/custom/dock/composables/useDockActionBar.ts +0 -33
  636. package/src/components/custom/dock/composables/useDockState.ts +0 -301
  637. package/src/components/custom/dock/composables/useDockTransition.ts +0 -146
  638. package/src/components/custom/dock/composables/useLayerTransition.ts +0 -135
  639. package/src/components/custom/dock/composables/usePopupMutex.ts +0 -83
  640. package/src/components/custom/dock/index.ts +0 -9
  641. package/src/components/custom/expandable-container/ExpandableContainer.vue +0 -64
  642. package/src/components/custom/glass-panel/GlassPanel.vue +0 -98
  643. package/src/components/custom/glass-panel/index.ts +0 -2
  644. package/src/components/custom/icon-tooltip/IconTooltip.vue +0 -20
  645. package/src/components/custom/index.ts +0 -15
  646. package/src/components/custom/infinite-scroll/InfiniteScroll.vue +0 -55
  647. package/src/components/custom/infinite-scroll/composables/types.ts +0 -23
  648. package/src/components/custom/infinite-scroll/composables/useInfiniteScroll.ts +0 -73
  649. package/src/components/custom/labeled-field/LabeledInput.vue +0 -29
  650. package/src/components/custom/labeled-field/LabeledSelect.vue +0 -59
  651. package/src/components/custom/labeled-field/LabeledSlider.vue +0 -32
  652. package/src/components/custom/labeled-field/LabeledSwitch.vue +0 -27
  653. package/src/components/custom/labeled-field/index.ts +0 -4
  654. package/src/components/custom/metaballs/MetaballCanvas.vue +0 -23
  655. package/src/components/custom/metaballs/index.ts +0 -4
  656. package/src/components/custom/metaballs/shaders.ts +0 -63
  657. package/src/components/custom/metaballs/types.ts +0 -29
  658. package/src/components/custom/metaballs/useMetaballs.ts +0 -252
  659. package/src/components/custom/search/FuzzySearch.vue +0 -589
  660. package/src/components/custom/search/SearchBar.vue +0 -44
  661. package/src/components/custom/search/composables/fuzzySearchIndex.ts +0 -224
  662. package/src/components/custom/search/composables/types.ts +0 -34
  663. package/src/components/custom/search/composables/useFuzzySearch.ts +0 -115
  664. package/src/components/custom/sidebar/ProgressiveSidebar.vue +0 -256
  665. package/src/components/custom/sidebar/composables/index.ts +0 -6
  666. package/src/components/custom/sidebar/composables/useScrollTracker.ts +0 -242
  667. package/src/components/custom/sidebar/composables/useSidebarFollow.ts +0 -247
  668. package/src/components/custom/sidebar/composables/useSidebarState.ts +0 -72
  669. package/src/components/custom/sidebar/composables/useTreeIndex.ts +0 -152
  670. package/src/components/custom/sidebar/index.ts +0 -15
  671. package/src/components/custom/sidebar/types.ts +0 -50
  672. package/src/components/custom/tabs/BouncyTabs.vue +0 -39
  673. package/src/components/custom/tabs/BouncyToggle.vue +0 -352
  674. package/src/components/custom/tabs/UnderlineTabs.vue +0 -115
  675. package/src/components/custom/timeline/GlassTimeline.vue +0 -174
  676. package/src/components/custom/timeline/index.ts +0 -1
  677. package/src/components/custom/typewriter/TypewriterText.vue +0 -239
  678. package/src/components/custom/typewriter/composables/useTypewriter.ts +0 -413
  679. package/src/components/custom/typewriter/types.ts +0 -159
  680. package/src/components/custom/typewriter/utils/keyboard.ts +0 -213
  681. package/src/components/custom/typewriter/utils/pausePatterns.ts +0 -55
  682. package/src/components/custom/typewriter/utils/timing.ts +0 -104
  683. package/src/components/custom/typewriter/utils/typoStateMachine.ts +0 -197
  684. package/src/components/index.ts +0 -2
  685. package/src/components/ui/accordion/Accordion.vue +0 -19
  686. package/src/components/ui/accordion/AccordionContent.vue +0 -24
  687. package/src/components/ui/accordion/AccordionItem.vue +0 -24
  688. package/src/components/ui/accordion/AccordionTrigger.vue +0 -39
  689. package/src/components/ui/accordion/index.ts +0 -4
  690. package/src/components/ui/alert/Alert.vue +0 -20
  691. package/src/components/ui/alert/AlertDescription.vue +0 -17
  692. package/src/components/ui/alert/AlertTitle.vue +0 -17
  693. package/src/components/ui/alert/index.ts +0 -23
  694. package/src/components/ui/avatar/Avatar.vue +0 -21
  695. package/src/components/ui/avatar/AvatarFallback.vue +0 -11
  696. package/src/components/ui/avatar/AvatarImage.vue +0 -9
  697. package/src/components/ui/avatar/index.ts +0 -24
  698. package/src/components/ui/badge/Badge.vue +0 -16
  699. package/src/components/ui/badge/index.ts +0 -25
  700. package/src/components/ui/button/Button.vue +0 -26
  701. package/src/components/ui/button/index.ts +0 -43
  702. package/src/components/ui/card/Card.vue +0 -28
  703. package/src/components/ui/card/CardContent.vue +0 -14
  704. package/src/components/ui/card/CardDescription.vue +0 -14
  705. package/src/components/ui/card/CardFooter.vue +0 -14
  706. package/src/components/ui/card/CardHeader.vue +0 -14
  707. package/src/components/ui/card/CardTitle.vue +0 -21
  708. package/src/components/ui/card/index.ts +0 -6
  709. package/src/components/ui/carousel/Carousel.vue +0 -53
  710. package/src/components/ui/carousel/CarouselContent.vue +0 -35
  711. package/src/components/ui/carousel/CarouselItem.vue +0 -24
  712. package/src/components/ui/carousel/CarouselNext.vue +0 -40
  713. package/src/components/ui/carousel/CarouselPrevious.vue +0 -40
  714. package/src/components/ui/carousel/index.ts +0 -10
  715. package/src/components/ui/carousel/interface.ts +0 -26
  716. package/src/components/ui/carousel/useCarousel.ts +0 -56
  717. package/src/components/ui/checkbox/Checkbox.vue +0 -33
  718. package/src/components/ui/checkbox/index.ts +0 -1
  719. package/src/components/ui/collapsible/Collapsible.vue +0 -15
  720. package/src/components/ui/collapsible/CollapsibleContent.vue +0 -11
  721. package/src/components/ui/collapsible/CollapsibleTrigger.vue +0 -11
  722. package/src/components/ui/collapsible/index.ts +0 -3
  723. package/src/components/ui/combobox/Combobox.vue +0 -17
  724. package/src/components/ui/combobox/ComboboxAnchor.vue +0 -23
  725. package/src/components/ui/combobox/ComboboxEmpty.vue +0 -21
  726. package/src/components/ui/combobox/ComboboxGroup.vue +0 -27
  727. package/src/components/ui/combobox/ComboboxInput.vue +0 -41
  728. package/src/components/ui/combobox/ComboboxItem.vue +0 -24
  729. package/src/components/ui/combobox/ComboboxItemIndicator.vue +0 -23
  730. package/src/components/ui/combobox/ComboboxList.vue +0 -29
  731. package/src/components/ui/combobox/ComboboxSeparator.vue +0 -21
  732. package/src/components/ui/combobox/ComboboxViewport.vue +0 -23
  733. package/src/components/ui/combobox/index.ts +0 -12
  734. package/src/components/ui/command/Command.vue +0 -30
  735. package/src/components/ui/command/CommandDialog.vue +0 -21
  736. package/src/components/ui/command/CommandEmpty.vue +0 -20
  737. package/src/components/ui/command/CommandGroup.vue +0 -29
  738. package/src/components/ui/command/CommandInput.vue +0 -33
  739. package/src/components/ui/command/CommandItem.vue +0 -26
  740. package/src/components/ui/command/CommandList.vue +0 -27
  741. package/src/components/ui/command/CommandSeparator.vue +0 -23
  742. package/src/components/ui/command/CommandShortcut.vue +0 -14
  743. package/src/components/ui/command/index.ts +0 -9
  744. package/src/components/ui/context-menu/ContextMenu.vue +0 -15
  745. package/src/components/ui/context-menu/ContextMenuCheckboxItem.vue +0 -40
  746. package/src/components/ui/context-menu/ContextMenuContent.vue +0 -36
  747. package/src/components/ui/context-menu/ContextMenuGroup.vue +0 -11
  748. package/src/components/ui/context-menu/ContextMenuItem.vue +0 -34
  749. package/src/components/ui/context-menu/ContextMenuLabel.vue +0 -25
  750. package/src/components/ui/context-menu/ContextMenuPortal.vue +0 -11
  751. package/src/components/ui/context-menu/ContextMenuRadioGroup.vue +0 -19
  752. package/src/components/ui/context-menu/ContextMenuRadioItem.vue +0 -40
  753. package/src/components/ui/context-menu/ContextMenuSeparator.vue +0 -20
  754. package/src/components/ui/context-menu/ContextMenuShortcut.vue +0 -14
  755. package/src/components/ui/context-menu/ContextMenuSub.vue +0 -19
  756. package/src/components/ui/context-menu/ContextMenuSubContent.vue +0 -35
  757. package/src/components/ui/context-menu/ContextMenuSubTrigger.vue +0 -34
  758. package/src/components/ui/context-menu/ContextMenuTrigger.vue +0 -13
  759. package/src/components/ui/context-menu/index.ts +0 -14
  760. package/src/components/ui/data-table/DataTable.vue +0 -167
  761. package/src/components/ui/data-table/DataTablePagination.vue +0 -112
  762. package/src/components/ui/data-table/types.ts +0 -48
  763. package/src/components/ui/dialog/Dialog.vue +0 -14
  764. package/src/components/ui/dialog/DialogClose.vue +0 -11
  765. package/src/components/ui/dialog/DialogContent.vue +0 -61
  766. package/src/components/ui/dialog/DialogDescription.vue +0 -24
  767. package/src/components/ui/dialog/DialogFooter.vue +0 -19
  768. package/src/components/ui/dialog/DialogHeader.vue +0 -16
  769. package/src/components/ui/dialog/DialogScrollContent.vue +0 -65
  770. package/src/components/ui/dialog/DialogTitle.vue +0 -29
  771. package/src/components/ui/dialog/DialogTrigger.vue +0 -11
  772. package/src/components/ui/dialog/index.ts +0 -9
  773. package/src/components/ui/drawer/Drawer.vue +0 -19
  774. package/src/components/ui/drawer/DrawerContent.vue +0 -28
  775. package/src/components/ui/drawer/DrawerDescription.vue +0 -20
  776. package/src/components/ui/drawer/DrawerFooter.vue +0 -14
  777. package/src/components/ui/drawer/DrawerHeader.vue +0 -14
  778. package/src/components/ui/drawer/DrawerOverlay.vue +0 -18
  779. package/src/components/ui/drawer/DrawerTitle.vue +0 -20
  780. package/src/components/ui/drawer/index.ts +0 -8
  781. package/src/components/ui/dropdown-menu/DropdownMenu.vue +0 -14
  782. package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +0 -40
  783. package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +0 -44
  784. package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +0 -11
  785. package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +0 -28
  786. package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +0 -24
  787. package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +0 -19
  788. package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +0 -40
  789. package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +0 -22
  790. package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +0 -14
  791. package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +0 -19
  792. package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +0 -36
  793. package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +0 -33
  794. package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +0 -13
  795. package/src/components/ui/dropdown-menu/index.ts +0 -16
  796. package/src/components/ui/hover-card/HoverCard.vue +0 -14
  797. package/src/components/ui/hover-card/HoverCardContent.vue +0 -41
  798. package/src/components/ui/hover-card/HoverCardTrigger.vue +0 -11
  799. package/src/components/ui/hover-card/index.ts +0 -3
  800. package/src/components/ui/index.ts +0 -41
  801. package/src/components/ui/input/Input.vue +0 -24
  802. package/src/components/ui/input/index.ts +0 -1
  803. package/src/components/ui/label/Label.vue +0 -27
  804. package/src/components/ui/label/index.ts +0 -1
  805. package/src/components/ui/multi-select/MultiSelect.vue +0 -141
  806. package/src/components/ui/multi-select/index.ts +0 -7
  807. package/src/components/ui/notification/Notification.vue +0 -85
  808. package/src/components/ui/notification/index.ts +0 -1
  809. package/src/components/ui/number-field/NumberField.vue +0 -23
  810. package/src/components/ui/number-field/NumberFieldContent.vue +0 -14
  811. package/src/components/ui/number-field/NumberFieldDecrement.vue +0 -25
  812. package/src/components/ui/number-field/NumberFieldIncrement.vue +0 -25
  813. package/src/components/ui/number-field/NumberFieldInput.vue +0 -8
  814. package/src/components/ui/number-field/index.ts +0 -5
  815. package/src/components/ui/popover/Popover.vue +0 -15
  816. package/src/components/ui/popover/PopoverContent.vue +0 -61
  817. package/src/components/ui/popover/PopoverTrigger.vue +0 -11
  818. package/src/components/ui/popover/index.ts +0 -3
  819. package/src/components/ui/progress/Progress.vue +0 -39
  820. package/src/components/ui/progress/index.ts +0 -1
  821. package/src/components/ui/radio-group/RadioGroup.vue +0 -25
  822. package/src/components/ui/radio-group/RadioGroupItem.vue +0 -39
  823. package/src/components/ui/radio-group/index.ts +0 -2
  824. package/src/components/ui/scroll-area/ScrollArea.vue +0 -29
  825. package/src/components/ui/scroll-area/ScrollBar.vue +0 -30
  826. package/src/components/ui/scroll-area/index.ts +0 -2
  827. package/src/components/ui/scroll-pane/ScrollPane.vue +0 -25
  828. package/src/components/ui/scroll-pane/ScrollPaneHeader.vue +0 -75
  829. package/src/components/ui/scroll-pane/index.ts +0 -2
  830. package/src/components/ui/select/Select.vue +0 -15
  831. package/src/components/ui/select/SelectContent.vue +0 -57
  832. package/src/components/ui/select/SelectGroup.vue +0 -19
  833. package/src/components/ui/select/SelectItem.vue +0 -47
  834. package/src/components/ui/select/SelectItemText.vue +0 -11
  835. package/src/components/ui/select/SelectLabel.vue +0 -13
  836. package/src/components/ui/select/SelectScrollDownButton.vue +0 -24
  837. package/src/components/ui/select/SelectScrollUpButton.vue +0 -24
  838. package/src/components/ui/select/SelectSeparator.vue +0 -17
  839. package/src/components/ui/select/SelectTrigger.vue +0 -45
  840. package/src/components/ui/select/SelectValue.vue +0 -11
  841. package/src/components/ui/select/index.ts +0 -11
  842. package/src/components/ui/separator/Separator.vue +0 -35
  843. package/src/components/ui/separator/index.ts +0 -1
  844. package/src/components/ui/sheet/Sheet.vue +0 -14
  845. package/src/components/ui/sheet/SheetClose.vue +0 -11
  846. package/src/components/ui/sheet/SheetContent.vue +0 -56
  847. package/src/components/ui/sheet/SheetDescription.vue +0 -22
  848. package/src/components/ui/sheet/SheetFooter.vue +0 -19
  849. package/src/components/ui/sheet/SheetHeader.vue +0 -16
  850. package/src/components/ui/sheet/SheetTitle.vue +0 -22
  851. package/src/components/ui/sheet/SheetTrigger.vue +0 -11
  852. package/src/components/ui/sheet/index.ts +0 -31
  853. package/src/components/ui/skeleton/Skeleton.vue +0 -14
  854. package/src/components/ui/skeleton/index.ts +0 -1
  855. package/src/components/ui/slider/Slider.vue +0 -66
  856. package/src/components/ui/slider/index.ts +0 -1
  857. package/src/components/ui/switch/Switch.vue +0 -37
  858. package/src/components/ui/switch/index.ts +0 -1
  859. package/src/components/ui/table/Table.vue +0 -16
  860. package/src/components/ui/table/TableBody.vue +0 -14
  861. package/src/components/ui/table/TableCaption.vue +0 -14
  862. package/src/components/ui/table/TableCell.vue +0 -14
  863. package/src/components/ui/table/TableEmpty.vue +0 -39
  864. package/src/components/ui/table/TableFooter.vue +0 -16
  865. package/src/components/ui/table/TableHead.vue +0 -21
  866. package/src/components/ui/table/TableHeader.vue +0 -14
  867. package/src/components/ui/table/TableRow.vue +0 -21
  868. package/src/components/ui/table/index.ts +0 -9
  869. package/src/components/ui/tabs/Tabs.vue +0 -15
  870. package/src/components/ui/tabs/TabsContent.vue +0 -22
  871. package/src/components/ui/tabs/TabsIndicator.vue +0 -22
  872. package/src/components/ui/tabs/TabsList.vue +0 -25
  873. package/src/components/ui/tabs/TabsTrigger.vue +0 -29
  874. package/src/components/ui/tabs/index.ts +0 -5
  875. package/src/components/ui/tags-input/TagsInput.vue +0 -22
  876. package/src/components/ui/tags-input/TagsInputInput.vue +0 -19
  877. package/src/components/ui/tags-input/TagsInputItem.vue +0 -22
  878. package/src/components/ui/tags-input/TagsInputItemDelete.vue +0 -24
  879. package/src/components/ui/tags-input/TagsInputItemText.vue +0 -19
  880. package/src/components/ui/tags-input/index.ts +0 -5
  881. package/src/components/ui/textarea/Textarea.vue +0 -24
  882. package/src/components/ui/textarea/index.ts +0 -1
  883. package/src/components/ui/toast/Toast.vue +0 -57
  884. package/src/components/ui/toast/ToastAction.vue +0 -30
  885. package/src/components/ui/toast/ToastClose.vue +0 -31
  886. package/src/components/ui/toast/ToastDescription.vue +0 -25
  887. package/src/components/ui/toast/ToastTitle.vue +0 -25
  888. package/src/components/ui/toast/Toaster.vue +0 -31
  889. package/src/components/ui/toast/index.ts +0 -8
  890. package/src/components/ui/toast/use-toast.ts +0 -136
  891. package/src/components/ui/toggle/Toggle.vue +0 -35
  892. package/src/components/ui/toggle/index.ts +0 -27
  893. package/src/components/ui/toggle-group/ToggleGroup.vue +0 -34
  894. package/src/components/ui/toggle-group/ToggleGroupItem.vue +0 -35
  895. package/src/components/ui/toggle-group/index.ts +0 -2
  896. package/src/components/ui/tooltip/Tooltip.vue +0 -14
  897. package/src/components/ui/tooltip/TooltipContent.vue +0 -31
  898. package/src/components/ui/tooltip/TooltipProvider.vue +0 -11
  899. package/src/components/ui/tooltip/TooltipTrigger.vue +0 -11
  900. package/src/components/ui/tooltip/index.ts +0 -4
  901. package/src/composables/glass/index.ts +0 -8
  902. package/src/composables/glass/useGlassRenderer.ts +0 -252
  903. package/src/composables/glass/webgl/frostShader.ts +0 -221
  904. package/src/composables/glass/webgpu/glassShader.wgsl +0 -173
  905. package/src/composables/index.ts +0 -32
  906. package/src/composables/infinite-scroll/index.ts +0 -2
  907. package/src/composables/infinite-scroll/types.ts +0 -25
  908. package/src/composables/infinite-scroll/useInfiniteScroll.ts +0 -101
  909. package/src/composables/interaction/index.ts +0 -5
  910. package/src/composables/interaction/useHeightTransition.ts +0 -82
  911. package/src/composables/interaction/useHoverPopover.ts +0 -64
  912. package/src/composables/interaction/useHoverToggle.ts +0 -103
  913. package/src/composables/interaction/useLeaveTimer.ts +0 -17
  914. package/src/composables/interaction/useTouchGate.ts +0 -207
  915. package/src/composables/pagination/index.ts +0 -2
  916. package/src/composables/pagination/useOffsetPagination.ts +0 -70
  917. package/src/composables/prng.ts +0 -32
  918. package/src/composables/useCharSplit.ts +0 -31
  919. package/src/composables/useClipboard.ts +0 -46
  920. package/src/composables/useGlobalDark.ts +0 -61
  921. package/src/composables/useKeyboardShortcuts.ts +0 -205
  922. package/src/composables/useWatercolorBlob.ts +0 -136
  923. package/src/composables/virtual/index.ts +0 -22
  924. package/src/composables/virtual/useVirtualSectionWindow.ts +0 -338
  925. package/src/composables/virtual/useWindowedStore.ts +0 -86
  926. package/src/composables/virtual/virtualSectionLayout.ts +0 -212
  927. package/src/index.ts +0 -9
  928. package/src/styles/scroll-pane.css +0 -10
  929. package/src/utils/cn.ts +0 -6
  930. /package/{src/components/custom/confirm-dialog/index.ts → dist/components/custom/confirm-dialog/index.d.ts} +0 -0
  931. /package/{src/components/custom/controls/index.ts → dist/components/custom/controls/index.d.ts} +0 -0
  932. /package/{src/components/custom/expandable-container/index.ts → dist/components/custom/expandable-container/index.d.ts} +0 -0
  933. /package/{src/components/custom/icon-tooltip/index.ts → dist/components/custom/icon-tooltip/index.d.ts} +0 -0
  934. /package/{src/components/custom/infinite-scroll/composables/index.ts → dist/components/custom/infinite-scroll/composables/index.d.ts} +0 -0
  935. /package/{src/components/custom/infinite-scroll/index.ts → dist/components/custom/infinite-scroll/index.d.ts} +0 -0
  936. /package/{src/components/custom/search/composables/index.ts → dist/components/custom/search/composables/index.d.ts} +0 -0
  937. /package/{src/components/custom/search/index.ts → dist/components/custom/search/index.d.ts} +0 -0
  938. /package/{src/components/custom/tabs/index.ts → dist/components/custom/tabs/index.d.ts} +0 -0
  939. /package/{src/components/custom/typewriter/composables/index.ts → dist/components/custom/typewriter/composables/index.d.ts} +0 -0
  940. /package/{src/components/custom/typewriter/index.ts → dist/components/custom/typewriter/index.d.ts} +0 -0
  941. /package/{src/components/ui/data-table/index.ts → dist/components/ui/data-table/index.d.ts} +0 -0
  942. /package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -0
@@ -0,0 +1,1085 @@
1
+ /* Dock primitives exported through @mkbabb/glass-ui/styles.
2
+ *
3
+ * This file is the style authority for the dock component family. The Vue
4
+ * SFCs own structure and runtime behavior; selectors, motion, glass, and
5
+ * layering tokens live here so consumers have one public CSS path.
6
+ */
7
+
8
+ @layer components {
9
+ :where(
10
+ .glass-dock,
11
+ .dock-layer-stack,
12
+ .dock-layer-item-host,
13
+ .dock-layer-tab,
14
+ .dock-icon-button,
15
+ .dark-mode-toggle-button,
16
+ .dock-tab-button,
17
+ .dock-select-trigger,
18
+ .dock-dropdown-trigger
19
+ ) {
20
+ --dock-motion-fast: var(--duration-fast) var(--ease-standard);
21
+ --dock-motion-standard: var(--duration-normal) var(--ease-standard);
22
+ --dock-motion-resize: var(--duration-normal) var(--spring-snappy);
23
+ }
24
+
25
+ .glass-dock {
26
+ --dock-surface-blur: var(--glass-blur-dock, var(--glass-blur-wash));
27
+ /* J.W3.C — vertical-rail max-block + horizontal max-inline caps
28
+ live as semantic tokens (defaults in `tokens.css`). When
29
+ content exceeds the cap, the appropriate axis container
30
+ scrolls with a mask-fade. Consumers override per-instance by
31
+ setting `--dock-max-block-size` / `--dock-max-inline-size`
32
+ on a `.glass-dock` directly. */
33
+ --dock-wrap-max-width: calc(100vw - var(--dock-viewport-inline-gutter, 1rem));
34
+ --dock-separator-height: calc(var(--dock-h, var(--size-icon-btn)) * 0.5);
35
+ --dock-collapsed-hover-scale: var(--scale-hover-dock);
36
+ position: relative;
37
+ display: inline-flex;
38
+ align-items: center;
39
+ border-radius: var(--radius-dock);
40
+ white-space: nowrap;
41
+ max-inline-size: var(--dock-max-inline-size);
42
+ padding: var(--dock-padding-block, 0.375rem) var(--dock-padding-inline, 0.5rem);
43
+ background: var(--glass-bg-dock, var(--glass-bg-resting));
44
+ backdrop-filter: var(--dock-surface-blur);
45
+ border: 1.5px solid var(--glass-border-dock, var(--glass-border-resting));
46
+ box-shadow: var(--shadow-dock-override, var(--shadow-dock));
47
+ }
48
+
49
+ /* T.W2.T1 — `overflow: hidden` is the default shell, but the
50
+ container-query host path (`<GlassDock containerName="…">`) must
51
+ allow descendants to wrap and report intrinsic widths past the
52
+ padding box. Inline-style on the SFC sets `overflow: visible` for
53
+ that path; this rule grants the default clip to every dock that
54
+ is NOT a container-query host. The `data-container-name` attribute
55
+ is the structural marker (set by the SFC when `containerName` is
56
+ passed). */
57
+ .glass-dock:not([data-container-name]) {
58
+ overflow: hidden;
59
+ }
60
+
61
+ .glass-dock[data-density="compact"] {
62
+ --dock-padding-block: var(--dock-density-compact-padding-block, 0.25rem);
63
+ --dock-padding-inline: var(--dock-density-compact-padding-inline, 0.375rem);
64
+ --dock-control-size: var(--dock-density-compact-control-size, 2rem);
65
+ --dock-layer-height: var(--dock-density-compact-layer-height, 2rem);
66
+ --dock-layer-gap: var(--dock-density-compact-gap, 0.25rem);
67
+ --dock-trigger-padding-block: var(--dock-density-compact-trigger-padding-block, 0.1875rem);
68
+ --dock-trigger-padding-inline: var(--dock-density-compact-trigger-padding-inline, 0.4375rem);
69
+ --dock-tab-padding-block: var(--dock-density-compact-tab-padding-block, 0.3125rem);
70
+ --dock-tab-padding-inline: var(--dock-density-compact-tab-padding-inline, 0.625rem);
71
+ }
72
+
73
+ /* Comfortable density — the GlassDock default. Sits between compact
74
+ and spacious. */
75
+ .glass-dock[data-density="comfortable"] {
76
+ --dock-padding-block: var(--dock-density-comfortable-padding-block, 0.375rem);
77
+ --dock-padding-inline: var(--dock-density-comfortable-padding-inline, 0.5rem);
78
+ --dock-control-size: var(--dock-density-comfortable-control-size, 2.5rem);
79
+ --dock-layer-height: var(--dock-density-comfortable-layer-height, 2.5rem);
80
+ --dock-layer-gap: var(--dock-density-comfortable-gap, 0.375rem);
81
+ --dock-trigger-padding-block: var(--dock-density-comfortable-trigger-padding-block, 0.25rem);
82
+ --dock-trigger-padding-inline: var(--dock-density-comfortable-trigger-padding-inline, 0.5rem);
83
+ --dock-tab-padding-block: var(--dock-density-comfortable-tab-padding-block, 0.4375rem);
84
+ --dock-tab-padding-inline: var(--dock-density-comfortable-tab-padding-inline, 0.75rem);
85
+ }
86
+
87
+ .glass-dock[data-density="spacious"] {
88
+ --dock-padding-block: var(--dock-density-spacious-padding-block, 0.5rem);
89
+ --dock-padding-inline: var(--dock-density-spacious-padding-inline, 0.75rem);
90
+ --dock-control-size: var(--dock-density-spacious-control-size, 2.75rem);
91
+ --dock-layer-height: var(--dock-density-spacious-layer-height, 2.75rem);
92
+ --dock-layer-gap: var(--dock-density-spacious-gap, 0.5rem);
93
+ --dock-trigger-padding-block: var(--dock-density-spacious-trigger-padding-block, 0.375rem);
94
+ --dock-trigger-padding-inline: var(--dock-density-spacious-trigger-padding-inline, 0.625rem);
95
+ --dock-tab-padding-block: var(--dock-density-spacious-tab-padding-block, 0.5rem);
96
+ --dock-tab-padding-inline: var(--dock-density-spacious-tab-padding-inline, 0.875rem);
97
+ }
98
+
99
+ /* Audacious density — typography-forward chrome where the dock reads as
100
+ a primary surface, not a tray. Tab buttons set their own min-height so
101
+ consumer-bumped fonts no longer drift the button height — the
102
+ `--dock-tab-min-height` token reserves the row regardless of glyph rise. */
103
+ .glass-dock[data-density="audacious"] {
104
+ --dock-padding-block: var(--dock-density-audacious-padding-block, 0.5rem);
105
+ --dock-padding-inline: var(--dock-density-audacious-padding-inline, 0.875rem);
106
+ --dock-control-size: var(--dock-density-audacious-control-size, 4rem);
107
+ --dock-layer-height: var(--dock-density-audacious-layer-height, 4rem);
108
+ --dock-layer-gap: var(--dock-density-audacious-gap, 0.875rem);
109
+ --dock-trigger-padding-block: var(--dock-density-audacious-trigger-padding-block, 0.625rem);
110
+ --dock-trigger-padding-inline: var(--dock-density-audacious-trigger-padding-inline, 1rem);
111
+ --dock-tab-padding-block: var(--dock-density-audacious-tab-padding-block, 0.5rem);
112
+ --dock-tab-padding-inline: var(--dock-density-audacious-tab-padding-inline, 1.5rem);
113
+ --dock-tab-min-height: var(--dock-density-audacious-tab-min-height, 3.5rem);
114
+ }
115
+
116
+ /* Dock tab-button density-keyed height (R3-spec / audit-E P0-3;
117
+ consolidated into dock.css at Q.W3 Lane A — formerly split into
118
+ utilities.css and surviving only by import-cascade accident).
119
+ The four bare DockIconButton consumers solve their density-keyed
120
+ height via `--dock-control-size` (set per density tier above);
121
+ DockTabButton's analogous `--dock-tab-h` knob lives in the same
122
+ density rungs so the tab-button row no longer free-floats to the
123
+ glyph + padding sum. Compact density lands at 32px to match the
124
+ deployed product's bottom-dock height. The `.dock-tab-button` rule
125
+ (further down this file) consumes `--dock-tab-h`. */
126
+ .glass-dock[data-density="compact"] {
127
+ --dock-tab-h-compact: 32px;
128
+ --dock-tab-h: var(--dock-tab-h-compact);
129
+ }
130
+ .glass-dock[data-density="comfortable"] {
131
+ --dock-tab-h-comfortable: 38px;
132
+ --dock-tab-h: var(--dock-tab-h-comfortable);
133
+ }
134
+ .glass-dock[data-density="spacious"] {
135
+ --dock-tab-h-spacious: 44px;
136
+ --dock-tab-h: var(--dock-tab-h-spacious);
137
+ }
138
+ .glass-dock[data-density="audacious"] {
139
+ --dock-tab-h-audacious: var(--dock-density-audacious-tab-min-height, 3.5rem);
140
+ --dock-tab-h: var(--dock-tab-h-audacious);
141
+ }
142
+
143
+ /* Density-audacious mobile carve (R3-spec / audit-D D-Rec-5;
144
+ consolidated into dock.css at Q.W3 Lane A). At narrow viewports
145
+ the audacious-dock label glyphs compress so the audacious chrome
146
+ doesn't overflow its host: `≤14px at <480` and `15px at 480–719`.
147
+ Consumer dock label spans bind `font-size: var(--dock-label-size)`
148
+ (typography.css `.dock-label` recipe is the canonical consumer). */
149
+ @media (max-width: 479px) {
150
+ .glass-dock[data-density="audacious"] {
151
+ --dock-label-size: 14px;
152
+ }
153
+ }
154
+ @media (min-width: 480px) and (max-width: 719px) {
155
+ .glass-dock[data-density="audacious"] {
156
+ --dock-label-size: 15px;
157
+ }
158
+ }
159
+
160
+ .glass-dock::after {
161
+ content: "";
162
+ position: absolute;
163
+ inset: 0;
164
+ border-radius: inherit;
165
+ background: var(--paper-clean-texture);
166
+ background-repeat: repeat;
167
+ background-size: var(--paper-texture-size);
168
+ opacity: var(--glass-grain-opacity);
169
+ pointer-events: none;
170
+ mix-blend-mode: overlay;
171
+ }
172
+
173
+ .dark .glass-dock::after {
174
+ mix-blend-mode: soft-light;
175
+ }
176
+
177
+ /* J.W3.A — horizontal docks transition padding/shadow/transform/background/border
178
+ only. Width is driven by the inner `.dock-layers` FLIP via
179
+ `useLayerTransition`; pinning it here would race the FLIP and
180
+ reintroduce the `width: auto` non-interpolation diagnosed in
181
+ R1+R6. */
182
+ .glass-dock:not(.vertical) {
183
+ transition:
184
+ padding var(--dock-motion-resize),
185
+ box-shadow var(--dock-motion-standard),
186
+ transform var(--dock-motion-resize),
187
+ background var(--dock-motion-standard),
188
+ border-color var(--dock-motion-standard);
189
+ }
190
+
191
+ /* Z.W2.T2 — vertical rails grow-to-fit + clamp, no scroll. Per A2 §B6
192
+ + A4 special-focus: canon-intent is grow-and-wrap, not scroll. The
193
+ prior `overflow-y: auto` produced the "dock scrolls when it
194
+ shouldn't" regression at narrow viewports; the right escape is to
195
+ let descendants wrap to multiple rows (consumers opt-in via
196
+ `dock-wrap`) or to clamp via `--dock-max-block-size` and let the
197
+ cap fail visibly rather than mask the overflow as a scroll
198
+ affordance.
199
+
200
+ The edge-fade `mask-image` retired here in lockstep with the
201
+ horizontal `.dock-layers` rule. With grow-to-fit + visible
202
+ overflow the rail never scrolls, so a scroll-feather mask has
203
+ nothing to feather — it only bled a transparent ramp onto the
204
+ top and bottom rail items, casting a stray directional shadow
205
+ on those edge controls. J.W3.C's auto + mask-fade shape is fully
206
+ superseded: grow-to-fit is the whole contract, no feather. */
207
+ .glass-dock.vertical {
208
+ display: inline-flex;
209
+ flex-direction: column;
210
+ align-items: stretch;
211
+ justify-content: flex-start;
212
+ gap: 0.25rem;
213
+ white-space: normal;
214
+ width: auto;
215
+ height: auto;
216
+ max-block-size: var(--dock-max-block-size);
217
+ overflow-x: visible;
218
+ overflow-y: visible;
219
+ padding: var(--dock-vertical-padding, var(--dock-padding-block, 0.375rem));
220
+ border-radius: var(--radius-dock);
221
+ transition:
222
+ height var(--dock-motion-resize),
223
+ width var(--dock-motion-resize),
224
+ padding var(--dock-motion-resize),
225
+ box-shadow var(--dock-motion-standard),
226
+ transform var(--dock-motion-resize),
227
+ background var(--dock-motion-standard),
228
+ border-color var(--dock-motion-standard);
229
+ }
230
+
231
+ .glass-dock.variant-rail {
232
+ padding: var(--dock-rail-padding, var(--dock-padding-inline, 0.5rem));
233
+ background: var(--glass-bg-dock, var(--glass-bg-wash));
234
+ border-color: var(--glass-border-dock, var(--glass-border-wash));
235
+ }
236
+
237
+ .glass-dock.variant-rail.shape-pill {
238
+ border-radius: var(--radius-pill);
239
+ }
240
+
241
+ .glass-dock.variant-rail.shape-rounded {
242
+ border-radius: var(--radius-xl);
243
+ }
244
+
245
+ /* AJ-W1-δ — `instrument-strip` variant (per G-AJ-D7 Path 1).
246
+ *
247
+ * The speedtest survey cockpit's vertical rail needs chassis-strip
248
+ * aesthetics, not the dock-rail's stadium-pill chrome. Adopts the
249
+ * surface vocabulary of the `<InstrumentChassis>` family so the
250
+ * strip reads as a journey-station slot — the same surface the
251
+ * speedtest + complete + thankyou stations ride.
252
+ *
253
+ * The variant intentionally inherits the rail variant's vertical
254
+ * layout (orientation: vertical; flex-direction: column) — the
255
+ * orientation + fitContent computeds in GlassDock.vue branch on
256
+ * `variant === "instrument-strip"` alongside the existing rail
257
+ * branch. Only the surface vocabulary changes vs the rail:
258
+ * - Border-radius drops from `--radius-pill` to `--radius-card`
259
+ * (matches `<InstrumentChassis> { border-radius: var(--radius-card) }`).
260
+ * - Background plate routes through `--glass-bg-chassis` (0.28α
261
+ * per tokens.css §V) instead of `--glass-bg-wash`.
262
+ * - Border routes through `--glass-border-quiet` to match the
263
+ * chassis primitive's at-rest stroke.
264
+ * - Box-shadow routes through `--glass-shadow-quiet` plus the
265
+ * inset-bottom hairline matching the chassis primitive
266
+ * (instrument-chassis.css:42-45).
267
+ *
268
+ * The `.shape-pill` / `.shape-rounded` class hooks are still emitted
269
+ * by the template but no rule binds them under
270
+ * `.variant-instrument-strip` — chassis-strip carries ONE canonical
271
+ * border-radius (`--radius-card`), per the chassis family. */
272
+ .glass-dock.variant-instrument-strip {
273
+ padding: var(--dock-instrument-strip-padding, var(--dock-padding-inline, 0.75rem));
274
+ background: var(--glass-bg-chassis, var(--glass-bg-wash));
275
+ border: 1px solid var(--glass-border-quiet, var(--glass-border-resting));
276
+ border-radius: var(--radius-card);
277
+ box-shadow:
278
+ var(--glass-shadow-quiet, var(--shadow-dock)),
279
+ inset 0 -0.5px 0 0 rgb(0 0 0 / 0.06);
280
+ }
281
+
282
+ /* Engraved-bezel inner stroke — matches `<InstrumentChassis>::before`
283
+ * (instrument-chassis.css:85-93). The chassis-strip silhouette without
284
+ * this stroke reads as a flat plate; with it the strip reads as the
285
+ * polished sleeve of an instrument-panel module. The `::before`
286
+ * z-index sits above the chassis backdrop but below the slotted
287
+ * content (the MetricBadge stack), matching the chassis primitive's
288
+ * z-order. The host `.glass-dock` is already `position: relative`. */
289
+ .glass-dock.variant-instrument-strip::before {
290
+ content: "";
291
+ position: absolute;
292
+ inset: 0.5px;
293
+ border-radius: calc(var(--radius-card) - 0.5px);
294
+ border: 1px solid var(--surface-tint-4);
295
+ pointer-events: none;
296
+ z-index: 1;
297
+ }
298
+
299
+ .dark .glass-dock.variant-instrument-strip::before {
300
+ border-color: var(--surface-tint-6);
301
+ }
302
+
303
+ .glass-dock.collapsed {
304
+ cursor: pointer;
305
+ padding: var(--dock-collapsed-padding, var(--dock-padding-block, 0.375rem));
306
+ justify-content: center;
307
+ background: var(--glass-bg-wash);
308
+ border-color: var(--glass-border-floating);
309
+ /* Idiomatic override path: the consumer-supplied
310
+ `--shadow-dock-override` variable engages in every dock state
311
+ (was: base only, leaking through here in collapsed). */
312
+ box-shadow: var(--shadow-dock-override, var(--shadow-dock-collapsed));
313
+ }
314
+
315
+ .glass-dock.collapsed .dock-layer--summary {
316
+ min-width: var(--dock-collapsed-summary-min-size, var(--dock-layer-height, 2.5rem));
317
+ justify-content: center;
318
+ }
319
+
320
+ .glass-dock.collapsed:hover {
321
+ background: var(--glass-bg-wash);
322
+ border-color: var(--glass-border-floating);
323
+ box-shadow: var(--shadow-dock-override, var(--shadow-dock));
324
+ transform: scale(var(--dock-collapsed-hover-scale));
325
+ }
326
+
327
+ /* J.W5.C — held-state substrate response.
328
+ *
329
+ * When a descendant signals `dockKeepOpen` (e.g. an active slider drag),
330
+ * `useDockState.isHeld` flips true and the root carries `data-held`.
331
+ * The dock background lifts a tier (resting → floating-equivalent) and
332
+ * the border quiets to the floating ring; the change tracks pointer
333
+ * movement on `--duration-fast` so it reads as a held-cursor cue, not
334
+ * a state change. The same flag is consumed by descendants (Slider
335
+ * thumb halo) via `useOptionalDockContext().held` for cross-substrate
336
+ * coordination (typed-key canonical shape; O.W2 invariant 25).
337
+ */
338
+ .glass-dock[data-held] {
339
+ background: var(--glass-bg-floating, var(--glass-bg-resting));
340
+ border-color: var(--glass-border-floating, var(--glass-border-resting));
341
+ transition:
342
+ background var(--duration-fast) var(--ease-standard),
343
+ border-color var(--duration-fast) var(--ease-standard),
344
+ box-shadow var(--duration-fast) var(--ease-standard);
345
+ }
346
+
347
+ .glass-dock:where(.fixed) {
348
+ z-index: var(--z-dock);
349
+ }
350
+
351
+ .dock-inline {
352
+ margin: 0 auto;
353
+ }
354
+
355
+ .dock-sticky {
356
+ position: sticky;
357
+ top: 0;
358
+ z-index: var(--z-dock);
359
+ margin: 0 auto;
360
+ }
361
+
362
+ /* J.W3.A — outer collapsed↔expanded pair drives width via FLIP.
363
+ `useLayerTransition` measures the natural width before/after the
364
+ slot swap and animates `width` between fixed pixel values via
365
+ the `--dock-motion-resize` spring; this eliminates the
366
+ `width: auto` non-interpolation diagnosed in R1+R6. The two
367
+ layers stack on a CSS grid (1/1 area) and crossfade opacity
368
+ in step with the FLIP. Spatial motion (width) is automatically
369
+ suppressed by the global `prefers-reduced-motion` gate in
370
+ `utilities.css` (which strips width from transition-property).
371
+ Opacity transitions remain — the 0.1s shortened cadence in PRM
372
+ still reads as a snap.
373
+
374
+ J.W3.C — when the active layer's natural width exceeds
375
+ `--dock-max-inline-size`, the dock root clips and the layer
376
+ scrolls horizontally with a mask-fade. `min-width: 0` lets the
377
+ grid item shrink under the cap (default min-content is the
378
+ child's intrinsic width which would prevent the clamp). */
379
+ .dock-layers {
380
+ display: grid;
381
+ min-width: 0;
382
+ transition: width var(--dock-motion-resize);
383
+ }
384
+
385
+ /* Z.W2.T2 — horizontal dock content grows visibly when the active
386
+ layer's natural width exceeds the dock's content area. Per
387
+ A2 §B6 + A4 special-focus: the canon-intent for the bottom dock
388
+ is grow-to-fit; consumers needing wrap opt into `dock-wrap`. The
389
+ prior `overflow-x: auto` produced the user-reported "dock scrolls
390
+ when it shouldn't" — the wrong escape valve.
391
+
392
+ The edge-fade `mask-image` retired here. Once Z.W2.T2 made the
393
+ dock grow-to-fit, content is never clipped and never scrolls, so
394
+ the mask had nothing left to feather — it was kept only "for
395
+ visual symmetry" with the vertical rule. In practice the 1rem
396
+ transparent ramp at each edge bled onto the first and last dock
397
+ items: the rightmost control (e.g. a settings cog) had its outer
398
+ edge faded into the glass backdrop, which read as a stray
399
+ directional shadow on that item. A scroll-affordance feather on
400
+ a surface that never scrolls is pure cosmetic damage, so it is
401
+ removed at the root rather than masked per-consumer. */
402
+ .glass-dock.expanded:not(.dock-wrap) > .dock-layers {
403
+ overflow-x: visible;
404
+ }
405
+
406
+ /* ── Layer crossfade + hit-test contract (shared) ──────────────────
407
+ Two dock-layer surfaces stack on a 1/1 CSS grid and crossfade:
408
+ `.dock-layer` (GlassDock's built-in collapsed↔expanded pair) and
409
+ `.dock-layer-item-host` (a DockLayer inside a DockLayerGroup). They
410
+ differ only in base layout — the active/inactive/leaving paint +
411
+ hit-test semantics are identical, so the contract is expressed ONCE
412
+ here over both state vocabularies (`.layer-active` / `.is-active` /
413
+ `.is-leaving`) rather than copied per rule-set (Q-coh-5 — `beec35e`
414
+ patched the `visibility` fix into two parallel copies).
415
+
416
+ An inactive layer must leave the paint AND hit-test tree: `opacity:0`
417
+ alone leaves the box answering `elementFromPoint()`, so an inactive
418
+ layer's button intercepts clicks meant for the active one.
419
+ `visibility:hidden` removes it from both while KEEPING it in layout
420
+ flow, so the FLIP width measurement in `useLayerTransition` still
421
+ reads its geometry (`display:none` would zero it). The delayed
422
+ `visibility` transition holds a leaving layer `visible` for the
423
+ length of the opacity crossfade, then flips it `hidden`. */
424
+ .dock-layer,
425
+ .dock-layer-item-host {
426
+ transition:
427
+ opacity var(--dock-motion-fast),
428
+ visibility 0s linear var(--duration-fast);
429
+ }
430
+
431
+ .dock-layer:not(.layer-active),
432
+ .dock-layer-item-host:not(.is-active):not(.is-leaving) {
433
+ opacity: 0;
434
+ visibility: hidden;
435
+ pointer-events: none;
436
+ }
437
+
438
+ .dock-layer.layer-active,
439
+ .dock-layer-item-host.is-active {
440
+ opacity: 1;
441
+ visibility: visible;
442
+ pointer-events: auto;
443
+ /* The active layer shows immediately — no deferred `visibility`. */
444
+ transition:
445
+ opacity var(--dock-motion-fast),
446
+ visibility 0s;
447
+ }
448
+
449
+ /* A leaving layer is inactive for hit-testing but still painted
450
+ through its fade-out. (`.dock-layer` has no separate leaving state —
451
+ its `:not(.layer-active)` rule above covers the crossfade-out via the
452
+ delayed `visibility` transition.) */
453
+ .dock-layer-item-host.is-leaving {
454
+ opacity: 0;
455
+ visibility: visible;
456
+ pointer-events: none;
457
+ }
458
+
459
+ /* ── Base layout — distinct per surface ─────────────────────────── */
460
+ .dock-layer {
461
+ display: flex;
462
+ align-items: center;
463
+ white-space: nowrap;
464
+ grid-area: 1 / 1;
465
+ gap: var(--dock-layer-gap, 0.375rem);
466
+ height: var(--dock-layer-height, 2.5rem);
467
+ }
468
+
469
+ .dock-layer.layer-active {
470
+ position: relative;
471
+ }
472
+
473
+ .dock-layer:not(.layer-active) {
474
+ position: absolute;
475
+ inset: 0;
476
+ }
477
+
478
+ .glass-dock.expanded {
479
+ overflow: visible;
480
+ }
481
+
482
+ .glass-dock.expanded:not(.fit-content) .dock-layers {
483
+ width: 100%;
484
+ }
485
+
486
+ .glass-dock.expanded:not(.fit-content) .dock-layer--full {
487
+ width: 100%;
488
+ }
489
+
490
+ .glass-dock.always-expanded {
491
+ cursor: default;
492
+ overflow: visible;
493
+ }
494
+
495
+ /* Z.W2.T2 — always-expanded vertical rails inherit the same
496
+ grow-to-fit + visible contract. The prior auto pair re-introduced
497
+ the scroll affordance that A2 §B6 rejected. */
498
+ .glass-dock.vertical.always-expanded {
499
+ overflow-x: visible;
500
+ overflow-y: visible;
501
+ }
502
+
503
+ .glass-dock.dock-wrap {
504
+ white-space: normal;
505
+ border-radius: var(--radius-2xl);
506
+ max-width: var(--dock-wrap-max-width);
507
+ padding:
508
+ var(--dock-wrap-padding-block, var(--dock-padding-block, 0.375rem))
509
+ var(--dock-wrap-padding-inline, 0.625rem);
510
+ }
511
+
512
+ .glass-dock.dock-wrap .dock-layer--full {
513
+ flex-wrap: wrap;
514
+ justify-content: center;
515
+ height: auto;
516
+ min-height: var(--dock-wrap-layer-min-height, var(--dock-layer-height, 2rem));
517
+ gap: var(--dock-wrap-row-gap, 0.25rem) var(--dock-wrap-column-gap, var(--dock-layer-gap, 0.375rem));
518
+ }
519
+
520
+ .glass-dock.dock-wrap .dock-layer--summary {
521
+ height: auto;
522
+ min-height: var(--dock-wrap-layer-min-height, var(--dock-layer-height, 2rem));
523
+ }
524
+
525
+ .glass-dock.dock-wrap .dock-separator {
526
+ display: none;
527
+ }
528
+
529
+ .glass-dock.dock-wrap.collapsed {
530
+ border-radius: var(--radius-pill);
531
+ white-space: nowrap;
532
+ max-width: none;
533
+ }
534
+
535
+ .dock-separator {
536
+ @apply flex-shrink-0;
537
+ width: 1px;
538
+ height: var(--dock-separator-height);
539
+ margin: 0 0.375rem;
540
+ background: var(--surface-tint-15);
541
+ }
542
+
543
+ .dock-spacer {
544
+ @apply flex-1;
545
+ }
546
+
547
+ .dock-layer-group {
548
+ display: flex;
549
+ gap: var(--dock-layer-group-gap, var(--dock-layer-gap, 0.25rem));
550
+ min-width: 0;
551
+ min-height: 0;
552
+ }
553
+
554
+ .dock-layer-group.horizontal {
555
+ flex-direction: row;
556
+ align-items: stretch;
557
+ }
558
+
559
+ .dock-layer-group.horizontal.rail-end {
560
+ flex-direction: row-reverse;
561
+ }
562
+
563
+ .dock-layer-group.vertical {
564
+ flex-direction: column;
565
+ align-items: stretch;
566
+ }
567
+
568
+ .dock-layer-group.vertical.rail-end {
569
+ flex-direction: column-reverse;
570
+ }
571
+
572
+ .dock-layer-rail {
573
+ display: flex;
574
+ flex-direction: column;
575
+ flex-shrink: 0;
576
+ gap: var(--dock-layer-rail-gap, 0.125rem);
577
+ padding: var(--dock-layer-rail-padding, 0.125rem);
578
+ border-right: 1px solid color-mix(in srgb, var(--border) 30%, transparent);
579
+ }
580
+
581
+ .dock-layer-group.vertical .dock-layer-rail {
582
+ flex-direction: row;
583
+ border-right: none;
584
+ border-bottom: 1px solid color-mix(in srgb, var(--border) 30%, transparent);
585
+ }
586
+
587
+ .dock-layer-group.horizontal.rail-end .dock-layer-rail {
588
+ border-right: none;
589
+ border-left: 1px solid color-mix(in srgb, var(--border) 30%, transparent);
590
+ }
591
+
592
+ .dock-layer-group.vertical.rail-end .dock-layer-rail {
593
+ border-bottom: none;
594
+ border-top: 1px solid color-mix(in srgb, var(--border) 30%, transparent);
595
+ }
596
+
597
+ .dock-layer-rail .dock-layer-tab {
598
+ display: inline-flex;
599
+ align-items: center;
600
+ justify-content: center;
601
+ width: var(--dock-layer-tab-size, var(--dock-control-size, 1.75rem));
602
+ height: var(--dock-layer-tab-size, var(--dock-control-size, 1.75rem));
603
+ border: 0;
604
+ border-radius: var(--dock-layer-tab-radius, var(--radius-sm));
605
+ background: transparent;
606
+ color: var(--muted-foreground);
607
+ cursor: pointer;
608
+ font: inherit;
609
+ font-size: 0.75rem;
610
+ transition:
611
+ background var(--dock-motion-fast),
612
+ color var(--dock-motion-fast);
613
+ }
614
+
615
+ .dock-layer-rail .dock-layer-tab:hover {
616
+ background: color-mix(in srgb, var(--accent) 40%, transparent);
617
+ color: var(--foreground);
618
+ }
619
+
620
+ .dock-layer-rail .dock-layer-tab.is-active {
621
+ background: color-mix(in srgb, var(--primary) 15%, transparent);
622
+ color: var(--primary);
623
+ }
624
+
625
+ .dock-layer-stack {
626
+ position: relative;
627
+ display: grid;
628
+ transition:
629
+ width var(--dock-motion-resize),
630
+ height var(--dock-motion-resize);
631
+ }
632
+
633
+ /* Base layout — the crossfade + hit-test contract is shared with
634
+ `.dock-layer` above (see "Layer crossfade + hit-test contract"). The
635
+ default state is inactive: absolute + inset:0. */
636
+ .dock-layer-item-host {
637
+ grid-area: 1 / 1;
638
+ display: flex;
639
+ align-items: center;
640
+ white-space: nowrap;
641
+ gap: var(--dock-layer-gap, 0.375rem);
642
+ position: absolute;
643
+ inset: 0;
644
+ }
645
+
646
+ .dock-layer-item-host.is-active {
647
+ position: relative;
648
+ inset: auto;
649
+ width: max-content;
650
+ min-width: 0;
651
+ }
652
+
653
+ .dock-icon-button {
654
+ display: inline-flex;
655
+ align-items: center;
656
+ justify-content: center;
657
+ flex-shrink: 0;
658
+ width: var(--dock-control-size, var(--size-icon-btn));
659
+ height: var(--dock-control-size, var(--size-icon-btn));
660
+ padding: var(--dock-icon-padding, 0);
661
+ cursor: pointer;
662
+ border: none;
663
+ background: transparent;
664
+ border-radius: var(--dock-control-radius, var(--radius-pill));
665
+ color: color-mix(in srgb, var(--foreground) calc(var(--opacity-icon-muted) * 100%), transparent);
666
+ outline: none;
667
+ transition:
668
+ background-color var(--dock-motion-fast),
669
+ color var(--dock-motion-fast),
670
+ transform var(--dock-motion-fast),
671
+ opacity var(--dock-motion-fast);
672
+ }
673
+
674
+ .dock-icon-button--compact {
675
+ width: var(--dock-compact-control-size, auto);
676
+ height: var(--dock-compact-control-size, auto);
677
+ min-width: var(--dock-compact-control-min-width, 0);
678
+ padding: var(--dock-compact-control-padding, 0.25rem);
679
+ }
680
+
681
+ .dock-icon-button:hover:not(:disabled) {
682
+ background: var(--muted);
683
+ color: var(--btn-hover-color, var(--foreground));
684
+ transform: scale(var(--scale-hover-dock));
685
+ }
686
+
687
+ .dock-icon-button:active:not(:disabled) {
688
+ transform: scale(var(--scale-press-dock));
689
+ }
690
+
691
+ .dock-icon-button:focus:not(:focus-visible) {
692
+ box-shadow: none;
693
+ outline: none;
694
+ }
695
+
696
+ .dock-icon-button:focus-visible {
697
+ box-shadow: var(--focus-ring-shadow);
698
+ outline: none;
699
+ transition:
700
+ background-color var(--dock-motion-fast),
701
+ color var(--dock-motion-fast),
702
+ transform var(--dock-motion-fast),
703
+ opacity var(--dock-motion-fast),
704
+ box-shadow var(--dock-motion-fast);
705
+ }
706
+
707
+ .dock-icon-button:disabled {
708
+ opacity: var(--opacity-disabled);
709
+ cursor: not-allowed;
710
+ }
711
+
712
+ /* O.W6 Lane B — token-ladder active paint. Defaults match the prior
713
+ hardcoded recipe (--muted bg + --foreground color, no transform / border
714
+ / shadow). Consumers override the active variant via the
715
+ `--dock-active-{bg,color,scale,border,shadow}` cohort scoped to a parent
716
+ (e.g. bbnf-buddy `ToolsLayer.vue` audacious active treatment) — no
717
+ `:deep()` escapes required. See tokens.css §10 (dock geometry block). */
718
+ .dock-icon-button:is(.is-active, .active, [aria-expanded="true"], [aria-pressed="true"]) {
719
+ background: var(--dock-active-bg);
720
+ color: var(--dock-active-color);
721
+ transform: scale(var(--dock-active-scale));
722
+ border: var(--dock-active-border);
723
+ box-shadow: var(--dock-active-shadow);
724
+ }
725
+
726
+ /* J.W3.B — `.dock-popover` substrate + `pop-up-*` / `pop-down-*`
727
+ Vue Transition keyframes retired. Hover-driven dock popovers
728
+ compose `<HoverPopover keep-dock-open>`, which inherits reka-ui
729
+ HoverCard's collision-avoidance + the canonical
730
+ `popover-animate` motion vocabulary. Click-anchored popovers
731
+ (no dock-keep semantics) compose `<Popover>` directly. */
732
+
733
+ .dark-mode-toggle-button {
734
+ width: var(--dark-mode-toggle-size, 2.25rem);
735
+ height: var(--dark-mode-toggle-size, 2.25rem);
736
+ min-width: var(--dark-mode-toggle-size, 2.25rem);
737
+ min-height: var(--dark-mode-toggle-size, 2.25rem);
738
+ max-width: var(--dark-mode-toggle-size, 2.25rem);
739
+ max-height: var(--dark-mode-toggle-size, 2.25rem);
740
+ aspect-ratio: 1;
741
+ padding: var(--dark-mode-toggle-padding, 0.375rem);
742
+ transition:
743
+ opacity var(--dock-motion-standard),
744
+ background-color var(--dock-motion-standard),
745
+ box-shadow var(--dock-motion-fast);
746
+ }
747
+
748
+ .dark-mode-toggle-button > svg {
749
+ width: 100%;
750
+ height: 100%;
751
+ max-width: 100%;
752
+ max-height: 100%;
753
+ }
754
+
755
+ .dark-mode-toggle-button:hover,
756
+ .dark-mode-toggle-button:focus {
757
+ background: var(--surface-tint-10);
758
+ opacity: 1;
759
+ outline: none;
760
+ }
761
+
762
+ .dark-mode-toggle-button:focus-visible {
763
+ box-shadow: var(--focus-ring-shadow);
764
+ }
765
+
766
+ .dark-mode-toggle-button[data-size="sm"] {
767
+ --dark-mode-toggle-size: 1.75rem;
768
+ --dark-mode-toggle-padding: 0.25rem;
769
+ }
770
+
771
+ .dark-mode-toggle-button[data-size="md"] {
772
+ --dark-mode-toggle-size: 2.25rem;
773
+ --dark-mode-toggle-padding: 0.375rem;
774
+ }
775
+
776
+ .dark-mode-toggle-button[data-size="lg"] {
777
+ --dark-mode-toggle-size: 2.75rem;
778
+ --dark-mode-toggle-padding: 0.5rem;
779
+ }
780
+
781
+ .dark-mode-toggle-button[data-size="control"] {
782
+ --dark-mode-toggle-size: var(--control-size, 2.25rem);
783
+ --dark-mode-toggle-padding: var(--control-icon-padding, 0.375rem);
784
+ }
785
+
786
+ .dark-mode-toggle-button[data-size="dock"],
787
+ .glass-dock .dark-mode-toggle-button:not([data-size="sm"]):not([data-size="lg"]):not([data-size="control"]) {
788
+ --dark-mode-toggle-size: var(--dock-control-size, var(--size-icon-btn));
789
+ --dark-mode-toggle-padding: var(--dock-icon-padding, 0);
790
+ }
791
+
792
+ .dock-tab-button {
793
+ display: inline-flex;
794
+ align-items: center;
795
+ flex-shrink: 0;
796
+ /* P.W4 Lane B inline-absorb: the `--dock-tab-h` density-keyed height
797
+ knob (parallel to DockIconButton's --dock-control-size) merged
798
+ here from the prior DockTabButton.vue scoped style block. The
799
+ density rungs that set `--dock-tab-h` per tier live in this same
800
+ file (the `.glass-dock[data-density="…"]` blocks above) — Q.W3
801
+ Lane A consolidated them out of utilities.css, closing the
802
+ cascade-order split-brain. When a parent <GlassDock density="…">
803
+ sets `--dock-tab-h`, the tab-button reserves that row even when
804
+ the glyph + padding sum would ride lower. Falls through to
805
+ `--dock-tab-min-height` (kept for audacious-tier callers) and
806
+ finally to `auto`. R3-spec / audit-E P0-3. */
807
+ min-height: var(--dock-tab-h, var(--dock-tab-min-height, auto));
808
+ padding-inline: var(--dock-tab-padding-inline, 0.75rem);
809
+ padding-block: var(--dock-tab-padding-block, 0.375rem);
810
+ border: none;
811
+ background: transparent;
812
+ border-radius: var(--dock-control-radius, var(--radius-pill));
813
+ /* Default font-size carries through to text-only tab content; consumers
814
+ wrapping content in an explicit type utility (e.g. `text-hero`,
815
+ `text-display`) on an inner <span> win because Tailwind v4 ships
816
+ @utility blocks in @layer utilities, which ranks above @layer
817
+ components — so this declaration is a fallback, not a ceiling. */
818
+ font-size: var(--type-small);
819
+ line-height: 1;
820
+ color: var(--muted-foreground);
821
+ text-decoration: none;
822
+ cursor: pointer;
823
+ white-space: nowrap;
824
+ outline: none;
825
+ transition:
826
+ background-color var(--dock-motion-fast),
827
+ color var(--dock-motion-fast),
828
+ transform var(--dock-motion-fast);
829
+ }
830
+
831
+ .dock-tab-button:hover:not(:disabled) {
832
+ background: var(--surface-tint-8);
833
+ color: var(--foreground);
834
+ }
835
+
836
+ .dock-tab-button:active:not(:disabled) {
837
+ transform: scale(var(--scale-press-dock));
838
+ }
839
+
840
+ .dock-tab-button:focus:not(:focus-visible) {
841
+ box-shadow: none;
842
+ }
843
+
844
+ .dock-tab-button:focus-visible {
845
+ box-shadow: var(--focus-ring-shadow);
846
+ outline: none;
847
+ }
848
+
849
+ .dock-tab-button:disabled {
850
+ opacity: var(--opacity-disabled);
851
+ cursor: not-allowed;
852
+ }
853
+
854
+ .dock-tab-button:is(.is-active, .active, [aria-current="page"], [aria-pressed="true"]) {
855
+ background: var(--surface-tint-10);
856
+ color: var(--foreground);
857
+ }
858
+
859
+ /* Tier — primary ────────────────────────────────────────────
860
+ *
861
+ * Per W2.7 §9, §12, §13, §17. The primary tier composes three at-rest
862
+ * marks (top-highlight, bottom under-shadow, baseline glass) with three
863
+ * disco accents on hover (specular swap, sparkle sweep, disco-grain).
864
+ *
865
+ * Reservation: disco fires on hover only. At rest the button reads as
866
+ * a Vignelli-restrained composed glass surface. The `--phase-color`
867
+ * cascade (provided by `<InstrumentChassis>` via `data-phase`) tints
868
+ * the disco-grain radial only on hover; idle is neutral.
869
+ *
870
+ * K.W6 Lane B — the canonical disco-grain + sparkle-sweep + specular
871
+ * recipe lifted to `@utility btn-audacious` (utilities.css). The Vue
872
+ * <DockTabButton> attaches `btn-audacious` automatically when the
873
+ * consumer passes `data-tier="primary"`. The dock-local rules below
874
+ * are STRICTLY the dock extension: structural shell (padding, base
875
+ * surface tint, min-height) + phase-tint extensions (hover radial
876
+ * uses `--phase-color`, plus the `[data-phase]` `::before` halo).
877
+ */
878
+ .dock-tab-button[data-tier="primary"] {
879
+ --dock-tab-min-height: 4rem;
880
+ padding-inline: 1.5rem;
881
+ background:
882
+ color-mix(in srgb, var(--card) 60%, transparent);
883
+ color: var(--foreground);
884
+ }
885
+
886
+ /* Phase-tint hover override — same disco-grain composition as
887
+ * `btn-audacious`, but the radial uses `--phase-color` (instrument-
888
+ * cluster axis) instead of the canonical `--primary`. The `--paper-
889
+ * clean-texture` overlay and `--glass-specular` shadow stack are
890
+ * inherited from the underlying `btn-audacious` utility. */
891
+ .dock-tab-button[data-tier="primary"]:hover:not(:disabled) {
892
+ --glass-grain-opacity: var(--glass-grain-opacity-disco, 0.08);
893
+ background-image:
894
+ var(--paper-clean-texture),
895
+ radial-gradient(
896
+ ellipse at 30% 30%,
897
+ color-mix(in srgb, var(--phase-color, var(--foreground)) 18%, transparent),
898
+ transparent 70%
899
+ );
900
+ background-blend-mode: overlay, normal;
901
+ background-size: var(--paper-texture-size), auto;
902
+ }
903
+
904
+ /* Q.W3.A.4 — phase-tint backplate halo at the pill wrapper.
905
+ *
906
+ * The inner `<GlyphFace>` halo (`.glyph-face-backplate { inset: -25% }`)
907
+ * gets clipped by the pill's `overflow: hidden`; the halo never escapes
908
+ * the inner glyph wrapper. This `::before` lifts the phase-tint to the
909
+ * pill itself so the glow composes with the whole CTA. Scoped to
910
+ * active phases — at idle / ready the pill stays neutral and inherits
911
+ * the W2.7 reservation ("disco fires on hover only"). */
912
+ .dock-tab-button[data-tier="primary"][data-phase]:not([data-phase="ready"]):not([data-phase="idle"])::before {
913
+ content: "";
914
+ position: absolute;
915
+ inset: 0;
916
+ border-radius: inherit;
917
+ background: radial-gradient(
918
+ ellipse at 30% 30%,
919
+ color-mix(in srgb, var(--phase-color, var(--foreground)) 18%, transparent) 0%,
920
+ transparent 70%
921
+ );
922
+ pointer-events: none;
923
+ z-index: -1;
924
+ opacity: 1;
925
+ transition: opacity var(--duration-fast) var(--ease-standard);
926
+ }
927
+
928
+ /* Tier — secondary ──────────────────────────────────────────
929
+ *
930
+ * Companion to `data-tier="primary"`. Carries the same edge-light +
931
+ * edge-shadow skeu vocabulary at quieter weight: no disco accent, no
932
+ * sparkle, no curvature radial. Composes for icon-button consumers
933
+ * (chassis ActionCluster, SettingsCog) where the surface needs a
934
+ * glass-tier read but not the audacious primary punch. Per P.W1.B
935
+ * audit-C §3 — closes the four bare `<DockIconButton>` consumer sites
936
+ * (cog + back + retake + stop) without redefining the family.
937
+ */
938
+ .dock-tab-button[data-tier="secondary"],
939
+ .dock-icon-button[data-tier="secondary"] {
940
+ background: color-mix(in srgb, var(--card) 50%, transparent);
941
+ border: 1px solid var(--glass-border-quiet);
942
+ box-shadow:
943
+ var(--border-hairline),
944
+ var(--glass-highlight);
945
+ }
946
+
947
+ .dock-tab-button[data-tier="secondary"]:hover:not(:disabled),
948
+ .dock-icon-button[data-tier="secondary"]:hover:not(:disabled) {
949
+ background: color-mix(in srgb, var(--card) 65%, transparent);
950
+ box-shadow:
951
+ var(--glass-specular),
952
+ 0 0.5px 0 0 rgb(0 0 0 / 0.06);
953
+ }
954
+
955
+ .dock-select-trigger,
956
+ .dock-dropdown-trigger {
957
+ display: inline-flex;
958
+ align-items: center;
959
+ justify-content: center;
960
+ flex-shrink: 0;
961
+ gap: var(--dock-trigger-gap, 0.25rem);
962
+ min-height: var(--dock-trigger-min-height, auto);
963
+ padding:
964
+ var(--dock-trigger-padding-block, 0.25rem)
965
+ var(--dock-trigger-padding-inline, 0.5rem);
966
+ white-space: nowrap;
967
+ cursor: pointer;
968
+ border: none;
969
+ background: transparent;
970
+ border-radius: var(--dock-control-radius, var(--radius-pill));
971
+ color: color-mix(in srgb, var(--foreground) calc(var(--opacity-icon-muted) * 100%), transparent);
972
+ outline: none;
973
+ transition:
974
+ background-color var(--dock-motion-fast),
975
+ color var(--dock-motion-fast),
976
+ transform var(--dock-motion-fast),
977
+ opacity var(--dock-motion-fast);
978
+ }
979
+
980
+ .dock-select-trigger:hover:not(:disabled),
981
+ .dock-dropdown-trigger:hover:not(:disabled) {
982
+ background: var(--muted);
983
+ color: var(--btn-hover-color, var(--foreground));
984
+ }
985
+
986
+ .dock-dropdown-trigger:hover:not(:disabled) {
987
+ transform: scale(var(--scale-hover-dock));
988
+ }
989
+
990
+ .dock-select-trigger:active:not(:disabled),
991
+ .dock-dropdown-trigger:active:not(:disabled) {
992
+ transform: scale(var(--scale-press-dock));
993
+ }
994
+
995
+ .dock-select-trigger:focus:not(:focus-visible),
996
+ .dock-dropdown-trigger:focus:not(:focus-visible) {
997
+ box-shadow: none;
998
+ outline: none;
999
+ }
1000
+
1001
+ .dock-select-trigger:focus-visible,
1002
+ .dock-dropdown-trigger:focus-visible {
1003
+ box-shadow: var(--focus-ring-shadow);
1004
+ outline: none;
1005
+ transition:
1006
+ background-color var(--dock-motion-fast),
1007
+ color var(--dock-motion-fast),
1008
+ transform var(--dock-motion-fast),
1009
+ opacity var(--dock-motion-fast),
1010
+ box-shadow var(--dock-motion-fast);
1011
+ }
1012
+
1013
+ .dock-select-trigger:disabled,
1014
+ .dock-dropdown-trigger:disabled {
1015
+ opacity: var(--opacity-disabled);
1016
+ cursor: not-allowed;
1017
+ }
1018
+
1019
+ .dock-select-trigger:is(.is-active, .active, [aria-expanded="true"], [aria-pressed="true"]),
1020
+ .dock-dropdown-trigger:is(.is-active, .active, [aria-expanded="true"], [aria-pressed="true"]) {
1021
+ background: var(--muted);
1022
+ color: var(--foreground);
1023
+ }
1024
+
1025
+ .dock-select-trigger__chevron {
1026
+ width: var(--dock-trigger-icon-size, 0.75rem);
1027
+ height: var(--dock-trigger-icon-size, 0.75rem);
1028
+ flex-shrink: 0;
1029
+ opacity: 0.5;
1030
+ transition: transform var(--dock-motion-fast);
1031
+ }
1032
+
1033
+ .dock-select-trigger[data-state="open"] .dock-select-trigger__chevron {
1034
+ transform: rotate(180deg);
1035
+ }
1036
+
1037
+ @media (min-width: 640px) {
1038
+ .glass-dock.dock-wrap {
1039
+ white-space: nowrap;
1040
+ border-radius: var(--radius-pill);
1041
+ max-width: none;
1042
+ padding:
1043
+ var(--dock-wrap-desktop-padding-block, var(--dock-padding-block, 0.375rem))
1044
+ var(--dock-wrap-desktop-padding-inline, 0.75rem);
1045
+ }
1046
+
1047
+ .glass-dock.dock-wrap .dock-layer--full {
1048
+ flex-wrap: nowrap;
1049
+ height: var(--dock-layer-height, 2.5rem);
1050
+ gap: var(--dock-wrap-desktop-gap, var(--dock-layer-gap, 0.25rem));
1051
+ }
1052
+
1053
+ .glass-dock.dock-wrap .dock-layer--summary {
1054
+ height: var(--dock-layer-height, 2.5rem);
1055
+ }
1056
+
1057
+ .glass-dock.dock-wrap .dock-separator {
1058
+ display: block;
1059
+ }
1060
+ }
1061
+
1062
+ /* O.W6 Lane D — Touch-target floor (speedtest AC.W6 F2.AA-03 / WCAG
1063
+ 2.5.5). On coarse-pointer devices (touch), every dock-control's
1064
+ width/height floor lifts to the 44px WCAG target-size minimum.
1065
+ The lift composes via `--dock-control-size` (the canonical knob
1066
+ every dock-control surface — `.dock-icon-button`,
1067
+ `.dock-tab-button`, `.dock-select-trigger`, `.dock-dropdown-trigger`
1068
+ — already consumes) so the cascade reaches every control without
1069
+ per-selector re-declaration. `--size-icon-btn` lifts in lockstep
1070
+ so bare icon-button surfaces outside the dock (e.g.,
1071
+ `.dark-mode-toggle-button[data-size="dock"]` and any consumer
1072
+ that wires `var(--size-icon-btn)` for trigger sizing) inherit
1073
+ the same floor.
1074
+
1075
+ Density overrides (`[data-density="compact"]` etc.) still win
1076
+ inside `@layer components` ordering — consumers that explicitly
1077
+ opt into compact density on touch devices get their compact size
1078
+ back. The media-query only lifts the *default* path. */
1079
+ @media (pointer: coarse) {
1080
+ .glass-dock {
1081
+ --dock-control-size: var(--dock-touch-target, 2.75rem);
1082
+ --size-icon-btn: var(--dock-touch-target, 2.75rem);
1083
+ }
1084
+ }
1085
+ }