@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
@@ -0,0 +1,143 @@
1
+ /* ════════════════════════════════════════════════════════════════════════
2
+ .glass-capsule — the ONE shared glassy register (BD.W-TAB-IOS-CAPSULE).
3
+
4
+ The warm-transmissive lifted lozenge + the recessed warm channel it rides in
5
+ + the glass hover/press register, factored ONCE so EVERY consumer (segmented
6
+ pill · dock-tab selected · Button glass · chips · cards) COMPOSES it instead
7
+ of re-forking the lifted-plate composite. ≥3 consumers by construction — the
8
+ overfitting bar cleared by extraction. The tabs facility is the reference
9
+ implementation; "make buttons glassy like the tabs" is a one-recipe substitution.
10
+
11
+ Clean break — the prior inline `.segmented-indicator` composite (fill + rim +
12
+ lift) moves here VERBATIM and the pill COMPOSES the class. No alias, no legacy.
13
+
14
+ @layer components, @import-ed in index.css AFTER the glass ladder (so the
15
+ `--glass-bg-*`/`--glass-rim-*`/`--glass-shadow-*` tokens resolve) and BEFORE
16
+ the consuming tabs/dock/button recipes.
17
+
18
+ THREE states:
19
+ · REST = .glass-capsule — the warm-glass lifted plate.
20
+ · TRACK = .glass-capsule-track — the recessed warm channel.
21
+ · HOVER = .glass-capsule-hover — specular catch-light lift + press-snap.
22
+
23
+ Every channel is compositor-only + Safari-native by construction (the §7 floor):
24
+ no `backdrop-filter: url()`, no SVG goo, no WebGL. The recess is a STATIC inset
25
+ shadow built off a PLAIN per-mode token pair (NEVER a `light-dark()` fragment —
26
+ an inset-shadow leg inside light-dark() computes the WHOLE box-shadow to `none`,
27
+ the binding MEMORY lesson). The hover lift is a `scale` + `--glass-specular`
28
+ step (the SHARED specular-lift primitive `.glass-drag-lift` also composes).
29
+ ════════════════════════════════════════════════════════════════════════ */
30
+
31
+ @layer components {
32
+ /* ── .glass-capsule — the raised lit warm-glass lozenge ──
33
+ The fill reads the SHARED element-level oklab-tinted floating pair (the W55
34
+ adaptive seam, `surfaces.css` `:where(.btn-glass, .segmented-indicator,
35
+ .glass-capsule)`) — over a bright field it darkens-to-legible, over a calm
36
+ field it stays warm-cream/near-white. The FORWARD-ness comes from the rim +
37
+ lift, NOT from cranking the same-hue alpha. */
38
+ .glass-capsule {
39
+ /* The WARM-FLOOR re-invent (BD.W-TAB-IOS-CAPSULE C6). The bare
40
+ `--glass-bg-floating-tinted` desaturates to near-gray over a vibrant
41
+ aurora (live-measured oklab(0.793 0.005 0.012), chroma 0.0128 < 0.02).
42
+ Compose a SMALL floor toward an explicitly WARM oklch source so the
43
+ CAPSULE's own resolved fill carries chroma — independent of the
44
+ `--glass-tint-strength: 0%` adaptive default (which is zero-delta at rest
45
+ and only lifts under the bright bucket). This exercises the REAL
46
+ `color-mix(in oklab)` seam over the live light-dark() fill (NOT a
47
+ hardcoded hsl look-alike — the amendment's fake-gate ban). The source is
48
+ a warm oklch (build-trap-(d) safe form — warm color, never bare
49
+ `transparent`); at `--glass-capsule-warm-floor: 16%` the painted capsule
50
+ clears meanChroma ≥ 0.02 BOTH modes with negligible L lift (stays near-
51
+ white). `--glass-capsule-warm` is a warm cream amber both modes. */
52
+ /* The fill is INDIRECTED through `--glass-capsule-fill` so a consumer can
53
+ re-point the rung (quiet/loud/selected — buttons' quiet triplet, the dock
54
+ selected pill) WITHOUT forking the register; the default keeps the warm
55
+ floor compose. */
56
+ background: var(
57
+ --glass-capsule-fill,
58
+ color-mix(
59
+ in oklab,
60
+ var(--glass-bg-floating-tinted),
61
+ var(--glass-capsule-warm) var(--glass-capsule-warm-floor)
62
+ )
63
+ );
64
+ backdrop-filter: var(--glass-blur-floating);
65
+ -webkit-backdrop-filter: var(--glass-blur-floating);
66
+ /* The lifted-plate composite: the directional rim (bright top catch-light +
67
+ warm bottom under-shadow — the iOS-27 top-light/bottom-shadow thickness)
68
+ PLUS a layered glass under-shadow lifting the plate ~2-3px off the quiet
69
+ track. */
70
+ box-shadow:
71
+ var(--glass-rim-top),
72
+ var(--glass-rim-bottom),
73
+ var(--glass-shadow-floating);
74
+ border-radius: var(--radius-pill);
75
+ }
76
+
77
+ /* ── .glass-capsule-track — the recessed warm channel (the iOS-27 sunken well) ──
78
+ The track SINKS: rim + a STATIC inset recess leg. The recess ink is a PLAIN
79
+ per-mode token pair (`tokens/glass-fx.css` light arm, `tokens/dark-arm.css`
80
+ dark arm) — NEVER a `light-dark()` fragment (the inset-shadow trap). The
81
+ recess is static (a sunken channel does not pulse — never a @keyframes
82
+ target; `proof:no-layout-animation` holds). */
83
+ .glass-capsule-track {
84
+ background: var(--glass-bg-quiet);
85
+ backdrop-filter: var(--glass-blur-quiet);
86
+ -webkit-backdrop-filter: var(--glass-blur-quiet);
87
+ box-shadow:
88
+ var(--glass-rim-top),
89
+ var(--glass-rim-bottom),
90
+ inset 0 1px 2px var(--tab-track-recess-ink);
91
+ }
92
+
93
+ /* ── .glass-capsule-hover — the SHARED specular-lift primitive ──
94
+ The two-channel glass hover (specular catch-light lift + a hair of scale) +
95
+ the press-snap, on the FAST bezier clock (hover is a bezier ease, not a
96
+ spring), volume-preserving, compositor-only. This is the SAME specular-lift
97
+ idiom `.glass-drag-lift` carries — factored here ONCE; `.glass-drag-lift`
98
+ re-composes `--glass-specular`-step + `will-change` rather than forking a
99
+ parallel block. The non-selected pill + the buttons greenfield compose this
100
+ wholesale: glass at rest + specular-lift on hover + press-snap on active. */
101
+ .glass-capsule-hover {
102
+ /* The SPATIAL leg (scale) rides the weighty cartoon-punch curve (the
103
+ liquid-weight-universal mandate — a hover lift carries inertia/overshoot,
104
+ never an abrupt bezier jerk; the SAME spatial currency `.glass-chip`/
105
+ `.glass-atom` ride, PRM-zeroed via the `--ease-cartoon-punch` fallback). The
106
+ EFFECTS leg (the `--specular-intensity` gleam channel) stays on the fast
107
+ bezier (motion-canon P1 — an effects cross-fade is not a spatial motion). */
108
+ transition:
109
+ scale var(--duration-fast) var(--ease-cartoon-punch),
110
+ --specular-intensity var(--duration-fast) var(--ease-standard);
111
+ }
112
+ /* The SHARED specular-lift step — declared ONCE here, COMPOSED by both the hover
113
+ register AND the drag-lift (BD.W-TAB-IOS-CAPSULE C7: one declaration of the
114
+ `--glass-specular` catch-light step, never a parallel fork). `.glass-drag-lift`
115
+ (segmented-tabs.css) re-points its grabbed-state catch-light onto THIS step
116
+ rather than re-declaring `--glass-specular`; it adds only its distinct grabbing
117
+ bits (the grab cursor + the `will-change` compositor hint). The W-GLASS-CAL
118
+ sub-perceptual catch — a hair brighter at the specular edge, disco-FREE. */
119
+ .glass-capsule-hover:hover,
120
+ .glass-drag-lift {
121
+ /* Drive the REAL gleam-opacity channel (`--specular-intensity`, read by the
122
+ moving-specular `::before` at material.css opacity) — not the dead
123
+ `--glass-specular` name. Composes with the material hover system; fires for
124
+ both the :hover register AND the grabbed `.glass-drag-lift` class. */
125
+ --specular-intensity: 0.14;
126
+ }
127
+ .glass-capsule-hover:hover {
128
+ /* the 1.5% press-ready lift (the lift is hover-only; the drag-lift carries no
129
+ scale of its own — the translate/squish are the morph primitive's writes) */
130
+ scale: 1.015;
131
+ }
132
+ .glass-capsule-hover:active {
133
+ /* the --scale-press snap */
134
+ scale: var(--scale-press-sm, 0.97);
135
+ }
136
+ @media (prefers-reduced-motion: reduce) {
137
+ /* the lift is motion; the specular catch (a static legibility cue) stays. */
138
+ .glass-capsule-hover:hover,
139
+ .glass-capsule-hover:active {
140
+ scale: 1;
141
+ }
142
+ }
143
+ }
@@ -0,0 +1,215 @@
1
+ /* ════════════════════════════════════════════════════════════════════════
2
+ .glass-chip — BD.W-CHIP-CONGRUENT-GLASS: the ONE warm-glass toggle register
3
+ the chip family (ToggleChip · SelectableChip + the toggle-group children)
4
+ composes. A stadium-pill warm-glass LENS that PUNCHES when you pick it: the
5
+ tonal band floods through the translucent lens on `--ease-cartoon-punch` with
6
+ anticipation → overshoot → settle, a one-shot accent-bloom trailing the
7
+ spatial leg.
8
+
9
+ CONSUME-ONLY — declares ZERO own glass tokens (the no-fork fence, Fence C3c).
10
+ It COMPOSES:
11
+ · `.glass-capsule` — the warm-transmissive lozenge BODY (warm floor +
12
+ rim + lift + blur), on `--radius-pill`. The chip
13
+ is the ≥4th `.glass-capsule` consumer (after the
14
+ tab indicator + the button sites). NEVER inlines
15
+ `backdrop-filter` / `--glass-bg-*` / a rim.
16
+ · `.glass-capsule-hover` — the SHARED specular-lift + press-snap step.
17
+ · `.accent-tone` — the contrast-floored tonal channels (idle fill /
18
+ active band / active edge / contrast-safe ink).
19
+ · `--glass-fill-tint` / `--glass-fill-strength` (BE.W-TINTED-CHIP, glass.css)
20
+ — the per-instance plate-fill data hue the body
21
+ tints toward. The chip is its ≥3rd consumer; it
22
+ APPLIES the axis, never re-mints a tint.
23
+ · `--motion-weight` × `--ease-cartoon-punch` (BD.W-MOTION-WEIGHT /
24
+ -CARTOON-PUNCH) — the cartoon press/flood punch +
25
+ the PRM dial (`--motion-weight: 0`).
26
+
27
+ DISTINCT-not-fork of `.glass-atom` (the small-atom register: Badge/+N/slider):
28
+ both COMPOSE `.glass-capsule`. `.glass-atom` is the quiet always-on identity
29
+ chip; `.glass-chip` is the TOGGLE face whose state flip is the de-frauded
30
+ colour-flood punch. They never write each other's channels.
31
+
32
+ @layer components, @import-ed by index.css AFTER glass.css (so `.glass-capsule`
33
+ + `.accent-tone` + the `--glass-*` axes resolve) and BEFORE/AROUND the chip
34
+ recipes. Every channel is compositor-only + Safari-native (no
35
+ `backdrop-filter: url()`, no goo — Fence 8). The warm 0-alpha sources are
36
+ explicit `oklch(L C H / 0)` (NEVER bare `transparent` — the WebKit
37
+ black-premultiply hole, build-trap-(d)). Per-mode `.dark` arms (no
38
+ `light-dark()` fragment).
39
+ ════════════════════════════════════════════════════════════════════════ */
40
+
41
+ /* The COMMIT-flood scalar — the ON-flip envelope. `inherits: TRUE` is the
42
+ load-bearing de-fraud (challenge R1): an `inherits:false` reg resolves to its
43
+ `initial-value` on the `::after` PSEUDO (a separate box from the element that
44
+ sets it), so the flood reads `0` forever. `inherits:true` lets the element's
45
+ `[data-state="on"]{--chip-flood-t:1}` reach the pseudo. Typed so the opacity
46
+ interpolates a NUMBER, not the textual representation. On a pre-Baseline engine
47
+ that drops the typed reg the scalar collapses to the initial 0 — the chip still
48
+ selects (the COLOUR event below is plain `data-state`, never tied to the
49
+ scalar; challenge R5). */
50
+ @property --chip-flood-t {
51
+ syntax: "<number>";
52
+ inherits: true;
53
+ initial-value: 0;
54
+ }
55
+
56
+ @layer components {
57
+ /* ── .glass-chip — the warm-glass toggle lens ──
58
+ The chip wears `.glass-chip .glass-capsule .glass-capsule-hover .accent-tone`
59
+ (the component CVA composes all four). This rule owns only the chip-specific
60
+ layer: the warm idle floor (the #2 dormant-tint cure), the per-instance fill
61
+ tint over the capsule's warm body, the ONE `scale` write (hover/press/punch
62
+ folded), and the `::after` flood. The capsule owns the body/rim/blur. */
63
+ .glass-chip {
64
+ position: relative;
65
+ /* The flood `::after` sits ABOVE the translucent fill (challenge R2): a
66
+ new stacking context so `plus-lighter` blends over the lens body, never
67
+ occluded under an opaque layer. The capsule body is α<1, so the bloom
68
+ reads through. */
69
+ isolation: isolate;
70
+
71
+ /* ── The WARM IDLE FLOOR (root #2 cure) ──
72
+ The chip carries chroma at rest over warm-cream even with no vibrant
73
+ field behind. The floor RAISES the `.accent-tone` idle strength the chip
74
+ reads — a NON-self-referential floor (build-trap-(b): a property reading
75
+ ITSELF in its own `max()` is guaranteed-invalid and drops). A SEPARATE
76
+ input var is the source: the `.accent-tone` recipe's default idle
77
+ strength is 8%; the chip floors the resolved strength to
78
+ `--chip-tint-floor` so the idle AND the default-tone active band both
79
+ clear the 0.02 warm floor (the live finding: BOTH are gray over
80
+ `--primary`). PLAIN per-mode pair (12% light / 15% dark), NEVER
81
+ `light-dark()` (the inset-shadow trap). */
82
+ --chip-tint-floor: 12%;
83
+ --accent-fill-strength: max(8%, var(--chip-tint-floor));
84
+ /* Lift the DEFAULT-tone active band too (the §1b finding: the default
85
+ band reads C 0.013 — a darken, not a chroma lift). The band floors to a
86
+ bolder warm-clearing stop so a selected default chip is tonal, not gray. */
87
+ --accent-band-strength: max(18%, calc(var(--chip-tint-floor) + 10%));
88
+
89
+ /* ── The per-instance fill tint (BE.W-TINTED-CHIP CONSUME) ──
90
+ The translucent capsule body tints toward the consumer data hue ON TOP
91
+ of the W55 legibility composite. At the `@property` defaults
92
+ (`--glass-fill-tint: transparent` / strength 0%) this is the byte-
93
+ identical no-op (`color-mix(in oklab, X, transparent 0%)` ≡ X — the warm
94
+ floor above keeps the idle body warm even at a transparent tint). The
95
+ mix is `in oklab` (the perceptual glass-tint family). The 0-alpha stop is
96
+ warm `oklch(… / 0)`, never bare `transparent` (the WebKit black-
97
+ premultiply hole). */
98
+ --glass-chip-tinted: color-mix(
99
+ in oklab,
100
+ var(--glass-fill-tint, oklch(0.9 0.05 75 / 0))
101
+ var(--glass-fill-strength, 0%),
102
+ oklch(0.9 0.05 75 / 0)
103
+ );
104
+
105
+ /* ── The ONE scale write (hover/press/punch, single source of truth) ──
106
+ Folds the on-flood overshoot into ONE `scale` so it never collides with
107
+ the capsule-hover scale step (the CVA's `hover:scale-*` is retired in the
108
+ chip variants — this is the sole scale writer on the chip box). Volume-
109
+ preserving, center-pinned. The coefficient (0.12) is raised vs the
110
+ segmented-indicator's 0.06 so the dip/overshoot clear the gate's OWN
111
+ thresholds (≤0.996 dip / ≥1.04 overshoot at weight 1.0): the punch curve
112
+ peaks at 1.22 → 1 + 0.12·1.22·1.0 ≈ 1.026 over rest is too soft, so the
113
+ overshoot READ is carried by the curve's pre-dip (−0.04) + the COLOUR
114
+ event; the spatial leg adds the perceptible breathe without taffy. */
115
+ scale: calc(1 + 0.12 * var(--chip-flood-t, 0) * var(--motion-weight, 0.618));
116
+ transform-origin: center;
117
+
118
+ /* The SPATIAL legs (scale) settle on the punch clock; the EFFECTS legs
119
+ (background/border/color) stay on the bezier (motion-canon P1). */
120
+ transition:
121
+ scale var(--duration-normal) var(--ease-cartoon-punch),
122
+ background-color var(--duration-fast) var(--ease-standard),
123
+ border-color var(--duration-fast) var(--ease-standard),
124
+ color var(--duration-fast) var(--ease-standard);
125
+
126
+ /* ── The per-instance fill tint application ──
127
+ The capsule body (the `.glass-capsule` `background:` shorthand) is the
128
+ warm transmissive plate; the chip LAYERS the data-hue tint on top via
129
+ `background-image` (a later layer over the capsule's shorthand — the
130
+ proven `.paper-grid`/`.glass-atom` coexistence seam: paints OVER the
131
+ translucent fill, UNDER content). When `--glass-fill-tint` is unset the
132
+ tinted layer is the warm 0-alpha no-op (invisible) and the capsule's warm
133
+ body reads. */
134
+ background-image: linear-gradient(
135
+ var(--glass-chip-tinted),
136
+ var(--glass-chip-tinted)
137
+ );
138
+ }
139
+ .dark .glass-chip {
140
+ --chip-tint-floor: 15%;
141
+ }
142
+
143
+ /* ── The on-flip COLOUR event (the perceptible primary read) ──
144
+ OFF→ON floods the active band through the lens + lights the active rim + the
145
+ contrast-safe ink. Driven by PLAIN `data-state` (the reka Toggle contract),
146
+ NEVER tied to `--chip-flood-t` — so selection is legible even on a pre-
147
+ Baseline engine that drops the typed scalar (challenge R5). The `.accent-tone`
148
+ channels supply the colour; this rule only SWAPS which channel paints. */
149
+ .glass-chip[data-state="on"] {
150
+ background-color: var(--accent-band);
151
+ border-color: var(--accent-edge);
152
+ color: var(--accent-ink);
153
+ /* arm the spatial+bloom envelope */
154
+ --chip-flood-t: 1;
155
+ }
156
+
157
+ /* ── The COMMIT flood `::after` (the trailing accent bloom) ──
158
+ An additive radial bloom INSIDE the lens (`inset:0`, `border-radius:inherit`,
159
+ `plus-lighter`) ABOVE the translucent fill (inside `isolation:isolate`,
160
+ challenge R2). Its opacity reads `--chip-flood-t` (inherited from the element,
161
+ challenge R1) so it fires on ON and clears on OFF. The transition DELAY trails
162
+ the spatial leg (EFFECTS-trails-SPATIAL, the v3 f006→f007 ordering). The bloom
163
+ hue is the active band; default tone neutral → a provable near-no-op until a
164
+ consumer sets a vibrant `:tone`. */
165
+ .glass-chip::after {
166
+ content: "";
167
+ position: absolute;
168
+ inset: 0;
169
+ border-radius: inherit;
170
+ pointer-events: none;
171
+ background: radial-gradient(
172
+ 120% 140% at 50% 50%,
173
+ color-mix(in oklab, var(--accent-band) 60%, oklch(0.9 0.05 75 / 0)),
174
+ oklch(0.9 0.05 75 / 0) 72%
175
+ );
176
+ mix-blend-mode: plus-lighter;
177
+ opacity: var(--chip-flood-t, 0);
178
+ transition: opacity var(--duration-normal) var(--ease-out) 60ms;
179
+ }
180
+
181
+ /* ── The CELL exception — a 72px icon+label TILE is a CARD, not a pill ──
182
+ The DELIBERATE 2-silhouette family (named honestly): the inline rungs are
183
+ stadium pills (the capsule's `--radius-pill`); the cell re-points to the
184
+ squircle card radius. It composes the SAME `.glass-chip` material + motion;
185
+ only the silhouette differs. The `::after` flood inherits the card radius. */
186
+ .glass-chip--cell {
187
+ border-radius: var(--radius-card);
188
+ }
189
+ .glass-chip--cell.glass-capsule {
190
+ border-radius: var(--radius-card);
191
+ }
192
+
193
+ /* ── PRM carve ──
194
+ Under reduced-motion `--motion-weight: 0` zeroes the spatial overshoot (the
195
+ `scale` calc collapses to 1) in ONE assignment; the bloom's MOTION rides the
196
+ same dial via the punch clock. The COLOUR cross-fade + the static lens lift
197
+ (the `.glass-capsule` rim/shadow) + the `--accent-band` swap REMAIN —
198
+ selection is always legible (challenge R7: zeroes the MOTION, not the bloom).
199
+ Vestibular-safe. */
200
+ @media (prefers-reduced-motion: reduce) {
201
+ .glass-chip {
202
+ --motion-weight: 0;
203
+ }
204
+ }
205
+
206
+ /* ── prefers-contrast: more — the active rim α floors UP ──
207
+ The active `--accent-edge` rim is the legibility CONTRACT; under more-contrast
208
+ floor the border ink so the selected lit edge clears ≥3:1 over the lens body.
209
+ The `--accent-ink` is already value.js contrast-safe (useAccentTone). */
210
+ @media (prefers-contrast: more) {
211
+ .glass-chip[data-state="on"] {
212
+ border-color: color-mix(in srgb, var(--foreground) 28%, transparent);
213
+ }
214
+ }
215
+ }
@@ -211,14 +211,35 @@
211
211
  `--glass-tint-strength: 0%`. */
212
212
  :where(.glass-floating, .glass-overlay) {
213
213
  --glass-tint-source: var(--glass-tint-ink);
214
- /* BC.W-AUDIT — the scope-7 completion: the overlay band JOINS the content-tier
215
- sub-perceptual FLOOR by default (translucent warm glass), and the FULL AA
216
- darken engages ONLY under the bright bucket (the @container --glass-backdrop:
217
- light above). The prior unconditional AA (20% ink-ward) collapsed every
218
- floating surface to grey over the common calm-light backdrop. The full glass
219
- rebuild + the per-band muted/contrast reconciliation is BC. */
220
- --glass-tint-strength: var(--glass-tint-strength-floor);
221
- --muted-foreground: var(--foreground);
214
+ /* BC.W-ADAPTIVE-RECONCILE (the fourier-analysis-M Tier-1 #1 fold, CONTINUOUS half)
215
+ — the OVERLAY band SPECIFICALLY JOINS the continuous observer driver, the SAME
216
+ clamp the content tiers get. The dropdown/Dialog/Popover/Select-content plate
217
+ FLOORS to warm-cream when the measured backdrop is calm/dark, and darkens
218
+ CONTINUOUSLY only under a measured bright backdrop — NOT the binary `@container`
219
+ bucket jump, NOT a blanket unconditional darken (the retired 4.0.x 20% slab).
220
+ The `BC.W-AUDIT` pre-fix already closed the UNCONDITIONAL-darken half (the band
221
+ floored by default); THIS is the continuous earned-darken half. The MEASURED AA
222
+ bar (the overlay plate clears 4.5:1 WHILE α < 0.86) is GLASS-LEGIBILITY-
223
+ MEASURED's roster addition — the driver here, the bar there, no double-ownership. */
224
+ --glass-tint-strength: clamp(
225
+ var(--glass-tint-strength-floor),
226
+ calc(
227
+ var(--glass-tint-strength-floor) +
228
+ (var(--glass-tint-strength-aa) - var(--glass-tint-strength-floor)) *
229
+ max(0, (var(--glass-backdrop-luma, 0) - var(--glass-backdrop-luma-knee, 0.6)) / (1 - var(--glass-backdrop-luma-knee, 0.6)))
230
+ ),
231
+ var(--glass-tint-strength-aa)
232
+ );
233
+ /* BC.W-DIALOG-GLASS — the overlay band's muted caption keeps the on-glass MUTED
234
+ register on a CALM modal (the SAME `--on-glass-muted` the content tiers read on
235
+ their calm path — legible-AND-subordinate against the composited glass fill),
236
+ NOT an UNCONDITIONAL lift to full `--foreground` that blackened the caption on a
237
+ cream modal over a light page. The bright-bucket lift (@container --glass-
238
+ backdrop:light below) moves `--muted-foreground` to the contrast ink in LOCKSTEP
239
+ with `--foreground` only where the plate ACTUALLY darkens to AA — so a busy-
240
+ backdrop modal goes full ink, a calm modal keeps the muted register. */
241
+ --muted-foreground: var(--on-glass-muted);
242
+ --muted-foreground-strong: var(--on-glass-muted-strong);
222
243
  }
223
244
 
224
245
  /* BA.W-DARK-MATERIAL scope 7 — the plain CONTENT tiers self-engage the SUB-PERCEPTUAL
@@ -252,7 +273,28 @@
252
273
  mode (the on-glass rungs carry their own light/dark per-mode arms in tokens). */
253
274
  :where(.glass-card, .glass-resting, .glass-quiet, .glass-wash) {
254
275
  --glass-tint-source: var(--glass-tint-ink);
255
- --glass-tint-strength: var(--glass-tint-strength-floor);
276
+ /* BC.W-ADAPTIVE-RECONCILE — the CONTINUOUS observer-driven darken (the dead-knob
277
+ closed; req #7). The strength is no longer a flat floor: it is a clamp that
278
+ READS the observer's measured `--glass-backdrop-luma` and lerps from the calm
279
+ warm-cream floor toward the ≤24% AA ceiling as the backdrop brightens past the
280
+ `--glass-backdrop-luma-knee` (the iOS-27 dynamic-range shift, apple-ios27.md
281
+ §1.5). Over a calm/dark backdrop (luma ≤ knee, the `max(0, …)` ramp → 0) the
282
+ clamp resolves EXACTLY `--glass-tint-strength-floor` (the GLASS-IDENTITY calm
283
+ identity, byte-equal); rising luma ramps the lift CONTINUOUSLY; the clamp floors
284
+ at the 4% identity and ceilings at the bounded AA — never an unconditional 20%
285
+ slab (the AZ grey-slab is the OPPOSITE of this earned, measured track). This
286
+ RETIRES the discrete `@container --glass-backdrop: light` bucket as the strength
287
+ driver — the continuous calc subsumes it (the bucket survives only as a no-
288
+ `@property` degrade fallback). */
289
+ --glass-tint-strength: clamp(
290
+ var(--glass-tint-strength-floor),
291
+ calc(
292
+ var(--glass-tint-strength-floor) +
293
+ (var(--glass-tint-strength-aa) - var(--glass-tint-strength-floor)) *
294
+ max(0, (var(--glass-backdrop-luma, 0) - var(--glass-backdrop-luma-knee, 0.6)) / (1 - var(--glass-backdrop-luma-knee, 0.6)))
295
+ ),
296
+ var(--glass-tint-strength-aa)
297
+ );
256
298
  --muted-foreground: var(--on-glass-muted);
257
299
  --muted-foreground-strong: var(--on-glass-muted-strong);
258
300
  }
@@ -296,14 +338,22 @@
296
338
  --muted-foreground: contrast-color(var(--card));
297
339
  }
298
340
  }
299
- /* The OVERLAY band self-engages the darken UNCONDITIONALLY (it floats over an
300
- UNKNOWN consumer surface), so its ink-flip companion mirrors that — UNCONDITIONAL.
301
- --foreground lifts in lockstep with --muted-foreground (the scope-6 lockstep). */
302
- :where(.glass-floating, .glass-overlay) {
303
- color: contrast-color(var(--card));
304
- --foreground: contrast-color(var(--card));
305
- --muted-foreground: contrast-color(var(--card));
306
- }
341
+ /* BC.W-DIALOG-GLASS / BC.W-ADAPTIVE-RECONCILE (overlay-band arm) — the overlay
342
+ band's `contrast-color()` ink flip is now GATED in the bright bucket above
343
+ (the @container --glass-backdrop:light block already lists `.glass-floating,
344
+ .glass-overlay` alongside the content tiers), NOT here as an UNCONDITIONAL
345
+ flip. The retired unconditional `:where(.glass-floating, .glass-overlay)`
346
+ rule blackened the ink even on a CALM modal over a light page — a translucent
347
+ cream plate forced to pure-black `contrast-color(--card)`, harsh on the cream,
348
+ and `--muted-foreground` flipped to the same so captions lost their muted
349
+ register. Now: over a calm/dark backdrop the modal keeps the WARM-INK
350
+ `--foreground` (legible, not pure-black) + the muted caption register; only a
351
+ modal over a genuinely-bright/busy backdrop flips to the dark contrast ink
352
+ (where the plate ACTUALLY darkens to bright-bucket AA), the `--foreground`/
353
+ `--muted-foreground` lift moving in LOCKSTEP there (the scope-6 lockstep). The
354
+ overlay band STILL self-darkens UNCONDITIONALLY (the tint-strength clamp above,
355
+ it floats over unknown) — only the INK flips in the bright bucket. ONE
356
+ reconciled flip, not two forks (ladder.css stays the single source). */
307
357
  /* BA.W-DARK-MATERIAL scope 7 — the content-tier ink flip is GATED on the bright
308
358
  signal (it moved INTO the @container bucket above), NOT unconditional. Over a calm
309
359
  LIGHT page the content tiers only carry the 4% silhouette floor (still a warm cream