@mkbabb/glass-ui 4.0.1 → 4.2.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 (606) hide show
  1. package/dist/{CardAction-CW7a0m8M.js → CardAction-DlVP2evz.js} +72 -53
  2. package/dist/{CommandShortcut-DvZNQ_HF.js → CommandShortcut-By-VQcLO.js} +25 -14
  3. package/dist/{ConfiguratorRow-BR4l-ixA.js → ConfiguratorRow-YMXdINHx.js} +14 -14
  4. package/dist/ContextMenuContent-CMWn6huB.js +90 -0
  5. package/dist/{ContextMenuSubContent-xol4sD2q.js → ContextMenuSubContent-DvwWCUc0.js} +16 -16
  6. package/dist/{DataTable-CuKwF7wr.js → DataTable-C4tG3eIJ.js} +4 -4
  7. package/dist/DialogContent-D8U9ZfWS.js +121 -0
  8. package/dist/DialogFooter-DoLy0ewI.js +80 -0
  9. package/dist/DialogScrollContent-BMekN7gq.js +93 -0
  10. package/dist/{FadingScroll-DI6hQhT9.js → FadingScroll-P8B30rAD.js} +1 -1
  11. package/dist/HoverCardContent-DAmGYglo.js +88 -0
  12. package/dist/{HoverPopover-CbqbNwgU.js → HoverPopover-DYpBOzzF.js} +1 -1
  13. package/dist/{IconChip-BTD-nay5.js → IconChip-CQa7XZYc.js} +7 -5
  14. package/dist/{IconTooltip-Bl8gFZ8d.js → IconTooltip-_df8M3xm.js} +1 -1
  15. package/dist/Input-CyU4_hIC.js +57 -0
  16. package/dist/{MetricBadge-RHdBP72w.js → MetricBadge-DQt_dGah.js} +1 -1
  17. package/dist/{Notification-VUwexFUf.js → Notification-BlSPJhtZ.js} +4 -4
  18. package/dist/NumberFieldContent-Z3VxGu_6.js +140 -0
  19. package/dist/PagerDots-CYlqVFd4.js +196 -0
  20. package/dist/PaperBackdrop-DYWgrnh8.js +42 -0
  21. package/dist/{PopoverContent-DL7E6vJP.js → PopoverContent-BuKyHZSz.js} +2 -2
  22. package/dist/{Progress-DctG61iZ.js → Progress-C9SsdwIZ.js} +1 -1
  23. package/dist/{ScrollingText-yOpBzFYq.js → ScrollingText-DY3W1Jfh.js} +2 -2
  24. package/dist/SelectScrollDownButton-3mFHX_R-.js +260 -0
  25. package/dist/{SelectSeparator-DXswVdRz.js → SelectSeparator-CNRGG7Ew.js} +1 -1
  26. package/dist/Separator-Cf9-JFgi.js +44 -0
  27. package/dist/Switch-uf-UKPA2.js +49 -0
  28. package/dist/{Toaster-Bw4xR8xV.js → Toaster-ozrsR4mP.js} +2 -2
  29. package/dist/{ToggleGroupItem-pEM9vIhs.js → ToggleGroupItem-BpzaVzNm.js} +6 -6
  30. package/dist/TooltipProvider-QQVM_80r.js +109 -0
  31. package/dist/animated-digit.js +2 -2
  32. package/dist/api/index.d.ts +16 -32
  33. package/dist/api/types-extra.d.ts +33 -0
  34. package/dist/api.js +2 -2
  35. package/dist/aurora.js +629 -269
  36. package/dist/badge-Bt14yURi.js +72 -0
  37. package/dist/badge.js +1 -1
  38. package/dist/border-progress.js +49 -57
  39. package/dist/button-D1W9PrzI.js +130 -0
  40. package/dist/button.js +1 -1
  41. package/dist/canvas.js +2 -3
  42. package/dist/card.js +1 -1
  43. package/dist/carousel.js +235 -106
  44. package/dist/chipVariants-BJQ0I2kB.js +18 -0
  45. package/dist/collapsible.js +1 -1
  46. package/dist/color-B9jZdhJX.js +116 -0
  47. package/dist/color.js +2 -2
  48. package/dist/command.js +1 -1
  49. package/dist/completion-seal.d.ts +1 -0
  50. package/dist/completion-seal.js +89 -0
  51. package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
  52. package/dist/components/custom/aurora/composables/color.d.ts +13 -0
  53. package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
  54. package/dist/components/custom/aurora/composables/glSetup.d.ts +1 -1
  55. package/dist/components/custom/aurora/composables/runtime.d.ts +12 -0
  56. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +12 -3
  57. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +8 -0
  58. package/dist/components/custom/aurora/constants/presets.d.ts +47 -0
  59. package/dist/components/custom/aurora/constants/renderMode.d.ts +16 -8
  60. package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
  61. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
  62. package/dist/components/custom/aurora/index.d.ts +1 -1
  63. package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
  64. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +14 -18
  65. package/dist/components/custom/border-progress/index.d.ts +1 -1
  66. package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
  67. package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
  68. package/dist/components/custom/completion-seal/constants.d.ts +46 -0
  69. package/dist/components/custom/completion-seal/index.d.ts +4 -0
  70. package/dist/components/custom/concentric/Concentric.vue.d.ts +15 -12
  71. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +12 -0
  72. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
  73. package/dist/components/custom/concentric/composables/levelField.d.ts +50 -0
  74. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +7 -3
  75. package/dist/components/custom/concentric/composables/useConcentric.d.ts +3 -3
  76. package/dist/components/custom/concentric/constants.d.ts +69 -24
  77. package/dist/components/custom/concentric/index.d.ts +2 -2
  78. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +2 -2
  79. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -1
  80. package/dist/components/custom/configurator/Configurator.vue.d.ts +23 -2
  81. package/dist/components/custom/configurator/index.d.ts +1 -1
  82. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
  83. package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
  84. package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
  85. package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
  86. package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
  87. package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
  88. package/dist/components/custom/constellation/constants.d.ts +33 -0
  89. package/dist/components/custom/constellation/constellationField.d.ts +31 -1
  90. package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
  91. package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
  92. package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
  93. package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
  94. package/dist/components/custom/constellation/index.d.ts +5 -5
  95. package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
  96. package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
  97. package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
  98. package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
  99. package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
  100. package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
  101. package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
  102. package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
  103. package/dist/components/custom/deck/constants.d.ts +14 -0
  104. package/dist/components/custom/deck/index.d.ts +8 -0
  105. package/dist/components/custom/dock/DockDropdownTrigger.vue.d.ts +4 -3
  106. package/dist/components/custom/dock/DockIconButton.vue.d.ts +22 -0
  107. package/dist/components/custom/dock/DockPopoverTrigger.vue.d.ts +19 -0
  108. package/dist/components/custom/dock/DockStack.vue.d.ts +78 -0
  109. package/dist/components/custom/dock/GlassDock.vue.d.ts +21 -3
  110. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +18 -32
  111. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +78 -67
  112. package/dist/components/custom/dock/composables/index.d.ts +3 -0
  113. package/dist/components/custom/dock/composables/railProjection.d.ts +45 -0
  114. package/dist/components/custom/dock/composables/useDockContextSilhouette.d.ts +192 -0
  115. package/dist/components/custom/dock/composables/useDockFission.d.ts +158 -0
  116. package/dist/components/custom/dock/composables/useDockItemDrag.d.ts +18 -0
  117. package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
  118. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +49 -0
  119. package/dist/components/custom/dock/constants.d.ts +32 -17
  120. package/dist/components/custom/dock/index.d.ts +8 -2
  121. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +15 -11
  122. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +69 -6
  123. package/dist/components/custom/dot-flow-field/composables/flowGLProgram.d.ts +8 -0
  124. package/dist/components/custom/dot-flow-field/composables/flowSetupGL.d.ts +9 -0
  125. package/dist/components/custom/dot-flow-field/composables/flowSetupGLFlow.d.ts +12 -0
  126. package/dist/components/custom/dot-flow-field/composables/flowSetupWGPU.d.ts +7 -0
  127. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +50 -9
  128. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +6 -5
  129. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +23 -9
  130. package/dist/components/custom/dot-flow-field/constants.d.ts +92 -20
  131. package/dist/components/custom/dot-flow-field/index.d.ts +2 -2
  132. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -1
  133. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +31 -18
  134. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +2 -1
  135. package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
  136. package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
  137. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +61 -0
  138. package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
  139. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +34 -0
  140. package/dist/components/custom/dot-matrix/constants.d.ts +72 -0
  141. package/dist/components/custom/dot-matrix/index.d.ts +5 -0
  142. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
  143. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
  144. package/dist/components/custom/easing/EasingPicker.vue.d.ts +2 -2
  145. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +5 -0
  146. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
  147. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +44 -47
  148. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +24 -0
  149. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +31 -0
  150. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +56 -0
  151. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +61 -37
  152. package/dist/components/custom/fourier-field/constants.d.ts +114 -4
  153. package/dist/components/custom/fourier-field/index.d.ts +23 -18
  154. package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
  155. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
  156. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
  157. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +9 -1
  158. package/dist/components/custom/goo-blob/composables/easing.d.ts +1 -0
  159. package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +1 -0
  160. package/dist/components/custom/goo-blob/constants.d.ts +26 -1
  161. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  162. package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
  163. package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
  164. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
  165. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -1
  166. package/dist/components/custom/goo-blob/types.d.ts +86 -1
  167. package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
  168. package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
  169. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +79 -0
  170. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +45 -0
  171. package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
  172. package/dist/components/custom/goo-dot-matrix/constants.d.ts +115 -0
  173. package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
  174. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +13 -0
  175. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +4 -0
  176. package/dist/components/custom/goo-filter/GooFilter.vue.d.ts +22 -0
  177. package/dist/components/custom/goo-filter/index.d.ts +1 -0
  178. package/dist/components/custom/handmark/brush.d.ts +17 -17
  179. package/dist/components/custom/handmark/constants.d.ts +28 -8
  180. package/dist/components/custom/handmark/geometry.d.ts +34 -1
  181. package/dist/components/custom/handmark/index.d.ts +1 -1
  182. package/dist/components/custom/icon-chip/types.d.ts +10 -0
  183. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
  184. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
  185. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
  186. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  187. package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
  188. package/dist/components/custom/paper-backdrop/PaperBackdrop.vue.d.ts +18 -0
  189. package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
  190. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +105 -0
  191. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +18 -0
  192. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +21 -0
  193. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
  194. package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
  195. package/dist/components/custom/paper-grid/constants.d.ts +95 -0
  196. package/dist/components/custom/paper-grid/index.d.ts +5 -0
  197. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
  198. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
  199. package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
  200. package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
  201. package/dist/components/custom/search/index.d.ts +2 -0
  202. package/dist/components/custom/search/searchVariants.d.ts +19 -0
  203. package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
  204. package/dist/components/custom/selectable-chip/chipVariants.d.ts +39 -0
  205. package/dist/components/custom/selectable-chip/index.d.ts +2 -0
  206. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +15 -0
  207. package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
  208. package/dist/components/custom/split-chars/index.d.ts +1 -0
  209. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +8 -6
  210. package/dist/components/custom/tabs/constants.d.ts +28 -2
  211. package/dist/components/custom/timeline/ScrubberTimeline.vue.d.ts +16 -0
  212. package/dist/components/custom/timeline/geometry.d.ts +0 -8
  213. package/dist/components/custom/toggle-chip/index.d.ts +15 -4
  214. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +32 -17
  215. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
  216. package/dist/components/ui/_shared/index.d.ts +2 -0
  217. package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
  218. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +17 -3
  219. package/dist/components/ui/badge/Badge.vue.d.ts +14 -0
  220. package/dist/components/ui/badge/index.d.ts +1 -0
  221. package/dist/components/ui/button/Button.vue.d.ts +1 -0
  222. package/dist/components/ui/button/index.d.ts +1 -1
  223. package/dist/components/ui/card/Card.vue.d.ts +46 -1
  224. package/dist/components/ui/card/ScrollCard.vue.d.ts +1 -1
  225. package/dist/components/ui/card/index.d.ts +1 -1
  226. package/dist/components/ui/carousel/CarouselContent.vue.d.ts +2 -4
  227. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
  228. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
  229. package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
  230. package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
  231. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
  232. package/dist/components/ui/dialog/DialogContent.vue.d.ts +9 -0
  233. package/dist/components/ui/drawer/Drawer.vue.d.ts +33 -14
  234. package/dist/components/ui/drawer/constants.d.ts +8 -6
  235. package/dist/components/ui/drawer/index.d.ts +12 -2
  236. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
  237. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
  238. package/dist/components/ui/input/Input.vue.d.ts +3 -0
  239. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
  240. package/dist/components/ui/select/SelectContent.vue.d.ts +12 -0
  241. package/dist/components/ui/slider/Slider.vue.d.ts +9 -0
  242. package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
  243. package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
  244. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
  245. package/dist/composables/color/index.d.ts +2 -0
  246. package/dist/composables/color/useAccentTone.d.ts +34 -0
  247. package/dist/composables/dom/index.d.ts +1 -0
  248. package/dist/composables/dom/useDragVelocity.d.ts +46 -0
  249. package/dist/composables/glass/useVizChoreography.d.ts +123 -0
  250. package/dist/composables/glass/wave/index.d.ts +4 -0
  251. package/dist/composables/glass/wave/waveField.d.ts +115 -0
  252. package/dist/composables/glass/wave/waveField.glsl.d.ts +1 -0
  253. package/dist/composables/glass/wave/waveField.wgsl.d.ts +1 -0
  254. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +105 -2
  255. package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
  256. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +40 -2
  257. package/dist/composables/glass/webgpu/index.d.ts +2 -1
  258. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +65 -7
  259. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +50 -2
  260. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
  261. package/dist/composables/motion/core/index.d.ts +7 -0
  262. package/dist/composables/motion/core/useHaptic.d.ts +48 -0
  263. package/dist/composables/motion/core/writeVelocityWeight.d.ts +31 -0
  264. package/dist/composables/motion/index.d.ts +2 -0
  265. package/dist/composables/motion/scrollReader.d.ts +25 -0
  266. package/dist/composables/motion/springPresets.d.ts +19 -1
  267. package/dist/composables/motion/suite.d.ts +2 -2
  268. package/dist/composables/motion/useBloomUp.d.ts +97 -0
  269. package/dist/composables/motion/useCelebrationBurst.d.ts +50 -0
  270. package/dist/composables/motion/useCharStagger.d.ts +44 -0
  271. package/dist/composables/motion/useDockCtaReceive.d.ts +29 -22
  272. package/dist/composables/motion/useGooMorph.d.ts +72 -0
  273. package/dist/composables/motion/useLiquidFlex.d.ts +18 -0
  274. package/dist/composables/motion/useLiquidMorph.d.ts +108 -0
  275. package/dist/composables/motion/useLiquidPress.d.ts +12 -0
  276. package/dist/composables/motion/useLiquidReveal.d.ts +7 -4
  277. package/dist/composables/motion/useMorphField.d.ts +157 -0
  278. package/dist/composables/motion/useScrollChrome.d.ts +58 -0
  279. package/dist/composables/motion/useScrollPin.d.ts +49 -0
  280. package/dist/composables/motion/useScrollScene.d.ts +67 -0
  281. package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
  282. package/dist/composables/motion/useSpringPress.d.ts +5 -5
  283. package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
  284. package/dist/composables/sidebar/index.d.ts +4 -1
  285. package/dist/composables/sidebar/types.d.ts +68 -3
  286. package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
  287. package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
  288. package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
  289. package/dist/composables/virtual/index.d.ts +4 -0
  290. package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
  291. package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
  292. package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
  293. package/dist/concentric.js +552 -309
  294. package/dist/configurator.js +2 -2
  295. package/dist/confirm-dialog.js +62 -47
  296. package/dist/constellation.js +635 -235
  297. package/dist/context-menu.js +2 -2
  298. package/dist/controls.js +2 -2
  299. package/dist/createCanvasLifecycle-CuCrGRfq.js +173 -0
  300. package/dist/dark.js +1 -1
  301. package/dist/data-table.js +1 -1
  302. package/dist/deck.d.ts +1 -0
  303. package/dist/deck.js +105 -0
  304. package/dist/dialog.js +4 -3
  305. package/dist/dock.js +1320 -631
  306. package/dist/dockContext-gFVS2gMg.js +18 -0
  307. package/dist/dom.js +7 -6
  308. package/dist/dot-flow-field.js +1268 -387
  309. package/dist/dot-matrix.d.ts +1 -0
  310. package/dist/dot-matrix.js +774 -0
  311. package/dist/dotMatrixField-CRO0ZFk4.js +48 -0
  312. package/dist/drawer.js +106 -96
  313. package/dist/{dropdown-menu-CofSZuk8.js → dropdown-menu-CCfcCQ68.js} +83 -79
  314. package/dist/dropdown-menu.js +1 -1
  315. package/dist/easing.js +188 -176
  316. package/dist/expandable-container.js +43 -21
  317. package/dist/fading-scroll.js +1 -1
  318. package/dist/flow.glsl-DqEGRpl4.js +4 -0
  319. package/dist/forms.js +64 -62
  320. package/dist/fourier-field.js +1069 -178
  321. package/dist/fourier-math.js +1 -1
  322. package/dist/glass-panel.js +2 -2
  323. package/dist/glass-ui.css +1 -1
  324. package/dist/glass-ui.js +164 -119
  325. package/dist/goo-blob.js +175 -1230
  326. package/dist/goo-dot-matrix.d.ts +1 -0
  327. package/dist/goo-dot-matrix.js +811 -0
  328. package/dist/handmark.js +137 -94
  329. package/dist/header-ribbon.js +1 -1
  330. package/dist/hover-card.js +1 -1
  331. package/dist/hover-popover.js +1 -1
  332. package/dist/icon-chip.js +1 -1
  333. package/dist/icon-tooltip.js +1 -1
  334. package/dist/index.d.ts +5 -0
  335. package/dist/instrument-chassis.js +1 -1
  336. package/dist/keyboard.js +1 -1
  337. package/dist/label.js +1 -1
  338. package/dist/labeled-field.js +70 -60
  339. package/dist/metric-badge.js +1 -1
  340. package/dist/metric-cell.js +1 -1
  341. package/dist/metric-stack.js +12 -3
  342. package/dist/motion-core.js +59 -34
  343. package/dist/motion-curves.js +30 -14
  344. package/dist/motion.js +231 -96
  345. package/dist/notification.js +1 -1
  346. package/dist/number-field.js +1 -1
  347. package/dist/pager-dots.js +2 -91
  348. package/dist/paper-backdrop.js +1 -1
  349. package/dist/paper-grid.d.ts +1 -0
  350. package/dist/paper-grid.js +761 -0
  351. package/dist/paperGrid-CXCSMbZ1.js +191 -0
  352. package/dist/popover.js +1 -1
  353. package/dist/{presets-BW2b-fr1.js → presets-QvYgnFIZ.js} +14 -13
  354. package/dist/{procedural-color.glsl-CIFsJhwI.js → procedural-color.wgsl-C1Y5PkM6.js} +2 -2
  355. package/dist/progress.js +1 -1
  356. package/dist/pulse.js +2 -2
  357. package/dist/reactive.js +2 -2
  358. package/dist/{useCanvas2D-B8w_E3Rr.js → resolveCanvasColor-DsSJk06I.js} +16 -6
  359. package/dist/scrollReader-rc3Ns_NM.js +42 -0
  360. package/dist/scrolling-text.js +1 -1
  361. package/dist/search.js +162 -306
  362. package/dist/select.js +3 -3
  363. package/dist/selectable-chip.d.ts +1 -0
  364. package/dist/selectable-chip.js +48 -0
  365. package/dist/separator.js +1 -1
  366. package/dist/{sheet-tZMg0E0w.js → sheet-DUCIoOe0.js} +4 -4
  367. package/dist/sheet.js +1 -1
  368. package/dist/sidebar.js +216 -114
  369. package/dist/slider-CcICPe3u.js +149 -0
  370. package/dist/slider.js +1 -1
  371. package/dist/sortable-list.js +3 -3
  372. package/dist/spectrum-walk-cBNSx_zm.js +33 -0
  373. package/dist/springPresets-DfoQ6XRY.js +64 -0
  374. package/dist/stacked-icons.js +54 -39
  375. package/dist/styles/animations.css +13 -3
  376. package/dist/styles/cards.css +271 -2
  377. package/dist/styles/completion-seal.css +131 -0
  378. package/dist/styles/components.css +1 -4
  379. package/dist/styles/configurator.css +221 -1
  380. package/dist/styles/critical-partition.mjs +66 -11
  381. package/dist/styles/deferred.css +4 -0
  382. package/dist/styles/dock/adaptive-legibility.css +119 -0
  383. package/dist/styles/dock/cta-seat.css +87 -0
  384. package/dist/styles/dock/density.css +167 -6
  385. package/dist/styles/dock/fission-bridge.css +552 -0
  386. package/dist/styles/dock/layers.css +90 -78
  387. package/dist/styles/dock/morph-bridge.css +67 -18
  388. package/dist/styles/dock/morph.css +57 -118
  389. package/dist/styles/dock/overflow.css +12 -0
  390. package/dist/styles/dock/search.css +68 -0
  391. package/dist/styles/dock/shape.css +250 -0
  392. package/dist/styles/dock/shell.css +24 -8
  393. package/dist/styles/dock/stack-rail.css +352 -0
  394. package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
  395. package/dist/styles/dock-controls/icon-button.css +46 -0
  396. package/dist/styles/dock-controls/triggers.css +23 -1
  397. package/dist/styles/dock-controls.css +18 -0
  398. package/dist/styles/dock.css +27 -2
  399. package/dist/styles/drawer.css +166 -0
  400. package/dist/styles/glass/accent-tone.css +66 -0
  401. package/dist/styles/glass/control-surfaces.css +167 -0
  402. package/dist/styles/glass/glass-atom.css +244 -0
  403. package/dist/styles/glass/glass-capsule.css +143 -0
  404. package/dist/styles/glass/glass-chip.css +215 -0
  405. package/dist/styles/glass/ladder.css +67 -17
  406. package/dist/styles/glass/liquid-enter.css +252 -0
  407. package/dist/styles/glass/liquid-morph.css +850 -0
  408. package/dist/styles/glass/material.css +70 -1
  409. package/dist/styles/glass/reveal.css +22 -2
  410. package/dist/styles/glass/rim.css +31 -9
  411. package/dist/styles/glass/surfaces.css +81 -150
  412. package/dist/styles/glass.css +21 -0
  413. package/dist/styles/icon-chip.css +45 -0
  414. package/dist/styles/index.css +26 -0
  415. package/dist/styles/jubilance.css +65 -0
  416. package/dist/styles/motion/morph-field.css +229 -0
  417. package/dist/styles/paper.css +230 -14
  418. package/dist/styles/scroll-choreography.css +135 -78
  419. package/dist/styles/scroll-chrome.css +123 -0
  420. package/dist/styles/scroll-driven.css +38 -0
  421. package/dist/styles/segmented-tabs.css +110 -40
  422. package/dist/styles/select.css +151 -0
  423. package/dist/styles/theme/bridges.css +22 -0
  424. package/dist/styles/theme/radius.css +18 -1
  425. package/dist/styles/tokens/color-radius.css +14 -4
  426. package/dist/styles/tokens/dark-arm.css +94 -12
  427. package/dist/styles/tokens/glass-deep.css +33 -4
  428. package/dist/styles/tokens/glass-fx.css +122 -1
  429. package/dist/styles/tokens/glass.css +226 -34
  430. package/dist/styles/tokens/light-dark.css +3 -3
  431. package/dist/styles/tokens/offsets.css +27 -0
  432. package/dist/styles/tokens/property-regs.css +277 -0
  433. package/dist/styles/tokens/scale-paper.css +86 -30
  434. package/dist/styles/tokens/scheme-motion.css +106 -133
  435. package/dist/styles/tokens/scheme-spring.css +239 -0
  436. package/dist/styles/tokens/scroll-tokens.css +15 -15
  437. package/dist/styles/tokens/shadow.css +73 -13
  438. package/dist/styles/tokens/sizing-config.css +110 -0
  439. package/dist/styles/tokens/sizing.css +55 -104
  440. package/dist/styles/tokens.css +14 -2
  441. package/dist/styles/typography/semantic.css +18 -5
  442. package/dist/styles/utilities/a11y-overrides.css +20 -5
  443. package/dist/styles/utilities/base-misc.css +52 -0
  444. package/dist/styles/utilities/btn.css +84 -3
  445. package/dist/styles/utilities/components.css +31 -6
  446. package/dist/styles/utilities/metal.css +26 -0
  447. package/dist/switch.js +1 -1
  448. package/dist/tabs.js +199 -182
  449. package/dist/timeline.js +241 -206
  450. package/dist/toast.js +1 -1
  451. package/dist/toggle-chip.js +14 -41
  452. package/dist/toggle-group.js +1 -1
  453. package/dist/tooltip.js +1 -1
  454. package/dist/typewriter.js +2 -2
  455. package/dist/uniformBridgeWGPU-BCse1SHU.js +1268 -0
  456. package/dist/{useAnimatedNumber-BfUq2bUM.js → useAnimatedNumber-BntskVdQ.js} +1 -1
  457. package/dist/{useConfiguratorState-DNlOh6c8.js → useConfiguratorState-22BcULzF.js} +41 -38
  458. package/dist/useControlSize-DAZ062x7.js +9 -0
  459. package/dist/useDockCtaReceive-DX7RDb6_.js +88 -0
  460. package/dist/{useDragMorph-DgxnsVJz.js → useDragMorph-DGLSewwB.js} +4 -4
  461. package/dist/useDragVelocity-CjcfX3dA.js +57 -0
  462. package/dist/useFuzzySearch-0fTYOhS4.js +177 -0
  463. package/dist/useGooMorph-Cs13NgYL.js +104 -0
  464. package/dist/useGpuSubstrate-Ceet70xq.js +347 -0
  465. package/dist/useHaptic-CPz5BT9I.js +134 -0
  466. package/dist/{useLiquidFlex-mZPMiNXh.js → useLiquidFlex-Cc6PjVJD.js} +8 -3
  467. package/dist/useLiquidPress-CtOQ8Z0_.js +43 -0
  468. package/dist/useMorphField-ogBM7ubT.js +141 -0
  469. package/dist/usePointerVelocityField-BrkqZFhj.js +91 -0
  470. package/dist/useScrollChrome-JuImi1DM.js +258 -0
  471. package/dist/{useSpringMount-q1amq1SJ.js → useSpringMount-DFxtzmkR.js} +1 -1
  472. package/dist/useSpringPress-VM9RgVq3.js +36 -0
  473. package/dist/{useSurfaceAxis-g0NloYEF.js → useSurfaceAxis-Ci7Dnaw2.js} +1 -1
  474. package/dist/{useTouchGate-CBZTD4SD.js → useTouchGate-B1Lf9XqN.js} +1 -1
  475. package/dist/{vendor-CKmzio-i.js → vendor-B2qOlYY3.js} +24 -11
  476. package/dist/virtual.d.ts +1 -0
  477. package/dist/virtual.js +225 -0
  478. package/dist/watercolor-dot.js +107 -74
  479. package/dist/writeVelocityWeight-Bh83xZfs.js +19 -0
  480. package/package.json +140 -9
  481. package/src/styles/animations.css +13 -3
  482. package/src/styles/cards.css +271 -2
  483. package/src/styles/completion-seal.css +131 -0
  484. package/src/styles/configurator.css +221 -1
  485. package/src/styles/critical-partition.mjs +66 -11
  486. package/src/styles/dock/adaptive-legibility.css +119 -0
  487. package/src/styles/dock/cta-seat.css +87 -0
  488. package/src/styles/dock/density.css +167 -6
  489. package/src/styles/dock/fission-bridge.css +552 -0
  490. package/src/styles/dock/layers.css +90 -78
  491. package/src/styles/dock/morph-bridge.css +67 -18
  492. package/src/styles/dock/morph.css +57 -118
  493. package/src/styles/dock/overflow.css +12 -0
  494. package/src/styles/dock/search.css +68 -0
  495. package/src/styles/dock/shape.css +250 -0
  496. package/src/styles/dock/shell.css +24 -8
  497. package/src/styles/dock/stack-rail.css +352 -0
  498. package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
  499. package/src/styles/dock-controls/icon-button.css +46 -0
  500. package/src/styles/dock-controls/triggers.css +23 -1
  501. package/src/styles/dock-controls.css +18 -0
  502. package/src/styles/dock.css +27 -2
  503. package/src/styles/drawer.css +164 -0
  504. package/src/styles/glass/accent-tone.css +66 -0
  505. package/src/styles/glass/control-surfaces.css +167 -0
  506. package/src/styles/glass/glass-atom.css +244 -0
  507. package/src/styles/glass/glass-capsule.css +143 -0
  508. package/src/styles/glass/glass-chip.css +215 -0
  509. package/src/styles/glass/ladder.css +67 -17
  510. package/src/styles/glass/liquid-enter.css +252 -0
  511. package/src/styles/glass/liquid-morph.css +850 -0
  512. package/src/styles/glass/material.css +70 -1
  513. package/src/styles/glass/reveal.css +22 -2
  514. package/src/styles/glass/rim.css +31 -9
  515. package/src/styles/glass/surfaces.css +81 -150
  516. package/src/styles/glass.css +21 -0
  517. package/src/styles/icon-chip.css +45 -0
  518. package/src/styles/index.css +26 -0
  519. package/src/styles/jubilance.css +65 -0
  520. package/src/styles/motion/morph-field.css +229 -0
  521. package/src/styles/paper.css +230 -14
  522. package/src/styles/scroll-choreography.css +135 -78
  523. package/src/styles/scroll-chrome.css +123 -0
  524. package/src/styles/scroll-driven.css +38 -0
  525. package/src/styles/segmented-tabs.css +110 -36
  526. package/src/styles/select.css +151 -0
  527. package/src/styles/theme/bridges.css +22 -0
  528. package/src/styles/theme/radius.css +18 -1
  529. package/src/styles/tokens/color-radius.css +14 -4
  530. package/src/styles/tokens/dark-arm.css +94 -12
  531. package/src/styles/tokens/glass-deep.css +33 -4
  532. package/src/styles/tokens/glass-fx.css +122 -1
  533. package/src/styles/tokens/glass.css +226 -34
  534. package/src/styles/tokens/light-dark.css +3 -3
  535. package/src/styles/tokens/offsets.css +27 -0
  536. package/src/styles/tokens/property-regs.css +277 -0
  537. package/src/styles/tokens/scale-paper.css +86 -30
  538. package/src/styles/tokens/scheme-motion.css +106 -133
  539. package/src/styles/tokens/scheme-spring.css +239 -0
  540. package/src/styles/tokens/scroll-tokens.css +15 -15
  541. package/src/styles/tokens/shadow.css +73 -13
  542. package/src/styles/tokens/sizing-config.css +110 -0
  543. package/src/styles/tokens/sizing.css +55 -104
  544. package/src/styles/tokens.css +14 -2
  545. package/src/styles/typography/semantic.css +18 -5
  546. package/src/styles/utilities/a11y-overrides.css +20 -5
  547. package/src/styles/utilities/base-misc.css +52 -0
  548. package/src/styles/utilities/btn.css +84 -3
  549. package/src/styles/utilities/components.css +31 -6
  550. package/src/styles/utilities/metal.css +26 -0
  551. package/dist/ContextMenuContent-uWnVxDab.js +0 -85
  552. package/dist/DialogContent-DcKK8k9i.js +0 -103
  553. package/dist/DialogFooter-BZNX5aVr.js +0 -165
  554. package/dist/HoverCardContent-b2uaAMRR.js +0 -83
  555. package/dist/Input-h9v5LeXf.js +0 -55
  556. package/dist/NumberFieldContent-Cq7EzX-U.js +0 -138
  557. package/dist/PaperBackdrop-Vf3tlpvd.js +0 -31
  558. package/dist/SelectScrollDownButton-CrA8F0iV.js +0 -252
  559. package/dist/Separator-pKF0oA4M.js +0 -37
  560. package/dist/Switch-CwYNf8bo.js +0 -47
  561. package/dist/TooltipProvider-rzvnXz60.js +0 -104
  562. package/dist/badge-D9XWW4GT.js +0 -53
  563. package/dist/button-DYCUa-tH.js +0 -126
  564. package/dist/color-DweYl7pE.js +0 -86
  565. package/dist/components/custom/concentric/composables/ringField.d.ts +0 -44
  566. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
  567. package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
  568. package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
  569. package/dist/createCanvasLifecycle-CHD5XrDW.js +0 -82
  570. package/dist/dockContext-BNfyPLe9.js +0 -17
  571. package/dist/procedural-color.wgsl-CToRHugY.js +0 -224
  572. package/dist/resolveCanvasColor-CUyHr5Uu.js +0 -11
  573. package/dist/slider-DVb4HXU-.js +0 -142
  574. package/dist/springPresets-CFQGQfdl.js +0 -40
  575. package/dist/styles/dock/rail-extend.css +0 -397
  576. package/dist/useLiquidPress-kfb4KX79.js +0 -39
  577. package/dist/usePointerVelocityField-JbRd5CrM.js +0 -137
  578. package/dist/useRAFLoop-UYa4zoiN.js +0 -109
  579. package/dist/useSpringPress-BsqPr7FJ.js +0 -34
  580. package/src/styles/dock/rail-extend.css +0 -397
  581. /package/dist/{CollapsibleContent-68dEXIAl.js → CollapsibleContent-D7UNsXQr.js} +0 -0
  582. /package/dist/{InstrumentChassis-Bx0F_q5g.js → InstrumentChassis-UUJX0-mW.js} +0 -0
  583. /package/dist/{Label-C2ejNWeC.js → Label-B_HPqi_q.js} +0 -0
  584. /package/dist/{ModalOverlay-D1VrWyoi.js → ModalOverlay-DfAf7o15.js} +0 -0
  585. /package/dist/{SelectGroup-DwwjicPY.js → SelectGroup-Dcczq44n.js} +0 -0
  586. /package/dist/{_plugin-vue_export-helper-C1je1s0u.js → _plugin-vue_export-helper-gLzyemvl.js} +0 -0
  587. /package/dist/{compile-CQEFRTmx.js → compile-INR_tPk_.js} +0 -0
  588. /package/dist/{constants-BPOqYJAm.js → constants-BWj7DkMn.js} +0 -0
  589. /package/dist/{createContext-CpBNTRMI.js → createContext-Cd23P9j0.js} +0 -0
  590. /package/dist/{math-BINYmg5z.js → math-5RcIgCB4.js} +0 -0
  591. /package/dist/{menuItemVariants-D8VNHq22.js → menuItemVariants-DAXquKja.js} +0 -0
  592. /package/dist/{prng-Za0Rmgag.js → prng-B5tIXTtj.js} +0 -0
  593. /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-B4HO9LXG.js} +0 -0
  594. /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-DO8Vl4gs.js} +0 -0
  595. /package/dist/{useInterval-CvK1mL92.js → useInterval-BVUI-sez.js} +0 -0
  596. /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BEut54Tk.js} +0 -0
  597. /package/dist/{useResizeObserver-Bpoi7tRE.js → useResizeObserver-DdEn3v2f.js} +0 -0
  598. /package/dist/{useResolveTokenColor-vAylyR0x.js → useResolveTokenColor-ChOnCckA.js} +0 -0
  599. /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-A0M6qRl7.js} +0 -0
  600. /package/dist/{useSortable-DHjtZSEd.js → useSortable-DQV_UNDw.js} +0 -0
  601. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-Bma3UlKA.js} +0 -0
  602. /package/dist/{useTimer-BHJOKr35.js → useTimer-BBLGPXR8.js} +0 -0
  603. /package/dist/{useUserInvalidAria-y5namzeE.js → useUserInvalidAria-EmmwWPOl.js} +0 -0
  604. /package/dist/{useViewportReady-anbac3m6.js → useViewportReady-C9pYnn7K.js} +0 -0
  605. /package/dist/{vReveal-Czsb7zQC.js → vReveal-CT1KtwZA.js} +0 -0
  606. /package/dist/{vSpecular-CQFmLNzA.js → vSpecular-EX7loENl.js} +0 -0
@@ -56,6 +56,44 @@
56
56
  initial-value: 0%;
57
57
  }
58
58
 
59
+ /* BD.W-GOO-CAROUSEL-DECK — the ONE goo-morph travel scalar (the de-dup of the pager
60
+ WORM's `--worm-t`). The morph silhouette (dot worm / carousel slide plate / deck
61
+ slide plate) travels between MEASURED slot centers driven by a continuous page-space
62
+ float the host `transition`s on a `--{prefix}-flow` `linear()` curve. A bare
63
+ unregistered `var()` would SNAP `--goo-t` (no spring glide); the typed `<number>`
64
+ registration lets the engine interpolate the scalar so the silhouette's two-edge
65
+ geometry (useGooMorph.ts) springs past then settles. `inherits: true` — the host
66
+ transitions it, the rAF projection reads it off the host. `initial-value: 0` is the
67
+ resting slot (a non-supporting engine snaps onto the active slot, the floor). ONE
68
+ shared registration: the worm, the carousel plate, and the deck plate all read it. */
69
+ @property --goo-t {
70
+ syntax: "<number>";
71
+ inherits: true;
72
+ initial-value: 0;
73
+ }
74
+
75
+ /* BD.W-TABS-LIQUID — the area-inflation scalar (the 5-beat blob's grow→overshoot
76
+ →shrink envelope) + the one-shot commit accent-flood progress. BOTH are driven
77
+ IMPERATIVELY: the 2nd `useLiquidFlex` channel in `useTabIndicator.ts` writes
78
+ `--tab-blob` every frame (it is NOT added to a CSS `transition` list — the
79
+ composed `scale` write the indicator already transitions carries the glide). The
80
+ `@property` registration exists ONLY so the discrete release-frame write
81
+ (`--tab-blob` snapping back to 1 at arrival) interpolates instead of snap-
82
+ flickering — the SAME role the `--stretch`/`--glass-accent` registered-scalar
83
+ precedent serves. `inherits: false` — each indicator owns its own blob (a blobbed
84
+ parent must not push inflation onto a child). `initial-value: 1`/`0` are the safe
85
+ rest (a non-supporting engine slides with no inflation/flood, never broken). */
86
+ @property --tab-blob {
87
+ syntax: "<number>";
88
+ inherits: false;
89
+ initial-value: 1;
90
+ }
91
+ @property --tab-flood-t {
92
+ syntax: "<number>";
93
+ inherits: false;
94
+ initial-value: 0;
95
+ }
96
+
59
97
  @property --phase-tint-amount {
60
98
  syntax: "<percentage>";
61
99
  inherits: true;
@@ -119,6 +157,91 @@
119
157
  initial-value: 0deg;
120
158
  }
121
159
 
160
+ /* BD.W-MOTION-WEIGHT — the LIVE velocity channel. `useLiquidFlex` writes this
161
+ per-frame off the SAME saturating velocity term it already computes
162
+ (`tanh(|ṫ|·k) ∈ [0,1]`); the consumer's `writeVelocityWeight` helper folds it
163
+ into a transient `--motion-weight: calc(0.618 + 0.382 * var(--flex-vel))` boost
164
+ so a driver in active fast motion deepens its own squish/punch/shadow-travel and
165
+ self-extinguishes back to rest as it settles ("elements morph MORE the faster
166
+ they move"). `inherits: false` is LOAD-BEARING (the C2·R1 subtree-storm bite): a
167
+ per-frame write invalidates exactly ONE element, never a subtree — an inheriting
168
+ velocity channel would re-paint every descendant on every frame. `initial-value:
169
+ 0` is the still rest (no boost when unwired). */
170
+ @property --flex-vel {
171
+ syntax: "<number>";
172
+ inherits: false;
173
+ initial-value: 0;
174
+ }
175
+
176
+ /* BD.W-CARTOON-CASTER — the cartoon cel-cast drive props (H1: proven-live-DEAD
177
+ without these — the calc chain falls back to initials → no punch). The cast
178
+ travel/spread READ `--motion-weight × --cartoon-press-t`, so the inert
179
+ `.cartoon-cast` child plate moves on the compositor as the body presses.
180
+ • --cartoon-press-t (<number>, inherits:true) — the 0→1 press ramp the existing
181
+ `useLiquidPress` writes (aliased onto `--card-press-t` on `.cartoon-surface`);
182
+ inherits so the inert child reads its host's press scalar.
183
+ • --cast-travel (<length>, inherits:false) / --cast-spread (<number>,
184
+ inherits:false) — the per-caster derived offset + scale; non-inheriting (each
185
+ caster owns its own, never bleeds onto a nested cartoon child).
186
+ • --cartoon-cast-dx/dy (<length>, inherits:true) — the OPT-IN drag-track delta
187
+ (0 at rest; a future `useCartoonCast` DOM bridge writes them). Inherits so the
188
+ host can set them for the child. Typed so the gap INTERPOLATES on the
189
+ compositor; a non-supporting engine snaps rather than eases (the gap still
190
+ reads). */
191
+ @property --cartoon-press-t {
192
+ syntax: "<number>";
193
+ inherits: true;
194
+ initial-value: 0;
195
+ }
196
+
197
+ @property --cast-travel {
198
+ syntax: "<length>";
199
+ inherits: false;
200
+ initial-value: 0px;
201
+ }
202
+
203
+ @property --cast-spread {
204
+ syntax: "<number>";
205
+ inherits: false;
206
+ initial-value: 1;
207
+ }
208
+
209
+ @property --cartoon-cast-dx {
210
+ syntax: "<length>";
211
+ inherits: true;
212
+ initial-value: 0px;
213
+ }
214
+
215
+ @property --cartoon-cast-dy {
216
+ syntax: "<length>";
217
+ inherits: true;
218
+ initial-value: 0px;
219
+ }
220
+
221
+ /* BD.W-PAGE-FIELD — the warm colorful FIELD drive props (paper.css `.paper-field`).
222
+ The chassis writes ONE per-route hue (`--field-h-raw`) on the `[data-paper-field]`
223
+ wrapper; `.paper-field` CLAMPS it warm IN THE CSS (`clamp(25, raw, 95)`) so an
224
+ inline `--field-h-raw:210` paint-CANNOT go teal — the warm-bound is a paint-layer
225
+ invariant, not a TS-only convention.
226
+ • --field-h-raw (<number>, inherits:true) — the route's raw hue request. Inherits so
227
+ the wrapper sets it once and every `.paper-field` descendant resolves it. Initial 62
228
+ (warm amber — the canonical cream identity).
229
+ • --field-intensity (<number>, inherits:true) — the ground/hero rung scalar (0.85
230
+ ground, 1.0 vivid hero, 0 under prefers-reduced-transparency → the warm stops drop
231
+ and the decoupled --neutral-0 floor shows). Inherits so a hero surface can lift it
232
+ on a sub-tree. */
233
+ @property --field-h-raw {
234
+ syntax: "<number>";
235
+ inherits: true;
236
+ initial-value: 62;
237
+ }
238
+
239
+ @property --field-intensity {
240
+ syntax: "<number>";
241
+ inherits: true;
242
+ initial-value: 0.85;
243
+ }
244
+
122
245
  /* BB.W-LENSING `--glass-refract` axis — RETIRED (DDR-LENS-BAKE, glass-refract.css).
123
246
  The axis drove the `feDisplacementMap` `scale` by splicing `var(--glass-refract)`
124
247
  between a head/tail `url()` pair. That construction never parsed as a
@@ -171,6 +294,19 @@
171
294
  initial-value: 0%;
172
295
  }
173
296
 
297
+ /* BC.W-GLASS-GLOW-FIX (Atlas A-8) — the Pulse aura breath SCALE. The `ambient-pulse`
298
+ keyframe runs on `.pulse-aura` and writes this property; the `.pulse-aura::before`
299
+ child (the radial paint) reads it via `transform: scale(var(--pulse-aura-breath-
300
+ scale))`. Typed `<number>` so the keyframe INTERPOLATES it per-frame (a bare
301
+ unregistered var would snap min↔max). INHERITS so the pseudo-element picks it up
302
+ from its originating `.pulse-aura` (the aura has no content descendants — it is
303
+ `aria-hidden` + empty — so the inherit only reaches the `::before` halo). */
304
+ @property --pulse-aura-breath-scale {
305
+ syntax: "<number>";
306
+ inherits: true;
307
+ initial-value: 1;
308
+ }
309
+
174
310
  /* AX.W54 — the GLASS-FIRST single knob. `--glass-level` is the ONE clarity
175
311
  scalar threaded through BOTH glass ladders at their single sites (the
176
312
  `--glass-bg-*` opacity recipe + the `--glass-blur-*` radii). It is a typed,
@@ -194,6 +330,26 @@
194
330
  initial-value: 1;
195
331
  }
196
332
 
333
+ /* BC.W-ADAPTIVE-RECONCILE — the OBSERVER's measured backdrop relative-luminance, now
334
+ LOAD-BEARING. `useGlassBackdropLuminance` WRITES `--glass-backdrop-luma` (0..1) on
335
+ the glass target; the content/overlay/dock `:where()` rules READ it on the RHS of the
336
+ `--glass-tint-strength` clamp (glass/ladder.css, dock/morph.css) — the continuous
337
+ driver that lifts the calm 4% floor toward the ≤24% AA ceiling as the measured
338
+ backdrop brightens past the knee (the iOS-27 dynamic-range shift; apple-ios27.md §1.5).
339
+ Registered as a typed INHERITING `<number>` (the `--glass-level`/`--progress-crescendo`
340
+ precedent) so a bare `var()` INTERPOLATES smoothly between sample frames instead of
341
+ snapping (a per-sample re-paint would flicker the plate). `inherits: true` so the
342
+ observer's write on the target reaches every descendant glass surface that reads the
343
+ clamp. `initial-value: 0` is the calm-dark rest: with luma 0 the clamp's luma-ramp is
344
+ `max(0, …) = 0`, so an unwired surface resolves EXACTLY the floor (the zero-delta calm
345
+ identity GLASS-IDENTITY pins). This replaces the empty `--glass-backdrop-luma: ;`
346
+ placeholder declaration (the dead-knob's write-only stub) — the loop now READS. */
347
+ @property --glass-backdrop-luma {
348
+ syntax: "<number>";
349
+ inherits: true;
350
+ initial-value: 0;
351
+ }
352
+
197
353
  /* BB.W-DEEP-GLASS — the OPT-IN deep-glass DEPTH scalar. `--glass-depth` is the
198
354
  `--glass-level` TWIN for the deep tier: a typed INHERITING <number> so a host
199
355
  sets it on any ancestor to retune the deep tier's depth (the cascading-scalar
@@ -230,6 +386,27 @@
230
386
  initial-value: 1;
231
387
  }
232
388
 
389
+ /* BD.W-MOTION-WEIGHT — the GOVERNING motion scalar (the iOS-27 register-triangle
390
+ centroid). ONE number co-scales the squash depth, the overshoot share, the
391
+ anticipation pull-back, and the cartoon-shadow travel so they read as ONE
392
+ proportioned deformation, never four unrelated tics. Registered with the EXACT
393
+ `--ui-scale`/`--glass-level` typed cascading-scalar idiom — `inherits: true` is
394
+ the whole mechanism: a DRIVER ancestor (`.dock`, a celebrating card, a sheet)
395
+ locally pushes `--motion-weight: 1`; an OBSERVER subtree (`<CarouselContent>`
396
+ auto-advance, `[data-reorder]` lists) pins `--motion-weight: 0` — everything
397
+ below reads the local value with zero prop-drilling. `initial-value: 0.618`
398
+ (1/φ, design.md §L6 golden-proportion law): not 0 (dead), not 1 (manic) —
399
+ present, alive, never cartoonish-by-default. The `:root` rest decl + the PRM
400
+ carve live in scheme-motion.css §2 (the Feature-token-home, beside the
401
+ `--spring-*` clocks it co-governs). A non-supporting engine reads the safe
402
+ 0.618 fallback (the squish still reads, just non-animatable — the same fail-safe
403
+ `--ui-scale` documents). */
404
+ @property --motion-weight {
405
+ syntax: "<number>";
406
+ inherits: true;
407
+ initial-value: 0.618;
408
+ }
409
+
233
410
  /* ── The specular-intensity magnitude cohort (AX.W09) ──────────────────────
234
411
  The catch-light alpha multiplier at each interaction state, as a SINGLE
235
412
  overridable token cohort (was three buried literals across glass.css —
@@ -287,3 +464,103 @@
287
464
  inherits: true;
288
465
  initial-value: 0;
289
466
  }
467
+
468
+ /* BC.W-AX-COMPLETION-SEAL — the 4 motion drives of the hero-scale earned-GOLD
469
+ completion seal (completion-seal.css consumes them). Registered typed so the
470
+ one-shot draw INTERPOLATES (a bare unregistered var() snaps; the §18 typed-property
471
+ idiom lets the engine animate the stroke-reveal / settle / glint). The seal is the
472
+ visual seal of the W-PHASE-PALETTE completion event — its ink reads the earned-gold
473
+ register; its glint composes the W-AX-METAL-GLOW catch-light. One-shot, PRM-gated,
474
+ compositor-only.
475
+
476
+ • --seal-draw (<percentage>) — the stroke-reveal extent (the stroke-dashoffset wipe
477
+ drive: 0% undrawn → 100% fully drawn). `inherits: false` (each seal owns its own
478
+ draw, the per-surface ownership of the specular/border-progress cohort — a sealed
479
+ parent must not push its draw onto a child seal). `initial-value: 100%` is the
480
+ SAFE fully-drawn resting seal: on a non-supporting engine (no @property) the seal
481
+ paints fully drawn, NEVER a blank — the editorial draw-on degrades to the finished
482
+ mark, never to nothing.
483
+
484
+ • --seal-scale (<number>) — the settle scale (the draw-on lands with a small spring
485
+ overshoot on the seal's own --spring-snappy/--spring-bouncy clock — the SPATIAL
486
+ leg, W-MOTION-CANON P2 enter-bouncy). `inherits: false` (per-seal). `initial-value:
487
+ 1` is the resting settled scale.
488
+
489
+ • --seal-glint (<number>) — the gold catch-light intensity (the one-pass glint that
490
+ fires once on settle, reading --metal-glow-opacity from W-AX-METAL-GLOW — a glint,
491
+ not a loop). `inherits: false` (per-seal). `initial-value: 0` so an unwired seal is
492
+ un-glinting at rest (the calm floor; the glint wakes only on the draw).
493
+
494
+ • --seal-ink (<color>) — the seal stroke color. `inherits: true` (the cascading-scalar
495
+ idiom — a consumer scope re-inks the seal in lockstep with the completion register).
496
+ The @property `initial-value` MUST be a CONCRETE var-free <color> (the typed-property
497
+ rule: a registration fallback cannot be a var()), so it is the LITERAL light-gold
498
+ `oklch(0.751 0.147 84.2)` (scale-paper.css's `--gold` value) — the engine fallback
499
+ when no cascaded value exists. The RUNTIME cascade default is the TOKEN form the
500
+ recipe sets: `--seal-ink: var(--phase-complete-color, var(--color-gold))` — the
501
+ EARNED-gold completion register (Q2: gold is earned at completion, NEVER the running
502
+ phase spectrum). */
503
+ @property --seal-draw {
504
+ syntax: "<percentage>";
505
+ inherits: false;
506
+ initial-value: 100%;
507
+ }
508
+
509
+ @property --seal-scale {
510
+ syntax: "<number>";
511
+ inherits: false;
512
+ initial-value: 1;
513
+ }
514
+
515
+ @property --seal-glint {
516
+ syntax: "<number>";
517
+ inherits: false;
518
+ initial-value: 0;
519
+ }
520
+
521
+ @property --seal-ink {
522
+ syntax: "<color>";
523
+ inherits: true;
524
+ initial-value: oklch(0.751 0.147 84.2);
525
+ }
526
+
527
+ /* BC.W-SCROLL-TRIGGER — the native scroll-ramp custom. The continuous 0..1 scroll
528
+ progress the `useScrollTrigger` reader exposes rides this registered custom on a
529
+ `supportsScrollTimeline()` engine: a `.scroll-progress`-style recipe writes it via
530
+ `animation-timeline: scroll(self)` so a consumer's CSS ramp (the BC.W-SCROLL-CHROME
531
+ shrink/opacity) reads `--scroll-t` with ZERO JS (the dual-path single-writer — the JS
532
+ `progress` ref attaches NOTHING on a supporting engine). `inherits: true` (the
533
+ cascading-scalar idiom — a scroll-driven ancestor exposes the ramp to descendant
534
+ chrome, the `--ui-scale`/`--glass-level` pattern), distinct from the per-element
535
+ non-inheriting specular/progress cohort. `initial-value: 0` is the safe resting ramp
536
+ (the unregistered fallback paints it; on a non-supporting engine the JS reader writes
537
+ `progress.value` and the consumer reads the ref, not this custom). The typed
538
+ `<number>` lets the engine interpolate the ramp rather than the textual rep (a bare
539
+ unregistered var() snaps — the `--border-progress-fill`/`--dock-morph-t` precedent). */
540
+ @property --scroll-t {
541
+ syntax: "<number>";
542
+ inherits: true;
543
+ initial-value: 0;
544
+ }
545
+
546
+ /* BC.W-SCROLL-CHROME — the floating-chrome COLLAPSE fraction. `--chrome-collapse-t`
547
+ is the 0..1 collapse scalar `useScrollChrome` ramps off the scroll reader's
548
+ direction + range (0 = fully expanded, 1 = fully collapsed). The `.scroll-chrome`
549
+ recipe (scroll-chrome.css) reads it for the COMPOSITOR shrink/quiet ramp:
550
+ `transform: scale()/translateY()` (the SPATIAL leg), `opacity` (bounded above a
551
+ never-invisible floor — the NN/g pale-fade trap forbidden), and the shadow LIFT as
552
+ content scrolls under (Apple "as text scrolls underneath, shadows become more
553
+ prominent"). It NEVER drives the resting `backdrop-filter` blur (the
554
+ W-DOCK-SHRINK-BLUR fence — the shrunken bar is crisp glass, not a blurry mess).
555
+ Registered typed so a bare `var()` INTERPOLATES the ramp rather than snapping (the
556
+ `--scroll-t`/`--dock-morph-t` precedent); `inherits: true` (the cascading-scalar
557
+ idiom — a scroll-driven ancestor exposes the collapse to descendant chrome, the
558
+ `--scroll-t`/`--glass-level` pattern, distinct from the per-element non-inheriting
559
+ specular cohort). `initial-value: 0` is the PERSISTENT rest (the iOS-27 default — a
560
+ bare chrome does NOT collapse; the unregistered fallback paints it too, so the
561
+ recipe is byte-identical to the expanded chrome when unwired). */
562
+ @property --chrome-collapse-t {
563
+ syntax: "<number>";
564
+ inherits: true;
565
+ initial-value: 0;
566
+ }
@@ -44,13 +44,30 @@
44
44
  (segmented/pill slider OR the underline rule) STRETCHES along its travel
45
45
  axis as it glides between tabs, then settles to fit — the Material 3
46
46
  ELASTIC / Apple Liquid-Glass "controls insist on animating themselves"
47
- register, kept RESTRAINED. The deform is volume-preserving (stretch X,
48
- compress Y in lockstep: `scale: var(--stretch) calc(1 / var(--stretch))`)
49
- so it reads as an elastic warp, never a size pump. The cap holds the peak
50
- LOW (1.08 ≈ +8%) — iOS 26.2 dialed motion DOWN; a high-frequency control
51
- wants a whisper of squish, not a bounce. A consumer dials the elasticity
52
- (or to 1 for none) without touching source. */
53
- --tab-indicator-max-stretch: 1.08;
47
+ register. The deform is volume-preserving (stretch X, compress Y in lockstep:
48
+ `scale: var(--stretch) calc(1 / var(--stretch))`) so it reads as an elastic
49
+ warp, never a size pump. A consumer dials the elasticity (or to 1 for none)
50
+ without touching source.
51
+ The click travel-squish AND the liquid-tab pull-morph read this ONE cap (in
52
+ lockstep with the no-token floor DEFAULT_INDICATOR_MAX_STRETCH, the SOLE cap
53
+ source — constant + token never fork); a FAST pull visibly swells the pill so
54
+ the gel-squish READS as liquid — still capped LOW (the anti-taffy-pull bar;
55
+ the pill swells, never taffy-pulls).
56
+ BD.W-TABS-LIQUID — re-tuned 1.18 → 1.11. The `--tab-blob` area-inflation
57
+ channel now carries the "grow" (the 5-beat overshoot), so the per-axis stretch
58
+ drops: the FENCE is the COMPOSED visible bbox area `blob × stretch` ≤ ~1.14,
59
+ NOT the bare per-axis scalar. At blob ~1.045 (peak) × stretch ~1.11 (far jump)
60
+ the composed long-axis peak lands ≤ ~1.16 and the AREA (blob² since the squish
61
+ is volume-preserving) stays ≤ ~1.14 — lively, not taffy. */
62
+ --tab-indicator-max-stretch: 1.11;
63
+
64
+ /* BD.W-TABS-LIQUID — the area-inflation cap (the 5-beat blob's overshoot peak).
65
+ The 2nd `useLiquidFlex` channel drives `--tab-blob` toward this on the
66
+ grow-overshoot beat, then de-inflates to 1 at arrival (shrink-to-fit). Kept
67
+ LOW (~1.045) so the COMPOSED bbox area (blob × stretch, the volume-preserving
68
+ squish makes the area ≈ blob²) clears the ≤ ~1.14 anti-taffy fence. A consumer
69
+ dials it (or to 1 for no inflation) without touching source. */
70
+ --tab-indicator-blob-max: 1.045;
54
71
  /* BA.W-TABS — the indicator's OWN travel clock, re-pointed off the generic
55
72
  `--duration-normal` (0.3s, which dragged a ~190ms sub-pixel undershoot tail
56
73
  past the ~100ms 90%-travel point — the R10-2 "too slow" read) onto the
@@ -81,6 +98,26 @@
81
98
  --invalid-ring: 0 0 0 var(--focus-ring-width)
82
99
  color-mix(in srgb, var(--destructive) var(--invalid-ring-tint), transparent);
83
100
 
101
+ /* BC.W-RADIO-FIX — the selection-control STATE register (the `--focus-ring-shadow`
102
+ / `--invalid-ring` precedent: one named register, read everywhere — never a
103
+ per-control magic literal). The checks family (Checkbox + RadioGroupItem) reads
104
+ these TWO tokens so a re-tint is ONE edit, library-wide.
105
+
106
+ • `--control-ring` — the UNCHECKED outline. Post-BC.W-BLACK-BAR the general glass
107
+ rim is ≤4% warm-ink (`--glass-border-resting`), which reads as a near-invisible
108
+ hairline on a 16px circle — too faint to tell a rest radio from its siblings. So
109
+ the selection atoms are the NAMED exception (recorded in BC.W-BLACK-BAR's fences):
110
+ a slightly-stronger ~12% warm-ink outline that reads as a DEFINED circle at 16px
111
+ without re-introducing the dark `--primary` hairline. Warm-ink-derived (no gray,
112
+ BA.W-NO-GRAY).
113
+ • `--control-checked-bg` — the SELECTED glass-tinted fill. The recipe is minted
114
+ ONCE here (the anti-paste bite: a second inline `color-mix(... --primary 88% ...)`
115
+ literal on a checks atom reds — the recipe IS the token). Mirrors the
116
+ glass-`--primary` over the floating tier the Checkbox already speaks, so the ring
117
+ goes outline → filled glass disc (a real material step), warm-not-saturated. */
118
+ --control-ring: color-mix(in srgb, var(--foreground) 12%, transparent);
119
+ --control-checked-bg: color-mix(in srgb, var(--primary) 88%, var(--glass-bg-floating));
120
+
84
121
  /* ═══════════════════════════════════════════════
85
122
  §12 PAPER TEXTURES
86
123
  ═══════════════════════════════════════════════ */
@@ -94,29 +131,49 @@
94
131
  --paper-clean-texture: url("data:image/svg+xml,%3Csvg width='200' height='200' viewBox='0 0 200 200' 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%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
95
132
  --paper-aged-texture: url("data:image/svg+xml,%3Csvg width='200' height='200' viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='5' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
96
133
 
97
- /* BB.W-PAPER-GRID-TEXTURE — the GEOMETRIC half of the paper-cascade, the
98
- peer of the organic turbulence above. Where `--paper-*-texture` are
99
- feTurbulence grain fields, this is a two-frequency engineering-paper
100
- grid: a 32px MINOR cell + a 128px MAJOR rule (the 4×-major blueprint
101
- vocabulary the demo `.story-bg-grid` speaks, re-expressed as a library
102
- token so a document-register card can opt its INTERIOR ground into the
103
- line-field, not only the page margin). Unlike the organic SVG textures
104
- (a baked-at-parse `opacity` URI), the grid is a STATIC `background-image`
105
- gradient-STACK — a one-time compositor-cached paint, NEVER a per-frame
106
- repaint. The line INK reads a `color-mix(… var(--foreground) N%, …)` so
107
- it composes against the warm ink identity and re-tints with `--foreground`
108
- in lockstep — never a hardcoded `hsl()` (the no-gray / token-first
109
- floor). The ambient through-card strength is the ONE knob
110
- `--paper-grid-opacity` (~0.08, the ask's "felt THROUGH the card ~0.08"):
111
- the MINOR line ink scales off it directly and the MAJOR rule rides
112
- `* 1.6` (the demo's 7%→12% engineering-paper weight step), so a consumer
113
- retunes the whole grid from the single strength knob. (The strength lives
114
- in the ink alpha, not a layer `opacity`, because the utility paints the
115
- grid on the card's HOST `background-image` to avoid the two-pseudo-budget
116
- contention with the grain `::after` / specular `::before` — see
117
- cards.css.) */
134
+ /* BC.W-GRID-SIMPLE — the ONE engineering-graph-paper rhythm source. The
135
+ keyframes.js `EditorShell` magnitudes, re-expressed as `--grid-*` tokens:
136
+ a fine 1rem cell + a bolder 5rem major rule (the 5× engineering-graph
137
+ rhythm), each line a hairline-crisp single device-pixel. The pitch is
138
+ REM-RELATIVE — 1rem (16px at the default root) and 5rem (80px) divide
139
+ cleanly at DPR 1/2/3, so every line lands on a whole device-pixel column/
140
+ row (the anti-blur rule; the prior 28px/32px integer pitch landed on
141
+ sub-pixel boundaries at fractional-DPR zoom and the anti-aliaser softened
142
+ the 1px lines). The fine 3% is the user's "less busy substrate" — DELIBERATELY
143
+ BELOW the 10% legibility floor — and the major 11% is held STRICTLY ABOVE it
144
+ (the kf weight step). The line INK is a `color-mix(… var(--foreground) N%, …)`
145
+ so it re-tints with the theme by construction (warm-ink on light, lifting
146
+ off near-black on dark) — NO parallel `--grid-*-dark` family (the
147
+ `--foreground` flip re-resolves the mix; the cards.css dark-arm precedent).
148
+ A consumer dials it LARGER (`--grid-pitch: 1.25rem` / `--grid-major: 6.25rem`)
149
+ or quieter (the `--grid-line`/`--grid-line-major` strength knobs) at `:root`
150
+ — the token-first axis. This is the SINGLE rhythm source: the demo full-bleed
151
+ page grid (`.grid-bg`, story-hero.css) AND the library card-interior register
152
+ (`.paper-grid`, cards.css) both read it (the two-parallel-28px/32px-systems
153
+ fix). The LIQUID full-bleed sibling (`<PaperGrid>`, BC.W-VIZ-PAPERGRID)
154
+ re-uses the SAME rhythm — one pitch, two registers (static page-bg vs liquid). */
155
+ --grid-pitch: 1rem;
156
+ --grid-major: 5rem;
157
+ --grid-line: color-mix(in srgb, var(--foreground) 3%, transparent);
158
+ --grid-line-major: color-mix(in srgb, var(--foreground) 11%, transparent);
159
+
160
+ /* The library card-interior GEOMETRIC register (`.paper-grid`, cards.css) —
161
+ the document-register card's INTERIOR ground, felt THROUGH the glass tint.
162
+ It UNIFIES its pitch onto the shared `--grid-pitch` (the prior 32px literal
163
+ retired — ONE rhythm source) and keeps its OWN ambient through-card strength
164
+ register: the `--paper-grid-opacity` single knob (~0.08, the ask's "felt
165
+ THROUGH the card ~0.08"). DISTINCT from the page-bg 3%/11% tier above — a
166
+ card interior reads quieter than a full-bleed page wash — but the PITCH is
167
+ shared. The ink stays a `color-mix(… var(--foreground) N%, …)` (re-tints with
168
+ --foreground in lockstep, never a hardcoded literal — the no-gray floor); the
169
+ MAJOR rule rides `* 1.6` (the 0.08→0.128 weight step). The strength lives in
170
+ the ink alpha, not a layer `opacity`, because `.paper-grid` paints the grid on
171
+ the card's HOST `background-image` to avoid two-pseudo-budget contention with
172
+ the grain `::after` / specular `::before` (see cards.css). A STATIC raster —
173
+ gradient-stack `background-image`, one compositor-cached paint, never a
174
+ per-frame repaint. */
118
175
  --paper-grid-opacity: 0.08;
119
- --paper-grid-texture-size: 32px;
176
+ --paper-grid-texture-size: var(--grid-pitch);
120
177
  --paper-grid-line: color-mix(
121
178
  in srgb,
122
179
  var(--foreground) calc(var(--paper-grid-opacity) * 100%),
@@ -245,7 +302,6 @@
245
302
 
246
303
  /* Heights — per-variant rail thickness */
247
304
  --timeline-scrubber-height: 0.5rem; /* 8px — single-track scrubber */
248
- --timeline-segmented-height: 0.625rem; /* 10px — N adjacent bands */
249
305
  --timeline-continuous-height: 0.75rem; /* 12px — ONE pill, N regions */
250
306
 
251
307
  /* Geometry — shared across all variants */