@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
@@ -6,12 +6,17 @@
6
6
  /* ═══════════════════════════════════════════════
7
7
  §7 SHADOWS — cartoon offset is the signature
8
8
  ═══════════════════════════════════════════════ */
9
- --shadow-cartoon: 3px 3px 0px 0px color-mix(in srgb, var(--foreground) 8%, transparent);
10
- --shadow-cartoon-hover: 4px 4px 0px 0px color-mix(in srgb, var(--foreground) 10%, transparent);
9
+ /* BD.W-CARTOON-CEL-INK — the `--shadow-cartoon`/`-hover` aliases + the
10
+ `--shadow-modal` cartoon plane re-point onto the warm `--cartoon-ink-lead`
11
+ (0-blur down-LEFT, the cel family coherence — no neutral `--foreground` gray
12
+ smudge). `--cartoon-ink-lead` is defined below in this same :root block (custom
13
+ properties resolve order-independently). */
14
+ --shadow-cartoon: -3px 3px 0px 0px var(--cartoon-ink-lead);
15
+ --shadow-cartoon-hover: -4px 4px 0px 0px var(--cartoon-ink-lead);
11
16
  --shadow-soft: 0 4px 12px rgba(0, 0, 0, 0.1);
12
17
  --shadow-elevated: 0 8px 24px rgba(0, 0, 0, 0.12);
13
18
  --shadow-modal:
14
- 4px 4px 0px 0px color-mix(in srgb, var(--foreground) 8%, transparent),
19
+ -4px 4px 0px 0px var(--cartoon-ink-lead),
15
20
  0 24px 64px color-mix(in srgb, var(--foreground) 12%, transparent);
16
21
 
17
22
  --cartoon-shadow: var(--shadow-cartoon);
@@ -88,16 +93,42 @@
88
93
  --shadow-cartoon-color: rgb(0 0 0 / 0.12);
89
94
  --shadow-cartoon-color-soft: rgb(0 0 0 / 0.06);
90
95
 
91
- /* Tiered cartoon shadows */
92
- --shadow-cartoon-sm: -3px 2px 1px color-mix(in srgb, var(--shadow-color) 10%, transparent),
93
- 0 3px 1px color-mix(in srgb, var(--shadow-color) 10%, transparent),
94
- -3px 3px 1px color-mix(in srgb, var(--shadow-color) 6%, transparent);
95
- --shadow-cartoon-md: -4px 3px 1px color-mix(in srgb, var(--shadow-color) 12%, transparent),
96
- 0 4px 1px color-mix(in srgb, var(--shadow-color) 12%, transparent),
97
- -4px 4px 2px color-mix(in srgb, var(--shadow-color) 8%, transparent);
98
- --shadow-cartoon-lg: -6px 4px 1px color-mix(in srgb, var(--shadow-color) 12%, transparent),
99
- 0 6px 1px color-mix(in srgb, var(--shadow-color) 12%, transparent),
100
- -6px 6px 2px color-mix(in srgb, var(--shadow-color) 8%, transparent);
96
+ /* ── BD.W-CARTOON-CEL-INK — the cartoon register's OWN warm cel ink ──────────────
97
+ Decoupled from `--shadow-color` so a consumer retunes the cast without
98
+ disturbing every elevation box-shadow. Built by EXTRACTING the warm
99
+ `--foreground` hue (`oklch from`) and FLOORING chroma (`max(c, 0.11)` —
100
+ TECHNICOLOR, not merely-non-gray, the BA.W-NO-GRAY discipline applied to the
101
+ cast) + DEEPENING L (`clamp(0.14, l, 0.18)`) so at stamp opacity it reads as a
102
+ COLORED cel line, never a neutral gray. A cel cast is INK — it stays a warm DARK
103
+ ink (the dark arm pins its own warm dark ink, dark-arm.css). The three planes
104
+ step DOWN in opacity (lead 32% / mid 26% / contact 18%) — `in oklab` NOT
105
+ `in srgb` (srgb muddies a warm dark ink toward gray as it dilutes; oklab holds
106
+ the warm hue stable across the alpha ramp — the landed gray-dilution defect). */
107
+ --cartoon-ink: oklch(from var(--foreground) clamp(0.14, l, 0.18) max(c, 0.11) h);
108
+ --cartoon-ink-lead: color-mix(in oklab, var(--cartoon-ink) 32%, transparent);
109
+ --cartoon-ink-mid: color-mix(in oklab, var(--cartoon-ink) 26%, transparent);
110
+ --cartoon-ink-contact: color-mix(in oklab, var(--cartoon-ink) 18%, transparent);
111
+ /* `@supports not (oklch from …)` floors the ink to a named warm sRGB literal
112
+ (a legacy engine gets a WARM — not gray — stamp; NO dead inline literal). */
113
+ --cartoon-ink-fallback: #4a3320;
114
+
115
+ /* BD.W-CARTOON-CEL-INK — the tiered cel-ink STAMP, re-pointed to the warm
116
+ `--cartoon-ink` rungs at HARD 0-BLUR (lead + mid + contact all 0px — the cel
117
+ edge; the landed 1–2px soft blur is the gray-smudge defect), keeping the LANDED
118
+ down-LEFT geometry (REFINE-not-flip — the direction is coherent with the
119
+ upper-right `--glass-key`; cast lands lower-LEFT). φ-cadenced offsets. */
120
+ --shadow-cartoon-sm:
121
+ -2px 2px 0 var(--cartoon-ink-lead),
122
+ -3px 3px 0 var(--cartoon-ink-mid),
123
+ -4px 4px 0 var(--cartoon-ink-contact);
124
+ --shadow-cartoon-md:
125
+ -3px 3px 0 var(--cartoon-ink-lead),
126
+ -5px 5px 0 var(--cartoon-ink-mid),
127
+ -7px 7px 0 var(--cartoon-ink-contact);
128
+ --shadow-cartoon-lg:
129
+ -4px 4px 0 var(--cartoon-ink-lead),
130
+ -7px 7px 0 var(--cartoon-ink-mid),
131
+ -11px 11px 0 var(--cartoon-ink-contact);
101
132
  --cartoon-shadow-sm: var(--shadow-cartoon-sm);
102
133
  --cartoon-shadow-md: var(--shadow-cartoon-md);
103
134
  --cartoon-shadow-lg: var(--shadow-cartoon-lg);
@@ -164,3 +195,32 @@
164
195
  color-mix(in srgb, var(--blob-shadow-color) 44%, transparent);
165
196
 
166
197
  }
198
+
199
+ /* BD.W-CARTOON-CEL-INK — the relative-color-syntax fallback. On a legacy engine that
200
+ lacks `oklch(from …)`, `--cartoon-ink` would be invalid (the whole cast drops). Floor
201
+ it to the named warm sRGB literal `--cartoon-ink-fallback` (NOT a dead inline literal)
202
+ so the cel stamp degrades to a WARM — never gray, never empty — ink. The three
203
+ strength rungs re-derive off the floored ink for free (they `color-mix` it). */
204
+ @supports not (color: oklch(from white l c h)) {
205
+ :root {
206
+ --cartoon-ink: var(--cartoon-ink-fallback);
207
+ }
208
+ }
209
+
210
+ /* BD.W-CARTOON-CEL-INK — prefers-contrast / reduced-transparency floor the inked edge
211
+ UP (the cel cast is a legibility ASSET, not decoration; PRT is NOT a no-op — the cast
212
+ is translucent ink). */
213
+ @media (prefers-contrast: more) {
214
+ :root {
215
+ --cartoon-ink-lead: color-mix(in oklab, var(--cartoon-ink) 42%, transparent);
216
+ --cartoon-ink-mid: color-mix(in oklab, var(--cartoon-ink) 34%, transparent);
217
+ --cartoon-ink-contact: color-mix(in oklab, var(--cartoon-ink) 24%, transparent);
218
+ }
219
+ }
220
+ @media (prefers-reduced-transparency: reduce) {
221
+ :root {
222
+ --cartoon-ink-lead: color-mix(in oklab, var(--cartoon-ink) 42%, transparent);
223
+ --cartoon-ink-mid: color-mix(in oklab, var(--cartoon-ink) 34%, transparent);
224
+ --cartoon-ink-contact: color-mix(in oklab, var(--cartoon-ink) 24%, transparent);
225
+ }
226
+ }
@@ -0,0 +1,110 @@
1
+ /* tokens/sizing-config.css
2
+ §10 sizing tail — the MetricBadge stacked geometry + the Configurator family
3
+ (the density ladder, the AZ.W-HIERARCHY section/label/preset vocabulary, the
4
+ single-column stage floor, the dark-adaptive divider register, the section
5
+ tonal step) + the component-font override.
6
+ Carved (BC.W-CARVE6) from the tail of tokens/sizing.css to hold the 500-line
7
+ no-god-module bound; @import-ed by tokens.css IMMEDIATELY AFTER sizing.css at
8
+ sizing's own cascade slot — adjacent same-selector :root blocks resolve
9
+ identically, so the dist is byte-isomorphic.
10
+ See docs/precepts/design-idioms.md §cohesion-aware partials. */
11
+ :root {
12
+ /* MetricBadge — stacked variant geometry. The 2-row stacked layout
13
+ (label / value+unit) wants a taller floor than the inline pill so the
14
+ label has breathing room above the baseline pair. T.W2.T2 +
15
+ audit B-spec §3.2 vertical-rhythm table land 42px (2.625rem) as the
16
+ min-height with 6px (0.375rem) block padding. The inline ladder
17
+ keeps its tight defaults via `--metric-badge-min-height` /
18
+ `--metric-badge-padding-block` (declared inline at the
19
+ `.metric-badge` selector). */
20
+ --metric-badge-min-height-stacked: 2.625rem;
21
+ --metric-badge-padding-block-stacked: 0.375rem;
22
+
23
+ /* Configurator — N.W2 Lane A density axis (4 rungs).
24
+ The `comfortable` rung restates the pre-N.W2 baked recipe exactly
25
+ (`gap-1.5 py-2` = 0.375rem / 0.5rem) so unparameterised consumers
26
+ see no visual change. `mobile` halves the vertical breathing room
27
+ for narrow-viewport studios; `spacious` doubles it for settings-
28
+ page hosts. See `<ConfiguratorRow>` scoped CSS for the attribute-
29
+ selector binding. */
30
+ --configurator-row-gap-mobile: 0.25rem; /* 4px — tight */
31
+ --configurator-row-gap-compact: 0.3125rem; /* 5px — slightly tighter */
32
+ --configurator-row-gap-comfortable: 0.375rem; /* 6px — pre-N.W2 default */
33
+ --configurator-row-gap-spacious: 0.75rem; /* 12px — generous */
34
+
35
+ --configurator-row-py-mobile: 0.25rem; /* 4px — tight */
36
+ --configurator-row-py-compact: 0.375rem; /* 6px — slightly tighter */
37
+ --configurator-row-py-comfortable: 0.5rem; /* 8px — pre-N.W2 default */
38
+ --configurator-row-py-spacious: 0.875rem; /* 14px — generous */
39
+
40
+ /* Configurator HIERARCHY VOCABULARY (AZ.W-HIERARCHY — D6-3). The three
41
+ NAMED registers the studios (blob, aurora) inherit instead of a flat
42
+ undifferentiated stack. DISTINCT from the density ladder above (which is
43
+ the per-row CADENCE, not the section/label/preset register).
44
+
45
+ 1. Section register — the <ConfiguratorLayer> label reads as a SECTION,
46
+ not a row: the √φ subheading rung at weight 600, lifting off the prior
47
+ flat `text-small font-semibold`. */
48
+ --configurator-section-size: var(--type-subheading); /* 20.4px — √φ section rung */
49
+ --configurator-section-weight: 600; /* the heading weight */
50
+
51
+ /* AZ.W-BLOB-REDRESS — the SINGLE-COLUMN stage-row FLOOR. Below `lg` the
52
+ Configurator stacks stage-over-aside; a percentage stage height against
53
+ an INDEFINITE auto-row resolves to 0 (the GooBlob hero painted 0×0 on a
54
+ phone). The single-column band's `grid-template-rows` floors the stage
55
+ row at this DEFINITE `minmax(…)` minimum so the percentage resolves;
56
+ the aside row takes the remainder and scrolls internally. */
57
+ --configurator-stage-min: 18rem; /* 288px — the mobile live-specimen stage floor */
58
+
59
+ /* 2. Preset-row PRIMARY-AFFORDANCE lift. The preset picker is the primary
60
+ interaction (C6-10); D6-3's defect is the preset row being spatially
61
+ CRAMPED. This token's binding SEMANTIC is the preset row's SPATIAL
62
+ rhythm — its block-padding / gap, NOT a font-weight — so the preset
63
+ row breathes ABOVE a body ConfiguratorRow. (The `-weight` name follows
64
+ the vocabulary's "register weight" framing; it lands on the padding/gap
65
+ slot of `.configurator-presets`, the heavier spatial cadence.) */
66
+ --configurator-preset-row-weight: 0.625rem; /* 10px — > a body row's 8px py-comfortable */
67
+ --configurator-preset-row-gap: 0.5rem; /* 8px — generous chip gap */
68
+
69
+ /* 3. The DIVIDER register — dark-adaptive (BA.W-CONFIG-CHASSIS.1 / CFG-4).
70
+ The section + inter-row dividers used to be inline `border-border/40` and
71
+ `border-border/30` Tailwind alphas; over the W-DARK-MATERIAL dark
72
+ `glass-floating` plate (a luminous transmissive material, --card L16) those
73
+ near-equal-luminance hairlines effectively VANISHED — "the sections run
74
+ together". This ONE token is consumed by every divider rule (the
75
+ <ConfiguratorLayer> section border, the dividers-prop inter-row border,
76
+ Configurator.vue's aside/preset/footer borders, configurator.css) so the
77
+ divider weight is retuned from a single override.
78
+
79
+ The dark-LIFTING arm is the load-bearing half: the divider must read on
80
+ BOTH plates. On LIGHT it is the resting `--border` warm-neutral at the
81
+ prior ~40% weight; on DARK it LIFTS off `--border` (L34 over the L16 plate
82
+ — too close) toward the `--foreground` warm-ink (L90) at a higher α, so a
83
+ visible luminance step survives the dark glass. `light-dark()` carries the
84
+ arm in ONE declaration (the same :root cascade context as the surface-tint
85
+ family; an engine without `light-dark()` falls back to the dark-arm.css
86
+ `.dark` floor minted in lockstep). The SECTION divider runs a touch
87
+ heavier than the inter-row hairline (a section reads as a section without
88
+ a second heading rung). */
89
+ --configurator-divider: light-dark(
90
+ color-mix(in srgb, var(--border) 55%, transparent),
91
+ color-mix(in srgb, var(--foreground) 22%, transparent)
92
+ );
93
+ --configurator-divider-section: light-dark(
94
+ color-mix(in srgb, var(--border) 70%, transparent),
95
+ color-mix(in srgb, var(--foreground) 30%, transparent)
96
+ );
97
+ /* The optional faint section-header tonal step — a whisper-light warm wash
98
+ behind a <ConfiguratorLayer> section so it reads as a grouped section
99
+ WITHOUT a new heading rung (within the W-HIERARCHY register). Default off
100
+ (transparent) on light where the hairline carries it; a faint
101
+ foreground-over-transparent lift on dark where the divider alone is
102
+ subtle. */
103
+ --configurator-section-tint: light-dark(
104
+ transparent,
105
+ color-mix(in srgb, var(--foreground) 3%, transparent)
106
+ );
107
+
108
+ /* Component font override (consumers override locally) */
109
+ --select-font: inherit;
110
+ }
@@ -122,6 +122,24 @@
122
122
  --dropdown-text-secondary: var(--control-text-sm);
123
123
  --dropdown-input-height: var(--control-h-md);
124
124
 
125
+ /* ── The search-family magnitude rungs (BC.W-SEARCH-CUSTOM) ───────────────
126
+ The SearchBar/FuzzySearch compound surfaces read these indirection rungs
127
+ for the glyph / icon-button / result-label magnitudes — so a consumer
128
+ retunes the WHOLE search family from ONE `:root` override, not a fork of
129
+ per-element px literals (`w-3.5 h-3.5`, `!h-6 !w-6`, `text-[0.6rem]`). Each
130
+ DEFAULTS to the existing cohort it replaces, so the bare search surface is
131
+ byte-identical to HEAD (the substitution-vs-redeclaration discipline — the
132
+ NAME is search-local, the magnitude stays the `--ui-glyph`/`--control-*`
133
+ source). NO parallel magnitude ladder: these are aliases onto the cohort.
134
+ • PRIMARY result label / field font → `--control-text` (the `text-sm` register).
135
+ • SECONDARY type-Badge / footnote → `--control-text-sm` (the `text-xs` register).
136
+ • the search/clear/expand glyph → `--ui-glyph-sm` (the chrome 1.4 glyph).
137
+ • the icon-button hit-box → `--control-h-xs` (the HEAD `h-6`/`h-7`). */
138
+ --search-icon-size: var(--ui-glyph-sm);
139
+ --search-button-size: var(--control-h-xs);
140
+ --search-result-text: var(--control-text);
141
+ --search-result-text-secondary: var(--control-text-sm);
142
+
125
143
  --size-icon-btn: 2.5rem;
126
144
  --icon-xs: 0.75rem;
127
145
  --icon-sm: 0.875rem;
@@ -224,6 +242,19 @@
224
242
  var(--dock-icon-glyph-floor)
225
243
  );
226
244
 
245
+ /* BC.W-DOCK-ENGINE move 3 (the Atlas A-9 fold) — `--dock-control-glyph-size` is
246
+ the ONE in-dock control-glyph retint knob (the dark-toggle SVG `width`/`height`
247
+ + the `--dark-mode-toggle-padding` inset BOTH read it), defaulting to the
248
+ `--dock-scale`-keyed `--dock-icon-glyph` the nav icons paint so the docked
249
+ toggle is optically uniform out of the box. Like `--dock-icon-glyph` this
250
+ `:root` declaration resolves the fallback ladder; density.css RE-RESOLVES it
251
+ inside each `[data-density]` scope and overflow.css RE-DECLARES it in the
252
+ coarse block, so the density-painted + coarse-scaled `--dock-icon-glyph` flows
253
+ in (the substitution-vs-inheritance trap closed on all three registers — a
254
+ `:root`-only knob would freeze at the `:root` `--dock-scale` while the glyph
255
+ lifts). ONE knob; no per-size literal, no `!important`. */
256
+ --dock-control-glyph-size: var(--dock-icon-glyph);
257
+
227
258
  /* AX.W45-TUNE Q1 — the COLLAPSED-pill floor tokens. The collapsed summary
228
259
  used to fall to `--dock-layer-height` (the FULL control height, ~2.5rem) for
229
260
  its `min-width` with NO block floor, so the shrunken pill read as an
@@ -315,12 +346,9 @@
315
346
  `--dock-rail-extend-length` (declared in rail-extend.css) was RE-SEMANTICIZED:
316
347
  it is no longer a one-way connector length but the SYMMETRIC per-side overrun of
317
348
  the seam line (the line's cross-extent = dock extent + 2× the knob, centered on
318
- the seam). `--dock-rail-retract-stub` is the residual protrusion FRACTION the
319
- chips leave past the dock edge on collapse (the macOS fan-out "retract INTO the
320
- rail leaving a slight protrusion"; 0 = fully retracted, 1 = no retract). The
321
- `--dock-section-zone-gap` is the inter-control rhythm inside a <DockSection> zone
322
- (defaults to the dock's own `--dock-gap`, so the section grouping adds no box). */
323
- --dock-rail-retract-stub: 0.35;
349
+ the seam). The `--dock-section-zone-gap` is the inter-control rhythm inside a
350
+ <DockSection> zone (defaults to the dock's own `--dock-gap`, so the section
351
+ grouping adds no box). */
324
352
  --dock-section-zone-gap: var(--dock-gap, 0.25rem);
325
353
 
326
354
  /* Dock active-state ladder (O.W6 Lane B)
@@ -389,6 +417,21 @@
389
417
  WCAG 2.5.5 floor on touch devices. */
390
418
  --dock-touch-target: 2.75rem; /* 44px */
391
419
 
420
+ /* BC.W-AX-DOCK-COCKPIT — the dock LABEL-tracks-CONTROL ratio (the
421
+ dock-oversize chronic close, speedtest A-9). The `dock-label`
422
+ (typography/semantic.css) sizes its font as a PROPORTION of the
423
+ control height — `calc(var(--dock-control-size) * var(--dock-label-ratio))`
424
+ — so a tighter control (the `[data-preset="cockpit"]` 2.75rem floor with
425
+ compact chrome) carries a proportionally tighter label, never the fixed
426
+ `--type-subheading` rung that read OVERSIZE on a tight pill. The default
427
+ reproduces `--type-subheading` (1.272rem) at the comfortable `2.5rem`
428
+ control (1.272 / 2.5 = 0.5088) so the bare default is byte-near-identical
429
+ — opt into the cockpit preset (or override this knob from `:root`/the
430
+ `[data-preset]` scope) to retune the whole dock label family in ONE write.
431
+ The explicit `--dock-label-size` knob STILL wins when set (the dock.css
432
+ audacious-mobile carve precedent, KEPT — the ratio is the FALLBACK). */
433
+ --dock-label-ratio: 0.5088;
434
+
392
435
  /* AQ.W3 §7 — canonical WCAG 2.5.5 (44px) touch-target floor for the
393
436
  NON-dock coarse-pointer surfaces (`Button size="icon"`,
394
437
  ExpandableContainer triggers, SegmentedTabs responsive mobile trigger). One
@@ -398,102 +441,10 @@
398
441
  dock floor and the general floor can be retuned independently. */
399
442
  --touch-target: 2.75rem; /* 44px */
400
443
 
401
- /* MetricBadge — stacked variant geometry. The 2-row stacked layout
402
- (label / value+unit) wants a taller floor than the inline pill so the
403
- label has breathing room above the baseline pair. T.W2.T2 +
404
- audit B-spec §3.2 vertical-rhythm table land 42px (2.625rem) as the
405
- min-height with 6px (0.375rem) block padding. The inline ladder
406
- keeps its tight defaults via `--metric-badge-min-height` /
407
- `--metric-badge-padding-block` (declared inline at the
408
- `.metric-badge` selector). */
409
- --metric-badge-min-height-stacked: 2.625rem;
410
- --metric-badge-padding-block-stacked: 0.375rem;
411
-
412
- /* Configurator — N.W2 Lane A density axis (4 rungs).
413
- The `comfortable` rung restates the pre-N.W2 baked recipe exactly
414
- (`gap-1.5 py-2` = 0.375rem / 0.5rem) so unparameterised consumers
415
- see no visual change. `mobile` halves the vertical breathing room
416
- for narrow-viewport studios; `spacious` doubles it for settings-
417
- page hosts. See `<ConfiguratorRow>` scoped CSS for the attribute-
418
- selector binding. */
419
- --configurator-row-gap-mobile: 0.25rem; /* 4px — tight */
420
- --configurator-row-gap-compact: 0.3125rem; /* 5px — slightly tighter */
421
- --configurator-row-gap-comfortable: 0.375rem; /* 6px — pre-N.W2 default */
422
- --configurator-row-gap-spacious: 0.75rem; /* 12px — generous */
423
-
424
- --configurator-row-py-mobile: 0.25rem; /* 4px — tight */
425
- --configurator-row-py-compact: 0.375rem; /* 6px — slightly tighter */
426
- --configurator-row-py-comfortable: 0.5rem; /* 8px — pre-N.W2 default */
427
- --configurator-row-py-spacious: 0.875rem; /* 14px — generous */
428
-
429
- /* Configurator HIERARCHY VOCABULARY (AZ.W-HIERARCHY — D6-3). The three
430
- NAMED registers the studios (blob, aurora) inherit instead of a flat
431
- undifferentiated stack. DISTINCT from the density ladder above (which is
432
- the per-row CADENCE, not the section/label/preset register).
433
-
434
- 1. Section register — the <ConfiguratorLayer> label reads as a SECTION,
435
- not a row: the √φ subheading rung at weight 600, lifting off the prior
436
- flat `text-small font-semibold`. */
437
- --configurator-section-size: var(--type-subheading); /* 20.4px — √φ section rung */
438
- --configurator-section-weight: 600; /* the heading weight */
439
-
440
- /* AZ.W-BLOB-REDRESS — the SINGLE-COLUMN stage-row FLOOR. Below `lg` the
441
- Configurator stacks stage-over-aside; a percentage stage height against
442
- an INDEFINITE auto-row resolves to 0 (the GooBlob hero painted 0×0 on a
443
- phone). The single-column band's `grid-template-rows` floors the stage
444
- row at this DEFINITE `minmax(…)` minimum so the percentage resolves;
445
- the aside row takes the remainder and scrolls internally. */
446
- --configurator-stage-min: 18rem; /* 288px — the mobile live-specimen stage floor */
447
-
448
- /* 2. Preset-row PRIMARY-AFFORDANCE lift. The preset picker is the primary
449
- interaction (C6-10); D6-3's defect is the preset row being spatially
450
- CRAMPED. This token's binding SEMANTIC is the preset row's SPATIAL
451
- rhythm — its block-padding / gap, NOT a font-weight — so the preset
452
- row breathes ABOVE a body ConfiguratorRow. (The `-weight` name follows
453
- the vocabulary's "register weight" framing; it lands on the padding/gap
454
- slot of `.configurator-presets`, the heavier spatial cadence.) */
455
- --configurator-preset-row-weight: 0.625rem; /* 10px — > a body row's 8px py-comfortable */
456
- --configurator-preset-row-gap: 0.5rem; /* 8px — generous chip gap */
457
-
458
- /* 3. The DIVIDER register — dark-adaptive (BA.W-CONFIG-CHASSIS.1 / CFG-4).
459
- The section + inter-row dividers used to be inline `border-border/40` and
460
- `border-border/30` Tailwind alphas; over the W-DARK-MATERIAL dark
461
- `glass-floating` plate (a luminous transmissive material, --card L16) those
462
- near-equal-luminance hairlines effectively VANISHED — "the sections run
463
- together". This ONE token is consumed by every divider rule (the
464
- <ConfiguratorLayer> section border, the dividers-prop inter-row border,
465
- Configurator.vue's aside/preset/footer borders, configurator.css) so the
466
- divider weight is retuned from a single override.
467
-
468
- The dark-LIFTING arm is the load-bearing half: the divider must read on
469
- BOTH plates. On LIGHT it is the resting `--border` warm-neutral at the
470
- prior ~40% weight; on DARK it LIFTS off `--border` (L34 over the L16 plate
471
- — too close) toward the `--foreground` warm-ink (L90) at a higher α, so a
472
- visible luminance step survives the dark glass. `light-dark()` carries the
473
- arm in ONE declaration (the same :root cascade context as the surface-tint
474
- family; an engine without `light-dark()` falls back to the dark-arm.css
475
- `.dark` floor minted in lockstep). The SECTION divider runs a touch
476
- heavier than the inter-row hairline (a section reads as a section without
477
- a second heading rung). */
478
- --configurator-divider: light-dark(
479
- color-mix(in srgb, var(--border) 55%, transparent),
480
- color-mix(in srgb, var(--foreground) 22%, transparent)
481
- );
482
- --configurator-divider-section: light-dark(
483
- color-mix(in srgb, var(--border) 70%, transparent),
484
- color-mix(in srgb, var(--foreground) 30%, transparent)
485
- );
486
- /* The optional faint section-header tonal step — a whisper-light warm wash
487
- behind a <ConfiguratorLayer> section so it reads as a grouped section
488
- WITHOUT a new heading rung (within the W-HIERARCHY register). Default off
489
- (transparent) on light where the hairline carries it; a faint
490
- foreground-over-transparent lift on dark where the divider alone is
491
- subtle. */
492
- --configurator-section-tint: light-dark(
493
- transparent,
494
- color-mix(in srgb, var(--foreground) 3%, transparent)
495
- );
496
-
497
- /* Component font override (consumers override locally) */
498
- --select-font: inherit;
444
+ /* The MetricBadge stacked geometry + the Configurator family (density ladder,
445
+ AZ.W-HIERARCHY section/label/preset vocabulary, stage-floor, dark-adaptive
446
+ divider register, section tonal step) + the --select-font override are carved
447
+ into tokens/sizing-config.css (a cohesive §10 tail, the no-god-module re-drain)
448
+ — @import-ed by tokens.css IMMEDIATELY AFTER sizing.css (adjacent same-selector
449
+ :root blocks, byte-isomorphic). */
499
450
  }
@@ -21,10 +21,17 @@
21
21
  * (registrations + the specular magnitude cohort that reads them).
22
22
  */
23
23
 
24
- /* CSS @import rules must precede every other rule. The ten partials @import in
24
+ /* CSS @import rules must precede every other rule. The partials @import in
25
25
  cascade order (offsets-sizing.css was carved into offsets.css + sizing.css at
26
- BB.W-CARVE3 — adjacent same-selector :root blocks at the same cascade slot): */
26
+ BB.W-CARVE3, and scheme-motion's §2 EASING block into scheme-spring.css at
27
+ BD.W-CUT — adjacent same-selector :root blocks at the same cascade slot): */
27
28
  @import "./tokens/scheme-motion.css";
29
+ /* BD.W-CUT (no-god-module carve) — scheme-motion's §2 EASING block (spring
30
+ linear() curves + per-spring duration clocks + goo-flow curves + bezier
31
+ cores/aliases) carved into scheme-spring.css to hold the 500-line bound,
32
+ @import-ed IMMEDIATELY AFTER scheme-motion.css (adjacent same-selector :root
33
+ blocks at the same cascade slot — the spring/easing tokens resolve in order). */
34
+ @import "./tokens/scheme-spring.css";
28
35
  @import "./tokens/color-radius.css";
29
36
  @import "./tokens/shadow.css";
30
37
  @import "./tokens/glass.css";
@@ -33,6 +40,11 @@
33
40
  @import "./tokens/on-glass-fg.css";
34
41
  @import "./tokens/offsets.css";
35
42
  @import "./tokens/sizing.css";
43
+ /* BC.W-CARVE6 — sizing.css's §10 tail (MetricBadge stacked geometry + the
44
+ Configurator density/HIERARCHY/divider family + the --select-font override)
45
+ carved into sizing-config.css to hold the 500-line bound, @import-ed IMMEDIATELY
46
+ AFTER sizing.css (adjacent same-selector :root blocks — byte-isomorphic). */
47
+ @import "./tokens/sizing-config.css";
36
48
  @import "./tokens/scale-paper.css";
37
49
  @import "./tokens/scroll-tokens.css";
38
50
  @import "./tokens/light-dark.css";
@@ -157,13 +157,26 @@ body {
157
157
  /* Canonical dock control label register — text labels INSIDE
158
158
  `.dock-tab-button` (Start, Next, Submit, …) that want an emphatic character
159
159
  without `.text-heading`'s `font-weight: 700` (which reads as literal bold in
160
- a dock pill). Composes the `--dock-label-size` knob when set (dock.css
161
- audacious mobile carve), else `--type-subheading`. Weight 400 — Plus Jakarta
162
- reads heavier than its numeric weight at pill size, so regular is the
163
- not-bold register. */
160
+ a dock pill). Weight 400 — Plus Jakarta reads heavier than its numeric weight
161
+ at pill size, so regular is the not-bold register.
162
+
163
+ BC.W-AX-DOCK-COCKPIT — the label TRACKS the control height by ratio (the
164
+ dock-oversize chronic close, speedtest A-9): the font is a PROPORTION of the
165
+ control (`calc(var(--dock-control-size) * var(--dock-label-ratio))`) so a
166
+ tighter control (the `[data-preset="cockpit"]` 2.75rem floor + compact chrome)
167
+ carries a proportionally tighter label — never the fixed `--type-subheading`
168
+ rung that read OVERSIZE on a tight pill. The explicit `--dock-label-size` knob
169
+ STILL wins when set (the dock.css audacious-mobile carve precedent, KEPT — the
170
+ ratio is the FALLBACK). The `--dock-label-ratio` default reproduces
171
+ `--type-subheading` at the comfortable `2.5rem` control (sizing.css), so the
172
+ bare default is byte-near-identical; the `--dock-control-size` fallback `2.5rem`
173
+ mirrors the comfortable rung for a label outside a density-painted scope. */
164
174
  @utility dock-label {
165
175
  font-family: var(--font-text);
166
- font-size: var(--dock-label-size, var(--type-subheading));
176
+ font-size: var(
177
+ --dock-label-size,
178
+ calc(var(--dock-control-size, 2.5rem) * var(--dock-label-ratio))
179
+ );
167
180
  line-height: var(--type-leading-body);
168
181
  font-weight: 400;
169
182
  letter-spacing: var(--type-tracking-normal);
@@ -114,7 +114,7 @@ html.no-transition *:not([data-allow-motion])::after {
114
114
  `min-block/inline-size` only RAISES — a larger explicit size is never lost. */
115
115
  @media (pointer: coarse) {
116
116
  [data-size="icon"],
117
- .expandable-container__trigger,
117
+ [data-part="trigger"],
118
118
  .segmented-tabs__trigger {
119
119
  min-block-size: var(--touch-target, 2.75rem);
120
120
  min-inline-size: var(--touch-target, 2.75rem);
@@ -160,10 +160,25 @@ html.no-transition *:not([data-allow-motion])::after {
160
160
  translate: -50% -50%;
161
161
  min-width: var(--touch-target, 2.75rem);
162
162
  min-height: var(--touch-target, 2.75rem);
163
- /* Inherit the host's pointer-events so a tap within the halo
164
- registers on the atom; the overlay itself is decorative (no
165
- paint), so it never occludes the host's own interaction. */
166
- pointer-events: auto;
163
+ /* BC.W-RADIO-FIX — the swallow-fix (the §F headline binding bug).
164
+ An absolutely-positioned `::before` over the atom with
165
+ `pointer-events: auto` becomes the topmost hit target across the
166
+ whole 44px box and INTERCEPTS the real pointer event before it
167
+ reaches the host's listener — reka's RadioGroupItem / Checkbox /
168
+ Switch / SliderRoot bind their toggle/drag handler on the HOST
169
+ button (Radio.vue `onClick`), and the swallowing overlay was the
170
+ root of "radios don't work" (a synthetic .click() on the host
171
+ still fired, but a real coarse tap landed on the pseudo and
172
+ no-op'd). `pointer-events: none` frees the pointer to fall
173
+ through to the host so the tap reaches reka on EVERY input path,
174
+ while the 44px GEOMETRY still satisfies the WCAG-2.5.5 readback
175
+ (getComputedStyle reads min-width/height, not pointer-events —
176
+ the hit FLOOR is the box, never a pointer-swallowing overlay).
177
+ The same integrity discipline `useDockClickIntegrity` applies to
178
+ the dock + the Slider's own `.slider-thumb.touch-hit-area::before`
179
+ override already discovered (AY.W-SCALE2) — now ONE source for
180
+ the whole six-atom hit-area family. */
181
+ pointer-events: none;
167
182
  }
168
183
  }
169
184
  }
@@ -212,6 +212,27 @@
212
212
  scroll-timeline: --card-scroll block;
213
213
  }
214
214
 
215
+ /* ── Stable scroll gutter — the no-shift discipline for overlay-hosting
216
+ route scrollers (BC.W-DROPDOWN-FIX) ──────────────────────────────────
217
+ An app-shell route scroller that hosts portaled picker/menu overlays
218
+ (Select / DropdownMenu / any reka overlay that locks body scroll on open)
219
+ RESERVES a stable scrollbar gutter so the lock-induced scrollbar removal
220
+ removes no layout space — the centred content does not reflow and the
221
+ trigger does not twitch left/right (USER-DEFECTS §F, the classic
222
+ space-taking-scrollbar reflow).
223
+
224
+ PRESETS-IN-CONSUMERS: the library ships the named discipline; the CONSUMER
225
+ app-shell opts its OWN route scroller in (the demo `.demo-main-scroller`
226
+ is the reference adoption). glass-ui does not force `scrollbar-gutter` on
227
+ every consumer's scroller — it provides this utility + the canon note.
228
+
229
+ Baseline-newly-available: Chrome 94+, Firefox 97+, Safari 18.2+ — a
230
+ non-supporting engine ignores the property (the gutter just isn't
231
+ reserved, the legacy behaviour). */
232
+ .scroll-gutter-stable {
233
+ scrollbar-gutter: stable;
234
+ }
235
+
215
236
  /* ── Shimmer text effects ──
216
237
  BB.W-METAL-SHIMMER — the gold-only `gold-shimmer-slide` is RETIRED (clean
217
238
  break, no alias); `.gold-shimmer` re-points onto the metal-PARAMETERIZED
@@ -253,3 +274,34 @@
253
274
  }
254
275
 
255
276
  }
277
+
278
+ /* ── @utility ghost-slot (BC.W-GHOST-DASHED) ────────────────────────────────
279
+ The ONE dashed-outline placeholder register: everywhere a slot is empty / a
280
+ thing is a placeholder / an affordance is "add something here", the surface
281
+ reads this — a dashed-outline plate, consistently rounded (--radius-card),
282
+ calm-muted, that reads unmistakably "this is a placeholder, not a filled
283
+ surface." The 6 ad-hoc `rounded-{md,2xl,card} border border-dashed
284
+ border-border bg-{card,background}` forks (three radii, three hosts, three
285
+ pads) COLLAPSE onto this ONE register: ONE radius, ONE faint-wash host, ONE
286
+ muted ink, ONE warm dashed hairline.
287
+
288
+ WARM-NOT-GREY (BA.W-NO-GRAY): the dashed hairline is the warm-ink at 22%
289
+ (a color-mix off --foreground, the warm identity), NEVER a grey
290
+ `border-border` — the ghost must read warm-material, not grey.
291
+
292
+ GLASS-ADJACENT, not opaque: the host is a faint glass-wash (the rebuilt W55
293
+ material reads THROUGH it), NOT a flat opaque `bg-card` slab — so the ghost
294
+ reads "empty," not "filled," and the D1 grey-plate regression cannot re-enter
295
+ through the placeholder.
296
+
297
+ THE FENCE (binding both ways): this is the RECTANGULAR-placeholder register.
298
+ The `WatercolorDot variant="ghost"` (the seeded-blob SILHOUETTE traced as a
299
+ dashed stroke — the empty-PALETTE-slot affordance) is a DISTINCT register;
300
+ neither forks the other. .ghost-slot is never applied to a blob-silhouette
301
+ slot, and the watercolor ghost never adopts this rectangle recipe. */
302
+ @utility ghost-slot {
303
+ border: 1px dashed color-mix(in srgb, var(--foreground) 22%, transparent);
304
+ border-radius: var(--radius-card);
305
+ background: color-mix(in oklab, var(--glass-bg-wash), transparent 40%);
306
+ color: var(--muted-foreground);
307
+ }