@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
@@ -36,8 +36,15 @@
36
36
  /* ── The PILL track (the glass material — DEFAULT) ── */
37
37
  .segmented-tabs {
38
38
  --bouncy-track-trim: 0.1875rem;
39
- --bouncy-track-radius: 0.4375rem;
40
- --bouncy-slider-radius: 0.3125rem;
39
+ /* BC.W-TABS-IOS — the iOS-27 stadium register. The pill reads the role-bearing
40
+ `--radius-tab` (= --radius-pill = 9999px) — on a short pill box this clamps to
41
+ half-height → a TRUE stadium end-cap (not the squared `0.3125rem` rounded-rect
42
+ the HEAD shipped). The TRACK corner is CONCENTRIC with the pill (Apple's
43
+ `.containerConcentric`): the pill radius + the trim inset, so a stadium pill
44
+ sits inside a near-stadium track. No breakpoint radius bump — a stadium does
45
+ not change radius across viewports (clean break, the 640px radius lines gone). */
46
+ --bouncy-slider-radius: var(--radius-tab);
47
+ --bouncy-track-radius: calc(var(--bouncy-slider-radius) + var(--bouncy-track-trim));
41
48
  /* The travel-squish axis — 1 at rest; useTabIndicator writes it transiently
42
49
  on selection, the indicator pairs it volume-preserving. */
43
50
  --stretch: 1;
@@ -47,15 +54,12 @@
47
54
  grid-auto-columns: 1fr;
48
55
  padding: var(--bouncy-track-trim);
49
56
  border-radius: var(--bouncy-track-radius);
50
- /* BA.W-TABS — the pill track rides the glass quiet tier (the warm glass
51
- material, the no-gray register) + a hairline edge. NOT a `--surface-tint`
52
- gray plate (the R10-5 no-gray cut). */
53
- background: var(--glass-bg-quiet);
54
- -webkit-backdrop-filter: var(--glass-blur-quiet);
55
-
56
- backdrop-filter: var(--glass-blur-quiet);
57
- -webkit-backdrop-filter: var(--glass-blur-quiet);
58
- box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--border) 24%, transparent);
57
+ /* BD.W-TAB-IOS-CAPSULE — the warm-glass quiet surface + the rim + the iOS-27
58
+ sunken recess now live in the SHARED `.glass-capsule-track` register (the SFC
59
+ composes it onto the pill track). The track is a thin warm-glass quiet capsule
60
+ with a lit top edge + a recessed well, never a dark hairline, never gray. The
61
+ indicator (`.glass-capsule`) reads FORWARD off the SAME rim + the lift shadow.
62
+ The underline material does NOT compose the track (paper, no surface). */
59
63
  }
60
64
 
61
65
  /* ── The vertical orientation axis (the block stack) ── */
@@ -69,35 +73,61 @@
69
73
 
70
74
  @media (min-width: 640px) {
71
75
  .segmented-tabs {
76
+ /* BC.W-TABS-IOS — only the trim (pad) axis bumps at the wider breakpoint; the
77
+ radius is the viewport-invariant stadium (--radius-tab), so the corner
78
+ track-radius re-resolves concentric off the bigger trim by construction. */
72
79
  --bouncy-track-trim: 0.25rem;
73
- --bouncy-track-radius: 0.5rem;
74
- --bouncy-slider-radius: 0.375rem;
75
80
  }
76
81
  }
77
82
 
78
83
  /* ── The shared indicator body (the PILL plate) ── */
79
84
  .segmented-indicator {
80
85
  position: absolute;
81
- /* BA.W-TABS — the active pill indicator rides the glass FLOATING tier (the
82
- W-REGISTER-IOS "selected reads as glass" register), reading FORWARD of the
83
- quiet-tier track. A glass tint, NEVER a saturated `--foreground` fill or an
84
- opaque `bg-card`. */
85
- background: var(--glass-bg-floating);
86
- -webkit-backdrop-filter: var(--glass-blur-floating);
87
-
88
- backdrop-filter: var(--glass-blur-floating);
89
- -webkit-backdrop-filter: var(--glass-blur-floating);
86
+ /* BD.W-TAB-IOS-CAPSULE — the active pill COMPOSES the shared `.glass-capsule`
87
+ (the SFC adds the class). The warm-floor fill (`--glass-bg-floating-tinted`
88
+ composed toward the warm-floor source, meanChroma ≥ 0.02 both modes — never
89
+ gray), the floating blur, the directional rim + the lift under-shadow ALL live
90
+ there now, ONE recipe ≥3 consumers. This block keeps only the position +
91
+ inset + the indicator-local stadium radius + the motion transform. */
90
92
  z-index: 0;
91
93
  inset-block: var(--bouncy-track-trim);
92
94
  border-radius: var(--bouncy-slider-radius);
93
- box-shadow:
94
- 0 1px 3px rgba(0, 0, 0, 0.08),
95
- 0 0 0 1px color-mix(in srgb, var(--border) 30%, transparent);
96
- /* The volume-preserving travel-squish: stretch along X, compress Y in
97
- inverse proportion. `transform-origin: center` → a symmetric width-flex
98
- as it travels (the indicator grows wider mid-travel, settles to fit). */
95
+ /* BD.W-TABS-LIQUID — the COMPOSED transform write: the area-inflation BLOB
96
+ (uniform, both axes, `--tab-blob` driven imperatively by the 2nd
97
+ `useLiquidFlex` channel — grow→overshoot→shrink) × the volume-preserving
98
+ travel-squish (`--stretch`, reciprocal). `transform-origin: center` → the blob
99
+ grows from center (the label stays put) and the squish stays center-pinned. */
99
100
  transform-origin: center;
100
- scale: var(--stretch) calc(1 / var(--stretch));
101
+ scale: calc(var(--tab-blob, 1) * var(--stretch))
102
+ calc(var(--tab-blob, 1) / var(--stretch));
103
+ }
104
+
105
+ /* BD.W-TABS-LIQUID — the COMMIT accent-flood (T4, opt-in). A momentary full-capsule
106
+ wash of `--glass-accent`, driven by `--tab-flood-t` (0→1→0), that TRAILS the
107
+ spatial glide a beat then clears (EFFECTS-after-SPATIAL). `isolation: isolate` on
108
+ the host so the `plus-lighter` blend composites the flood against the capsule
109
+ only (not the page); the gradient is `in srgb` (additive bloom, NOT oklab). The
110
+ accent is a CONSUMER accent — default `--glass-accent: transparent` → byte-
111
+ identical rest, provable no-op. The SAME register dock-tabs adopt (dormant at
112
+ `--tab-flood-t: 0`). */
113
+ .segmented-indicator {
114
+ isolation: isolate;
115
+ }
116
+ @supports (mix-blend-mode: plus-lighter) {
117
+ .segmented-indicator::after {
118
+ content: "";
119
+ position: absolute;
120
+ inset: 0;
121
+ border-radius: inherit;
122
+ pointer-events: none;
123
+ background: radial-gradient(
124
+ 120% 140% at 50% 50%,
125
+ color-mix(in srgb, var(--glass-accent, transparent) 55%, transparent),
126
+ transparent 70%
127
+ );
128
+ mix-blend-mode: plus-lighter;
129
+ opacity: var(--tab-flood-t, 0);
130
+ }
101
131
  }
102
132
 
103
133
  /* Vertical: the indicator deforms on the BLOCK axis (compress X / stretch Y) and
@@ -105,15 +135,23 @@
105
135
  .segmented-tabs--vertical .segmented-indicator {
106
136
  inset-block: auto;
107
137
  inset-inline: var(--bouncy-track-trim);
108
- scale: calc(1 / var(--stretch)) var(--stretch);
138
+ /* BD.W-TABS-LIQUID — the vertical arm mirrors the blob × squish: the block axis
139
+ carries the stretch, the inline axis its reciprocal, both uniformly inflated. */
140
+ scale: calc(var(--tab-blob, 1) / var(--stretch))
141
+ calc(var(--tab-blob, 1) * var(--stretch));
109
142
  }
110
143
 
111
144
  @media (prefers-reduced-motion: no-preference) {
112
145
  .segmented-indicator {
113
- /* ONE composited transform pair (translate+scale) on ONE calibrated
114
- clock — the glide + the squish share `--tab-indicator-duration` so they
115
- cannot desync (the R10-2 multi-property-desync class collapsed). */
116
- transition: scale var(--tab-indicator-duration) var(--spring-snappy);
146
+ /* BD.W-TABS-LIQUID — the composed `scale` (`--tab-blob × --stretch`) rides the
147
+ DEPENDED `--ease-cartoon-punch` curve (the booked Band-0 token, CONSUMED
148
+ never minted) so the 5-beat blob anticipates (the curve's pre-dip < 0),
149
+ overshoots past the destination footprint (peaks > 1), then settles soft.
150
+ The discrete imperative `--tab-blob` writes (open/release) INTERPOLATE on
151
+ this clock via the `@property` registration — no snap-flicker. ONE clock,
152
+ ONE composited transform pair — the glide (inset) + the squish + the blob
153
+ cannot desync. The `--tab-flood-t` accent-flood trails a beat after. */
154
+ transition: scale var(--tab-indicator-duration) var(--ease-cartoon-punch);
117
155
  }
118
156
  }
119
157
 
@@ -169,8 +207,10 @@
169
207
 
170
208
  @media (min-width: 640px) {
171
209
  .segmented-indicator {
210
+ /* BC.W-TABS-IOS — only the inset (trim) axis bumps; the radius stays the
211
+ viewport-invariant stadium (`--bouncy-slider-radius` = --radius-tab). The
212
+ HEAD `border-radius: 0.375rem` px-literal that squared the pill is GONE. */
172
213
  inset-block: 0.25rem;
173
- border-radius: 0.375rem;
174
214
  }
175
215
  .segmented-tabs--vertical .segmented-indicator {
176
216
  inset-block: auto;
@@ -204,7 +244,13 @@
204
244
  font: inherit;
205
245
  font-size: 0.8125rem;
206
246
  color: var(--muted-foreground);
207
- transition: color var(--duration-fast) ease;
247
+ /* BD.W-TABS-LIQUID — the glyph scale-pop (overlapping action / follow-through):
248
+ the label settles AFTER the capsule (the child trails the parent). The `scale`
249
+ channel rides the snappy spring with a 60ms delay so it OVERLAPS the capsule
250
+ arrival; the colour cross-fade stays on the fast bezier. */
251
+ transition:
252
+ color var(--duration-fast) ease,
253
+ scale var(--spring-snappy-duration) var(--spring-snappy) 60ms;
208
254
  /* AQ.W3 identity base — keep `scale:1; translate:0` so a hover/press
209
255
  transform never mints a stacking context that severs `anchor()`
210
256
  resolution (the WAAPI press writes `transform` transiently — harmless). */
@@ -224,6 +270,19 @@
224
270
  color: var(--foreground);
225
271
  }
226
272
 
273
+ /* BD.W-TABS-LIQUID — the glyph scale-pop on the PILL selection. The live selection
274
+ model is `aria-pressed` (the pill is a ToggleGroup-shaped surface — verified in
275
+ SegmentedTabs.vue, NOT `aria-selected` which the underline paper material uses).
276
+ The pop magnitude DEPENDS `--motion-weight` (the booked Band-0 token, CONSUMED):
277
+ `calc(1 + 0.06 × --motion-weight)` → ~+3.7% at rest weight 0.618, and exactly 1
278
+ under PRM (`--motion-weight: 0`). The 60ms transition delay (above) settles it a
279
+ beat after the capsule arrives (overlapping action). The underline label does NOT
280
+ pop (paper ink, no inflation — the material fence). */
281
+ .segmented-tabs:not(.segmented-tabs--underline)
282
+ .segmented-tab[aria-pressed="true"] {
283
+ scale: calc(1 + 0.06 * var(--motion-weight));
284
+ }
285
+
227
286
  .segmented-tab.is-disabled {
228
287
  opacity: 0.4;
229
288
  cursor: not-allowed;
@@ -328,7 +387,16 @@
328
387
 
329
388
  .segmented-tabs--underline .segmented-tab {
330
389
  padding: 0.375rem 0.75rem;
331
- font-size: inherit;
390
+ /* BC.W-UNDERLINE-TUNE — the audacious editorial label voice. The underline is
391
+ the PAPER/editorial material (BA.W-TABS), so its labels carry the √φ display
392
+ register, NOT the small 0.8125rem control size the PILL labels keep (the
393
+ two-voice fence — the pill is a compact control, the underline is an editorial
394
+ nav head). `--type-subheading` (1.272rem / 20.4px, the √φ rung) + the Apple
395
+ display tracking `--type-tracking-display` (−1.5%) are the BB.W-DISPLAY-TRACKING
396
+ ladder rungs CONSUMED here (never re-minted), the same pairing the semantic
397
+ display rungs ride. A confident editorial strip, not a default Tailwind row. */
398
+ font-size: var(--type-subheading);
399
+ letter-spacing: var(--type-tracking-display);
332
400
  border-radius: 0.25rem;
333
401
  /* The tab-text colour cross-fade rides the fast generic clock (the §6 doctrine
334
402
  — a colour shift is a bezier ease, never a spring), matching the pill tab
@@ -371,7 +439,9 @@
371
439
  /* Promote to its own compositor layer for the 1:1 follow (the translate write
372
440
  is compositor-only; the hint keeps the plate off the main-thread paint). */
373
441
  will-change: transform;
374
- /* Sub-perceptual catch-light lift — the grabbed lozenge reads a hair brighter
375
- at its specular edge (the W-GLASS-CAL specular register, disco-FREE). */
376
- --glass-specular: 0.1;
442
+ /* BD.W-TAB-IOS-CAPSULE C7 — the grabbed-state catch-light COMPOSES the SHARED
443
+ specular-lift step declared ONCE in glass/glass-capsule.css (the
444
+ `.glass-capsule-hover:hover, .glass-drag-lift { --glass-specular }` group), NOT
445
+ a parallel `--glass-specular` fork. This block carries only the grabbing-distinct
446
+ bits (the grab cursor + the `will-change` hint). */
377
447
  }
@@ -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 */