@mkbabb/glass-ui 4.0.0 → 4.1.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 (609) hide show
  1. package/README.md +3 -1
  2. package/dist/CardAction-8whJrLWt.js +268 -0
  3. package/dist/{CommandShortcut-DdtWXxOK.js → CommandShortcut-D3yxgHNn.js} +25 -14
  4. package/dist/ConfiguratorRow-CaP7U3ZA.js +143 -0
  5. package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
  6. package/dist/{ContextMenuSubContent-B0Vs6atR.js → ContextMenuSubContent-DDRID3qC.js} +28 -33
  7. package/dist/{DataTable-C464Zbqd.js → DataTable-Bc9kUtu_.js} +4 -4
  8. package/dist/{DialogContent-DDE6pQBU.js → DialogContent-6JtTB5x2.js} +11 -8
  9. package/dist/DialogFooter-9phqcRIS.js +80 -0
  10. package/dist/DialogScrollContent-TTuovQst.js +93 -0
  11. package/dist/{FadingScroll-DwNnvKMs.js → FadingScroll-DLRbH5Xr.js} +1 -1
  12. package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
  13. package/dist/{HoverPopover-Dpzwvc4t.js → HoverPopover-BcIxvyqZ.js} +2 -2
  14. package/dist/{IconChip-BDw1j5mu.js → IconChip-DhbdGdFQ.js} +2 -1
  15. package/dist/{IconTooltip-DSjasZIt.js → IconTooltip-B0zimd2H.js} +1 -1
  16. package/dist/Input-Cg9DF62r.js +57 -0
  17. package/dist/{MetricBadge-BpC0R_Ec.js → MetricBadge-RHdBP72w.js} +1 -1
  18. package/dist/Notification-CphK7AAm.js +43 -0
  19. package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
  20. package/dist/PagerDots-Cjx96la-.js +98 -0
  21. package/dist/{PopoverContent-BTorlp--.js → PopoverContent-DL7E6vJP.js} +4 -4
  22. package/dist/{Progress-hAT4gqGH.js → Progress-CnqB7gLm.js} +4 -4
  23. package/dist/{ScrollingText-CUVFTWk2.js → ScrollingText-CTZbA_cG.js} +2 -2
  24. package/dist/{SelectScrollDownButton-C1jb3b3K.js → SelectScrollDownButton-DAKCBEdW.js} +65 -61
  25. package/dist/{SelectSeparator-DK2y1Bun.js → SelectSeparator-C2UGOkXF.js} +1 -1
  26. package/dist/Separator-DQcwC2TR.js +44 -0
  27. package/dist/Switch-B8RscmRu.js +49 -0
  28. package/dist/Toaster-D9qIHjBI.js +274 -0
  29. package/dist/ToggleGroupItem-BLtr3TJq.js +170 -0
  30. package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
  31. package/dist/animated-digit.js +2 -2
  32. package/dist/api/index.d.ts +21 -33
  33. package/dist/api/types-extra.d.ts +37 -0
  34. package/dist/api.js +1 -1
  35. package/dist/aurora.js +1231 -260
  36. package/dist/badge.js +1 -1
  37. package/dist/border-progress.d.ts +1 -0
  38. package/dist/border-progress.js +98 -0
  39. package/dist/button-5dY1Dvhd.js +125 -0
  40. package/dist/button.js +1 -1
  41. package/dist/canvas.js +2 -3
  42. package/dist/card.js +2 -2
  43. package/dist/carousel.js +93 -110
  44. package/dist/collapsible.js +1 -1
  45. package/dist/color-Cs0-oxYL.js +116 -0
  46. package/dist/color.js +2 -2
  47. package/dist/command.js +1 -1
  48. package/dist/compile-nZ1xVYTp.js +19 -0
  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/atoms-fields.d.ts +39 -0
  53. package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
  54. package/dist/components/custom/aurora/composables/color.d.ts +13 -0
  55. package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
  56. package/dist/components/custom/aurora/composables/runtime.d.ts +31 -0
  57. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
  58. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +60 -0
  59. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +37 -0
  60. package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
  61. package/dist/components/custom/aurora/constants/presets.d.ts +20 -2
  62. package/dist/components/custom/aurora/constants/renderMode.d.ts +77 -18
  63. package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
  64. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
  65. package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
  66. package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
  67. package/dist/components/custom/aurora/index.d.ts +2 -1
  68. package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
  69. package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
  70. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +18 -0
  71. package/dist/components/custom/border-progress/constants.d.ts +59 -0
  72. package/dist/components/custom/border-progress/index.d.ts +4 -0
  73. package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
  74. package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
  75. package/dist/components/custom/completion-seal/constants.d.ts +46 -0
  76. package/dist/components/custom/completion-seal/index.d.ts +4 -0
  77. package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
  78. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +18 -0
  79. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +22 -0
  80. package/dist/components/custom/concentric/composables/ringField.d.ts +85 -0
  81. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +14 -0
  82. package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
  83. package/dist/components/custom/concentric/constants.d.ts +67 -0
  84. package/dist/components/custom/concentric/index.d.ts +5 -0
  85. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
  86. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
  87. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
  88. package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
  89. package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
  90. package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
  91. package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
  92. package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
  93. package/dist/components/custom/constellation/constants.d.ts +33 -0
  94. package/dist/components/custom/constellation/constellationField.d.ts +31 -1
  95. package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
  96. package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
  97. package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
  98. package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
  99. package/dist/components/custom/constellation/index.d.ts +5 -5
  100. package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
  101. package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
  102. package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
  103. package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
  104. package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
  105. package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
  106. package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
  107. package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
  108. package/dist/components/custom/deck/constants.d.ts +14 -0
  109. package/dist/components/custom/deck/index.d.ts +8 -0
  110. package/dist/components/custom/dock/DockIconButton.vue.d.ts +25 -4
  111. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
  112. package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
  113. package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
  114. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +155 -0
  115. package/dist/components/custom/dock/composables/index.d.ts +2 -0
  116. package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
  117. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
  118. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
  119. package/dist/components/custom/dock/constants.d.ts +18 -14
  120. package/dist/components/custom/dock/index.d.ts +5 -2
  121. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +42 -0
  122. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +83 -0
  123. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +39 -0
  124. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +35 -0
  125. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +31 -0
  126. package/dist/components/custom/dot-flow-field/constants.d.ts +69 -0
  127. package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
  128. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
  129. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -0
  130. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
  131. package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
  132. package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
  133. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
  134. package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
  135. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
  136. package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
  137. package/dist/components/custom/dot-matrix/index.d.ts +5 -0
  138. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
  139. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
  140. package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
  141. package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
  142. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +80 -0
  143. package/dist/components/custom/easing/constants.d.ts +28 -0
  144. package/dist/components/custom/easing/index.d.ts +3 -0
  145. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
  146. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +43 -40
  147. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
  148. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
  149. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
  150. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +42 -0
  151. package/dist/components/custom/fourier-field/constants.d.ts +64 -0
  152. package/dist/components/custom/fourier-field/index.d.ts +23 -18
  153. package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
  154. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
  155. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
  156. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
  157. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +13 -3
  158. package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
  159. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +18 -11
  160. package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
  161. package/dist/components/custom/goo-blob/constants.d.ts +1 -1
  162. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  163. package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
  164. package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
  165. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
  166. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
  167. package/dist/components/custom/goo-blob/types.d.ts +36 -0
  168. package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
  169. package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
  170. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
  171. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
  172. package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
  173. package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
  174. package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
  175. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
  176. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
  177. package/dist/components/custom/handmark/HandMark.vue.d.ts +1 -1
  178. package/dist/components/custom/icon-chip/types.d.ts +11 -1
  179. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +3 -1
  180. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
  181. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
  182. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
  183. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
  184. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  185. package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
  186. package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
  187. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
  188. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
  189. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
  190. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
  191. package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
  192. package/dist/components/custom/paper-grid/constants.d.ts +57 -0
  193. package/dist/components/custom/paper-grid/index.d.ts +5 -0
  194. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
  195. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
  196. package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
  197. package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
  198. package/dist/components/custom/search/index.d.ts +2 -0
  199. package/dist/components/custom/search/searchVariants.d.ts +19 -0
  200. package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
  201. package/dist/components/custom/selectable-chip/index.d.ts +2 -0
  202. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
  203. package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
  204. package/dist/components/custom/spa-view/index.d.ts +2 -0
  205. package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
  206. package/dist/components/custom/split-chars/index.d.ts +1 -0
  207. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +12 -0
  208. package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
  209. package/dist/components/custom/tabs/constants.d.ts +20 -2
  210. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +30 -17
  211. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
  212. package/dist/components/ui/_shared/index.d.ts +2 -0
  213. package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
  214. package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
  215. package/dist/components/ui/badge/index.d.ts +1 -1
  216. package/dist/components/ui/button/Button.vue.d.ts +5 -2
  217. package/dist/components/ui/button/index.d.ts +2 -2
  218. package/dist/components/ui/card/Card.vue.d.ts +79 -4
  219. package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
  220. package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
  221. package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
  222. package/dist/components/ui/card/index.d.ts +3 -1
  223. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
  224. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
  225. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
  226. package/dist/components/ui/command/Command.vue.d.ts +1 -1
  227. package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
  228. package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
  229. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
  230. package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
  231. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +7 -8
  232. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
  233. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
  234. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
  235. package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
  236. package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
  237. package/dist/components/ui/drawer/constants.d.ts +45 -0
  238. package/dist/components/ui/drawer/index.d.ts +23 -15
  239. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
  240. package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
  241. package/dist/components/ui/focus-scope/index.d.ts +2 -0
  242. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
  243. package/dist/components/ui/index.d.ts +1 -0
  244. package/dist/components/ui/input/Input.vue.d.ts +3 -0
  245. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
  246. package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
  247. package/dist/components/ui/select/SelectContent.vue.d.ts +4 -1
  248. package/dist/components/ui/sheet/index.d.ts +1 -1
  249. package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
  250. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
  251. package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
  252. package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
  253. package/dist/components/ui/toast/use-toast.d.ts +14 -0
  254. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  255. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
  256. package/dist/composables/color/index.d.ts +2 -0
  257. package/dist/composables/color/useAccentTone.d.ts +34 -0
  258. package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
  259. package/dist/composables/glass/index.d.ts +5 -2
  260. package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
  261. package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
  262. package/dist/composables/glass/useVizChoreography.d.ts +123 -0
  263. package/dist/composables/glass/vSpecular.d.ts +2 -0
  264. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
  265. package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
  266. package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
  267. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
  268. package/dist/composables/glass/webgpu/index.d.ts +2 -0
  269. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +75 -0
  270. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +85 -0
  271. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
  272. package/dist/composables/motion/core/index.d.ts +4 -0
  273. package/dist/composables/motion/index.d.ts +4 -0
  274. package/dist/composables/motion/scrollReader.d.ts +25 -0
  275. package/dist/composables/motion/springPresets.d.ts +20 -1
  276. package/dist/composables/motion/useCharStagger.d.ts +44 -0
  277. package/dist/composables/motion/useDockCtaReceive.d.ts +84 -0
  278. package/dist/composables/motion/useDragMorph.d.ts +77 -0
  279. package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
  280. package/dist/composables/motion/useLiquidPress.d.ts +71 -0
  281. package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
  282. package/dist/composables/motion/useNumericTransition.d.ts +3 -3
  283. package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
  284. package/dist/composables/motion/useScrollChrome.d.ts +58 -0
  285. package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
  286. package/dist/composables/motion/useSpringPress.d.ts +5 -5
  287. package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
  288. package/dist/composables/sidebar/index.d.ts +4 -1
  289. package/dist/composables/sidebar/types.d.ts +68 -3
  290. package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
  291. package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
  292. package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
  293. package/dist/composables/virtual/index.d.ts +4 -0
  294. package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
  295. package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
  296. package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
  297. package/dist/concentric.d.ts +1 -0
  298. package/dist/concentric.js +836 -0
  299. package/dist/configurator.js +3 -2
  300. package/dist/confirm-dialog.js +62 -49
  301. package/dist/constellation.js +635 -235
  302. package/dist/context-menu.js +3 -3
  303. package/dist/controls.js +2 -2
  304. package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
  305. package/dist/dark.js +1 -1
  306. package/dist/data-table.js +1 -1
  307. package/dist/deck.d.ts +1 -0
  308. package/dist/deck.js +105 -0
  309. package/dist/dialog.js +4 -3
  310. package/dist/dock.js +819 -568
  311. package/dist/{dockContext-Bu1Avy-a.js → dockContext-BNfyPLe9.js} +1 -1
  312. package/dist/dom.js +5 -5
  313. package/dist/dot-flow-field.d.ts +1 -0
  314. package/dist/dot-flow-field.js +894 -0
  315. package/dist/dot-matrix.d.ts +1 -0
  316. package/dist/dot-matrix.js +630 -0
  317. package/dist/dotMatrixField-D_x9_1qq.js +48 -0
  318. package/dist/drawer.d.ts +1 -0
  319. package/dist/drawer.js +380 -0
  320. package/dist/{dropdown-menu-BJ7E9js_.js → dropdown-menu-aJmV5SqE.js} +82 -79
  321. package/dist/dropdown-menu.js +1 -1
  322. package/dist/easing.d.ts +1 -0
  323. package/dist/easing.js +475 -0
  324. package/dist/expandable-container.js +46 -21
  325. package/dist/fading-scroll.js +1 -1
  326. package/dist/flow.glsl-B2P7e0MT.js +4 -0
  327. package/dist/focus-scope.d.ts +1 -0
  328. package/dist/focus-scope.js +23 -0
  329. package/dist/forms.js +65 -63
  330. package/dist/fourier-field.js +831 -172
  331. package/dist/fourier-math.js +1 -1
  332. package/dist/glass-panel.js +2 -2
  333. package/dist/glass-ui.css +1 -1
  334. package/dist/glass-ui.js +187 -338
  335. package/dist/goo-blob.js +241 -692
  336. package/dist/goo-dot-matrix.d.ts +1 -0
  337. package/dist/goo-dot-matrix.js +591 -0
  338. package/dist/handmark.js +2 -2
  339. package/dist/header-ribbon.js +1 -1
  340. package/dist/hover-card.js +1 -1
  341. package/dist/hover-popover.js +1 -1
  342. package/dist/icon-chip.js +1 -1
  343. package/dist/icon-tooltip.js +1 -1
  344. package/dist/index.d.ts +3 -1
  345. package/dist/instrument-chassis.js +1 -1
  346. package/dist/keyboard.js +1 -1
  347. package/dist/label.js +1 -1
  348. package/dist/labeled-field.js +70 -60
  349. package/dist/metric-badge.js +1 -1
  350. package/dist/metric-cell.js +1 -1
  351. package/dist/metric-stack.js +14 -9
  352. package/dist/motion-core.js +58 -36
  353. package/dist/motion-curves.js +11 -1
  354. package/dist/motion.js +90 -53
  355. package/dist/notification.js +1 -1
  356. package/dist/number-field.js +1 -1
  357. package/dist/pager-dots.js +2 -91
  358. package/dist/paper-backdrop.js +1 -1
  359. package/dist/paper-grid.d.ts +1 -0
  360. package/dist/paper-grid.js +788 -0
  361. package/dist/popover.js +1 -1
  362. package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
  363. package/dist/{compile-EXXzEr1q.js → procedural-color.wgsl-m7Zgv35j.js} +2 -156
  364. package/dist/progress.js +1 -1
  365. package/dist/pulse.js +2 -2
  366. package/dist/reactive.js +1 -1
  367. package/dist/resolveCanvasColor-yPyIpJt9.js +93 -0
  368. package/dist/scrollReader-DI1NWxUw.js +42 -0
  369. package/dist/scrolling-text.js +1 -1
  370. package/dist/search.js +162 -308
  371. package/dist/select.js +3 -3
  372. package/dist/selectable-chip.d.ts +1 -0
  373. package/dist/selectable-chip.js +65 -0
  374. package/dist/separator.js +1 -1
  375. package/dist/{sheet-CquRYOAw.js → sheet-B2flBfLH.js} +5 -5
  376. package/dist/sheet.js +1 -1
  377. package/dist/sidebar.js +216 -114
  378. package/dist/{slider-DQ95MET2.js → slider-2A0rPn79.js} +3 -3
  379. package/dist/slider.js +1 -1
  380. package/dist/sortable-list.js +2 -2
  381. package/dist/spa-view.d.ts +1 -0
  382. package/dist/spa-view.js +46 -0
  383. package/dist/spectrum-walk-BVzA7Biz.js +33 -0
  384. package/dist/{springPresets-WXaLbu8u.js → springPresets-Ce7OYCm9.js} +12 -6
  385. package/dist/styles/animations.css +46 -12
  386. package/dist/styles/border-progress.css +109 -0
  387. package/dist/styles/cards.css +145 -0
  388. package/dist/styles/completion-seal.css +131 -0
  389. package/dist/styles/components.css +2 -3
  390. package/dist/styles/configurator.css +55 -0
  391. package/dist/styles/critical-partition.mjs +162 -0
  392. package/dist/styles/critical.css +12 -0
  393. package/dist/styles/deferred.css +33 -0
  394. package/dist/styles/dock/cta-seat.css +87 -0
  395. package/dist/styles/dock/density.css +198 -0
  396. package/dist/styles/dock/layers.css +101 -29
  397. package/dist/styles/dock/morph-bridge.css +54 -18
  398. package/dist/styles/dock/morph.css +132 -7
  399. package/dist/styles/dock/overflow.css +28 -2
  400. package/dist/styles/dock/search.css +68 -0
  401. package/dist/styles/dock/shape.css +124 -0
  402. package/dist/styles/dock/shell.css +77 -21
  403. package/dist/styles/dock/stack-rail.css +264 -0
  404. package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
  405. package/dist/styles/dock-controls/icon-button.css +14 -0
  406. package/dist/styles/dock.css +43 -1
  407. package/dist/styles/drawer.css +81 -35
  408. package/dist/styles/glass/accent-tone.css +66 -0
  409. package/dist/styles/glass/control-surfaces.css +167 -0
  410. package/dist/styles/glass/deep.css +44 -0
  411. package/dist/styles/glass/ladder.css +147 -41
  412. package/dist/styles/glass/material.css +78 -15
  413. package/dist/styles/glass/reveal.css +136 -0
  414. package/dist/styles/glass/rim.css +110 -0
  415. package/dist/styles/glass/surfaces.css +148 -129
  416. package/dist/styles/glass-refract.css +96 -44
  417. package/dist/styles/glass-specular-track.css +7 -0
  418. package/dist/styles/glass.css +13 -0
  419. package/dist/styles/hover-popover.css +7 -6
  420. package/dist/styles/icon-chip.css +77 -15
  421. package/dist/styles/index.css +36 -9
  422. package/dist/styles/instrument-chassis.css +66 -3
  423. package/dist/styles/scroll-choreography.css +300 -0
  424. package/dist/styles/scroll-chrome.css +123 -0
  425. package/dist/styles/scroll-driven.css +38 -0
  426. package/dist/styles/segmented-tabs.css +81 -14
  427. package/dist/styles/theme/bridges.css +33 -0
  428. package/dist/styles/theme/literals.css +11 -2
  429. package/dist/styles/theme/radius.css +24 -2
  430. package/dist/styles/tokens/color-radius.css +13 -3
  431. package/dist/styles/tokens/dark-arm.css +137 -32
  432. package/dist/styles/tokens/glass-deep.css +100 -0
  433. package/dist/styles/tokens/glass-fx.css +376 -0
  434. package/dist/styles/tokens/glass.css +131 -351
  435. package/dist/styles/tokens/light-dark.css +16 -3
  436. package/dist/styles/tokens/offsets.css +143 -0
  437. package/dist/styles/tokens/on-glass-fg.css +39 -0
  438. package/dist/styles/tokens/property-regs.css +260 -0
  439. package/dist/styles/tokens/scale-paper.css +168 -96
  440. package/dist/styles/tokens/scheme-motion.css +114 -38
  441. package/dist/styles/tokens/scroll-tokens.css +123 -0
  442. package/dist/styles/tokens/sizing-config.css +110 -0
  443. package/{src/styles/tokens/offsets-sizing.css → dist/styles/tokens/sizing.css} +92 -204
  444. package/dist/styles/tokens.css +14 -3
  445. package/dist/styles/typography/semantic.css +26 -13
  446. package/dist/styles/typography/utilities.css +22 -7
  447. package/dist/styles/utilities/a11y-overrides.css +20 -5
  448. package/dist/styles/utilities/animate.css +27 -24
  449. package/dist/styles/utilities/base-misc.css +307 -0
  450. package/dist/styles/utilities/base.css +47 -261
  451. package/dist/styles/utilities/btn.css +17 -4
  452. package/dist/styles/utilities/components.css +31 -6
  453. package/dist/styles/utilities/metal.css +215 -0
  454. package/dist/styles/utilities.css +14 -7
  455. package/dist/switch.js +1 -1
  456. package/dist/tabs.js +220 -107
  457. package/dist/timeline.js +2 -2
  458. package/dist/toast.js +1 -1
  459. package/dist/toggle-chip.js +10 -10
  460. package/dist/toggle-group.js +1 -1
  461. package/dist/tooltip.js +1 -1
  462. package/dist/typewriter.js +2 -2
  463. package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
  464. package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-CLrxicG9.js} +1 -1
  465. package/dist/useConfiguratorState-4xblKfwd.js +162 -0
  466. package/dist/useControlSize-SH1UmJCi.js +9 -0
  467. package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
  468. package/dist/useDragMorph-BUgAC-zK.js +102 -0
  469. package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
  470. package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
  471. package/dist/useLiquidPress-BooG97RY.js +39 -0
  472. package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
  473. package/dist/useScrollChrome-D66AVP7C.js +258 -0
  474. package/dist/useSpring-C0jyvEJB.js +40 -0
  475. package/dist/useSpringMount-BWDnKIwh.js +71 -0
  476. package/dist/useSpringPress-B1-Czp-V.js +36 -0
  477. package/dist/{useTouchGate-28Tk2-t2.js → useTouchGate-CBZTD4SD.js} +1 -1
  478. package/dist/useViewTransition-CUI1nAgn.js +95 -0
  479. package/dist/vSpecular-EX7loENl.js +68 -0
  480. package/dist/vendor-B2qOlYY3.js +239 -0
  481. package/dist/virtual.d.ts +1 -0
  482. package/dist/virtual.js +225 -0
  483. package/dist/watercolor-dot.js +117 -74
  484. package/package.json +252 -28
  485. package/src/styles/animations.css +46 -12
  486. package/src/styles/border-progress.css +109 -0
  487. package/src/styles/cards.css +145 -0
  488. package/src/styles/completion-seal.css +131 -0
  489. package/src/styles/configurator.css +55 -0
  490. package/src/styles/critical-partition.mjs +162 -0
  491. package/src/styles/dock/cta-seat.css +87 -0
  492. package/src/styles/dock/density.css +198 -0
  493. package/src/styles/dock/layers.css +101 -29
  494. package/src/styles/dock/morph-bridge.css +54 -18
  495. package/src/styles/dock/morph.css +132 -7
  496. package/src/styles/dock/overflow.css +28 -2
  497. package/src/styles/dock/search.css +68 -0
  498. package/src/styles/dock/shape.css +124 -0
  499. package/src/styles/dock/shell.css +77 -21
  500. package/src/styles/dock/stack-rail.css +264 -0
  501. package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
  502. package/src/styles/dock-controls/icon-button.css +14 -0
  503. package/src/styles/dock.css +43 -1
  504. package/src/styles/drawer.css +81 -35
  505. package/src/styles/glass/accent-tone.css +66 -0
  506. package/src/styles/glass/control-surfaces.css +167 -0
  507. package/src/styles/glass/deep.css +44 -0
  508. package/src/styles/glass/ladder.css +147 -41
  509. package/src/styles/glass/material.css +78 -15
  510. package/src/styles/glass/reveal.css +136 -0
  511. package/src/styles/glass/rim.css +110 -0
  512. package/src/styles/glass/surfaces.css +148 -129
  513. package/src/styles/glass-refract.css +96 -44
  514. package/src/styles/glass-specular-track.css +7 -0
  515. package/src/styles/glass.css +13 -0
  516. package/src/styles/hover-popover.css +7 -6
  517. package/src/styles/icon-chip.css +77 -15
  518. package/src/styles/index.css +27 -0
  519. package/src/styles/instrument-chassis.css +66 -3
  520. package/src/styles/scroll-choreography.css +300 -0
  521. package/src/styles/scroll-chrome.css +123 -0
  522. package/src/styles/scroll-driven.css +38 -0
  523. package/src/styles/segmented-tabs.css +81 -14
  524. package/src/styles/theme/bridges.css +33 -0
  525. package/src/styles/theme/literals.css +11 -2
  526. package/src/styles/theme/radius.css +24 -2
  527. package/src/styles/tokens/color-radius.css +13 -3
  528. package/src/styles/tokens/dark-arm.css +137 -32
  529. package/src/styles/tokens/glass-deep.css +100 -0
  530. package/src/styles/tokens/glass-fx.css +376 -0
  531. package/src/styles/tokens/glass.css +131 -351
  532. package/src/styles/tokens/light-dark.css +16 -3
  533. package/src/styles/tokens/offsets.css +143 -0
  534. package/src/styles/tokens/on-glass-fg.css +39 -0
  535. package/src/styles/tokens/property-regs.css +260 -0
  536. package/src/styles/tokens/scale-paper.css +168 -96
  537. package/src/styles/tokens/scheme-motion.css +114 -38
  538. package/src/styles/tokens/scroll-tokens.css +123 -0
  539. package/src/styles/tokens/sizing-config.css +110 -0
  540. package/{dist/styles/tokens/offsets-sizing.css → src/styles/tokens/sizing.css} +92 -204
  541. package/src/styles/tokens.css +14 -3
  542. package/src/styles/typography/semantic.css +26 -13
  543. package/src/styles/typography/utilities.css +22 -7
  544. package/src/styles/utilities/a11y-overrides.css +20 -5
  545. package/src/styles/utilities/animate.css +27 -24
  546. package/src/styles/utilities/base-misc.css +307 -0
  547. package/src/styles/utilities/base.css +47 -261
  548. package/src/styles/utilities/btn.css +17 -4
  549. package/src/styles/utilities/components.css +31 -6
  550. package/src/styles/utilities/metal.css +215 -0
  551. package/src/styles/utilities.css +14 -7
  552. package/dist/CardAction-XH4YBVEK.js +0 -158
  553. package/dist/ContextMenuContent-ON3x7cuk.js +0 -85
  554. package/dist/DialogFooter-8eZbdmPc.js +0 -165
  555. package/dist/HoverCardContent-DkMaQzH5.js +0 -83
  556. package/dist/Input-DVG_J0ne.js +0 -55
  557. package/dist/Notification-DKjKsQq8.js +0 -100
  558. package/dist/NumberFieldContent-1VtwDSgf.js +0 -145
  559. package/dist/Separator-BArl4OaB.js +0 -37
  560. package/dist/Switch-Dr--uLGH.js +0 -47
  561. package/dist/Toaster-Bm_HQSpc.js +0 -263
  562. package/dist/ToggleGroupItem-Dzk9hWsF.js +0 -157
  563. package/dist/TooltipProvider-B3MkB_8P.js +0 -104
  564. package/dist/button-BNDWhAZb.js +0 -81
  565. package/dist/check-njhk-vfu.js +0 -7
  566. package/dist/chevron-down-DKkxb4VV.js +0 -7
  567. package/dist/chevron-right-CPXbqQQz.js +0 -7
  568. package/dist/chevron-up-n_24SqI-.js +0 -7
  569. package/dist/color-DweYl7pE.js +0 -86
  570. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
  571. package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
  572. package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
  573. package/dist/createLucideIcon-DydS2qgk.js +0 -43
  574. package/dist/minimize-2-BV31Ob_h.js +0 -38
  575. package/dist/resolveCanvasColor-BBiYfp8g.js +0 -11
  576. package/dist/search-BSGrf2Sk.js +0 -12
  577. package/dist/styles/dock/rail-extend.css +0 -397
  578. package/dist/useCanvas2D-ClrQuZtp.js +0 -96
  579. package/dist/useConfiguratorState-kiIlun8I.js +0 -303
  580. package/dist/useRAFLoop-CdwJ7284.js +0 -109
  581. package/dist/useSpecularTracking-Bo5su68i.js +0 -32
  582. package/dist/useSpringMount-CvopqiFr.js +0 -108
  583. package/dist/useViewTransition-COsPjQVZ.js +0 -47
  584. package/dist/x-BUwTKe50.js +0 -10
  585. package/src/styles/dock/rail-extend.css +0 -397
  586. /package/dist/{CollapsibleContent-C_s6fG7r.js → CollapsibleContent-68dEXIAl.js} +0 -0
  587. /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-CxsHSyMj.js} +0 -0
  588. /package/dist/{Label-Ck9SWEKM.js → Label-C2ejNWeC.js} +0 -0
  589. /package/dist/{ModalOverlay-CkPRRgl_.js → ModalOverlay-D1VrWyoi.js} +0 -0
  590. /package/dist/{PaperBackdrop-nBKe0vkB.js → PaperBackdrop-CqwjnfLv.js} +0 -0
  591. /package/dist/{SelectGroup-Dcczq44n.js → SelectGroup-BFiod7X2.js} +0 -0
  592. /package/dist/{_plugin-vue_export-helper-CBt_VvXa.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
  593. /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
  594. /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
  595. /package/dist/{createContext-B2RaZ-b8.js → createContext-CpBNTRMI.js} +0 -0
  596. /package/dist/{math-DeuJwLFx.js → math-Eb0w3LqU.js} +0 -0
  597. /package/dist/{menuItemVariants-DWRQXBxJ.js → menuItemVariants-D8VNHq22.js} +0 -0
  598. /package/dist/{prng-Cg22zv8g.js → prng-B-d9eYX8.js} +0 -0
  599. /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
  600. /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
  601. /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
  602. /package/dist/{useLiquidFlex-C12hXwOZ.js → useLiquidFlex-UmA6LMZu.js} +0 -0
  603. /package/dist/{useResizeObserver-V6nq5gJb.js → useResizeObserver-Bpoi7tRE.js} +0 -0
  604. /package/dist/{useResolveTokenColor-NUG2zYAW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
  605. /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
  606. /package/dist/{useSurfaceAxis-CMnF2zHb.js → useSurfaceAxis-g0NloYEF.js} +0 -0
  607. /package/dist/{useTimer-B_PAasDL.js → useTimer-BHJOKr35.js} +0 -0
  608. /package/dist/{useUserInvalidAria-CDfJuakL.js → useUserInvalidAria-y5namzeE.js} +0 -0
  609. /package/dist/{useViewportReady-CvBcCYDf.js → useViewportReady-anbac3m6.js} +0 -0
@@ -0,0 +1,50 @@
1
+ import type { Component } from "vue";
2
+ export interface SpaViewProps {
3
+ /**
4
+ * The active view. Either a component (`<component :is>`) or a string key the
5
+ * default-slot resolves against. When `view`/`is` is set, SpaView renders the
6
+ * dynamic component directly; when unset, the default slot is the active view
7
+ * (the consumer drives `:is` inside the slot themselves).
8
+ */
9
+ view?: Component | string;
10
+ /** Alias of `view` (the `:is` ergonomics — same dynamic-component target). */
11
+ is?: Component | string;
12
+ /**
13
+ * The LRU cap — the max number of cached inactive view instances. Threaded
14
+ * straight onto `<KeepAlive :max>`; when unset, KeepAlive's default (unbounded)
15
+ * applies. The visual-load-bearing register: a bounded admin shell sets `:max`
16
+ * to its tab count so the cache never grows without bound.
17
+ */
18
+ max?: number;
19
+ /** KeepAlive include allowlist (component name / RegExp / array — pass-through). */
20
+ include?: string | RegExp | (string | RegExp)[];
21
+ /** KeepAlive exclude denylist (component name / RegExp / array — pass-through). */
22
+ exclude?: string | RegExp | (string | RegExp)[];
23
+ /**
24
+ * The Vue <Transition> recipe name driving the out-in cross-fade. Defaults to
25
+ * `"fade"` — the shared opacity-only compositor recipe (transitions.css). A
26
+ * consumer overrides it with another `mode="out-in"`-safe recipe name.
27
+ */
28
+ transition?: string;
29
+ /**
30
+ * The stable key the transition keys off (a re-render WITHOUT a key change is
31
+ * not a view swap). Defaults to the resolved `view`/`is` target. A consumer
32
+ * driving the active view from the default slot supplies its own `:view-key`.
33
+ */
34
+ viewKey?: string | number;
35
+ }
36
+ declare var __VLS_19: {};
37
+ type __VLS_Slots = {} & {
38
+ default?: (props: typeof __VLS_19) => any;
39
+ };
40
+ declare const __VLS_base: import("vue").DefineComponent<SpaViewProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<SpaViewProps> & Readonly<{}>, {
41
+ transition: string;
42
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
43
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
44
+ declare const _default: typeof __VLS_export;
45
+ export default _default;
46
+ type __VLS_WithSlots<T, S> = T & {
47
+ new (): {
48
+ $slots: S;
49
+ };
50
+ };
@@ -0,0 +1,2 @@
1
+ export { default as SpaView } from "./SpaView.vue";
2
+ export type { SpaViewProps } from "./SpaView.vue";
@@ -0,0 +1,39 @@
1
+ /**
2
+ * SplitChars — the component face of the per-glyph split. It renders the `text`
3
+ * prop into per-glyph `.char` spans (each carrying `--char-index`), wraps them in
4
+ * the shipped `.char-stagger` host (so the library CSS staggers them into a
5
+ * kinetic entrance on the per-spring `--spring-smooth` clock), and — by
6
+ * construction — keeps the word as ONE accessible name: the wrapper carries
7
+ * `aria-label="{text}"`, every glyph span is `aria-hidden`. AT hears "Fourier",
8
+ * never the spell-out.
9
+ *
10
+ * Usage:
11
+ * <SplitChars text="Fourier" />
12
+ * <SplitChars text="Hello World" by="word" as="h1" />
13
+ *
14
+ * The `text` PROP is the single source for BOTH the split AND the label — there
15
+ * is NO default slot (a slot would split arbitrary markup, so the accessible name
16
+ * would be ambiguous). The split re-runs on a `text` change (the watcher →
17
+ * `split()`). Engine-free: it composes `useCharStagger` (vue-only) + the shipped
18
+ * CSS; it adds NO animation engine and NO PRM logic (it inherits the recipe's
19
+ * carve — the split is structural, only the CSS `fade-in` is PRM-gated).
20
+ */
21
+ import { type Component, type HTMLAttributes } from "vue";
22
+ import { type UseCharStaggerOptions } from "../../../composables/motion/useCharStagger";
23
+ type __VLS_Props = {
24
+ /** The word to split — REQUIRED. It is the single source for both the
25
+ * per-glyph split AND the accessible label (the load-bearing a11y fact). */
26
+ text: string;
27
+ /** The split unit. Default `"char"`. */
28
+ by?: UseCharStaggerOptions["by"];
29
+ /** Host tag/component (reka-ui Primitive `as`; default `"span"`) — set
30
+ * `as="h1"` to render the kinetic word as a heading. */
31
+ as?: string | Component;
32
+ class?: HTMLAttributes["class"];
33
+ };
34
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
35
+ as: string | Component;
36
+ by: "char" | "word" | "grapheme";
37
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
38
+ declare const _default: typeof __VLS_export;
39
+ export default _default;
@@ -0,0 +1 @@
1
+ export { default as SplitChars } from "./SplitChars.vue";
@@ -49,6 +49,17 @@ export interface SegmentedTabsProps {
49
49
  * accessible name.
50
50
  */
51
51
  responsive?: boolean | SegmentedTabsResponsive;
52
+ /**
53
+ * BC.W-LIQUID-TAB — the LIQUID TAB. The `pill` indicator is a physical lozenge
54
+ * you can GRAB and PULL: it follows the finger ~1:1, squishes on drag velocity,
55
+ * and flings to the nearest tab on release (`useDragMorph`). DEFAULT `true` — the
56
+ * pull is the iOS-27 primary affordance, ADDITIVE OVER the click/keyboard path
57
+ * (which stays byte-identical + fully operable — the drag is a pointer
58
+ * ENHANCEMENT, never the sole selection mechanism, WCAG 2.1.1). A consumer who
59
+ * wants click-only opts out with `:draggable="false"`. No-op on `underline` (the
60
+ * ink hairline has no indicator element to deform — `dragEnabled` gates it).
61
+ */
62
+ draggable?: boolean;
52
63
  class?: HTMLAttributes["class"];
53
64
  }
54
65
  type __VLS_Props = SegmentedTabsProps;
@@ -75,6 +86,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
75
86
  }>, {
76
87
  orientation: SegmentedTabsOrientation;
77
88
  variant: SegmentedTabsVariant;
89
+ draggable: boolean;
78
90
  responsive: boolean | SegmentedTabsResponsive;
79
91
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
80
92
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -0,0 +1,42 @@
1
+ import type { ComputedRef, Ref } from "vue";
2
+ import { type UseDragMorphReturn } from "../../../../composables/motion/useDragMorph";
3
+ import type { SegmentedTabOption } from "../SegmentedTabs.vue";
4
+ /**
5
+ * Package-private composable for `SegmentedTabs.vue` — BB.W-DRAG-MORPH, the LIQUID
6
+ * TAB (the `:draggable` axis). Carved out of the SFC at BB.W-CARVE4 to hold the
7
+ * no-god-module bound, mirroring the `useTabIndicator` colocation sibling; the SFC
8
+ * IMPORTS it and binds `drag.dragStyle`/`drag.dragging` in its template.
9
+ *
10
+ * When `:draggable`, the `pill` indicator is wired to `useDragMorph` with the snap
11
+ * targets resolved off the CENTER-ANCHORED button geometry (the SAME measure
12
+ * `useTabIndicator` runs — reused, never re-measured). Dragging the indicator follows
13
+ * the finger, squishes on velocity, and flings to the nearest tab center on release →
14
+ * `onSnap` writes the `model`. The drag is the `pill` material ONLY (the `underline`
15
+ * ink hairline has no `indicatorRef` element to deform). The squish reads the SAME
16
+ * `--tab-indicator-max-stretch` live cap the click squish does (the SOLE cap source);
17
+ * the drag's `--stretch` write composes the existing reciprocal CSS pairing — no
18
+ * second squish recipe.
19
+ */
20
+ export interface UseTabDragMorphParams {
21
+ /** The active indicator element (the drag follow + squish target). */
22
+ indicatorRef: Ref<HTMLElement | null>;
23
+ /** True for the vertical (block-axis) orientation. */
24
+ isVertical: ComputedRef<boolean>;
25
+ /** True for the underline material (drag is a no-op there). */
26
+ isUnderline: ComputedRef<boolean>;
27
+ /** The `:draggable` prop (ADDITIVE, default false). */
28
+ draggable: () => boolean;
29
+ /** The strip's rendered options (the snap targets + the refresh trigger). */
30
+ stripOptions: ComputedRef<SegmentedTabOption[]>;
31
+ /** Per-option button refs, index-aligned to `stripOptions`. */
32
+ buttonRefs: Ref<HTMLElement[]>;
33
+ /** The single-select model — the fling-to-nearest commits the selection. */
34
+ model: Ref<string | undefined>;
35
+ }
36
+ export interface UseTabDragMorphReturn {
37
+ /** True when the drag is live (the `pill` material + the `:draggable` prop). */
38
+ dragEnabled: ComputedRef<boolean>;
39
+ /** The `useDragMorph` handle (the SFC binds `dragStyle`/`dragging`). */
40
+ drag: UseDragMorphReturn;
41
+ }
42
+ export declare function useTabDragMorph(params: UseTabDragMorphParams): UseTabDragMorphReturn;
@@ -1,10 +1,18 @@
1
1
  /**
2
2
  * Fallback for `--tab-indicator-max-stretch` when the cascade leaves it unset — the
3
- * default ≈+8% travel-squish cap (AX.W53). `--stretch = 1 + frac · (cap − 1)`, so a
3
+ * default ≈+15% travel-squish cap. `--stretch = 1 + frac · (cap − 1)`, so a
4
4
  * full-width jump reaches the cap and a tiny hop stays near 1. The token is the
5
5
  * authority; this is the no-token floor.
6
+ *
7
+ * BC.W-LIQUID-TAB — lifted 1.08 → 1.15 so a FAST liquid-tab pull visibly swells the
8
+ * pill (the gel-squish READS as liquid, glass-dock-codebase.md §3.4) — still capped
9
+ * LOW (≤1.2, the anti-taffy-pull bar). The cap is shared by the click travel-squish
10
+ * AND the drag pull-morph (the SOLE cap source — the constant + the token in
11
+ * lockstep, never a fork); the volume-preserving reciprocal pairing
12
+ * (`scale: var(--stretch) calc(1/var(--stretch))`) is unchanged — only the magnitude
13
+ * lifts.
6
14
  */
7
- export declare const DEFAULT_INDICATOR_MAX_STRETCH = 1.08;
15
+ export declare const DEFAULT_INDICATOR_MAX_STRETCH = 1.15;
8
16
  /**
9
17
  * The travel-progress fraction at which the squish RELEASES — the Material
10
18
  * "grow then shrink" close, keyed to ARRIVAL (BA.W-TABS). The squish opens with
@@ -14,5 +22,15 @@ export declare const DEFAULT_INDICATOR_MAX_STRETCH = 1.08;
14
22
  * release schedules off the calibrated clock (`--spring-snappy-duration`) scaled
15
23
  * by this fraction, so the stretch peaks during travel and shrinks to fit AT
16
24
  * arrival, never before.
25
+ *
26
+ * BC.W-UNDERLINE-TUNE — VERIFIED against the eased `snappy` (response 0.42 / ζ 0.78,
27
+ * the BC.W-SPRING-EASE re-derive). On that curve the position arrives (≥99% travel)
28
+ * at ~74% of the `--spring-snappy-duration` clock and the 90%-travel point lands at
29
+ * ~57% (mid-clock — the front-load gone). 0.82 releases the squish at ~279ms (= 0.82
30
+ * × 340ms), i.e. AT arrival (just past the ~74% arrival), so the stretch peaks DURING
31
+ * travel and shrinks to fit AT arrival — never before (0.82 ≥ the 0.74 arrival point).
32
+ * The position + squish now read ONE matched window: the desync (HEAD position-at-16%
33
+ * vs squish-at-82%) collapsed because the eased curve actually travels across the clock.
34
+ * KEPT at 0.82 — the eased arrival sits inside the release fraction; no nudge needed.
17
35
  */
18
36
  export declare const INDICATOR_RELEASE_AT_ARRIVAL = 0.82;
@@ -1,32 +1,45 @@
1
1
  /**
2
- * WatercolorDot — an organic pastel blob swatch (AU.W7 lift). A CSS/SVG primitive
3
- * (no WebGL): the blob shape is a deterministic per-vertex `border-radius` morph
4
- * (seeded by `color + seed`), and the wet, bleeding edge is an SVG turbulence +
5
- * displacement filter that is INTERNALISED — the component mounts its own
6
- * namespaced `<filter>` so there is zero consumer plumbing. Mount the dot and the
7
- * filter just works.
2
+ * WatercolorDot — an organic pastel blob swatch. A CSS/SVG primitive (NO drawing
3
+ * context — no WebGL/WebGPU/Canvas2D; the deliberate suite counterexample, the mark
4
+ * that documents WHY it is not a GPU context): the blob shape is a deterministic
5
+ * per-vertex `border-radius` morph (seeded by `color + seed`), and the wet, bleeding
6
+ * edge is an SVG turbulence + displacement filter that is INTERNALISED — the component
7
+ * mounts its own namespaced `<filter>` so there is zero consumer plumbing. Mount the
8
+ * dot and the filter just works.
9
+ *
10
+ * Safari-safe by construction (USER-DEFECTS §H): the SVG `<filter>` rasterizes ONCE
11
+ * + caches (the HandMark `texture.ts` idiom) and NEVER re-rasterizes per frame; the
12
+ * `animate` liveness rides a seeded COMPOSITOR `transform` wobble the compositor
13
+ * accelerates without touching the filter graph (a per-frame `border-radius` paint
14
+ * under the filter is the §H Safari flash, retired here). The filter `seed` is
15
+ * per-instance off `hashString(color + seed)` so each dot's wet edge is uniquely
16
+ * displaced (no twelve-clones).
8
17
  *
9
18
  * Color arrives as a CSS string painted straight onto the swatch background — the
10
19
  * dot needs no resolver because it does not feed a shader; the injected-color seam
11
- * shape is "pass the CSS color in".
20
+ * shape is "pass the CSS color in". Warm-cream identity by default (the dot bakes no
21
+ * hue; the demo palette is presets-in-consumers).
12
22
  */
13
23
  type __VLS_Props = {
14
24
  /** CSS color painted as the swatch background (any CSS color form). */
15
25
  color: string;
16
26
  /**
17
- * Render mode (BA.W-EMISSION / BA-VJS-C2):
27
+ * Render mode:
18
28
  * `solid` (default) — the filled organic blob (the swatch background IS the
19
29
  * color; the existing register, unchanged).
20
- * `ghost` — the SAME seeded blob SILHOUETTE rendered as a STROKE: a
21
- * `color` border over a low-alpha `color` fill, the irregular-blob
22
- * outline (NOT a CSS dashed rectangle). A `ghost` of a given
23
- * `color + seed` matches the SAME silhouette the `solid` dot of
24
- * that seed renders — both read the same `useWatercolorBlob`
25
- * border-radius morph; the stroke is the only delta. The
30
+ * `ghost` — the SAME seeded blob SILHOUETTE traced as a DASHED outline: an
31
+ * SVG <ellipse> `stroke-dasharray` carrying the SAME wet
32
+ * `feDisplacementMap` filter, so the displacement wobbles the
33
+ * dashed ellipse INTO the seeded organic outline (a dashed
34
+ * OUTLINE following the silhouette — NOT a solid ring, NOT a CSS
35
+ * dashed rectangle). A low-alpha `color` fill is kept behind the
36
+ * stroke. A `ghost` of a given `color + seed` carries the SAME
37
+ * seeded `border-radius` silhouette the `solid` dot of that seed
38
+ * renders (both read the same `useWatercolorBlob` morph). The
26
39
  * empty-palette-slot / placeholder affordance.
27
40
  */
28
41
  variant?: "solid" | "ghost";
29
- /** Run the rAF-driven shape morph (default false → static, hover-morph only). */
42
+ /** Run the rAF-driven compositor transform wobble (default false → static). */
30
43
  animate?: boolean;
31
44
  /** Host tag — `div` (decorative) or `button` (interactive). */
32
45
  tag?: "div" | "button";
@@ -34,7 +47,7 @@ type __VLS_Props = {
34
47
  cycleDuration?: number;
35
48
  /** Border-radius range [lo, hi] as percentages (default [20, 80]). */
36
49
  range?: [number, number];
37
- /** Extra seed string mixed into the shape PRNG for reproducible uniqueness. */
50
+ /** Extra seed string mixed into the shape + wet-edge PRNG for uniqueness. */
38
51
  seed?: string;
39
52
  };
40
53
  declare var __VLS_11: {};
@@ -43,9 +56,9 @@ type __VLS_Slots = {} & {
43
56
  };
44
57
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
45
58
  animate: boolean;
59
+ range: [number, number];
46
60
  variant: "solid" | "ghost";
47
61
  seed: string;
48
- range: [number, number];
49
62
  tag: "div" | "button";
50
63
  cycleDuration: number;
51
64
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,6 +1,6 @@
1
1
  import { type Ref } from "vue";
2
2
  export interface UseWatercolorBlobOptions {
3
- /** Enable the rAF animation loop. */
3
+ /** Enable the rAF animation loop (drives a COMPOSITOR transform wobble). */
4
4
  animate?: boolean;
5
5
  /** Base cycle duration in ms (default 4000). */
6
6
  cycleDuration?: number;
@@ -11,14 +11,19 @@ export interface UseWatercolorBlobOptions {
11
11
  }
12
12
  /**
13
13
  * Drives a watercolor dot's organic blob shape. Deterministic given `color + seed`
14
- * (seeds the PRNG), so the same color reproduces the same shape across mounts. In
15
- * static mode it emits a base + hover `border-radius`; in `animate` mode it runs an
16
- * rAF loop morphing each of the 8 radii independently. `nudge()` retargets all
17
- * vertices for a quick jiggle.
14
+ * (seeds the PRNG), so the same color reproduces the same shape across mounts. The
15
+ * seeded `border-radius` silhouette is set ONCE (the dot's identity) and is STATIC —
16
+ * the box never re-paints its radius per frame (the §H Safari fix: a per-frame
17
+ * `border-radius` write under the SVG filter forces the filter graph to RE-RASTERIZE
18
+ * every frame, which flashes Safari). In `animate` mode the liveness rides a seeded
19
+ * COMPOSITOR `transform` wobble (scale/skew/rotate) the compositor handles WITHOUT
20
+ * touching the cached filter — the HandMark static-filter idiom. `nudge()` retargets
21
+ * the wobble for a quick jiggle on hover.
18
22
  */
19
23
  export declare function useWatercolorBlob(color: Ref<string> | (() => string), options?: UseWatercolorBlobOptions): {
20
24
  borderRadius: Ref<string, string>;
21
25
  hoverBorderRadius: Ref<string, string>;
26
+ transform: Ref<string, string>;
22
27
  nudge: () => void;
23
28
  };
24
29
  export type WatercolorBlob = ReturnType<typeof useWatercolorBlob>;
@@ -2,3 +2,5 @@ export { menuItemVariants } from "./menuItemVariants";
2
2
  export type { MenuItemVariants } from "./menuItemVariants";
3
3
  export { surfaceClass } from "./useSurfaceAxis";
4
4
  export type { Surface, SurfaceTier } from "./useSurfaceAxis";
5
+ export { controlSizeClass, switchSizeClass } from "./useControlSize";
6
+ export type { ControlSize } from "./useControlSize";
@@ -44,7 +44,7 @@ import { type VariantProps } from "class-variance-authority";
44
44
  * opts in via `surface="accent"`.
45
45
  */
46
46
  export declare const menuItemVariants: (props?: ({
47
- surface?: "accent" | "glass" | null | undefined;
47
+ surface?: "glass" | "accent" | null | undefined;
48
48
  indicator?: "start" | "none" | "start-wide" | null | undefined;
49
49
  density?: "comfortable" | "audacious" | null | undefined;
50
50
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * The shared control-size axis — three rungs, ONE grammar. The meaningful
3
+ * control-size hierarchy rungs the input register needs (Button's `xs`/icon rungs
4
+ * are Button-specific — an input has no icon-only register, so they are NOT here).
5
+ *
6
+ * sm — the quieter/secondary control: the `--control-h-sm` height +
7
+ * `--control-text-sm` font (shorter + quieter).
8
+ * default — the canonical golden pill: the `--control-h-md` height +
9
+ * `--control-text` font (byte-identical to HEAD).
10
+ * lg — the primary/emphatic control: the `--control-h-lg` height with the
11
+ * base `--control-text` font (taller, same workhorse weight — matching
12
+ * Button's `lg`, where only the height grows).
13
+ */
14
+ export type ControlSize = "sm" | "default" | "lg";
15
+ /**
16
+ * Resolve a `ControlSize` to the element-level token-override class string the
17
+ * `.input-pill` recipe reads. The `default` rung emits NO override (so the recipe
18
+ * falls back to the cohort `--control-h-md` / `--control-text` — byte-identical to
19
+ * HEAD); `sm`/`lg` re-point `--control-pill-h` / `--control-pill-text` to the
20
+ * chosen cohort rung.
21
+ *
22
+ * controlSizeClass() → "" (golden default)
23
+ * controlSizeClass("sm") → "[--control-pill-h:var(--control-h-sm)] [--control-pill-text:var(--control-text-sm)]"
24
+ * controlSizeClass("lg") → "[--control-pill-h:var(--control-h-lg)]"
25
+ *
26
+ * @param size the control-size rung (`default` · `sm` · `lg`)
27
+ */
28
+ export declare function controlSizeClass(size?: ControlSize): string;
29
+ /**
30
+ * The Switch geometry rung. A Switch is a control-height-DERIVED geometry (the
31
+ * track/thumb/throw are NOT the bare cohort height — a switch track is shorter
32
+ * than an input), so it derives its `--switch-track-h` from the chosen
33
+ * `--control-h-*` rung (×0.6, the iOS proportion) and the rest of the
34
+ * `--switch-*` quad follows in Switch.vue:
35
+ *
36
+ * --switch-thumb = --switch-track-h − 0.25rem (the 2px×2 track border)
37
+ * --switch-track-w = --switch-track-h × 11/6 (the iOS track aspect)
38
+ * --switch-throw = --switch-track-w − --switch-thumb − 0.25rem
39
+ *
40
+ * The `default` rung (`--control-h-md`) resolves the HEAD `h-6 w-11` track +
41
+ * `h-5 w-5` thumb + `translate-x-5` throw EXACTLY (byte-identical). `sm`/`lg`
42
+ * re-point the anchor `--switch-track-h` so the whole quad scales in lockstep.
43
+ *
44
+ * @param size the control-size rung (`default` · `sm` · `lg`)
45
+ */
46
+ export declare function switchSizeClass(size?: ControlSize): string;
@@ -1,7 +1,7 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
2
  export { default as Badge } from './Badge.vue';
3
3
  export declare const badgeVariants: (props?: ({
4
- variant?: "default" | "destructive" | "outline" | "secondary" | "success" | "warning" | "info" | null | undefined;
4
+ variant?: "default" | "outline" | "destructive" | "secondary" | "success" | "warning" | "info" | null | undefined;
5
5
  size?: "sm" | "lg" | "md" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  export type BadgeVariants = VariantProps<typeof badgeVariants>;
@@ -1,16 +1,19 @@
1
1
  import type { ButtonHTMLAttributes, HTMLAttributes } from 'vue';
2
2
  import { type PrimitiveProps } from 'reka-ui';
3
3
  import { type ButtonVariants } from '.';
4
+ import type { Surface } from '../_shared/useSurfaceAxis';
4
5
  interface Props extends PrimitiveProps {
5
6
  variant?: ButtonVariants['variant'];
6
7
  size?: ButtonVariants['size'];
7
8
  class?: HTMLAttributes['class'];
9
+ surface?: Surface;
10
+ liquid?: boolean;
8
11
  type?: ButtonHTMLAttributes['type'];
9
12
  disabled?: ButtonHTMLAttributes['disabled'];
10
13
  }
11
- declare var __VLS_8: {};
14
+ declare var __VLS_13: {};
12
15
  type __VLS_Slots = {} & {
13
- default?: (props: typeof __VLS_8) => any;
16
+ default?: (props: typeof __VLS_13) => any;
14
17
  };
15
18
  declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
16
19
  as: import("reka-ui").AsTag | import("vue").Component;
@@ -1,7 +1,7 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
2
  export { default as Button } from './Button.vue';
3
3
  export declare const buttonVariants: (props?: ({
4
- variant?: "link" | "default" | "solid" | "primary-audacious" | "gold-audacious" | "destructive" | "outline" | "secondary" | "accent" | "ghost" | "glass" | "glass-wash" | "ai" | null | undefined;
5
- size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-sm" | null | undefined;
4
+ variant?: "link" | "default" | "glass" | "outline" | "primary-audacious" | "gold-audacious" | "destructive" | "secondary" | "accent" | "ghost" | "glass-wash" | "ai" | null | undefined;
5
+ size?: "default" | "icon" | "xs" | "sm" | "lg" | "icon-sm" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  export type ButtonVariants = VariantProps<typeof buttonVariants>;
@@ -11,8 +11,13 @@ import { type PrimitiveProps } from "reka-ui";
11
11
  * overlay — heaviest (~0.95α + blur) : modal-on-modal, dialog over content
12
12
  * opaque — `--glass-level:0` escape : the solid-card opt-out (AX.W54), maps to
13
13
  * `.glass-opaque` through the same `glass-${tier}` rung as the rest
14
+ * deep — `--glass-blur-deep-*` OPT-IN : the maximal iOS-27 Liquid-Glass tier
15
+ * ABOVE the W-GLASS-CAL calm default (Apple saturate-1.5/blur-16px),
16
+ * maps to `.glass-floating glass-deep` (a base rung + the deep
17
+ * decoration, mirroring opaque) — the hero glass / CTA register
18
+ * (BB.W-DEEP-GLASS). The calm content default is byte-unchanged.
14
19
  */
15
- export type CardTier = "wash" | "quiet" | "resting" | "floating" | "overlay" | "opaque";
20
+ export type CardTier = "wash" | "quiet" | "resting" | "floating" | "overlay" | "opaque" | "deep";
16
21
  /**
17
22
  * Surface decoration register — orthogonal to `tier`/`shadow`/`grain`.
18
23
  *
@@ -46,6 +51,23 @@ export type CardSurface = "glass" | "cartoon" | "veil";
46
51
  * was originally authored over (a local intensity-token override).
47
52
  */
48
53
  export type CardSpecular = "off" | "subtle" | "full";
54
+ /**
55
+ * Decoration variant — the ONE new Atlas component (BC.W-SELECTION-CARD, the I5
56
+ * selection card). Default UNSET: a bare `<Card>` is byte-identical to HEAD; the
57
+ * variant is additive default-OFF (the no-op floor). `selection` binds
58
+ * `:data-variant="selection"` on the root and ROUTES the chromatic-rim (A-2,
59
+ * `--glass-accent`) + selected metal-shimmer (A-3, `.metal-*-border`) decoration
60
+ * through the SHARED BUILT seams — it mints NO new sub-system. The shape mirrors
61
+ * the `surface` axis exactly: a data-attr the CSS seam reads, ORTHOGONAL to
62
+ * `tier`/`surface`/`pressable` (a `variant="selection" surface="glass"
63
+ * tier="resting" pressable` card is valid). The hue is a CONSUMER value
64
+ * (`data-hue`/`data-hue-strength` per-instance); NO consumer hue enters a token.
65
+ */
66
+ export type CardVariant = "selection";
67
+ /** The earned metal for a SELECTED selection-card (gold default — BA.W-PHASE-PALETTE
68
+ * "gold is earned" for the chosen item). Composes the BUILT `.metal-{name}-border`
69
+ * utility; NO forked keyframe, NO baked metal color. */
70
+ export type CardMetal = "gold" | "silver" | "bronze";
49
71
  interface Props extends PrimitiveProps {
50
72
  /** Surface tier; selects one rung of the glass ladder. Default `resting`. */
51
73
  tier?: CardTier;
@@ -62,6 +84,15 @@ interface Props extends PrimitiveProps {
62
84
  /** `::after` paper-grain overlay. Off for scroll panes (the grain conflicts
63
85
  * with overflow:auto repaints). */
64
86
  grain?: boolean;
87
+ /** BB.W-PAPER-GRID-TEXTURE — the GEOMETRIC paper register: a `::after`
88
+ * blueprint/graph-paper grid felt THROUGH the card interior (the math/grid
89
+ * brand pillar, read through the plate rather than only in the page
90
+ * margin). Default **OFF** — a bare card is byte-identical to HEAD; a
91
+ * document-register card opts in. ORTHOGONAL to `grain` (organic) — a card
92
+ * may carry BOTH the turbulence grain and the geometric grid. The register
93
+ * doctrine (paper-register cards opt in, instrument-glass surfaces do NOT)
94
+ * is a CONSUMER choice the default-OFF honors by construction. */
95
+ grid?: boolean;
65
96
  /** Specular catch-light register (AX.W09). `off` (default) keeps the card
66
97
  * CLEAN — no pointer-anchored lens, clean over any backplate (the §24
67
98
  * three-consumer-confirmed default for a data/content card). `subtle` wakes
@@ -69,19 +100,63 @@ interface Props extends PrimitiveProps {
69
100
  * hero/chrome opt-in); `full` runs the brighter pre-tune rung set for a busy
70
101
  * backdrop. Only `glass` surfaces wire it; `cartoon` owns its own sticker lift. */
71
102
  specular?: CardSpecular;
103
+ /** BB.W-PRESS-UNIFY — the interactive PRESS register, default **OFF**. A bare
104
+ * Card is a static content PLATE and never presses (a press on a static surface
105
+ * is the visual-load-bearing anti-pattern). A `:pressable` Card is a TAPPABLE
106
+ * LIST-CARD (a selectable result row, a navigable tile) — it gains the ONE
107
+ * interruptible coupled spring-press (`useLiquidPress`): the reciprocal X/Y squish
108
+ * + a sub-perceptual brightness lift on the `--card-press-t` drive, on the
109
+ * `--spring-snappy`-class clock, INTERRUPTIBLE (a rapid re-tap re-seats the spring
110
+ * velocity-continuously), PRM-instant (the press snaps with zero in-between
111
+ * frames). Card is the SECOND binary the dead `useSpringPress` primitive reaches
112
+ * (Button is the first — direct; Card via `useLiquidPress` which composes it — the
113
+ * J-inv-10 ≥2-consumer bar met; the dock control is the booked third). The press is
114
+ * compositor-only (`scale` + a custom property); the `.glass-press` CSS `:active`
115
+ * scale is the no-JS / SSR floor. */
116
+ pressable?: boolean;
117
+ /** BC.W-SELECTION-CARD — the selection decoration axis (the ONE new Atlas
118
+ * component). `selection` ROUTES the per-instance data-hue rim (A-2) +
119
+ * the selected metal-shimmer border (A-3) through the BUILT seams; default
120
+ * UNSET (a bare Card is byte-identical to HEAD). ORTHOGONAL to
121
+ * `tier`/`surface`/`pressable`. */
122
+ variant?: CardVariant;
123
+ /** BC.W-SELECTION-CARD — the chosen state of a `variant="selection"` card.
124
+ * When `true` the card composes the earned `.metal-${metal}-border` swept
125
+ * rim + lifts the accent-strength toward `--selection-accent-strength-selected`
126
+ * (rim-not-fill — the plate stays warm-cream translucent). The consumer wires
127
+ * the matching `aria-selected`/`aria-checked` role contract on the card. */
128
+ selected?: boolean;
129
+ /** BC.W-SELECTION-CARD — the metal of the SELECTED-state swept rim. `gold`
130
+ * (default) is earned for the chosen item; `silver`/`bronze` are the other
131
+ * two BUILT `.metal-*-border` quads. Only read when `variant="selection"` +
132
+ * `selected`. */
133
+ metal?: CardMetal;
134
+ /** BC.W-SELECTION-CARD — the per-instance data hue (a complete `<color>`) a
135
+ * `variant="selection"` card tints its RIM + catch-light glint toward (the
136
+ * A-2 `--glass-accent` consumer). The hue NEVER tints the plate background
137
+ * (the distinct-axis fence); unset → the neutral `transparent` no-op floor. */
138
+ dataHue?: string;
139
+ /** BC.W-SELECTION-CARD — the bounded accent strength override (a `<percentage>`,
140
+ * e.g. `"20%"`). Unset → the calm `--selection-accent-strength` default
141
+ * (≤ the W-GLASS-ACCENT rim ceiling). Bounded — a whisper at the rim, never a
142
+ * flooded plate. */
143
+ dataHueStrength?: string;
72
144
  class?: HTMLAttributes["class"];
73
145
  }
74
- declare var __VLS_10: {};
146
+ declare var __VLS_13: {};
75
147
  type __VLS_Slots = {} & {
76
- default?: (props: typeof __VLS_10) => any;
148
+ default?: (props: typeof __VLS_13) => any;
77
149
  };
78
150
  declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
79
151
  shadow: boolean;
80
- as: import("reka-ui").AsTag | import("vue").Component;
152
+ grid: boolean;
81
153
  surface: CardSurface;
154
+ as: import("reka-ui").AsTag | import("vue").Component;
82
155
  tier: CardTier;
83
156
  grain: boolean;
84
157
  specular: CardSpecular;
158
+ pressable: boolean;
159
+ metal: CardMetal;
85
160
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
86
161
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
87
162
  declare const _default: typeof __VLS_export;
@@ -5,30 +5,56 @@ import type { HTMLAttributes } from 'vue';
5
5
  * AI.W1-α additive `shrink` modifier — when true, the header binds to the
6
6
  * `--card-scroll` named scroll-timeline (emitted by the canonical
7
7
  * `.card-scroll-host` utility on a scroll-overflow ancestor) and runs a
8
- * 3-lane choreography as the host scrolls:
8
+ * 3-lane choreography as the host scrolls. The 3 lanes are now
9
+ * COMPOSITOR-SAFE (transform/opacity only — BB.W-CARD-COMPOSITE) so ZERO
10
+ * reflow fires per scroll frame (the A'-3 CLS 1.03 worst-cluster killed):
9
11
  *
10
- * 1. Header padding shrink (0..120px scroll range) — top/bottom padding
11
- * collapses from 1rem/0.5rem to 0.5rem/0.25rem.
12
- * 2. Title font-size shrink (0..120px) — `[data-slot="card-title"]`
13
- * glyph scales from `--type-heading` down to `--type-prose`.
14
- * 3. Description grid-row collapse (0..80px, faster fade) —
15
- * `[data-slot="card-description"]` collapses its 1fr → 0fr grid
16
- * row while fading opacity → 0; the slot retires entirely past the
17
- * 80px boundary, freeing vertical real estate for the body.
12
+ * 1. Header content compress (0..120px scroll range) — the header content
13
+ * slides up via `transform: translateY` as the host scrolls so the top
14
+ * breathing room visually compresses; the header box keeps its layout
15
+ * size (no padding reflow). The visual gestalt — ~0.5rem of top space
16
+ * collapses — reads identically.
17
+ * 2. Title shrink (0..120px) — `[data-slot="card-title"]` scales DOWN via
18
+ * `transform: scale(--card-title-shrink-ratio)` (origin: leading edge),
19
+ * so the glyph visually shrinks from `--type-heading` to roughly
20
+ * `--type-prose` while the text run lays out ONCE (no per-frame
21
+ * `font-size` text re-measure — the worst reflow lane, killed).
22
+ * 3. Description retire (0..80px, faster fade) —
23
+ * `[data-slot="card-description"]` fades `opacity: 1 → 0` AND collapses
24
+ * `transform: scaleY(1 → 0)` (origin: top) so the slot visually retires
25
+ * upward; the real-estate reclaim is the composited scaleY, NOT a
26
+ * `grid-template-rows` relayout.
27
+ * 4. Header background lift (0..120px — BB.W-SCROLL-CARD) — a `::before`
28
+ * BACKPLATE carrying the `--card-header-bg` tint fades `opacity: 0 → 1`
29
+ * on the same timeline, so a stuck header reads transparent over the
30
+ * body at scroll-top and lifts to the painted tint as it sticks. The
31
+ * opacity channel keeps the lift compositor-safe.
18
32
  *
19
- * The choreography migrates verbatim from value.js's `PaneHeader.vue`
20
- * (the load-bearing pane-scroll-fade pattern that ran across the 9 panes)
21
- * — same `--card-scroll` timeline, same `0..120px` / `0..80px` ranges,
22
- * same animation keyframes (renamed `pane-*` → `card-*`).
33
+ * BB.W-SCROLL-CARD — the two text lanes (2 + 3) re-target via `:slotted()`
34
+ * (the precise Vue scoped-CSS slotted-content selector, the MetricRow.vue
35
+ * idiom) so they MATCH a consumer-SLOTTED <CardTitle>/<CardDescription>; the
36
+ * prior `:deep()` enabler was the W-CARD-COMPOSITE minimal stopgap, replaced
37
+ * here by the precise tool (no descendant-leak sledgehammer).
38
+ *
39
+ * The choreography ORIGINALLY migrated verbatim from value.js's
40
+ * `PaneHeader.vue`, which animated LAYOUT properties (padding/font-size/
41
+ * grid-template-rows/margin) — a per-scroll-frame reflow storm (CLS 1.03,
42
+ * the A'-3 P0 that shipped at 4.0.0). BB.W-CARD-COMPOSITE re-expresses each
43
+ * lane as the compositor-transform equivalent the house already speaks
44
+ * (the `scroll-driven.css` scaleX/translateY/opacity idiom) — the visual
45
+ * choreography is IDENTICAL; only the mechanism changed. The
46
+ * `proof:no-layout-animation` gate makes the layout-property class
47
+ * structurally impossible to re-ship.
23
48
  *
24
49
  * **Required ancestor**: when `shrink` is true, `.card-scroll-host` MUST
25
50
  * sit on the scroll-overflow ancestor (typically the same `<Card>` host's
26
51
  * scroll wrapper). Without that host the named timeline never emits and
27
52
  * the choreography sits idle. Documented in DESIGN.md `## Card` section.
28
53
  *
29
- * Sticky positioning + background tint stay consumer-side (the consumer
30
- * adds `class="sticky top-0 backdrop-blur-md"` etc. via `props.class`);
31
- * `--card-header-bg` is the canonical tint token for that backdrop.
54
+ * Sticky positioning stays consumer-side (the consumer adds
55
+ * `class="sticky top-0 backdrop-blur-md"` etc. via `props.class`); the
56
+ * background TINT is now scroll-driven by lane 4 (the `::before` backplate),
57
+ * reading `--card-header-bg` as the canonical tint token.
32
58
  */
33
59
  type __VLS_Props = {
34
60
  /**