@mkbabb/glass-ui 5.0.0 → 6.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 (470) hide show
  1. package/README.md +30 -27
  2. package/dist/DropdownMenuTrigger-BzQtd9lt.js +65 -0
  3. package/dist/{FadingScroll-BSRLqQCx.js → FadingScroll-C1ZWEjmG.js} +32 -25
  4. package/dist/{Input-DKf-XwUM.js → Input-B4WQ_CMc.js} +1 -1
  5. package/dist/{PagerDots-BP6jh7z4.js → PagerDots-BoTQ7g5l.js} +123 -95
  6. package/dist/{accent-tone-solve-CBw3L0cy.js → accent-tone-solve-Dii9ePhK.js} +1 -1
  7. package/dist/animated-digit.js +1 -1
  8. package/dist/aurora.js +324 -314
  9. package/dist/blob-config.d.ts +0 -4
  10. package/dist/blob-config.js +1 -1
  11. package/dist/blob.js +280 -261
  12. package/dist/{button-BXzhydVB.js → button-32mg6xA8.js} +63 -56
  13. package/dist/button.js +1 -1
  14. package/dist/canvas.js +1 -1
  15. package/dist/{CardAction-2uUvjMQK.js → card-16xmzIr3.js} +29 -11
  16. package/dist/card.js +1 -1
  17. package/dist/carousel.d.ts +1 -2
  18. package/dist/carousel.js +26 -95
  19. package/dist/chip.d.ts +0 -9
  20. package/dist/chip.js +1 -1
  21. package/dist/collapsible.js +1 -1
  22. package/dist/color-swatch.js +1 -0
  23. package/dist/color.js +87 -3
  24. package/dist/{CommandShortcut-fmdbsEJL.js → command-BjPjUU9z.js} +56 -51
  25. package/dist/command.js +1 -1
  26. package/dist/completion-seal.js +64 -55
  27. package/dist/components/_shared/ModalOverlay.vue.d.ts +5 -52
  28. package/dist/components/_shared/field-surfaces.css +1 -0
  29. package/dist/components/_shared/menuItemVariants.d.ts +2 -2
  30. package/dist/components/_shared/useMotionAxis.d.ts +2 -2
  31. package/dist/components/_shared/valueDomain.d.ts +6 -0
  32. package/dist/components/alert/index.d.ts +1 -1
  33. package/dist/components/animated-digit/AnimatedDigit.vue.d.ts +1 -1
  34. package/dist/components/aurora/Aurora.vue.d.ts +7 -1
  35. package/dist/components/aurora/composables/runtime.d.ts +5 -3
  36. package/dist/components/aurora/composables/useAurora.d.ts +4 -2
  37. package/dist/components/avatar/AvatarImage.vue.d.ts +3 -1
  38. package/dist/components/badge/index.d.ts +2 -2
  39. package/dist/components/blob/Blob.vue.d.ts +11 -0
  40. package/dist/components/blob/composables/useMetaballRenderer.d.ts +2 -0
  41. package/dist/components/button/Button.vue.d.ts +4 -2
  42. package/dist/components/button/index.d.ts +2 -2
  43. package/dist/components/card/Card.vue.d.ts +4 -4
  44. package/dist/components/card/ScrollCard.vue.d.ts +1 -1
  45. package/dist/components/card/styles.css +1 -0
  46. package/dist/components/carousel/Carousel.vue.d.ts +2 -2
  47. package/dist/components/carousel/CarouselNext.vue.d.ts +1 -1
  48. package/dist/components/carousel/CarouselPrevious.vue.d.ts +1 -1
  49. package/dist/components/carousel/index.d.ts +0 -1
  50. package/dist/components/carousel/useCarousel.d.ts +2 -2
  51. package/dist/components/combobox/ComboboxList.vue.d.ts +1 -1
  52. package/dist/components/combobox/index.d.ts +1 -3
  53. package/dist/components/command/Command.vue.d.ts +1 -1
  54. package/dist/components/command/CommandDialog.vue.d.ts +9 -6
  55. package/dist/components/completion-seal/styles.css +1 -0
  56. package/dist/components/constellation/Constellation.vue.d.ts +6 -1
  57. package/dist/components/constellation/composables/useConstellation.d.ts +3 -16
  58. package/dist/components/constellation/constants.d.ts +6 -16
  59. package/dist/components/constellation/constellationField.d.ts +3 -5
  60. package/dist/components/constellation/constellationInteraction.d.ts +1 -1
  61. package/dist/components/constellation/constellationRender.d.ts +11 -21
  62. package/dist/components/constellation/constellationTypes.d.ts +12 -9
  63. package/dist/components/constellation/index.d.ts +1 -1
  64. package/dist/components/controls/DarkModeToggle.vue.d.ts +0 -2
  65. package/dist/components/data-table/DataTable.vue.d.ts +14 -2
  66. package/dist/components/data-table/index.d.ts +1 -2
  67. package/dist/components/data-table/types.d.ts +26 -1
  68. package/dist/components/deck/constants.d.ts +0 -10
  69. package/dist/components/deck/index.d.ts +0 -1
  70. package/dist/components/dialog/DialogContent.vue.d.ts +7 -1
  71. package/dist/components/dialog/index.d.ts +0 -1
  72. package/dist/components/dock/DockControl.vue.d.ts +4 -4
  73. package/dist/components/dock/DockStack.vue.d.ts +2 -2
  74. package/dist/components/dock/GlassDock.vue.d.ts +1 -0
  75. package/dist/components/dock/composables/dockMorphContext.d.ts +2 -0
  76. package/dist/components/dock/composables/dockMorphMeasure.d.ts +11 -1
  77. package/dist/components/dock/composables/useDockClickIntegrity.d.ts +4 -0
  78. package/dist/components/dock/composables/useDockOverflowFit.d.ts +3 -3
  79. package/dist/components/dock/composables/useDockPopover.d.ts +2 -0
  80. package/dist/components/dock/composables/useDockShellProps.d.ts +7 -0
  81. package/dist/components/dock/composables/useDockState.d.ts +2 -2
  82. package/dist/components/dock/constants.d.ts +0 -12
  83. package/dist/components/dock/index.d.ts +1 -0
  84. package/dist/components/dock/styles/adaptive-legibility.css +1 -0
  85. package/dist/components/dock/styles/controls/icon-button.css +1 -0
  86. package/dist/{styles/dock-controls → components/dock/styles/controls}/touch-floor.css +1 -1
  87. package/dist/components/dock/styles/controls.css +1 -0
  88. package/dist/{styles/dock → components/dock/styles}/density.css +1 -1
  89. package/dist/components/dock/styles/dock.css +1 -0
  90. package/dist/components/dock/styles/index.css +1 -0
  91. package/dist/components/dock/styles/layer-group.css +1 -0
  92. package/dist/components/dock/styles/layers.css +1 -0
  93. package/dist/components/dock/styles/overflow.css +1 -0
  94. package/dist/components/dock/styles/popover.css +1 -0
  95. package/dist/components/dock/styles/shape.css +1 -0
  96. package/dist/components/dock/styles/shell.css +1 -0
  97. package/dist/components/drawer/Drawer.vue.d.ts +3 -3
  98. package/dist/components/drawer/composables/drawerSnapContext.d.ts +3 -1
  99. package/dist/components/drawer/constants.d.ts +6 -6
  100. package/dist/components/drawer/index.d.ts +4 -6
  101. package/dist/components/drawer/styles.css +1 -0
  102. package/dist/components/dropdown-menu/DropdownMenuContent.vue.d.ts +1 -1
  103. package/dist/components/dropdown-menu/DropdownMenuTrigger.vue.d.ts +9 -3
  104. package/dist/components/dropdown-menu/index.d.ts +0 -1
  105. package/dist/components/easing/EasingConfigurator.vue.d.ts +1 -1
  106. package/dist/components/easing/EasingPicker.vue.d.ts +2 -2
  107. package/dist/components/easing/composables/useEasingPicker.d.ts +4 -0
  108. package/dist/components/easing/constants.d.ts +2 -0
  109. package/dist/components/fading-scroll/composables/useFadingScroll.d.ts +3 -3
  110. package/dist/components/fourier-field/FourierField.vue.d.ts +7 -1
  111. package/dist/components/fourier-field/composables/useFourierField.d.ts +2 -1
  112. package/dist/components/handmark/HandMark.vue.d.ts +1 -1
  113. package/dist/components/handmark/geometry.d.ts +1 -1
  114. package/dist/components/handmark/index.d.ts +4 -6
  115. package/dist/components/icon-chip/styles.css +1 -0
  116. package/dist/components/index.d.ts +0 -1
  117. package/dist/components/infinite-scroll/index.d.ts +1 -0
  118. package/dist/components/instrument-chassis/styles.css +1 -0
  119. package/dist/components/labeled-field/LabeledField.vue.d.ts +12 -2
  120. package/dist/components/labeled-field/LabeledInput.vue.d.ts +10 -3
  121. package/dist/components/liquid-grid/LiquidGrid.vue.d.ts +4 -0
  122. package/dist/components/liquid-grid/composables/useLiquidGrid.d.ts +2 -1
  123. package/dist/components/metric-stack/MetricStack.vue.d.ts +1 -1
  124. package/dist/components/pager-dots/PagerDots.vue.d.ts +1 -1
  125. package/dist/components/popover/PopoverContent.vue.d.ts +1 -1
  126. package/dist/components/progress/Progress.vue.d.ts +5 -40
  127. package/dist/components/progress/ProgressDefault.vue.d.ts +1 -17
  128. package/dist/components/progress/ProgressGradient.vue.d.ts +1 -0
  129. package/dist/components/progress/ProgressLiquid.vue.d.ts +1 -0
  130. package/dist/components/progress/index.d.ts +0 -5
  131. package/dist/components/progress/valueMarks.css +1 -0
  132. package/dist/components/pulse/Pulse.vue.d.ts +2 -2
  133. package/dist/components/scroll-progress-rim/styles.css +1 -0
  134. package/dist/components/search/FuzzySearch.vue.d.ts +4 -2
  135. package/dist/components/search/SearchBar.vue.d.ts +2 -2
  136. package/dist/components/search/searchVariants.d.ts +1 -1
  137. package/dist/components/select/SelectContent.vue.d.ts +1 -1
  138. package/dist/components/select/index.d.ts +0 -2
  139. package/dist/components/skeleton/Skeleton.vue.d.ts +1 -1
  140. package/dist/components/slider/Slider.vue.d.ts +2 -0
  141. package/dist/components/split-chars/SplitChars.vue.d.ts +1 -1
  142. package/dist/components/surface/Surface.vue.d.ts +1 -1
  143. package/dist/components/table/Table.vue.d.ts +4 -0
  144. package/dist/components/tabs/SegmentedTabs.vue.d.ts +10 -0
  145. package/dist/components/tabs/index.d.ts +1 -1
  146. package/dist/components/tabs/styles/drag.css +1 -0
  147. package/dist/components/tags-input/TagsInput.vue.d.ts +2 -2
  148. package/dist/components/timeline/ContinuousTimeline.vue.d.ts +1 -1
  149. package/dist/components/timeline/GlassTimeline.vue.d.ts +4 -4
  150. package/dist/components/toast/Toast.vue.d.ts +3 -3
  151. package/dist/components/toast/use-toast.d.ts +4 -4
  152. package/dist/components/typewriter/TypewriterText.vue.d.ts +1 -4
  153. package/dist/components/typewriter/composables/useTypewriter.d.ts +0 -1
  154. package/dist/components/typewriter/utils/graphemes.d.ts +1 -0
  155. package/dist/components/watercolor-dot/WatercolorDot.vue.d.ts +2 -2
  156. package/dist/composables/glass/useGlassBackdropLuminance.d.ts +31 -0
  157. package/dist/composables/glass/webgpu/rendererStatus.d.ts +13 -0
  158. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +3 -0
  159. package/dist/composables/glass/webgpu/webgpuCanvasTypes.d.ts +2 -0
  160. package/dist/composables/motion/springProjection.d.ts +16 -0
  161. package/dist/composables/motion/useAnimatedNumber.d.ts +1 -6
  162. package/dist/composables/motion/useCountup.d.ts +1 -6
  163. package/dist/composables/motion/useDockCtaReceive.d.ts +55 -0
  164. package/dist/composables/motion/useElementMorph.d.ts +8 -0
  165. package/dist/composables/motion/useLiquidPress.d.ts +12 -4
  166. package/dist/composables/motion/useNumericTransition.d.ts +2 -0
  167. package/dist/composables/motion/useTextHighlight.d.ts +2 -1
  168. package/dist/configurator-CSENXXSy.js +311 -0
  169. package/dist/configurator.js +2 -3
  170. package/dist/constellation.js +235 -571
  171. package/dist/controls.js +55 -63
  172. package/dist/{createCanvasLifecycle-DlrcvWbb.js → createCanvasLifecycle-hsFkQVdl.js} +32 -32
  173. package/dist/dark-DIH-blY1.js +70 -0
  174. package/dist/dark.d.ts +1 -2
  175. package/dist/dark.js +2 -20
  176. package/dist/{DataTable-Bxya8nBn.js → data-table-DveMdgBM.js} +231 -120
  177. package/dist/data-table.js +2 -2
  178. package/dist/deck.js +10 -21
  179. package/dist/dialog-BzQxKrUr.js +281 -0
  180. package/dist/dialog.js +2 -3
  181. package/dist/dock.js +561 -428
  182. package/dist/{dockContext-d-WpJN2Z.js → dockContext-4S9qP0Z4.js} +1 -1
  183. package/dist/dom.js +196 -7
  184. package/dist/drawer.js +111 -66
  185. package/dist/dropdown-menu-DORIA52F.js +378 -0
  186. package/dist/dropdown-menu.js +3 -2
  187. package/dist/easing.d.ts +0 -9
  188. package/dist/easing.js +334 -187
  189. package/dist/expandable-container.js +12 -4
  190. package/dist/fading-scroll.js +1 -1
  191. package/dist/focus-scope.js +1 -1
  192. package/dist/forms.js +37 -78
  193. package/dist/fourier-field.js +273 -263
  194. package/dist/fourier-math.d.ts +0 -6
  195. package/dist/fourier-math.js +112 -2
  196. package/dist/glass-ui.css +1 -1
  197. package/dist/glass-ui.js +131 -195
  198. package/dist/handmark.d.ts +0 -2
  199. package/dist/handmark.js +82 -82
  200. package/dist/header-ribbon.js +41 -30
  201. package/dist/{IconChip-CwLmBJ_K.js → icon-chip-BWuxz1-u.js} +1 -1
  202. package/dist/icon-chip.js +1 -1
  203. package/dist/{IconTooltip-D9sbK-Mk.js → icon-tooltip-CO6rw0dZ.js} +1 -1
  204. package/dist/icon-tooltip.js +1 -1
  205. package/dist/index.d.ts +0 -1
  206. package/dist/infinite-scroll.d.ts +0 -1
  207. package/dist/infinite-scroll.js +17 -15
  208. package/dist/instrument-chassis.js +1 -1
  209. package/dist/keyboard.js +104 -2
  210. package/dist/label.js +1 -1
  211. package/dist/labeled-field.js +95 -69
  212. package/dist/liquid-grid.js +173 -162
  213. package/dist/metric-badge.js +3 -3
  214. package/dist/metric-cell.js +2 -2
  215. package/dist/metric-stack.js +1 -1
  216. package/dist/motion-core.js +15 -16
  217. package/dist/motion-curves.d.ts +0 -20
  218. package/dist/motion.js +59 -58
  219. package/dist/{Notification-DQv2cOh9.js → notification-DVs7ODMg.js} +17 -8
  220. package/dist/notification.js +1 -1
  221. package/dist/{NumberFieldContent-BkE7xPS9.js → number-field-PvkGedHk.js} +2 -2
  222. package/dist/number-field.js +1 -1
  223. package/dist/pager-dots.js +1 -1
  224. package/dist/paper-backdrop.js +31 -2
  225. package/dist/{PopoverContent-DOtszFWK.js → popover-WMgyRSyN.js} +7 -2
  226. package/dist/popover.js +1 -1
  227. package/dist/procedural-color.wgsl-B9mLK7v0.js +377 -0
  228. package/dist/progress-C-HHuFZy.js +192 -0
  229. package/dist/progress.js +2 -2
  230. package/dist/pulse.js +3 -1
  231. package/dist/reactive.js +19 -3
  232. package/dist/rendererStatus-C2-zC2Q-.js +40 -0
  233. package/dist/{resolveCanvasColor-B3L-akX0.js → resolveCanvasColor-yarP5bdk.js} +1 -1
  234. package/dist/scroll-progress-rim.js +1 -1
  235. package/dist/search.js +187 -146
  236. package/dist/{SelectScrollDownButton-CDtwaWkZ.js → select-BIv4R3Ir.js} +109 -44
  237. package/dist/select.js +2 -4
  238. package/dist/separator-CBU94kTM.js +62 -0
  239. package/dist/separator.js +1 -1
  240. package/dist/sidebar.js +1 -1
  241. package/dist/slider-Cc_qw6GA.js +166 -0
  242. package/dist/slider.js +1 -1
  243. package/dist/sortable-list.js +43 -43
  244. package/dist/styles/accessibility.css +1 -0
  245. package/dist/styles/components.css +1 -1
  246. package/dist/styles/glass/control-surfaces.css +1 -1
  247. package/dist/styles/glass/glass-capsule.css +1 -1
  248. package/dist/styles/glass/ladder.css +1 -1
  249. package/dist/styles/glass/liquid-fill.css +1 -1
  250. package/dist/styles/glass/material-roles.css +1 -0
  251. package/dist/styles/glass/material.css +1 -1
  252. package/dist/styles/glass/surface-axis.css +1 -1
  253. package/dist/styles/glass/surfaces-pager.css +1 -1
  254. package/dist/styles/glass/surfaces.css +1 -1
  255. package/dist/styles/glass.css +1 -1
  256. package/dist/styles/index.css +1 -1
  257. package/dist/styles/theme/bridges.css +1 -1
  258. package/dist/styles/tokens/glass-fx.css +1 -1
  259. package/dist/styles/tokens/glass.css +1 -1
  260. package/dist/styles/tokens/offsets.css +1 -1
  261. package/dist/styles/tokens/scale-paper.css +1 -1
  262. package/dist/styles/tokens/scheme-spring.css +1 -1
  263. package/dist/styles/tokens/shadow.css +1 -1
  264. package/dist/styles/tokens.d.ts +53 -0
  265. package/dist/styles/tokens.ts +58 -0
  266. package/dist/styles/typography/scale.css +1 -1
  267. package/dist/styles/typography/semantic.css +1 -1
  268. package/dist/styles/typography/utilities.css +1 -1
  269. package/dist/styles/utilities/base.css +1 -1
  270. package/dist/styles/utilities/btn.css +1 -1
  271. package/dist/styles/utilities/components.css +1 -1
  272. package/dist/styles/utilities.css +1 -1
  273. package/dist/{Switch-BPBfhMU3.js → switch-Boj4Ucn5.js} +1 -1
  274. package/dist/switch.js +1 -1
  275. package/dist/tabs.js +51 -45
  276. package/dist/timeline.js +2 -2
  277. package/dist/toast.js +1 -1
  278. package/dist/{ToggleGroupItem-DNWx2aSW.js → toggle-group-BPchFsns.js} +10 -7
  279. package/dist/toggle-group.js +1 -1
  280. package/dist/tokens.d.ts +1 -53
  281. package/dist/tokens.js +1 -1
  282. package/dist/{TooltipProvider-GtfYdSVf.js → tooltip-BmOQJzh0.js} +1 -0
  283. package/dist/tooltip.js +1 -1
  284. package/dist/typewriter.js +151 -166
  285. package/dist/{useAccentTone-D25DxviG.js → useAccentTone-C-p6WdPe.js} +1 -1
  286. package/dist/{useAnimatedNumber-2XC4aRB6.js → useAnimatedNumber-BRVVaFFc.js} +1 -1
  287. package/dist/useDockCtaReceive-CK-RLASa.js +257 -0
  288. package/dist/{useGooMorph-CU1pwuC6.js → useGooMorph-D1F6QJlH.js} +140 -59
  289. package/dist/{useIntersectionPause-Cmt5Tnv9.js → useIntersectionPause-B-dbxl9w.js} +1 -1
  290. package/dist/useLiquidPress-BYcwwGQV.js +68 -0
  291. package/dist/{useRAFLoop-CvOo_kgb.js → useRAFLoop-BtwQ9DyY.js} +1 -1
  292. package/dist/{useScrollProgress-C-yImzhU.js → useScrollProgress-DZI4nf4v.js} +1 -1
  293. package/dist/{useSelectionGroup-Btpf24aY.js → useSelectionGroup-LDzBdR1Y.js} +3 -3
  294. package/dist/{useTabRovingFocus-CG1H1k1J.js → useTabRovingFocus-DkLYwo4L.js} +1 -1
  295. package/dist/{useTouchGate-BlegwvwL.js → useTouchGate-Cj5fOkTv.js} +1 -1
  296. package/dist/valueDomain-B8L04u3U.js +13 -0
  297. package/dist/watercolor-dot.js +5 -3
  298. package/package.json +5 -12
  299. package/src/styles/accessibility.css +48 -0
  300. package/src/styles/glass/glass-capsule.css +2 -2
  301. package/src/styles/glass/ladder.css +1 -1
  302. package/src/styles/glass/material-roles.css +18 -0
  303. package/src/styles/glass/material.css +18 -12
  304. package/src/styles/glass.css +5 -5
  305. package/src/styles/index.css +38 -30
  306. package/src/styles/theme/bridges.css +0 -6
  307. package/src/styles/tokens/glass-fx.css +1 -5
  308. package/src/styles/tokens/glass.css +1 -2
  309. package/src/styles/tokens/offsets.css +0 -1
  310. package/src/styles/tokens/property-regs.css +11 -10
  311. package/src/styles/tokens/scale-paper.css +0 -1
  312. package/src/styles/tokens/scheme-motion.css +3 -0
  313. package/src/styles/tokens/scheme-spring.css +0 -10
  314. package/src/styles/tokens/shadow.css +3 -29
  315. package/src/styles/tokens.ts +58 -0
  316. package/src/styles/typography/scale.css +5 -2
  317. package/src/styles/typography/semantic.css +5 -5
  318. package/src/styles/typography/utilities.css +5 -5
  319. package/src/styles/utilities/base.css +5 -5
  320. package/src/styles/utilities/btn.css +6 -27
  321. package/src/styles/utilities.css +4 -6
  322. package/dist/ConfiguratorRow-BV6zPjTM.js +0 -151
  323. package/dist/DialogContent-Bl4v10AC.js +0 -192
  324. package/dist/DialogFooter-C0v4Hz2F.js +0 -168
  325. package/dist/PaperBackdrop-BYwE8_kg.js +0 -31
  326. package/dist/Progress-uWLyXE7J.js +0 -308
  327. package/dist/SelectGroup-BuEptUsa.js +0 -31
  328. package/dist/SelectSeparator-4QGephvr.js +0 -49
  329. package/dist/Separator-DqJ6PfOd.js +0 -44
  330. package/dist/color-Bp5jmv4Z.js +0 -86
  331. package/dist/components/carousel/GlassCarouselPager.vue.d.ts +0 -50
  332. package/dist/components/combobox/ComboboxSeparator.vue.d.ts +0 -18
  333. package/dist/components/combobox/ComboboxViewport.vue.d.ts +0 -18
  334. package/dist/components/constellation/composables/constellationGLSetup.d.ts +0 -10
  335. package/dist/components/constellation/composables/constellationWGPUSetup.d.ts +0 -19
  336. package/dist/components/constellation/composables/uniformBridgeWGPU.d.ts +0 -66
  337. package/dist/components/constellation/shaders/constellation-lines.glsl.d.ts +0 -2
  338. package/dist/components/constellation/shaders/constellation-lines.wgsl.d.ts +0 -1
  339. package/dist/components/constellation/shaders/constellation-points.glsl.d.ts +0 -2
  340. package/dist/components/constellation/shaders/constellation-points.wgsl.d.ts +0 -1
  341. package/dist/components/deck/composables/useDeckSpring.d.ts +0 -22
  342. package/dist/components/dialog/DialogScrollContent.vue.d.ts +0 -33
  343. package/dist/components/progress/ProgressSectioned.vue.d.ts +0 -47
  344. package/dist/components/progress/useProgressGeometry.d.ts +0 -60
  345. package/dist/components/section/Section.vue.d.ts +0 -73
  346. package/dist/components/section/index.d.ts +0 -1
  347. package/dist/components/stacked-icons/StackedIconGroup.vue.d.ts +0 -30
  348. package/dist/components/stacked-icons/index.d.ts +0 -2
  349. package/dist/components/stacked-icons/types.d.ts +0 -19
  350. package/dist/dropdown-menu-DaGlVdp9.js +0 -421
  351. package/dist/math-CIEcwsYi.js +0 -112
  352. package/dist/procedural-color.wgsl-ByduxnzV.js +0 -4
  353. package/dist/slider-Cxuj_W_H.js +0 -151
  354. package/dist/stacked-icons.d.ts +0 -1
  355. package/dist/stacked-icons.js +0 -98
  356. package/dist/styles/cards.css +0 -1
  357. package/dist/styles/completion-seal.css +0 -1
  358. package/dist/styles/dock/adaptive-legibility.css +0 -1
  359. package/dist/styles/dock/dock.css +0 -1
  360. package/dist/styles/dock/layer-group.css +0 -1
  361. package/dist/styles/dock/layers.css +0 -1
  362. package/dist/styles/dock/overflow.css +0 -1
  363. package/dist/styles/dock/popover.css +0 -1
  364. package/dist/styles/dock/shape.css +0 -1
  365. package/dist/styles/dock/shell.css +0 -1
  366. package/dist/styles/dock-controls/icon-button.css +0 -1
  367. package/dist/styles/dock-controls.css +0 -1
  368. package/dist/styles/dock.css +0 -1
  369. package/dist/styles/drawer.css +0 -1
  370. package/dist/styles/icon-chip.css +0 -1
  371. package/dist/styles/instrument-chassis.css +0 -1
  372. package/dist/styles/scroll-progress-rim.css +0 -1
  373. package/dist/styles/select.css +0 -1
  374. package/dist/styles/tabs/segmented-tabs-drag.css +0 -1
  375. package/dist/styles/utilities/animate.css +0 -0
  376. package/dist/useConfiguratorState-Dq35N_7t.js +0 -167
  377. package/dist/useDockCtaReceive-BgMmeINo.js +0 -161
  378. package/dist/useGlobalDark-DjKMEQE2.js +0 -53
  379. package/dist/useGpuSubstrate-DcY584kE.js +0 -347
  380. package/dist/useInterval-ZATRi-1T.js +0 -18
  381. package/dist/useKeyboardShortcuts-ynVmNFo3.js +0 -104
  382. package/dist/useLiquidPress-BXNHydZh.js +0 -40
  383. package/dist/useTextHighlight-C46Le9u_.js +0 -72
  384. package/dist/useViewportReady-c0isoKL8.js +0 -191
  385. package/src/styles/card-scroll.css +0 -189
  386. package/src/styles/cards.css +0 -485
  387. package/src/styles/completion-seal.css +0 -205
  388. package/src/styles/configurator.css +0 -359
  389. package/src/styles/dialog-placement.css +0 -68
  390. package/src/styles/dock/adaptive-legibility.css +0 -119
  391. package/src/styles/dock/crossfade.css +0 -139
  392. package/src/styles/dock/cta-seat.css +0 -87
  393. package/src/styles/dock/density.css +0 -458
  394. package/src/styles/dock/dock.css +0 -199
  395. package/src/styles/dock/fisheye.css +0 -81
  396. package/src/styles/dock/layer-group.css +0 -329
  397. package/src/styles/dock/layers.css +0 -438
  398. package/src/styles/dock/morph.css +0 -455
  399. package/src/styles/dock/overflow.css +0 -332
  400. package/src/styles/dock/popover.css +0 -249
  401. package/src/styles/dock/search.css +0 -68
  402. package/src/styles/dock/section.css +0 -59
  403. package/src/styles/dock/shape.css +0 -188
  404. package/src/styles/dock/shell-regions.css +0 -73
  405. package/src/styles/dock/shell.css +0 -500
  406. package/src/styles/dock-controls/dark-mode-toggle.css +0 -123
  407. package/src/styles/dock-controls/icon-button.css +0 -221
  408. package/src/styles/dock-controls/tab-button.css +0 -143
  409. package/src/styles/dock-controls/touch-floor.css +0 -119
  410. package/src/styles/dock-controls/triggers.css +0 -157
  411. package/src/styles/dock-controls.css +0 -92
  412. package/src/styles/dock.css +0 -219
  413. package/src/styles/drawer.css +0 -434
  414. package/src/styles/feedback-tone.css +0 -104
  415. package/src/styles/icon-chip.css +0 -256
  416. package/src/styles/instrument-chassis.css +0 -449
  417. package/src/styles/menu.css +0 -187
  418. package/src/styles/scroll-progress-rim.css +0 -87
  419. package/src/styles/segmented-tabs.css +0 -424
  420. package/src/styles/select.css +0 -201
  421. package/src/styles/tabs/segmented-tabs-drag.css +0 -200
  422. package/src/styles/utilities/animate.css +0 -29
  423. /package/dist/{coalesce-metric-B8o7zT9u.js → coalesce-metric-znAcLzkB.js} +0 -0
  424. /package/dist/{CollapsibleContent-DiHcB_HH.js → collapsible-bPzS1aQk.js} +0 -0
  425. /package/dist/{compile-C55K3P9g.js → compile-DK3Fri1B.js} +0 -0
  426. /package/dist/{styles → components/_shared}/feedback-tone.css +0 -0
  427. /package/dist/{styles → components/_shared}/menu.css +0 -0
  428. /package/dist/{styles → components/card}/card-scroll.css +0 -0
  429. /package/dist/{styles/configurator.css → components/configurator/styles.css} +0 -0
  430. /package/dist/{styles/dock-controls → components/controls}/dark-mode-toggle.css +0 -0
  431. /package/dist/{styles/dialog-placement.css → components/dialog/placement.css} +0 -0
  432. /package/dist/{styles/dock-controls → components/dock/styles/controls}/tab-button.css +0 -0
  433. /package/dist/{styles/dock-controls → components/dock/styles/controls}/triggers.css +0 -0
  434. /package/dist/{styles/dock → components/dock/styles}/crossfade.css +0 -0
  435. /package/dist/{styles/dock → components/dock/styles}/cta-seat.css +0 -0
  436. /package/dist/{styles/dock → components/dock/styles}/fisheye.css +0 -0
  437. /package/dist/{styles/dock → components/dock/styles}/morph.css +0 -0
  438. /package/dist/{styles/dock → components/dock/styles}/search.css +0 -0
  439. /package/dist/{styles/dock → components/dock/styles}/section.css +0 -0
  440. /package/dist/{styles/dock → components/dock/styles}/shell-regions.css +0 -0
  441. /package/dist/{styles/segmented-tabs.css → components/tabs/styles/segmented.css} +0 -0
  442. /package/dist/{constants-D8lSMkOz.js → constants-DRZmNIY-.js} +0 -0
  443. /package/dist/{createContext-BQ1Gy_LB.js → createContext-FU0n5MGK.js} +0 -0
  444. /package/dist/{flow.glsl-CVqPSj8_.js → flow.glsl-DEGFGE11.js} +0 -0
  445. /package/dist/{FocusScope-BzKwhsBn.js → focus-scope-DUTKveod.js} +0 -0
  446. /package/dist/{InstrumentChassis-Dss5Tjcm.js → instrument-chassis-Cvstg4_U.js} +0 -0
  447. /package/dist/{Label-C84TaQiw.js → label-Cj38tJKG.js} +0 -0
  448. /package/dist/{menuItemVariants-DbO-Fr74.js → menuItemVariants-D6AOzzND.js} +0 -0
  449. /package/dist/{pointerFieldMappings-4VtmkOWv.js → pointerFieldMappings-CZojkgKj.js} +0 -0
  450. /package/dist/{presets-B07HzyKd.js → presets-CxeNvxuO.js} +0 -0
  451. /package/dist/{prng-B0PLRmR6.js → prng-Dz2_9RJu.js} +0 -0
  452. /package/dist/{scrollReader-DzYqPQ6V.js → scrollReader-C2oK9Hb8.js} +0 -0
  453. /package/dist/{supportsCssTimeline-Ie4xJFbD.js → supportsCssTimeline-Dz-GVxXM.js} +0 -0
  454. /package/dist/{Toaster-C_-WeU9W.js → toast-kAbchIN2.js} +0 -0
  455. /package/dist/{useControlSize-DJwe-7ZQ.js → useControlSize-CFfOk8I-.js} +0 -0
  456. /package/dist/{useDocumentVisibility-CpJGUgcJ.js → useDocumentVisibility-YeBDGqtI.js} +0 -0
  457. /package/dist/{useDragMorph-65ihHePq.js → useDragMorph-7ygF9O0m.js} +0 -0
  458. /package/dist/{useDragVelocity-BWcNMCux.js → useDragVelocity-CbMZEBaC.js} +0 -0
  459. /package/dist/{useFuzzySearch-KslRxiJY.js → useFuzzySearch-BOgep7RE.js} +0 -0
  460. /package/dist/{useLeadTrail-DOH4XkL1.js → useLeadTrail-BYu8dq4G.js} +0 -0
  461. /package/dist/{usePointerVelocityField-CwXyeW0Z.js → usePointerVelocityField-BdvnO0py.js} +0 -0
  462. /package/dist/{useResizeObserver-DDuoBeBo.js → useResizeObserver-BcUTquV7.js} +0 -0
  463. /package/dist/{useResolveTokenColor-DVT5kwv6.js → useResolveTokenColor-C07e-qaT.js} +0 -0
  464. /package/dist/{useRoutePointer-DL7I0gY4.js → useRoutePointer-BDNMFN73.js} +0 -0
  465. /package/dist/{useSpringMount-CNvvgGiC.js → useSpringMount-C6-DBx4e.js} +0 -0
  466. /package/dist/{useTimer-CkDV8SC2.js → useTimer-D8koDvJS.js} +0 -0
  467. /package/dist/{useUserInvalidAria-Bkruei7M.js → useUserInvalidAria-Cr4nR3tu.js} +0 -0
  468. /package/dist/{vReveal-DUmiEkX_.js → vReveal-DZfWl9XI.js} +0 -0
  469. /package/dist/{vSpecular-DlYN0UZy.js → vSpecular-CQFmLNzA.js} +0 -0
  470. /package/dist/{writeVelocityWeight-D1rvdxJu.js → writeVelocityWeight-D_AcvTsE.js} +0 -0
@@ -0,0 +1,13 @@
1
+ //#region src/components/_shared/valueDomain.ts
2
+ var e = (e, t) => Number.isFinite(e) && Number.isFinite(t) && t > e;
3
+ function t(t, n, r) {
4
+ return e(n, r) ? (Math.min(r, Math.max(n, typeof t == "number" && Number.isFinite(t) ? t : n)) - n) / (r - n) : 0;
5
+ }
6
+ function n(t, n, r) {
7
+ return !t?.length || !e(n, r) ? [] : [...new Set(t.filter((e) => Number.isFinite(e) && e > n && e < r))].sort((e, t) => e - t).map((e) => ({
8
+ value: e,
9
+ position: (e - n) / (r - n)
10
+ }));
11
+ }
12
+ //#endregion
13
+ export { n, t };
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./_plugin-vue_export-helper-C1je1s0u.js";
2
- import { t } from "./useRAFLoop-CvOo_kgb.js";
3
- import { n, t as r } from "./prng-B0PLRmR6.js";
2
+ import { t } from "./useRAFLoop-BtwQ9DyY.js";
3
+ import { n, t as r } from "./prng-Dz2_9RJu.js";
4
4
  import { computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, defineComponent as l, normalizeClass as u, normalizeStyle as d, openBlock as f, ref as p, renderSlot as m, resolveDynamicComponent as h, toRef as g, useId as _, watch as v, withCtx as y } from "vue";
5
5
  //#region src/components/watercolor-dot/prng.ts
6
6
  function b(e, t, n) {
@@ -116,6 +116,7 @@ var T = {
116
116
  let D = i(() => t.animate ? S.borderRadius.value : x.value ? S.hoverBorderRadius.value : S.borderRadius.value), O = i(() => t.animate ? S.transform.value : "none");
117
117
  return (t, r) => (f(), a(h(e.tag), {
118
118
  class: u(["watercolor-swatch", e.animate && "watercolor-animated"]),
119
+ type: e.tag === "button" ? "button" : void 0,
119
120
  "data-testid": "watercolor-swatch",
120
121
  "data-variant": e.variant,
121
122
  style: d({
@@ -164,10 +165,11 @@ var T = {
164
165
  _: 3
165
166
  }, 40, [
166
167
  "class",
168
+ "type",
167
169
  "data-variant",
168
170
  "style"
169
171
  ]));
170
172
  }
171
- }), [["__scopeId", "data-v-a8dd9e80"]]);
173
+ }), [["__scopeId", "data-v-2abd7f65"]]);
172
174
  //#endregion
173
175
  export { D as WatercolorDot, r as hashString, n as mulberry32, x as radiiToCSS, b as randomRadii, w as useWatercolorBlob };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mkbabb/glass-ui",
3
- "version": "5.0.0",
3
+ "version": "6.0.0",
4
4
  "description": "Glassmorphic design system — Vue 3.5 components, reka-ui primitives, Tailwind CSS v4 tokens",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -232,9 +232,6 @@
232
232
  "spa-view": [
233
233
  "dist/spa-view.d.ts"
234
234
  ],
235
- "stacked-icons": [
236
- "dist/stacked-icons.d.ts"
237
- ],
238
235
  "status-dot": [
239
236
  "dist/status-dot.d.ts"
240
237
  ],
@@ -549,10 +546,6 @@
549
546
  "types": "./dist/spa-view.d.ts",
550
547
  "import": "./dist/spa-view.js"
551
548
  },
552
- "./stacked-icons": {
553
- "types": "./dist/stacked-icons.d.ts",
554
- "import": "./dist/stacked-icons.js"
555
- },
556
549
  "./status-dot": {
557
550
  "types": "./dist/status-dot.d.ts",
558
551
  "import": "./dist/status-dot.js"
@@ -598,7 +591,7 @@
598
591
  "iter-test": "vitest run --reporter=verbose",
599
592
  "iter-test-watch": "vitest --watch",
600
593
  "prepare": "node scripts/install-hooks.mjs && (test -f dist/glass-ui.js -a -f dist/index.d.ts || npm run build)",
601
- "prepublishOnly": "npm run build && npm test && node scripts/verify.mjs --state auto --profile release --require-terminal",
594
+ "prepublishOnly": "npm run typecheck && npm run build && npm test",
602
595
  "profile:aurora": "node scripts/profile-aurora.mjs",
603
596
  "profile:bundle": "node scripts/profile-bundle.mjs",
604
597
  "release": "bash scripts/release.sh",
@@ -612,7 +605,7 @@
612
605
  "peerDependencies": {
613
606
  "@lucide/vue": "^1.16.0",
614
607
  "@mkbabb/keyframes.js": "^5.2.0",
615
- "@mkbabb/pencil-boil": "^0.4.1",
608
+ "@mkbabb/pencil-boil": "^0.9.2",
616
609
  "@mkbabb/value.js": "^3.1.0",
617
610
  "@vueuse/core": "^14.0",
618
611
  "class-variance-authority": "^0.7",
@@ -650,8 +643,8 @@
650
643
  "devDependencies": {
651
644
  "@lucide/vue": "^1.20.0",
652
645
  "highlight.js": "^11.11.1",
653
- "@mkbabb/keyframes.js": "^5.2.0",
654
- "@mkbabb/pencil-boil": "^0.4.1",
646
+ "@mkbabb/keyframes.js": "5.3.4",
647
+ "@mkbabb/pencil-boil": "0.9.2",
655
648
  "@mkbabb/value.js": "^3.1.0",
656
649
  "@tailwindcss/postcss": "^4.3.1",
657
650
  "@tailwindcss/vite": "^4.3.1",
@@ -0,0 +1,48 @@
1
+ /* Terminal accessibility cascade: adaptations replace the completed product
2
+ paint instead of competing with later component rules. */
3
+ @import "./glass/a11y-fallback.css";
4
+ @import "./utilities/a11y-overrides.css";
5
+
6
+ /* Selection and validation keep a non-hue boundary when contrast is requested.
7
+ The system-color arm yields fully to the user's forced palette. */
8
+ @media (prefers-contrast: more) {
9
+ :is(
10
+ [aria-current]:not([aria-current="false"]),
11
+ [aria-selected="true"],
12
+ [aria-pressed="true"],
13
+ [aria-checked="true"],
14
+ [data-state="checked"],
15
+ [data-state="on"]
16
+ ) {
17
+ border-color: currentColor !important;
18
+ border-style: solid !important;
19
+ border-width: 2px !important;
20
+ }
21
+
22
+ :is([aria-invalid="true"], :user-invalid) {
23
+ border-color: var(--destructive) !important;
24
+ border-style: solid !important;
25
+ border-width: 2px !important;
26
+ }
27
+ }
28
+
29
+ @media (forced-colors: active) {
30
+ :is(
31
+ [aria-current]:not([aria-current="false"]),
32
+ [aria-selected="true"],
33
+ [aria-pressed="true"],
34
+ [aria-checked="true"],
35
+ [data-state="checked"],
36
+ [data-state="on"]
37
+ ) {
38
+ border-color: Highlight !important;
39
+ border-style: solid !important;
40
+ border-width: 2px !important;
41
+ }
42
+
43
+ :is([aria-invalid="true"], :user-invalid) {
44
+ border-color: Mark !important;
45
+ border-style: solid !important;
46
+ border-width: 2px !important;
47
+ }
48
+ }
@@ -129,14 +129,14 @@
129
129
  scale of its own — the translate/squish are the morph primitive's writes) */
130
130
  scale: 1.015;
131
131
  }
132
- .glass-capsule-hover:active {
132
+ .glass-capsule-hover:not([data-press-armed]):active {
133
133
  /* the --scale-press snap */
134
134
  scale: var(--scale-press-sm, 0.97);
135
135
  }
136
136
  @media (prefers-reduced-motion: reduce) {
137
137
  /* the lift is motion; the specular catch (a static legibility cue) stays. */
138
138
  .glass-capsule-hover:hover,
139
- .glass-capsule-hover:active {
139
+ .glass-capsule-hover:not([data-press-armed]):active {
140
140
  scale: 1;
141
141
  }
142
142
  }
@@ -368,7 +368,7 @@
368
368
  (the census measured the raw page-muted at WCAG 3.3-4.27 dark, BELOW AA): the feedback
369
369
  TONE-TINTED plates (`.feedback-tone` — Alert / Notification / Toast, the AlertDescription
370
370
  caption + mono labels), the selected-glass capsule CHIPS + overflow PUCKS (`.glass-capsule`
371
- — selectable-chip / toggle-chip / stacked-icons / tags-input, idle `text-muted-foreground`
371
+ — selectable-chip / toggle-chip / tags-input, idle `text-muted-foreground`
372
372
  ink), and the `.metric-badge` mono label. These plates composite BRIGHTER than the calm
373
373
  quiet plate (the quiet content plate lands L≈0.28; a tone-tinted / selected chip plate
374
374
  lands L≈0.30-0.35), so a subordinate light ink loses contrast on them — they need the
@@ -0,0 +1,18 @@
1
+ /* The public material hierarchy. Content and elevated content own their paint here;
2
+ functional glass and transient overlays keep their component-specific anatomy. */
3
+ @layer components {
4
+ [data-material="content-field"] {
5
+ background: var(--background);
6
+ color: var(--foreground);
7
+ }
8
+
9
+ /* A content card is elevation, not another glass pane. Keep nested controls free
10
+ to remain functional glass by changing only the card root's paint. */
11
+ [data-material="elevated-content"][data-surface="glass"] {
12
+ background: var(--card);
13
+ border-color: var(--border-soft);
14
+ box-shadow: var(--card-shadow);
15
+ backdrop-filter: none;
16
+ -webkit-backdrop-filter: none;
17
+ }
18
+ }
@@ -395,21 +395,27 @@
395
395
  --specular-intensity: var(--glass-specular-intensity-active, 0.16);
396
396
  }
397
397
 
398
- /* AX.W45-TUNE C5 — the SELECTED dock control reads as the keyframes-dock glass
399
- register: a glass-tier active fill (`--dock-control-active-bg` → the floating
400
- plate, tokens.css) WITH the specular gleam waking over it, not a flat ink
401
- stamp. The CSS `:active` pseudo above only fires on press-down; a SELECTED tile
402
- (`.is-active` / `[aria-pressed]` / `[aria-expanded]` / `[aria-current]`) holds
403
- the gleam lit so the selected element reads as a lit glass tier the substrate
404
- shows through (the model the user named, `pass-3:13`). Family-scoped addition
405
- on the dock-control `::before`, line-disjoint from the shared recipe above. */
406
- .dock-icon-button:is(.is-active, .active, [aria-pressed="true"], [aria-expanded="true"], [aria-current="page"])::before,
407
- .dock-tab-button:is(.is-active, .active, [aria-pressed="true"], [aria-expanded="true"], [aria-current="page"])::before,
408
- .dock-select-trigger:is(.is-active, .active, [aria-pressed="true"], [aria-expanded="true"], [aria-current="page"])::before,
409
- .dock-dropdown-trigger:is(.is-active, .active, [aria-pressed="true"], [aria-expanded="true"], [aria-current="page"])::before {
398
+ /* Selected and dragged controls hold the same interaction lens used during
399
+ press. Semantics choose the state attribute; the material owns its paint. */
400
+ :is(.glass-material, .glass-wash, .glass-quiet, .glass-resting, .glass-floating,
401
+ .glass-overlay, .glass-specular-track, .dock-icon-button, .dock-tab-button,
402
+ .dock-select-trigger, .dock-dropdown-trigger):is(.is-active, .active, [data-active],
403
+ [data-dragging], [data-state="checked"], [data-state="on"], [aria-pressed="true"],
404
+ [aria-selected="true"], [aria-expanded="true"], [aria-current="page"])::before {
410
405
  --specular-intensity: var(--glass-specular-intensity-active, 0.16);
411
406
  }
412
407
 
408
+ /* Disabled glass keeps its neutral separating hairline but cannot wake the
409
+ interaction lens through hover, press, or retained state. Content ink is
410
+ untouched; each control continues to own its disabled legibility. */
411
+ :is(.glass-material, .glass-wash, .glass-quiet, .glass-resting, .glass-floating,
412
+ .glass-overlay, .glass-specular-track, .dock-icon-button, .dock-tab-button,
413
+ .dock-select-trigger, .dock-dropdown-trigger):is(:disabled, [data-disabled],
414
+ [aria-disabled="true"])::before {
415
+ --specular-intensity: var(--glass-specular-intensity-rest, 0);
416
+ transition: none;
417
+ }
418
+
413
419
  /* BB.W-LENSING (scope 2) — the `:active` LENS-SWELL is RETIRED (DDR-LENS-BAKE,
414
420
  glass-refract.css header). The swell drove the displacement `scale` by mutating
415
421
  the `--glass-refract` axis on the `--glass-btn-press-t` press drive (28 rest → 44
@@ -35,15 +35,15 @@
35
35
  * under the 500-line no-god-module bound), @import-ed below in CASCADE ORDER.
36
36
  * The base ladder splits into three adjacent `@layer components` blocks
37
37
  * (material · ladder · surfaces) — same layer, same source order, so the carve
38
- * is isomorphic. The squircle `@supports` arm and the a11y `@media`/`@supports`
39
- * overrides MUST stay AFTER the base ladder (they override it). See
38
+ * is isomorphic. The squircle `@supports` arm stays after the base ladder;
39
+ * accessibility modes load once at the end of styles/index.css. See
40
40
  * docs/precepts/design-idioms.md §cohesion-aware partials.
41
41
  */
42
42
 
43
43
  /* CSS @import rules must precede every other rule. The seven partials @import in
44
44
  cascade order (surface-axis.css AFTER ladder/surfaces so its [data-surface]
45
45
  decoration attr rules win over the base rung by source order; BEFORE the
46
- squircle + a11y @supports overrides, which must stay last): */
46
+ squircle override): */
47
47
  @import "./glass/material.css";
48
48
  @import "./glass/ladder.css";
49
49
  /* BI.W-STYLE-REDRAIN — the .glass-opaque level-0 escape + the content-aware under-shadow
@@ -91,6 +91,7 @@
91
91
  slider/progress recipes. */
92
92
  @import "./glass/liquid-fill.css";
93
93
  @import "./glass/surface-axis.css";
94
+ @import "./glass/material-roles.css";
94
95
  @import "./glass/reveal.css";
95
96
  /* BD.W-LIQUID-ENTRANCE-GENERAL — the UNIVERSAL `.liquid-enter` mount recipe
96
97
  (the four coupled channels as @keyframes-on-mount + the `.is-cel` cel-slam + the
@@ -103,8 +104,7 @@
103
104
  decoration ON a base rung (the .glass-opaque/.glass-deep precedent), @import-ed
104
105
  IMMEDIATELY AFTER deep.css (same @layer components, source-order-after so its cohort
105
106
  fills win over control-surfaces.css/surfaces.css at equal specificity) and BEFORE the
106
- squircle/a11y overrides (which still win by :root level). */
107
+ squircle override. */
107
108
  @import "./glass/defined.css";
108
109
  @import "./glass/progress-rail.css";
109
110
  @import "./glass/squircle.css";
110
- @import "./glass/a11y-fallback.css";
@@ -62,7 +62,7 @@
62
62
  * from (1) so MUST come after them; defines the
63
63
  * `dark` variant selector consumed by the cascade.
64
64
  * 4. glass.css — thin @import root over glass/{material,ladder,
65
- * surfaces,progress-rail,squircle,a11y-fallback}.css.
65
+ * surfaces,progress-rail,squircle}.css.
66
66
  * .glass-{wash,quiet,resting,floating,overlay}
67
67
  * 5-rung ladder + .glass-card / -pill / -btn.
68
68
  * Consumes tokens (1) + theme aliases (3).
@@ -75,7 +75,7 @@
75
75
  * over the glass tiers.
76
76
  * 5. paper.css — paper underpaint + grain overlay utilities.
77
77
  * Pairs with (4) for paper-on-glass compositions.
78
- * 6. dock.css — the dock CORE: the `@property --dock-morph-t`
78
+ * 6. components/dock/styles/index.css — the dock CORE: the `@property --dock-morph-t`
79
79
  * registration, the shared cross-control four-state
80
80
  * comma-groups, and the `@import`s of the cohesive
81
81
  * `dock/*.css` partials (shell · morph · density ·
@@ -84,7 +84,7 @@
84
84
  * each < 500 lines, all in the SAME @layer components
85
85
  * so the cascade is isomorphic). Component utility
86
86
  * layer; consumes (1) + (3).
87
- * 6b. dock-controls.css — the five dock CONTROL families carved out of
87
+ * 6b. components/dock/styles/controls.css — the dock CONTROL families
88
88
  * dock.css (AU.W8b.3): .dock-icon-button,
89
89
  * .dark-mode-toggle-button, .dock-tab-button + tiers,
90
90
  * .dock-select-trigger / .dock-dropdown-trigger, and
@@ -92,9 +92,9 @@
92
92
  * components; MUST load directly after dock.css so
93
93
  * the shared :where()/comma-group contract in (6)
94
94
  * cascades into these control rules.
95
- * 7. cards.css — .cartoon-surface, .paper-texture.
95
+ * 7. components/card/styles.css — card and shared card-surface recipes.
96
96
  * Component utility layer.
97
- * 7a. feedback-tone.css — the ONE shared tinted-glass tone register
97
+ * 7a. components/_shared/feedback-tone.css — the shared tinted-glass tone register
98
98
  * (BA.W-FEEDBACK-TONE): `.feedback-tone` +
99
99
  * `.feedback-tone-{success,warning,info,destructive}`
100
100
  * tint a glass rung a bounded % toward a house tone
@@ -135,29 +135,29 @@
135
135
  * recipe + `--vt-*` axes (AQ.W5; the
136
136
  * `useViewTransition` substrate's CSS half).
137
137
  * 11. utilities.css — thin @import root over utilities/{animate,base,
138
- * components,btn,a11y-overrides}.css. focus-ring,
138
+ * components,btn}.css. focus-ring,
139
139
  * btn-audacious + btn-interactive (press cluster;
140
140
  * K W6 + Q.W3 Lane E), rainbow-vivid +
141
141
  * rainbow-pastel. Consumes earlier animations +
142
142
  * tokens.
143
- * 11a. menu.css — BA.W-MENU-GLASS the glass MENU-ROW + MENU-SECTION
143
+ * 11a. components/_shared/menu.css — the glass MENU-ROW + MENU-SECTION
144
144
  * register. AFTER utilities.css so `.glass-menu-row`'s
145
145
  * `@layer components` hover/highlight rules source-
146
146
  * order-win over `.interactive-item:hover` (same layer
147
147
  * + specificity) — the cascade-trap-safe placement.
148
- * 12. instrument-chassis.css — P-tranche component CSS (chassis bezel +
148
+ * 12. components/instrument-chassis/styles.css — chassis bezel +
149
149
  * groove dividers). Loaded after utilities so
150
150
  * component-local recipes can override.
151
- * 13. drawer.css — AN.W3 detented bottom-sheet grammar (glass
151
+ * 13. components/drawer/styles.css — detented bottom-sheet grammar (glass
152
152
  * sheet surface + peek handle + snap-stop rules).
153
- * 15. segmented-tabs.css — AX.W53 SegmentedTabs overflow/indicator grammar.
154
- * 16. select.css — BA.W-EMISSION the PRECOMPILED Select content
153
+ * 15. components/tabs/styles/* — SegmentedTabs overflow/indicator grammar.
154
+ * 16. components/_shared/field-surfaces.css — precompiled field/list surfaces
155
155
  * collision-bound (the `[data-slot="select-content"]`
156
156
  * max-height rule) — moved off the dead arbitrary-
157
157
  * bracket CVA class so the bound SHIPS in dist/glass-ui.css
158
158
  * regardless of consumer JIT reach. A structural utility
159
159
  * never depends on a content-scan; locked by proof:emission.
160
- * 17. dialog-placement.css — BI.W-DIALOG-PLACEMENT the PRECOMPILED Dialog
160
+ * 17. components/dialog/placement.css — precompiled Dialog
161
161
  * side-slide positioning (the `[data-slot="dialog-content"]
162
162
  * [data-placement]` position/inset/size rules — the Sheet
163
163
  * fold) — the overlay-band emission INVERSE: moved off the
@@ -165,9 +165,12 @@
165
165
  * drawer so the positioning SHIPS regardless of consumer JIT
166
166
  * reach; locked by proof:emission.
167
167
  *
168
+ * 18. accessibility.css — terminal reduced-transparency/contrast/motion,
169
+ * forced-colors, and coarse-input adaptations.
170
+ *
168
171
  * Per-package component CSS lives at (12)-(17) (loaded after utilities so
169
- * component-local recipes can override). New per-package CSS files append
170
- * to that tail.
172
+ * component-local recipes can override). Accessibility then replaces the
173
+ * completed paint as one terminal product mode.
171
174
  */
172
175
  @import "./tokens.css";
173
176
  @import "./typography.css";
@@ -176,10 +179,10 @@
176
179
  @import "./glass-specular-track.css";
177
180
  @import "./glass-refract.css";
178
181
  @import "./paper.css";
179
- @import "./dock.css";
180
- @import "./dock-controls.css";
181
- @import "./cards.css";
182
- @import "./feedback-tone.css";
182
+ @import "../components/dock/styles/index.css";
183
+ @import "../components/dock/styles/controls.css";
184
+ @import "../components/card/styles.css";
185
+ @import "../components/_shared/feedback-tone.css";
183
186
  @import "./transitions.css";
184
187
  @import "./animations.css";
185
188
  @import "./viz-reveal.css";
@@ -189,7 +192,7 @@
189
192
  choreography (lifted out of the CardHeader.vue <style scoped> block into ONE
190
193
  global, un-hashed home; the shared @keyframes title-collapse SCALE leg). A
191
194
  scroll-choreography partial — bucketed DEFERRED in critical-partition.mjs. */
192
- @import "./card-scroll.css";
195
+ @import "../components/card/card-scroll.css";
193
196
  @import "./scroll-chrome.css";
194
197
  @import "./view-transition.css";
195
198
  @import "./utilities.css";
@@ -199,21 +202,21 @@
199
202
  over `.interactive-item:hover` (utilities/base.css, same layer + specificity) —
200
203
  the cascade-trap-safe placement, mirroring glass/surface-axis.css's "import
201
204
  AFTER ladder.css" discipline. */
202
- @import "./menu.css";
203
- @import "./configurator.css";
204
- @import "./instrument-chassis.css";
205
+ @import "../components/_shared/menu.css";
206
+ @import "../components/configurator/styles.css";
207
+ @import "../components/instrument-chassis/styles.css";
205
208
  /* BI.W-OVERLAY-UNION — hover-popover.css DELETED: <HoverPopover> folded onto the
206
209
  sealed <Popover trigger="hover"> union; its content rides the shared
207
210
  glass-floating + glass-reveal recipe, so the bespoke .hover-popover-panel
208
211
  substrate is dead. (clean break, no alias.) */
209
- @import "./drawer.css";
210
- @import "./segmented-tabs.css";
212
+ @import "../components/drawer/styles.css";
213
+ @import "../components/tabs/styles/segmented.css";
211
214
  /* BI.W-STYLE-REDRAIN — the SegmentedTabs additive DECORATION tail (the .glass-drag-lift
212
215
  pull affordance + the data-eyeglass iOS-27 loupe register) carved out of
213
216
  segmented-tabs.css to hold the no-god-module 500-line bound; @import-ed IMMEDIATELY
214
217
  AFTER it (unlayered, unique selectors, source-order-after — byte-isomorphic). */
215
- @import "./tabs/segmented-tabs-drag.css";
216
- @import "./select.css";
218
+ @import "../components/tabs/styles/drag.css";
219
+ @import "../components/_shared/field-surfaces.css";
217
220
  /* BI.W-DIALOG-PLACEMENT — the overlay-band Dialog side-slide structural positioning,
218
221
  precompiled (the emission INVERSE, terminalized onto Dialog `placement` — the Sheet
219
222
  fold): a [data-slot="dialog-content"][data-placement] rule so the side sheet's
@@ -221,13 +224,13 @@
221
224
  content-scan reach (off the dead CVA geometry utilities that broke the D7 configurator
222
225
  drawer). :where()-wrapped so a consumer sizing utility still wins. Locked by
223
226
  proof:emission (overlay-band inverse clause). */
224
- @import "./dialog-placement.css";
227
+ @import "../components/dialog/placement.css";
225
228
  /* BA.W-ICON-CHIP — the <IconChip> section-color pop recipe + the three axes
226
229
  (duotone/bloom/reveal). A component partial; the token arms (--section-color-N
227
230
  / --muted) auto-flip under .dark so the chip is mode-robust by construction. */
228
- @import "./icon-chip.css";
231
+ @import "../components/icon-chip/styles.css";
229
232
  /* The thin, radius-following masked scroll-progress band. */
230
- @import "./scroll-progress-rim.css";
233
+ @import "../components/scroll-progress-rim/styles.css";
231
234
 
232
235
  /* BC.W-AX-COMPLETION-SEAL — the hero-scale earned-GOLD completion seal: a one-shot
233
236
  gold-draw mark (a `stroke-dashoffset` wipe on the 4 `@property` motion tokens
@@ -235,7 +238,7 @@
235
238
  tokens/property-regs.css §18). The ink reads the W-PHASE-PALETTE earned-gold
236
239
  register; the glint composes the W-AX-METAL-GLOW catch-light. One-shot, PRM-gated,
237
240
  compositor-only — the feedback-surface partial. */
238
- @import "./completion-seal.css";
241
+ @import "../components/completion-seal/styles.css";
239
242
 
240
243
  /* BI.W-DRAW-IN — the codified self-drawing arrival register (`.draw-rule` /
241
244
  `[data-draw-in]`). A hairline / divider / underline draws ITSELF in via
@@ -247,6 +250,11 @@
247
250
  PRM-static. */
248
251
  @import "./draw-in.css";
249
252
 
253
+ /* Accessibility is a terminal product mode, not a mid-cascade patch. This one
254
+ import owns reduced transparency/contrast/motion, forced colors, and coarse
255
+ target adaptation after every material and component recipe. */
256
+ @import "./accessibility.css";
257
+
250
258
  /* Ensure Tailwind scans glass-ui's compiled component templates for the utility
251
259
  classes they emit (CVA variant classes like text-destructive-foreground,
252
260
  layout utilities like h-full/shrink-0).
@@ -350,12 +350,6 @@
350
350
  (the documented public register the consumers reach by name; the JS path
351
351
  reads it via useSpringPress + --glass-btn-press-t). */
352
352
  --ease-spring-press: var(--spring-press);
353
- /* BC.W-DECK — the deck slide-transition spring's @theme alias (the documented
354
- public register a consumer's slide `transition-timing-function` reaches by
355
- name: `ease-spring-deck`). --spring-deck aliases --spring-smooth; the headless
356
- library mints the register, the deck consumer reads it (presets-in-consumers). */
357
- --ease-spring-deck: var(--spring-deck);
358
-
359
353
  --ease-standard: var(--motion-ease-standard);
360
354
  --ease-out: var(--motion-ease-out);
361
355
  --ease-in: var(--motion-ease-in);
@@ -408,7 +408,6 @@
408
408
  --glass-shadow-overlay: var(--shadow-2xl),
409
409
  0 0 0 0.5px color-mix(in srgb, var(--shadow-color) 8%, transparent),
410
410
  var(--glass-highlight);
411
- --glass-shadow: var(--glass-shadow-quiet);
412
411
 
413
412
  /* ─────────────────────────────────────────────────────────────
414
413
  AL-W1-α augmented — SPINE 8th tier (HOUSING register)
@@ -423,11 +422,8 @@
423
422
  The 4 tokens here cover the minimum viable substrate the SLIM
424
423
  Y4/Y6/Y7 retention set ratified. The 35 rejected axes (saturate
425
424
  band, edge-light per tier, depth-shadow per tier, tier-up macro)
426
- stay rejected per the conservative-creation mandate. (BB.W-DEAD-SWEEP KEEP:
427
- --glass-spine-opacity/-blur — no var() consumer, pinned by InstrumentChassis.spine-variant.test.ts; Batch-6 re-anchor.)
425
+ stay rejected per the conservative-creation mandate.
428
426
  ───────────────────────────────────────────────────────────── */
429
- --glass-spine-opacity: 0;
430
- --glass-spine-blur: 0px;
431
427
  --glass-spine-border: var(--surface-tint-8);
432
428
  --glass-spine-vignette: radial-gradient(
433
429
  ellipse at 50% 0%,
@@ -310,9 +310,8 @@
310
310
  P3 [6%,10%] band (below 6% reads flat, above 10% reads like a filled plate). The
311
311
  `.glass-well` class (glass/surface-axis.css) composes it AT the element (so a
312
312
  per-scope `--glass-well-tone` override re-resolves — the substitution-vs-
313
- inheritance discipline); this `:root` token is the named rung for a direct read. */
313
+ inheritance discipline). */
314
314
  --glass-well-tone: 8%;
315
- --glass-bg-well: color-mix(in oklab, var(--card), var(--foreground) var(--glass-well-tone));
316
315
 
317
316
  /* ── BE.W-TINTED-CHIP — the per-INSTANCE PLATE-FILL tint axis (`--glass-fill-tint`
318
317
  / `--glass-fill-strength`) ──────────────────────────────────────────────────
@@ -92,7 +92,6 @@
92
92
 
93
93
  --max-width-input: 24rem;
94
94
  --input-min-width-sm: 5rem;
95
- --min-width-input-sm: var(--input-min-width-sm);
96
95
  /* AU.W8b.4 — canonical popover width (Combobox list + anchor). Lifts the
97
96
  `w-[200px]` arbitrary-value wrap to the `w-popover` @theme utility. */
98
97
  --popover-width: 200px;
@@ -416,21 +416,22 @@
416
416
  }
417
417
 
418
418
  /* BI.W-TEMPO (M11 / N6) — the GOVERNING motion TIME scalar (the one application
419
- point). ONE registered inheriting number co-scales BOTH the CSS spring clocks
420
- (the `--spring-<name>-duration` reader reads `calc(var(--spring-<name>-settle) *
421
- var(--motion-tempo))`, scheme-spring.css) AND the JS spring RESPONSES (each spring
422
- engine reads it via `motionTempo()` and scales `response *= tempo` at
423
- construction). Because `duration ∝ response` (ωₙ = 2π/response), scaling the CSS
419
+ point). ONE registered inheriting number co-scales the CSS spring clocks (the
420
+ `--spring-<name>-duration` reader), the canonical `sheet-animate` panel/scrim
421
+ enter and exit clocks, and the JS spring RESPONSES (each spring engine reads it via
422
+ `motionTempo()` and scales `response *= tempo` at construction). Because
423
+ `duration ∝ response` (ωₙ = 2π/response), scaling the CSS
424
424
  clock by tempo ≡ scaling response by tempo — so the M1 CSS==JS parity holds at ANY
425
425
  tempo (G2). It serves the "options for longer" clause of UF-G1 (a global motion
426
426
  time knob a consumer sets on `:root`).
427
427
 
428
428
  Registered with the EXACT `--ui-scale`/`--motion-weight`/`--glass-level` typed
429
- cascading-scalar idiom — `inherits: true` so a consumer sets it on any ancestor
430
- and every descendant spring re-reads it (the loud iOS-27 surfaces re-pin
431
- `--motion-tempo: 1` on their own scope, scheme-motion.css, so the utility UI
432
- tightens/loosens while the deliberate BD.W-ANIM-IOS27-TUNE weight holds where it
433
- landed). `initial-value: 1` is the IDENTITY (RATIFIED judgment (c) — the per-
429
+ cascading-scalar idiom. The global owner is `:root`: root-computed spring readers,
430
+ portaled element-local readers, and element-agnostic JS engines all observe that
431
+ value without a portal bridge. Element-local readers may additionally honor a
432
+ nearer inherited override; root-computed spring tokens intentionally do not
433
+ re-resolve through that substitution trap. `initial-value: 1` is the IDENTITY
434
+ (RATIFIED judgment (c) — the per-
434
435
  register tightening is M1 + REGISTER-TABLE's exit/enter-menu clocks, NOT a global
435
436
  scale): at 1.0 the reader resolves `settle * 1` byte-identical to the flat clock,
436
437
  so the axis is a no-op at rest. A malformed override CLAMPS to the initial 1 (the
@@ -84,7 +84,6 @@
84
84
  `--ring`); this is the SOLE `--focus-ring-color` reader (the one retint knob). */
85
85
  --focus-ring-shadow: 0 0 0 var(--focus-ring-width) color-mix(in srgb, var(--focus-ring-color) 30%, transparent),
86
86
  0 0 8px color-mix(in srgb, var(--focus-ring-color) 15%, transparent);
87
- --focus-ring: var(--focus-ring-shadow);
88
87
 
89
88
  /* BB.W-INVALID-RING — the destructive twin of --focus-ring-shadow. The
90
89
  aria-invalid ring is ONE register: every form control (Input/Textarea/
@@ -93,6 +93,9 @@
93
93
  The CALM card register keeps `--duration-fast`/`--duration-normal` — a `<Card>` is
94
94
  not an interactive control. */
95
95
  --duration-control: 0.12s;
96
+ /* Base clocks stay independently tunable. The canonical `sheet-animate` reader
97
+ multiplies its panel/fast legs by `--motion-tempo`; unrelated color and ambient
98
+ effects may continue to consume these bases without claiming global co-scale. */
96
99
  --duration-fast: 0.2s;
97
100
  --duration-normal: 0.3s;
98
101
  --duration-slow: 0.45s;
@@ -185,16 +185,6 @@
185
185
  same way (no overshoot under reduce — the vestibular floor). */
186
186
  --transition-liquid-spatial: var(--spring-smooth);
187
187
 
188
- /* ── DECK SLIDE-TRANSITION CURVE (BC.W-DECK) ──
189
- The full-viewport keyboard-paged deck's slide transition rides the SAME
190
- `--spring-smooth` register the deck's `DECK_SPRING` samples (the calm-settle
191
- `.smooth` family; the (response, ζ) pair lives in deck/constants.ts) — an
192
- ALIAS, NOT a new spring family (the donor's own fence + the W-GLASS-CAL spring
193
- fence). `--spring-deck: var(--spring-smooth)` so a deck slide reads as a calm
194
- settle, not a bounce; the JS half (`installDeckSpring`) consumes keyframes.js
195
- `springTimingFunction(DECK_SPRING)` for the count-up easing. */
196
- --spring-deck: var(--spring-smooth);
197
-
198
188
  /* ── GOO-MORPH SLIDE-TRANSITION FLOW CURVE (BD.W-GOO-CAROUSEL-DECK) ──
199
189
  The per-consumer dwell-flow curve the ONE `useGooMorph` engine reads off its
200
190
  `tokenPrefix` (`--{prefix}-flow`/`-duration`/`-max-stretch`). This is NOT a new