@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
@@ -67,16 +67,35 @@ type __VLS_Props = {
67
67
  * (often raw-config-key) label. Default `false` (standalone behavior).
68
68
  */
69
69
  hideLabel?: boolean;
70
+ /**
71
+ * BC.W-CONTROL-SMOOTH move C (kf-G3) — lay the field on the HORIZONTAL axis
72
+ * (label beside control, not above) for dense inline forms. ADDITIVE +
73
+ * default `false`: a bare `<LabeledField>` is byte-identical to HEAD (the
74
+ * stacked label-over-control layout). Pairs with the `#action` slot — a
75
+ * horizontal labeled control carrying a trailing action affordance is the
76
+ * REQ-sec20 horizontal-action case the kf-G3 row booked.
77
+ */
78
+ horizontal?: boolean;
70
79
  };
71
80
  declare var __VLS_7: {
72
81
  errorId: string;
73
82
  controlId: string;
74
83
  labelledBy: string;
75
- }, __VLS_9: {};
84
+ }, __VLS_9: {
85
+ controlId: string;
86
+ }, __VLS_11: {
87
+ errorId: string;
88
+ controlId: string;
89
+ labelledBy: string;
90
+ }, __VLS_13: {};
76
91
  type __VLS_Slots = {} & {
77
92
  default?: (props: typeof __VLS_7) => any;
78
93
  } & {
79
- error?: (props: typeof __VLS_9) => any;
94
+ action?: (props: typeof __VLS_9) => any;
95
+ } & {
96
+ default?: (props: typeof __VLS_11) => any;
97
+ } & {
98
+ error?: (props: typeof __VLS_13) => any;
80
99
  };
81
100
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
82
101
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -72,6 +72,20 @@ export interface MetricRowProps {
72
72
  * this to their active-row gating (e.g. the metric being sampled).
73
73
  */
74
74
  active?: boolean;
75
+ /**
76
+ * BC.W-CONTROL-CUSTOM (CP1, the speedtest-AX `data-protagonist` fold) —
77
+ * marks this row as the ONE focal/protagonist metric per surface. When
78
+ * `true`, the value lifts to the emphasis register (the heavier
79
+ * `--metric-row-value-weight-emphasis` rung) and a `data-protagonist`
80
+ * attribute lands on the row so a consumer can re-tint the focal metric.
81
+ *
82
+ * This is the ONE focal emphasis event per surface (the W-SUFFUSE
83
+ * one-color-event proportion) — exactly one row per <MetricStack> should
84
+ * be the protagonist. The magnitude stays a `--metric-row-*` token read
85
+ * with a fallback, so a `:root`/per-row override of the emphasis weight
86
+ * cascades. A bare (`protagonist`-unset) row is byte-identical.
87
+ */
88
+ protagonist?: boolean;
75
89
  class?: HTMLAttributes["class"];
76
90
  }
77
91
  declare var __VLS_1: {}, __VLS_8: {}, __VLS_10: {}, __VLS_12: {}, __VLS_14: {}, __VLS_16: {};
@@ -94,6 +108,7 @@ declare const __VLS_base: import("vue").DefineComponent<MetricRowProps, {}, {},
94
108
  iconSize: number;
95
109
  digitCount: number;
96
110
  colorTinted: boolean;
111
+ protagonist: boolean;
97
112
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
98
113
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
99
114
  declare const _default: typeof __VLS_export;
@@ -77,8 +77,8 @@ type __VLS_Slots = {} & {
77
77
  default?: (props: typeof __VLS_8) => any;
78
78
  };
79
79
  declare const __VLS_base: import("vue").DefineComponent<MetricStackProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MetricStackProps> & Readonly<{}>, {
80
- as: string | Component;
81
80
  containerName: string;
81
+ as: string | Component;
82
82
  rows: number;
83
83
  register: "audacious" | "result";
84
84
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -12,6 +12,14 @@ export interface PagerDotsProps {
12
12
  windowFit?: number;
13
13
  /** Encapsulate the rail in the glass pager pill chassis. Default true. */
14
14
  ring?: boolean;
15
+ /**
16
+ * The ARIA register. `"tabs"` (default, byte-identical) is the carousel
17
+ * panel-nav register (`role="tablist"`/`role="tab"` + `aria-selected`);
18
+ * `"group"` is the full-viewport deck PRESENTATION register
19
+ * (`role="group"`/`aria-current`) the `<DeckPager>` selects. ONE windowing
20
+ * oracle, two aria registers — the `pagerWindow` math is NEVER re-forked.
21
+ */
22
+ pattern?: "tabs" | "group";
15
23
  /** Accessible name for the rail group. */
16
24
  ariaLabel?: string;
17
25
  /** Additional classes for the rail root. */
@@ -32,6 +40,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
32
40
  "onUpdate:active"?: ((value: number) => any) | undefined;
33
41
  }>, {
34
42
  orientation: "horizontal" | "vertical";
43
+ pattern: "tabs" | "group";
35
44
  ariaLabel: string;
36
45
  ring: boolean;
37
46
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,2 +1,4 @@
1
1
  export { default as PagerDots } from "./PagerDots.vue";
2
2
  export type { PagerDotsProps } from "./PagerDots.vue";
3
+ export { pagerWindow } from "./pagerWindow";
4
+ export type { PagerWindow } from "./pagerWindow";
@@ -0,0 +1,9 @@
1
+ export interface PagerWindow {
2
+ /** The 0-based slide indices to render as dots. */
3
+ shown: number[];
4
+ /** The window is clipped at the start (a dimmed leading edge dot). */
5
+ clippedStart: boolean;
6
+ /** The window is clipped at the end (a dimmed trailing edge dot). */
7
+ clippedEnd: boolean;
8
+ }
9
+ export declare function pagerWindow(total: number, activeIndex: number, fit: number): PagerWindow;
@@ -0,0 +1,42 @@
1
+ import type { PaperGridConfig } from "./constants";
2
+ /**
3
+ * PaperGrid — a liquid AA-grid: evenly-spaced LARGER lines on a slowly breathing
4
+ * curl-flow sheet.
5
+ *
6
+ * A calm engineering-graph-paper grid (evenly-spaced, LARGE cells, a crisp fine rule with
7
+ * a bolder major rule every 5 cells) drawn on a slowly breathing liquid sheet — adjacent
8
+ * lines bow and flow TOGETHER as if the grid is ruled on a gently rippling pond, never a
9
+ * per-line jitter. WebGPU-FIRST: a pure fullscreen fragment pass (the aurora/concentric
10
+ * shape-class) computes the grid at a curl-warped coordinate per pixel via the Ben Golus
11
+ * derivative-AA distance function (constant device-pixel-crisp lines, the CSS-blur kill),
12
+ * the Iñigo Quílez domain warp (the "liquid"), and the Bridson divergence-free curl flow
13
+ * (WHY it's liquid not noise). It composes `usePaperGrid` → the `createGpuSubstrate` picker
14
+ * over the ONE canvas lifecycle leaf (offscreen-pause, live-PRM freeze, consumer-owned DPR)
15
+ * — it never bootstraps its own context.
16
+ *
17
+ * The DEFAULT line ink is the warm-cream `--foreground` library identity (resolved live at
18
+ * mount); the demo themes it through a PRESET (presets-in-consumers — never a library
19
+ * token). The grid suffuses over the page (transparent ground) — teal-on-navy is gone.
20
+ */
21
+ type __VLS_Props = {
22
+ /** The full author schema (the studio's `useConfiguratorState` model). */
23
+ config?: PaperGridConfig;
24
+ /**
25
+ * The declarative WCAG-2.2.2 pause seam. `v-model:paused` parks the render loop
26
+ * (the substrate's `manual` suspend) when `true`. Wire `<DockBackgroundToggle>`'s
27
+ * `@update:paused` to this `v-model`.
28
+ */
29
+ paused?: boolean;
30
+ };
31
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
32
+ pause: () => void;
33
+ resume: () => void;
34
+ wake: () => void;
35
+ renderAt: (timeSec: number) => void;
36
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
37
+ "update:paused": (value: boolean) => any;
38
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
39
+ "onUpdate:paused"?: ((value: boolean) => any) | undefined;
40
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
41
+ declare const _default: typeof __VLS_export;
42
+ export default _default;
@@ -0,0 +1,90 @@
1
+ /** A 2-vector. */
2
+ export interface Vec2 {
3
+ x: number;
4
+ y: number;
5
+ }
6
+ /** The curl central-difference epsilon (matches `flow.glsl.ts` / `flow.wgsl.ts`). */
7
+ export declare const CURL_EPS = 0.012;
8
+ /** A 3-octave scalar fbm potential (the host noise basis the curl operator wraps). */
9
+ export declare function potentialFBM(p: Vec2): number;
10
+ /** The 2D curl of the scalar fbm potential (the JS twin of `curlFBM`). */
11
+ export declare function curlFBM(p: Vec2): Vec2;
12
+ /**
13
+ * The IQ domain warp displacement at `g` (in grid space) at time `t`. TWO counter-flowing
14
+ * curl terms at different scales/speeds (Alex Harri counter-flow — never visibly loops):
15
+ *
16
+ * g += curlFBM(g·warpScale + t·warpSpeed ) · amplitude
17
+ * g += curlFBM(g·warpScale2 − t·warpSpeed2) · (amplitude·0.5)
18
+ *
19
+ * Returns the warp DISPLACEMENT (the caller adds it onto `g`). A SHALLOW warp (one level,
20
+ * LOW amplitude, LOW spatial frequency) keeps the lines a clearly-readable grid — the
21
+ * inverse-coherence target (LARGE structures from LOW spatial frequency).
22
+ */
23
+ export declare function curlWarp(g: Vec2, t: number, warpScale: number, warpSpeed: number, warpScale2: number, warpSpeed2: number, amplitude: number): Vec2;
24
+ /**
25
+ * The LOCAL cursor-bulge displacement at `g` (grid space). A Gaussian falloff about
26
+ * `cursor` presses the grid AWAY from (repel, strength > 0) or TOWARD (attract, strength
27
+ * < 0) the cursor inside `radius`, coherent everywhere else (the iOS-control-centre feel):
28
+ *
29
+ * bulge = strength · exp(−d²/(2·radius²)); g += normalize(g−cursor) · bulge
30
+ *
31
+ * Returns the bulge DISPLACEMENT (the caller adds it onto `g`). The sign of `strength`
32
+ * picks repel (+) vs attract (−).
33
+ */
34
+ export declare function cursorBulge(g: Vec2, cursor: Vec2, strength: number, radius: number): Vec2;
35
+ /**
36
+ * The Ben Golus derivative-AA grid line coverage at `g` (grid space). `targetWidth` is the
37
+ * desired line half-width in GRID UNITS (the caller passes `lineWidthPx / minorPitchPx` so
38
+ * the line is N device-pixels wide); `uvDeriv` is the per-axis screen-space derivative of
39
+ * `g` (in the shaders `length(vec2(dFdx(g), dFdy(g)))`; in JS the caller passes it
40
+ * analytically so the path is reproducible). Returns line coverage [0..1].
41
+ *
42
+ * The Golus pipeline (transcribed by the WGSL/GLSL EXACTLY):
43
+ * gridUV = 1 − |fract(g)·2 − 1| (triangle wave: 0 at line, 1 at center)
44
+ * drawW = clamp(targetWidth, uvDeriv, 0.5)
45
+ * lineAA = uvDeriv·1.5
46
+ * grid2 = smoothstep(drawW+lineAA, drawW−lineAA, gridUV)
47
+ * grid2 *= clamp(targetWidth/drawW, 0, 1) (preserve thin-line intensity)
48
+ * grid2 = mix(grid2, targetWidth, clamp(uvDeriv·2−1, 0, 1)) (Moiré suppression)
49
+ * line = max(grid2.x, grid2.y)
50
+ */
51
+ export declare function gridCoverage(g: Vec2, targetWidth: number, uvDeriv: Vec2): number;
52
+ /**
53
+ * The complete paper-grid sample at a domain `uv` (the round-trip anchor). Composes the
54
+ * warp + the bulge + the two-tier Golus coverage EXACTLY as the WGSL/GLSL `fs_main` does,
55
+ * returning the premultiplied-alpha (the page reads through the troughs). `uvDeriv` is the
56
+ * FIXED analytic per-axis derivative (JS has no fragment derivatives); the shaders compute
57
+ * it from `dpdx`/`dpdy`. Returns `{ line, alpha }` — the line coverage + the global alpha.
58
+ */
59
+ export interface PaperGridSampleParams {
60
+ /** The grid scale (view / minorPitch → LARGER cells = smaller scale). */
61
+ gridScale: number;
62
+ warpScale: number;
63
+ warpSpeed: number;
64
+ warpScale2: number;
65
+ warpSpeed2: number;
66
+ amplitude: number;
67
+ /** The cursor in GRID space. */
68
+ cursor: Vec2;
69
+ bulgeStrength: number;
70
+ bulgeRadius: number;
71
+ /** +1 repel, −1 attract. */
72
+ bulgeMode: number;
73
+ /** Golus target half-widths in grid units (minor + major). */
74
+ targetWidth: number;
75
+ targetWidthMajor: number;
76
+ /** How many minor cells per major rule. */
77
+ majorEvery: number;
78
+ minorAlpha: number;
79
+ majorAlpha: number;
80
+ /** The GLOBAL subtlety knob (suffusion → tiny). */
81
+ fieldAlpha: number;
82
+ /** The FIXED per-axis derivative (the JS round-trip; shaders use dpdx/dpdy). */
83
+ uvDeriv: Vec2;
84
+ }
85
+ export declare function samplePaperGrid(uv: Vec2, t: number, p: PaperGridSampleParams): {
86
+ line: number;
87
+ alpha: number;
88
+ };
89
+ /** The grid scale from the view + minor pitch (LARGER cells = smaller scale). */
90
+ export declare function gridScaleFor(viewExtentPx: number, minorPitchPx: number): number;
@@ -0,0 +1,16 @@
1
+ import type { WebGLCanvasFrame } from "../../../../composables/glass/webgl/useWebGLCanvas";
2
+ import type { PaperGridConfig } from "../constants";
3
+ import { type Vec2 } from "./paperGrid";
4
+ export interface PaperGridGLSetupDeps {
5
+ canvas: HTMLCanvasElement;
6
+ config: PaperGridConfig;
7
+ getCursor: () => Vec2;
8
+ shouldContinue: () => boolean;
9
+ /**
10
+ * The per-frame pointer hook — usePaperGrid advances the shared pointer field + derives
11
+ * the transient cursor here (the no-own-rAF discipline). ZERO own rAF.
12
+ */
13
+ onFrame?: (timeSec: number) => void;
14
+ }
15
+ /** Build the `setupGL(gl)` callback the `createGpuSubstrate` WebGL2 path invokes. */
16
+ export declare function createPaperGridGLSetup(deps: PaperGridGLSetupDeps): (gl: WebGL2RenderingContext) => WebGLCanvasFrame;
@@ -0,0 +1,19 @@
1
+ import type { WebGPUCanvasFrame } from "../../../../composables/glass/webgpu/useWebGPUCanvas";
2
+ import type { PaperGridConfig } from "../constants";
3
+ import type { Vec2 } from "./paperGrid";
4
+ export interface PaperGridWGPUSetupDeps {
5
+ canvas: HTMLCanvasElement;
6
+ config: PaperGridConfig;
7
+ /** The transient pointer cursor in GRID space — re-read each frame (the pointer bulge). */
8
+ getCursor: () => Vec2;
9
+ /** Demand-gate (the renderer's quiescence layer — substrate-agnostic). */
10
+ shouldContinue: () => boolean;
11
+ /**
12
+ * The per-frame pointer hook — usePaperGrid advances the shared `usePointerVelocityField`
13
+ * here (the no-own-rAF discipline: the renderer's frame loop FEEDS `tick(delta)`) and
14
+ * derives the transient cursor. ZERO own rAF.
15
+ */
16
+ onFrame?: (timeSec: number) => void;
17
+ }
18
+ /** Build the paper-grid `setupWGPU(device, context, format)` callback. */
19
+ export declare function createPaperGridWGPUSetup(deps: PaperGridWGPUSetupDeps): (device: GPUDevice, context: GPUCanvasContext, format: GPUTextureFormat) => WebGPUCanvasFrame;
@@ -0,0 +1,16 @@
1
+ import type { PaperGridConfig } from "../constants";
2
+ import type { Vec2 } from "./paperGrid";
3
+ export declare const PAPER_GRID_UNIFORM_BYTES = 144;
4
+ export interface PaperGridUniformScratch {
5
+ buffer: ArrayBuffer;
6
+ f32: Float32Array;
7
+ }
8
+ export declare function createPaperGridScratch(): PaperGridUniformScratch;
9
+ /**
10
+ * Pack the paper-grid uniforms in place. `viewExtentPx` is the canvas backing-store extent
11
+ * the grid scale derives from (so the cell pitch is honest in device px); `cursor` is the
12
+ * transient pointer in GRID space (the renderer derives it from `usePointerVelocityField`);
13
+ * `aspect` corrects the domain x. The line ink resolves the warm `--foreground` identity
14
+ * (the demo themes it via a preset, never a token edit).
15
+ */
16
+ export declare function packPaperGridUniforms(scratch: PaperGridUniformScratch, config: PaperGridConfig, timeSec: number, aspect: number, viewExtentPx: number, cursor: Vec2): PaperGridUniformScratch;
@@ -0,0 +1,31 @@
1
+ import { type Ref } from "vue";
2
+ import { type GpuBackend } from "../../../../composables/glass/webgpu/useGpuSubstrate";
3
+ import type { PaperGridConfig } from "../constants";
4
+ export interface UsePaperGridOptions {
5
+ config: PaperGridConfig;
6
+ /** `"capture"` → renderAt-only (the deterministic π capture path). Default `"live"`. */
7
+ mode?: "live" | "capture";
8
+ }
9
+ /** The uniform handle a consumer wires its lifecycle against (backend-agnostic). */
10
+ export interface PaperGridHandle {
11
+ /** The resolved backend (`"webgpu"` where supported, else the WebGL2 GLSL fallback). */
12
+ readonly backend: GpuBackend;
13
+ /** Park the loop (the WCAG-2.2.2 pause seam — `DockBackgroundToggle` wires this). */
14
+ pause: () => void;
15
+ /** Re-arm the loop. */
16
+ resume: () => void;
17
+ /** Re-arm a parked loop on demand (a pointer that re-introduced motion). */
18
+ wake: () => void;
19
+ /** Draw one frame out-of-loop (capture / thumbnail). */
20
+ renderAt: (timeSec: number) => void;
21
+ /** The live `prefers-reduced-motion: reduce` state. */
22
+ readonly reducedMotion: boolean;
23
+ /** Tear down the renderer + release GPU/GL resources. */
24
+ dispose: () => void;
25
+ }
26
+ /**
27
+ * Mount the paper-grid renderer on `canvasRef`. The WebGPU primary + the WebGL2 fallback are
28
+ * BOTH pure fullscreen fragment passes evaluating the SAME liquid grid (the ONE math source
29
+ * `paperGrid.ts`), so the picker is the only seam. Returns the uniform lifecycle handle.
30
+ */
31
+ export declare function usePaperGrid(canvasRef: Ref<HTMLCanvasElement | null>, options: UsePaperGridOptions): PaperGridHandle;
@@ -0,0 +1,57 @@
1
+ import type { OklchStop } from "../../../composables/color";
2
+ /** The WGSL `#define` cap mirror (the grid is a fullscreen fragment — no array caps needed). */
3
+ export declare const PAPER_GRID_MAX_MAJOR_EVERY = 16;
4
+ /**
5
+ * The full author schema — the studio's `useConfiguratorState` model (commit-on-write — a
6
+ * single surface). Every field is a tunable the demo configurator drives; the SFC resolves
7
+ * it into the uniform table.
8
+ */
9
+ export interface PaperGridConfig {
10
+ /** The grid cell pitch in CSS px — LARGER = bigger cells (the user's "LARGER"). */
11
+ cellSize: number;
12
+ /** How many minor cells per major rule (the kf `--graph-major` 5rem/1rem ratio). */
13
+ majorEvery: number;
14
+ /** Minor line alpha — the calm hairline (≈ kf 3%). */
15
+ minorAlpha: number;
16
+ /** Major rule alpha — the bolder tier (kf 11%, above the 10% floor). */
17
+ majorAlpha: number;
18
+ /** Line width in device-px — one crisp pixel via Golus AA. */
19
+ lineWidth: number;
20
+ /** Wave amplitude in CELL units — how far the lines bow (the liquid; subtle = "felt, not loud"). */
21
+ waveAmplitude: number;
22
+ /** Wave spatial frequency (λ multiple) — LOW = the whole sheet bows together (coherent, not noise). */
23
+ waveScale: number;
24
+ /** The slow warp drift (ω-scale). */
25
+ waveSpeed: number;
26
+ /** The GLOBAL subtlety knob — 1 demo, ~0.12 suffusion (the site-wide background). */
27
+ fieldAlpha: number;
28
+ /** How far the cursor pushes the grid (the local bulge). */
29
+ bulgeStrength: number;
30
+ /** The Gaussian falloff radius in CELL units. */
31
+ bulgeRadius: number;
32
+ /** Push grid away (repel) or toward (attract) the cursor. */
33
+ bulgeMode: "repel" | "attract";
34
+ /** The line ink (the warm `--foreground` identity by default — NEVER teal-on-navy). */
35
+ lineColor: OklchStop;
36
+ /** The ground (default transparent so it suffuses over the page). */
37
+ background: OklchStop | "transparent";
38
+ /** Pointer bulge (§4/§8) — on (demo) / off (suffusion). */
39
+ interactive: boolean;
40
+ /** ONE static frame then park under `prefers-reduced-motion: reduce`. */
41
+ respectReducedMotion: boolean;
42
+ }
43
+ /**
44
+ * The warm-cream identity line ink (the library default — NOT a themed hue). A warm-amber
45
+ * ink in the `--foreground` family (OKLab hue ~62, the BA.W-NO-GRAY warm identity) so the
46
+ * grid reads as warm ink over the page; the SFC resolves the live `--foreground` token at
47
+ * mount, this stop is the SSR/no-token fallback identity. A consumer (the demo) themes it
48
+ * through a PRESET, never a token edit. NEVER teal/navy (h in [180,280] reds P5).
49
+ */
50
+ export declare const WARM_IDENTITY_INK: OklchStop;
51
+ /**
52
+ * The shipped warm-identity default config — evenly-spaced, LARGE 64px cells, a crisp fine
53
+ * rule with a bolder major rule every 5 cells, on a slowly breathing liquid curl-flow sheet
54
+ * (research/viz/paper-grid.md §6). SUBTLE + LARGE + evenly-spaced — the user's binding
55
+ * aesthetic. `fieldAlpha: 1` is the demo lead; the suffusion preset drops it to ~0.12.
56
+ */
57
+ export declare const DEFAULT_PAPER_GRID_CONFIG: PaperGridConfig;
@@ -0,0 +1,5 @@
1
+ export { default as PaperGrid } from "./PaperGrid.vue";
2
+ export { usePaperGrid, type PaperGridHandle, type UsePaperGridOptions, } from "./composables/usePaperGrid";
3
+ export { type PaperGridConfig, DEFAULT_PAPER_GRID_CONFIG, WARM_IDENTITY_INK, PAPER_GRID_MAX_MAJOR_EVERY, } from "./constants";
4
+ export { type Vec2, type PaperGridSampleParams, potentialFBM, curlFBM, curlWarp, cursorBulge, gridCoverage, samplePaperGrid, gridScaleFor, CURL_EPS, } from "./composables/paperGrid";
5
+ export type { OklchStop } from "../../../composables/color";
@@ -0,0 +1,4 @@
1
+ /** The full-screen-triangle vertex shader (the substrate's standard fullscreen pass). */
2
+ export declare const PAPER_GRID_VERT_GLSL = "#version 300 es\nprecision highp float;\nin vec2 aPosition;\nout vec2 vUv;\nvoid main() {\n vUv = aPosition; // [-1,1]\u00B2 domain\n gl_Position = vec4(aPosition, 0.0, 1.0);\n}";
3
+ /** The paper-grid fragment source — the liquid AA-grid (the same field as the WGSL primary). */
4
+ export declare const PAPER_GRID_FRAG_GLSL = "#version 300 es\nprecision highp float;\n\n#define TAU 6.283185307179586\n\nin vec2 vUv;\nout vec4 fragColor;\n\nuniform float uTime;\nuniform float uGridScale;\nuniform float uMajorEvery;\nuniform float uAspect;\nuniform vec4 uWarp; // (warpScale, warpSpeed, warpScale2, warpSpeed2)\nuniform float uAmplitude;\nuniform vec4 uGrid; // (targetWidth, targetWidthMajor, minorAlpha, majorAlpha)\nuniform float uFieldAlpha;\nuniform float uHasBackground;\nuniform vec4 uCursor; // (cursorX, cursorY, bulgeStrength, bulgeRadius)\nuniform float uBulgeMode; // +1 repel / \u22121 attract\nuniform vec3 uLineColor; // linear-sRGB ink\nuniform vec3 uBg; // linear-sRGB themed bg\n\n\nfloat srgbToLinearCh(float c) {\n return c <= 0.04045 ? c / 12.92 : pow((c + 0.055) / 1.055, 2.4);\n}\nvec3 srgbToLinear(vec3 c) {\n return vec3(srgbToLinearCh(c.r), srgbToLinearCh(c.g), srgbToLinearCh(c.b));\n}\n\nfloat linearToSrgbCh(float c) {\n return c <= 0.0031308 ? c * 12.92 : 1.055 * pow(c, 1.0 / 2.4) - 0.055;\n}\nvec3 linearToSrgb(vec3 c) {\n return vec3(linearToSrgbCh(c.r), linearToSrgbCh(c.g), linearToSrgbCh(c.b));\n}\n\n// The shared divergence-free 2D-curl operator (flow.glsl.ts) \u2014 the prototype declares\n// potentialFBM; the host defines its BODY below the splice (GLSL forward-declaration).\n\nconst float CURL_EPS = 0.012;\n\n// Scalar fbm potential psi \u2014 the host's noise basis, wrapped so the curl operator is\n// basis-agnostic. A host carrying its own fbm defines this as: return fbm(p);\nfloat potentialFBM(vec2 p);\n\n// \u2207\u00D7\u03C8 in 2D \u2014 the divergence-free flow direction. Central finite differences of the\n// scalar potential give the partials; the cross-pairing (\u2202y, \u2212\u2202x) is the 2D curl.\nvec2 curlFBM(vec2 p) {\n float dx = potentialFBM(p + vec2(CURL_EPS, 0.0)) - potentialFBM(p - vec2(CURL_EPS, 0.0));\n float dy = potentialFBM(p + vec2(0.0, CURL_EPS)) - potentialFBM(p - vec2(0.0, CURL_EPS));\n // \u03C8-gradient is (dx, dy)/(2\u00B7eps); the curl rotates it 90\u00B0: (\u2202\u03C8/\u2202y, \u2212\u2202\u03C8/\u2202x).\n vec2 g = vec2(dx, dy) / (2.0 * CURL_EPS);\n return vec2(g.y, -g.x);\n}\n\n\n// \u2500\u2500 The host noise basis (transcribes paperGrid.ts hash21/valueNoise/potentialFBM) \u2500\u2500\nfloat hash21(float x, float y) {\n float px = fract(x * 0.1031);\n float py = fract(y * 0.1031);\n float pz = fract(x * 0.1031);\n float d = px * (py + 33.33) + py * (pz + 33.33) + pz * (px + 33.33);\n px += d;\n py += d;\n pz += d;\n return fract((px + py) * pz);\n}\n\nfloat valueNoise(float x, float y) {\n float ix = floor(x);\n float iy = floor(y);\n float fx = x - ix;\n float fy = y - iy;\n float ux = fx * fx * fx * (fx * (fx * 6.0 - 15.0) + 10.0);\n float uy = fy * fy * fy * (fy * (fy * 6.0 - 15.0) + 10.0);\n float a = hash21(ix, iy);\n float b = hash21(ix + 1.0, iy);\n float c = hash21(ix, iy + 1.0);\n float d2 = hash21(ix + 1.0, iy + 1.0);\n return mix(mix(a, b, ux), mix(c, d2, ux), uy);\n}\n\n// The 3-octave scalar fbm potential \u2014 the curl chunk's forward-declared potentialFBM body.\nfloat potentialFBM(vec2 p) {\n float v = 0.0;\n float amp = 0.5;\n float freq = 1.0;\n float px = p.x;\n float py = p.y;\n for (int i = 0; i < 3; i++) {\n v += amp * valueNoise(px * freq, py * freq);\n // FBM_ROT mat2(0.8, 0.6, -0.6, 0.8) \u2014 same rotation as the shared chunk.\n float rx = 0.8 * px - 0.6 * py;\n float ry = 0.6 * px + 0.8 * py;\n px = rx;\n py = ry;\n freq *= 2.0;\n amp *= 0.5;\n }\n return v;\n}\n\n// \u2500\u2500 \u00A73 The global curl-flow domain warp (transcribes paperGrid.ts curlWarp) \u2500\u2500\nvec2 curlWarp(vec2 g, float t) {\n float warpScale = uWarp.x;\n float warpSpeed = uWarp.y;\n float warpScale2 = uWarp.z;\n float warpSpeed2 = uWarp.w;\n vec2 a = curlFBM(vec2(g.x * warpScale + t * warpSpeed, g.y * warpScale + t * warpSpeed));\n vec2 b = curlFBM(vec2(g.x * warpScale2 - t * warpSpeed2, g.y * warpScale2 - t * warpSpeed2));\n return vec2(a.x * uAmplitude + b.x * uAmplitude * 0.5, a.y * uAmplitude + b.y * uAmplitude * 0.5);\n}\n\n// \u2500\u2500 \u00A74 The local pointer bulge (transcribes paperGrid.ts cursorBulge) \u2500\u2500\nvec2 cursorBulge(vec2 g) {\n vec2 cursor = uCursor.xy;\n float strength = uCursor.z * uBulgeMode; // bulgeStrength \u00D7 bulgeMode (+repel / \u2212attract)\n float radius = max(uCursor.w, 1e-4);\n vec2 toC = g - cursor;\n float d = length(toC);\n float bulge = strength * exp(-(d * d) / (2.0 * radius * radius));\n if (d < 1e-5) return vec2(0.0);\n return (toC / d) * bulge;\n}\n\n// \u2500\u2500 \u00A71 The Ben Golus derivative-AA grid coverage (transcribes paperGrid.ts gridCoverage) \u2500\u2500\nfloat gridCoverage(vec2 g, float targetWidth, vec2 uvDeriv) {\n vec2 gridUV = 1.0 - abs(fract(g) * 2.0 - 1.0);\n vec2 drawWidth = clamp(vec2(targetWidth), uvDeriv, vec2(0.5));\n vec2 lineAA = uvDeriv * 1.5;\n vec2 grid2 = smoothstep(drawWidth + lineAA, drawWidth - lineAA, gridUV);\n grid2 *= clamp(vec2(targetWidth) / max(drawWidth, vec2(1e-6)), vec2(0.0), vec2(1.0));\n grid2 = mix(grid2, vec2(targetWidth), clamp(uvDeriv * 2.0 - 1.0, vec2(0.0), vec2(1.0)));\n return max(grid2.x, grid2.y);\n}\n\nvoid main() {\n float aspect = max(uAspect, 1e-4);\n vec2 uv = vec2(vUv.x * aspect, vUv.y);\n\n // \u00A75 the per-pixel kernel: warp + bulge the grid coordinate, then two-tier Golus.\n vec2 g = uv * uGridScale;\n g += curlWarp(g, uTime);\n g += cursorBulge(g);\n\n // The screen-space derivative of g (Golus): length(vec2(dFdx, dFdy)) per axis (the actual\n // backing-store pixel \u2014 NOT a CSS sub-pixel, the blur-kill).\n vec2 dv = vec2(\n length(vec2(dFdx(g.x), dFdy(g.x))),\n length(vec2(dFdx(g.y), dFdy(g.y)))\n );\n\n float minor = gridCoverage(g, uGrid.x, dv);\n float me = max(uMajorEvery, 1.0);\n float major = gridCoverage(g / me, uGrid.y, dv / me);\n float line = max(minor * uGrid.z, major * uGrid.w);\n\n vec3 col = clamp(linearToSrgb(uLineColor), vec3(0.0), vec3(1.0));\n if (uHasBackground > 0.5) {\n vec3 bg = clamp(linearToSrgb(uBg), vec3(0.0), vec3(1.0));\n float a = line * uFieldAlpha;\n fragColor = vec4(mix(bg, col, a), 1.0);\n return;\n }\n float a = line * uFieldAlpha;\n fragColor = vec4(col * a, a); // premultiplied over transparent\n}";
@@ -0,0 +1 @@
1
+ export declare const PAPER_GRID_WGSL = "\nconst TAU: f32 = 6.283185307179586;\n\n// \u2500\u2500 Paper-grid uniforms (the typed-struct source-of-truth \u2014 see uniformBridgeWGPU.ts) \u2500\u2500\nstruct PaperGridUniforms {\n // u0: (uTime, uGridScale, uMinorPitch, uMajorEvery)\n u0: vec4<f32>,\n // warp: (uWarpScale, uWarpSpeed, uWarpScale2, uWarpSpeed2)\n warp: vec4<f32>,\n // warp2: (uAmplitude, uAspect, _pad, _pad)\n warp2: vec4<f32>,\n // grid: (uTargetWidth, uTargetWidthMajor, uMinorAlpha, uMajorAlpha)\n grid: vec4<f32>,\n // field: (uFieldAlpha, uHasBackground, _pad, _pad)\n field: vec4<f32>,\n // cursor: (uCursorX, uCursorY, uBulgeStrength, uBulgeRadius)\n cursor: vec4<f32>,\n // cursor2: (uBulgeMode, uInteractive, _pad, _pad)\n cursor2: vec4<f32>,\n // line: (uLineColor.rgb (linear), _pad)\n line: vec4<f32>,\n // bg: (uBg.rgb (linear), _pad)\n bg: vec4<f32>,\n};\n\n@group(0) @binding(0) var<uniform> u: PaperGridUniforms;\n\n\nfn srgbToLinearCh(c: f32) -> f32 {\n if (c <= 0.04045) { return c / 12.92; }\n return pow((c + 0.055) / 1.055, 2.4);\n}\nfn srgbToLinear(c: vec3<f32>) -> vec3<f32> {\n return vec3<f32>(srgbToLinearCh(c.r), srgbToLinearCh(c.g), srgbToLinearCh(c.b));\n}\n\nfn linearToSrgbCh(c: f32) -> f32 {\n if (c <= 0.0031308) { return c * 12.92; }\n return 1.055 * pow(c, 1.0 / 2.4) - 0.055;\n}\nfn linearToSrgb(c: vec3<f32>) -> vec3<f32> {\n return vec3<f32>(linearToSrgbCh(c.r), linearToSrgbCh(c.g), linearToSrgbCh(c.b));\n}\n\n// \u2500\u2500 The host noise basis (transcribes paperGrid.ts hash21/valueNoise/potentialFBM) \u2500\u2500\n// A quintic-faded 2D value-noise fbm potential \u2014 the SAME basis the dot-flow-field carries\n// (so the suite speaks ONE noise basis). DECLARED ABOVE the curl splice (WGSL has no forward\n// declaration \u2014 a function may only call one declared earlier).\nfn hash21(x: f32, y: f32) -> f32 {\n var px = fract(x * 0.1031);\n var py = fract(y * 0.1031);\n var pz = fract(x * 0.1031);\n let d = px * (py + 33.33) + py * (pz + 33.33) + pz * (px + 33.33);\n px = px + d;\n py = py + d;\n pz = pz + d;\n return fract((px + py) * pz);\n}\n\nfn valueNoise(x: f32, y: f32) -> f32 {\n let ix = floor(x);\n let iy = floor(y);\n let fx = x - ix;\n let fy = y - iy;\n let ux = fx * fx * fx * (fx * (fx * 6.0 - 15.0) + 10.0);\n let uy = fy * fy * fy * (fy * (fy * 6.0 - 15.0) + 10.0);\n let a = hash21(ix, iy);\n let b = hash21(ix + 1.0, iy);\n let c = hash21(ix, iy + 1.0);\n let d2 = hash21(ix + 1.0, iy + 1.0);\n return mix(mix(a, b, ux), mix(c, d2, ux), uy);\n}\n\n// The 3-octave scalar fbm potential \u2014 the host noise basis the curl operator wraps.\nfn potentialFBM(p: vec2f) -> f32 {\n var v = 0.0;\n var amp = 0.5;\n var freq = 1.0;\n var px = p.x;\n var py = p.y;\n for (var i = 0; i < 3; i = i + 1) {\n v = v + amp * valueNoise(px * freq, py * freq);\n // FBM_ROT mat2(0.8, 0.6, -0.6, 0.8) \u2014 same rotation as the shared chunk.\n let rx = 0.8 * px - 0.6 * py;\n let ry = 0.6 * px + 0.8 * py;\n px = rx;\n py = ry;\n freq = freq * 2.0;\n amp = amp * 0.5;\n }\n return v;\n}\n\n// The shared divergence-free 2D-curl operator (flow.wgsl.ts \u2014 the FIRST WGSL curl consumer).\n\nconst CURL_EPS: f32 = 0.012;\n\n// \u2207\u00D7\u03C8 in 2D \u2014 the divergence-free flow direction. Central finite differences of the\n// scalar potential give the partials; the cross-pairing (\u2202y, \u2212\u2202x) is the 2D curl.\nfn curlFBM(p: vec2f) -> vec2f {\n let dx = potentialFBM(p + vec2f(CURL_EPS, 0.0)) - potentialFBM(p - vec2f(CURL_EPS, 0.0));\n let dy = potentialFBM(p + vec2f(0.0, CURL_EPS)) - potentialFBM(p - vec2f(0.0, CURL_EPS));\n // \u03C8-gradient is (dx, dy)/(2\u00B7eps); the curl rotates it 90\u00B0: (\u2202\u03C8/\u2202y, \u2212\u2202\u03C8/\u2202x).\n let g = vec2f(dx, dy) / (2.0 * CURL_EPS);\n return vec2f(g.y, -g.x);\n}\n\n\n// \u2500\u2500 \u00A73 The \"liquid\": the global curl-flow domain warp (transcribes paperGrid.ts curlWarp) \u2500\u2500\n// TWO counter-flowing curl terms at different scales/speeds (Alex Harri counter-flow \u2014 never\n// visibly loops). A SHALLOW, LOW-frequency warp keeps the lines a clearly-readable grid.\nfn curlWarp(g: vec2f, t: f32) -> vec2f {\n let warpScale = u.warp.x;\n let warpSpeed = u.warp.y;\n let warpScale2 = u.warp.z;\n let warpSpeed2 = u.warp.w;\n let amp = u.warp2.x;\n let a = curlFBM(vec2f(g.x * warpScale + t * warpSpeed, g.y * warpScale + t * warpSpeed));\n let b = curlFBM(vec2f(g.x * warpScale2 - t * warpSpeed2, g.y * warpScale2 - t * warpSpeed2));\n return vec2f(a.x * amp + b.x * amp * 0.5, a.y * amp + b.y * amp * 0.5);\n}\n\n// \u2500\u2500 \u00A74 The pointer bulge: a LOCAL Gaussian warp (transcribes paperGrid.ts cursorBulge) \u2500\u2500\nfn cursorBulge(g: vec2f) -> vec2f {\n let cursor = u.cursor.xy;\n let strength = u.cursor.z * u.cursor2.x; // bulgeStrength \u00D7 bulgeMode (+repel / \u2212attract)\n let radius = max(u.cursor.w, 1e-4);\n let toC = g - cursor;\n let d = length(toC);\n let bulge = strength * exp(-(d * d) / (2.0 * radius * radius));\n if (d < 1e-5) { return vec2f(0.0); }\n return (toC / d) * bulge;\n}\n\n// \u2500\u2500 \u00A71 The crisp line: Ben Golus derivative-AA grid coverage (transcribes gridCoverage) \u2500\u2500\n// targetWidth is the line half-width in GRID UNITS (lineWidthPx / minorPitchPx); uvDeriv is\n// the per-axis screen-space derivative of g (length(vec2(dpdx, dpdy)) per axis). Returns\n// line coverage [0..1] \u2014 exactly N device-pixels wide at ANY DPR/zoom (the blur-kill).\nfn gridCoverage(g: vec2f, targetWidth: f32, uvDeriv: vec2f) -> f32 {\n // triangle wave per axis: 0 at a line, 1 at the cell center.\n let gridUV = 1.0 - abs(fract(g) * 2.0 - 1.0);\n let drawWidth = clamp(vec2f(targetWidth), uvDeriv, vec2f(0.5));\n let lineAA = uvDeriv * 1.5;\n // smoothstep with edge0 > edge1 (Golus) \u2192 a falling edge.\n var grid2 = smoothstep(drawWidth + lineAA, drawWidth - lineAA, gridUV);\n // preserve thin-line intensity where the line is sub-drawWidth.\n grid2 = grid2 * clamp(vec2f(targetWidth) / max(drawWidth, vec2f(1e-6)), vec2f(0.0), vec2f(1.0));\n // Moir\u00E9 suppression: fade toward the average where the cell packs tighter than a pixel.\n grid2 = mix(grid2, vec2f(targetWidth), clamp(uvDeriv * 2.0 - 1.0, vec2f(0.0), vec2f(1.0)));\n return max(grid2.x, grid2.y);\n}\n\n// Full-screen-triangle (the pilot idiom): NDC corners (-1,-1),(3,-1),(-1,3) cover the\n// viewport from a single 3-vertex draw \u2014 no vertex buffer.\nstruct VSOut {\n @builtin(position) pos: vec4f,\n @location(0) uv: vec2f, // domain [-1,1]\u00B2, aspect-corrected x\n};\n\n@vertex\nfn vs_main(@builtin(vertex_index) vi: u32) -> VSOut {\n var corners = array<vec2f, 3>(\n vec2f(-1.0, -1.0), vec2f(3.0, -1.0), vec2f(-1.0, 3.0),\n );\n let c = corners[vi];\n var out: VSOut;\n out.pos = vec4f(c, 0.0, 1.0);\n out.uv = vec2f(c.x, c.y);\n return out;\n}\n\n@fragment\nfn fs_main(in: VSOut) -> @location(0) vec4f {\n let aspect = max(u.warp2.y, 1e-4);\n // aspect-correct the domain x so the cells read square.\n let uv = vec2f(in.uv.x * aspect, in.uv.y);\n let t = u.u0.x;\n let gridScale = u.u0.y;\n\n // \u00A75 the per-pixel kernel: warp + bulge the grid coordinate, then two-tier Golus.\n var g = uv * gridScale;\n g = g + curlWarp(g, t);\n g = g + cursorBulge(g);\n\n // The screen-space derivative of g (Golus): length(vec2(dpdx, dpdy)) per axis. fwidth-class\n // derivative reads the ACTUAL backing-store pixel (NOT fwidthFine \u2014 Compatibility-Mode safe).\n let dv = vec2f(\n length(vec2f(dpdx(g.x), dpdy(g.x))),\n length(vec2f(dpdx(g.y), dpdy(g.y))),\n );\n\n let minor = gridCoverage(g, u.grid.x, dv);\n // The major tier evals at g / majorEvery with its own derivative scaling.\n let me = max(u.u0.w, 1.0);\n let major = gridCoverage(g / me, u.grid.y, dv / me);\n let line = max(minor * u.grid.z, major * u.grid.w);\n\n let col = clamp(linearToSrgb(u.line.rgb), vec3f(0.0), vec3f(1.0));\n let hasBg = u.field.y;\n if (hasBg > 0.5) {\n // opaque ground: composite the ink over the themed bg.\n let bg = clamp(linearToSrgb(u.bg.rgb), vec3f(0.0), vec3f(1.0));\n let a = line * u.field.x;\n let outRgb = mix(bg, col, a);\n return vec4f(outRgb, 1.0);\n }\n // transparent ground: the LINE carries the alpha \u2014 the page reads through the cells.\n let a = line * u.field.x;\n return vec4f(col * a, a); // premultiplied over transparent\n}\n";
@@ -1,7 +1,11 @@
1
+ import type { Surface } from "../../ui/_shared/useSurfaceAxis";
2
+ import { type ControlSize, type SearchVariant } from "./searchVariants";
1
3
  import type { FuzzySearchState, SearchableItem } from "./composables/types";
2
4
  type __VLS_Props = {
3
5
  state: FuzzySearchState;
4
- variant?: "sidebar" | "floating";
6
+ variant?: SearchVariant;
7
+ size?: ControlSize;
8
+ surface?: Surface;
5
9
  placeholder?: string;
6
10
  typeLabel?: (item: SearchableItem) => string;
7
11
  };
@@ -9,7 +13,9 @@ declare function focus(): void;
9
13
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
10
14
  focus: typeof focus;
11
15
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
12
- variant: "sidebar" | "floating";
16
+ size: ControlSize;
17
+ variant: SearchVariant;
18
+ surface: Surface;
13
19
  placeholder: string;
14
20
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
21
  declare const _default: typeof __VLS_export;
@@ -1,9 +1,14 @@
1
1
  import { type Component } from "vue";
2
+ import type { Surface } from "../../ui/_shared/useSurfaceAxis";
3
+ import { type ControlSize, type SearchVariant } from "./searchVariants";
2
4
  type __VLS_Props = {
3
5
  modelValue?: string;
4
6
  placeholder?: string;
5
7
  icon?: Component;
6
8
  tag?: string;
9
+ size?: ControlSize;
10
+ surface?: Surface;
11
+ variant?: SearchVariant;
7
12
  };
8
13
  declare var __VLS_13: {};
9
14
  type __VLS_Slots = {} & {
@@ -16,6 +21,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
16
21
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
22
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
18
23
  }>, {
24
+ size: ControlSize;
25
+ variant: SearchVariant;
26
+ surface: Surface;
19
27
  modelValue: string;
20
28
  placeholder: string;
21
29
  tag: string;
@@ -1,5 +1,7 @@
1
1
  export { default as FuzzySearch } from "./FuzzySearch.vue";
2
2
  export { default as SearchBar } from "./SearchBar.vue";
3
+ export { searchFieldVariants } from "./searchVariants";
4
+ export type { SearchVariant, SearchVariants } from "./searchVariants";
3
5
  export { useFuzzySearch } from "./composables/useFuzzySearch";
4
6
  export type { UseFuzzySearchOptions } from "./composables/useFuzzySearch";
5
7
  export { buildIndex, searchIndex, fuzzyMatch, clearSearchCache } from "./composables/fuzzySearchIndex";
@@ -0,0 +1,19 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import { type ControlSize, controlSizeClass } from "../../ui/_shared/useControlSize";
3
+ /**
4
+ * The search field-CHROME variant. `inline` is the boxed glass pill (identity over
5
+ * the `.input-bar` recipe); `bare`/`floating` strip the box to a chromeless field —
6
+ * the real CVA rung the `!important` cluster was fighting (clean break, no `!`).
7
+ *
8
+ * searchFieldVariants() → "" (the boxed pill)
9
+ * searchFieldVariants({ variant: "bare" }) → "border-none bg-transparent p-0 rounded-none"
10
+ */
11
+ export declare const searchFieldVariants: (props?: ({
12
+ variant?: "floating" | "inline" | "bare" | null | undefined;
13
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
+ export type SearchVariant = NonNullable<VariantProps<typeof searchFieldVariants>["variant"]>;
15
+ /** The CVA's variant-prop shape — the `/api` discovery surface (the SFCs cannot
16
+ * re-export a type, so this CVA home is the type source). */
17
+ export type SearchVariants = VariantProps<typeof searchFieldVariants>;
18
+ export { controlSizeClass };
19
+ export type { ControlSize };
@@ -0,0 +1,50 @@
1
+ /**
2
+ * SelectableChip — the public face of the BC.W-ACCENT-TONE tonal-accent register.
3
+ * A reka-`Toggle` selectable chip whose COLOUR identity comes from ONE `:tone` (a
4
+ * complete `<color>`): the chip reads the `.accent-tone` register — a faint idle
5
+ * FILL floored ≥3:1 (legible at rest, the load-bearing fourier ask), a bolder active
6
+ * BAND + EDGE rim, and a contrast-safe INK label (auto-darkened/lightened by value.js
7
+ * `safeAccentColor` so the text never drops below AA over the resolved band).
8
+ *
9
+ * Usage:
10
+ * <SelectableChip v-model="on" :tone="'var(--section-color-7)'">React</SelectableChip>
11
+ *
12
+ * The toggle state is the reka-ui Toggle `modelValue` contract — bind via `v-model`
13
+ * (or `:model-value` / `@update:model-value`). For an exclusive picker, wire the chips
14
+ * via direct refs (deliberately unopinionated about ToggleGroup — the ToggleChip
15
+ * precedent).
16
+ *
17
+ * VALUE.JS-BEARING: this SFC STATICALLY imports `useAccentTone` (the contrast-safe-ink
18
+ * composable, which reaches value.js `safeAccentColor`/`computeSafeAccent`), so the
19
+ * chip chunk transitively reaches value.js — it ships on `/selectable-chip` ONLY, OFF
20
+ * the value.js-free root barrel (the BorderProgress/EasingPicker SCC-trap precedent).
21
+ */
22
+ import type { HTMLAttributes } from "vue";
23
+ import { type ToggleProps } from "reka-ui";
24
+ import { type SelectableChipVariants } from "./selectableChipVariants";
25
+ type __VLS_Props = ToggleProps & {
26
+ /** The accent COLOUR identity — a complete `<color>` (e.g. `var(--section-color-7)`
27
+ * or a concrete `oklch(…)`). Defaults to `var(--primary)` via the register. The
28
+ * SEMANTIC choice is a prop; the strength MAGNITUDES are tokens (no over-prop). */
29
+ tone?: string;
30
+ /** The structural size rung. Default `md`. */
31
+ size?: SelectableChipVariants["size"];
32
+ class?: HTMLAttributes["class"];
33
+ };
34
+ declare var __VLS_8: {};
35
+ type __VLS_Slots = {} & {
36
+ default?: (props: typeof __VLS_8) => any;
37
+ };
38
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
39
+ "update:modelValue": (value: boolean) => any;
40
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
41
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
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 SelectableChip } from "./SelectableChip.vue";
2
+ export { selectableChipVariants, type SelectableChipVariants, } from "./selectableChipVariants";
@@ -0,0 +1,23 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ /**
3
+ * SelectableChip — the public face of the BC.W-ACCENT-TONE tonal register: a
4
+ * reka-`Toggle` selectable chip that READS `.accent-tone` (idle `--accent-fill`
5
+ * floored ≥3:1, active `--accent-band` + `--accent-edge` rim + the contrast-safe
6
+ * `--accent-ink` label). A tag/filter/tool picker is ONE element, golden-by-
7
+ * construction — the tonal channels are owned by the register, not hand-rolled
8
+ * per-state `color-mix(…)`.
9
+ *
10
+ * The recipe is STRUCTURE + the register hook: it applies `.accent-tone` (the
11
+ * channel mint), the idle/active PAINT (off the register channels), and the size
12
+ * axis (the padding/radius/text-size). The tonal COLOUR is the register; this CVA
13
+ * carries no `color-mix(…--primary…)` literal (the N-paste the register collapses).
14
+ *
15
+ * The motion register matches the §6 interactive family (the ToggleChip precedent):
16
+ * the SURFACE legs (bg/border/color) ride `--duration-fast`/`--ease-standard`; the
17
+ * `scale` TRANSFORM leg rides `--spring-smooth`, so the chip lifts on hover + settles
18
+ * on press like every sibling control.
19
+ */
20
+ export declare const selectableChipVariants: (props?: ({
21
+ size?: "sm" | "lg" | "md" | null | undefined;
22
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
23
+ export type SelectableChipVariants = VariantProps<typeof selectableChipVariants>;