@mkbabb/glass-ui 4.0.1 → 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 (459) hide show
  1. package/dist/{CardAction-CW7a0m8M.js → CardAction-8whJrLWt.js} +23 -8
  2. package/dist/{CommandShortcut-DvZNQ_HF.js → CommandShortcut-D3yxgHNn.js} +23 -12
  3. package/dist/{ConfiguratorRow-BR4l-ixA.js → ConfiguratorRow-CaP7U3ZA.js} +11 -11
  4. package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
  5. package/dist/{ContextMenuSubContent-xol4sD2q.js → ContextMenuSubContent-DDRID3qC.js} +15 -15
  6. package/dist/{DataTable-CuKwF7wr.js → DataTable-Bc9kUtu_.js} +2 -2
  7. package/dist/{DialogContent-DcKK8k9i.js → DialogContent-6JtTB5x2.js} +8 -5
  8. package/dist/DialogFooter-9phqcRIS.js +80 -0
  9. package/dist/DialogScrollContent-TTuovQst.js +93 -0
  10. package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
  11. package/dist/{IconChip-BTD-nay5.js → IconChip-DhbdGdFQ.js} +1 -1
  12. package/dist/{IconTooltip-Bl8gFZ8d.js → IconTooltip-B0zimd2H.js} +1 -1
  13. package/dist/Input-Cg9DF62r.js +57 -0
  14. package/dist/{Notification-VUwexFUf.js → Notification-CphK7AAm.js} +3 -3
  15. package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
  16. package/dist/PagerDots-Cjx96la-.js +98 -0
  17. package/dist/{SelectScrollDownButton-CrA8F0iV.js → SelectScrollDownButton-DAKCBEdW.js} +62 -57
  18. package/dist/{SelectSeparator-DXswVdRz.js → SelectSeparator-C2UGOkXF.js} +1 -1
  19. package/dist/Separator-DQcwC2TR.js +44 -0
  20. package/dist/Switch-B8RscmRu.js +49 -0
  21. package/dist/{Toaster-Bw4xR8xV.js → Toaster-D9qIHjBI.js} +1 -1
  22. package/dist/{ToggleGroupItem-pEM9vIhs.js → ToggleGroupItem-BLtr3TJq.js} +2 -2
  23. package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
  24. package/dist/animated-digit.js +1 -1
  25. package/dist/api/index.d.ts +15 -32
  26. package/dist/api/types-extra.d.ts +31 -0
  27. package/dist/api.js +1 -1
  28. package/dist/aurora.js +579 -251
  29. package/dist/border-progress.js +49 -57
  30. package/dist/{button-DYCUa-tH.js → button-5dY1Dvhd.js} +13 -14
  31. package/dist/button.js +1 -1
  32. package/dist/canvas.js +2 -3
  33. package/dist/card.js +1 -1
  34. package/dist/carousel.js +20 -20
  35. package/dist/color-Cs0-oxYL.js +116 -0
  36. package/dist/color.js +2 -2
  37. package/dist/command.js +1 -1
  38. package/dist/completion-seal.d.ts +1 -0
  39. package/dist/completion-seal.js +89 -0
  40. package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
  41. package/dist/components/custom/aurora/composables/color.d.ts +13 -0
  42. package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
  43. package/dist/components/custom/aurora/composables/runtime.d.ts +12 -0
  44. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +11 -2
  45. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +8 -0
  46. package/dist/components/custom/aurora/constants/presets.d.ts +18 -0
  47. package/dist/components/custom/aurora/constants/renderMode.d.ts +16 -8
  48. package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
  49. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
  50. package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
  51. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +14 -18
  52. package/dist/components/custom/border-progress/index.d.ts +1 -1
  53. package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
  54. package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
  55. package/dist/components/custom/completion-seal/constants.d.ts +46 -0
  56. package/dist/components/custom/completion-seal/index.d.ts +4 -0
  57. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +7 -0
  58. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +9 -0
  59. package/dist/components/custom/concentric/composables/ringField.d.ts +57 -16
  60. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +2 -1
  61. package/dist/components/custom/concentric/composables/useConcentric.d.ts +4 -4
  62. package/dist/components/custom/concentric/constants.d.ts +30 -6
  63. package/dist/components/custom/concentric/index.d.ts +2 -2
  64. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +2 -2
  65. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -1
  66. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
  67. package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
  68. package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
  69. package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
  70. package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
  71. package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
  72. package/dist/components/custom/constellation/constants.d.ts +33 -0
  73. package/dist/components/custom/constellation/constellationField.d.ts +31 -1
  74. package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
  75. package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
  76. package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
  77. package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
  78. package/dist/components/custom/constellation/index.d.ts +5 -5
  79. package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
  80. package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
  81. package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
  82. package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
  83. package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
  84. package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
  85. package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
  86. package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
  87. package/dist/components/custom/deck/constants.d.ts +14 -0
  88. package/dist/components/custom/deck/index.d.ts +8 -0
  89. package/dist/components/custom/dock/DockIconButton.vue.d.ts +12 -0
  90. package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
  91. package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
  92. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +80 -0
  93. package/dist/components/custom/dock/composables/index.d.ts +2 -0
  94. package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
  95. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
  96. package/dist/components/custom/dock/constants.d.ts +18 -14
  97. package/dist/components/custom/dock/index.d.ts +5 -2
  98. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +15 -11
  99. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +48 -6
  100. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +23 -8
  101. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +6 -5
  102. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -5
  103. package/dist/components/custom/dot-flow-field/constants.d.ts +42 -21
  104. package/dist/components/custom/dot-flow-field/index.d.ts +2 -2
  105. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -1
  106. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -20
  107. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -1
  108. package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
  109. package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
  110. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
  111. package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
  112. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
  113. package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
  114. package/dist/components/custom/dot-matrix/index.d.ts +5 -0
  115. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
  116. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
  117. package/dist/components/custom/easing/EasingPicker.vue.d.ts +2 -2
  118. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +5 -0
  119. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
  120. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +40 -47
  121. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
  122. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
  123. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
  124. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +40 -37
  125. package/dist/components/custom/fourier-field/constants.d.ts +61 -4
  126. package/dist/components/custom/fourier-field/index.d.ts +23 -18
  127. package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
  128. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
  129. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
  130. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +9 -1
  131. package/dist/components/custom/goo-blob/constants.d.ts +1 -1
  132. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  133. package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
  134. package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
  135. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
  136. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -1
  137. package/dist/components/custom/goo-blob/types.d.ts +36 -0
  138. package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
  139. package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
  140. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
  141. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
  142. package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
  143. package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
  144. package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
  145. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
  146. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
  147. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
  148. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
  149. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
  150. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  151. package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
  152. package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
  153. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
  154. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
  155. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
  156. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
  157. package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
  158. package/dist/components/custom/paper-grid/constants.d.ts +57 -0
  159. package/dist/components/custom/paper-grid/index.d.ts +5 -0
  160. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
  161. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
  162. package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
  163. package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
  164. package/dist/components/custom/search/index.d.ts +2 -0
  165. package/dist/components/custom/search/searchVariants.d.ts +19 -0
  166. package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
  167. package/dist/components/custom/selectable-chip/index.d.ts +2 -0
  168. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
  169. package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
  170. package/dist/components/custom/split-chars/index.d.ts +1 -0
  171. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +8 -6
  172. package/dist/components/custom/tabs/constants.d.ts +20 -2
  173. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +29 -16
  174. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
  175. package/dist/components/ui/_shared/index.d.ts +2 -0
  176. package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
  177. package/dist/components/ui/button/index.d.ts +1 -1
  178. package/dist/components/ui/card/Card.vue.d.ts +45 -0
  179. package/dist/components/ui/card/index.d.ts +1 -1
  180. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
  181. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
  182. package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
  183. package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
  184. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
  185. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
  186. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
  187. package/dist/components/ui/input/Input.vue.d.ts +3 -0
  188. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
  189. package/dist/components/ui/select/SelectContent.vue.d.ts +3 -0
  190. package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
  191. package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
  192. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
  193. package/dist/composables/color/index.d.ts +2 -0
  194. package/dist/composables/color/useAccentTone.d.ts +34 -0
  195. package/dist/composables/glass/useVizChoreography.d.ts +123 -0
  196. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
  197. package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
  198. package/dist/composables/glass/webgpu/index.d.ts +1 -1
  199. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +28 -7
  200. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +1 -0
  201. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
  202. package/dist/composables/motion/core/index.d.ts +3 -0
  203. package/dist/composables/motion/scrollReader.d.ts +25 -0
  204. package/dist/composables/motion/springPresets.d.ts +20 -1
  205. package/dist/composables/motion/useCharStagger.d.ts +44 -0
  206. package/dist/composables/motion/useDockCtaReceive.d.ts +31 -6
  207. package/dist/composables/motion/useScrollChrome.d.ts +58 -0
  208. package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
  209. package/dist/composables/motion/useSpringPress.d.ts +5 -5
  210. package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
  211. package/dist/composables/sidebar/index.d.ts +4 -1
  212. package/dist/composables/sidebar/types.d.ts +68 -3
  213. package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
  214. package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
  215. package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
  216. package/dist/composables/virtual/index.d.ts +4 -0
  217. package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
  218. package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
  219. package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
  220. package/dist/concentric.js +495 -221
  221. package/dist/configurator.js +2 -2
  222. package/dist/confirm-dialog.js +62 -47
  223. package/dist/constellation.js +635 -235
  224. package/dist/context-menu.js +2 -2
  225. package/dist/controls.js +1 -1
  226. package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
  227. package/dist/dark.js +1 -1
  228. package/dist/data-table.js +1 -1
  229. package/dist/deck.d.ts +1 -0
  230. package/dist/deck.js +105 -0
  231. package/dist/dialog.js +4 -3
  232. package/dist/dock.js +602 -458
  233. package/dist/dot-flow-field.js +580 -290
  234. package/dist/dot-matrix.d.ts +1 -0
  235. package/dist/dot-matrix.js +630 -0
  236. package/dist/dotMatrixField-D_x9_1qq.js +48 -0
  237. package/dist/{dropdown-menu-CofSZuk8.js → dropdown-menu-aJmV5SqE.js} +83 -79
  238. package/dist/dropdown-menu.js +1 -1
  239. package/dist/easing.js +188 -176
  240. package/dist/expandable-container.js +42 -20
  241. package/dist/fading-scroll.js +1 -1
  242. package/dist/flow.glsl-B2P7e0MT.js +4 -0
  243. package/dist/forms.js +62 -60
  244. package/dist/fourier-field.js +825 -178
  245. package/dist/fourier-math.js +1 -1
  246. package/dist/glass-ui.css +1 -1
  247. package/dist/glass-ui.js +145 -104
  248. package/dist/goo-blob.js +171 -1228
  249. package/dist/goo-dot-matrix.d.ts +1 -0
  250. package/dist/goo-dot-matrix.js +591 -0
  251. package/dist/handmark.js +1 -1
  252. package/dist/hover-card.js +1 -1
  253. package/dist/hover-popover.js +1 -1
  254. package/dist/icon-chip.js +1 -1
  255. package/dist/icon-tooltip.js +1 -1
  256. package/dist/index.d.ts +2 -0
  257. package/dist/instrument-chassis.js +1 -1
  258. package/dist/keyboard.js +1 -1
  259. package/dist/labeled-field.js +70 -60
  260. package/dist/metric-cell.js +1 -1
  261. package/dist/metric-stack.js +11 -2
  262. package/dist/motion-core.js +54 -32
  263. package/dist/motion-curves.js +11 -1
  264. package/dist/motion.js +46 -111
  265. package/dist/notification.js +1 -1
  266. package/dist/number-field.js +1 -1
  267. package/dist/pager-dots.js +2 -91
  268. package/dist/paper-backdrop.js +1 -1
  269. package/dist/paper-grid.d.ts +1 -0
  270. package/dist/paper-grid.js +788 -0
  271. package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
  272. package/dist/{procedural-color.glsl-CIFsJhwI.js → procedural-color.wgsl-m7Zgv35j.js} +2 -2
  273. package/dist/progress.js +1 -1
  274. package/dist/pulse.js +1 -1
  275. package/dist/reactive.js +1 -1
  276. package/dist/{useCanvas2D-B8w_E3Rr.js → resolveCanvasColor-yPyIpJt9.js} +12 -2
  277. package/dist/scrollReader-DI1NWxUw.js +42 -0
  278. package/dist/scrolling-text.js +1 -1
  279. package/dist/search.js +160 -304
  280. package/dist/select.js +3 -3
  281. package/dist/selectable-chip.d.ts +1 -0
  282. package/dist/selectable-chip.js +65 -0
  283. package/dist/separator.js +1 -1
  284. package/dist/{sheet-tZMg0E0w.js → sheet-B2flBfLH.js} +2 -2
  285. package/dist/sheet.js +1 -1
  286. package/dist/sidebar.js +216 -114
  287. package/dist/slider.js +1 -1
  288. package/dist/sortable-list.js +1 -1
  289. package/dist/spectrum-walk-BVzA7Biz.js +33 -0
  290. package/dist/{springPresets-CFQGQfdl.js → springPresets-Ce7OYCm9.js} +12 -6
  291. package/dist/styles/animations.css +13 -3
  292. package/dist/styles/cards.css +69 -0
  293. package/dist/styles/completion-seal.css +131 -0
  294. package/dist/styles/components.css +2 -3
  295. package/dist/styles/configurator.css +55 -0
  296. package/dist/styles/critical-partition.mjs +33 -11
  297. package/dist/styles/deferred.css +2 -0
  298. package/dist/styles/dock/cta-seat.css +87 -0
  299. package/dist/styles/dock/density.css +153 -0
  300. package/dist/styles/dock/layers.css +55 -7
  301. package/dist/styles/dock/morph-bridge.css +54 -18
  302. package/dist/styles/dock/morph.css +41 -33
  303. package/dist/styles/dock/overflow.css +12 -0
  304. package/dist/styles/dock/search.css +68 -0
  305. package/dist/styles/dock/shape.css +124 -0
  306. package/dist/styles/dock/shell.css +23 -5
  307. package/dist/styles/dock/stack-rail.css +264 -0
  308. package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
  309. package/dist/styles/dock-controls/icon-button.css +14 -0
  310. package/dist/styles/dock.css +11 -1
  311. package/dist/styles/glass/accent-tone.css +66 -0
  312. package/dist/styles/glass/control-surfaces.css +167 -0
  313. package/dist/styles/glass/ladder.css +67 -17
  314. package/dist/styles/glass/rim.css +19 -9
  315. package/dist/styles/glass/surfaces.css +69 -148
  316. package/dist/styles/glass.css +10 -0
  317. package/dist/styles/index.css +15 -0
  318. package/dist/styles/scroll-chrome.css +123 -0
  319. package/dist/styles/scroll-driven.css +38 -0
  320. package/dist/styles/segmented-tabs.css +50 -14
  321. package/dist/styles/theme/bridges.css +22 -0
  322. package/dist/styles/theme/radius.css +18 -1
  323. package/dist/styles/tokens/color-radius.css +13 -3
  324. package/dist/styles/tokens/dark-arm.css +39 -6
  325. package/dist/styles/tokens/glass-deep.css +28 -3
  326. package/dist/styles/tokens/glass-fx.css +44 -1
  327. package/dist/styles/tokens/glass.css +91 -31
  328. package/dist/styles/tokens/light-dark.css +1 -1
  329. package/dist/styles/tokens/offsets.css +27 -0
  330. package/dist/styles/tokens/property-regs.css +133 -0
  331. package/dist/styles/tokens/scale-paper.css +73 -29
  332. package/dist/styles/tokens/scheme-motion.css +44 -6
  333. package/dist/styles/tokens/sizing-config.css +110 -0
  334. package/dist/styles/tokens/sizing.css +55 -104
  335. package/dist/styles/tokens.css +5 -0
  336. package/dist/styles/typography/semantic.css +18 -5
  337. package/dist/styles/utilities/a11y-overrides.css +20 -5
  338. package/dist/styles/utilities/base-misc.css +52 -0
  339. package/dist/styles/utilities/btn.css +14 -3
  340. package/dist/styles/utilities/components.css +31 -6
  341. package/dist/styles/utilities/metal.css +26 -0
  342. package/dist/switch.js +1 -1
  343. package/dist/tabs.js +8 -8
  344. package/dist/timeline.js +1 -1
  345. package/dist/toast.js +1 -1
  346. package/dist/toggle-chip.js +10 -10
  347. package/dist/toggle-group.js +1 -1
  348. package/dist/tooltip.js +1 -1
  349. package/dist/typewriter.js +1 -1
  350. package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
  351. package/dist/{useAnimatedNumber-BfUq2bUM.js → useAnimatedNumber-CLrxicG9.js} +1 -1
  352. package/dist/{useConfiguratorState-DNlOh6c8.js → useConfiguratorState-4xblKfwd.js} +25 -24
  353. package/dist/useControlSize-SH1UmJCi.js +9 -0
  354. package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
  355. package/dist/{useDragMorph-DgxnsVJz.js → useDragMorph-BUgAC-zK.js} +4 -4
  356. package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
  357. package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
  358. package/dist/{useLiquidPress-kfb4KX79.js → useLiquidPress-BooG97RY.js} +2 -2
  359. package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
  360. package/dist/useScrollChrome-D66AVP7C.js +258 -0
  361. package/dist/{useSpringMount-q1amq1SJ.js → useSpringMount-BWDnKIwh.js} +1 -1
  362. package/dist/useSpringPress-B1-Czp-V.js +36 -0
  363. package/dist/useViewTransition-CUI1nAgn.js +95 -0
  364. package/dist/{vendor-CKmzio-i.js → vendor-B2qOlYY3.js} +24 -11
  365. package/dist/virtual.d.ts +1 -0
  366. package/dist/virtual.js +225 -0
  367. package/dist/watercolor-dot.js +116 -73
  368. package/package.json +127 -7
  369. package/src/styles/animations.css +13 -3
  370. package/src/styles/cards.css +69 -0
  371. package/src/styles/completion-seal.css +131 -0
  372. package/src/styles/configurator.css +55 -0
  373. package/src/styles/critical-partition.mjs +33 -11
  374. package/src/styles/dock/cta-seat.css +87 -0
  375. package/src/styles/dock/density.css +153 -0
  376. package/src/styles/dock/layers.css +55 -7
  377. package/src/styles/dock/morph-bridge.css +54 -18
  378. package/src/styles/dock/morph.css +41 -33
  379. package/src/styles/dock/overflow.css +12 -0
  380. package/src/styles/dock/search.css +68 -0
  381. package/src/styles/dock/shape.css +124 -0
  382. package/src/styles/dock/shell.css +23 -5
  383. package/src/styles/dock/stack-rail.css +264 -0
  384. package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
  385. package/src/styles/dock-controls/icon-button.css +14 -0
  386. package/src/styles/dock.css +11 -1
  387. package/src/styles/glass/accent-tone.css +66 -0
  388. package/src/styles/glass/control-surfaces.css +167 -0
  389. package/src/styles/glass/ladder.css +67 -17
  390. package/src/styles/glass/rim.css +19 -9
  391. package/src/styles/glass/surfaces.css +69 -148
  392. package/src/styles/glass.css +10 -0
  393. package/src/styles/index.css +15 -0
  394. package/src/styles/scroll-chrome.css +123 -0
  395. package/src/styles/scroll-driven.css +38 -0
  396. package/src/styles/segmented-tabs.css +50 -14
  397. package/src/styles/theme/bridges.css +22 -0
  398. package/src/styles/theme/radius.css +18 -1
  399. package/src/styles/tokens/color-radius.css +13 -3
  400. package/src/styles/tokens/dark-arm.css +39 -6
  401. package/src/styles/tokens/glass-deep.css +28 -3
  402. package/src/styles/tokens/glass-fx.css +44 -1
  403. package/src/styles/tokens/glass.css +91 -31
  404. package/src/styles/tokens/light-dark.css +1 -1
  405. package/src/styles/tokens/offsets.css +27 -0
  406. package/src/styles/tokens/property-regs.css +133 -0
  407. package/src/styles/tokens/scale-paper.css +73 -29
  408. package/src/styles/tokens/scheme-motion.css +44 -6
  409. package/src/styles/tokens/sizing-config.css +110 -0
  410. package/src/styles/tokens/sizing.css +55 -104
  411. package/src/styles/tokens.css +5 -0
  412. package/src/styles/typography/semantic.css +18 -5
  413. package/src/styles/utilities/a11y-overrides.css +20 -5
  414. package/src/styles/utilities/base-misc.css +52 -0
  415. package/src/styles/utilities/btn.css +14 -3
  416. package/src/styles/utilities/components.css +31 -6
  417. package/src/styles/utilities/metal.css +26 -0
  418. package/dist/ContextMenuContent-uWnVxDab.js +0 -85
  419. package/dist/DialogFooter-BZNX5aVr.js +0 -165
  420. package/dist/HoverCardContent-b2uaAMRR.js +0 -83
  421. package/dist/Input-h9v5LeXf.js +0 -55
  422. package/dist/NumberFieldContent-Cq7EzX-U.js +0 -138
  423. package/dist/Separator-pKF0oA4M.js +0 -37
  424. package/dist/Switch-CwYNf8bo.js +0 -47
  425. package/dist/TooltipProvider-rzvnXz60.js +0 -104
  426. package/dist/color-DweYl7pE.js +0 -86
  427. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
  428. package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
  429. package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
  430. package/dist/createCanvasLifecycle-CHD5XrDW.js +0 -82
  431. package/dist/procedural-color.wgsl-CToRHugY.js +0 -224
  432. package/dist/resolveCanvasColor-CUyHr5Uu.js +0 -11
  433. package/dist/styles/dock/rail-extend.css +0 -397
  434. package/dist/usePointerVelocityField-JbRd5CrM.js +0 -137
  435. package/dist/useRAFLoop-UYa4zoiN.js +0 -109
  436. package/dist/useSpringPress-BsqPr7FJ.js +0 -34
  437. package/src/styles/dock/rail-extend.css +0 -397
  438. /package/dist/{FadingScroll-DI6hQhT9.js → FadingScroll-DLRbH5Xr.js} +0 -0
  439. /package/dist/{HoverPopover-CbqbNwgU.js → HoverPopover-BcIxvyqZ.js} +0 -0
  440. /package/dist/{InstrumentChassis-Bx0F_q5g.js → InstrumentChassis-CxsHSyMj.js} +0 -0
  441. /package/dist/{PaperBackdrop-Vf3tlpvd.js → PaperBackdrop-CqwjnfLv.js} +0 -0
  442. /package/dist/{Progress-DctG61iZ.js → Progress-CnqB7gLm.js} +0 -0
  443. /package/dist/{ScrollingText-yOpBzFYq.js → ScrollingText-CTZbA_cG.js} +0 -0
  444. /package/dist/{SelectGroup-DwwjicPY.js → SelectGroup-BFiod7X2.js} +0 -0
  445. /package/dist/{compile-CQEFRTmx.js → compile-nZ1xVYTp.js} +0 -0
  446. /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
  447. /package/dist/{math-BINYmg5z.js → math-Eb0w3LqU.js} +0 -0
  448. /package/dist/{prng-Za0Rmgag.js → prng-B-d9eYX8.js} +0 -0
  449. /package/dist/{slider-DVb4HXU-.js → slider-2A0rPn79.js} +0 -0
  450. /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
  451. /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
  452. /package/dist/{useInterval-CvK1mL92.js → useInterval-CNdua40W.js} +0 -0
  453. /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
  454. /package/dist/{useLiquidFlex-mZPMiNXh.js → useLiquidFlex-UmA6LMZu.js} +0 -0
  455. /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
  456. /package/dist/{useSortable-DHjtZSEd.js → useSortable-BVqlJRBR.js} +0 -0
  457. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-NmBM5V_4.js} +0 -0
  458. /package/dist/{vReveal-Czsb7zQC.js → vReveal-D9k0jADx.js} +0 -0
  459. /package/dist/{vSpecular-CQFmLNzA.js → vSpecular-EX7loENl.js} +0 -0
@@ -0,0 +1 @@
1
+ export { default as SplitChars } from "./SplitChars.vue";
@@ -50,12 +50,14 @@ export interface SegmentedTabsProps {
50
50
  */
51
51
  responsive?: boolean | SegmentedTabsResponsive;
52
52
  /**
53
- * BB.W-DRAG-MORPH — the LIQUID TAB. When `true` (ADDITIVE, default `false`),
54
- * the `pill` indicator becomes a physical lozenge you can GRAB and PULL: it
55
- * follows the finger ~1:1, squishes on drag velocity, and flings to the nearest
56
- * tab on release (`useDragMorph`). The click-selection path is byte-identical;
57
- * the drag is opt-in. No-op on `underline` (the ink hairline has no indicator
58
- * element to deform).
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).
59
61
  */
60
62
  draggable?: boolean;
61
63
  class?: HTMLAttributes["class"];
@@ -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: {};
@@ -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";
@@ -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 Button } from './Button.vue';
3
3
  export declare const buttonVariants: (props?: ({
4
- variant?: "link" | "default" | "glass" | "outline" | "solid" | "primary-audacious" | "gold-audacious" | "destructive" | "secondary" | "accent" | "ghost" | "glass-wash" | "ai" | null | undefined;
4
+ variant?: "link" | "default" | "glass" | "outline" | "primary-audacious" | "gold-audacious" | "destructive" | "secondary" | "accent" | "ghost" | "glass-wash" | "ai" | null | undefined;
5
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>;
@@ -51,6 +51,23 @@ export type CardSurface = "glass" | "cartoon" | "veil";
51
51
  * was originally authored over (a local intensity-token override).
52
52
  */
53
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";
54
71
  interface Props extends PrimitiveProps {
55
72
  /** Surface tier; selects one rung of the glass ladder. Default `resting`. */
56
73
  tier?: CardTier;
@@ -97,6 +114,33 @@ interface Props extends PrimitiveProps {
97
114
  * compositor-only (`scale` + a custom property); the `.glass-press` CSS `:active`
98
115
  * scale is the no-JS / SSR floor. */
99
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;
100
144
  class?: HTMLAttributes["class"];
101
145
  }
102
146
  declare var __VLS_13: {};
@@ -112,6 +156,7 @@ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, i
112
156
  grain: boolean;
113
157
  specular: CardSpecular;
114
158
  pressable: boolean;
159
+ metal: CardMetal;
115
160
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
116
161
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
117
162
  declare const _default: typeof __VLS_export;
@@ -1,4 +1,4 @@
1
- export { default as Card, type CardTier, type CardSurface, type CardSpecular, } from "./Card.vue";
1
+ export { default as Card, type CardTier, type CardSurface, type CardSpecular, type CardVariant, type CardMetal, } from "./Card.vue";
2
2
  export { default as CardHeader } from "./CardHeader.vue";
3
3
  export { default as ScrollCard, type ScrollCardProps } from "./ScrollCard.vue";
4
4
  export { default as ScrollCardHeader, type ScrollCardHeaderProps, } from "./ScrollCardHeader.vue";
@@ -10,7 +10,7 @@ type __VLS_Slots = {} & {
10
10
  };
11
11
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
12
12
  size: "default" | "icon" | "xs" | "sm" | "lg" | "icon-sm" | null;
13
- variant: "link" | "default" | "glass" | "outline" | "solid" | "primary-audacious" | "gold-audacious" | "destructive" | "secondary" | "accent" | "ghost" | "glass-wash" | "ai" | null;
13
+ variant: "link" | "default" | "glass" | "outline" | "primary-audacious" | "gold-audacious" | "destructive" | "secondary" | "accent" | "ghost" | "glass-wash" | "ai" | null;
14
14
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
15
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
16
  declare const _default: typeof __VLS_export;
@@ -10,7 +10,7 @@ type __VLS_Slots = {} & {
10
10
  };
11
11
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
12
12
  size: "default" | "icon" | "xs" | "sm" | "lg" | "icon-sm" | null;
13
- variant: "link" | "default" | "glass" | "outline" | "solid" | "primary-audacious" | "gold-audacious" | "destructive" | "secondary" | "accent" | "ghost" | "glass-wash" | "ai" | null;
13
+ variant: "link" | "default" | "glass" | "outline" | "primary-audacious" | "gold-audacious" | "destructive" | "secondary" | "accent" | "ghost" | "glass-wash" | "ai" | null;
14
14
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
15
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
16
  declare const _default: typeof __VLS_export;
@@ -1,13 +1,19 @@
1
1
  import type { DialogRootProps } from 'reka-ui';
2
+ import type { Surface } from '../_shared/useSurfaceAxis';
3
+ type __VLS_Props = DialogRootProps & {
4
+ surface?: Surface;
5
+ };
2
6
  declare var __VLS_20: {};
3
7
  type __VLS_Slots = {} & {
4
8
  default?: (props: typeof __VLS_20) => any;
5
9
  };
6
- declare const __VLS_base: import("vue").DefineComponent<DialogRootProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
11
  "update:open": (value: boolean) => any;
8
- }, string, import("vue").PublicProps, Readonly<DialogRootProps> & Readonly<{
12
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
13
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
10
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
+ }>, {
15
+ surface: Surface;
16
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
17
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
12
18
  declare const _default: typeof __VLS_export;
13
19
  export default _default;
@@ -1,7 +1,9 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import type { ComboboxContentProps } from 'reka-ui';
3
+ import { type Surface } from '../_shared/useSurfaceAxis';
3
4
  type __VLS_Props = ComboboxContentProps & {
4
5
  class?: HTMLAttributes['class'];
6
+ surface?: Surface;
5
7
  };
6
8
  declare var __VLS_8: {};
7
9
  type __VLS_Slots = {} & {
@@ -18,6 +20,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
18
20
  onFocusOutside?: ((event: import("reka-ui").FocusOutsideEvent) => any) | undefined;
19
21
  onInteractOutside?: ((event: import("reka-ui").PointerDownOutsideEvent | import("reka-ui").FocusOutsideEvent) => any) | undefined;
20
22
  }>, {
23
+ surface: Surface;
21
24
  disableOutsidePointerEvents: boolean;
22
25
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
26
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,7 +1,9 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import { type ContextMenuContentProps } from 'reka-ui';
3
+ import { type Surface } from '../_shared/useSurfaceAxis';
3
4
  type __VLS_Props = ContextMenuContentProps & {
4
5
  class?: HTMLAttributes['class'];
6
+ surface?: Surface;
5
7
  };
6
8
  declare var __VLS_14: {};
7
9
  type __VLS_Slots = {} & {
@@ -19,7 +21,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
19
21
  onFocusOutside?: ((event: import("reka-ui").FocusOutsideEvent) => any) | undefined;
20
22
  onInteractOutside?: ((event: import("reka-ui").PointerDownOutsideEvent | import("reka-ui").FocusOutsideEvent) => any) | undefined;
21
23
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
22
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
24
+ }>, {
25
+ surface: Surface;
26
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
27
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
24
28
  declare const _default: typeof __VLS_export;
25
29
  export default _default;
@@ -1,7 +1,9 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import { type DropdownMenuContentProps } from 'reka-ui';
3
+ import { type Surface } from '../_shared/useSurfaceAxis';
3
4
  type __VLS_Props = DropdownMenuContentProps & {
4
5
  class?: HTMLAttributes['class'];
6
+ surface?: Surface;
5
7
  };
6
8
  declare var __VLS_14: {};
7
9
  type __VLS_Slots = {} & {
@@ -20,6 +22,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
20
22
  onInteractOutside?: ((event: import("reka-ui").PointerDownOutsideEvent | import("reka-ui").FocusOutsideEvent) => any) | undefined;
21
23
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
22
24
  }>, {
25
+ align: "start" | "center" | "end";
26
+ surface: Surface;
23
27
  sideOffset: number;
24
28
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
29
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,13 +1,16 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import { type HoverCardContentProps } from 'reka-ui';
3
+ import { type Surface } from '../_shared/useSurfaceAxis';
3
4
  type __VLS_Props = HoverCardContentProps & {
4
5
  class?: HTMLAttributes['class'];
6
+ surface?: Surface;
5
7
  };
6
8
  declare var __VLS_14: {};
7
9
  type __VLS_Slots = {} & {
8
10
  default?: (props: typeof __VLS_14) => any;
9
11
  };
10
12
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
13
+ surface: Surface;
11
14
  sideOffset: number;
12
15
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
16
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,10 +1,12 @@
1
1
  import type { HTMLAttributes, InputHTMLAttributes } from 'vue';
2
+ import { type ControlSize } from '../_shared/useControlSize';
2
3
  declare const _default: typeof __VLS_export;
3
4
  export default _default;
4
5
  declare const __VLS_export: import("vue").DefineComponent<{
5
6
  defaultValue?: string | number;
6
7
  modelValue?: string | number;
7
8
  class?: HTMLAttributes["class"];
9
+ size?: ControlSize;
8
10
  type?: InputHTMLAttributes["type"];
9
11
  placeholder?: InputHTMLAttributes["placeholder"];
10
12
  disabled?: InputHTMLAttributes["disabled"];
@@ -20,6 +22,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
20
22
  defaultValue?: string | number;
21
23
  modelValue?: string | number;
22
24
  class?: HTMLAttributes["class"];
25
+ size?: ControlSize;
23
26
  type?: InputHTMLAttributes["type"];
24
27
  placeholder?: InputHTMLAttributes["placeholder"];
25
28
  disabled?: InputHTMLAttributes["disabled"];
@@ -1,3 +1,8 @@
1
+ import { type ControlSize } from '../_shared/useControlSize';
1
2
  declare const _default: typeof __VLS_export;
2
3
  export default _default;
3
- declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
4
+ declare const __VLS_export: import("vue").DefineComponent<{
5
+ size?: ControlSize;
6
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
7
+ size?: ControlSize;
8
+ }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,7 +1,9 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import { type SelectContentProps } from 'reka-ui';
3
+ import { type Surface } from '../_shared/useSurfaceAxis';
3
4
  type __VLS_Props = SelectContentProps & {
4
5
  class?: HTMLAttributes['class'];
6
+ surface?: Surface;
5
7
  };
6
8
  declare var __VLS_25: {};
7
9
  type __VLS_Slots = {} & {
@@ -18,6 +20,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
18
20
  }>, {
19
21
  position: "item-aligned" | "popper";
20
22
  align: "start" | "center" | "end";
23
+ surface: Surface;
21
24
  collisionPadding: number | Partial<Record<"bottom" | "left" | "right" | "top", number>>;
22
25
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
26
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,7 +1,9 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import { type SwitchRootProps } from 'reka-ui';
3
+ import { type ControlSize } from '../_shared/useControlSize';
3
4
  type __VLS_Props = SwitchRootProps & {
4
5
  class?: HTMLAttributes['class'];
6
+ size?: ControlSize;
5
7
  };
6
8
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
9
  "update:modelValue": (payload: boolean) => any;
@@ -1,10 +1,12 @@
1
1
  import type { HTMLAttributes, TextareaHTMLAttributes } from 'vue';
2
+ import { type ControlSize } from '../_shared/useControlSize';
2
3
  declare const _default: typeof __VLS_export;
3
4
  export default _default;
4
5
  declare const __VLS_export: import("vue").DefineComponent<{
5
6
  class?: HTMLAttributes["class"];
6
7
  defaultValue?: string | number;
7
8
  modelValue?: string | number;
9
+ size?: ControlSize;
8
10
  placeholder?: TextareaHTMLAttributes["placeholder"];
9
11
  disabled?: TextareaHTMLAttributes["disabled"];
10
12
  /**
@@ -29,6 +31,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
29
31
  class?: HTMLAttributes["class"];
30
32
  defaultValue?: string | number;
31
33
  modelValue?: string | number;
34
+ size?: ControlSize;
32
35
  placeholder?: TextareaHTMLAttributes["placeholder"];
33
36
  disabled?: TextareaHTMLAttributes["disabled"];
34
37
  /**
@@ -1,7 +1,9 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import { type TooltipContentProps } from 'reka-ui';
3
+ import { type Surface } from '../_shared/useSurfaceAxis';
3
4
  type __VLS_Props = TooltipContentProps & {
4
5
  class?: HTMLAttributes['class'];
6
+ surface?: Surface;
5
7
  };
6
8
  declare var __VLS_14: {};
7
9
  type __VLS_Slots = {} & {
@@ -14,6 +16,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
14
16
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
15
17
  onPointerDownOutside?: ((event: Event) => any) | undefined;
16
18
  }>, {
19
+ surface: Surface;
17
20
  sideOffset: number;
18
21
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
22
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -133,3 +133,5 @@ export interface DeriveBlobPaletteOptions {
133
133
  * @param options stop count, harmony, spreads.
134
134
  */
135
135
  export declare function deriveBlobPalette(seed: string | OklchStop, options?: DeriveBlobPaletteOptions): OklchStop[];
136
+ export { useAccentTone } from "./useAccentTone";
137
+ export type { UseAccentToneOptions, UseAccentToneReturn } from "./useAccentTone";
@@ -0,0 +1,34 @@
1
+ import { type ComputedRef, type MaybeRefOrGetter } from "vue";
2
+ export interface UseAccentToneOptions {
3
+ /** Idle fill strength (0..1). Default 0.08. The CSS `--accent-fill-strength`
4
+ * twin — passed here so the JS ink-solve composites the matching band. */
5
+ fillStrength?: number;
6
+ /** Active band strength (0..1). Default 0.18 (the CSS `--accent-band-strength`). */
7
+ bandStrength?: number;
8
+ /** Target ink-over-band contrast. Default 4.5 (AA). */
9
+ inkContrast?: number;
10
+ /** The surface the accent paints ON (a CSS `<color>`). Default the warm-cream
11
+ * `--card`. A consumer on a dark/other plate passes its concrete surface so
12
+ * the ink solves against the right band lightness. */
13
+ surface?: string;
14
+ }
15
+ export interface UseAccentToneReturn {
16
+ /** The element-level custom-property style object — bind via `:style`. Carries
17
+ * `--tone` (so the CSS channels resolve) + `--accent-ink-resolved` (the
18
+ * contrast-safe label colour over the active band). */
19
+ toneStyle: ComputedRef<Record<string, string>>;
20
+ /** The resolved contrast-safe ink as a CSS `oklch(...)` string (for a non-CSS
21
+ * reader — a canvas label, a test). */
22
+ ink: ComputedRef<string>;
23
+ }
24
+ /**
25
+ * `useAccentTone(tone, opts)` — resolve the contrast-safe label ink for the tonal
26
+ * register. The ink RESOLVES `safeAccentColor(toneColor, bandLightness, …)`:
27
+ * value.js shifts the tone's OKLCh lightness AWAY from the active-band fill until
28
+ * it clears the AA bar, so the label reads ON the fill in either mode (a dark band
29
+ * gets a light ink, a light band a dark ink). The darken/lighten-until-it-passes
30
+ * math is value.js's — glass-ui re-implements none of it.
31
+ *
32
+ * PRM-irrelevant (a colour, not an animation). DOM-free + deterministic.
33
+ */
34
+ export declare function useAccentTone(tone: MaybeRefOrGetter<string>, opts?: UseAccentToneOptions): UseAccentToneReturn;