@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
@@ -71,8 +71,8 @@
71
71
  /* BA.W-DARK-MATERIAL scope 1 — the --card plate LIFTS L10→L16 (a warm-dark elevated
72
72
  surface, macOS-window territory) so it sits ~5× the deepened L4 page relL — a
73
73
  clearly distinct surface the five glass rungs ladder up from. LOCKSTEP light-dark.css:80. */
74
- --card: hsl(24 8% 16%);
75
- --popover: hsl(24 8% 16%);
74
+ --card: hsl(26 22% 17%);
75
+ --popover: hsl(26 22% 17%);
76
76
 
77
77
  /* R0G-5 (AO.W4) — dark mirror of the warm-neutral public-data panel.
78
78
  --card's dark hsl(24 8% 16%) nudged one warmth step toward amber
@@ -164,12 +164,28 @@
164
164
  --warning-foreground: hsl(24 10% 10%);
165
165
  --info-foreground: hsl(48 10% 96%);
166
166
 
167
- --shadow-cartoon: 3px 3px 0px 0px color-mix(in srgb, var(--foreground) 6%, transparent);
168
- --shadow-cartoon-hover: 4px 4px 0px 0px color-mix(in srgb, var(--foreground) 8%, transparent);
167
+ /* BD.W-CARTOON-CEL-INK — the WARM DARK ink. In dark, `--foreground` flips to
168
+ near-cream, so the SAME `oklch(from --foreground …)` construction would lift the
169
+ ink toward a light warm LINE (the iOS-7-sticker glow). A cel cast is dark INK on
170
+ any cel — so the dark ink is built by the SAME `oklch(from)` mechanism (NOT a
171
+ hardcoded `oklch(0.22 0.07 70)` literal — the H3/R6 retirement) but L-TARGETED to
172
+ a warm MID-tone: `clamp(0.20, 1 − l, 0.30)` deepens the flipped-cream L back down
173
+ to a warm dark mid that READS as a defined edge against the near-black `--card`
174
+ (ΔL ≥ 0.12), chroma floored `max(c, 0.11)` for TECHNICOLOR, hue preserved. The
175
+ opacity rungs floor UP (46/38/26%) for presence on the dark ground. Plain `.dark`
176
+ ancestor — NO `:global()`, NO `light-dark()` (the recorded traps). */
177
+ --cartoon-ink: oklch(from var(--foreground) clamp(0.20, calc(1 - l), 0.30) max(c, 0.11) h);
178
+ --cartoon-ink-lead: color-mix(in oklab, var(--cartoon-ink) 46%, transparent);
179
+ --cartoon-ink-mid: color-mix(in oklab, var(--cartoon-ink) 38%, transparent);
180
+ --cartoon-ink-contact: color-mix(in oklab, var(--cartoon-ink) 26%, transparent);
181
+ --cartoon-ink-fallback: #5a3f28;
182
+
183
+ --shadow-cartoon: -3px 3px 0px 0px var(--cartoon-ink-lead);
184
+ --shadow-cartoon-hover: -4px 4px 0px 0px var(--cartoon-ink-lead);
169
185
  --shadow-soft: 0 4px 12px rgba(0, 0, 0, 0.3);
170
186
  --shadow-elevated: 0 8px 24px rgba(0, 0, 0, 0.35);
171
187
  --shadow-modal:
172
- 4px 4px 0px 0px color-mix(in srgb, var(--foreground) 6%, transparent),
188
+ -4px 4px 0px 0px var(--cartoon-ink-lead),
173
189
  0 24px 64px color-mix(in srgb, var(--foreground) 18%, transparent);
174
190
 
175
191
  --shadow-cartoon-color: rgb(255 255 255 / 0.07);
@@ -214,7 +230,20 @@
214
230
  --glass-opacity-floating: 0.88;
215
231
  --glass-opacity-overlay: 0.96;
216
232
  --glass-opacity-chassis: 0.36;
233
+ /* BC.W-DIALOG-GLASS — the dialog dark register lifts ~0.08 over the light arm
234
+ (0.68 → 0.76) for read-weight over the deep canvas, mirroring the dark opacity
235
+ ladder (it sits between dark `resting` 0.72 and `floating` 0.88 — see-through
236
+ but legible over the deep page). The SAME named token as the light arm, per-
237
+ mode; the composed `--glass-bg-dialog` (glass.css :root) re-resolves from it
238
+ automatically per mode. */
239
+ --glass-opacity-dialog: 0.76;
217
240
  --glass-grain-opacity: 0.045;
241
+ /* BD.W-PAPER-MORPHISM — re-calibrated to the JND floor for the CORRECTED coarse
242
+ tooth + SCREEN blend (std ≥ 3.86 dark): screen on the ink pole BITES HARD so it
243
+ needs LESS alpha (the honest inversion the measurements force — the opacity
244
+ ladder light→dark 0.22→0.16 ≈ ×1/√φ, dark steps DOWN). Was 0.11 on the
245
+ self-cancelling soft-light arm. */
246
+ --paper-grain-opacity: 0.16;
218
247
  --glass-highlight: inset 0 0.5px 0 0 hsl(0 0% 100% / 0.08);
219
248
 
220
249
  /* BA.W-DARK-MATERIAL scope 2 — dark glass is TRANSMISSIVE. The dark rung
@@ -225,13 +254,35 @@
225
254
  aurora/page behind reads with chroma + a glow. The blur() RADIUS is the
226
255
  light-arm primitive UNTOUCHED (W-GLASS-CAL owns the radius dial-back) — only the
227
256
  saturate/brightness COMPANIONS lift here. The lower rungs lift more (they're
228
- thinner, the backdrop carries the read); the heavy overlay lifts least. */
229
- --glass-blur-wash: blur(calc(var(--glass-blur-wash-radius) * var(--glass-level))) saturate(1.35) brightness(1.18);
230
- --glass-blur-quiet: blur(calc(var(--glass-blur-quiet-radius) * var(--glass-level))) saturate(1.35) brightness(1.16);
231
- --glass-blur-resting: blur(calc(var(--glass-blur-resting-radius) * var(--glass-level))) saturate(1.30) brightness(1.14);
232
- --glass-blur-floating: blur(calc(var(--glass-blur-floating-radius) * var(--glass-level))) saturate(1.28) brightness(1.10);
233
- --glass-blur-overlay: blur(calc(var(--glass-blur-overlay-radius) * var(--glass-level))) saturate(1.22) brightness(1.06);
234
- --glass-blur-dock: blur(calc(var(--glass-blur-dock-radius) * var(--glass-level))) saturate(1.30) brightness(1.12);
257
+ thinner, the backdrop carries the read); the heavy overlay lifts least.
258
+
259
+ BC.W-GLASS-LEGIBILITY-MEASURED — the per-rung `--glass-saturate-{tier}` knob
260
+ (the speedtest-AX BC-W10 fold) is the SAME named register as the light arm
261
+ (tokens/glass.css), per-mode — the dark identity. The dark values ARE this
262
+ scope's luminosity lift (wash/quiet 1.35, resting 1.30, floating 1.28, overlay
263
+ 1.22) become the dark token defaults, and each `--glass-blur-{tier}` reads
264
+ `saturate(var(--glass-saturate-{tier}))` THROUGH — so a `.dark` override re-
265
+ resolves the rung saturation with ZERO recipe edit, AND the composed dark blur
266
+ is BYTE-IDENTICAL to the old baked literal. The `brightness()` companions stay
267
+ baked (this fold mints ONLY the saturate knob). The dark dock/deep saturate stay
268
+ baked (off-ladder footprint rungs, not part of the {wash..overlay} ladder).
269
+ Machine-locked by `proof:glass-legibility` L7. */
270
+ --glass-saturate-wash: 1.35;
271
+ --glass-saturate-quiet: 1.35;
272
+ --glass-saturate-resting: 1.30;
273
+ --glass-saturate-floating: 1.28;
274
+ --glass-saturate-overlay: 1.22;
275
+ --glass-blur-wash: blur(calc(var(--glass-blur-wash-radius) * var(--glass-level))) saturate(var(--glass-saturate-wash)) brightness(1.18);
276
+ --glass-blur-quiet: blur(calc(var(--glass-blur-quiet-radius) * var(--glass-level))) saturate(var(--glass-saturate-quiet)) brightness(1.16);
277
+ --glass-blur-resting: blur(calc(var(--glass-blur-resting-radius) * var(--glass-level))) saturate(var(--glass-saturate-resting)) brightness(1.14);
278
+ --glass-blur-floating: blur(calc(var(--glass-blur-floating-radius) * var(--glass-level))) saturate(var(--glass-saturate-floating)) brightness(1.10);
279
+ --glass-blur-overlay: blur(calc(var(--glass-blur-overlay-radius) * var(--glass-level))) saturate(var(--glass-saturate-overlay)) brightness(1.06);
280
+ /* W-NAV-DOCK-FIX — re-point the dark dock saturate to the named --glass-saturate-dock
281
+ knob (the single retune point in BOTH modes; the dark value 1.30 is declared here
282
+ so the descendant var() substitutes the dark value — the substitution-vs-redeclare
283
+ discipline). Value unchanged. */
284
+ --glass-saturate-dock: 1.30;
285
+ --glass-blur-dock: blur(calc(var(--glass-blur-dock-radius) * var(--glass-level))) saturate(var(--glass-saturate-dock)) brightness(1.12);
235
286
 
236
287
  /* BB.W-DEEP-GLASS — the DARK arm of the OPT-IN deep tier (the luminous-dark
237
288
  deep mirror, the W-DARK-MATERIAL scope-2 "dark glass glows where light
@@ -264,6 +315,13 @@
264
315
  self-engage uses the AA arm directly (the luminous-dark lift is the desired default,
265
316
  not a sub-perceptual silhouette). */
266
317
  --glass-tint-strength-aa: 12%;
318
+ /* BD.W-DOCK-CORE (D4) — the dark §2c dock-ink lockstep (the MIRROR of the light
319
+ darken). In dark the dock tint is a LIFT toward a luminous warm-cream (L 0.90,
320
+ C 0.045) — `oklch(from var(--foreground) …)` extracts the dark foreground's warm
321
+ hue/chroma and lifts L (the dark `--foreground` is the light cream, so this stays a
322
+ luminous lift). The dark `--glass-tint-strength-aa` stays 12% (FROZEN,
323
+ W-DARK-MATERIAL). The dock self-engage reads this dock-scoped ink in BOTH modes. */
324
+ --glass-tint-ink-dock: oklch(from var(--foreground) 0.90 0.045 h);
267
325
  /* The unconditional content-tier self-engage (glass/ladder.css) reads
268
326
  --glass-tint-strength-floor. In LIGHT that is the 4% sub-perceptual silhouette (the
269
327
  calm-light card stays warm); in DARK the content tiers WANT the full luminous-dark
@@ -338,6 +396,30 @@
338
396
  resolves to the `-dark` alpha on the deeper canvas. */
339
397
  --glass-edge-light: var(--glass-edge-light-dark);
340
398
 
399
+ /* BC.W-BLACK-BAR D2 — the DIRECTIONAL rim dark arm (plain per-mode pair, NEVER
400
+ light-dark() round an inset — MEMORY: the inset-shadow trap). The top
401
+ catch-light lifts to 0.40 (the dark plate's fill barely separates from the deep
402
+ page, so the rim is the PRIMARY silhouette device — dark glass glows where light
403
+ passes; mirrors the --glass-edge-light-dark 0.18→0.22 lift). The bottom warm
404
+ under-shadow holds at 6% — the shadow grounds the plate in BOTH modes. */
405
+ /* BD.W-GLASS-KEY-EDGE — the dark rim rides the SAME `--glass-key-{lit,shade}-{x,y}`
406
+ sign tokens (inherited from :root — not re-declared here) so the dark plate's
407
+ lit edge agrees with the cartoon cast's key in both modes. The top/lit catch
408
+ lifts to 0.40 (the dark silhouette device); the key-facing side stop a touch
409
+ brighter (0.24). The shade under-shadow holds warm at 6%/4%. */
410
+ --glass-rim-top:
411
+ inset 0 var(--glass-key-lit-y) 0 hsl(0 0% 100% / 0.40),
412
+ inset var(--glass-key-lit-x) 0 0 hsl(0 0% 100% / 0.24);
413
+ --glass-rim-bottom:
414
+ inset 0 var(--glass-key-shade-y) 0 color-mix(in srgb, var(--foreground) 6%, transparent),
415
+ inset var(--glass-key-shade-x) 0 0 color-mix(in srgb, var(--foreground) 4%, transparent);
416
+
417
+ /* BD.W-TAB-IOS-CAPSULE — the `.glass-capsule-track` recess ink, DARK arm (the
418
+ PLAIN per-mode pair's dark leg; the light arm is in `tokens/glass-fx.css`).
419
+ NEVER a `light-dark()` fragment (the inset-shadow trap). Deeper on the dark
420
+ canvas (11%) so the sunken well still reads against the near-black page. */
421
+ --tab-track-recess-ink: color-mix(in srgb, var(--foreground) 11%, transparent);
422
+
341
423
  /* AW.W23 — the chromatic-fringe + adaptive-tint dark arm. The fringe drops
342
424
  to a lower-luminance warm/cool pair on the deep canvas; `--glass-tint-
343
425
  source` auto-flips with `--card` (no override needed — the default already
@@ -18,7 +18,7 @@
18
18
  * dark companions).
19
19
  *
20
20
  * ── The Apple-range derivation (DELTA cross-ref) ───────────────────────────
21
- * Apple home nav: saturate(1.8) blur(20px) (the canonical measure)
21
+ * Apple home nav: saturate(1.8) blur(20px) (the canonical measure; the CEILING)
22
22
  * Apple product tiers: blur(14-20px) (the band)
23
23
  * glass-ui calm ceiling: floating 13px / saturate 1.18 (W-GLASS-CAL dial-back)
24
24
  * glass-ui DEEP: 16px / saturate 1.5 (STRICTLY deeper on BOTH axes,
@@ -29,14 +29,42 @@
29
29
  * and the warm-cream light-concentration ceiling (AX.W52 D19 — a saturate that
30
30
  * over-juices a colored substrate reads as a garish smear) keeps it just-rich.
31
31
  * The deepest BLUR carries the "more glass" read; the saturate stays restrained.
32
+ *
33
+ * ── The deep-tier BUDGET CALL (BC.W-GLASS-LEGIBILITY-MEASURED L4) ───────────
34
+ * The deep blur radius is the most expensive idiom glass-ui ships (`backdrop-
35
+ * filter` cost is super-linear in the radius past ~16px). The wave's call:
36
+ * STAY at the budget-clearing 16px and BOOK the 18-20px push (toward the live-
37
+ * measured apple.com nav `blur(20px)` ceiling, research/apple-glass.md §1.1)
38
+ * behind a recorded `profile:budget` clearance — the full 20px is the BOOKED
39
+ * successor (apple-ios27.md §1.4 "the full 20px booked"), NOT a silent over-
40
+ * spend. `--glass-saturate-deep-ceiling` BAKES the apple.com nav saturate 1.8 as
41
+ * the deep-tier CEILING (the load-bearing term — research/apple-glass.md §4
42
+ * "saturate 1.5 shipped, bake 1.8 as the deep ceiling"); the shipped
43
+ * `--glass-saturate-deep` 1.5 sits at the low end (≤ ceiling), warm-aurora-safe.
44
+ * `proof:glass-legibility` L4 reads BOTH: the 16px-stay is honest IFF the budget
45
+ * booking is recorded here, and the shipped deep saturate never crosses the 1.8
46
+ * ceiling. When a `profile:budget` run clears the 18-20px push, the radius
47
+ * lifts toward 20px on the SAME LERP (the booked successor lands, no recipe edit).
32
48
  */
33
49
  :root {
34
50
  /* The Apple-range deep ENDPOINTS — the radius + saturate the deep tier reaches
35
51
  at full depth (`--glass-depth: 1`). The calm `floating` rung (13px / 1.18)
36
52
  is the depth-0 floor; the deep recipe LERPs between the two on `--glass-depth`
37
53
  so the axis is a genuine driver, not a literal. */
38
- --glass-blur-deep-radius: 16px; /* in [14,20], STRICTLY > calm floating 13px */
39
- --glass-saturate-deep: 1.5; /* >= 1.5 (toward Apple 1.8), > calm floating 1.18 */
54
+ --glass-blur-deep-radius: 16px; /* in [14,20], STRICTLY > calm floating 13px;
55
+ BUDGET CALL (L4): stays 16px, the 18-20px push
56
+ toward the apple.com nav ceiling is BOOKED
57
+ behind a recorded profile:budget clearance. */
58
+ --glass-saturate-deep: 1.8; /* BD.W-GLASS-ABROGATE-GRAY — lifted 1.5→1.8 (the
59
+ apple.com nav ceiling) IN LOCKSTEP with FIX-D's
60
+ content/floating saturate lift, so the deep tier
61
+ STAYS the richest register (calm floating now 1.6;
62
+ deep must clear it). == --glass-saturate-deep-ceiling
63
+ (1.8 — at the bound, never over-shot, L4 holds). */
64
+ --glass-saturate-deep-ceiling: 1.8; /* the apple.com-nav saturate CEILING, BAKED as
65
+ the deep-tier load-bearing term (research/
66
+ apple-glass.md §4); the deep saturate never
67
+ exceeds it (the warm-cream identity bound). */
40
68
 
41
69
  /* The deep blur RADIUS — LERPed from the calm floating radius (depth 0) to the
42
70
  Apple-deep radius (depth 1) on `--glass-depth`, THEN scaled by the ONE
@@ -60,7 +88,8 @@
60
88
  chroma, it does NOT inject a hue; the warm-cream `--card` base is the same). */
61
89
  --glass-saturate-deep-active:
62
90
  calc(
63
- 1.18 + (var(--glass-saturate-deep) - 1.18) * var(--glass-depth)
91
+ var(--glass-saturate-floating)
92
+ + (var(--glass-saturate-deep) - var(--glass-saturate-floating)) * var(--glass-depth)
64
93
  );
65
94
 
66
95
  /* The composed deep backdrop-filter — the SEPARATE deep family. The calm
@@ -15,6 +15,16 @@
15
15
  so it sits at the perceptual floor. Dark companion drops 0.06 →
16
16
  0.045 below to keep the soft-light blend alive without stippling. */
17
17
  --glass-grain-opacity: 0.025;
18
+ /* BD.W-PAPER-MORPHISM — the PAPER grain is its OWN register (~3× the glass grain):
19
+ paper texture is MEANT to READ (the user: "I don't see any paper grain or grit
20
+ anywhere"), not sit at the glass perceptual floor. ONE token retunes paper grit
21
+ library-wide WITHOUT coarsening the subtle glass-material grain (the split keeps
22
+ glass calm + paper tactile). The dark arm (dark-arm.css) lifts it for soft-light. */
23
+ /* BD.W-PAPER-MORPHISM — re-calibrated to the JND floor for the CORRECTED coarse
24
+ tooth + multiply blend (std ≥ 4.5 light, the no-squint floor): multiply on the
25
+ cream pole is GENTLE so it needs MORE alpha. The prior 0.08 rode a blend
26
+ (overlay) that was mathematically incapable of moving a near-white pixel. */
27
+ --paper-grain-opacity: 0.22;
18
28
  /* BB.W-LIQUIDHOVER — the grain ENGAGE clock: a hover/active grain lift cross-fades
19
29
  the grain `::after` OPACITY on this thin ~120ms linear write while the
20
30
  `background-image` stays ALWAYS PRESENT (never a none→image swap — the one-frame
@@ -33,6 +43,20 @@
33
43
  --hairline-under-shadow: 0 0.5px 0 0 rgb(0 0 0 / 0.04);
34
44
  --border-hairline: var(--hairline-catch-light), var(--hairline-under-shadow);
35
45
 
46
+ /* BC.W-AX-METAL-GLOW — the brand-metal catch-light DEFAULTS (the consumer
47
+ retune seam). The metal-shimmer family (`.metal-{gold,silver,bronze}`,
48
+ metal.css) halos the text-clip with a `drop-shadow` of the metal's OWN base
49
+ hue at this radius + strength — the gold reads as LIT metal, not a flat fill.
50
+ Shared by the loop sweep AND the one-shot headline (the W-AX-COMPLETION-SEAL
51
+ seal glint reads `--metal-glow-blur`/`--metal-glow-opacity` — the ≥2-consumer
52
+ register). The defaults are a soft warm WHISPER bounded by the warm-cream
53
+ identity — a halo radius proportional to the text (0.5em) at a low strength
54
+ (0.35), NOT a neon bloom (the §6 calm register; the disco family stays gone).
55
+ A garish high-opacity glow is the consumer's preset choice, never the default;
56
+ a consumer who wants NO glow sets `--metal-glow-opacity: 0`. */
57
+ --metal-glow-blur-default: 0.5em;
58
+ --metal-glow-opacity-default: 0.35;
59
+
36
60
  /* Specular catch-light — 1.5px-tall top-edge highlight that swaps in for
37
61
  --glass-highlight on interactive moments (e.g. primary-action hover).
38
62
  Reads as a real catch-light on a curved surface. The `-dark` companion
@@ -54,6 +78,56 @@
54
78
  on text. The `-dark` companion is overridden inside `.dark` mirroring
55
79
  the `--glass-specular-dark` precedent. */
56
80
  --glass-edge-light: inset 0 0 0 0.75px hsl(0 0% 100% / 0.18);
81
+
82
+ /* BC.W-BLACK-BAR D2 — the DIRECTIONAL rim register (the iOS-27 glass-thickness
83
+ physics: light catch-light rims the TOP, a faint warm shadow grounds the
84
+ BOTTOM, so the plate reads as a physical pane lifted off the page — NEVER a
85
+ dark full-perimeter ink hairline). This RETIRES the load-bearing dark-rim role
86
+ of the per-rung `--glass-border-*` (now ≤5% α, glass.css): the silhouette is
87
+ carved by these two stops, not by the perimeter ink.
88
+ --glass-rim-top: the BRIGHT catch-light on the top edge (the kevinbism
89
+ `inset 0 1px white` motif; 0.30 α = apple-ios27.md §1.3 community value
90
+ rgba(255,255,255,0.3)). Subsumes the old omnidirectional white rim RING.
91
+ --glass-rim-bottom: the FAINT warm under-shadow grounding the plate (the
92
+ warm-ink that used to ring the whole perimeter, now only the bottom, at a
93
+ whisper 6% — riding --foreground so it stays warm-not-grey, BA.W-NO-GRAY).
94
+ Plain per-mode arms — NEVER an inset fragment inside light-dark() (the dark arm
95
+ re-declares both in dark-arm.css; light-dark() round an inset computes the WHOLE
96
+ box-shadow to none). The dark arm lifts the top to 0.40 (dark glass glows where
97
+ light passes) + keeps the bottom under-shadow at 6%. */
98
+ /* BD.W-GLASS-KEY-EDGE — the cel KEYSTONE. ONE light vector (the 1940s cel
99
+ upper-right key) drives WHICH edge of the existing two-stop directional rim
100
+ reads LIT vs SHADE, in lockstep with the shipped `.shadow-cartoon-*` down-LEFT
101
+ cast (shadow.css `-Npx Npx` → key upper-right). The key is expressed NOT as a
102
+ `-58deg` angle with sign-inverted cos()/sin() trig (the glass-material sign
103
+ trap — banned here), but as two PLAIN per-axis sign tokens the rim stops read
104
+ directly: the LIT catch wraps the key-facing edges (top + right), the SHADE
105
+ under-shadow grounds the opposite edges (bottom + left). A consumer re-points
106
+ `--glass-key-lit-x`/`--glass-key-lit-y` to move the key (e.g. upper-LEFT →
107
+ `1px`/`1px`) and the rim re-reads off it with ZERO new layer, ZERO new conic,
108
+ ZERO new DOM node. The key's SIGN tokens below are the wired form (the
109
+ upper-right keystone). */
110
+ --glass-key-lit-x: -1px; /* the lit catch sits on the RIGHT edge (key-facing) */
111
+ --glass-key-lit-y: 1px; /* …and the TOP edge — the upper-right key */
112
+ --glass-key-shade-x: 1px; /* the under-shadow grounds the LEFT edge */
113
+ --glass-key-shade-y: -1px; /* …and the BOTTOM edge — opposite the key */
114
+ /* BC.W-BLACK-BAR D2 + BD.W-GLASS-KEY-EDGE — the two-stop directional rim, now
115
+ KEY-DRIVEN: the bright catch-light `--glass-rim-top` rides the lit (key-facing)
116
+ edges, the faint warm under-shadow `--glass-rim-bottom` rides the shade edges.
117
+ Which edge each lands on is `--glass-key-{lit,shade}-{x,y}` so the rim and the
118
+ cartoon cast AGREE on one light source (the cel coherence). At the default
119
+ upper-right key these resolve byte-compatibly to the shipped top-lit/bottom-shade
120
+ silhouette (top catch + bottom under-shadow) PLUS the key-facing side stops, so
121
+ the lit edge reads as a real lit pane corner, not a flat omnidirectional halo.
122
+ The accent (BB.W-GLASS-ACCENT) still mixes onto the lit ink in rim.css — at 0%
123
+ strength byte-identical. Plain per-mode arms — NEVER an inset fragment inside
124
+ light-dark() (the dark arm re-declares both in dark-arm.css). */
125
+ --glass-rim-top:
126
+ inset 0 var(--glass-key-lit-y) 0 hsl(0 0% 100% / 0.30),
127
+ inset var(--glass-key-lit-x) 0 0 hsl(0 0% 100% / 0.18);
128
+ --glass-rim-bottom:
129
+ inset 0 var(--glass-key-shade-y) 0 color-mix(in srgb, var(--foreground) 6%, transparent),
130
+ inset var(--glass-key-shade-x) 0 0 color-mix(in srgb, var(--foreground) 4%, transparent);
57
131
  /* BA.W-DARK-MATERIAL scope 2 — the dark edge/rim is the PRIMARY silhouette device in
58
132
  dark. The light register's fill+shadow carry the plate; in dark the fill barely
59
133
  separates (the deep page is near-black), so the EDGE + the transmitted glow carry the
@@ -83,6 +157,29 @@
83
157
  --glass-tint-source: var(--card);
84
158
  --glass-tint-strength: 0%;
85
159
 
160
+ /* BD.W-TAB-IOS-CAPSULE — the `.glass-capsule` warm-floor (C6). `--card` itself
161
+ is too pale to clear the meanChroma ≥ 0.02 floor (its own OKLab chroma is
162
+ ~0.015), so the capsule composes a SMALL fixed floor toward an explicitly
163
+ WARM oklch source — a warm cream/amber that carries real chroma. This is the
164
+ build-trap-(d) safe form (a warm color, never bare `transparent`). At the 16%
165
+ floor the painted capsule fill clears chroma ≥ 0.02 with negligible L lift
166
+ (stays near-white). Mode-invariant warm (the oklch reads warm on both the
167
+ light cream page and the dark canvas — the warm-floor is a property of the
168
+ LOZENGE, not the page); the floor is INDEPENDENT of the `--glass-tint-strength:
169
+ 0%` adaptive default (which is zero-delta at rest, lifting only under the
170
+ bright bucket). Both are composed in `.glass-capsule`'s fill. */
171
+ --glass-capsule-warm: oklch(0.88 0.1 75);
172
+ --glass-capsule-warm-floor: 16%;
173
+
174
+ /* BD.W-TAB-IOS-CAPSULE — the `.glass-capsule-track` recess ink (the iOS-27
175
+ sunken-well inner-top edge). A PLAIN per-mode pair — this light arm + the dark
176
+ arm in `tokens/dark-arm.css`. NEVER a `light-dark()` fragment: an inset-shadow
177
+ leg inside `light-dark()` computes the WHOLE `box-shadow` to `none` (the
178
+ binding MEMORY lesson) and the recess would silently vanish. Bounded warm ink
179
+ so it darkens the inner-top edge without re-coloring the warm fill (no gray
180
+ well). */
181
+ --tab-track-recess-ink: color-mix(in srgb, var(--foreground) 7%, transparent);
182
+
86
183
  /* AX.W55 — adaptive glass legibility (the iOS-26/27 "locally darken the glass
87
184
  over light content" move; G2). There is NO web API that reads the pixels
88
185
  painted BEHIND a `backdrop-filter` element, so the backdrop-luminance signal
@@ -120,8 +217,32 @@
120
217
  bucket blocks drive to; the live 4.5:1 readback (proof:adaptive-glass π arm)
121
218
  ratifies the exact value. */
122
219
  --glass-backdrop: dark;
123
- --glass-backdrop-luma: ;
124
220
  --glass-tint-ink: var(--foreground);
221
+
222
+ /* BD.W-DOCK-CORE (D1) — the warm-CHROMATIC dock tint ink (the keystone, RESEARCH-3).
223
+ The dock self-engage (dock/morph.css) mixes its thin ~0.42-alpha plate toward the
224
+ near-black `--foreground` (chroma ≈ 0.0062) → it darkens L with chroma DEAD-FLAT (the
225
+ gray dock the user reports). This dock-SCOPED ink extracts the foreground's warm
226
+ hue/chroma via `oklch(from …)` (the BB.W-DARK-INK-WARM idiom — NOT a new mechanism),
227
+ LIFTS the chroma to 0.05 (well above foreground's 0.0062), and DROPS L to 0.42 (the
228
+ darken anchor). At the bright-bucket AA engage the composited plate yields a WARM
229
+ material darken (C ≈ 0.016, ~2× HEAD, H ≈ 62°) — never gray. The OUTER mix stays
230
+ `color-mix(in oklab)` (the glass-tint family, AW.W26 in-srgb fence untouched); this
231
+ `oklch(from)` is only the INK SOURCE. The GLOBAL `--glass-tint-ink` above is FROZEN
232
+ (W-DARK-MATERIAL's whole-system register) — this is a NEW dock-scoped token read ONLY
233
+ by the dock self-engage (file-line-disjoint, no-dual-path). */
234
+ --glass-tint-ink-dock: oklch(from var(--foreground) 0.42 0.05 h);
235
+
236
+ /* BC.W-ADAPTIVE-RECONCILE — the ONE retune knob for the continuous observer
237
+ driver. `--glass-backdrop-luma` (the measured sampled relative-luminance the
238
+ useGlassBackdropLuminance observer WRITES, registered typed in property-regs.css)
239
+ is now READ on the RHS of the `--glass-tint-strength` clamp (glass/ladder.css +
240
+ dock/morph.css): below this knee the plate holds the calm warm-cream floor; above
241
+ it the strength ramps CONTINUOUSLY toward the ≤24% AA ceiling (the iOS-27 dynamic-
242
+ range shift, apple-ios27.md §1.5 ~0.6 light threshold). The dead-knob is closed —
243
+ the loop READS. A consumer raising the knee darkens LATER (a brighter backdrop is
244
+ tolerated before the lift); the ONE override point for the whole adaptive axis. */
245
+ --glass-backdrop-luma-knee: 0.6;
125
246
  /* AZ.W-ADAPTIVE-AUTO Arm 1 — recalibrated 18% → 20%. The bump strengthens the
126
247
  G2 surface-SILHOUETTE darken (ΔL ≈ 0.40 over synthetic white, the plate is
127
248
  distinguishable from a bright page behind) while staying bounded ≤ 24% (the