@mkbabb/glass-ui 0.3.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (945) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +179 -70
  3. package/dist/CardFooter-Yi0xtLLd.js +129 -0
  4. package/dist/CollapsibleContent-DHRuXE3P.js +52 -0
  5. package/dist/CommandShortcut-_INFUMu6.js +285 -0
  6. package/dist/ContextMenuContent-CvXfU5qz.js +85 -0
  7. package/dist/ContextMenuSubContent-DCkweFW9.js +250 -0
  8. package/dist/DataTable-Ce00dbHD.js +460 -0
  9. package/dist/DialogContent-CmCijgX9.js +93 -0
  10. package/dist/DialogFooter-DRdaCok0.js +165 -0
  11. package/dist/DiscoGlyph-wRA02zAJ.js +132 -0
  12. package/dist/GlyphFace-BnPMUZ16.js +51 -0
  13. package/dist/HoverCardContent-4nN5-5bz.js +83 -0
  14. package/dist/HoverPopover-Btv4RQfv.js +80 -0
  15. package/dist/IconTooltip-ge_mBSWR.js +25 -0
  16. package/dist/Input-CbakTe3B.js +32 -0
  17. package/dist/InstrumentChassis-DOaVYyWq.js +65 -0
  18. package/dist/InstrumentRail-jHDqXj70.js +44 -0
  19. package/dist/Label-C8QMJSsf.js +32 -0
  20. package/dist/MetricBadge-DRBB18Xq.js +78 -0
  21. package/dist/ModalOverlay-DKLVY-cj.js +53 -0
  22. package/dist/Notification-DrI1DT2v.js +99 -0
  23. package/dist/PaperBackdrop-Bc2drCqJ.js +31 -0
  24. package/dist/PopoverContent-BCH4eYs8.js +121 -0
  25. package/dist/Progress-CCH-2UBR.js +126 -0
  26. package/dist/ScrollingText-7P8skg5W.js +40 -0
  27. package/dist/SelectGroup-O69GTQ77.js +31 -0
  28. package/dist/SelectScrollDownButton-yu8EYUnu.js +235 -0
  29. package/dist/SelectSeparator-GTHxKO0a.js +49 -0
  30. package/dist/Separator-_NCypg_C.js +37 -0
  31. package/dist/Switch-CL0uxu8F.js +41 -0
  32. package/dist/Toaster-DY8_jtHv.js +255 -0
  33. package/dist/ToggleGroupItem-BYG_8M9M.js +152 -0
  34. package/dist/TooltipProvider-C5QLSPto.js +104 -0
  35. package/dist/UnderlineTabs-BtrUcXn-.js +64 -0
  36. package/dist/_plugin-vue_export-helper-n-_DRHWS.js +8 -0
  37. package/dist/animated-digit.d.ts +1 -0
  38. package/dist/animated-digit.js +44 -0
  39. package/dist/api/index.d.ts +30 -0
  40. package/dist/api.js +2 -0
  41. package/dist/aurora.d.ts +1 -0
  42. package/dist/aurora.js +541 -0
  43. package/dist/badge-BbxVKZfw.js +49 -0
  44. package/dist/badge.d.ts +1 -0
  45. package/dist/badge.js +2 -0
  46. package/dist/button-BlOW34DT.js +70 -0
  47. package/dist/button.d.ts +1 -0
  48. package/dist/button.js +2 -0
  49. package/dist/card.d.ts +1 -0
  50. package/dist/card.js +2 -0
  51. package/dist/carousel.d.ts +2 -0
  52. package/dist/carousel.js +394 -0
  53. package/dist/check-dwgetki8.js +7 -0
  54. package/dist/chevron-down-DILQA1t6.js +7 -0
  55. package/dist/chevron-right-fS7fal2t.js +7 -0
  56. package/dist/chevron-up-BtYjYQOS.js +7 -0
  57. package/dist/cn-DJXf4yaB.js +97 -0
  58. package/dist/collapsible.d.ts +1 -0
  59. package/dist/collapsible.js +2 -0
  60. package/dist/command.d.ts +1 -0
  61. package/dist/command.js +2 -0
  62. package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +48 -0
  63. package/dist/components/custom/animated-digit/index.d.ts +2 -0
  64. package/dist/components/custom/aurora/Aurora.vue.d.ts +95 -0
  65. package/dist/components/custom/aurora/composables/color.d.ts +39 -0
  66. package/dist/components/custom/aurora/composables/configSource.d.ts +10 -0
  67. package/dist/components/custom/aurora/composables/runtime.d.ts +54 -0
  68. package/dist/components/custom/aurora/composables/useAurora.d.ts +67 -0
  69. package/dist/components/custom/aurora/composables/useCursorInteraction.d.ts +25 -0
  70. package/dist/components/custom/aurora/index.d.ts +9 -0
  71. package/dist/components/custom/aurora/presets.d.ts +121 -0
  72. package/dist/components/custom/aurora/renderMode.d.ts +30 -0
  73. package/dist/components/custom/aurora/shaders/aurora.frag.d.ts +1 -0
  74. package/dist/components/custom/aurora/shaders/aurora.vert.d.ts +1 -0
  75. package/dist/components/custom/configurator/Configurator.vue.d.ts +102 -0
  76. package/dist/components/custom/configurator/ConfiguratorLayer.vue.d.ts +68 -0
  77. package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +63 -0
  78. package/dist/components/custom/configurator/density.d.ts +30 -0
  79. package/dist/components/custom/configurator/index.d.ts +6 -0
  80. package/dist/components/custom/configurator/useConfiguratorState.d.ts +45 -0
  81. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +32 -0
  82. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +23 -0
  83. package/dist/components/custom/disco-glyph/DiscoGlyph.vue.d.ts +58 -0
  84. package/dist/components/custom/disco-glyph/index.d.ts +1 -0
  85. package/dist/components/custom/dock/DockDropdownTrigger.vue.d.ts +29 -0
  86. package/dist/components/custom/dock/DockIconButton.vue.d.ts +30 -0
  87. package/dist/components/custom/dock/DockLayer.vue.d.ts +34 -0
  88. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +43 -0
  89. package/dist/components/custom/dock/DockSelectTrigger.vue.d.ts +29 -0
  90. package/dist/components/custom/dock/DockTabButton.vue.d.ts +39 -0
  91. package/dist/components/custom/dock/GlassDock.vue.d.ts +96 -0
  92. package/dist/components/custom/dock/composables/dockContext.d.ts +40 -0
  93. package/dist/components/custom/dock/composables/dockLayerContext.d.ts +29 -0
  94. package/dist/components/custom/dock/composables/index.d.ts +7 -0
  95. package/dist/components/custom/dock/composables/isTeleportedTarget.d.ts +9 -0
  96. package/dist/components/custom/dock/composables/useDockState.d.ts +70 -0
  97. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +34 -0
  98. package/dist/components/custom/dock/index.d.ts +9 -0
  99. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +40 -0
  100. package/dist/components/custom/glass-carousel/GlassCarousel.vue.d.ts +36 -0
  101. package/dist/components/custom/glass-carousel/GlassCarouselItem.vue.d.ts +28 -0
  102. package/dist/components/custom/glass-carousel/index.d.ts +4 -0
  103. package/dist/components/custom/glass-carousel/useGlassCarousel.d.ts +30 -0
  104. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +41 -0
  105. package/dist/components/custom/glass-panel/index.d.ts +2 -0
  106. package/dist/components/custom/glyph-face/GlyphFace.vue.d.ts +64 -0
  107. package/dist/components/custom/glyph-face/index.d.ts +2 -0
  108. package/dist/components/custom/glyph-face/keys.d.ts +35 -0
  109. package/dist/components/custom/header-ribbon/HeaderRibbon.vue.d.ts +31 -0
  110. package/dist/components/custom/header-ribbon/index.d.ts +2 -0
  111. package/dist/components/custom/header-ribbon/types.d.ts +7 -0
  112. package/dist/components/custom/hover-popover/HoverPopover.vue.d.ts +71 -0
  113. package/dist/components/custom/hover-popover/index.d.ts +1 -0
  114. package/dist/components/custom/icon-tooltip/IconTooltip.vue.d.ts +16 -0
  115. package/dist/components/custom/infinite-scroll/InfiniteScroll.vue.d.ts +33 -0
  116. package/dist/components/custom/infinite-scroll/composables/types.d.ts +21 -0
  117. package/dist/components/custom/infinite-scroll/composables/useInfiniteScroll.d.ts +9 -0
  118. package/dist/components/custom/instrument-chassis/ChassisDivider.vue.d.ts +30 -0
  119. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +82 -0
  120. package/dist/components/custom/instrument-chassis/index.d.ts +3 -0
  121. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +91 -0
  122. package/dist/components/custom/instrument-rail/index.d.ts +2 -0
  123. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +36 -0
  124. package/dist/components/custom/labeled-field/LabeledInput.vue.d.ts +15 -0
  125. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +18 -0
  126. package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +16 -0
  127. package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +13 -0
  128. package/dist/components/custom/labeled-field/index.d.ts +5 -0
  129. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +39 -0
  130. package/dist/components/custom/metric-badge/index.d.ts +1 -0
  131. package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +97 -0
  132. package/dist/components/custom/metric-cell/index.d.ts +2 -0
  133. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +103 -0
  134. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +92 -0
  135. package/dist/components/custom/metric-stack/index.d.ts +4 -0
  136. package/dist/components/custom/paper-backdrop/PaperBackdrop.vue.d.ts +21 -0
  137. package/dist/components/custom/paper-backdrop/index.d.ts +2 -0
  138. package/dist/components/custom/pulse/Pulse.vue.d.ts +53 -0
  139. package/dist/components/custom/pulse/index.d.ts +1 -0
  140. package/dist/components/custom/responsive-tabs/ResponsiveTabs.vue.d.ts +67 -0
  141. package/dist/components/custom/responsive-tabs/index.d.ts +2 -0
  142. package/dist/components/custom/scrolling-text/ScrollingText.vue.d.ts +20 -0
  143. package/dist/components/custom/scrolling-text/index.d.ts +1 -0
  144. package/dist/components/custom/search/FuzzySearch.vue.d.ts +16 -0
  145. package/dist/components/custom/search/SearchBar.vue.d.ts +30 -0
  146. package/dist/components/custom/search/composables/fuzzySearchIndex.d.ts +42 -0
  147. package/dist/components/custom/search/composables/types.d.ts +31 -0
  148. package/dist/components/custom/search/composables/useFuzzySearch.d.ts +12 -0
  149. package/dist/components/custom/sortable-list/SortableHandle.vue.d.ts +32 -0
  150. package/dist/components/custom/sortable-list/SortableItem.vue.d.ts +38 -0
  151. package/dist/components/custom/sortable-list/SortableList.vue.d.ts +76 -0
  152. package/dist/components/custom/sortable-list/context.d.ts +26 -0
  153. package/dist/components/custom/sortable-list/index.d.ts +4 -0
  154. package/dist/components/custom/stacked-icons/StackedIconGroup.vue.d.ts +30 -0
  155. package/dist/components/custom/stacked-icons/index.d.ts +2 -0
  156. package/dist/components/custom/stacked-icons/types.d.ts +18 -0
  157. package/dist/components/custom/status-dot/StatusDot.vue.d.ts +18 -0
  158. package/dist/components/custom/status-dot/index.d.ts +1 -0
  159. package/dist/components/custom/tabs/BouncyTabs.vue.d.ts +24 -0
  160. package/dist/components/custom/tabs/BouncyToggle.vue.d.ts +56 -0
  161. package/dist/components/custom/tabs/UnderlineTabs.vue.d.ts +17 -0
  162. package/dist/components/custom/timeline/ContinuousTimeline.vue.d.ts +118 -0
  163. package/dist/components/custom/timeline/GlassTimeline.vue.d.ts +114 -0
  164. package/dist/components/custom/timeline/ScrubberTimeline.vue.d.ts +29 -0
  165. package/dist/components/custom/timeline/SegmentedTimeline.vue.d.ts +46 -0
  166. package/dist/components/custom/timeline/geometry.d.ts +100 -0
  167. package/dist/components/custom/timeline/index.d.ts +2 -0
  168. package/dist/components/custom/timeline/types.d.ts +57 -0
  169. package/dist/components/custom/toggle-chip/ToggleChip.vue.d.ts +39 -0
  170. package/dist/components/custom/toggle-chip/index.d.ts +17 -0
  171. package/dist/components/custom/typewriter/TypewriterText.vue.d.ts +85 -0
  172. package/dist/components/custom/typewriter/composables/useTypewriter.d.ts +22 -0
  173. package/dist/components/custom/typewriter/types.d.ts +137 -0
  174. package/dist/components/custom/typewriter/utils/keyboard.d.ts +15 -0
  175. package/dist/components/custom/typewriter/utils/pausePatterns.d.ts +28 -0
  176. package/dist/components/custom/typewriter/utils/timing.d.ts +17 -0
  177. package/dist/components/custom/typewriter/utils/typoStateMachine.d.ts +24 -0
  178. package/dist/components/ui/_shared/ModalOverlay.vue.d.ts +90 -0
  179. package/dist/components/ui/_shared/index.d.ts +2 -0
  180. package/dist/components/ui/_shared/menuItemVariants.d.ts +32 -0
  181. package/dist/components/ui/_shared/useStalePropWarning.d.ts +27 -0
  182. package/dist/components/ui/accordion/Accordion.vue.d.ts +19 -0
  183. package/dist/components/ui/accordion/AccordionContent.vue.d.ts +18 -0
  184. package/dist/components/ui/accordion/AccordionItem.vue.d.ts +18 -0
  185. package/dist/components/ui/accordion/AccordionTrigger.vue.d.ts +20 -0
  186. package/dist/components/ui/accordion/index.d.ts +4 -0
  187. package/dist/components/ui/alert/Alert.vue.d.ts +19 -0
  188. package/dist/components/ui/alert/AlertDescription.vue.d.ts +17 -0
  189. package/dist/components/ui/alert/AlertTitle.vue.d.ts +17 -0
  190. package/dist/components/ui/alert/index.d.ts +8 -0
  191. package/dist/components/ui/avatar/Avatar.vue.d.ts +23 -0
  192. package/dist/components/ui/avatar/AvatarFallback.vue.d.ts +14 -0
  193. package/dist/components/ui/avatar/AvatarImage.vue.d.ts +4 -0
  194. package/dist/components/ui/avatar/index.d.ts +9 -0
  195. package/dist/components/ui/badge/Badge.vue.d.ts +20 -0
  196. package/dist/components/ui/badge/index.d.ts +7 -0
  197. package/dist/components/ui/button/Button.vue.d.ts +23 -0
  198. package/dist/components/ui/button/index.d.ts +7 -0
  199. package/dist/components/ui/card/Card.vue.d.ts +56 -0
  200. package/dist/components/ui/card/CardContent.vue.d.ts +17 -0
  201. package/dist/components/ui/card/CardDescription.vue.d.ts +17 -0
  202. package/dist/components/ui/card/CardFooter.vue.d.ts +17 -0
  203. package/dist/components/ui/card/CardHeader.vue.d.ts +55 -0
  204. package/dist/components/ui/card/CardTitle.vue.d.ts +17 -0
  205. package/dist/components/ui/card/index.d.ts +6 -0
  206. package/dist/components/ui/carousel/Carousel.vue.d.ts +37 -0
  207. package/dist/components/ui/carousel/CarouselContent.vue.d.ts +16 -0
  208. package/dist/components/ui/carousel/CarouselDots.vue.d.ts +4 -0
  209. package/dist/components/ui/carousel/CarouselItem.vue.d.ts +14 -0
  210. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +22 -0
  211. package/dist/components/ui/carousel/CarouselPager.vue.d.ts +10 -0
  212. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +22 -0
  213. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +51 -0
  214. package/dist/components/ui/carousel/index.d.ts +10 -0
  215. package/dist/components/ui/carousel/interface.d.ts +20 -0
  216. package/dist/components/ui/carousel/useCarousel.d.ts +20 -0
  217. package/dist/components/ui/checkbox/Checkbox.vue.d.ts +22 -0
  218. package/dist/components/ui/checkbox/index.d.ts +1 -0
  219. package/dist/components/ui/collapsible/Collapsible.vue.d.ts +20 -0
  220. package/dist/components/ui/collapsible/CollapsibleContent.vue.d.ts +14 -0
  221. package/dist/components/ui/collapsible/CollapsibleTrigger.vue.d.ts +14 -0
  222. package/dist/components/ui/collapsible/index.d.ts +3 -0
  223. package/dist/components/ui/combobox/Combobox.vue.d.ts +29 -0
  224. package/dist/components/ui/combobox/ComboboxAnchor.vue.d.ts +18 -0
  225. package/dist/components/ui/combobox/ComboboxEmpty.vue.d.ts +18 -0
  226. package/dist/components/ui/combobox/ComboboxGroup.vue.d.ts +19 -0
  227. package/dist/components/ui/combobox/ComboboxInput.vue.d.ts +22 -0
  228. package/dist/components/ui/combobox/ComboboxItem.vue.d.ts +22 -0
  229. package/dist/components/ui/combobox/ComboboxItemIndicator.vue.d.ts +18 -0
  230. package/dist/components/ui/combobox/ComboboxList.vue.d.ts +32 -0
  231. package/dist/components/ui/combobox/ComboboxSeparator.vue.d.ts +18 -0
  232. package/dist/components/ui/combobox/ComboboxViewport.vue.d.ts +18 -0
  233. package/dist/components/ui/combobox/index.d.ts +11 -0
  234. package/dist/components/ui/command/Command.vue.d.ts +35 -0
  235. package/dist/components/ui/command/CommandDialog.vue.d.ts +18 -0
  236. package/dist/components/ui/command/CommandEmpty.vue.d.ts +18 -0
  237. package/dist/components/ui/command/CommandGroup.vue.d.ts +19 -0
  238. package/dist/components/ui/command/CommandInput.vue.d.ts +8 -0
  239. package/dist/components/ui/command/CommandItem.vue.d.ts +22 -0
  240. package/dist/components/ui/command/CommandList.vue.d.ts +30 -0
  241. package/dist/components/ui/command/CommandSeparator.vue.d.ts +18 -0
  242. package/dist/components/ui/command/CommandShortcut.vue.d.ts +17 -0
  243. package/dist/components/ui/command/index.d.ts +9 -0
  244. package/dist/components/ui/context-menu/ContextMenu.vue.d.ts +18 -0
  245. package/dist/components/ui/context-menu/ContextMenuCheckboxItem.vue.d.ts +24 -0
  246. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +30 -0
  247. package/dist/components/ui/context-menu/ContextMenuItem.vue.d.ts +23 -0
  248. package/dist/components/ui/context-menu/ContextMenuLabel.vue.d.ts +19 -0
  249. package/dist/components/ui/context-menu/ContextMenuRadioGroup.vue.d.ts +18 -0
  250. package/dist/components/ui/context-menu/ContextMenuRadioItem.vue.d.ts +22 -0
  251. package/dist/components/ui/context-menu/ContextMenuSeparator.vue.d.ts +8 -0
  252. package/dist/components/ui/context-menu/ContextMenuShortcut.vue.d.ts +17 -0
  253. package/dist/components/ui/context-menu/ContextMenuSubContent.vue.d.ts +34 -0
  254. package/dist/components/ui/context-menu/ContextMenuSubTrigger.vue.d.ts +19 -0
  255. package/dist/components/ui/context-menu/ContextMenuTrigger.vue.d.ts +14 -0
  256. package/dist/components/ui/context-menu/index.d.ts +12 -0
  257. package/dist/components/ui/data-table/DataTable.vue.d.ts +81 -0
  258. package/dist/components/ui/data-table/DataTablePagination.vue.d.ts +13 -0
  259. package/dist/components/ui/data-table/types.d.ts +56 -0
  260. package/dist/components/ui/dialog/Dialog.vue.d.ts +18 -0
  261. package/dist/components/ui/dialog/DialogClose.vue.d.ts +14 -0
  262. package/dist/components/ui/dialog/DialogContent.vue.d.ts +71 -0
  263. package/dist/components/ui/dialog/DialogDescription.vue.d.ts +18 -0
  264. package/dist/components/ui/dialog/DialogFooter.vue.d.ts +17 -0
  265. package/dist/components/ui/dialog/DialogHeader.vue.d.ts +17 -0
  266. package/dist/components/ui/dialog/DialogScrollContent.vue.d.ts +33 -0
  267. package/dist/components/ui/dialog/DialogTitle.vue.d.ts +18 -0
  268. package/dist/components/ui/dialog/DialogTrigger.vue.d.ts +14 -0
  269. package/dist/components/ui/dialog/index.d.ts +9 -0
  270. package/dist/components/ui/drawer/Drawer.vue.d.ts +53 -0
  271. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +43 -0
  272. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +18 -0
  273. package/dist/components/ui/drawer/DrawerFooter.vue.d.ts +17 -0
  274. package/dist/components/ui/drawer/DrawerHeader.vue.d.ts +17 -0
  275. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +8 -0
  276. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +18 -0
  277. package/dist/components/ui/drawer/index.d.ts +17 -0
  278. package/dist/components/ui/dropdown-menu/DropdownMenu.vue.d.ts +18 -0
  279. package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +24 -0
  280. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +32 -0
  281. package/dist/components/ui/dropdown-menu/DropdownMenuGroup.vue.d.ts +14 -0
  282. package/dist/components/ui/dropdown-menu/DropdownMenuItem.vue.d.ts +19 -0
  283. package/dist/components/ui/dropdown-menu/DropdownMenuLabel.vue.d.ts +19 -0
  284. package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue.d.ts +18 -0
  285. package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.vue.d.ts +22 -0
  286. package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.vue.d.ts +8 -0
  287. package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.vue.d.ts +17 -0
  288. package/dist/components/ui/dropdown-menu/DropdownMenuSub.vue.d.ts +18 -0
  289. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +34 -0
  290. package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts +18 -0
  291. package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.vue.d.ts +14 -0
  292. package/dist/components/ui/dropdown-menu/index.d.ts +15 -0
  293. package/dist/components/ui/hover-card/HoverCard.vue.d.ts +18 -0
  294. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +20 -0
  295. package/dist/components/ui/hover-card/HoverCardTrigger.vue.d.ts +14 -0
  296. package/dist/components/ui/hover-card/index.d.ts +3 -0
  297. package/dist/components/ui/index.d.ts +41 -0
  298. package/dist/components/ui/input/Input.vue.d.ts +13 -0
  299. package/dist/components/ui/input/index.d.ts +1 -0
  300. package/dist/components/ui/label/Label.vue.d.ts +18 -0
  301. package/dist/components/ui/label/index.d.ts +1 -0
  302. package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +43 -0
  303. package/dist/components/ui/metric-pill/index.d.ts +1 -0
  304. package/dist/components/ui/multi-select/MultiSelect.vue.d.ts +24 -0
  305. package/dist/components/ui/multi-select/index.d.ts +7 -0
  306. package/dist/components/ui/notification/Notification.vue.d.ts +16 -0
  307. package/dist/components/ui/notification/index.d.ts +1 -0
  308. package/dist/components/ui/number-field/NumberField.vue.d.ts +22 -0
  309. package/dist/components/ui/number-field/NumberFieldContent.vue.d.ts +17 -0
  310. package/dist/components/ui/number-field/NumberFieldDecrement.vue.d.ts +18 -0
  311. package/dist/components/ui/number-field/NumberFieldIncrement.vue.d.ts +18 -0
  312. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +3 -0
  313. package/dist/components/ui/number-field/index.d.ts +5 -0
  314. package/dist/components/ui/popover/Popover.vue.d.ts +18 -0
  315. package/dist/components/ui/popover/PopoverContent.vue.d.ts +39 -0
  316. package/dist/components/ui/popover/PopoverTrigger.vue.d.ts +14 -0
  317. package/dist/components/ui/popover/index.d.ts +3 -0
  318. package/dist/components/ui/progress/Progress.vue.d.ts +111 -0
  319. package/dist/components/ui/progress/index.d.ts +2 -0
  320. package/dist/components/ui/radio-group/RadioGroup.vue.d.ts +22 -0
  321. package/dist/components/ui/radio-group/RadioGroupItem.vue.d.ts +8 -0
  322. package/dist/components/ui/radio-group/index.d.ts +2 -0
  323. package/dist/components/ui/section/Section.vue.d.ts +73 -0
  324. package/dist/components/ui/section/index.d.ts +1 -0
  325. package/dist/components/ui/select/Select.vue.d.ts +21 -0
  326. package/dist/components/ui/select/SelectContent.vue.d.ts +30 -0
  327. package/dist/components/ui/select/SelectGroup.vue.d.ts +18 -0
  328. package/dist/components/ui/select/SelectItem.vue.d.ts +21 -0
  329. package/dist/components/ui/select/SelectLabel.vue.d.ts +18 -0
  330. package/dist/components/ui/select/SelectScrollDownButton.vue.d.ts +18 -0
  331. package/dist/components/ui/select/SelectScrollUpButton.vue.d.ts +18 -0
  332. package/dist/components/ui/select/SelectSeparator.vue.d.ts +8 -0
  333. package/dist/components/ui/select/SelectTrigger.vue.d.ts +22 -0
  334. package/dist/components/ui/select/SelectValue.vue.d.ts +14 -0
  335. package/dist/components/ui/select/index.d.ts +10 -0
  336. package/dist/components/ui/separator/Separator.vue.d.ts +9 -0
  337. package/dist/components/ui/separator/index.d.ts +1 -0
  338. package/dist/components/ui/sheet/Sheet.vue.d.ts +18 -0
  339. package/dist/components/ui/sheet/SheetClose.vue.d.ts +14 -0
  340. package/dist/components/ui/sheet/SheetContent.vue.d.ts +53 -0
  341. package/dist/components/ui/sheet/SheetDescription.vue.d.ts +18 -0
  342. package/dist/components/ui/sheet/SheetFooter.vue.d.ts +17 -0
  343. package/dist/components/ui/sheet/SheetHeader.vue.d.ts +17 -0
  344. package/dist/components/ui/sheet/SheetTitle.vue.d.ts +18 -0
  345. package/dist/components/ui/sheet/SheetTrigger.vue.d.ts +14 -0
  346. package/dist/components/ui/sheet/index.d.ts +13 -0
  347. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +32 -0
  348. package/dist/components/ui/skeleton/index.d.ts +1 -0
  349. package/dist/components/ui/slider/Slider.vue.d.ts +26 -0
  350. package/dist/components/ui/slider/index.d.ts +31 -0
  351. package/dist/components/ui/switch/Switch.vue.d.ts +12 -0
  352. package/dist/components/ui/switch/index.d.ts +1 -0
  353. package/dist/components/ui/table/Table.vue.d.ts +17 -0
  354. package/dist/components/ui/table/TableBody.vue.d.ts +17 -0
  355. package/dist/components/ui/table/TableCaption.vue.d.ts +17 -0
  356. package/dist/components/ui/table/TableCell.vue.d.ts +17 -0
  357. package/dist/components/ui/table/TableEmpty.vue.d.ts +20 -0
  358. package/dist/components/ui/table/TableHead.vue.d.ts +17 -0
  359. package/dist/components/ui/table/TableHeader.vue.d.ts +17 -0
  360. package/dist/components/ui/table/TableRow.vue.d.ts +17 -0
  361. package/dist/components/ui/table/index.d.ts +8 -0
  362. package/dist/components/ui/tabs/Tabs.vue.d.ts +19 -0
  363. package/dist/components/ui/tabs/TabsContent.vue.d.ts +18 -0
  364. package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +8 -0
  365. package/dist/components/ui/tabs/TabsList.vue.d.ts +18 -0
  366. package/dist/components/ui/tabs/TabsTrigger.vue.d.ts +18 -0
  367. package/dist/components/ui/tabs/index.d.ts +5 -0
  368. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +28 -0
  369. package/dist/components/ui/tags-input/TagsInputInput.vue.d.ts +8 -0
  370. package/dist/components/ui/tags-input/TagsInputItem.vue.d.ts +18 -0
  371. package/dist/components/ui/tags-input/TagsInputItemDelete.vue.d.ts +18 -0
  372. package/dist/components/ui/tags-input/TagsInputItemText.vue.d.ts +8 -0
  373. package/dist/components/ui/tags-input/index.d.ts +5 -0
  374. package/dist/components/ui/textarea/Textarea.vue.d.ts +13 -0
  375. package/dist/components/ui/textarea/index.d.ts +1 -0
  376. package/dist/components/ui/toast/Toast.vue.d.ts +104 -0
  377. package/dist/components/ui/toast/ToastAction.vue.d.ts +18 -0
  378. package/dist/components/ui/toast/ToastClose.vue.d.ts +8 -0
  379. package/dist/components/ui/toast/ToastDescription.vue.d.ts +18 -0
  380. package/dist/components/ui/toast/ToastTitle.vue.d.ts +18 -0
  381. package/dist/components/ui/toast/Toaster.vue.d.ts +3 -0
  382. package/dist/components/ui/toast/index.d.ts +8 -0
  383. package/dist/components/ui/toast/use-toast.d.ts +168 -0
  384. package/dist/components/ui/toggle/Toggle.vue.d.ts +29 -0
  385. package/dist/components/ui/toggle/index.d.ts +26 -0
  386. package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +25 -0
  387. package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +21 -0
  388. package/dist/components/ui/toggle-group/index.d.ts +2 -0
  389. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +21 -0
  390. package/dist/components/ui/tooltip/Tooltip.vue.d.ts +18 -0
  391. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +26 -0
  392. package/dist/components/ui/tooltip/TooltipProvider.vue.d.ts +14 -0
  393. package/dist/components/ui/tooltip/TooltipTrigger.vue.d.ts +14 -0
  394. package/dist/components/ui/tooltip/index.d.ts +4 -0
  395. package/dist/composables/dark/index.d.ts +1 -0
  396. package/dist/composables/dark/useGlobalDark.d.ts +7 -0
  397. package/dist/composables/dom/index.d.ts +6 -0
  398. package/dist/composables/dom/useBreakpoint.d.ts +38 -0
  399. package/dist/composables/dom/useClipboard.d.ts +45 -0
  400. package/dist/composables/dom/useResizeObserver.d.ts +50 -0
  401. package/dist/composables/dom/useTokenColor.d.ts +27 -0
  402. package/dist/composables/dom/useTouchGate.d.ts +18 -0
  403. package/dist/composables/dom/useViewportReady.d.ts +87 -0
  404. package/dist/composables/glass/index.d.ts +1 -0
  405. package/dist/composables/glass/useGlassRenderer.d.ts +37 -0
  406. package/dist/composables/glass/webgl/frostShader.d.ts +27 -0
  407. package/dist/composables/index.d.ts +9 -0
  408. package/dist/composables/keyboard/index.d.ts +1 -0
  409. package/dist/composables/keyboard/useKeyboardShortcuts.d.ts +33 -0
  410. package/dist/composables/motion/constants.d.ts +19 -0
  411. package/dist/composables/motion/index.d.ts +14 -0
  412. package/dist/composables/motion/installDarkModeSync.d.ts +1 -0
  413. package/dist/composables/motion/useAnimatedNumber.d.ts +40 -0
  414. package/dist/composables/motion/useAnimatedNumberMap.d.ts +29 -0
  415. package/dist/composables/motion/useIntersectionPause.d.ts +33 -0
  416. package/dist/composables/motion/useNumericTransition.d.ts +32 -0
  417. package/dist/composables/motion/useRAFLoop.d.ts +43 -0
  418. package/dist/composables/motion/useScrollProgress.d.ts +23 -0
  419. package/dist/composables/motion/useSpring.d.ts +66 -0
  420. package/dist/composables/motion/useSpringMount.d.ts +52 -0
  421. package/dist/composables/motion/useSpringOrchestrator.d.ts +15 -0
  422. package/dist/composables/motion/useSpringPress.d.ts +46 -0
  423. package/dist/composables/motion/useStagger.d.ts +50 -0
  424. package/dist/composables/motion/useStaggerReveal.d.ts +22 -0
  425. package/dist/composables/reactive/index.d.ts +2 -0
  426. package/dist/composables/reactive/useInterval.d.ts +24 -0
  427. package/dist/composables/reactive/useTimer.d.ts +24 -0
  428. package/dist/composables/sidebar/index.d.ts +7 -0
  429. package/dist/composables/sidebar/types.d.ts +44 -0
  430. package/dist/composables/sidebar/useScrollTracker.d.ts +12 -0
  431. package/dist/composables/sidebar/useSidebarFollow.d.ts +16 -0
  432. package/dist/composables/sidebar/useSidebarState.d.ts +39 -0
  433. package/dist/composables/sidebar/useTreeIndex.d.ts +37 -0
  434. package/dist/composables/sortable/index.d.ts +1 -0
  435. package/dist/composables/sortable/useSortable.d.ts +149 -0
  436. package/dist/configurator.d.ts +1 -0
  437. package/dist/configurator.js +2 -0
  438. package/dist/confirm-dialog.d.ts +1 -0
  439. package/dist/confirm-dialog.js +69 -0
  440. package/dist/context-menu.d.ts +1 -0
  441. package/dist/context-menu.js +3 -0
  442. package/dist/controls.d.ts +1 -0
  443. package/dist/controls.js +51 -0
  444. package/dist/createLucideIcon-Bn9a1b70.js +43 -0
  445. package/dist/dark.d.ts +1 -0
  446. package/dist/dark.js +2 -0
  447. package/dist/data-table.d.ts +1 -0
  448. package/dist/data-table.js +2 -0
  449. package/dist/dialog.d.ts +1 -0
  450. package/dist/dialog.js +3 -0
  451. package/dist/disco-glyph.d.ts +1 -0
  452. package/dist/disco-glyph.js +2 -0
  453. package/dist/dock.d.ts +1 -0
  454. package/dist/dock.js +548 -0
  455. package/dist/dockContext-BDGSrwsV.js +16 -0
  456. package/dist/dom.d.ts +1 -0
  457. package/dist/dom.js +4 -0
  458. package/dist/dropdown-menu-2K-SGkZU.js +363 -0
  459. package/dist/dropdown-menu.d.ts +1 -0
  460. package/dist/dropdown-menu.js +2 -0
  461. package/dist/expandable-container.d.ts +1 -0
  462. package/dist/expandable-container.js +64 -0
  463. package/dist/fonts/README.md +95 -0
  464. package/dist/fonts/fira-code/OFL.txt +93 -0
  465. package/dist/fonts/fira-code/fira-code-latin-ext.woff2 +0 -0
  466. package/dist/fonts/fira-code/fira-code-latin.woff2 +0 -0
  467. package/dist/fonts/plus-jakarta-sans/OFL.txt +93 -0
  468. package/dist/fonts/plus-jakarta-sans/plus-jakarta-sans-latin-ext.woff2 +0 -0
  469. package/dist/fonts/plus-jakarta-sans/plus-jakarta-sans-latin.woff2 +0 -0
  470. package/dist/forms.d.ts +3 -0
  471. package/dist/forms.js +311 -0
  472. package/dist/glass-carousel.d.ts +1 -0
  473. package/dist/glass-carousel.js +207 -0
  474. package/dist/glass-panel.d.ts +1 -0
  475. package/dist/glass-panel.js +44 -0
  476. package/dist/glass-ui.css +2 -1
  477. package/dist/glass-ui.js +1174 -10021
  478. package/dist/glyph-face.d.ts +1 -0
  479. package/dist/glyph-face.js +3 -0
  480. package/dist/header-ribbon.d.ts +1 -0
  481. package/dist/header-ribbon.js +63 -0
  482. package/dist/hover-card.d.ts +1 -0
  483. package/dist/hover-card.js +2 -0
  484. package/dist/hover-popover.d.ts +1 -0
  485. package/dist/hover-popover.js +2 -0
  486. package/dist/icon-tooltip.d.ts +1 -0
  487. package/dist/icon-tooltip.js +2 -0
  488. package/dist/index.d.ts +49 -6619
  489. package/dist/infinite-scroll.d.ts +2 -0
  490. package/dist/infinite-scroll.js +73 -0
  491. package/dist/instrument-chassis.d.ts +1 -0
  492. package/dist/instrument-chassis.js +2 -0
  493. package/dist/instrument-rail.d.ts +1 -0
  494. package/dist/instrument-rail.js +2 -0
  495. package/dist/keyboard.d.ts +1 -0
  496. package/dist/keyboard.js +2 -0
  497. package/dist/keys-DVkcUktU.js +11 -0
  498. package/dist/label.d.ts +1 -0
  499. package/dist/label.js +2 -0
  500. package/dist/labeled-field.d.ts +1 -0
  501. package/dist/labeled-field.js +194 -0
  502. package/dist/menuItemVariants-B2nDL7zH.js +30 -0
  503. package/dist/metric-badge.d.ts +1 -0
  504. package/dist/metric-badge.js +2 -0
  505. package/dist/metric-cell.d.ts +1 -0
  506. package/dist/metric-cell.js +54 -0
  507. package/dist/metric-stack.d.ts +1 -0
  508. package/dist/metric-stack.js +107 -0
  509. package/dist/minimize-2-LsCJ_eNt.js +38 -0
  510. package/dist/motion.d.ts +1 -0
  511. package/dist/motion.js +286 -0
  512. package/dist/notification.d.ts +1 -0
  513. package/dist/notification.js +2 -0
  514. package/dist/paper-backdrop.d.ts +1 -0
  515. package/dist/paper-backdrop.js +2 -0
  516. package/dist/popover.d.ts +1 -0
  517. package/dist/popover.js +2 -0
  518. package/dist/presets-BMzCDrmR.js +71 -0
  519. package/dist/progress.d.ts +1 -0
  520. package/dist/progress.js +2 -0
  521. package/dist/pulse.d.ts +1 -0
  522. package/dist/pulse.js +54 -0
  523. package/dist/reactive.d.ts +1 -0
  524. package/dist/reactive.js +3 -0
  525. package/dist/responsive-tabs.d.ts +1 -0
  526. package/dist/responsive-tabs.js +89 -0
  527. package/dist/scrolling-text.d.ts +1 -0
  528. package/dist/scrolling-text.js +2 -0
  529. package/dist/search-ocd8tmL9.js +12 -0
  530. package/dist/search.d.ts +1 -0
  531. package/dist/search.js +425 -0
  532. package/dist/select.d.ts +1 -0
  533. package/dist/select.js +4 -0
  534. package/dist/separator.d.ts +1 -0
  535. package/dist/separator.js +2 -0
  536. package/dist/sheet-CLVkb3AO.js +214 -0
  537. package/dist/sheet.d.ts +1 -0
  538. package/dist/sheet.js +2 -0
  539. package/dist/sidebar.d.ts +1 -0
  540. package/dist/sidebar.js +304 -0
  541. package/dist/slider-BQaLYFLh.js +133 -0
  542. package/dist/slider.d.ts +1 -0
  543. package/dist/slider.js +2 -0
  544. package/dist/sortable-list.d.ts +1 -0
  545. package/dist/sortable-list.js +85 -0
  546. package/dist/stacked-icons.d.ts +1 -0
  547. package/dist/stacked-icons.js +83 -0
  548. package/dist/status-dot.d.ts +1 -0
  549. package/dist/status-dot.js +58 -0
  550. package/dist/styles/animations.css +298 -0
  551. package/dist/styles/cards.css +44 -0
  552. package/dist/styles/disco-glyph.css +26 -0
  553. package/dist/styles/dock.css +1085 -0
  554. package/dist/styles/drawer.css +138 -0
  555. package/dist/styles/floating-panel.css +34 -0
  556. package/dist/styles/fonts.css +143 -0
  557. package/dist/styles/glass.css +277 -0
  558. package/dist/styles/glyph-face.css +92 -0
  559. package/dist/styles/hover-popover.css +44 -0
  560. package/dist/styles/index.css +112 -0
  561. package/dist/styles/instrument-chassis.css +313 -0
  562. package/dist/styles/instrument-rail.css +128 -0
  563. package/dist/styles/paper.css +68 -0
  564. package/dist/styles/theme.css +358 -0
  565. package/dist/styles/tokens.css +1495 -0
  566. package/dist/styles/transitions.css +245 -0
  567. package/dist/styles/typography.css +553 -0
  568. package/dist/styles/utilities.css +893 -0
  569. package/dist/tabs.d.ts +1 -0
  570. package/dist/tabs.js +206 -0
  571. package/dist/timeline.d.ts +1 -0
  572. package/dist/timeline.js +466 -0
  573. package/dist/toast.d.ts +1 -0
  574. package/dist/toast.js +2 -0
  575. package/dist/toggle-chip.d.ts +1 -0
  576. package/dist/toggle-chip.js +71 -0
  577. package/dist/toggle-group.d.ts +1 -0
  578. package/dist/toggle-group.js +2 -0
  579. package/dist/tokens.d.ts +53 -0
  580. package/dist/tokens.js +16 -0
  581. package/dist/tooltip.d.ts +1 -0
  582. package/dist/tooltip.js +2 -0
  583. package/dist/typewriter.d.ts +1 -0
  584. package/dist/typewriter.js +860 -0
  585. package/dist/useAnimatedNumber-DcvTR9B4.js +51 -0
  586. package/dist/useBreakpoint-BHlX-MhR.js +134 -0
  587. package/dist/useConfiguratorState-BlaevW0S.js +266 -0
  588. package/dist/useGlassRenderer-DMDdMH55.js +69 -0
  589. package/dist/useGlobalDark-PMiP5Jku.js +24 -0
  590. package/dist/useIntersectionPause-CXYfYg_C.js +39 -0
  591. package/dist/useInterval-COlTCeVa.js +18 -0
  592. package/dist/useKeyboardShortcuts-B1ev1YEC.js +99 -0
  593. package/dist/useResizeObserver-F4aRR4Cj.js +44 -0
  594. package/dist/useSortable-Ck0rBJ4g.js +175 -0
  595. package/dist/useSpringMount-BTRBNzXP.js +113 -0
  596. package/dist/useTimer-lp5NlH4w.js +20 -0
  597. package/dist/useTouchGate-BhhEMlwJ.js +84 -0
  598. package/dist/utils/cn.d.ts +27 -0
  599. package/dist/x-cdWAmO-q.js +10 -0
  600. package/package.json +514 -26
  601. package/src/fonts/README.md +95 -0
  602. package/src/fonts/fira-code/OFL.txt +93 -0
  603. package/src/fonts/fira-code/fira-code-latin-ext.woff2 +0 -0
  604. package/src/fonts/fira-code/fira-code-latin.woff2 +0 -0
  605. package/src/fonts/plus-jakarta-sans/OFL.txt +93 -0
  606. package/src/fonts/plus-jakarta-sans/plus-jakarta-sans-latin-ext.woff2 +0 -0
  607. package/src/fonts/plus-jakarta-sans/plus-jakarta-sans-latin.woff2 +0 -0
  608. package/src/styles/animations.css +172 -107
  609. package/src/styles/cards.css +30 -52
  610. package/src/styles/disco-glyph.css +26 -0
  611. package/src/styles/dock.css +991 -127
  612. package/src/styles/drawer.css +138 -0
  613. package/src/styles/floating-panel.css +22 -37
  614. package/src/styles/fonts.css +143 -0
  615. package/src/styles/glass.css +129 -126
  616. package/src/styles/glyph-face.css +92 -0
  617. package/src/styles/hover-popover.css +44 -0
  618. package/src/styles/index.css +85 -3
  619. package/src/styles/instrument-chassis.css +313 -0
  620. package/src/styles/instrument-rail.css +128 -0
  621. package/src/styles/paper.css +68 -0
  622. package/src/styles/theme.css +292 -72
  623. package/src/styles/tokens.css +1345 -183
  624. package/src/styles/transitions.css +227 -208
  625. package/src/styles/typography.css +498 -222
  626. package/src/styles/utilities.css +612 -437
  627. package/src/components/custom/aurora/Aurora.vue +0 -34
  628. package/src/components/custom/aurora/composables/color.ts +0 -122
  629. package/src/components/custom/aurora/composables/useAurora.ts +0 -352
  630. package/src/components/custom/aurora/index.ts +0 -8
  631. package/src/components/custom/confirm-dialog/ConfirmDialog.vue +0 -88
  632. package/src/components/custom/controls/DarkModeToggle.vue +0 -96
  633. package/src/components/custom/dock/DockLayerGroup.vue +0 -21
  634. package/src/components/custom/dock/DockPopover.vue +0 -263
  635. package/src/components/custom/dock/GlassDock.vue +0 -276
  636. package/src/components/custom/dock/composables/index.ts +0 -16
  637. package/src/components/custom/dock/composables/isTeleportedTarget.ts +0 -19
  638. package/src/components/custom/dock/composables/useDockActionBar.ts +0 -33
  639. package/src/components/custom/dock/composables/useDockState.ts +0 -314
  640. package/src/components/custom/dock/composables/useDockTransition.ts +0 -146
  641. package/src/components/custom/dock/composables/useLayerTransition.ts +0 -135
  642. package/src/components/custom/dock/composables/usePopupMutex.ts +0 -83
  643. package/src/components/custom/dock/index.ts +0 -9
  644. package/src/components/custom/expandable-container/ExpandableContainer.vue +0 -64
  645. package/src/components/custom/glass-panel/GlassPanel.vue +0 -98
  646. package/src/components/custom/glass-panel/index.ts +0 -2
  647. package/src/components/custom/icon-tooltip/IconTooltip.vue +0 -20
  648. package/src/components/custom/index.ts +0 -15
  649. package/src/components/custom/infinite-scroll/InfiniteScroll.vue +0 -55
  650. package/src/components/custom/infinite-scroll/composables/types.ts +0 -23
  651. package/src/components/custom/infinite-scroll/composables/useInfiniteScroll.ts +0 -73
  652. package/src/components/custom/labeled-field/LabeledInput.vue +0 -29
  653. package/src/components/custom/labeled-field/LabeledSelect.vue +0 -59
  654. package/src/components/custom/labeled-field/LabeledSlider.vue +0 -32
  655. package/src/components/custom/labeled-field/LabeledSwitch.vue +0 -27
  656. package/src/components/custom/labeled-field/index.ts +0 -4
  657. package/src/components/custom/metaballs/MetaballCanvas.vue +0 -23
  658. package/src/components/custom/metaballs/index.ts +0 -4
  659. package/src/components/custom/metaballs/shaders.ts +0 -63
  660. package/src/components/custom/metaballs/types.ts +0 -29
  661. package/src/components/custom/metaballs/useMetaballs.ts +0 -252
  662. package/src/components/custom/search/FuzzySearch.vue +0 -589
  663. package/src/components/custom/search/SearchBar.vue +0 -44
  664. package/src/components/custom/search/composables/fuzzySearchIndex.ts +0 -224
  665. package/src/components/custom/search/composables/types.ts +0 -34
  666. package/src/components/custom/search/composables/useFuzzySearch.ts +0 -115
  667. package/src/components/custom/sidebar/ProgressiveSidebar.vue +0 -256
  668. package/src/components/custom/sidebar/composables/index.ts +0 -6
  669. package/src/components/custom/sidebar/composables/useScrollTracker.ts +0 -242
  670. package/src/components/custom/sidebar/composables/useSidebarFollow.ts +0 -247
  671. package/src/components/custom/sidebar/composables/useSidebarState.ts +0 -72
  672. package/src/components/custom/sidebar/composables/useTreeIndex.ts +0 -152
  673. package/src/components/custom/sidebar/index.ts +0 -15
  674. package/src/components/custom/sidebar/types.ts +0 -50
  675. package/src/components/custom/tabs/BouncyTabs.vue +0 -39
  676. package/src/components/custom/tabs/BouncyToggle.vue +0 -352
  677. package/src/components/custom/tabs/UnderlineTabs.vue +0 -115
  678. package/src/components/custom/timeline/GlassTimeline.vue +0 -174
  679. package/src/components/custom/timeline/index.ts +0 -1
  680. package/src/components/custom/typewriter/TypewriterText.vue +0 -239
  681. package/src/components/custom/typewriter/composables/useTypewriter.ts +0 -413
  682. package/src/components/custom/typewriter/types.ts +0 -159
  683. package/src/components/custom/typewriter/utils/keyboard.ts +0 -213
  684. package/src/components/custom/typewriter/utils/pausePatterns.ts +0 -55
  685. package/src/components/custom/typewriter/utils/timing.ts +0 -104
  686. package/src/components/custom/typewriter/utils/typoStateMachine.ts +0 -197
  687. package/src/components/index.ts +0 -2
  688. package/src/components/ui/accordion/Accordion.vue +0 -19
  689. package/src/components/ui/accordion/AccordionContent.vue +0 -24
  690. package/src/components/ui/accordion/AccordionItem.vue +0 -24
  691. package/src/components/ui/accordion/AccordionTrigger.vue +0 -39
  692. package/src/components/ui/accordion/index.ts +0 -4
  693. package/src/components/ui/alert/Alert.vue +0 -20
  694. package/src/components/ui/alert/AlertDescription.vue +0 -17
  695. package/src/components/ui/alert/AlertTitle.vue +0 -17
  696. package/src/components/ui/alert/index.ts +0 -23
  697. package/src/components/ui/avatar/Avatar.vue +0 -21
  698. package/src/components/ui/avatar/AvatarFallback.vue +0 -11
  699. package/src/components/ui/avatar/AvatarImage.vue +0 -9
  700. package/src/components/ui/avatar/index.ts +0 -24
  701. package/src/components/ui/badge/Badge.vue +0 -16
  702. package/src/components/ui/badge/index.ts +0 -25
  703. package/src/components/ui/button/Button.vue +0 -26
  704. package/src/components/ui/button/index.ts +0 -43
  705. package/src/components/ui/card/Card.vue +0 -28
  706. package/src/components/ui/card/CardContent.vue +0 -14
  707. package/src/components/ui/card/CardDescription.vue +0 -14
  708. package/src/components/ui/card/CardFooter.vue +0 -14
  709. package/src/components/ui/card/CardHeader.vue +0 -14
  710. package/src/components/ui/card/CardTitle.vue +0 -21
  711. package/src/components/ui/card/index.ts +0 -6
  712. package/src/components/ui/carousel/Carousel.vue +0 -53
  713. package/src/components/ui/carousel/CarouselContent.vue +0 -35
  714. package/src/components/ui/carousel/CarouselItem.vue +0 -24
  715. package/src/components/ui/carousel/CarouselNext.vue +0 -40
  716. package/src/components/ui/carousel/CarouselPrevious.vue +0 -40
  717. package/src/components/ui/carousel/index.ts +0 -10
  718. package/src/components/ui/carousel/interface.ts +0 -26
  719. package/src/components/ui/carousel/useCarousel.ts +0 -56
  720. package/src/components/ui/checkbox/Checkbox.vue +0 -33
  721. package/src/components/ui/checkbox/index.ts +0 -1
  722. package/src/components/ui/collapsible/Collapsible.vue +0 -15
  723. package/src/components/ui/collapsible/CollapsibleContent.vue +0 -11
  724. package/src/components/ui/collapsible/CollapsibleTrigger.vue +0 -11
  725. package/src/components/ui/collapsible/index.ts +0 -3
  726. package/src/components/ui/combobox/Combobox.vue +0 -17
  727. package/src/components/ui/combobox/ComboboxAnchor.vue +0 -23
  728. package/src/components/ui/combobox/ComboboxEmpty.vue +0 -21
  729. package/src/components/ui/combobox/ComboboxGroup.vue +0 -27
  730. package/src/components/ui/combobox/ComboboxInput.vue +0 -41
  731. package/src/components/ui/combobox/ComboboxItem.vue +0 -24
  732. package/src/components/ui/combobox/ComboboxItemIndicator.vue +0 -23
  733. package/src/components/ui/combobox/ComboboxList.vue +0 -29
  734. package/src/components/ui/combobox/ComboboxSeparator.vue +0 -21
  735. package/src/components/ui/combobox/ComboboxViewport.vue +0 -23
  736. package/src/components/ui/combobox/index.ts +0 -12
  737. package/src/components/ui/command/Command.vue +0 -30
  738. package/src/components/ui/command/CommandDialog.vue +0 -21
  739. package/src/components/ui/command/CommandEmpty.vue +0 -20
  740. package/src/components/ui/command/CommandGroup.vue +0 -29
  741. package/src/components/ui/command/CommandInput.vue +0 -33
  742. package/src/components/ui/command/CommandItem.vue +0 -26
  743. package/src/components/ui/command/CommandList.vue +0 -27
  744. package/src/components/ui/command/CommandSeparator.vue +0 -23
  745. package/src/components/ui/command/CommandShortcut.vue +0 -14
  746. package/src/components/ui/command/index.ts +0 -9
  747. package/src/components/ui/context-menu/ContextMenu.vue +0 -15
  748. package/src/components/ui/context-menu/ContextMenuCheckboxItem.vue +0 -40
  749. package/src/components/ui/context-menu/ContextMenuContent.vue +0 -36
  750. package/src/components/ui/context-menu/ContextMenuGroup.vue +0 -11
  751. package/src/components/ui/context-menu/ContextMenuItem.vue +0 -34
  752. package/src/components/ui/context-menu/ContextMenuLabel.vue +0 -25
  753. package/src/components/ui/context-menu/ContextMenuPortal.vue +0 -11
  754. package/src/components/ui/context-menu/ContextMenuRadioGroup.vue +0 -19
  755. package/src/components/ui/context-menu/ContextMenuRadioItem.vue +0 -40
  756. package/src/components/ui/context-menu/ContextMenuSeparator.vue +0 -20
  757. package/src/components/ui/context-menu/ContextMenuShortcut.vue +0 -14
  758. package/src/components/ui/context-menu/ContextMenuSub.vue +0 -19
  759. package/src/components/ui/context-menu/ContextMenuSubContent.vue +0 -35
  760. package/src/components/ui/context-menu/ContextMenuSubTrigger.vue +0 -34
  761. package/src/components/ui/context-menu/ContextMenuTrigger.vue +0 -13
  762. package/src/components/ui/context-menu/index.ts +0 -14
  763. package/src/components/ui/data-table/DataTable.vue +0 -167
  764. package/src/components/ui/data-table/DataTablePagination.vue +0 -112
  765. package/src/components/ui/data-table/types.ts +0 -48
  766. package/src/components/ui/dialog/Dialog.vue +0 -14
  767. package/src/components/ui/dialog/DialogClose.vue +0 -11
  768. package/src/components/ui/dialog/DialogContent.vue +0 -61
  769. package/src/components/ui/dialog/DialogDescription.vue +0 -24
  770. package/src/components/ui/dialog/DialogFooter.vue +0 -19
  771. package/src/components/ui/dialog/DialogHeader.vue +0 -16
  772. package/src/components/ui/dialog/DialogScrollContent.vue +0 -65
  773. package/src/components/ui/dialog/DialogTitle.vue +0 -29
  774. package/src/components/ui/dialog/DialogTrigger.vue +0 -11
  775. package/src/components/ui/dialog/index.ts +0 -9
  776. package/src/components/ui/drawer/Drawer.vue +0 -19
  777. package/src/components/ui/drawer/DrawerContent.vue +0 -28
  778. package/src/components/ui/drawer/DrawerDescription.vue +0 -20
  779. package/src/components/ui/drawer/DrawerFooter.vue +0 -14
  780. package/src/components/ui/drawer/DrawerHeader.vue +0 -14
  781. package/src/components/ui/drawer/DrawerOverlay.vue +0 -18
  782. package/src/components/ui/drawer/DrawerTitle.vue +0 -20
  783. package/src/components/ui/drawer/index.ts +0 -8
  784. package/src/components/ui/dropdown-menu/DropdownMenu.vue +0 -14
  785. package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +0 -40
  786. package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +0 -44
  787. package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +0 -11
  788. package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +0 -28
  789. package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +0 -24
  790. package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +0 -19
  791. package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +0 -40
  792. package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +0 -22
  793. package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +0 -14
  794. package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +0 -19
  795. package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +0 -36
  796. package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +0 -33
  797. package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +0 -13
  798. package/src/components/ui/dropdown-menu/index.ts +0 -16
  799. package/src/components/ui/hover-card/HoverCard.vue +0 -14
  800. package/src/components/ui/hover-card/HoverCardContent.vue +0 -41
  801. package/src/components/ui/hover-card/HoverCardTrigger.vue +0 -11
  802. package/src/components/ui/hover-card/index.ts +0 -3
  803. package/src/components/ui/index.ts +0 -41
  804. package/src/components/ui/input/Input.vue +0 -24
  805. package/src/components/ui/input/index.ts +0 -1
  806. package/src/components/ui/label/Label.vue +0 -27
  807. package/src/components/ui/label/index.ts +0 -1
  808. package/src/components/ui/multi-select/MultiSelect.vue +0 -141
  809. package/src/components/ui/multi-select/index.ts +0 -7
  810. package/src/components/ui/notification/Notification.vue +0 -85
  811. package/src/components/ui/notification/index.ts +0 -1
  812. package/src/components/ui/number-field/NumberField.vue +0 -23
  813. package/src/components/ui/number-field/NumberFieldContent.vue +0 -14
  814. package/src/components/ui/number-field/NumberFieldDecrement.vue +0 -25
  815. package/src/components/ui/number-field/NumberFieldIncrement.vue +0 -25
  816. package/src/components/ui/number-field/NumberFieldInput.vue +0 -8
  817. package/src/components/ui/number-field/index.ts +0 -5
  818. package/src/components/ui/popover/Popover.vue +0 -15
  819. package/src/components/ui/popover/PopoverContent.vue +0 -61
  820. package/src/components/ui/popover/PopoverTrigger.vue +0 -11
  821. package/src/components/ui/popover/index.ts +0 -3
  822. package/src/components/ui/progress/Progress.vue +0 -39
  823. package/src/components/ui/progress/index.ts +0 -1
  824. package/src/components/ui/radio-group/RadioGroup.vue +0 -25
  825. package/src/components/ui/radio-group/RadioGroupItem.vue +0 -39
  826. package/src/components/ui/radio-group/index.ts +0 -2
  827. package/src/components/ui/scroll-area/ScrollArea.vue +0 -29
  828. package/src/components/ui/scroll-area/ScrollBar.vue +0 -30
  829. package/src/components/ui/scroll-area/index.ts +0 -2
  830. package/src/components/ui/scroll-pane/ScrollPane.vue +0 -25
  831. package/src/components/ui/scroll-pane/ScrollPaneHeader.vue +0 -75
  832. package/src/components/ui/scroll-pane/index.ts +0 -2
  833. package/src/components/ui/select/Select.vue +0 -15
  834. package/src/components/ui/select/SelectContent.vue +0 -57
  835. package/src/components/ui/select/SelectGroup.vue +0 -19
  836. package/src/components/ui/select/SelectItem.vue +0 -47
  837. package/src/components/ui/select/SelectItemText.vue +0 -11
  838. package/src/components/ui/select/SelectLabel.vue +0 -13
  839. package/src/components/ui/select/SelectScrollDownButton.vue +0 -24
  840. package/src/components/ui/select/SelectScrollUpButton.vue +0 -24
  841. package/src/components/ui/select/SelectSeparator.vue +0 -17
  842. package/src/components/ui/select/SelectTrigger.vue +0 -45
  843. package/src/components/ui/select/SelectValue.vue +0 -11
  844. package/src/components/ui/select/index.ts +0 -11
  845. package/src/components/ui/separator/Separator.vue +0 -35
  846. package/src/components/ui/separator/index.ts +0 -1
  847. package/src/components/ui/sheet/Sheet.vue +0 -14
  848. package/src/components/ui/sheet/SheetClose.vue +0 -11
  849. package/src/components/ui/sheet/SheetContent.vue +0 -56
  850. package/src/components/ui/sheet/SheetDescription.vue +0 -22
  851. package/src/components/ui/sheet/SheetFooter.vue +0 -19
  852. package/src/components/ui/sheet/SheetHeader.vue +0 -16
  853. package/src/components/ui/sheet/SheetTitle.vue +0 -22
  854. package/src/components/ui/sheet/SheetTrigger.vue +0 -11
  855. package/src/components/ui/sheet/index.ts +0 -31
  856. package/src/components/ui/skeleton/Skeleton.vue +0 -14
  857. package/src/components/ui/skeleton/index.ts +0 -1
  858. package/src/components/ui/slider/Slider.vue +0 -67
  859. package/src/components/ui/slider/index.ts +0 -1
  860. package/src/components/ui/switch/Switch.vue +0 -37
  861. package/src/components/ui/switch/index.ts +0 -1
  862. package/src/components/ui/table/Table.vue +0 -16
  863. package/src/components/ui/table/TableBody.vue +0 -14
  864. package/src/components/ui/table/TableCaption.vue +0 -14
  865. package/src/components/ui/table/TableCell.vue +0 -14
  866. package/src/components/ui/table/TableEmpty.vue +0 -39
  867. package/src/components/ui/table/TableFooter.vue +0 -16
  868. package/src/components/ui/table/TableHead.vue +0 -21
  869. package/src/components/ui/table/TableHeader.vue +0 -14
  870. package/src/components/ui/table/TableRow.vue +0 -21
  871. package/src/components/ui/table/index.ts +0 -9
  872. package/src/components/ui/tabs/Tabs.vue +0 -15
  873. package/src/components/ui/tabs/TabsContent.vue +0 -22
  874. package/src/components/ui/tabs/TabsIndicator.vue +0 -22
  875. package/src/components/ui/tabs/TabsList.vue +0 -25
  876. package/src/components/ui/tabs/TabsTrigger.vue +0 -29
  877. package/src/components/ui/tabs/index.ts +0 -5
  878. package/src/components/ui/tags-input/TagsInput.vue +0 -22
  879. package/src/components/ui/tags-input/TagsInputInput.vue +0 -19
  880. package/src/components/ui/tags-input/TagsInputItem.vue +0 -22
  881. package/src/components/ui/tags-input/TagsInputItemDelete.vue +0 -24
  882. package/src/components/ui/tags-input/TagsInputItemText.vue +0 -19
  883. package/src/components/ui/tags-input/index.ts +0 -5
  884. package/src/components/ui/textarea/Textarea.vue +0 -24
  885. package/src/components/ui/textarea/index.ts +0 -1
  886. package/src/components/ui/toast/Toast.vue +0 -57
  887. package/src/components/ui/toast/ToastAction.vue +0 -30
  888. package/src/components/ui/toast/ToastClose.vue +0 -31
  889. package/src/components/ui/toast/ToastDescription.vue +0 -25
  890. package/src/components/ui/toast/ToastTitle.vue +0 -25
  891. package/src/components/ui/toast/Toaster.vue +0 -31
  892. package/src/components/ui/toast/index.ts +0 -8
  893. package/src/components/ui/toast/use-toast.ts +0 -136
  894. package/src/components/ui/toggle/Toggle.vue +0 -35
  895. package/src/components/ui/toggle/index.ts +0 -27
  896. package/src/components/ui/toggle-group/ToggleGroup.vue +0 -34
  897. package/src/components/ui/toggle-group/ToggleGroupItem.vue +0 -35
  898. package/src/components/ui/toggle-group/index.ts +0 -2
  899. package/src/components/ui/tooltip/Tooltip.vue +0 -14
  900. package/src/components/ui/tooltip/TooltipContent.vue +0 -31
  901. package/src/components/ui/tooltip/TooltipProvider.vue +0 -11
  902. package/src/components/ui/tooltip/TooltipTrigger.vue +0 -11
  903. package/src/components/ui/tooltip/index.ts +0 -4
  904. package/src/composables/glass/index.ts +0 -8
  905. package/src/composables/glass/useGlassRenderer.ts +0 -252
  906. package/src/composables/glass/webgl/frostShader.ts +0 -221
  907. package/src/composables/glass/webgpu/glassShader.wgsl +0 -173
  908. package/src/composables/index.ts +0 -32
  909. package/src/composables/infinite-scroll/index.ts +0 -2
  910. package/src/composables/infinite-scroll/types.ts +0 -25
  911. package/src/composables/infinite-scroll/useInfiniteScroll.ts +0 -101
  912. package/src/composables/interaction/index.ts +0 -5
  913. package/src/composables/interaction/useHeightTransition.ts +0 -82
  914. package/src/composables/interaction/useHoverPopover.ts +0 -64
  915. package/src/composables/interaction/useHoverToggle.ts +0 -103
  916. package/src/composables/interaction/useLeaveTimer.ts +0 -17
  917. package/src/composables/interaction/useTouchGate.ts +0 -207
  918. package/src/composables/pagination/index.ts +0 -2
  919. package/src/composables/pagination/useOffsetPagination.ts +0 -70
  920. package/src/composables/prng.ts +0 -32
  921. package/src/composables/useCharSplit.ts +0 -31
  922. package/src/composables/useClipboard.ts +0 -46
  923. package/src/composables/useGlobalDark.ts +0 -61
  924. package/src/composables/useKeyboardShortcuts.ts +0 -205
  925. package/src/composables/useWatercolorBlob.ts +0 -136
  926. package/src/composables/virtual/index.ts +0 -22
  927. package/src/composables/virtual/useVirtualSectionWindow.ts +0 -338
  928. package/src/composables/virtual/useWindowedStore.ts +0 -86
  929. package/src/composables/virtual/virtualSectionLayout.ts +0 -212
  930. package/src/index.ts +0 -9
  931. package/src/styles/scroll-pane.css +0 -10
  932. package/src/utils/cn.ts +0 -6
  933. /package/{src/components/custom/confirm-dialog/index.ts → dist/components/custom/confirm-dialog/index.d.ts} +0 -0
  934. /package/{src/components/custom/controls/index.ts → dist/components/custom/controls/index.d.ts} +0 -0
  935. /package/{src/components/custom/expandable-container/index.ts → dist/components/custom/expandable-container/index.d.ts} +0 -0
  936. /package/{src/components/custom/icon-tooltip/index.ts → dist/components/custom/icon-tooltip/index.d.ts} +0 -0
  937. /package/{src/components/custom/infinite-scroll/composables/index.ts → dist/components/custom/infinite-scroll/composables/index.d.ts} +0 -0
  938. /package/{src/components/custom/infinite-scroll/index.ts → dist/components/custom/infinite-scroll/index.d.ts} +0 -0
  939. /package/{src/components/custom/search/composables/index.ts → dist/components/custom/search/composables/index.d.ts} +0 -0
  940. /package/{src/components/custom/search/index.ts → dist/components/custom/search/index.d.ts} +0 -0
  941. /package/{src/components/custom/tabs/index.ts → dist/components/custom/tabs/index.d.ts} +0 -0
  942. /package/{src/components/custom/typewriter/composables/index.ts → dist/components/custom/typewriter/composables/index.d.ts} +0 -0
  943. /package/{src/components/custom/typewriter/index.ts → dist/components/custom/typewriter/index.d.ts} +0 -0
  944. /package/{src/components/ui/data-table/index.ts → dist/components/ui/data-table/index.d.ts} +0 -0
  945. /package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -0
@@ -1,221 +1,1085 @@
1
- /* Dock utilities icon buttons, select triggers, separators, layer grid */
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
+ */
2
7
 
3
8
  @layer components {
4
- .dock-icon-btn {
5
- @apply inline-flex items-center justify-center flex-shrink-0 cursor-pointer p-0 border-none bg-transparent;
6
- width: var(--size-icon-btn);
7
- height: var(--size-icon-btn);
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 {
8
238
  border-radius: var(--radius-pill);
9
- color: color-mix(in srgb, var(--foreground) 80%, transparent);
10
- transition: all var(--duration-fast) var(--ease-standard);
11
239
  }
12
240
 
13
- .dock-icon-btn:hover:not(:disabled) {
14
- background: var(--muted);
15
- color: var(--btn-hover-color, var(--foreground));
16
- transform: scale(var(--scale-hover-dock));
241
+ .glass-dock.variant-rail.shape-rounded {
242
+ border-radius: var(--radius-xl);
17
243
  }
18
244
 
19
- .dock-icon-btn:active:not(:disabled) {
20
- transform: scale(var(--scale-press-dock));
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);
21
280
  }
22
281
 
23
- .dock-icon-btn:focus-visible {
24
- box-shadow: var(--focus-ring-shadow);
25
- outline: none;
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;
26
297
  }
27
298
 
28
- .dock-icon-btn:disabled {
29
- opacity: 0.35;
30
- cursor: not-allowed;
299
+ .dark .glass-dock.variant-instrument-strip::before {
300
+ border-color: var(--surface-tint-6);
31
301
  }
32
302
 
33
- .dock-icon-btn.is-active,
34
- .dock-icon-btn.active {
35
- background: var(--muted);
36
- color: var(--foreground);
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));
37
518
  }
38
519
 
39
- /* Compact variant — auto-sized for inline use */
40
- .dock-icon-btn-compact {
41
- @apply inline-flex items-center justify-center flex-shrink-0 cursor-pointer border-none bg-transparent w-auto h-auto min-w-0 p-1;
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 {
42
530
  border-radius: var(--radius-pill);
43
- color: color-mix(in srgb, var(--foreground) 80%, transparent);
44
- transition: all var(--duration-fast) var(--ease-standard);
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;
45
651
  }
46
652
 
47
- .dock-icon-btn-compact:hover:not(:disabled) {
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) {
48
682
  background: var(--muted);
49
683
  color: var(--btn-hover-color, var(--foreground));
50
684
  transform: scale(var(--scale-hover-dock));
51
685
  }
52
686
 
53
- .dock-icon-btn-compact:active:not(:disabled) {
687
+ .dock-icon-button:active:not(:disabled) {
54
688
  transform: scale(var(--scale-press-dock));
55
689
  }
56
690
 
57
- .dock-icon-btn-compact:focus-visible {
691
+ .dock-icon-button:focus:not(:focus-visible) {
692
+ box-shadow: none;
693
+ outline: none;
694
+ }
695
+
696
+ .dock-icon-button:focus-visible {
58
697
  box-shadow: var(--focus-ring-shadow);
59
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);
60
705
  }
61
706
 
62
- .dock-icon-btn-compact:disabled {
63
- opacity: 0.35;
707
+ .dock-icon-button:disabled {
708
+ opacity: var(--opacity-disabled);
64
709
  cursor: not-allowed;
65
710
  }
66
711
 
67
- .dock-select-trigger {
68
- @apply inline-flex items-center gap-1 py-1 px-2 cursor-pointer whitespace-nowrap border-none bg-transparent;
69
- border-radius: var(--radius-pill);
70
- color: color-mix(in srgb, var(--foreground) 80%, transparent);
71
- transition: all var(--duration-fast) var(--ease-standard);
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);
72
724
  }
73
725
 
74
- .dock-select-trigger:hover:not(:disabled) {
75
- background: var(--muted);
76
- color: var(--foreground);
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);
77
746
  }
78
747
 
79
- .dock-select-trigger:active:not(:disabled) {
80
- transform: scale(var(--scale-press));
748
+ .dark-mode-toggle-button > svg {
749
+ width: 100%;
750
+ height: 100%;
751
+ max-width: 100%;
752
+ max-height: 100%;
81
753
  }
82
754
 
83
- .dock-select-trigger:focus-visible {
84
- box-shadow:
85
- 0 0 0 var(--focus-ring-width) var(--dock-ring, color-mix(in srgb, var(--ring) 30%, transparent)),
86
- 0 0 8px color-mix(in srgb, var(--ring) 15%, transparent);
755
+ .dark-mode-toggle-button:hover,
756
+ .dark-mode-toggle-button:focus {
757
+ background: var(--surface-tint-10);
758
+ opacity: 1;
87
759
  outline: none;
88
760
  }
89
761
 
90
- .dock-select-trigger[aria-expanded="true"],
91
- .dock-select-trigger.is-active {
92
- background: var(--muted);
762
+ .dark-mode-toggle-button:focus-visible {
763
+ box-shadow: var(--focus-ring-shadow);
93
764
  }
94
765
 
95
- .dock-select-trigger:disabled {
96
- opacity: 0.35;
97
- cursor: not-allowed;
766
+ .dark-mode-toggle-button[data-size="sm"] {
767
+ --dark-mode-toggle-size: 1.75rem;
768
+ --dark-mode-toggle-padding: 0.25rem;
98
769
  }
99
770
 
100
- /* Dropdown trigger — variable width, text + icon + chevron */
101
- .dock-dropdown-trigger {
102
- @apply inline-flex items-center gap-1 py-1 px-2 flex-shrink-0 cursor-pointer whitespace-nowrap border-none bg-transparent;
103
- border-radius: var(--radius-pill);
104
- transition: all var(--duration-fast) var(--ease-standard);
771
+ .dark-mode-toggle-button[data-size="md"] {
772
+ --dark-mode-toggle-size: 2.25rem;
773
+ --dark-mode-toggle-padding: 0.375rem;
105
774
  }
106
775
 
107
- .dock-dropdown-trigger:hover:not(:disabled) {
108
- background: var(--muted);
109
- transform: scale(var(--scale-hover-dock));
776
+ .dark-mode-toggle-button[data-size="lg"] {
777
+ --dark-mode-toggle-size: 2.75rem;
778
+ --dark-mode-toggle-padding: 0.5rem;
110
779
  }
111
780
 
112
- .dock-dropdown-trigger:active:not(:disabled) {
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) {
113
837
  transform: scale(var(--scale-press-dock));
114
838
  }
115
839
 
116
- .dock-dropdown-trigger[aria-expanded="true"],
117
- .dock-dropdown-trigger.is-active {
118
- background: var(--muted);
840
+ .dock-tab-button:focus:not(:focus-visible) {
841
+ box-shadow: none;
119
842
  }
120
843
 
121
- .dock-dropdown-trigger:focus-visible {
844
+ .dock-tab-button:focus-visible {
122
845
  box-shadow: var(--focus-ring-shadow);
123
846
  outline: none;
124
847
  }
125
848
 
126
- .dock-dropdown-trigger:disabled {
127
- opacity: 0.35;
849
+ .dock-tab-button:disabled {
850
+ opacity: var(--opacity-disabled);
128
851
  cursor: not-allowed;
129
852
  }
130
853
 
131
- .dock-label {
132
- @apply inline-flex items-center gap-1 cursor-default whitespace-nowrap;
133
- padding: 0.25rem 0.375rem;
134
- border-radius: var(--radius-pill);
135
- color: var(--muted-foreground);
136
- font-size: var(--type-small);
137
- transition: all var(--duration-fast) var(--ease-standard);
854
+ .dock-tab-button:is(.is-active, .active, [aria-current="page"], [aria-pressed="true"]) {
855
+ background: var(--surface-tint-10);
856
+ color: var(--foreground);
138
857
  }
139
858
 
140
- .dock-label:hover {
141
- color: color-mix(in srgb, var(--foreground) 85%, transparent);
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);
142
884
  }
143
885
 
144
- .dock-play-btn {
145
- @apply inline-flex items-center justify-center cursor-pointer border-none;
146
- border-radius: var(--radius-pill);
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;
147
973
  transition:
148
- filter var(--duration-fast) var(--ease-standard),
149
- transform var(--duration-fast) var(--ease-standard);
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));
150
984
  }
151
985
 
152
- .dock-play-btn:hover:not(:disabled) {
153
- filter: brightness(1.1);
986
+ .dock-dropdown-trigger:hover:not(:disabled) {
987
+ transform: scale(var(--scale-hover-dock));
154
988
  }
155
989
 
156
- .dock-play-btn:active:not(:disabled) {
990
+ .dock-select-trigger:active:not(:disabled),
991
+ .dock-dropdown-trigger:active:not(:disabled) {
157
992
  transform: scale(var(--scale-press-dock));
158
993
  }
159
994
 
160
- .dock-play-btn:focus-visible {
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 {
161
1003
  box-shadow: var(--focus-ring-shadow);
162
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);
163
1011
  }
164
1012
 
165
- .dock-play-btn:disabled {
166
- opacity: 0.35;
1013
+ .dock-select-trigger:disabled,
1014
+ .dock-dropdown-trigger:disabled {
1015
+ opacity: var(--opacity-disabled);
167
1016
  cursor: not-allowed;
168
1017
  }
169
1018
 
170
- .dock-separator {
171
- @apply flex-shrink-0;
172
- width: 1px;
173
- height: calc(var(--dock-h, var(--size-icon-btn)) * 0.5);
174
- margin: 0 0.375rem;
175
- background: color-mix(in srgb, var(--foreground) 15%, transparent);
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);
176
1023
  }
177
1024
 
178
- .dock-spacer {
179
- @apply flex-1;
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);
180
1031
  }
181
1032
 
182
- /* ── Layer transition grid ── */
183
- .dock-layer-grid {
184
- display: grid;
185
- position: relative;
186
- transition: width var(--duration-normal) var(--spring-snappy);
1033
+ .dock-select-trigger[data-state="open"] .dock-select-trigger__chevron {
1034
+ transform: rotate(180deg);
187
1035
  }
188
1036
 
189
- .dock-layer-item {
190
- grid-area: 1 / 1;
191
- display: flex;
192
- align-items: center;
193
- gap: 0.375rem;
194
- min-width: 0;
195
- transition: opacity var(--duration-normal) var(--ease-standard);
196
- }
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
+ }
197
1046
 
198
- /* Inactive layers: out of flow so only the active layer drives grid width */
199
- .dock-layer-item:not(.dock-layer-active) {
200
- position: absolute !important;
201
- opacity: 0;
202
- pointer-events: none;
203
- }
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
+ }
204
1052
 
205
- .dock-layer-item.dock-layer-active {
206
- position: relative;
207
- opacity: 1;
208
- pointer-events: auto;
209
- }
1053
+ .glass-dock.dock-wrap .dock-layer--summary {
1054
+ height: var(--dock-layer-height, 2.5rem);
1055
+ }
210
1056
 
211
- .dock-layer-item.dock-layer-leaving {
212
- z-index: var(--z-controls);
1057
+ .glass-dock.dock-wrap .dock-separator {
1058
+ display: block;
1059
+ }
213
1060
  }
214
1061
 
215
- /* ── Dock-safe insetscontent clears top + bottom floating docks ── */
216
- /* Content insets that clear floating top + bottom docks. */
217
- .dock-inset {
218
- padding-top: calc(var(--dock-h) + var(--dock-margin));
219
- padding-bottom: calc(var(--dock-menubar-reserve) + var(--dock-margin));
1062
+ /* O.W6 Lane DTouch-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
+ }
220
1084
  }
221
1085
  }