@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
@@ -48,3 +48,154 @@
48
48
  precompiled contract). */
49
49
  overflow-y: auto;
50
50
  }
51
+
52
+ /* ════════════════════════════════════════════════════════════════════════
53
+ BD.W-SELECT-WELL (P4 select-forms) — the welling WARM-GLASS listbox + the
54
+ keyed warm control EDGE. The Select is the REFERENCE consumer of the shared
55
+ field + capsule + accent + reveal union — every leg COMPOSES a shipped/sibling
56
+ register, ZERO new component, ZERO fork.
57
+
58
+ The three legs that live HERE (the consumer side):
59
+ · .glass-control-edge — the keyed two-stop warm rim every form control reads
60
+ so it has a DEFINED edge over the field (fixes the trigger box-shadow:none
61
+ cream-on-cream melt). Composes the SHIPPED `--glass-rim-top`/`--glass-rim-
62
+ bottom` keyed pair (the `--glass-key` upper-right cel key) — NOT a select-
63
+ private border, NOT a re-minted rim.
64
+ · the menu plate WARM FLOOR + α-drop — the menu reads the SHIPPED warm-capsule
65
+ floor (`--glass-capsule-warm` at `--glass-capsule-warm-floor`, the proven
66
+ meanChroma ≥ 0.02 source) so it is warm-cream even over a flat page, AND the
67
+ plate α drops so the warmed source + the portal field TRANSMIT.
68
+ · the portal warm FIELD — a clipped menu-local layer carrying the route's
69
+ `--field-h` (re-emitted on the portal root) so the menu transmits its route
70
+ identity even where the page field is faint behind the body plate.
71
+ ════════════════════════════════════════════════════════════════════════ */
72
+ @layer components {
73
+ /* ── .glass-control-edge — the keyed warm control rim (the cream-on-cream fix) ──
74
+ The form controls read `.control-surface` / `.input-pill` (control-surfaces.css)
75
+ which carry a border + fill but `box-shadow: none` — so over a warm cream field
76
+ the trigger's 1.5px border melts and the control reads as a flat cream smudge.
77
+ This register adds the SHIPPED keyed two-stop directional rim (the bright top/
78
+ right catch-light + the faint warm bottom/left under-shadow, `--glass-key` upper-
79
+ right) so the control reads as a lifted glass plate with a defined warm edge over
80
+ the field. ONE register, ≥8 consumers (Select trigger + Input/Textarea/NumberField
81
+ pill + Checkbox/Radio + Switch track + Combobox anchor) — the DRY bar cleared by
82
+ construction. Composed (not re-declared): the rim is the SAME `--glass-rim-top`/
83
+ `--glass-rim-bottom` pair `.glass-capsule` reads, so `--glass-key` re-points BOTH
84
+ the capsule and the control edge from ONE handle (cel coherence). */
85
+ .glass-control-edge {
86
+ box-shadow:
87
+ var(--glass-rim-top),
88
+ var(--glass-rim-bottom);
89
+ }
90
+ /* Compose the keyed edge UNDER any control-owned ring/shadow: a control with its
91
+ OWN box-shadow (the Switch thumb, the focus ring on the pill) layers its shadow
92
+ FIRST, then the rim — the rim is the resting silhouette, the ring is the focus
93
+ overlay (the pill's `:focus-visible` box-shadow wins by source order + its own
94
+ rule). The rim travels with the control on the SHARED bezier (the pill/control-
95
+ surface already transition box-shadow on `--ease-standard`). */
96
+
97
+ /* ── The menu plate WARM FLOOR + α-drop (the un-gray amplifier) ──
98
+ The floating recipe (`.glass-floating`, ladder.css) composes
99
+ `color-mix(--glass-bg-floating, --glass-tint-source --glass-tint-strength)`,
100
+ and `--glass-tint-strength` floors at 0% at calm rest — so the menu plate is
101
+ near-gray-flat. RE-POINT the menu fill to compose the SHIPPED warm-capsule floor
102
+ (`--glass-capsule-warm` at `--glass-capsule-warm-floor`, the proven meanChroma
103
+ ≥ 0.02 source — the SAME token the tab capsule reads, DRY) ON TOP of the floating
104
+ tint, AND drop the plate α so the warmed source + the portal field TRANSMIT and
105
+ give real L-variance (the menu is warm GLASS, never an opaque cream slab). The
106
+ six-layer rim/blur/shadow composite is UNTOUCHED — only the FILL admit changes. */
107
+ [data-slot="select-content"],
108
+ [data-slot="combobox-list"] {
109
+ /* The α-drop seam: a consumer can re-solidify via `--select-plate-alpha: 1`.
110
+ Default 0.90 (light) drops the ~0.80α floating base to ~0.72 effective (the
111
+ amendment's transmit target) so the warmed source + the portal field show
112
+ through while the plate keeps body. The dark arm keeps more body (see .dark
113
+ below). The combobox list is the SAME overlay-family warm-glass plate
114
+ (DRY — one warm-floor register for both portalled pickers). */
115
+ --select-plate-alpha: 0.90;
116
+ background: color-mix(
117
+ in oklab,
118
+ color-mix(
119
+ in oklab,
120
+ var(--glass-bg-floating-tinted, var(--glass-bg-floating)),
121
+ var(--glass-capsule-warm) var(--glass-capsule-warm-floor)
122
+ ),
123
+ transparent calc((1 - var(--select-plate-alpha)) * 100%)
124
+ );
125
+ /* the cartoon weight — the SHIPPED `--shadow-cartoon-lg` warm cel stamp UNDER
126
+ the floating elevation so the panel reads as a physical card lifted off the
127
+ page. Composed onto the floating box-shadow stack via the plate's own rule
128
+ (the floating tier's `--glass-material-rim` + shadows stay; this ADDS the
129
+ cartoon under-stamp). Static, PRM-immune. */
130
+ box-shadow:
131
+ var(--glass-material-rim),
132
+ var(--glass-under-shadow-vivid),
133
+ var(--glass-shadow-floating),
134
+ var(--shadow-cartoon-lg);
135
+ }
136
+ .dark [data-slot="select-content"],
137
+ .dark [data-slot="combobox-list"] {
138
+ /* dark glass needs more body — the warm field reads as a glow band, not a wash
139
+ lost in near-black; keep the fill nearly solid so the dark menu has presence.
140
+ PLAIN per-mode arm (not a light-dark() fragment — the inset-shadow trap, and
141
+ the box-shadow above carries no inset leg but the discipline holds). */
142
+ --select-plate-alpha: 0.94;
143
+ }
144
+
145
+ /* ── .glass-field-portal — the portal-local warm field (route identity) ──
146
+ The menu portals to <body>, OUTSIDE the route's field, so its `backdrop-filter`
147
+ has nothing warm to transmit. A clipped menu-local layer BEHIND the plate (z -1,
148
+ NO backdrop-filter on it — glass-cannot-sample-glass avoided by construction)
149
+ paints a 3-stop warm spine keyed to the route's `--field-h` (re-emitted on the
150
+ portal root via `data-field-palette` → `--field-h`). `inset: 0` (clipped INSIDE
151
+ — the blur bends it THROUGH the plate as real L-variance, NOT an `inset:-20%`
152
+ halo leaking around the box). Defaults to `--field-h: 48` (forms terracotta)
153
+ when the route does not re-emit, so a bare Select still reads warm. */
154
+ .glass-field-portal {
155
+ position: relative;
156
+ }
157
+ .glass-field-portal::before {
158
+ content: "";
159
+ position: absolute;
160
+ inset: 0;
161
+ z-index: -1;
162
+ pointer-events: none;
163
+ border-radius: inherit;
164
+ background:
165
+ radial-gradient(70% 60% at 24% 22%,
166
+ oklch(0.92 0.08 var(--field-h, 48) / 0.55), transparent 72%),
167
+ radial-gradient(64% 58% at 82% 80%,
168
+ oklch(0.88 0.07 calc(var(--field-h, 48) + 18) / 0.50), transparent 70%),
169
+ radial-gradient(60% 62% at 60% 40%,
170
+ oklch(0.90 0.06 calc(var(--field-h, 48) - 14) / 0.48), transparent 74%);
171
+ }
172
+ /* DARK arm (PLAIN per-mode, not :global()/light-dark()) — the dark field stops lift
173
+ to a real glow band (oklch L ~0.22–0.30, higher chroma) so the field-thesis is met
174
+ in dark, not a wash lost in near-black. */
175
+ .dark .glass-field-portal::before {
176
+ background:
177
+ radial-gradient(70% 60% at 24% 22%,
178
+ oklch(0.30 0.10 var(--field-h, 48) / 0.55), transparent 72%),
179
+ radial-gradient(64% 58% at 82% 80%,
180
+ oklch(0.26 0.09 calc(var(--field-h, 48) + 18) / 0.50), transparent 70%),
181
+ radial-gradient(60% 62% at 60% 40%,
182
+ oklch(0.28 0.08 calc(var(--field-h, 48) - 14) / 0.48), transparent 74%);
183
+ }
184
+ /* honest-degraded arm — engines without oklch() get an hsl warm spine, never gray. */
185
+ @supports not (color: oklch(0.9 0.08 48)) {
186
+ .glass-field-portal::before {
187
+ background: radial-gradient(70% 60% at 24% 22%,
188
+ hsl(var(--field-h, 48) 60% 88% / 0.5), transparent 72%);
189
+ }
190
+ .dark .glass-field-portal::before {
191
+ background: radial-gradient(70% 60% at 24% 22%,
192
+ hsl(var(--field-h, 48) 45% 26% / 0.55), transparent 72%);
193
+ }
194
+ }
195
+ }
196
+
197
+ /* ── PRM is colour-static here — the field + floor + edge + cartoon shadow are PAINT,
198
+ not motion, so they REMAIN under `prefers-reduced-motion: reduce` (un-gray and
199
+ selection-legibility need no motion). The reveal/pour/chevron motion legs are
200
+ carved in their own home recipes (reveal.css / menu.css) — this consumer file
201
+ introduces no motion to gate. */
@@ -315,6 +315,14 @@
315
315
  --shadow-cartoon-md: var(--cartoon-shadow-md);
316
316
  --shadow-cartoon-lg: var(--cartoon-shadow-lg);
317
317
 
318
+ /* BC.W-CONTROL-SMOOTH — the warm focus-ring box-shadow bridged to the
319
+ `shadow-focus-ring` utility (AW.W26 --focus-ring-shadow register). The
320
+ `.focus-ring` utility auto-arms on :focus-visible; this bridge lets a
321
+ surface compose the SAME warm ring on a NON-:focus-visible state (the
322
+ TagsInputItem reka roving-tabindex `data-[state=active]` selection) via the
323
+ @theme utility, not a `shadow-[var(--focus-ring-shadow)]` arbitrary wrap. */
324
+ --shadow-focus-ring: var(--focus-ring-shadow);
325
+
318
326
  /* ═══════════════════════════════════════════════
319
327
  Blur → blur-* and backdrop-blur-* utilities
320
328
  ═══════════════════════════════════════════════ */
@@ -332,6 +340,15 @@
332
340
  --ease-spring-snappy: var(--spring-snappy);
333
341
  --ease-spring-bouncy: var(--spring-bouncy);
334
342
  --ease-spring-gentle: var(--spring-gentle);
343
+ /* BC.W-SPRING-EASE — the minted iOS interactive press register's @theme alias
344
+ (the documented public register the consumers reach by name; the JS path
345
+ reads it via useSpringPress + --glass-btn-press-t). */
346
+ --ease-spring-press: var(--spring-press);
347
+ /* BC.W-DECK — the deck slide-transition spring's @theme alias (the documented
348
+ public register a consumer's slide `transition-timing-function` reaches by
349
+ name: `ease-spring-deck`). --spring-deck aliases --spring-smooth; the headless
350
+ library mints the register, the deck consumer reads it (presets-in-consumers). */
351
+ --ease-spring-deck: var(--spring-deck);
335
352
 
336
353
  --ease-standard: var(--motion-ease-standard);
337
354
  --ease-out: var(--motion-ease-out);
@@ -352,6 +369,11 @@
352
369
  --transition-duration-panel: var(--duration-panel);
353
370
  --transition-duration-xl: var(--duration-xl);
354
371
  --transition-duration-xxl: var(--duration-xxl);
372
+ /* BC.W-CONTROL-SMOOTH — the named iOS control-press surface beat (0.12s, the
373
+ calm bg/color/box-shadow cross-fade clock the `.control-surface`/Toggle
374
+ family rides). Bridged to the `duration-control` utility so a control
375
+ composes the named clock, not a `duration-[var(--duration-control)]` wrap. */
376
+ --transition-duration-control: var(--duration-control);
355
377
  /* BA.W-GLASS-CAL — `--transition-duration-sparkle` bridge DELETED with the
356
378
  `--duration-sparkle` token (the disco retirement); no `duration-sparkle`
357
379
  utility consumer. */
@@ -42,9 +42,26 @@
42
42
  on Checkbox + base Tabs onto a softer, named radius. One geometry language
43
43
  across the form family — token + class only, no new primitive. */
44
44
  --radius-field: var(--radius-2xl);
45
- --radius-control: var(--radius-md);
45
+ /* BC.W-CONTROL-SMOOTH — the small-inline-control corner rung is a STADIUM, not a
46
+ fixed small px. The prior `--radius-md` (6px) read SQUARE on a 16-24px control
47
+ (6px on a 16px box = 0.38-of-height — a rounded-rect, not a pill); the iOS-27
48
+ small-control silhouette is a near-stadium pill where the radius SCALES with the
49
+ control (clamped to half-height by `--radius-pill`'s 9999px geometry, so a 16px
50
+ control reads an 8px-radius pill — soft at every size). This retires the raw
51
+ `rounded-sm` (4px) on Checkbox + base Tabs AND the small-control square class in
52
+ ONE rung. The `card` toggle TILE keeps `--radius-card` (the large glass surface
53
+ keeps its 1rem squircle — only the small inline controls re-round). The corner-
54
+ SHAPE squircle axis reads at LARGE radius only (ROUND set = card+pill for small),
55
+ so the small pills stay ROUND (no regression). */
56
+ --radius-control: var(--radius-pill);
46
57
  --radius-badge: var(--radius-pill);
47
58
  --radius-dock: var(--radius-pill);
59
+ /* BC.W-TABS-IOS — the iOS-27 segmented-control stadium register. The pill is a
60
+ stadium by construction (--radius-pill clamps to half-height on a short box →
61
+ a true end-cap), so the tab strip stops being a squared rounded-rect. The
62
+ value.js DESIGN.md idiom: the role-bearing pill token, NOT a hand-rolled
63
+ `rounded-full`. A consumer retunes the tab geometry via `:root { --radius-tab }`. */
64
+ --radius-tab: var(--radius-pill);
48
65
  /* AW.W3b — the big-dock card shell's default (comfortable-density) radius.
49
66
  The density-scaled --dock-card-radius (dock.css) resolves through this. */
50
67
  --radius-dock-card: var(--radius-3xl);
@@ -69,7 +69,7 @@
69
69
  allows a near-white translucent surface. The DARK --card is W-DARK-MATERIAL's
70
70
  lifted hsl(24 8% 16%) (NOT re-warmed here — the dark register is its work).
71
71
  Bounded: the cream family, never a tinted cast (the triumvirate bar). */
72
- --card: hsl(36 48% 97%);
72
+ --card: hsl(30 85% 96%);
73
73
  --card-foreground: var(--foreground);
74
74
  --popover: var(--card);
75
75
  --popover-foreground: var(--foreground);
@@ -121,6 +121,16 @@
121
121
  `--border` (which is `var(--neutral-4)`, light-dark()-resolved). */
122
122
  --border-soft: color-mix(in srgb, var(--border) 45%, transparent);
123
123
 
124
+ /* BC.W-SEPARATOR-FIX — the warm separator hairline ink. A rule reads as
125
+ WARM material, not a grey `--border` line (BA.W-NO-GRAY floor): the
126
+ split-rule segments + un-labelled hairline both paint `--separator-ink`.
127
+ It is a `color-mix` off `--foreground` (`light-dark()`-resolved, so it
128
+ auto-darks warm in both modes — the warm-ink hairline, not `--neutral-4`
129
+ grey). 22% is a visible-but-whisper rule (crisper than `--border-soft`'s
130
+ 45%-of-grey; this one is foreground-derived so it carries the warm hue
131
+ directly). A consumer retints every separator from this single rung. */
132
+ --separator-ink: color-mix(in srgb, var(--foreground) 22%, transparent);
133
+
124
134
  /* AQ.W3 §W3.4 — tokenized scrollbar thumb + track. Minted in the color
125
135
  block so the `scrollbar-color` / `::-webkit-scrollbar-thumb` rungs read a
126
136
  single source. Auto-dark via `--muted-foreground` (light-dark()-resolved,
@@ -224,9 +234,9 @@
224
234
  keyframes.js ω₀ = 2π/response convention, mints no second ω). */
225
235
  --constellation-warp-response: 0.55; /* s — keyframes.js angular period (NOT a settle) */
226
236
  --constellation-warp-zeta: 1.0; /* critically damped — a focal mark must NOT ring */
227
- --constellation-well-gain: 14000; /* inverse-square force scale (the held-pull gain) */
237
+ --constellation-well-gain: 19000; /* inverse-square force scale (the held-pull gain). Lifted 14000→19000 (BC.W-VIZ-CONSTELLATION): the GPU substrate's high-refresh frame loop ramps the held strength to only ~0.70 within the egg-live π perturb window, so the weaker effective force (fought by the |v|→speed ease-back) fell under the gate's ≥20% perturb floor — a stronger pull restores the heat. Held-physics only; rest is byte-untouched. Mirrors DEFAULT_WELL_CONFIG.gain. */
228
238
  --constellation-well-reach: 340; /* base-width px — the well's reach (k-scaled at step) */
229
- --constellation-well-ramp: 4.0; /* 1/s — the ARM rate (≈0.25s bloom; release is the fixed brisk WELL_RELEASE_RAMP — the field-cools invariant, not consumer-tunable) */
239
+ --constellation-well-ramp: 8.0; /* 1/s — the ARM rate. Doubled 4→8 (BC.W-VIZ-CONSTELLATION) so the strength reaches near-full power within the gate's 40-frame perturb window at the GPU substrate's high refresh (~0.12s bloom); release is the fixed brisk WELL_RELEASE_RAMP — the field-cools invariant, not consumer-tunable. Mirrors DEFAULT_WELL_CONFIG.ramp. */
230
240
  --constellation-well-max-speed: 4.0; /* base-width px/frame cap — the no-slingshot clamp */
231
241
  --constellation-well-hold-ms: 140; /* ms hold before the well arms */
232
242
  --constellation-wander-idle: 8000; /* ms — min idle between auto re-targets (the W-CON1 drift cadence) */
@@ -243,7 +253,7 @@
243
253
  --section-color-2: oklch(0.484 0.163 265.5); /* indigo */
244
254
  --section-color-3: oklch(0.542 0.089 222.8); /* teal-cyan */
245
255
  --section-color-4: oklch(0.551 0.088 171.1); /* forest */
246
- --section-color-5: oklch(0.623 0.124 69.6); /* amber */
256
+ --section-color-5: oklch(0.530 0.124 69.6); /* amber — BC.W-ACCENT-TONE #13: the safeAccentColor-derived rebaseline (HEAD 0.623 → 0.530, 3.49:1 → 5.11:1 vs the warm-cream card; the dark arm already clears 8.07:1 so it stays). --viz-amber auto-tracks; fourier's :root override deletes on adopt. */
247
257
  --section-color-6: oklch(0.579 0.201 30.4); /* tomato-red */
248
258
  --section-color-7: oklch(0.532 0.180 317.5); /* violet */
249
259
  --section-color-8: oklch(0.520 0.176 8.4); /* ruby */
@@ -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