@mkbabb/glass-ui 0.2.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (942) hide show
  1. package/README.md +170 -70
  2. package/dist/CardFooter-Yi0xtLLd.js +129 -0
  3. package/dist/CollapsibleContent-DHRuXE3P.js +52 -0
  4. package/dist/CommandShortcut-_INFUMu6.js +285 -0
  5. package/dist/ContextMenuContent-CvXfU5qz.js +85 -0
  6. package/dist/ContextMenuSubContent-DCkweFW9.js +250 -0
  7. package/dist/DataTable-Ce00dbHD.js +460 -0
  8. package/dist/DialogContent-CmCijgX9.js +93 -0
  9. package/dist/DialogFooter-DRdaCok0.js +165 -0
  10. package/dist/DiscoGlyph-wRA02zAJ.js +132 -0
  11. package/dist/GlyphFace-BnPMUZ16.js +51 -0
  12. package/dist/HoverCardContent-4nN5-5bz.js +83 -0
  13. package/dist/HoverPopover-Btv4RQfv.js +80 -0
  14. package/dist/IconTooltip-ge_mBSWR.js +25 -0
  15. package/dist/Input-CbakTe3B.js +32 -0
  16. package/dist/InstrumentChassis-DOaVYyWq.js +65 -0
  17. package/dist/InstrumentRail-jHDqXj70.js +44 -0
  18. package/dist/Label-C8QMJSsf.js +32 -0
  19. package/dist/MetricBadge-DRBB18Xq.js +78 -0
  20. package/dist/ModalOverlay-DKLVY-cj.js +53 -0
  21. package/dist/Notification-DrI1DT2v.js +99 -0
  22. package/dist/PaperBackdrop-Bc2drCqJ.js +31 -0
  23. package/dist/PopoverContent-BCH4eYs8.js +121 -0
  24. package/dist/Progress-CCH-2UBR.js +126 -0
  25. package/dist/ScrollingText-7P8skg5W.js +40 -0
  26. package/dist/SelectGroup-O69GTQ77.js +31 -0
  27. package/dist/SelectScrollDownButton-yu8EYUnu.js +235 -0
  28. package/dist/SelectSeparator-GTHxKO0a.js +49 -0
  29. package/dist/Separator-_NCypg_C.js +37 -0
  30. package/dist/Switch-CL0uxu8F.js +41 -0
  31. package/dist/Toaster-DY8_jtHv.js +255 -0
  32. package/dist/ToggleGroupItem-BYG_8M9M.js +152 -0
  33. package/dist/TooltipProvider-C5QLSPto.js +104 -0
  34. package/dist/UnderlineTabs-BtrUcXn-.js +64 -0
  35. package/dist/_plugin-vue_export-helper-n-_DRHWS.js +8 -0
  36. package/dist/animated-digit.d.ts +1 -0
  37. package/dist/animated-digit.js +44 -0
  38. package/dist/api/index.d.ts +30 -0
  39. package/dist/api.js +2 -0
  40. package/dist/aurora.d.ts +1 -0
  41. package/dist/aurora.js +541 -0
  42. package/dist/badge-BbxVKZfw.js +49 -0
  43. package/dist/badge.d.ts +1 -0
  44. package/dist/badge.js +2 -0
  45. package/dist/button-BlOW34DT.js +70 -0
  46. package/dist/button.d.ts +1 -0
  47. package/dist/button.js +2 -0
  48. package/dist/card.d.ts +1 -0
  49. package/dist/card.js +2 -0
  50. package/dist/carousel.d.ts +2 -0
  51. package/dist/carousel.js +394 -0
  52. package/dist/check-dwgetki8.js +7 -0
  53. package/dist/chevron-down-DILQA1t6.js +7 -0
  54. package/dist/chevron-right-fS7fal2t.js +7 -0
  55. package/dist/chevron-up-BtYjYQOS.js +7 -0
  56. package/dist/cn-DJXf4yaB.js +97 -0
  57. package/dist/collapsible.d.ts +1 -0
  58. package/dist/collapsible.js +2 -0
  59. package/dist/command.d.ts +1 -0
  60. package/dist/command.js +2 -0
  61. package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +48 -0
  62. package/dist/components/custom/animated-digit/index.d.ts +2 -0
  63. package/dist/components/custom/aurora/Aurora.vue.d.ts +95 -0
  64. package/dist/components/custom/aurora/composables/color.d.ts +39 -0
  65. package/dist/components/custom/aurora/composables/configSource.d.ts +10 -0
  66. package/dist/components/custom/aurora/composables/runtime.d.ts +54 -0
  67. package/dist/components/custom/aurora/composables/useAurora.d.ts +67 -0
  68. package/dist/components/custom/aurora/composables/useCursorInteraction.d.ts +25 -0
  69. package/dist/components/custom/aurora/index.d.ts +9 -0
  70. package/dist/components/custom/aurora/presets.d.ts +121 -0
  71. package/dist/components/custom/aurora/renderMode.d.ts +30 -0
  72. package/dist/components/custom/aurora/shaders/aurora.frag.d.ts +1 -0
  73. package/dist/components/custom/aurora/shaders/aurora.vert.d.ts +1 -0
  74. package/dist/components/custom/configurator/Configurator.vue.d.ts +102 -0
  75. package/dist/components/custom/configurator/ConfiguratorLayer.vue.d.ts +68 -0
  76. package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +63 -0
  77. package/dist/components/custom/configurator/density.d.ts +30 -0
  78. package/dist/components/custom/configurator/index.d.ts +6 -0
  79. package/dist/components/custom/configurator/useConfiguratorState.d.ts +45 -0
  80. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +32 -0
  81. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +23 -0
  82. package/dist/components/custom/disco-glyph/DiscoGlyph.vue.d.ts +58 -0
  83. package/dist/components/custom/disco-glyph/index.d.ts +1 -0
  84. package/dist/components/custom/dock/DockDropdownTrigger.vue.d.ts +29 -0
  85. package/dist/components/custom/dock/DockIconButton.vue.d.ts +30 -0
  86. package/dist/components/custom/dock/DockLayer.vue.d.ts +34 -0
  87. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +43 -0
  88. package/dist/components/custom/dock/DockSelectTrigger.vue.d.ts +29 -0
  89. package/dist/components/custom/dock/DockTabButton.vue.d.ts +39 -0
  90. package/dist/components/custom/dock/GlassDock.vue.d.ts +96 -0
  91. package/dist/components/custom/dock/composables/dockContext.d.ts +40 -0
  92. package/dist/components/custom/dock/composables/dockLayerContext.d.ts +29 -0
  93. package/dist/components/custom/dock/composables/index.d.ts +7 -0
  94. package/dist/components/custom/dock/composables/isTeleportedTarget.d.ts +9 -0
  95. package/dist/components/custom/dock/composables/useDockState.d.ts +70 -0
  96. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +34 -0
  97. package/dist/components/custom/dock/index.d.ts +9 -0
  98. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +40 -0
  99. package/dist/components/custom/glass-carousel/GlassCarousel.vue.d.ts +36 -0
  100. package/dist/components/custom/glass-carousel/GlassCarouselItem.vue.d.ts +28 -0
  101. package/dist/components/custom/glass-carousel/index.d.ts +4 -0
  102. package/dist/components/custom/glass-carousel/useGlassCarousel.d.ts +30 -0
  103. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +41 -0
  104. package/dist/components/custom/glass-panel/index.d.ts +2 -0
  105. package/dist/components/custom/glyph-face/GlyphFace.vue.d.ts +64 -0
  106. package/dist/components/custom/glyph-face/index.d.ts +2 -0
  107. package/dist/components/custom/glyph-face/keys.d.ts +35 -0
  108. package/dist/components/custom/header-ribbon/HeaderRibbon.vue.d.ts +31 -0
  109. package/dist/components/custom/header-ribbon/index.d.ts +2 -0
  110. package/dist/components/custom/header-ribbon/types.d.ts +7 -0
  111. package/dist/components/custom/hover-popover/HoverPopover.vue.d.ts +71 -0
  112. package/dist/components/custom/hover-popover/index.d.ts +1 -0
  113. package/dist/components/custom/icon-tooltip/IconTooltip.vue.d.ts +16 -0
  114. package/dist/components/custom/infinite-scroll/InfiniteScroll.vue.d.ts +33 -0
  115. package/dist/components/custom/infinite-scroll/composables/types.d.ts +21 -0
  116. package/dist/components/custom/infinite-scroll/composables/useInfiniteScroll.d.ts +9 -0
  117. package/dist/components/custom/instrument-chassis/ChassisDivider.vue.d.ts +30 -0
  118. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +82 -0
  119. package/dist/components/custom/instrument-chassis/index.d.ts +3 -0
  120. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +91 -0
  121. package/dist/components/custom/instrument-rail/index.d.ts +2 -0
  122. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +36 -0
  123. package/dist/components/custom/labeled-field/LabeledInput.vue.d.ts +15 -0
  124. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +18 -0
  125. package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +16 -0
  126. package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +13 -0
  127. package/dist/components/custom/labeled-field/index.d.ts +5 -0
  128. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +39 -0
  129. package/dist/components/custom/metric-badge/index.d.ts +1 -0
  130. package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +97 -0
  131. package/dist/components/custom/metric-cell/index.d.ts +2 -0
  132. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +103 -0
  133. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +92 -0
  134. package/dist/components/custom/metric-stack/index.d.ts +4 -0
  135. package/dist/components/custom/paper-backdrop/PaperBackdrop.vue.d.ts +21 -0
  136. package/dist/components/custom/paper-backdrop/index.d.ts +2 -0
  137. package/dist/components/custom/pulse/Pulse.vue.d.ts +53 -0
  138. package/dist/components/custom/pulse/index.d.ts +1 -0
  139. package/dist/components/custom/responsive-tabs/ResponsiveTabs.vue.d.ts +67 -0
  140. package/dist/components/custom/responsive-tabs/index.d.ts +2 -0
  141. package/dist/components/custom/scrolling-text/ScrollingText.vue.d.ts +20 -0
  142. package/dist/components/custom/scrolling-text/index.d.ts +1 -0
  143. package/dist/components/custom/search/FuzzySearch.vue.d.ts +16 -0
  144. package/dist/components/custom/search/SearchBar.vue.d.ts +30 -0
  145. package/dist/components/custom/search/composables/fuzzySearchIndex.d.ts +42 -0
  146. package/dist/components/custom/search/composables/types.d.ts +31 -0
  147. package/dist/components/custom/search/composables/useFuzzySearch.d.ts +12 -0
  148. package/dist/components/custom/sortable-list/SortableHandle.vue.d.ts +32 -0
  149. package/dist/components/custom/sortable-list/SortableItem.vue.d.ts +38 -0
  150. package/dist/components/custom/sortable-list/SortableList.vue.d.ts +76 -0
  151. package/dist/components/custom/sortable-list/context.d.ts +26 -0
  152. package/dist/components/custom/sortable-list/index.d.ts +4 -0
  153. package/dist/components/custom/stacked-icons/StackedIconGroup.vue.d.ts +30 -0
  154. package/dist/components/custom/stacked-icons/index.d.ts +2 -0
  155. package/dist/components/custom/stacked-icons/types.d.ts +18 -0
  156. package/dist/components/custom/status-dot/StatusDot.vue.d.ts +18 -0
  157. package/dist/components/custom/status-dot/index.d.ts +1 -0
  158. package/dist/components/custom/tabs/BouncyTabs.vue.d.ts +24 -0
  159. package/dist/components/custom/tabs/BouncyToggle.vue.d.ts +56 -0
  160. package/dist/components/custom/tabs/UnderlineTabs.vue.d.ts +17 -0
  161. package/dist/components/custom/timeline/ContinuousTimeline.vue.d.ts +118 -0
  162. package/dist/components/custom/timeline/GlassTimeline.vue.d.ts +114 -0
  163. package/dist/components/custom/timeline/ScrubberTimeline.vue.d.ts +29 -0
  164. package/dist/components/custom/timeline/SegmentedTimeline.vue.d.ts +46 -0
  165. package/dist/components/custom/timeline/geometry.d.ts +100 -0
  166. package/dist/components/custom/timeline/index.d.ts +2 -0
  167. package/dist/components/custom/timeline/types.d.ts +57 -0
  168. package/dist/components/custom/toggle-chip/ToggleChip.vue.d.ts +39 -0
  169. package/dist/components/custom/toggle-chip/index.d.ts +17 -0
  170. package/dist/components/custom/typewriter/TypewriterText.vue.d.ts +85 -0
  171. package/dist/components/custom/typewriter/composables/useTypewriter.d.ts +22 -0
  172. package/dist/components/custom/typewriter/types.d.ts +137 -0
  173. package/dist/components/custom/typewriter/utils/keyboard.d.ts +15 -0
  174. package/dist/components/custom/typewriter/utils/pausePatterns.d.ts +28 -0
  175. package/dist/components/custom/typewriter/utils/timing.d.ts +17 -0
  176. package/dist/components/custom/typewriter/utils/typoStateMachine.d.ts +24 -0
  177. package/dist/components/ui/_shared/ModalOverlay.vue.d.ts +90 -0
  178. package/dist/components/ui/_shared/index.d.ts +2 -0
  179. package/dist/components/ui/_shared/menuItemVariants.d.ts +32 -0
  180. package/dist/components/ui/_shared/useStalePropWarning.d.ts +27 -0
  181. package/dist/components/ui/accordion/Accordion.vue.d.ts +19 -0
  182. package/dist/components/ui/accordion/AccordionContent.vue.d.ts +18 -0
  183. package/dist/components/ui/accordion/AccordionItem.vue.d.ts +18 -0
  184. package/dist/components/ui/accordion/AccordionTrigger.vue.d.ts +20 -0
  185. package/dist/components/ui/accordion/index.d.ts +4 -0
  186. package/dist/components/ui/alert/Alert.vue.d.ts +19 -0
  187. package/dist/components/ui/alert/AlertDescription.vue.d.ts +17 -0
  188. package/dist/components/ui/alert/AlertTitle.vue.d.ts +17 -0
  189. package/dist/components/ui/alert/index.d.ts +8 -0
  190. package/dist/components/ui/avatar/Avatar.vue.d.ts +23 -0
  191. package/dist/components/ui/avatar/AvatarFallback.vue.d.ts +14 -0
  192. package/dist/components/ui/avatar/AvatarImage.vue.d.ts +4 -0
  193. package/dist/components/ui/avatar/index.d.ts +9 -0
  194. package/dist/components/ui/badge/Badge.vue.d.ts +20 -0
  195. package/dist/components/ui/badge/index.d.ts +7 -0
  196. package/dist/components/ui/button/Button.vue.d.ts +23 -0
  197. package/dist/components/ui/button/index.d.ts +7 -0
  198. package/dist/components/ui/card/Card.vue.d.ts +56 -0
  199. package/dist/components/ui/card/CardContent.vue.d.ts +17 -0
  200. package/dist/components/ui/card/CardDescription.vue.d.ts +17 -0
  201. package/dist/components/ui/card/CardFooter.vue.d.ts +17 -0
  202. package/dist/components/ui/card/CardHeader.vue.d.ts +55 -0
  203. package/dist/components/ui/card/CardTitle.vue.d.ts +17 -0
  204. package/dist/components/ui/card/index.d.ts +6 -0
  205. package/dist/components/ui/carousel/Carousel.vue.d.ts +37 -0
  206. package/dist/components/ui/carousel/CarouselContent.vue.d.ts +16 -0
  207. package/dist/components/ui/carousel/CarouselDots.vue.d.ts +4 -0
  208. package/dist/components/ui/carousel/CarouselItem.vue.d.ts +14 -0
  209. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +22 -0
  210. package/dist/components/ui/carousel/CarouselPager.vue.d.ts +10 -0
  211. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +22 -0
  212. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +51 -0
  213. package/dist/components/ui/carousel/index.d.ts +10 -0
  214. package/dist/components/ui/carousel/interface.d.ts +20 -0
  215. package/dist/components/ui/carousel/useCarousel.d.ts +20 -0
  216. package/dist/components/ui/checkbox/Checkbox.vue.d.ts +22 -0
  217. package/dist/components/ui/checkbox/index.d.ts +1 -0
  218. package/dist/components/ui/collapsible/Collapsible.vue.d.ts +20 -0
  219. package/dist/components/ui/collapsible/CollapsibleContent.vue.d.ts +14 -0
  220. package/dist/components/ui/collapsible/CollapsibleTrigger.vue.d.ts +14 -0
  221. package/dist/components/ui/collapsible/index.d.ts +3 -0
  222. package/dist/components/ui/combobox/Combobox.vue.d.ts +29 -0
  223. package/dist/components/ui/combobox/ComboboxAnchor.vue.d.ts +18 -0
  224. package/dist/components/ui/combobox/ComboboxEmpty.vue.d.ts +18 -0
  225. package/dist/components/ui/combobox/ComboboxGroup.vue.d.ts +19 -0
  226. package/dist/components/ui/combobox/ComboboxInput.vue.d.ts +22 -0
  227. package/dist/components/ui/combobox/ComboboxItem.vue.d.ts +22 -0
  228. package/dist/components/ui/combobox/ComboboxItemIndicator.vue.d.ts +18 -0
  229. package/dist/components/ui/combobox/ComboboxList.vue.d.ts +32 -0
  230. package/dist/components/ui/combobox/ComboboxSeparator.vue.d.ts +18 -0
  231. package/dist/components/ui/combobox/ComboboxViewport.vue.d.ts +18 -0
  232. package/dist/components/ui/combobox/index.d.ts +11 -0
  233. package/dist/components/ui/command/Command.vue.d.ts +35 -0
  234. package/dist/components/ui/command/CommandDialog.vue.d.ts +18 -0
  235. package/dist/components/ui/command/CommandEmpty.vue.d.ts +18 -0
  236. package/dist/components/ui/command/CommandGroup.vue.d.ts +19 -0
  237. package/dist/components/ui/command/CommandInput.vue.d.ts +8 -0
  238. package/dist/components/ui/command/CommandItem.vue.d.ts +22 -0
  239. package/dist/components/ui/command/CommandList.vue.d.ts +30 -0
  240. package/dist/components/ui/command/CommandSeparator.vue.d.ts +18 -0
  241. package/dist/components/ui/command/CommandShortcut.vue.d.ts +17 -0
  242. package/dist/components/ui/command/index.d.ts +9 -0
  243. package/dist/components/ui/context-menu/ContextMenu.vue.d.ts +18 -0
  244. package/dist/components/ui/context-menu/ContextMenuCheckboxItem.vue.d.ts +24 -0
  245. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +30 -0
  246. package/dist/components/ui/context-menu/ContextMenuItem.vue.d.ts +23 -0
  247. package/dist/components/ui/context-menu/ContextMenuLabel.vue.d.ts +19 -0
  248. package/dist/components/ui/context-menu/ContextMenuRadioGroup.vue.d.ts +18 -0
  249. package/dist/components/ui/context-menu/ContextMenuRadioItem.vue.d.ts +22 -0
  250. package/dist/components/ui/context-menu/ContextMenuSeparator.vue.d.ts +8 -0
  251. package/dist/components/ui/context-menu/ContextMenuShortcut.vue.d.ts +17 -0
  252. package/dist/components/ui/context-menu/ContextMenuSubContent.vue.d.ts +34 -0
  253. package/dist/components/ui/context-menu/ContextMenuSubTrigger.vue.d.ts +19 -0
  254. package/dist/components/ui/context-menu/ContextMenuTrigger.vue.d.ts +14 -0
  255. package/dist/components/ui/context-menu/index.d.ts +12 -0
  256. package/dist/components/ui/data-table/DataTable.vue.d.ts +81 -0
  257. package/dist/components/ui/data-table/DataTablePagination.vue.d.ts +13 -0
  258. package/dist/components/ui/data-table/types.d.ts +56 -0
  259. package/dist/components/ui/dialog/Dialog.vue.d.ts +18 -0
  260. package/dist/components/ui/dialog/DialogClose.vue.d.ts +14 -0
  261. package/dist/components/ui/dialog/DialogContent.vue.d.ts +71 -0
  262. package/dist/components/ui/dialog/DialogDescription.vue.d.ts +18 -0
  263. package/dist/components/ui/dialog/DialogFooter.vue.d.ts +17 -0
  264. package/dist/components/ui/dialog/DialogHeader.vue.d.ts +17 -0
  265. package/dist/components/ui/dialog/DialogScrollContent.vue.d.ts +33 -0
  266. package/dist/components/ui/dialog/DialogTitle.vue.d.ts +18 -0
  267. package/dist/components/ui/dialog/DialogTrigger.vue.d.ts +14 -0
  268. package/dist/components/ui/dialog/index.d.ts +9 -0
  269. package/dist/components/ui/drawer/Drawer.vue.d.ts +30 -0
  270. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +32 -0
  271. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +18 -0
  272. package/dist/components/ui/drawer/DrawerFooter.vue.d.ts +17 -0
  273. package/dist/components/ui/drawer/DrawerHeader.vue.d.ts +17 -0
  274. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +8 -0
  275. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +18 -0
  276. package/dist/components/ui/drawer/index.d.ts +8 -0
  277. package/dist/components/ui/dropdown-menu/DropdownMenu.vue.d.ts +18 -0
  278. package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +24 -0
  279. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +32 -0
  280. package/dist/components/ui/dropdown-menu/DropdownMenuGroup.vue.d.ts +14 -0
  281. package/dist/components/ui/dropdown-menu/DropdownMenuItem.vue.d.ts +19 -0
  282. package/dist/components/ui/dropdown-menu/DropdownMenuLabel.vue.d.ts +19 -0
  283. package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue.d.ts +18 -0
  284. package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.vue.d.ts +22 -0
  285. package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.vue.d.ts +8 -0
  286. package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.vue.d.ts +17 -0
  287. package/dist/components/ui/dropdown-menu/DropdownMenuSub.vue.d.ts +18 -0
  288. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +34 -0
  289. package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts +18 -0
  290. package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.vue.d.ts +14 -0
  291. package/dist/components/ui/dropdown-menu/index.d.ts +15 -0
  292. package/dist/components/ui/hover-card/HoverCard.vue.d.ts +18 -0
  293. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +20 -0
  294. package/dist/components/ui/hover-card/HoverCardTrigger.vue.d.ts +14 -0
  295. package/dist/components/ui/hover-card/index.d.ts +3 -0
  296. package/dist/components/ui/index.d.ts +41 -0
  297. package/dist/components/ui/input/Input.vue.d.ts +13 -0
  298. package/dist/components/ui/input/index.d.ts +1 -0
  299. package/dist/components/ui/label/Label.vue.d.ts +18 -0
  300. package/dist/components/ui/label/index.d.ts +1 -0
  301. package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +43 -0
  302. package/dist/components/ui/metric-pill/index.d.ts +1 -0
  303. package/dist/components/ui/multi-select/MultiSelect.vue.d.ts +24 -0
  304. package/dist/components/ui/multi-select/index.d.ts +7 -0
  305. package/dist/components/ui/notification/Notification.vue.d.ts +16 -0
  306. package/dist/components/ui/notification/index.d.ts +1 -0
  307. package/dist/components/ui/number-field/NumberField.vue.d.ts +22 -0
  308. package/dist/components/ui/number-field/NumberFieldContent.vue.d.ts +17 -0
  309. package/dist/components/ui/number-field/NumberFieldDecrement.vue.d.ts +18 -0
  310. package/dist/components/ui/number-field/NumberFieldIncrement.vue.d.ts +18 -0
  311. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +3 -0
  312. package/dist/components/ui/number-field/index.d.ts +5 -0
  313. package/dist/components/ui/popover/Popover.vue.d.ts +18 -0
  314. package/dist/components/ui/popover/PopoverContent.vue.d.ts +39 -0
  315. package/dist/components/ui/popover/PopoverTrigger.vue.d.ts +14 -0
  316. package/dist/components/ui/popover/index.d.ts +3 -0
  317. package/dist/components/ui/progress/Progress.vue.d.ts +111 -0
  318. package/dist/components/ui/progress/index.d.ts +2 -0
  319. package/dist/components/ui/radio-group/RadioGroup.vue.d.ts +22 -0
  320. package/dist/components/ui/radio-group/RadioGroupItem.vue.d.ts +8 -0
  321. package/dist/components/ui/radio-group/index.d.ts +2 -0
  322. package/dist/components/ui/section/Section.vue.d.ts +73 -0
  323. package/dist/components/ui/section/index.d.ts +1 -0
  324. package/dist/components/ui/select/Select.vue.d.ts +21 -0
  325. package/dist/components/ui/select/SelectContent.vue.d.ts +30 -0
  326. package/dist/components/ui/select/SelectGroup.vue.d.ts +18 -0
  327. package/dist/components/ui/select/SelectItem.vue.d.ts +21 -0
  328. package/dist/components/ui/select/SelectLabel.vue.d.ts +18 -0
  329. package/dist/components/ui/select/SelectScrollDownButton.vue.d.ts +18 -0
  330. package/dist/components/ui/select/SelectScrollUpButton.vue.d.ts +18 -0
  331. package/dist/components/ui/select/SelectSeparator.vue.d.ts +8 -0
  332. package/dist/components/ui/select/SelectTrigger.vue.d.ts +22 -0
  333. package/dist/components/ui/select/SelectValue.vue.d.ts +14 -0
  334. package/dist/components/ui/select/index.d.ts +10 -0
  335. package/dist/components/ui/separator/Separator.vue.d.ts +9 -0
  336. package/dist/components/ui/separator/index.d.ts +1 -0
  337. package/dist/components/ui/sheet/Sheet.vue.d.ts +18 -0
  338. package/dist/components/ui/sheet/SheetClose.vue.d.ts +14 -0
  339. package/dist/components/ui/sheet/SheetContent.vue.d.ts +53 -0
  340. package/dist/components/ui/sheet/SheetDescription.vue.d.ts +18 -0
  341. package/dist/components/ui/sheet/SheetFooter.vue.d.ts +17 -0
  342. package/dist/components/ui/sheet/SheetHeader.vue.d.ts +17 -0
  343. package/dist/components/ui/sheet/SheetTitle.vue.d.ts +18 -0
  344. package/dist/components/ui/sheet/SheetTrigger.vue.d.ts +14 -0
  345. package/dist/components/ui/sheet/index.d.ts +13 -0
  346. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +32 -0
  347. package/dist/components/ui/skeleton/index.d.ts +1 -0
  348. package/dist/components/ui/slider/Slider.vue.d.ts +26 -0
  349. package/dist/components/ui/slider/index.d.ts +31 -0
  350. package/dist/components/ui/switch/Switch.vue.d.ts +12 -0
  351. package/dist/components/ui/switch/index.d.ts +1 -0
  352. package/dist/components/ui/table/Table.vue.d.ts +17 -0
  353. package/dist/components/ui/table/TableBody.vue.d.ts +17 -0
  354. package/dist/components/ui/table/TableCaption.vue.d.ts +17 -0
  355. package/dist/components/ui/table/TableCell.vue.d.ts +17 -0
  356. package/dist/components/ui/table/TableEmpty.vue.d.ts +20 -0
  357. package/dist/components/ui/table/TableHead.vue.d.ts +17 -0
  358. package/dist/components/ui/table/TableHeader.vue.d.ts +17 -0
  359. package/dist/components/ui/table/TableRow.vue.d.ts +17 -0
  360. package/dist/components/ui/table/index.d.ts +8 -0
  361. package/dist/components/ui/tabs/Tabs.vue.d.ts +19 -0
  362. package/dist/components/ui/tabs/TabsContent.vue.d.ts +18 -0
  363. package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +8 -0
  364. package/dist/components/ui/tabs/TabsList.vue.d.ts +18 -0
  365. package/dist/components/ui/tabs/TabsTrigger.vue.d.ts +18 -0
  366. package/dist/components/ui/tabs/index.d.ts +5 -0
  367. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +28 -0
  368. package/dist/components/ui/tags-input/TagsInputInput.vue.d.ts +8 -0
  369. package/dist/components/ui/tags-input/TagsInputItem.vue.d.ts +18 -0
  370. package/dist/components/ui/tags-input/TagsInputItemDelete.vue.d.ts +18 -0
  371. package/dist/components/ui/tags-input/TagsInputItemText.vue.d.ts +8 -0
  372. package/dist/components/ui/tags-input/index.d.ts +5 -0
  373. package/dist/components/ui/textarea/Textarea.vue.d.ts +13 -0
  374. package/dist/components/ui/textarea/index.d.ts +1 -0
  375. package/dist/components/ui/toast/Toast.vue.d.ts +104 -0
  376. package/dist/components/ui/toast/ToastAction.vue.d.ts +18 -0
  377. package/dist/components/ui/toast/ToastClose.vue.d.ts +8 -0
  378. package/dist/components/ui/toast/ToastDescription.vue.d.ts +18 -0
  379. package/dist/components/ui/toast/ToastTitle.vue.d.ts +18 -0
  380. package/dist/components/ui/toast/Toaster.vue.d.ts +3 -0
  381. package/dist/components/ui/toast/index.d.ts +8 -0
  382. package/dist/components/ui/toast/use-toast.d.ts +155 -0
  383. package/dist/components/ui/toggle/Toggle.vue.d.ts +29 -0
  384. package/dist/components/ui/toggle/index.d.ts +26 -0
  385. package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +25 -0
  386. package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +21 -0
  387. package/dist/components/ui/toggle-group/index.d.ts +2 -0
  388. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +21 -0
  389. package/dist/components/ui/tooltip/Tooltip.vue.d.ts +18 -0
  390. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +26 -0
  391. package/dist/components/ui/tooltip/TooltipProvider.vue.d.ts +14 -0
  392. package/dist/components/ui/tooltip/TooltipTrigger.vue.d.ts +14 -0
  393. package/dist/components/ui/tooltip/index.d.ts +4 -0
  394. package/dist/composables/dark/index.d.ts +1 -0
  395. package/dist/composables/dark/useGlobalDark.d.ts +7 -0
  396. package/dist/composables/dom/index.d.ts +6 -0
  397. package/dist/composables/dom/useBreakpoint.d.ts +38 -0
  398. package/dist/composables/dom/useClipboard.d.ts +45 -0
  399. package/dist/composables/dom/useResizeObserver.d.ts +50 -0
  400. package/dist/composables/dom/useTokenColor.d.ts +27 -0
  401. package/dist/composables/dom/useTouchGate.d.ts +18 -0
  402. package/dist/composables/dom/useViewportReady.d.ts +87 -0
  403. package/dist/composables/glass/index.d.ts +1 -0
  404. package/dist/composables/glass/useGlassRenderer.d.ts +37 -0
  405. package/dist/composables/glass/webgl/frostShader.d.ts +27 -0
  406. package/dist/composables/index.d.ts +9 -0
  407. package/dist/composables/keyboard/index.d.ts +1 -0
  408. package/dist/composables/keyboard/useKeyboardShortcuts.d.ts +33 -0
  409. package/dist/composables/motion/constants.d.ts +19 -0
  410. package/dist/composables/motion/index.d.ts +14 -0
  411. package/dist/composables/motion/installDarkModeSync.d.ts +1 -0
  412. package/dist/composables/motion/useAnimatedNumber.d.ts +40 -0
  413. package/dist/composables/motion/useAnimatedNumberMap.d.ts +29 -0
  414. package/dist/composables/motion/useIntersectionPause.d.ts +33 -0
  415. package/dist/composables/motion/useNumericTransition.d.ts +32 -0
  416. package/dist/composables/motion/useRAFLoop.d.ts +43 -0
  417. package/dist/composables/motion/useScrollProgress.d.ts +23 -0
  418. package/dist/composables/motion/useSpring.d.ts +66 -0
  419. package/dist/composables/motion/useSpringMount.d.ts +52 -0
  420. package/dist/composables/motion/useSpringOrchestrator.d.ts +15 -0
  421. package/dist/composables/motion/useSpringPress.d.ts +46 -0
  422. package/dist/composables/motion/useStagger.d.ts +50 -0
  423. package/dist/composables/motion/useStaggerReveal.d.ts +22 -0
  424. package/dist/composables/reactive/index.d.ts +2 -0
  425. package/dist/composables/reactive/useInterval.d.ts +24 -0
  426. package/dist/composables/reactive/useTimer.d.ts +24 -0
  427. package/dist/composables/sidebar/index.d.ts +7 -0
  428. package/dist/composables/sidebar/types.d.ts +44 -0
  429. package/dist/composables/sidebar/useScrollTracker.d.ts +12 -0
  430. package/dist/composables/sidebar/useSidebarFollow.d.ts +16 -0
  431. package/dist/composables/sidebar/useSidebarState.d.ts +39 -0
  432. package/dist/composables/sidebar/useTreeIndex.d.ts +37 -0
  433. package/dist/composables/sortable/index.d.ts +1 -0
  434. package/dist/composables/sortable/useSortable.d.ts +149 -0
  435. package/dist/configurator.d.ts +1 -0
  436. package/dist/configurator.js +2 -0
  437. package/dist/confirm-dialog.d.ts +1 -0
  438. package/dist/confirm-dialog.js +69 -0
  439. package/dist/context-menu.d.ts +1 -0
  440. package/dist/context-menu.js +3 -0
  441. package/dist/controls.d.ts +1 -0
  442. package/dist/controls.js +51 -0
  443. package/dist/createLucideIcon-Bn9a1b70.js +43 -0
  444. package/dist/dark.d.ts +1 -0
  445. package/dist/dark.js +2 -0
  446. package/dist/data-table.d.ts +1 -0
  447. package/dist/data-table.js +2 -0
  448. package/dist/dialog.d.ts +1 -0
  449. package/dist/dialog.js +3 -0
  450. package/dist/disco-glyph.d.ts +1 -0
  451. package/dist/disco-glyph.js +2 -0
  452. package/dist/dock.d.ts +1 -0
  453. package/dist/dock.js +548 -0
  454. package/dist/dockContext-BDGSrwsV.js +16 -0
  455. package/dist/dom.d.ts +1 -0
  456. package/dist/dom.js +4 -0
  457. package/dist/dropdown-menu-2K-SGkZU.js +363 -0
  458. package/dist/dropdown-menu.d.ts +1 -0
  459. package/dist/dropdown-menu.js +2 -0
  460. package/dist/expandable-container.d.ts +1 -0
  461. package/dist/expandable-container.js +64 -0
  462. package/dist/fonts/README.md +95 -0
  463. package/dist/fonts/fira-code/OFL.txt +93 -0
  464. package/dist/fonts/fira-code/fira-code-latin-ext.woff2 +0 -0
  465. package/dist/fonts/fira-code/fira-code-latin.woff2 +0 -0
  466. package/dist/fonts/plus-jakarta-sans/OFL.txt +93 -0
  467. package/dist/fonts/plus-jakarta-sans/plus-jakarta-sans-latin-ext.woff2 +0 -0
  468. package/dist/fonts/plus-jakarta-sans/plus-jakarta-sans-latin.woff2 +0 -0
  469. package/dist/forms.d.ts +3 -0
  470. package/dist/forms.js +311 -0
  471. package/dist/glass-carousel.d.ts +1 -0
  472. package/dist/glass-carousel.js +207 -0
  473. package/dist/glass-panel.d.ts +1 -0
  474. package/dist/glass-panel.js +44 -0
  475. package/dist/glass-ui.css +2 -1
  476. package/dist/glass-ui.js +1150 -10018
  477. package/dist/glyph-face.d.ts +1 -0
  478. package/dist/glyph-face.js +3 -0
  479. package/dist/header-ribbon.d.ts +1 -0
  480. package/dist/header-ribbon.js +63 -0
  481. package/dist/hover-card.d.ts +1 -0
  482. package/dist/hover-card.js +2 -0
  483. package/dist/hover-popover.d.ts +1 -0
  484. package/dist/hover-popover.js +2 -0
  485. package/dist/icon-tooltip.d.ts +1 -0
  486. package/dist/icon-tooltip.js +2 -0
  487. package/dist/index.d.ts +49 -6619
  488. package/dist/infinite-scroll.d.ts +2 -0
  489. package/dist/infinite-scroll.js +73 -0
  490. package/dist/instrument-chassis.d.ts +1 -0
  491. package/dist/instrument-chassis.js +2 -0
  492. package/dist/instrument-rail.d.ts +1 -0
  493. package/dist/instrument-rail.js +2 -0
  494. package/dist/keyboard.d.ts +1 -0
  495. package/dist/keyboard.js +2 -0
  496. package/dist/keys-DVkcUktU.js +11 -0
  497. package/dist/label.d.ts +1 -0
  498. package/dist/label.js +2 -0
  499. package/dist/labeled-field.d.ts +1 -0
  500. package/dist/labeled-field.js +194 -0
  501. package/dist/menuItemVariants-B2nDL7zH.js +30 -0
  502. package/dist/metric-badge.d.ts +1 -0
  503. package/dist/metric-badge.js +2 -0
  504. package/dist/metric-cell.d.ts +1 -0
  505. package/dist/metric-cell.js +54 -0
  506. package/dist/metric-stack.d.ts +1 -0
  507. package/dist/metric-stack.js +107 -0
  508. package/dist/minimize-2-LsCJ_eNt.js +38 -0
  509. package/dist/motion.d.ts +1 -0
  510. package/dist/motion.js +286 -0
  511. package/dist/notification.d.ts +1 -0
  512. package/dist/notification.js +2 -0
  513. package/dist/paper-backdrop.d.ts +1 -0
  514. package/dist/paper-backdrop.js +2 -0
  515. package/dist/popover.d.ts +1 -0
  516. package/dist/popover.js +2 -0
  517. package/dist/presets-BMzCDrmR.js +71 -0
  518. package/dist/progress.d.ts +1 -0
  519. package/dist/progress.js +2 -0
  520. package/dist/pulse.d.ts +1 -0
  521. package/dist/pulse.js +54 -0
  522. package/dist/reactive.d.ts +1 -0
  523. package/dist/reactive.js +3 -0
  524. package/dist/responsive-tabs.d.ts +1 -0
  525. package/dist/responsive-tabs.js +89 -0
  526. package/dist/scrolling-text.d.ts +1 -0
  527. package/dist/scrolling-text.js +2 -0
  528. package/dist/search-ocd8tmL9.js +12 -0
  529. package/dist/search.d.ts +1 -0
  530. package/dist/search.js +425 -0
  531. package/dist/select.d.ts +1 -0
  532. package/dist/select.js +4 -0
  533. package/dist/separator.d.ts +1 -0
  534. package/dist/separator.js +2 -0
  535. package/dist/sheet-CLVkb3AO.js +214 -0
  536. package/dist/sheet.d.ts +1 -0
  537. package/dist/sheet.js +2 -0
  538. package/dist/sidebar.d.ts +1 -0
  539. package/dist/sidebar.js +304 -0
  540. package/dist/slider-BQaLYFLh.js +133 -0
  541. package/dist/slider.d.ts +1 -0
  542. package/dist/slider.js +2 -0
  543. package/dist/sortable-list.d.ts +1 -0
  544. package/dist/sortable-list.js +82 -0
  545. package/dist/stacked-icons.d.ts +1 -0
  546. package/dist/stacked-icons.js +83 -0
  547. package/dist/status-dot.d.ts +1 -0
  548. package/dist/status-dot.js +55 -0
  549. package/dist/styles/animations.css +298 -0
  550. package/dist/styles/cards.css +44 -0
  551. package/dist/styles/disco-glyph.css +26 -0
  552. package/dist/styles/dock.css +1085 -0
  553. package/dist/styles/floating-panel.css +34 -0
  554. package/dist/styles/fonts.css +143 -0
  555. package/dist/styles/glass.css +277 -0
  556. package/dist/styles/glyph-face.css +92 -0
  557. package/dist/styles/hover-popover.css +44 -0
  558. package/dist/styles/index.css +96 -0
  559. package/dist/styles/instrument-chassis.css +313 -0
  560. package/dist/styles/instrument-rail.css +128 -0
  561. package/dist/styles/paper.css +68 -0
  562. package/dist/styles/theme.css +358 -0
  563. package/dist/styles/tokens.css +1495 -0
  564. package/dist/styles/transitions.css +245 -0
  565. package/dist/styles/typography.css +553 -0
  566. package/dist/styles/utilities.css +893 -0
  567. package/dist/tabs.d.ts +1 -0
  568. package/dist/tabs.js +206 -0
  569. package/dist/timeline.d.ts +1 -0
  570. package/dist/timeline.js +466 -0
  571. package/dist/toast.d.ts +1 -0
  572. package/dist/toast.js +2 -0
  573. package/dist/toggle-chip.d.ts +1 -0
  574. package/dist/toggle-chip.js +71 -0
  575. package/dist/toggle-group.d.ts +1 -0
  576. package/dist/toggle-group.js +2 -0
  577. package/dist/tokens.d.ts +53 -0
  578. package/dist/tokens.js +16 -0
  579. package/dist/tooltip.d.ts +1 -0
  580. package/dist/tooltip.js +2 -0
  581. package/dist/typewriter.d.ts +1 -0
  582. package/dist/typewriter.js +860 -0
  583. package/dist/useAnimatedNumber-DcvTR9B4.js +51 -0
  584. package/dist/useBreakpoint-BHlX-MhR.js +134 -0
  585. package/dist/useConfiguratorState-BlaevW0S.js +266 -0
  586. package/dist/useGlassRenderer-DMDdMH55.js +69 -0
  587. package/dist/useGlobalDark-PMiP5Jku.js +24 -0
  588. package/dist/useIntersectionPause-CXYfYg_C.js +39 -0
  589. package/dist/useInterval-COlTCeVa.js +18 -0
  590. package/dist/useKeyboardShortcuts-B1ev1YEC.js +99 -0
  591. package/dist/useResizeObserver-F4aRR4Cj.js +44 -0
  592. package/dist/useSortable-Ck0rBJ4g.js +175 -0
  593. package/dist/useSpringMount-BTRBNzXP.js +113 -0
  594. package/dist/useTimer-lp5NlH4w.js +20 -0
  595. package/dist/useTouchGate-BhhEMlwJ.js +84 -0
  596. package/dist/utils/cn.d.ts +27 -0
  597. package/dist/x-cdWAmO-q.js +10 -0
  598. package/package.json +514 -26
  599. package/src/fonts/README.md +95 -0
  600. package/src/fonts/fira-code/OFL.txt +93 -0
  601. package/src/fonts/fira-code/fira-code-latin-ext.woff2 +0 -0
  602. package/src/fonts/fira-code/fira-code-latin.woff2 +0 -0
  603. package/src/fonts/plus-jakarta-sans/OFL.txt +93 -0
  604. package/src/fonts/plus-jakarta-sans/plus-jakarta-sans-latin-ext.woff2 +0 -0
  605. package/src/fonts/plus-jakarta-sans/plus-jakarta-sans-latin.woff2 +0 -0
  606. package/src/styles/animations.css +172 -107
  607. package/src/styles/cards.css +30 -52
  608. package/src/styles/disco-glyph.css +26 -0
  609. package/src/styles/dock.css +991 -127
  610. package/src/styles/floating-panel.css +22 -37
  611. package/src/styles/fonts.css +143 -0
  612. package/src/styles/glass.css +131 -120
  613. package/src/styles/glyph-face.css +92 -0
  614. package/src/styles/hover-popover.css +44 -0
  615. package/src/styles/index.css +73 -3
  616. package/src/styles/instrument-chassis.css +313 -0
  617. package/src/styles/instrument-rail.css +128 -0
  618. package/src/styles/paper.css +68 -0
  619. package/src/styles/theme.css +292 -72
  620. package/src/styles/tokens.css +1345 -183
  621. package/src/styles/transitions.css +227 -208
  622. package/src/styles/typography.css +498 -222
  623. package/src/styles/utilities.css +629 -433
  624. package/src/components/custom/aurora/Aurora.vue +0 -34
  625. package/src/components/custom/aurora/composables/color.ts +0 -122
  626. package/src/components/custom/aurora/composables/useAurora.ts +0 -355
  627. package/src/components/custom/aurora/index.ts +0 -8
  628. package/src/components/custom/confirm-dialog/ConfirmDialog.vue +0 -88
  629. package/src/components/custom/controls/DarkModeToggle.vue +0 -96
  630. package/src/components/custom/dock/DockLayerGroup.vue +0 -21
  631. package/src/components/custom/dock/DockPopover.vue +0 -263
  632. package/src/components/custom/dock/GlassDock.vue +0 -276
  633. package/src/components/custom/dock/composables/index.ts +0 -16
  634. package/src/components/custom/dock/composables/isTeleportedTarget.ts +0 -19
  635. package/src/components/custom/dock/composables/useDockActionBar.ts +0 -33
  636. package/src/components/custom/dock/composables/useDockState.ts +0 -301
  637. package/src/components/custom/dock/composables/useDockTransition.ts +0 -146
  638. package/src/components/custom/dock/composables/useLayerTransition.ts +0 -135
  639. package/src/components/custom/dock/composables/usePopupMutex.ts +0 -83
  640. package/src/components/custom/dock/index.ts +0 -9
  641. package/src/components/custom/expandable-container/ExpandableContainer.vue +0 -64
  642. package/src/components/custom/glass-panel/GlassPanel.vue +0 -98
  643. package/src/components/custom/glass-panel/index.ts +0 -2
  644. package/src/components/custom/icon-tooltip/IconTooltip.vue +0 -20
  645. package/src/components/custom/index.ts +0 -15
  646. package/src/components/custom/infinite-scroll/InfiniteScroll.vue +0 -55
  647. package/src/components/custom/infinite-scroll/composables/types.ts +0 -23
  648. package/src/components/custom/infinite-scroll/composables/useInfiniteScroll.ts +0 -73
  649. package/src/components/custom/labeled-field/LabeledInput.vue +0 -29
  650. package/src/components/custom/labeled-field/LabeledSelect.vue +0 -59
  651. package/src/components/custom/labeled-field/LabeledSlider.vue +0 -32
  652. package/src/components/custom/labeled-field/LabeledSwitch.vue +0 -27
  653. package/src/components/custom/labeled-field/index.ts +0 -4
  654. package/src/components/custom/metaballs/MetaballCanvas.vue +0 -23
  655. package/src/components/custom/metaballs/index.ts +0 -4
  656. package/src/components/custom/metaballs/shaders.ts +0 -63
  657. package/src/components/custom/metaballs/types.ts +0 -29
  658. package/src/components/custom/metaballs/useMetaballs.ts +0 -252
  659. package/src/components/custom/search/FuzzySearch.vue +0 -589
  660. package/src/components/custom/search/SearchBar.vue +0 -44
  661. package/src/components/custom/search/composables/fuzzySearchIndex.ts +0 -224
  662. package/src/components/custom/search/composables/types.ts +0 -34
  663. package/src/components/custom/search/composables/useFuzzySearch.ts +0 -115
  664. package/src/components/custom/sidebar/ProgressiveSidebar.vue +0 -256
  665. package/src/components/custom/sidebar/composables/index.ts +0 -6
  666. package/src/components/custom/sidebar/composables/useScrollTracker.ts +0 -242
  667. package/src/components/custom/sidebar/composables/useSidebarFollow.ts +0 -247
  668. package/src/components/custom/sidebar/composables/useSidebarState.ts +0 -72
  669. package/src/components/custom/sidebar/composables/useTreeIndex.ts +0 -152
  670. package/src/components/custom/sidebar/index.ts +0 -15
  671. package/src/components/custom/sidebar/types.ts +0 -50
  672. package/src/components/custom/tabs/BouncyTabs.vue +0 -39
  673. package/src/components/custom/tabs/BouncyToggle.vue +0 -352
  674. package/src/components/custom/tabs/UnderlineTabs.vue +0 -115
  675. package/src/components/custom/timeline/GlassTimeline.vue +0 -174
  676. package/src/components/custom/timeline/index.ts +0 -1
  677. package/src/components/custom/typewriter/TypewriterText.vue +0 -239
  678. package/src/components/custom/typewriter/composables/useTypewriter.ts +0 -413
  679. package/src/components/custom/typewriter/types.ts +0 -159
  680. package/src/components/custom/typewriter/utils/keyboard.ts +0 -213
  681. package/src/components/custom/typewriter/utils/pausePatterns.ts +0 -55
  682. package/src/components/custom/typewriter/utils/timing.ts +0 -104
  683. package/src/components/custom/typewriter/utils/typoStateMachine.ts +0 -197
  684. package/src/components/index.ts +0 -2
  685. package/src/components/ui/accordion/Accordion.vue +0 -19
  686. package/src/components/ui/accordion/AccordionContent.vue +0 -24
  687. package/src/components/ui/accordion/AccordionItem.vue +0 -24
  688. package/src/components/ui/accordion/AccordionTrigger.vue +0 -39
  689. package/src/components/ui/accordion/index.ts +0 -4
  690. package/src/components/ui/alert/Alert.vue +0 -20
  691. package/src/components/ui/alert/AlertDescription.vue +0 -17
  692. package/src/components/ui/alert/AlertTitle.vue +0 -17
  693. package/src/components/ui/alert/index.ts +0 -23
  694. package/src/components/ui/avatar/Avatar.vue +0 -21
  695. package/src/components/ui/avatar/AvatarFallback.vue +0 -11
  696. package/src/components/ui/avatar/AvatarImage.vue +0 -9
  697. package/src/components/ui/avatar/index.ts +0 -24
  698. package/src/components/ui/badge/Badge.vue +0 -16
  699. package/src/components/ui/badge/index.ts +0 -25
  700. package/src/components/ui/button/Button.vue +0 -26
  701. package/src/components/ui/button/index.ts +0 -43
  702. package/src/components/ui/card/Card.vue +0 -28
  703. package/src/components/ui/card/CardContent.vue +0 -14
  704. package/src/components/ui/card/CardDescription.vue +0 -14
  705. package/src/components/ui/card/CardFooter.vue +0 -14
  706. package/src/components/ui/card/CardHeader.vue +0 -14
  707. package/src/components/ui/card/CardTitle.vue +0 -21
  708. package/src/components/ui/card/index.ts +0 -6
  709. package/src/components/ui/carousel/Carousel.vue +0 -53
  710. package/src/components/ui/carousel/CarouselContent.vue +0 -35
  711. package/src/components/ui/carousel/CarouselItem.vue +0 -24
  712. package/src/components/ui/carousel/CarouselNext.vue +0 -40
  713. package/src/components/ui/carousel/CarouselPrevious.vue +0 -40
  714. package/src/components/ui/carousel/index.ts +0 -10
  715. package/src/components/ui/carousel/interface.ts +0 -26
  716. package/src/components/ui/carousel/useCarousel.ts +0 -56
  717. package/src/components/ui/checkbox/Checkbox.vue +0 -33
  718. package/src/components/ui/checkbox/index.ts +0 -1
  719. package/src/components/ui/collapsible/Collapsible.vue +0 -15
  720. package/src/components/ui/collapsible/CollapsibleContent.vue +0 -11
  721. package/src/components/ui/collapsible/CollapsibleTrigger.vue +0 -11
  722. package/src/components/ui/collapsible/index.ts +0 -3
  723. package/src/components/ui/combobox/Combobox.vue +0 -17
  724. package/src/components/ui/combobox/ComboboxAnchor.vue +0 -23
  725. package/src/components/ui/combobox/ComboboxEmpty.vue +0 -21
  726. package/src/components/ui/combobox/ComboboxGroup.vue +0 -27
  727. package/src/components/ui/combobox/ComboboxInput.vue +0 -41
  728. package/src/components/ui/combobox/ComboboxItem.vue +0 -24
  729. package/src/components/ui/combobox/ComboboxItemIndicator.vue +0 -23
  730. package/src/components/ui/combobox/ComboboxList.vue +0 -29
  731. package/src/components/ui/combobox/ComboboxSeparator.vue +0 -21
  732. package/src/components/ui/combobox/ComboboxViewport.vue +0 -23
  733. package/src/components/ui/combobox/index.ts +0 -12
  734. package/src/components/ui/command/Command.vue +0 -30
  735. package/src/components/ui/command/CommandDialog.vue +0 -21
  736. package/src/components/ui/command/CommandEmpty.vue +0 -20
  737. package/src/components/ui/command/CommandGroup.vue +0 -29
  738. package/src/components/ui/command/CommandInput.vue +0 -33
  739. package/src/components/ui/command/CommandItem.vue +0 -26
  740. package/src/components/ui/command/CommandList.vue +0 -27
  741. package/src/components/ui/command/CommandSeparator.vue +0 -23
  742. package/src/components/ui/command/CommandShortcut.vue +0 -14
  743. package/src/components/ui/command/index.ts +0 -9
  744. package/src/components/ui/context-menu/ContextMenu.vue +0 -15
  745. package/src/components/ui/context-menu/ContextMenuCheckboxItem.vue +0 -40
  746. package/src/components/ui/context-menu/ContextMenuContent.vue +0 -36
  747. package/src/components/ui/context-menu/ContextMenuGroup.vue +0 -11
  748. package/src/components/ui/context-menu/ContextMenuItem.vue +0 -34
  749. package/src/components/ui/context-menu/ContextMenuLabel.vue +0 -25
  750. package/src/components/ui/context-menu/ContextMenuPortal.vue +0 -11
  751. package/src/components/ui/context-menu/ContextMenuRadioGroup.vue +0 -19
  752. package/src/components/ui/context-menu/ContextMenuRadioItem.vue +0 -40
  753. package/src/components/ui/context-menu/ContextMenuSeparator.vue +0 -20
  754. package/src/components/ui/context-menu/ContextMenuShortcut.vue +0 -14
  755. package/src/components/ui/context-menu/ContextMenuSub.vue +0 -19
  756. package/src/components/ui/context-menu/ContextMenuSubContent.vue +0 -35
  757. package/src/components/ui/context-menu/ContextMenuSubTrigger.vue +0 -34
  758. package/src/components/ui/context-menu/ContextMenuTrigger.vue +0 -13
  759. package/src/components/ui/context-menu/index.ts +0 -14
  760. package/src/components/ui/data-table/DataTable.vue +0 -167
  761. package/src/components/ui/data-table/DataTablePagination.vue +0 -112
  762. package/src/components/ui/data-table/types.ts +0 -48
  763. package/src/components/ui/dialog/Dialog.vue +0 -14
  764. package/src/components/ui/dialog/DialogClose.vue +0 -11
  765. package/src/components/ui/dialog/DialogContent.vue +0 -61
  766. package/src/components/ui/dialog/DialogDescription.vue +0 -24
  767. package/src/components/ui/dialog/DialogFooter.vue +0 -19
  768. package/src/components/ui/dialog/DialogHeader.vue +0 -16
  769. package/src/components/ui/dialog/DialogScrollContent.vue +0 -65
  770. package/src/components/ui/dialog/DialogTitle.vue +0 -29
  771. package/src/components/ui/dialog/DialogTrigger.vue +0 -11
  772. package/src/components/ui/dialog/index.ts +0 -9
  773. package/src/components/ui/drawer/Drawer.vue +0 -19
  774. package/src/components/ui/drawer/DrawerContent.vue +0 -28
  775. package/src/components/ui/drawer/DrawerDescription.vue +0 -20
  776. package/src/components/ui/drawer/DrawerFooter.vue +0 -14
  777. package/src/components/ui/drawer/DrawerHeader.vue +0 -14
  778. package/src/components/ui/drawer/DrawerOverlay.vue +0 -18
  779. package/src/components/ui/drawer/DrawerTitle.vue +0 -20
  780. package/src/components/ui/drawer/index.ts +0 -8
  781. package/src/components/ui/dropdown-menu/DropdownMenu.vue +0 -14
  782. package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +0 -40
  783. package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +0 -44
  784. package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +0 -11
  785. package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +0 -28
  786. package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +0 -24
  787. package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +0 -19
  788. package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +0 -40
  789. package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +0 -22
  790. package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +0 -14
  791. package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +0 -19
  792. package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +0 -36
  793. package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +0 -33
  794. package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +0 -13
  795. package/src/components/ui/dropdown-menu/index.ts +0 -16
  796. package/src/components/ui/hover-card/HoverCard.vue +0 -14
  797. package/src/components/ui/hover-card/HoverCardContent.vue +0 -41
  798. package/src/components/ui/hover-card/HoverCardTrigger.vue +0 -11
  799. package/src/components/ui/hover-card/index.ts +0 -3
  800. package/src/components/ui/index.ts +0 -41
  801. package/src/components/ui/input/Input.vue +0 -24
  802. package/src/components/ui/input/index.ts +0 -1
  803. package/src/components/ui/label/Label.vue +0 -27
  804. package/src/components/ui/label/index.ts +0 -1
  805. package/src/components/ui/multi-select/MultiSelect.vue +0 -141
  806. package/src/components/ui/multi-select/index.ts +0 -7
  807. package/src/components/ui/notification/Notification.vue +0 -85
  808. package/src/components/ui/notification/index.ts +0 -1
  809. package/src/components/ui/number-field/NumberField.vue +0 -23
  810. package/src/components/ui/number-field/NumberFieldContent.vue +0 -14
  811. package/src/components/ui/number-field/NumberFieldDecrement.vue +0 -25
  812. package/src/components/ui/number-field/NumberFieldIncrement.vue +0 -25
  813. package/src/components/ui/number-field/NumberFieldInput.vue +0 -8
  814. package/src/components/ui/number-field/index.ts +0 -5
  815. package/src/components/ui/popover/Popover.vue +0 -15
  816. package/src/components/ui/popover/PopoverContent.vue +0 -61
  817. package/src/components/ui/popover/PopoverTrigger.vue +0 -11
  818. package/src/components/ui/popover/index.ts +0 -3
  819. package/src/components/ui/progress/Progress.vue +0 -39
  820. package/src/components/ui/progress/index.ts +0 -1
  821. package/src/components/ui/radio-group/RadioGroup.vue +0 -25
  822. package/src/components/ui/radio-group/RadioGroupItem.vue +0 -39
  823. package/src/components/ui/radio-group/index.ts +0 -2
  824. package/src/components/ui/scroll-area/ScrollArea.vue +0 -29
  825. package/src/components/ui/scroll-area/ScrollBar.vue +0 -30
  826. package/src/components/ui/scroll-area/index.ts +0 -2
  827. package/src/components/ui/scroll-pane/ScrollPane.vue +0 -25
  828. package/src/components/ui/scroll-pane/ScrollPaneHeader.vue +0 -75
  829. package/src/components/ui/scroll-pane/index.ts +0 -2
  830. package/src/components/ui/select/Select.vue +0 -15
  831. package/src/components/ui/select/SelectContent.vue +0 -57
  832. package/src/components/ui/select/SelectGroup.vue +0 -19
  833. package/src/components/ui/select/SelectItem.vue +0 -47
  834. package/src/components/ui/select/SelectItemText.vue +0 -11
  835. package/src/components/ui/select/SelectLabel.vue +0 -13
  836. package/src/components/ui/select/SelectScrollDownButton.vue +0 -24
  837. package/src/components/ui/select/SelectScrollUpButton.vue +0 -24
  838. package/src/components/ui/select/SelectSeparator.vue +0 -17
  839. package/src/components/ui/select/SelectTrigger.vue +0 -45
  840. package/src/components/ui/select/SelectValue.vue +0 -11
  841. package/src/components/ui/select/index.ts +0 -11
  842. package/src/components/ui/separator/Separator.vue +0 -35
  843. package/src/components/ui/separator/index.ts +0 -1
  844. package/src/components/ui/sheet/Sheet.vue +0 -14
  845. package/src/components/ui/sheet/SheetClose.vue +0 -11
  846. package/src/components/ui/sheet/SheetContent.vue +0 -56
  847. package/src/components/ui/sheet/SheetDescription.vue +0 -22
  848. package/src/components/ui/sheet/SheetFooter.vue +0 -19
  849. package/src/components/ui/sheet/SheetHeader.vue +0 -16
  850. package/src/components/ui/sheet/SheetTitle.vue +0 -22
  851. package/src/components/ui/sheet/SheetTrigger.vue +0 -11
  852. package/src/components/ui/sheet/index.ts +0 -31
  853. package/src/components/ui/skeleton/Skeleton.vue +0 -14
  854. package/src/components/ui/skeleton/index.ts +0 -1
  855. package/src/components/ui/slider/Slider.vue +0 -66
  856. package/src/components/ui/slider/index.ts +0 -1
  857. package/src/components/ui/switch/Switch.vue +0 -37
  858. package/src/components/ui/switch/index.ts +0 -1
  859. package/src/components/ui/table/Table.vue +0 -16
  860. package/src/components/ui/table/TableBody.vue +0 -14
  861. package/src/components/ui/table/TableCaption.vue +0 -14
  862. package/src/components/ui/table/TableCell.vue +0 -14
  863. package/src/components/ui/table/TableEmpty.vue +0 -39
  864. package/src/components/ui/table/TableFooter.vue +0 -16
  865. package/src/components/ui/table/TableHead.vue +0 -21
  866. package/src/components/ui/table/TableHeader.vue +0 -14
  867. package/src/components/ui/table/TableRow.vue +0 -21
  868. package/src/components/ui/table/index.ts +0 -9
  869. package/src/components/ui/tabs/Tabs.vue +0 -15
  870. package/src/components/ui/tabs/TabsContent.vue +0 -22
  871. package/src/components/ui/tabs/TabsIndicator.vue +0 -22
  872. package/src/components/ui/tabs/TabsList.vue +0 -25
  873. package/src/components/ui/tabs/TabsTrigger.vue +0 -29
  874. package/src/components/ui/tabs/index.ts +0 -5
  875. package/src/components/ui/tags-input/TagsInput.vue +0 -22
  876. package/src/components/ui/tags-input/TagsInputInput.vue +0 -19
  877. package/src/components/ui/tags-input/TagsInputItem.vue +0 -22
  878. package/src/components/ui/tags-input/TagsInputItemDelete.vue +0 -24
  879. package/src/components/ui/tags-input/TagsInputItemText.vue +0 -19
  880. package/src/components/ui/tags-input/index.ts +0 -5
  881. package/src/components/ui/textarea/Textarea.vue +0 -24
  882. package/src/components/ui/textarea/index.ts +0 -1
  883. package/src/components/ui/toast/Toast.vue +0 -57
  884. package/src/components/ui/toast/ToastAction.vue +0 -30
  885. package/src/components/ui/toast/ToastClose.vue +0 -31
  886. package/src/components/ui/toast/ToastDescription.vue +0 -25
  887. package/src/components/ui/toast/ToastTitle.vue +0 -25
  888. package/src/components/ui/toast/Toaster.vue +0 -31
  889. package/src/components/ui/toast/index.ts +0 -8
  890. package/src/components/ui/toast/use-toast.ts +0 -136
  891. package/src/components/ui/toggle/Toggle.vue +0 -35
  892. package/src/components/ui/toggle/index.ts +0 -27
  893. package/src/components/ui/toggle-group/ToggleGroup.vue +0 -34
  894. package/src/components/ui/toggle-group/ToggleGroupItem.vue +0 -35
  895. package/src/components/ui/toggle-group/index.ts +0 -2
  896. package/src/components/ui/tooltip/Tooltip.vue +0 -14
  897. package/src/components/ui/tooltip/TooltipContent.vue +0 -31
  898. package/src/components/ui/tooltip/TooltipProvider.vue +0 -11
  899. package/src/components/ui/tooltip/TooltipTrigger.vue +0 -11
  900. package/src/components/ui/tooltip/index.ts +0 -4
  901. package/src/composables/glass/index.ts +0 -8
  902. package/src/composables/glass/useGlassRenderer.ts +0 -252
  903. package/src/composables/glass/webgl/frostShader.ts +0 -221
  904. package/src/composables/glass/webgpu/glassShader.wgsl +0 -173
  905. package/src/composables/index.ts +0 -32
  906. package/src/composables/infinite-scroll/index.ts +0 -2
  907. package/src/composables/infinite-scroll/types.ts +0 -25
  908. package/src/composables/infinite-scroll/useInfiniteScroll.ts +0 -101
  909. package/src/composables/interaction/index.ts +0 -5
  910. package/src/composables/interaction/useHeightTransition.ts +0 -82
  911. package/src/composables/interaction/useHoverPopover.ts +0 -64
  912. package/src/composables/interaction/useHoverToggle.ts +0 -103
  913. package/src/composables/interaction/useLeaveTimer.ts +0 -17
  914. package/src/composables/interaction/useTouchGate.ts +0 -207
  915. package/src/composables/pagination/index.ts +0 -2
  916. package/src/composables/pagination/useOffsetPagination.ts +0 -70
  917. package/src/composables/prng.ts +0 -32
  918. package/src/composables/useCharSplit.ts +0 -31
  919. package/src/composables/useClipboard.ts +0 -46
  920. package/src/composables/useGlobalDark.ts +0 -61
  921. package/src/composables/useKeyboardShortcuts.ts +0 -205
  922. package/src/composables/useWatercolorBlob.ts +0 -136
  923. package/src/composables/virtual/index.ts +0 -22
  924. package/src/composables/virtual/useVirtualSectionWindow.ts +0 -338
  925. package/src/composables/virtual/useWindowedStore.ts +0 -86
  926. package/src/composables/virtual/virtualSectionLayout.ts +0 -212
  927. package/src/index.ts +0 -9
  928. package/src/styles/scroll-pane.css +0 -10
  929. package/src/utils/cn.ts +0 -6
  930. /package/{src/components/custom/confirm-dialog/index.ts → dist/components/custom/confirm-dialog/index.d.ts} +0 -0
  931. /package/{src/components/custom/controls/index.ts → dist/components/custom/controls/index.d.ts} +0 -0
  932. /package/{src/components/custom/expandable-container/index.ts → dist/components/custom/expandable-container/index.d.ts} +0 -0
  933. /package/{src/components/custom/icon-tooltip/index.ts → dist/components/custom/icon-tooltip/index.d.ts} +0 -0
  934. /package/{src/components/custom/infinite-scroll/composables/index.ts → dist/components/custom/infinite-scroll/composables/index.d.ts} +0 -0
  935. /package/{src/components/custom/infinite-scroll/index.ts → dist/components/custom/infinite-scroll/index.d.ts} +0 -0
  936. /package/{src/components/custom/search/composables/index.ts → dist/components/custom/search/composables/index.d.ts} +0 -0
  937. /package/{src/components/custom/search/index.ts → dist/components/custom/search/index.d.ts} +0 -0
  938. /package/{src/components/custom/tabs/index.ts → dist/components/custom/tabs/index.d.ts} +0 -0
  939. /package/{src/components/custom/typewriter/composables/index.ts → dist/components/custom/typewriter/composables/index.d.ts} +0 -0
  940. /package/{src/components/custom/typewriter/index.ts → dist/components/custom/typewriter/index.d.ts} +0 -0
  941. /package/{src/components/ui/data-table/index.ts → dist/components/ui/data-table/index.d.ts} +0 -0
  942. /package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -0
@@ -0,0 +1,44 @@
1
+ /* hover-popover.css — substrate sheet for <HoverPopover>.
2
+ *
3
+ * Lands as the A5 §10 row 4 carry-forward: IconTooltip's tooltip register
4
+ * was too quiet for the chassis-tier dock consumers (SettingsCog,
5
+ * ActionCluster). This sheet ships a popover-tier substrate (glass +
6
+ * border + radius) sized for label-shaped content; richer slot content
7
+ * inherits the substrate without extra props.
8
+ *
9
+ * The collision-avoidance + side-flip cascade rests on reka-ui's
10
+ * HoverCard primitives; this sheet is purely visual.
11
+ */
12
+
13
+ @layer components {
14
+ .hover-popover-panel {
15
+ display: inline-flex;
16
+ align-items: center;
17
+ gap: 0.375rem;
18
+ padding-block: 0.375rem;
19
+ padding-inline: 0.625rem;
20
+ border-radius: var(--radius-lg, 0.5rem);
21
+ background: var(--glass-bg-floating, var(--popover, white));
22
+ backdrop-filter: var(--glass-blur-floating);
23
+ border: 1px solid var(--glass-border-floating, var(--border, transparent));
24
+ color: var(--popover-foreground, var(--foreground));
25
+ box-shadow: var(--glass-shadow-floating, var(--shadow-md));
26
+ font-size: var(--type-small, 0.8125rem);
27
+ line-height: 1.2;
28
+ max-width: 16rem;
29
+ white-space: normal;
30
+ outline: none;
31
+ }
32
+
33
+ .hover-popover-label {
34
+ display: inline-block;
35
+ }
36
+ }
37
+
38
+ /* The data-state animation grammar canonicalises onto `.popover-animate`
39
+ (V.W3.T9 / A5 §5.8). Authors compose `class="hover-popover-panel popover-animate"`
40
+ on the panel root so the canonical fade + zoom-95 entry/exit grammar
41
+ replaces the bespoke `hover-popover-in/out` keyframes that lived here.
42
+ The `prefers-reduced-motion` carve is handled at the canonical site
43
+ (`utilities.css`'s reduced-motion block) so it cascades to all four
44
+ popover-animation consumers automatically. */
@@ -4,22 +4,92 @@
4
4
  * Import this in your project's main CSS file:
5
5
  * @import "tailwindcss";
6
6
  * @import "tw-animate-css";
7
- * @import "@mkbabb/glass-ui/styles";
7
+ * @import "@mkbabb/glass-ui/styles"; (critical — no font payload)
8
+ * @import "@mkbabb/glass-ui/styles/fonts"; (OFL woff2 corpus, loaded once)
8
9
  * (then add your project-specific token overrides locally)
9
10
  */
10
11
 
11
- /* Order matters: tokens first, then theme (for @theme), then component layers */
12
+ /*
13
+ * FONT PAYLOAD SPLIT (AM-W1-α). The payload-bearing @font-face faces
14
+ * (Plus Jakarta Sans + Fira Code woff2, base64-inlined at publish into
15
+ * ~99 KB gzipped) are NOT imported here — they live in `fonts.css`,
16
+ * reachable via the `@mkbabb/glass-ui/styles/fonts` export. This keeps the
17
+ * critical first-paint `./styles` entry free of the font binary. The
18
+ * calibrated `local()` fallback faces (with Capsize metric overrides) DO
19
+ * stay on this critical path inside typography.css — they paint during the
20
+ * `font-display: optional`/`swap` window with zero CLS, so the deferred
21
+ * real-face import never causes a layout shift.
22
+ *
23
+ * NOTE: Font @import url(...) lines are NOT issued from here (and never
24
+ * were) — doing so would put them after @import "tailwindcss" in the
25
+ * consumer's output, which violates the CSS spec (and some bundlers then
26
+ * drop them). The split above is by separate export subpath, not @import.
27
+ */
28
+
29
+ /*
30
+ * Cascade order — load order is load-bearing. Each layer references the one
31
+ * above it via CSS custom properties or selector cascade; reordering breaks
32
+ * fallbacks. Documented at L.W2 Lane B per Rε §B.5.1.
33
+ *
34
+ * 1. tokens.css — CSS custom properties (color, easing, glass,
35
+ * paper, shadow, surface-tint rungs). Source-of-
36
+ * record for every visual axis.
37
+ * 2. typography.css — golden-ratio scale (√φ); semantic type classes.
38
+ * Pure values, no token consumption.
39
+ * 3. theme.css — @theme block (Tailwind aliases). Reads tokens
40
+ * from (1) so MUST come after them; defines the
41
+ * `dark` variant selector consumed by the cascade.
42
+ * 4. glass.css — .glass-{wash,quiet,resting,floating,overlay}
43
+ * 5-rung ladder + .glass-card / -pill / -btn.
44
+ * Consumes tokens (1) + theme aliases (3).
45
+ * 5. paper.css — paper underpaint + grain overlay utilities.
46
+ * Pairs with (4) for paper-on-glass compositions.
47
+ * 6. dock.css — .dock-icon-btn, .dock-select-trigger, etc.
48
+ * Component utility layer; consumes (1) + (3).
49
+ * 7. cards.css — .cartoon-surface, .paper-texture.
50
+ * Component utility layer.
51
+ * 8. floating-panel.css — .floating-panel + .floating-panel-item.
52
+ * Component utility layer.
53
+ * 9. transitions.css — Vue <Transition> classes (fade, fade-slide,
54
+ * pop, dialog-scale, dropdown, tab-fade).
55
+ * 10. animations.css — @keyframes for components consumed via
56
+ * `animation:` properties in (9) and component
57
+ * <style> blocks.
58
+ * 11. utilities.css — focus-ring, btn-audacious + btn-interactive
59
+ * (press cluster; K W6 + Q.W3 Lane E),
60
+ * rainbow-vivid + rainbow-pastel. Consumes earlier
61
+ * animations + tokens.
62
+ * 12. instrument-chassis.css — P-tranche component CSS (chassis bezel +
63
+ * groove dividers). Loaded after utilities so
64
+ * component-local recipes can override.
65
+ * 13. instrument-rail.css — AK-W2-α cockpit-ratio rail (flex-basis 1/φ²
66
+ * binding + bezel hairlines + sibling divider
67
+ * rule). Composes alongside instrument-chassis;
68
+ * shares the bezel-line twin-pixel idiom.
69
+ * 14. glyph-face.css — P-tranche component CSS (cap + backplate).
70
+ * 15. disco-glyph.css — P-tranche component CSS (layered fills).
71
+ * 16. hover-popover.css — V.W3 popover-animation grammar.
72
+ *
73
+ * Per-package component CSS lives at (12)-(16) (loaded after utilities so
74
+ * component-local recipes can override). New per-package CSS files append
75
+ * to that tail.
76
+ */
12
77
  @import "./tokens.css";
13
78
  @import "./typography.css";
14
79
  @import "./theme.css";
15
80
  @import "./glass.css";
81
+ @import "./paper.css";
16
82
  @import "./dock.css";
17
83
  @import "./cards.css";
18
- @import "./scroll-pane.css";
19
84
  @import "./floating-panel.css";
20
85
  @import "./transitions.css";
21
86
  @import "./animations.css";
22
87
  @import "./utilities.css";
88
+ @import "./instrument-chassis.css";
89
+ @import "./instrument-rail.css";
90
+ @import "./glyph-face.css";
91
+ @import "./disco-glyph.css";
92
+ @import "./hover-popover.css";
23
93
 
24
94
  /* Ensure consumer's Tailwind scans glass-ui components for utility classes
25
95
  (e.g. CVA button variants like text-destructive-foreground) */
@@ -0,0 +1,313 @@
1
+ /* instrument-chassis.css — chassis surface + region dividers + phase cascade.
2
+ *
3
+ * Composes the three-region <InstrumentChassis> per W2.7 §1, §2, §3, §11, §16.
4
+ * The chassis is one glass surface with an engraved-bezel ::before stroke and
5
+ * a radial-gradient curvature overlay; both persist at all phases (chassis
6
+ * character, not interactive accent).
7
+ *
8
+ * Region dividers compose two 1px lines — top catch-light, bottom under-
9
+ * shadow — into a hairline groove. This twin-line idiom is the chassis
10
+ * signature; every divider in the system uses it.
11
+ *
12
+ * `--phase-color` cascades from the chassis root via `data-phase`. Phase
13
+ * label, hero number, and phase progress fill all read it; one mutation at
14
+ * the chassis level retints every consumer with a single 450ms transition.
15
+ *
16
+ * Disco accents (specular swap, sparkle, phase-glow, disco-grain) live on
17
+ * `.dock-tab-button[data-tier="primary"]` in `dock.css` and on
18
+ * `.metric-badge[data-just-resolved="true"]` in `utilities.css`. They fire
19
+ * on hover / phase-finish only. Idle is purely Vignelli.
20
+ */
21
+
22
+ @layer components {
23
+ .instrument-chassis {
24
+ position: relative;
25
+ display: flex;
26
+ flex-direction: column;
27
+ /* AI.W4-M.1 — chassis tint companion. The backdrop composes the
28
+ resting glass plate with a `color-mix` toward `--phase-color`
29
+ by `--phase-tint-amount`. At idle the typed amount sits at 0%
30
+ (initial-value from tokens.css §18) so the surface reads the
31
+ pure resting plate; the [data-phase] selectors below ramp the
32
+ amount toward `--phase-tint-peak` (6% default), and the
33
+ transition interpolates the typed percentage over the speed-
34
+ test-owned phase-handoff clock. Fallback 600ms keeps a non-
35
+ speedtest consumer's chassis cross-fading smoothly even
36
+ without the consumer-side token declared. */
37
+ background:
38
+ var(--glass-curvature-overlay, none),
39
+ color-mix(
40
+ in oklab,
41
+ var(--glass-bg-chassis),
42
+ var(--phase-color, var(--muted-foreground)) var(--phase-tint-amount, 0%)
43
+ );
44
+ transition: --phase-tint-amount
45
+ var(--motion-duration-phase-handoff, 600ms)
46
+ var(--motion-ease-standard);
47
+ backdrop-filter: var(--glass-blur-quiet);
48
+ /* AK-FD1 §2.4 — glass-variant outer border softened one rung down the
49
+ foreground-tinted border ladder (quiet 10% → wash 8%) so it reads at
50
+ the intended resting-glass register. The spine variant carries its
51
+ own `--glass-spine-border` (re-declared below) and is unaffected. */
52
+ border: 1px solid var(--glass-border-wash);
53
+ border-radius: var(--radius-card);
54
+ box-shadow:
55
+ var(--glass-shadow-quiet),
56
+ inset 0 -0.5px 0 0 rgb(0 0 0 / 0.06);
57
+ overflow: hidden;
58
+
59
+ /* `--phase-color` defaults to muted-foreground at idle. data-phase
60
+ selectors below retint to the chart hue. Consumers register
61
+ --chart-* aliases in their preset; tokens.css ships safe defaults.
62
+
63
+ `--phase-color-label` is the WCAG companion (AC.W6c F1.V-04). It
64
+ pairs with `--phase-color` 1:1 — same `data-phase` cascade, but
65
+ routes through `--chart-{phase}-label` (L≈0.40 in OKLCH) so
66
+ text-on-background callsites clear the 4.5:1 contrast floor.
67
+ Canvas / fill / gradient consumers continue to read `--phase-color`
68
+ (saturated brand register, correct against the meter dial).
69
+ Label / text consumers read `--phase-color-label` with the
70
+ untinted token as a fallback so an unhydrated subtree still
71
+ paints something readable. */
72
+ --phase-color: var(--muted-foreground);
73
+ --phase-color-label: var(--muted-foreground);
74
+ }
75
+
76
+ .dark .instrument-chassis {
77
+ background:
78
+ var(--glass-curvature-overlay-dark, var(--glass-curvature-overlay, none)),
79
+ color-mix(
80
+ in oklab,
81
+ var(--glass-bg-chassis),
82
+ var(--phase-color, var(--muted-foreground)) var(--phase-tint-amount, 0%)
83
+ );
84
+ }
85
+
86
+ /* Engraved-bezel inner stroke. Reads as the polished sleeve of an
87
+ instrument-panel module. Subtle but load-bearing for the disco-skeu
88
+ reading. */
89
+ .instrument-chassis::before {
90
+ content: "";
91
+ position: absolute;
92
+ inset: 0.5px;
93
+ border-radius: calc(var(--radius-card) - 0.5px);
94
+ border: 1px solid var(--surface-tint-4);
95
+ pointer-events: none;
96
+ z-index: 1;
97
+ }
98
+
99
+ .dark .instrument-chassis::before {
100
+ border-color: var(--surface-tint-6);
101
+ }
102
+
103
+ /* ─────────────────────────────────────────────────────────────
104
+ AL-W1-α augmented — spine variant (HOUSING register)
105
+
106
+ Per AL-X5 §4.1 + Y7. The `variant="spine"` chassis is the
107
+ polished SLEEVE that frames an inner card on quiet-content
108
+ App-level mounts. NOT glass:
109
+ - opacity 0 (no plate; `--glass-spine-opacity` is the canon)
110
+ - NO backdrop-filter (housing is not refracting)
111
+ - hairline outer stroke at `--glass-spine-border`
112
+ - interior radial vignette (`--glass-spine-vignette`) that
113
+ reads the phase-color cascade through `color-mix()` at
114
+ ~8% opacity — the housing breathes with the active phase
115
+ without competing with the inner card's saturated register
116
+ - tight under-shadow rim via `--glass-under-shadow-spine`
117
+ - inset from viewport by `clamp(0.5rem, 2vw, 1.25rem)` so
118
+ the chassis edge sits BEYOND the inner card's outer edge
119
+ - retires the engraved-bezel `::before` (the spine carries
120
+ its own stroke at the outer edge; the inner bezel would
121
+ collide with the inner card's hairline ring)
122
+
123
+ The phase cascade above (`[data-phase="…"]`) is orthogonal —
124
+ the `--phase-color` retint reaches the spine vignette via the
125
+ `color-mix(in oklab, var(--phase-color) 8%, transparent)` recipe
126
+ at `--glass-spine-vignette`. One mutation at the chassis level
127
+ still retints every consumer.
128
+ ───────────────────────────────────────────────────────────── */
129
+ .instrument-chassis[data-variant="spine"] {
130
+ background: var(--glass-spine-vignette);
131
+ backdrop-filter: none;
132
+ border: 1px solid var(--glass-spine-border);
133
+ box-shadow: var(--glass-under-shadow-spine);
134
+ margin: clamp(0.5rem, 2vw, 1.25rem);
135
+ }
136
+
137
+ /* The engraved-bezel inner stroke is a `"glass"`-variant feature —
138
+ retire it at the spine variant so the hairline outer stroke reads
139
+ alone (the inner card paints its own inner ring). */
140
+ .instrument-chassis[data-variant="spine"]::before {
141
+ display: none;
142
+ }
143
+
144
+ /* Phase-color cascade — single property, full chassis-wide retint.
145
+ `--phase-color-label` mirrors the cascade through the WCAG companion
146
+ tokens (AC.W6c F1.V-04). The label register falls back to the canvas
147
+ hue so a consumer that hasn't migrated its labels still paints.
148
+
149
+ AI.W4-M.1 — `--phase-tint-amount` lifts to `--phase-tint-peak`
150
+ (6% default) on every active phase, including `complete`. The chassis
151
+ backdrop reads the typed amount in its `color-mix` recipe above; the
152
+ transition interpolates over the phase-handoff clock so the warmth
153
+ cross-fades alongside the hue. Idle returns to 0% by inheritance
154
+ (the typed @property initial-value). */
155
+ .instrument-chassis[data-phase="ping"] {
156
+ --phase-color: var(--chart-ping, var(--viz-chebyshev));
157
+ --phase-color-label: var(--chart-ping-label, var(--chart-ping, var(--viz-chebyshev)));
158
+ --phase-tint-amount: var(--phase-tint-peak);
159
+ }
160
+ .instrument-chassis[data-phase="download"] {
161
+ --phase-color: var(--chart-download, var(--viz-fourier));
162
+ --phase-color-label: var(--chart-download-label, var(--chart-download, var(--viz-fourier)));
163
+ --phase-tint-amount: var(--phase-tint-peak);
164
+ }
165
+ .instrument-chassis[data-phase="upload"] {
166
+ --phase-color: var(--chart-upload, var(--viz-amber));
167
+ --phase-color-label: var(--chart-upload-label, var(--chart-upload, var(--viz-amber)));
168
+ --phase-tint-amount: var(--phase-tint-peak);
169
+ }
170
+ .instrument-chassis[data-phase="jitter"] {
171
+ --phase-color: var(--chart-jitter, var(--viz-legendre));
172
+ --phase-color-label: var(--chart-jitter-label, var(--chart-jitter, var(--viz-legendre)));
173
+ --phase-tint-amount: var(--phase-tint-peak);
174
+ }
175
+ .instrument-chassis[data-phase="complete"] {
176
+ --phase-color: var(--color-gold);
177
+ --phase-color-label: var(--color-gold-dark, var(--color-gold));
178
+ --phase-tint-amount: var(--phase-tint-peak);
179
+ }
180
+
181
+ /* PRM bracket — the typed-property transition retires; the chassis
182
+ still cross-fades hue + amount instantaneously on phase change
183
+ (the discrete state IS the affirmation). */
184
+ @media (prefers-reduced-motion: reduce) {
185
+ .instrument-chassis {
186
+ transition: none;
187
+ }
188
+ }
189
+
190
+ /* Region wrappers ─────────────────────────────────────────── */
191
+
192
+ .instrument-strip {
193
+ position: relative;
194
+ display: flex;
195
+ align-items: center;
196
+ gap: var(--instrument-strip-gap, 0.75rem);
197
+ padding:
198
+ var(--instrument-strip-padding-block, 0.875rem)
199
+ var(--instrument-strip-padding-inline, 1.25rem);
200
+ z-index: 2;
201
+ }
202
+
203
+ .instrument-dial {
204
+ position: relative;
205
+ display: grid;
206
+ grid-template-columns: var(--instrument-dial-columns, minmax(0, 1.2fr) 1px minmax(0, 1fr));
207
+ align-items: center;
208
+ gap: var(--instrument-dial-gap, 1.5rem);
209
+ padding:
210
+ var(--instrument-dial-padding-block, 1.5rem)
211
+ var(--instrument-dial-padding-inline, 1.5rem);
212
+ z-index: 2;
213
+ }
214
+
215
+ .instrument-control {
216
+ position: relative;
217
+ display: flex;
218
+ align-items: center;
219
+ gap: var(--instrument-control-gap, 0.5rem);
220
+ padding:
221
+ var(--instrument-control-padding-block, 0.875rem)
222
+ var(--instrument-control-padding-inline, 1.25rem);
223
+ z-index: 2;
224
+ }
225
+
226
+ /* Chassis dividers — twin-line hairline grooves ─────────────── */
227
+
228
+ .chassis-divider {
229
+ flex-shrink: 0;
230
+ position: relative;
231
+ background: transparent;
232
+ z-index: 2;
233
+ pointer-events: none;
234
+ }
235
+
236
+ .chassis-divider--horizontal {
237
+ display: flex;
238
+ flex-direction: column;
239
+ height: 2px;
240
+ width: 100%;
241
+ }
242
+
243
+ .chassis-divider--vertical {
244
+ display: flex;
245
+ flex-direction: row;
246
+ width: 2px;
247
+ height: var(--chassis-divider-vertical-height, 70%);
248
+ align-self: center;
249
+ justify-self: center;
250
+ }
251
+
252
+ .bezel-line {
253
+ display: block;
254
+ flex-shrink: 0;
255
+ }
256
+
257
+ .chassis-divider--horizontal .bezel-line {
258
+ height: 1px;
259
+ width: 100%;
260
+ }
261
+
262
+ .chassis-divider--vertical .bezel-line {
263
+ width: 1px;
264
+ height: 100%;
265
+ }
266
+
267
+ /* Q.W4.A — bezel-line α lift in light mode per audit-A4 §1 row 2-3 +
268
+ §11 #2-#3 + §12 Action 2. The 0.04 / 0.06 light-mode pair was
269
+ calibrated against a flat bg; under the saturated-aurora chassis
270
+ composition the catch-light + under-shadow read as one slightly
271
+ darker pixel, and the twin-line groove fails its job. Bumping to
272
+ 0.10 / 0.12 holds the divider against the bleed without committing
273
+ to the dark-mode pair's contrast (the dark mode already runs at
274
+ 0.06 / 0.18 against a low-light bg). */
275
+ .bezel-line.top { background: rgb(255 255 255 / 0.10); }
276
+ .bezel-line.bottom { background: rgb(0 0 0 / 0.12); }
277
+
278
+ .dark .bezel-line.top { background: rgb(255 255 255 / 0.06); }
279
+ .dark .bezel-line.bottom { background: rgb(0 0 0 / 0.18); }
280
+
281
+ /* Inner dial divider — same primitive, vertical on desktop. Speedtest
282
+ slots its <ChassisDivider orientation="vertical" class="dial-divider" />
283
+ between the meter canvas and the readout column; consumers may also
284
+ compose their own vertical dividers via the same primitive. */
285
+ .instrument-chassis .dial-divider {
286
+ align-self: stretch;
287
+ }
288
+
289
+ /* Mobile reflow — dial stacks vertically; the inner divider rotates from
290
+ a vertical groove (desktop) to a horizontal groove (mobile). Same
291
+ twin-line idiom, different orientation. */
292
+ @media (max-width: 720px) {
293
+ .instrument-chassis .instrument-dial {
294
+ grid-template-columns: 1fr;
295
+ grid-template-rows: auto auto auto;
296
+ gap: var(--instrument-dial-gap-mobile, 1.5rem);
297
+ }
298
+
299
+ .instrument-chassis .instrument-dial .dial-divider,
300
+ .instrument-chassis .instrument-dial .chassis-divider--vertical {
301
+ flex-direction: column;
302
+ width: 70%;
303
+ height: 2px;
304
+ margin-inline: auto;
305
+ }
306
+
307
+ .instrument-chassis .instrument-dial .dial-divider .bezel-line,
308
+ .instrument-chassis .instrument-dial .chassis-divider--vertical .bezel-line {
309
+ width: 100%;
310
+ height: 1px;
311
+ }
312
+ }
313
+ }
@@ -0,0 +1,128 @@
1
+ /* instrument-rail.css — cockpit-ratio rail with bezel hairlines + sibling
2
+ * divider rule.
3
+ *
4
+ * AK-W2-α — see A3 §8.T-1 + FD1 TRANSPOSITION 6 + G-AK-D9. Resolves D-4
5
+ * (desktop survey cockpit ratio 0.222 → 0.382). The rail carries the
6
+ * golden-gestalt 1/φ² flex-basis as a typed term with min/max clamp
7
+ * safety, the engraved-bezel ::before stroke that <InstrumentChassis>
8
+ * established as chassis grammar, and a twin-line groove between sibling
9
+ * children via the same `bezel-line` α pair the chassis-divider primitive
10
+ * uses (light 0.10 / 0.12; dark 0.06 / 0.18 — Q.W4.A canon).
11
+ *
12
+ * The rail is a layout primitive: no animation, no phase cascade, no
13
+ * disco accent. PRM cascades through children (each owns its own
14
+ * animation contract). Phase color inherits from a parent
15
+ * <InstrumentChassis> if present — the rail itself reads no phase token.
16
+ */
17
+
18
+ @layer components {
19
+ .instrument-rail {
20
+ position: relative;
21
+ display: flex;
22
+ flex-direction: column;
23
+ /* The cockpit-ratio binding. Default 0.382 = 1/φ² (golden gestalt).
24
+ Min/max clamp pins the realised width to a readable register so
25
+ a degenerate ratio or a very narrow / very wide parent still
26
+ lands inside the bezel-instrument vocabulary. */
27
+ flex: 0 0 calc(var(--instrument-rail-ratio, 0.382) * 100%);
28
+ min-width: 15rem;
29
+ max-width: 28rem;
30
+ box-sizing: border-box;
31
+ gap: var(--instrument-rail-gap, 1rem);
32
+ padding:
33
+ var(--instrument-rail-padding-block, 1.25rem)
34
+ var(--instrument-rail-padding-inline, 1.25rem);
35
+ container-type: inline-size;
36
+ container-name: instrument-rail;
37
+ }
38
+
39
+ .instrument-rail[data-variant="horizontal"] {
40
+ flex-direction: row;
41
+ flex: 0 0 auto;
42
+ min-width: 0;
43
+ max-width: none;
44
+ min-height: 15rem;
45
+ max-height: 28rem;
46
+ block-size: calc(var(--instrument-rail-ratio, 0.382) * 100%);
47
+ container-type: size;
48
+ }
49
+
50
+ /* Engraved-bezel inner stroke — the chassis signature detail, applied
51
+ to the rail so it reads as a chassis-internal module rather than an
52
+ unbordered slot. Subtle but load-bearing for the disco-skeu reading
53
+ (FD1 TRANSPOSITION 3). */
54
+ .instrument-rail[data-bezel-hairlines]::before {
55
+ content: "";
56
+ position: absolute;
57
+ inset: 0.5px;
58
+ border-radius: calc(var(--radius-card, 1rem) - 0.5px);
59
+ border: 1px solid var(--surface-tint-4);
60
+ pointer-events: none;
61
+ z-index: 1;
62
+ }
63
+
64
+ .dark .instrument-rail[data-bezel-hairlines]::before {
65
+ border-color: var(--surface-tint-6);
66
+ }
67
+
68
+ /* Sibling divider rule — twin-line hairline groove between every
69
+ child after the first. The twin-line idiom (catch-light over
70
+ under-shadow) is the chassis-divider signature; rendering it via
71
+ a sibling ::before/::after stack keeps consumers free of manual
72
+ <ChassisDivider> slotting. Status header is excluded — the
73
+ opening-edge status light reads as a region, not a sibling. */
74
+ .instrument-rail[data-divider-rule][data-variant="vertical"]
75
+ > :not(:first-child):not(.instrument-rail-status)::before {
76
+ content: "";
77
+ display: block;
78
+ height: 1px;
79
+ margin-block-end: 1px;
80
+ background: rgb(255 255 255 / 0.10);
81
+ }
82
+
83
+ .instrument-rail[data-divider-rule][data-variant="vertical"]
84
+ > :not(:first-child):not(.instrument-rail-status)::after {
85
+ content: "";
86
+ display: block;
87
+ height: 1px;
88
+ margin-block-start: -1px;
89
+ background: rgb(0 0 0 / 0.12);
90
+ }
91
+
92
+ .instrument-rail[data-divider-rule][data-variant="horizontal"]
93
+ > :not(:first-child):not(.instrument-rail-status)::before {
94
+ content: "";
95
+ display: block;
96
+ width: 1px;
97
+ margin-inline-end: 1px;
98
+ background: rgb(255 255 255 / 0.10);
99
+ }
100
+
101
+ .instrument-rail[data-divider-rule][data-variant="horizontal"]
102
+ > :not(:first-child):not(.instrument-rail-status)::after {
103
+ content: "";
104
+ display: block;
105
+ width: 1px;
106
+ margin-inline-start: -1px;
107
+ background: rgb(0 0 0 / 0.12);
108
+ }
109
+
110
+ .dark .instrument-rail[data-divider-rule] > :not(:first-child):not(.instrument-rail-status)::before {
111
+ background: rgb(255 255 255 / 0.06);
112
+ }
113
+
114
+ .dark .instrument-rail[data-divider-rule] > :not(:first-child):not(.instrument-rail-status)::after {
115
+ background: rgb(0 0 0 / 0.18);
116
+ }
117
+
118
+ /* Status header — pinned to the opening edge, flush against the
119
+ bezel. The rail's bezel ::before draws over the surface-edge so the
120
+ status region sits inside the bezel sleeve. */
121
+ .instrument-rail-status {
122
+ position: relative;
123
+ display: flex;
124
+ align-items: center;
125
+ gap: 0.5rem;
126
+ z-index: 2;
127
+ }
128
+ }
@@ -0,0 +1,68 @@
1
+ /*
2
+ * paper.css — Paper-texture primitives
3
+ *
4
+ * Two composable Tailwind `@utility` declarations:
5
+ * - paper-underpaint: fixed, app-root, fullscreen SVG turbulence at z-index -1
6
+ * - paper-grain-overlay: ::after overlay for individual surfaces
7
+ *
8
+ * Texture: feTurbulence baseFrequency 0.65, 4 octaves, desaturated via
9
+ * feColorMatrix, blended multiply (light) / soft-light (dark). Tiles ~60px.
10
+ */
11
+
12
+ @utility paper-underpaint {
13
+ position: fixed;
14
+ inset: 0;
15
+ z-index: -1;
16
+ pointer-events: none;
17
+ background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeBlend mode='multiply' in2='SourceGraphic'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
18
+ background-repeat: repeat;
19
+ background-size: 60px 60px;
20
+ opacity: var(--glass-grain-opacity);
21
+ mix-blend-mode: multiply;
22
+ }
23
+
24
+ :where(.dark) .paper-underpaint,
25
+ .dark .paper-underpaint {
26
+ mix-blend-mode: soft-light;
27
+ }
28
+
29
+ @utility paper-grain-overlay {
30
+ position: relative;
31
+ isolation: isolate;
32
+
33
+ &::after {
34
+ content: "";
35
+ position: absolute;
36
+ inset: 0;
37
+ border-radius: inherit;
38
+ pointer-events: none;
39
+ background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeBlend mode='multiply' in2='SourceGraphic'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
40
+ background-repeat: repeat;
41
+ background-size: 60px 60px;
42
+ opacity: var(--glass-grain-opacity);
43
+ mix-blend-mode: overlay;
44
+ }
45
+ }
46
+
47
+ :where(.dark) .paper-grain-overlay::after,
48
+ .dark .paper-grain-overlay::after {
49
+ mix-blend-mode: soft-light;
50
+ }
51
+
52
+ /* ═══════════════════════════════════════════════
53
+ A11y — respect user motion + transparency preferences
54
+ ═══════════════════════════════════════════════ */
55
+ @media (prefers-reduced-transparency: reduce) {
56
+ .paper-underpaint,
57
+ .paper-grain-overlay::after {
58
+ opacity: 0;
59
+ }
60
+ }
61
+
62
+ @media (prefers-reduced-motion: reduce) {
63
+ .paper-underpaint {
64
+ /* Static noise is fine at rest; only kill animated grain shimmer if any.
65
+ The underpaint is currently a still texture, but guard future motion. */
66
+ animation: none !important;
67
+ }
68
+ }