@mkbabb/glass-ui 3.13.0 → 4.0.1

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 (507) hide show
  1. package/README.md +3 -1
  2. package/dist/CardAction-CW7a0m8M.js +253 -0
  3. package/dist/{CommandShortcut-RowNEO6i.js → CommandShortcut-DvZNQ_HF.js} +58 -53
  4. package/dist/ConfiguratorRow-BR4l-ixA.js +143 -0
  5. package/dist/{ContextMenuContent-CT3AS1WX.js → ContextMenuContent-uWnVxDab.js} +1 -1
  6. package/dist/{ContextMenuSubContent-BQmxTAdw.js → ContextMenuSubContent-xol4sD2q.js} +32 -37
  7. package/dist/{DataTable-BCddn3T3.js → DataTable-CuKwF7wr.js} +99 -97
  8. package/dist/DialogContent-DcKK8k9i.js +103 -0
  9. package/dist/{DialogFooter-Blu4t7tJ.js → DialogFooter-BZNX5aVr.js} +3 -3
  10. package/dist/FadingScroll-DI6hQhT9.js +76 -0
  11. package/dist/{HoverCardContent-Csywg3YF.js → HoverCardContent-b2uaAMRR.js} +1 -1
  12. package/dist/{HoverPopover-CISOJQuZ.js → HoverPopover-CbqbNwgU.js} +2 -2
  13. package/dist/IconChip-BTD-nay5.js +55 -0
  14. package/dist/{IconTooltip-DPzE09X9.js → IconTooltip-Bl8gFZ8d.js} +1 -1
  15. package/dist/{Input-DWQQIOC4.js → Input-h9v5LeXf.js} +1 -1
  16. package/dist/{MetricBadge-C9QMz1KT.js → MetricBadge-RHdBP72w.js} +1 -1
  17. package/dist/Notification-VUwexFUf.js +43 -0
  18. package/dist/NumberFieldContent-Cq7EzX-U.js +138 -0
  19. package/dist/PopoverContent-DL7E6vJP.js +127 -0
  20. package/dist/{Progress-DwlUKGbr.js → Progress-DctG61iZ.js} +98 -78
  21. package/dist/{ScrollingText-DfFrwSph.js → ScrollingText-yOpBzFYq.js} +2 -2
  22. package/dist/{SelectScrollDownButton-CiDUxfEj.js → SelectScrollDownButton-CrA8F0iV.js} +35 -20
  23. package/dist/{Switch-CsIuYP_e.js → Switch-CwYNf8bo.js} +1 -1
  24. package/dist/Toaster-Bw4xR8xV.js +274 -0
  25. package/dist/{ToggleGroupItem-D_AHlRw9.js → ToggleGroupItem-pEM9vIhs.js} +50 -37
  26. package/dist/{TooltipProvider-B3MkB_8P.js → TooltipProvider-rzvnXz60.js} +1 -1
  27. package/dist/animated-digit.js +2 -2
  28. package/dist/api/index.d.ts +16 -8
  29. package/dist/api/types-extra.d.ts +6 -0
  30. package/dist/api.js +2 -2
  31. package/dist/aurora.js +888 -230
  32. package/dist/badge.js +1 -1
  33. package/dist/border-progress.d.ts +1 -0
  34. package/dist/border-progress.js +106 -0
  35. package/dist/button-DYCUa-tH.js +126 -0
  36. package/dist/button.js +1 -1
  37. package/dist/canvas.js +2 -2
  38. package/dist/card.js +2 -2
  39. package/dist/carousel.d.ts +1 -1
  40. package/dist/carousel.js +90 -151
  41. package/dist/collapsible.js +1 -1
  42. package/dist/color-swatch.d.ts +1 -0
  43. package/dist/color-swatch.js +47 -0
  44. package/dist/color.js +1 -1
  45. package/dist/command.js +1 -1
  46. package/dist/compile-CQEFRTmx.js +19 -0
  47. package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
  48. package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
  49. package/dist/components/custom/aurora/composables/runtime.d.ts +19 -0
  50. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
  51. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +51 -0
  52. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +29 -0
  53. package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
  54. package/dist/components/custom/aurora/constants/presets.d.ts +30 -2
  55. package/dist/components/custom/aurora/constants/renderMode.d.ts +63 -10
  56. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
  57. package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
  58. package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
  59. package/dist/components/custom/aurora/index.d.ts +3 -2
  60. package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
  61. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +22 -0
  62. package/dist/components/custom/border-progress/constants.d.ts +59 -0
  63. package/dist/components/custom/border-progress/index.d.ts +4 -0
  64. package/dist/components/custom/color-swatch/ColorSwatch.vue.d.ts +22 -0
  65. package/dist/components/custom/color-swatch/index.d.ts +1 -0
  66. package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
  67. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +11 -0
  68. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
  69. package/dist/components/custom/concentric/composables/ringField.d.ts +44 -0
  70. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +13 -0
  71. package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
  72. package/dist/components/custom/concentric/constants.d.ts +43 -0
  73. package/dist/components/custom/concentric/index.d.ts +5 -0
  74. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
  75. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
  76. package/dist/components/custom/configurator/Configurator.vue.d.ts +19 -8
  77. package/dist/components/custom/constellation/Constellation.vue.d.ts +18 -206
  78. package/dist/components/custom/constellation/composables/useConstellation.d.ts +26 -0
  79. package/dist/components/custom/constellation/constellationField.d.ts +2 -369
  80. package/dist/components/custom/constellation/constellationTypes.d.ts +369 -0
  81. package/dist/components/custom/constellation/index.d.ts +1 -1
  82. package/dist/components/custom/dock/DockIconButton.vue.d.ts +13 -4
  83. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
  84. package/dist/components/custom/dock/DockRail.vue.d.ts +17 -16
  85. package/dist/components/custom/dock/DockSection.vue.d.ts +69 -0
  86. package/dist/components/custom/dock/DockSeparator.vue.d.ts +49 -1
  87. package/dist/components/custom/dock/DockTabButton.vue.d.ts +5 -5
  88. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +75 -0
  89. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
  90. package/dist/components/custom/dock/constants.d.ts +35 -0
  91. package/dist/components/custom/dock/index.d.ts +2 -0
  92. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +38 -0
  93. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +41 -0
  94. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +24 -0
  95. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +34 -0
  96. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -0
  97. package/dist/components/custom/dot-flow-field/constants.d.ts +48 -0
  98. package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
  99. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
  100. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +20 -0
  101. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
  102. package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
  103. package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
  104. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +75 -0
  105. package/dist/components/custom/easing/constants.d.ts +28 -0
  106. package/dist/components/custom/easing/index.d.ts +3 -0
  107. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +10 -0
  108. package/dist/components/custom/fading-scroll/FadingScroll.vue.d.ts +25 -0
  109. package/dist/components/custom/fading-scroll/composables/useFadingScroll.d.ts +31 -0
  110. package/dist/components/custom/fading-scroll/constants.d.ts +19 -0
  111. package/dist/components/custom/fading-scroll/index.d.ts +2 -0
  112. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +19 -2
  113. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +39 -0
  114. package/dist/components/custom/fourier-field/constants.d.ts +7 -0
  115. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  116. package/dist/components/custom/fourier-field/math.d.ts +17 -0
  117. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +9 -1
  118. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +4 -2
  119. package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
  120. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +29 -12
  121. package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
  122. package/dist/components/custom/goo-blob/constants.d.ts +6 -1
  123. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
  124. package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
  125. package/dist/components/custom/handmark/brush.d.ts +269 -0
  126. package/dist/components/custom/handmark/composables/useHandMark.d.ts +89 -0
  127. package/dist/components/custom/handmark/constants.d.ts +39 -0
  128. package/dist/components/custom/handmark/freehand.d.ts +69 -0
  129. package/dist/components/custom/handmark/geometry.d.ts +52 -0
  130. package/dist/components/custom/handmark/index.d.ts +27 -0
  131. package/dist/components/custom/handmark/ink.d.ts +11 -0
  132. package/dist/components/custom/handmark/texture.d.ts +39 -0
  133. package/dist/components/custom/handmark/types.d.ts +62 -0
  134. package/dist/components/custom/icon-chip/IconChip.vue.d.ts +4 -0
  135. package/dist/components/custom/icon-chip/index.d.ts +2 -0
  136. package/dist/components/custom/icon-chip/types.d.ts +82 -0
  137. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +17 -2
  138. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
  139. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +39 -0
  140. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  141. package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
  142. package/dist/components/custom/spa-view/index.d.ts +2 -0
  143. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +29 -24
  144. package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
  145. package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +30 -21
  146. package/dist/components/custom/tabs/constants.d.ts +9 -3
  147. package/dist/components/custom/tabs/index.d.ts +1 -1
  148. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +15 -1
  149. package/dist/components/ui/_shared/index.d.ts +2 -0
  150. package/dist/components/ui/_shared/menuItemVariants.d.ts +19 -0
  151. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +41 -0
  152. package/dist/components/ui/badge/index.d.ts +1 -1
  153. package/dist/components/ui/button/Button.vue.d.ts +5 -2
  154. package/dist/components/ui/button/index.d.ts +2 -2
  155. package/dist/components/ui/card/Card.vue.d.ts +34 -4
  156. package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
  157. package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
  158. package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
  159. package/dist/components/ui/card/index.d.ts +2 -0
  160. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
  161. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
  162. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
  163. package/dist/components/ui/carousel/index.d.ts +0 -1
  164. package/dist/components/ui/command/Command.vue.d.ts +4 -1
  165. package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -3
  166. package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
  167. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +12 -8
  168. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
  169. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
  170. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
  171. package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
  172. package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
  173. package/dist/components/ui/drawer/constants.d.ts +45 -0
  174. package/dist/components/ui/drawer/index.d.ts +23 -15
  175. package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
  176. package/dist/components/ui/focus-scope/index.d.ts +2 -0
  177. package/dist/components/ui/index.d.ts +1 -1
  178. package/dist/components/ui/popover/PopoverContent.vue.d.ts +3 -0
  179. package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
  180. package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +14 -3
  181. package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
  182. package/dist/components/ui/select/SelectTrigger.vue.d.ts +27 -4
  183. package/dist/components/ui/sheet/SheetContent.vue.d.ts +6 -0
  184. package/dist/components/ui/sheet/index.d.ts +1 -1
  185. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +3 -0
  186. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
  187. package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
  188. package/dist/components/ui/toast/use-toast.d.ts +14 -0
  189. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  190. package/dist/composables/dark/index.d.ts +1 -1
  191. package/dist/composables/dark/useGlobalDark.d.ts +23 -1
  192. package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
  193. package/dist/composables/glass/index.d.ts +5 -2
  194. package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
  195. package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
  196. package/dist/composables/glass/vSpecular.d.ts +2 -0
  197. package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
  198. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
  199. package/dist/composables/glass/webgpu/index.d.ts +2 -0
  200. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +54 -0
  201. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +84 -0
  202. package/dist/composables/motion/core/index.d.ts +1 -0
  203. package/dist/composables/motion/index.d.ts +4 -0
  204. package/dist/composables/motion/useDockCtaReceive.d.ts +59 -0
  205. package/dist/composables/motion/useDragMorph.d.ts +77 -0
  206. package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
  207. package/dist/composables/motion/useLiquidPress.d.ts +71 -0
  208. package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
  209. package/dist/composables/motion/useNumericTransition.d.ts +3 -3
  210. package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
  211. package/dist/composables/motion/useViewTransition.d.ts +36 -1
  212. package/dist/concentric.d.ts +1 -0
  213. package/dist/concentric.js +562 -0
  214. package/dist/configurator.js +3 -2
  215. package/dist/confirm-dialog.js +22 -24
  216. package/dist/constellation.js +93 -95
  217. package/dist/context-menu.js +3 -3
  218. package/dist/controls.js +10 -4
  219. package/dist/createCanvasLifecycle-CHD5XrDW.js +82 -0
  220. package/dist/dark.d.ts +1 -1
  221. package/dist/dark.js +1 -1
  222. package/dist/data-table.js +1 -1
  223. package/dist/dialog.js +2 -2
  224. package/dist/dock.js +738 -442
  225. package/dist/{dockContext-BegmJVmx.js → dockContext-BNfyPLe9.js} +1 -1
  226. package/dist/dom.js +5 -5
  227. package/dist/dot-flow-field.d.ts +1 -0
  228. package/dist/dot-flow-field.js +604 -0
  229. package/dist/drawer.d.ts +1 -0
  230. package/dist/drawer.js +380 -0
  231. package/dist/{dropdown-menu-DzkkyBwX.js → dropdown-menu-CofSZuk8.js} +14 -15
  232. package/dist/dropdown-menu.js +1 -1
  233. package/dist/easing.d.ts +1 -0
  234. package/dist/easing.js +463 -0
  235. package/dist/expandable-container.js +45 -38
  236. package/dist/fading-scroll.d.ts +1 -0
  237. package/dist/fading-scroll.js +2 -0
  238. package/dist/focus-scope.d.ts +1 -0
  239. package/dist/focus-scope.js +23 -0
  240. package/dist/forms.js +7 -7
  241. package/dist/fourier-field.js +135 -122
  242. package/dist/fourier-math.js +2 -2
  243. package/dist/glass-panel.js +39 -36
  244. package/dist/glass-ui.css +1 -1
  245. package/dist/glass-ui.js +154 -362
  246. package/dist/goo-blob.js +838 -227
  247. package/dist/handmark.d.ts +1 -0
  248. package/dist/handmark.js +707 -0
  249. package/dist/header-ribbon.js +1 -1
  250. package/dist/hover-card.js +1 -1
  251. package/dist/hover-popover.js +1 -1
  252. package/dist/icon-chip.d.ts +1 -0
  253. package/dist/icon-chip.js +2 -0
  254. package/dist/icon-tooltip.js +1 -1
  255. package/dist/index.d.ts +3 -3
  256. package/dist/instrument-chassis.js +1 -1
  257. package/dist/keyboard.js +1 -1
  258. package/dist/label.js +1 -1
  259. package/dist/labeled-field.js +6 -6
  260. package/dist/{math-U6-RrLmV.js → math-BINYmg5z.js} +11 -3
  261. package/dist/{menuItemVariants-DPiEarb0.js → menuItemVariants-D8VNHq22.js} +10 -4
  262. package/dist/metric-badge.js +1 -1
  263. package/dist/metric-cell.js +25 -22
  264. package/dist/metric-stack.js +4 -8
  265. package/dist/motion-core.js +36 -35
  266. package/dist/motion-curves.js +1 -1
  267. package/dist/motion.js +157 -55
  268. package/dist/notification.js +1 -1
  269. package/dist/number-field.js +1 -1
  270. package/dist/pager-dots.d.ts +1 -0
  271. package/dist/pager-dots.js +91 -0
  272. package/dist/paper-backdrop.js +1 -1
  273. package/dist/popover.js +1 -1
  274. package/dist/{presets-BKVyQfbt.js → presets-BW2b-fr1.js} +14 -1
  275. package/dist/{compile-B7NGOBcP.js → procedural-color.glsl-CIFsJhwI.js} +1 -155
  276. package/dist/procedural-color.wgsl-CToRHugY.js +224 -0
  277. package/dist/progress.js +1 -1
  278. package/dist/pulse.js +1 -1
  279. package/dist/reactive.js +2 -2
  280. package/dist/scrolling-text.js +1 -1
  281. package/dist/search.js +10 -12
  282. package/dist/select.js +3 -3
  283. package/dist/separator.js +1 -1
  284. package/dist/sheet-tZMg0E0w.js +218 -0
  285. package/dist/sheet.js +1 -1
  286. package/dist/{slider-B-JP2JlI.js → slider-DVb4HXU-.js} +7 -7
  287. package/dist/slider.js +1 -1
  288. package/dist/sortable-list.js +3 -3
  289. package/dist/spa-view.d.ts +1 -0
  290. package/dist/spa-view.js +46 -0
  291. package/dist/styles/animations.css +40 -31
  292. package/dist/styles/border-progress.css +109 -0
  293. package/dist/styles/cards.css +76 -0
  294. package/dist/styles/components.css +1 -1
  295. package/dist/styles/configurator.css +35 -0
  296. package/dist/styles/critical-partition.mjs +140 -0
  297. package/dist/styles/critical.css +12 -0
  298. package/dist/styles/deferred.css +31 -0
  299. package/dist/styles/dock/density.css +64 -0
  300. package/dist/styles/dock/layers.css +54 -30
  301. package/dist/styles/dock/morph.css +124 -7
  302. package/dist/styles/dock/overflow.css +31 -2
  303. package/dist/styles/dock/rail-extend.css +168 -71
  304. package/dist/styles/dock/section.css +59 -0
  305. package/dist/styles/dock/shell.css +83 -16
  306. package/dist/styles/dock-controls/icon-button.css +11 -1
  307. package/dist/styles/dock-controls/tab-button.css +24 -83
  308. package/dist/styles/dock-controls/triggers.css +7 -0
  309. package/dist/styles/dock.css +38 -3
  310. package/dist/styles/drawer.css +127 -35
  311. package/dist/styles/feedback-tone.css +104 -0
  312. package/dist/styles/glass/deep.css +44 -0
  313. package/dist/styles/glass/ladder.css +154 -52
  314. package/dist/styles/glass/material.css +78 -15
  315. package/dist/styles/glass/reveal.css +136 -0
  316. package/dist/styles/glass/rim.css +100 -0
  317. package/dist/styles/glass/surface-axis.css +113 -0
  318. package/dist/styles/glass/surfaces.css +189 -15
  319. package/dist/styles/glass-refract.css +96 -44
  320. package/dist/styles/glass-specular-track.css +7 -0
  321. package/dist/styles/glass.css +8 -2
  322. package/dist/styles/hover-popover.css +7 -6
  323. package/dist/styles/icon-chip.css +211 -0
  324. package/dist/styles/index.css +78 -4
  325. package/dist/styles/instrument-chassis.css +107 -2
  326. package/dist/styles/menu.css +127 -0
  327. package/dist/styles/scroll-choreography.css +300 -0
  328. package/dist/styles/segmented-tabs.css +188 -86
  329. package/dist/styles/select.css +50 -0
  330. package/dist/styles/theme/bridges.css +22 -1
  331. package/dist/styles/theme/literals.css +11 -2
  332. package/dist/styles/theme/radius.css +6 -1
  333. package/dist/styles/tokens/color-radius.css +40 -13
  334. package/dist/styles/tokens/dark-arm.css +200 -20
  335. package/dist/styles/tokens/glass-deep.css +75 -0
  336. package/dist/styles/tokens/glass-fx.css +333 -0
  337. package/dist/styles/tokens/glass.css +95 -315
  338. package/dist/styles/tokens/light-dark.css +64 -22
  339. package/dist/styles/tokens/offsets.css +116 -0
  340. package/dist/styles/tokens/on-glass-fg.css +39 -0
  341. package/dist/styles/tokens/property-regs.css +130 -10
  342. package/dist/styles/tokens/scale-paper.css +155 -84
  343. package/dist/styles/tokens/scheme-motion.css +102 -46
  344. package/dist/styles/tokens/scroll-tokens.css +123 -0
  345. package/dist/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
  346. package/dist/styles/tokens.css +9 -3
  347. package/dist/styles/transitions.css +7 -7
  348. package/dist/styles/typography/scale.css +153 -0
  349. package/dist/styles/typography/semantic.css +220 -0
  350. package/dist/styles/typography/utilities.css +174 -0
  351. package/dist/styles/typography.css +23 -507
  352. package/dist/styles/utilities/a11y-overrides.css +33 -4
  353. package/dist/styles/utilities/animate.css +27 -24
  354. package/dist/styles/utilities/base-misc.css +255 -0
  355. package/dist/styles/utilities/base.css +100 -138
  356. package/dist/styles/utilities/btn.css +21 -202
  357. package/dist/styles/utilities/metal.css +189 -0
  358. package/dist/styles/utilities.css +14 -7
  359. package/dist/styles/view-transition.css +4 -1
  360. package/dist/switch.js +1 -1
  361. package/dist/tabs.js +275 -191
  362. package/dist/timeline.js +2 -2
  363. package/dist/toast.js +1 -1
  364. package/dist/toggle-chip.js +3 -1
  365. package/dist/toggle-group.js +1 -1
  366. package/dist/tooltip.js +1 -1
  367. package/dist/typewriter.js +1 -1
  368. package/dist/{useAnimatedNumber-C5I3wWd8.js → useAnimatedNumber-BfUq2bUM.js} +1 -1
  369. package/dist/useCanvas2D-B8w_E3Rr.js +83 -0
  370. package/dist/useConfiguratorState-DNlOh6c8.js +161 -0
  371. package/dist/useDragMorph-DgxnsVJz.js +102 -0
  372. package/dist/{useGlobalDark-yhL4Wp-s.js → useGlobalDark-C28t0VWJ.js} +22 -3
  373. package/dist/useLiquidPress-kfb4KX79.js +39 -0
  374. package/dist/usePointerVelocityField-JbRd5CrM.js +137 -0
  375. package/dist/{useRAFLoop-Bxv0o6L5.js → useRAFLoop-UYa4zoiN.js} +1 -1
  376. package/dist/useSpring-C0jyvEJB.js +40 -0
  377. package/dist/useSpringMount-q1amq1SJ.js +71 -0
  378. package/dist/useSpringPress-BsqPr7FJ.js +34 -0
  379. package/dist/useSurfaceAxis-g0NloYEF.js +7 -0
  380. package/dist/{useTouchGate-Dg7MQI1G.js → useTouchGate-CBZTD4SD.js} +1 -1
  381. package/dist/vReveal-Czsb7zQC.js +10 -0
  382. package/dist/vSpecular-CQFmLNzA.js +68 -0
  383. package/dist/vendor-CKmzio-i.js +226 -0
  384. package/dist/watercolor-dot.js +12 -5
  385. package/package.json +193 -25
  386. package/src/styles/animations.css +40 -31
  387. package/src/styles/border-progress.css +109 -0
  388. package/src/styles/cards.css +76 -0
  389. package/src/styles/configurator.css +35 -0
  390. package/src/styles/critical-partition.mjs +140 -0
  391. package/src/styles/dock/density.css +64 -0
  392. package/src/styles/dock/layers.css +54 -30
  393. package/src/styles/dock/morph.css +124 -7
  394. package/src/styles/dock/overflow.css +31 -2
  395. package/src/styles/dock/rail-extend.css +168 -71
  396. package/src/styles/dock/section.css +59 -0
  397. package/src/styles/dock/shell.css +83 -16
  398. package/src/styles/dock-controls/icon-button.css +11 -1
  399. package/src/styles/dock-controls/tab-button.css +24 -83
  400. package/src/styles/dock-controls/triggers.css +7 -0
  401. package/src/styles/dock.css +38 -3
  402. package/src/styles/drawer.css +123 -35
  403. package/src/styles/feedback-tone.css +104 -0
  404. package/src/styles/glass/deep.css +44 -0
  405. package/src/styles/glass/ladder.css +154 -52
  406. package/src/styles/glass/material.css +78 -15
  407. package/src/styles/glass/reveal.css +136 -0
  408. package/src/styles/glass/rim.css +100 -0
  409. package/src/styles/glass/surface-axis.css +113 -0
  410. package/src/styles/glass/surfaces.css +189 -15
  411. package/src/styles/glass-refract.css +96 -44
  412. package/src/styles/glass-specular-track.css +7 -0
  413. package/src/styles/glass.css +8 -2
  414. package/src/styles/hover-popover.css +7 -6
  415. package/src/styles/icon-chip.css +211 -0
  416. package/src/styles/index.css +78 -4
  417. package/src/styles/instrument-chassis.css +107 -2
  418. package/src/styles/menu.css +127 -0
  419. package/src/styles/scroll-choreography.css +300 -0
  420. package/src/styles/segmented-tabs.css +184 -84
  421. package/src/styles/select.css +50 -0
  422. package/src/styles/theme/bridges.css +22 -1
  423. package/src/styles/theme/literals.css +11 -2
  424. package/src/styles/theme/radius.css +6 -1
  425. package/src/styles/tokens/color-radius.css +40 -13
  426. package/src/styles/tokens/dark-arm.css +200 -20
  427. package/src/styles/tokens/glass-deep.css +75 -0
  428. package/src/styles/tokens/glass-fx.css +333 -0
  429. package/src/styles/tokens/glass.css +95 -315
  430. package/src/styles/tokens/light-dark.css +64 -22
  431. package/src/styles/tokens/offsets.css +116 -0
  432. package/src/styles/tokens/on-glass-fg.css +39 -0
  433. package/src/styles/tokens/property-regs.css +130 -10
  434. package/src/styles/tokens/scale-paper.css +155 -84
  435. package/src/styles/tokens/scheme-motion.css +102 -46
  436. package/src/styles/tokens/scroll-tokens.css +123 -0
  437. package/src/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
  438. package/src/styles/tokens.css +9 -3
  439. package/src/styles/transitions.css +7 -7
  440. package/src/styles/typography/scale.css +153 -0
  441. package/src/styles/typography/semantic.css +220 -0
  442. package/src/styles/typography/utilities.css +174 -0
  443. package/src/styles/typography.css +23 -507
  444. package/src/styles/utilities/a11y-overrides.css +33 -4
  445. package/src/styles/utilities/animate.css +27 -24
  446. package/src/styles/utilities/base-misc.css +255 -0
  447. package/src/styles/utilities/base.css +100 -138
  448. package/src/styles/utilities/btn.css +21 -202
  449. package/src/styles/utilities/metal.css +189 -0
  450. package/src/styles/utilities.css +14 -7
  451. package/src/styles/view-transition.css +4 -1
  452. package/dist/CardAction-Cj2eycQ2.js +0 -157
  453. package/dist/DialogContent-Dl9WkAoS.js +0 -100
  454. package/dist/Notification-DdwNxIrI.js +0 -100
  455. package/dist/NumberFieldContent-CqaN-SvN.js +0 -145
  456. package/dist/PopoverContent-BYwt2-4x.js +0 -121
  457. package/dist/TabsList-Dttss653.js +0 -105
  458. package/dist/Toaster-D6q4HtXu.js +0 -263
  459. package/dist/button-ChXMfsud.js +0 -81
  460. package/dist/check-njhk-vfu.js +0 -7
  461. package/dist/chevron-down-DKkxb4VV.js +0 -7
  462. package/dist/chevron-right-CPXbqQQz.js +0 -7
  463. package/dist/chevron-up-n_24SqI-.js +0 -7
  464. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +0 -84
  465. package/dist/components/custom/underline/index.d.ts +0 -2
  466. package/dist/components/custom/underline/types.d.ts +0 -56
  467. package/dist/components/ui/carousel/CarouselDots.vue.d.ts +0 -4
  468. package/dist/createLucideIcon-DydS2qgk.js +0 -43
  469. package/dist/minimize-2-BV31Ob_h.js +0 -38
  470. package/dist/search-BSGrf2Sk.js +0 -12
  471. package/dist/sheet-1fChZjtw.js +0 -214
  472. package/dist/underline.d.ts +0 -1
  473. package/dist/underline.js +0 -85
  474. package/dist/useCanvas2D-ClrQuZtp.js +0 -96
  475. package/dist/useConfiguratorState-DAoeHVue.js +0 -287
  476. package/dist/useSpecularTracking-Bo5su68i.js +0 -32
  477. package/dist/useSpringMount-CI2jOstM.js +0 -108
  478. package/dist/vReveal-CqaCz_mC.js +0 -44
  479. package/dist/x-BUwTKe50.js +0 -10
  480. /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-68dEXIAl.js} +0 -0
  481. /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-Bx0F_q5g.js} +0 -0
  482. /package/dist/{Label-r3WzWrsj.js → Label-C2ejNWeC.js} +0 -0
  483. /package/dist/{ModalOverlay-DVLI2VRr.js → ModalOverlay-D1VrWyoi.js} +0 -0
  484. /package/dist/{PaperBackdrop-DIXTtVq6.js → PaperBackdrop-Vf3tlpvd.js} +0 -0
  485. /package/dist/{SelectGroup-aumMgWLs.js → SelectGroup-DwwjicPY.js} +0 -0
  486. /package/dist/{SelectSeparator-BQ_1Fcbp.js → SelectSeparator-DXswVdRz.js} +0 -0
  487. /package/dist/{Separator-0JE6LtNu.js → Separator-pKF0oA4M.js} +0 -0
  488. /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
  489. /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
  490. /package/dist/{color-CUYeFbgd.js → color-DweYl7pE.js} +0 -0
  491. /package/dist/{constants-CS75AWHG.js → constants-BPOqYJAm.js} +0 -0
  492. /package/dist/{createContext-BM46COQ-.js → createContext-CpBNTRMI.js} +0 -0
  493. /package/dist/{prng-D27-B3tK.js → prng-Za0Rmgag.js} +0 -0
  494. /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CUyHr5Uu.js} +0 -0
  495. /package/dist/{springPresets--YdWTHtm.js → springPresets-CFQGQfdl.js} +0 -0
  496. /package/dist/{useIntersectionPause-Cc-H9ees.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
  497. /package/dist/{useInterval-iHludrxk.js → useInterval-CvK1mL92.js} +0 -0
  498. /package/dist/{useKeyboardShortcuts-Be3w_Rwk.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
  499. /package/dist/{useLiquidFlex-BL0lLLN2.js → useLiquidFlex-mZPMiNXh.js} +0 -0
  500. /package/dist/{useResizeObserver-BhgdhOIj.js → useResizeObserver-Bpoi7tRE.js} +0 -0
  501. /package/dist/{useResolveTokenColor-Dvn2RZJW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
  502. /package/dist/{useScrollProgress-Dlvx-L3v.js → useScrollProgress-D7bYU2RK.js} +0 -0
  503. /package/dist/{useSortable-muI29agz.js → useSortable-DHjtZSEd.js} +0 -0
  504. /package/dist/{useTextHighlight-DmRYkOBx.js → useTextHighlight-CWEi25hf.js} +0 -0
  505. /package/dist/{useTimer-Dzarvzuk.js → useTimer-BHJOKr35.js} +0 -0
  506. /package/dist/{useUserInvalidAria-B2h6jAM_.js → useUserInvalidAria-y5namzeE.js} +0 -0
  507. /package/dist/{useViewportReady-B40FK4Pa.js → useViewportReady-anbac3m6.js} +0 -0
@@ -11,8 +11,13 @@ import { type PrimitiveProps } from "reka-ui";
11
11
  * overlay — heaviest (~0.95α + blur) : modal-on-modal, dialog over content
12
12
  * opaque — `--glass-level:0` escape : the solid-card opt-out (AX.W54), maps to
13
13
  * `.glass-opaque` through the same `glass-${tier}` rung as the rest
14
+ * deep — `--glass-blur-deep-*` OPT-IN : the maximal iOS-27 Liquid-Glass tier
15
+ * ABOVE the W-GLASS-CAL calm default (Apple saturate-1.5/blur-16px),
16
+ * maps to `.glass-floating glass-deep` (a base rung + the deep
17
+ * decoration, mirroring opaque) — the hero glass / CTA register
18
+ * (BB.W-DEEP-GLASS). The calm content default is byte-unchanged.
14
19
  */
15
- export type CardTier = "wash" | "quiet" | "resting" | "floating" | "overlay" | "opaque";
20
+ export type CardTier = "wash" | "quiet" | "resting" | "floating" | "overlay" | "opaque" | "deep";
16
21
  /**
17
22
  * Surface decoration register — orthogonal to `tier`/`shadow`/`grain`.
18
23
  *
@@ -62,6 +67,15 @@ interface Props extends PrimitiveProps {
62
67
  /** `::after` paper-grain overlay. Off for scroll panes (the grain conflicts
63
68
  * with overflow:auto repaints). */
64
69
  grain?: boolean;
70
+ /** BB.W-PAPER-GRID-TEXTURE — the GEOMETRIC paper register: a `::after`
71
+ * blueprint/graph-paper grid felt THROUGH the card interior (the math/grid
72
+ * brand pillar, read through the plate rather than only in the page
73
+ * margin). Default **OFF** — a bare card is byte-identical to HEAD; a
74
+ * document-register card opts in. ORTHOGONAL to `grain` (organic) — a card
75
+ * may carry BOTH the turbulence grain and the geometric grid. The register
76
+ * doctrine (paper-register cards opt in, instrument-glass surfaces do NOT)
77
+ * is a CONSUMER choice the default-OFF honors by construction. */
78
+ grid?: boolean;
65
79
  /** Specular catch-light register (AX.W09). `off` (default) keeps the card
66
80
  * CLEAN — no pointer-anchored lens, clean over any backplate (the §24
67
81
  * three-consumer-confirmed default for a data/content card). `subtle` wakes
@@ -69,19 +83,35 @@ interface Props extends PrimitiveProps {
69
83
  * hero/chrome opt-in); `full` runs the brighter pre-tune rung set for a busy
70
84
  * backdrop. Only `glass` surfaces wire it; `cartoon` owns its own sticker lift. */
71
85
  specular?: CardSpecular;
86
+ /** BB.W-PRESS-UNIFY — the interactive PRESS register, default **OFF**. A bare
87
+ * Card is a static content PLATE and never presses (a press on a static surface
88
+ * is the visual-load-bearing anti-pattern). A `:pressable` Card is a TAPPABLE
89
+ * LIST-CARD (a selectable result row, a navigable tile) — it gains the ONE
90
+ * interruptible coupled spring-press (`useLiquidPress`): the reciprocal X/Y squish
91
+ * + a sub-perceptual brightness lift on the `--card-press-t` drive, on the
92
+ * `--spring-snappy`-class clock, INTERRUPTIBLE (a rapid re-tap re-seats the spring
93
+ * velocity-continuously), PRM-instant (the press snaps with zero in-between
94
+ * frames). Card is the SECOND binary the dead `useSpringPress` primitive reaches
95
+ * (Button is the first — direct; Card via `useLiquidPress` which composes it — the
96
+ * J-inv-10 ≥2-consumer bar met; the dock control is the booked third). The press is
97
+ * compositor-only (`scale` + a custom property); the `.glass-press` CSS `:active`
98
+ * scale is the no-JS / SSR floor. */
99
+ pressable?: boolean;
72
100
  class?: HTMLAttributes["class"];
73
101
  }
74
- declare var __VLS_10: {};
102
+ declare var __VLS_13: {};
75
103
  type __VLS_Slots = {} & {
76
- default?: (props: typeof __VLS_10) => any;
104
+ default?: (props: typeof __VLS_13) => any;
77
105
  };
78
106
  declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
79
107
  shadow: boolean;
108
+ grid: boolean;
109
+ surface: CardSurface;
80
110
  as: import("reka-ui").AsTag | import("vue").Component;
81
111
  tier: CardTier;
82
- surface: CardSurface;
83
112
  grain: boolean;
84
113
  specular: CardSpecular;
114
+ pressable: boolean;
85
115
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
86
116
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
87
117
  declare const _default: typeof __VLS_export;
@@ -5,30 +5,56 @@ import type { HTMLAttributes } from 'vue';
5
5
  * AI.W1-α additive `shrink` modifier — when true, the header binds to the
6
6
  * `--card-scroll` named scroll-timeline (emitted by the canonical
7
7
  * `.card-scroll-host` utility on a scroll-overflow ancestor) and runs a
8
- * 3-lane choreography as the host scrolls:
8
+ * 3-lane choreography as the host scrolls. The 3 lanes are now
9
+ * COMPOSITOR-SAFE (transform/opacity only — BB.W-CARD-COMPOSITE) so ZERO
10
+ * reflow fires per scroll frame (the A'-3 CLS 1.03 worst-cluster killed):
9
11
  *
10
- * 1. Header padding shrink (0..120px scroll range) — top/bottom padding
11
- * collapses from 1rem/0.5rem to 0.5rem/0.25rem.
12
- * 2. Title font-size shrink (0..120px) — `[data-slot="card-title"]`
13
- * glyph scales from `--type-heading` down to `--type-prose`.
14
- * 3. Description grid-row collapse (0..80px, faster fade) —
15
- * `[data-slot="card-description"]` collapses its 1fr → 0fr grid
16
- * row while fading opacity → 0; the slot retires entirely past the
17
- * 80px boundary, freeing vertical real estate for the body.
12
+ * 1. Header content compress (0..120px scroll range) — the header content
13
+ * slides up via `transform: translateY` as the host scrolls so the top
14
+ * breathing room visually compresses; the header box keeps its layout
15
+ * size (no padding reflow). The visual gestalt — ~0.5rem of top space
16
+ * collapses — reads identically.
17
+ * 2. Title shrink (0..120px) — `[data-slot="card-title"]` scales DOWN via
18
+ * `transform: scale(--card-title-shrink-ratio)` (origin: leading edge),
19
+ * so the glyph visually shrinks from `--type-heading` to roughly
20
+ * `--type-prose` while the text run lays out ONCE (no per-frame
21
+ * `font-size` text re-measure — the worst reflow lane, killed).
22
+ * 3. Description retire (0..80px, faster fade) —
23
+ * `[data-slot="card-description"]` fades `opacity: 1 → 0` AND collapses
24
+ * `transform: scaleY(1 → 0)` (origin: top) so the slot visually retires
25
+ * upward; the real-estate reclaim is the composited scaleY, NOT a
26
+ * `grid-template-rows` relayout.
27
+ * 4. Header background lift (0..120px — BB.W-SCROLL-CARD) — a `::before`
28
+ * BACKPLATE carrying the `--card-header-bg` tint fades `opacity: 0 → 1`
29
+ * on the same timeline, so a stuck header reads transparent over the
30
+ * body at scroll-top and lifts to the painted tint as it sticks. The
31
+ * opacity channel keeps the lift compositor-safe.
18
32
  *
19
- * The choreography migrates verbatim from value.js's `PaneHeader.vue`
20
- * (the load-bearing pane-scroll-fade pattern that ran across the 9 panes)
21
- * — same `--card-scroll` timeline, same `0..120px` / `0..80px` ranges,
22
- * same animation keyframes (renamed `pane-*` → `card-*`).
33
+ * BB.W-SCROLL-CARD — the two text lanes (2 + 3) re-target via `:slotted()`
34
+ * (the precise Vue scoped-CSS slotted-content selector, the MetricRow.vue
35
+ * idiom) so they MATCH a consumer-SLOTTED <CardTitle>/<CardDescription>; the
36
+ * prior `:deep()` enabler was the W-CARD-COMPOSITE minimal stopgap, replaced
37
+ * here by the precise tool (no descendant-leak sledgehammer).
38
+ *
39
+ * The choreography ORIGINALLY migrated verbatim from value.js's
40
+ * `PaneHeader.vue`, which animated LAYOUT properties (padding/font-size/
41
+ * grid-template-rows/margin) — a per-scroll-frame reflow storm (CLS 1.03,
42
+ * the A'-3 P0 that shipped at 4.0.0). BB.W-CARD-COMPOSITE re-expresses each
43
+ * lane as the compositor-transform equivalent the house already speaks
44
+ * (the `scroll-driven.css` scaleX/translateY/opacity idiom) — the visual
45
+ * choreography is IDENTICAL; only the mechanism changed. The
46
+ * `proof:no-layout-animation` gate makes the layout-property class
47
+ * structurally impossible to re-ship.
23
48
  *
24
49
  * **Required ancestor**: when `shrink` is true, `.card-scroll-host` MUST
25
50
  * sit on the scroll-overflow ancestor (typically the same `<Card>` host's
26
51
  * scroll wrapper). Without that host the named timeline never emits and
27
52
  * the choreography sits idle. Documented in DESIGN.md `## Card` section.
28
53
  *
29
- * Sticky positioning + background tint stay consumer-side (the consumer
30
- * adds `class="sticky top-0 backdrop-blur-md"` etc. via `props.class`);
31
- * `--card-header-bg` is the canonical tint token for that backdrop.
54
+ * Sticky positioning stays consumer-side (the consumer adds
55
+ * `class="sticky top-0 backdrop-blur-md"` etc. via `props.class`); the
56
+ * background TINT is now scroll-driven by lane 4 (the `::before` backplate),
57
+ * reading `--card-header-bg` as the canonical tint token.
32
58
  */
33
59
  type __VLS_Props = {
34
60
  /**
@@ -0,0 +1,33 @@
1
+ import type { HTMLAttributes } from "vue";
2
+ import type { CardTier, CardSurface, CardSpecular } from "./Card.vue";
3
+ /** Props for `<ScrollCard>` — the first-class scroll-shrink card. */
4
+ export interface ScrollCardProps {
5
+ /** Card surface tier — forwarded to the inner `<Card>`. Default `resting`. */
6
+ tier?: CardTier;
7
+ /** Surface decoration register — forwarded to `<Card>`. Default `glass`. */
8
+ surface?: CardSurface;
9
+ /** Surface drop shadow — forwarded to `<Card>`. Default `true`. */
10
+ shadow?: boolean;
11
+ /** Specular catch-light — forwarded to `<Card>`. Default `off`. */
12
+ specular?: CardSpecular;
13
+ /** Max scroll-port height. The scroll region needs a bounded height for
14
+ * the `--card-scroll` timeline to have a scroll range. Default `18rem`. */
15
+ maxHeight?: string;
16
+ class?: HTMLAttributes["class"];
17
+ }
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
20
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ScrollCardProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ScrollCardProps> & Readonly<{}>, {
21
+ shadow: boolean;
22
+ maxHeight: string;
23
+ surface: CardSurface;
24
+ tier: CardTier;
25
+ specular: CardSpecular;
26
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
27
+ default?: (props: {}) => any;
28
+ }>;
29
+ type __VLS_WithSlots<T, S> = T & {
30
+ new (): {
31
+ $slots: S;
32
+ };
33
+ };
@@ -0,0 +1,17 @@
1
+ import type { HTMLAttributes } from "vue";
2
+ /** Props for `<ScrollCardHeader>` — the larger-header-items scroll-shrink header. */
3
+ export interface ScrollCardHeaderProps {
4
+ /** A consumer that wants the header NOT pinned passes `:sticky="false"`. */
5
+ sticky?: boolean;
6
+ class?: HTMLAttributes["class"];
7
+ }
8
+ declare const _default: typeof __VLS_export;
9
+ export default _default;
10
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ScrollCardHeaderProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ScrollCardHeaderProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
11
+ default?: (props: {}) => any;
12
+ }>;
13
+ type __VLS_WithSlots<T, S> = T & {
14
+ new (): {
15
+ $slots: S;
16
+ };
17
+ };
@@ -1,5 +1,7 @@
1
1
  export { default as Card, type CardTier, type CardSurface, type CardSpecular, } from "./Card.vue";
2
2
  export { default as CardHeader } from "./CardHeader.vue";
3
+ export { default as ScrollCard, type ScrollCardProps } from "./ScrollCard.vue";
4
+ export { default as ScrollCardHeader, type ScrollCardHeaderProps, } from "./ScrollCardHeader.vue";
3
5
  export { default as CardTitle } from "./CardTitle.vue";
4
6
  export { default as CardDescription } from "./CardDescription.vue";
5
7
  export { default as CardContent } from "./CardContent.vue";
@@ -9,8 +9,8 @@ type __VLS_Slots = {} & {
9
9
  default?: (props: typeof __VLS_10) => any;
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
- size: "default" | "xs" | "sm" | "lg" | "icon" | "icon-sm" | null;
13
- variant: "link" | "default" | "solid" | "primary-audacious" | "gold-audacious" | "destructive" | "outline" | "secondary" | "accent" | "ghost" | "glass" | "glass-wash" | "ai" | null;
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;
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;
@@ -9,8 +9,8 @@ type __VLS_Slots = {} & {
9
9
  default?: (props: typeof __VLS_10) => any;
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
- size: "default" | "xs" | "sm" | "lg" | "icon" | "icon-sm" | null;
13
- variant: "link" | "default" | "solid" | "primary-audacious" | "gold-audacious" | "destructive" | "outline" | "secondary" | "accent" | "ghost" | "glass" | "glass-wash" | "ai" | null;
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;
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;
@@ -29,12 +29,12 @@ type __VLS_Slots = {} & {
29
29
  };
30
30
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
31
31
  select: (index: number) => any;
32
- prev: () => any;
33
32
  next: () => any;
33
+ prev: () => any;
34
34
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
35
35
  onSelect?: ((index: number) => any) | undefined;
36
- onPrev?: (() => any) | undefined;
37
36
  onNext?: (() => any) | undefined;
37
+ onPrev?: (() => any) | undefined;
38
38
  }>, {
39
39
  loop: boolean;
40
40
  orientation: "horizontal" | "vertical";
@@ -1,6 +1,5 @@
1
1
  export { default as Carousel } from './Carousel.vue';
2
2
  export { default as CarouselContent } from './CarouselContent.vue';
3
- export { default as CarouselDots } from './CarouselDots.vue';
4
3
  export { default as CarouselItem } from './CarouselItem.vue';
5
4
  export { default as CarouselNext } from './CarouselNext.vue';
6
5
  export { default as CarouselPager } from './CarouselPager.vue';
@@ -1,7 +1,9 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import type { ComboboxRootProps } from 'reka-ui';
3
+ import { type Surface } from '../_shared/useSurfaceAxis';
3
4
  type __VLS_Props = ComboboxRootProps & {
4
5
  class?: HTMLAttributes['class'];
6
+ surface?: Surface;
5
7
  };
6
8
  declare var __VLS_8: {};
7
9
  type __VLS_Slots = {} & {
@@ -22,8 +24,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
22
24
  } | undefined) => any) | undefined;
23
25
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
24
26
  }>, {
25
- modelValue: import("reka-ui").AcceptableValue | import("reka-ui").AcceptableValue[];
26
27
  open: boolean;
28
+ surface: Surface;
29
+ modelValue: import("reka-ui").AcceptableValue | import("reka-ui").AcceptableValue[];
27
30
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
31
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
29
32
  declare const _default: typeof __VLS_export;
@@ -1,10 +1,15 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import { type DialogContentProps } from 'reka-ui';
3
3
  import { type SpringPreset } from '../../../composables/motion/useSpringMount';
4
+ import { type Surface } from '../_shared/useSurfaceAxis';
4
5
  type __VLS_Props = DialogContentProps & {
5
6
  class?: HTMLAttributes['class'];
6
- /** Visual variant: "glass" (translucent blur, default) or "opaque" (solid background). */
7
- variant?: 'glass' | 'opaque';
7
+ /** Surface decoration register (BA.W-SURFACE-AXIS) — the SHARED
8
+ * {glass·veil·opaque} axis. `glass` (translucent blur, default) renders the
9
+ * floating glass tier; `veil` overlays the borderless/rimless text-legibility
10
+ * plate; `opaque` sets `--glass-level:0` (the solid-card escape). Replaces the
11
+ * retired binary `variant: glass|opaque` (clean break). */
12
+ surface?: Surface;
8
13
  /**
9
14
  * Optional CSS `animation` shorthand forwarded to the portaled scrim
10
15
  * via the `--scrim-animation` typed cascade variable. reka-ui's
@@ -66,7 +71,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
66
71
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
67
72
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
68
73
  }>, {
69
- variant: "glass" | "opaque";
74
+ surface: Surface;
70
75
  showClose: boolean;
71
76
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
72
77
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,48 +1,61 @@
1
- import type { DrawerRootProps } from 'vaul-vue';
2
- import type { DrawerMode } from './index';
1
+ import type { DrawerDirection, DrawerMode } from './index';
3
2
  /**
4
- * `mode` — additive shorthand (AN.W3). `"modal"` (default) keeps the iOS
5
- * scale-down look: `shouldScaleBackground: true`, `modal: true`. `"live-behind"`
6
- * bundles the non-modal peek/half/full bottom-sheet contract — `modal: false`
7
- * (no focus trap, no page `aria-hidden`, page-behind stays interactive),
8
- * `shouldScaleBackground: false` (page-behind stays at native size), and the
9
- * default `snapPoints: [0.12, 0.5, 1]` detent ladder. Every prop the mode sets
10
- * is still overridable by an explicit prop — `mode` only supplies defaults.
3
+ * BB.W-DRAWER-ABROGATE — the Drawer root on the HOUSE reka `DialogRoot` substrate
4
+ * (the SAME shape `Dialog.vue` binds). vaul-vue is gone: reka owns the open-control,
5
+ * the portal, the focus management (trap when `modal`, free when `live-behind`) and
6
+ * the scrim; the house `useDrawerSnap` engine (provided here, bound in DrawerContent)
7
+ * owns the snap math vaul used to own.
11
8
  *
12
- * NOTE: we do NOT route through `useForwardPropsEmits` here. That helper
13
- * reflects only props the parent vnode actually passed (plus component-declared
14
- * defaults), so the values our `resolved` computed derives for keys the consumer
15
- * did NOT pass (e.g. `modal:false` under `mode="live-behind"`) would be dropped.
16
- * Binding `resolved` directly + merging emit-as-props is the correct shape for a
17
- * computed-default wrapper.
9
+ * `mode` — additive shorthand (AN.W3). `"modal"` (default) keeps the iOS scale-down
10
+ * look: `modal: true` (reka focus-traps + page-occludes). `"live-behind"` is the
11
+ * non-modal peek/half/full bottom sheet — `modal: false` (no focus trap, no page
12
+ * `aria-hidden`, page-behind stays interactive — reka delivers this natively),
13
+ * `shouldScaleBackground: false`, and the direction-derived snap ladder. Every prop
14
+ * the mode sets is still overridable by an explicit prop — `mode` only supplies
15
+ * defaults.
16
+ *
17
+ * The snap props (`snapPoints`/`activeSnapPoint`/`direction`/`shouldScaleBackground`)
18
+ * are HOUSE props now (they were vaul's `DrawerRootProps` surface — preserved by
19
+ * shape so the consumer binding is byte-identical, but resolved by the house engine,
20
+ * not forwarded to reka, which knows only `open`/`defaultOpen`/`modal`).
18
21
  */
19
- type __VLS_Props = DrawerRootProps & {
22
+ type __VLS_Props = {
23
+ /** The controlled open state (`v-model:open`). */
24
+ open?: boolean;
25
+ /** Initial open state for the uncontrolled case. */
26
+ defaultOpen?: boolean;
27
+ /** reka modality — defaulted by `mode`; an explicit value overrides. */
28
+ modal?: boolean;
29
+ /** Presentation mode shorthand. */
20
30
  mode?: DrawerMode;
31
+ /** The detent ladder (fractions 0..1). When omitted, resolved from `direction` (BB-2). */
32
+ snapPoints?: (number | string)[];
33
+ /** The active detent fraction (`v-model:active-snap-point`). */
34
+ activeSnapPoint?: number | string | null;
35
+ /** Drag/slide axis (BB-2 default-ladder source). */
36
+ direction?: DrawerDirection;
37
+ /** iOS page scale-down on open (the modal look). Defaulted by `mode`. */
38
+ shouldScaleBackground?: boolean;
21
39
  };
22
- declare var __VLS_8: {};
40
+ declare var __VLS_10: {};
23
41
  type __VLS_Slots = {} & {
24
- default?: (props: typeof __VLS_8) => any;
42
+ default?: (props: typeof __VLS_10) => any;
25
43
  };
26
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
27
- "update:open": (open: boolean) => any;
28
- close: () => any;
29
- drag: (percentageDragged: number) => any;
30
- animationEnd: (open: boolean) => any;
31
- release: (open: boolean) => any;
32
- "update:activeSnapPoint": (val: string | number) => any;
44
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
45
+ "update:open": (value: boolean) => any;
46
+ "update:activeSnapPoint": (value: string | number | null) => any;
33
47
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
34
- "onUpdate:open"?: ((open: boolean) => any) | undefined;
35
- onClose?: (() => any) | undefined;
36
- onDrag?: ((percentageDragged: number) => any) | undefined;
37
- onAnimationEnd?: ((open: boolean) => any) | undefined;
38
- onRelease?: ((open: boolean) => any) | undefined;
39
- "onUpdate:activeSnapPoint"?: ((val: string | number) => any) | undefined;
48
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
49
+ "onUpdate:activeSnapPoint"?: ((value: string | number | null) => any) | undefined;
40
50
  }>, {
41
- mode: DrawerMode;
51
+ direction: DrawerDirection;
42
52
  open: boolean;
53
+ mode: DrawerMode;
54
+ defaultOpen: boolean;
43
55
  modal: boolean;
44
- shouldScaleBackground: boolean;
45
56
  snapPoints: (number | string)[];
57
+ activeSnapPoint: number | string | null;
58
+ shouldScaleBackground: boolean;
46
59
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
47
60
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
48
61
  declare const _default: typeof __VLS_export;
@@ -1,16 +1,19 @@
1
- import type { DialogContentProps } from 'reka-ui';
2
- import type { HtmlHTMLAttributes } from 'vue';
1
+ import { type HtmlHTMLAttributes } from 'vue';
2
+ import { type DialogContentProps } from 'reka-ui';
3
+ import { type Surface } from '../_shared/useSurfaceAxis';
3
4
  /**
4
- * `showOverlay` — render the scrim (AN.W3). Defaults `true` for the modal
5
- * sheet. The live-behind pattern (`<Drawer mode="live-behind">`) passes
6
- * `:show-overlay="false"` so the page-behind stays visible AND interactive;
7
- * vaul-vue's `modal:false` already drops `disableOutsidePointerEvents`, but a
8
- * painted scrim would still visually occlude the live verdict, so the overlay
9
- * is opt-out at the content level.
5
+ * `showOverlay` — render the scrim (AN.W3). Defaults `true` for the modal sheet. The
6
+ * live-behind pattern (`<Drawer mode="live-behind">`) passes `:show-overlay="false"`
7
+ * so the page-behind stays visible AND interactive; reka's `:modal="false"` already
8
+ * drops outside-pointer-capture + the focus trap, but a painted scrim would still
9
+ * visually occlude the live surface, so the overlay is opt-out at the content level.
10
10
  */
11
11
  type __VLS_Props = DialogContentProps & {
12
12
  class?: HtmlHTMLAttributes['class'];
13
13
  showOverlay?: boolean;
14
+ /** Surface decoration register (BA.W-SURFACE-AXIS) — the SHARED
15
+ * {glass·veil·opaque} axis on top of the `.glass-drawer` recipe. */
16
+ surface?: Surface;
14
17
  };
15
18
  declare var __VLS_19: {};
16
19
  type __VLS_Slots = {} & {
@@ -31,6 +34,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
31
34
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
32
35
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
33
36
  }>, {
37
+ surface: Surface;
34
38
  showOverlay: boolean;
35
39
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
36
40
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,6 +1,6 @@
1
- import type { DrawerDescriptionProps } from 'vaul-vue';
1
+ import { type DialogDescriptionProps } from 'reka-ui';
2
2
  import { type HtmlHTMLAttributes } from 'vue';
3
- type __VLS_Props = DrawerDescriptionProps & {
3
+ type __VLS_Props = DialogDescriptionProps & {
4
4
  class?: HtmlHTMLAttributes['class'];
5
5
  };
6
6
  declare var __VLS_8: {};
@@ -1,4 +1,4 @@
1
- import type { DialogOverlayProps } from 'reka-ui';
1
+ import { type DialogOverlayProps } from 'reka-ui';
2
2
  import { type HtmlHTMLAttributes } from 'vue';
3
3
  type __VLS_Props = DialogOverlayProps & {
4
4
  class?: HtmlHTMLAttributes['class'];
@@ -1,6 +1,6 @@
1
- import type { DrawerTitleProps } from 'vaul-vue';
1
+ import { type DialogTitleProps } from 'reka-ui';
2
2
  import { type HtmlHTMLAttributes } from 'vue';
3
- type __VLS_Props = DrawerTitleProps & {
3
+ type __VLS_Props = DialogTitleProps & {
4
4
  class?: HtmlHTMLAttributes['class'];
5
5
  };
6
6
  declare var __VLS_8: {};
@@ -0,0 +1,26 @@
1
+ import type { Ref } from "vue";
2
+ import type { DrawerDirection } from "../index";
3
+ /**
4
+ * The snap seam the root provides + the content consumes. The root resolves the
5
+ * effective ladder (consumer `snapPoints` ?? the direction-derived default) + the
6
+ * direction; the content binds the drag gesture against it. The read-only refs
7
+ * (`snapPoints`/`direction`) are root-derived computeds; `open`/`activeSnapPoint`
8
+ * are writable so the engine round-trips the open-control + the snap-fraction.
9
+ */
10
+ export interface DrawerSnapContext {
11
+ /** The drawer's open state (mirrors the reka root's `v-model:open`). */
12
+ open: Ref<boolean>;
13
+ /** The resolved detent ladder (fractions 0..1; empty = full-slide side-lens). */
14
+ snapPoints: Readonly<Ref<readonly number[]>>;
15
+ /** The drag/slide axis. */
16
+ direction: Readonly<Ref<DrawerDirection>>;
17
+ /** The live active detent fraction (the `v-model:active-snap-point` writeback). */
18
+ activeSnapPoint: Ref<number | string | null>;
19
+ }
20
+ export declare const DRAWER_SNAP_KEY: import("vue").InjectionKey<DrawerSnapContext>;
21
+ export declare function provideDrawerSnapContext(context: DrawerSnapContext): void;
22
+ /**
23
+ * Befitting-silent — returns `null` for a `<DrawerContent>` rendered outside a
24
+ * `<Drawer>` (a misuse the optional context renders bare for, rather than throwing).
25
+ */
26
+ export declare const useOptionalDrawerSnapContext: () => DrawerSnapContext | null;
@@ -0,0 +1,17 @@
1
+ import { type Ref } from "vue";
2
+ import type { DrawerSnapContext } from "./drawerSnapContext";
3
+ export interface UseDrawerSnapOptions {
4
+ /** The content sheet element (the `--glass-drawer-t` host + the drag bound box). */
5
+ contentEl: Ref<HTMLElement | null>;
6
+ /** The handle element (the grip the user drags to cycle detents). */
7
+ handleEl: Ref<HTMLElement | null>;
8
+ /** The provided snap seam (the ladder, open ref, direction, snap-fraction writeback). */
9
+ ctx: DrawerSnapContext;
10
+ }
11
+ export interface UseDrawerSnapReturn {
12
+ /** Whether a pointer drag is in flight (drives the grip's "live" affordance). */
13
+ dragging: Ref<boolean>;
14
+ /** Programmatically settle to a detent fraction (the open-sheet re-snap seam). */
15
+ snapTo(fraction: number): void;
16
+ }
17
+ export declare function useDrawerSnap(options: UseDrawerSnapOptions): UseDrawerSnapReturn;
@@ -0,0 +1,45 @@
1
+ import type { DrawerDirection } from "./index";
2
+ /**
3
+ * The ONE drawer-snap spring authority — the sheet-settle (response, ζ) register the
4
+ * house `SpringProgress` snap engine (`useDrawerSnap.ts`) drives `--glass-drawer-t`
5
+ * off. This is the drawer's OWN settle clock — NOT a re-use of the dock's
6
+ * `DOCK_SPRING` morph-settle (the per-spring-clock §6 doctrine: each register is its
7
+ * own clock; a sheet that flings up to a detent settles slower + with a touch more
8
+ * give than the dock's crisp 0.32/0.7 box-morph). Co-located here so the pair is
9
+ * defined ONCE rather than at the top of the composable.
10
+ *
11
+ * `response 0.4` — the angular period (≈ the swing time); a hair looser than the
12
+ * dock so the sheet reads as a heavier surface settling. `dampingFraction 0.82` —
13
+ * the iOS "smooth" register: sub-perceptual overshoot (a settled sheet, not a
14
+ * bouncing one) while staying alive on a flung release.
15
+ */
16
+ export declare const DRAWER_SNAP: {
17
+ readonly response: 0.4;
18
+ readonly dampingFraction: 0.82;
19
+ };
20
+ /**
21
+ * BB-2 (the direction-aware default snap ladder fold) — the peek/half/full detent
22
+ * ladder a bottom/top sheet resolves when the consumer passes no `snapPoints`. The
23
+ * value (12% peek · 50% half · 100% full) is the `DEFAULT_LIVE_SNAP_POINTS` shape
24
+ * the prior vaul wrapper hardcoded, re-homed into the engine as the bottom/top
25
+ * default. A side-lens (left/right) sheet resolves a FULL-SLIDE instead (no detents)
26
+ * — `resolveDefaultSnapPoints` returns `[]` for the side axis.
27
+ */
28
+ export declare const BOTTOM_SHEET_LADDER: readonly number[];
29
+ /**
30
+ * BB-2 — resolve the DEFAULT snap ladder from `direction` natively (retiring the
31
+ * Atlas `:snap-points="[]"` workaround). A bottom/top sheet gets the peek/half/full
32
+ * ladder; a left/right side-lens gets a full-slide (no detents — an empty ladder, so
33
+ * `useDrawerSnap` treats it as a single open/closed slide). A consumer-supplied
34
+ * `snapPoints` always wins over this default.
35
+ */
36
+ export declare function resolveDefaultSnapPoints(direction: DrawerDirection): readonly number[];
37
+ /**
38
+ * The drag-release velocity threshold (px/s). A flung drag whose release velocity
39
+ * exceeds this advances a detent in the drag direction (the `useDockState`-style
40
+ * velocity-aware decision); a slow release below it snaps to the NEAREST detent. The
41
+ * sign of the velocity selects the direction (toward-open vs toward-closed).
42
+ */
43
+ export declare const DRAWER_FLING_VELOCITY = 450;
44
+ /** `Symbol()` label for the `DrawerSnapContext` injection key (`drawerSnapContext.ts`). */
45
+ export declare const DRAWER_SNAP_LABEL = "glass-ui:drawer-snap-context";
@@ -1,17 +1,25 @@
1
- export { DrawerPortal, DrawerTrigger, DrawerClose } from 'vaul-vue';
1
+ export { DialogPortal as DrawerPortal, DialogTrigger as DrawerTrigger, DialogClose as DrawerClose, } from "reka-ui";
2
2
  /**
3
- * Drawer presentation mode (AN.W3). `"modal"` is the default iOS scale-down
4
- * sheet (focus-trapped, page `aria-hidden`, page-behind scaled). `"live-behind"`
5
- * is the non-modal peek/half/full bottom sheet — no focus trap, no page
6
- * `aria-hidden`, page-behind at native size — bundling the
7
- * `modal:false` + `shouldScaleBackground:false` + `snapPoints:[0.12,0.5,1]`
8
- * defaults. Explicit props still override the mode's defaults.
3
+ * Drawer drag/slide direction (BB.W-DRAWER-ABROGATE). `bottom` (default) + `top`
4
+ * are the peek/half/full bottom-sheet axes; `left`/`right` are the side-lens
5
+ * full-slide axes. The house snap engine (`useDrawerSnap`) resolves the default
6
+ * detent ladder FROM this (BB-2): bottom/top → `[0.12, 0.5, 1]`, left/right →
7
+ * a full-slide (no detents).
9
8
  */
10
- export type DrawerMode = 'modal' | 'live-behind';
11
- export { default as Drawer } from './Drawer.vue';
12
- export { default as DrawerOverlay } from './DrawerOverlay.vue';
13
- export { default as DrawerContent } from './DrawerContent.vue';
14
- export { default as DrawerHeader } from './DrawerHeader.vue';
15
- export { default as DrawerFooter } from './DrawerFooter.vue';
16
- export { default as DrawerTitle } from './DrawerTitle.vue';
17
- export { default as DrawerDescription } from './DrawerDescription.vue';
9
+ export type DrawerDirection = "top" | "bottom" | "left" | "right";
10
+ /**
11
+ * Drawer presentation mode (AN.W3). `"modal"` is the default iOS scale-down sheet —
12
+ * focus-trapped (reka `:modal="true"`), page-behind scaled. `"live-behind"` is the
13
+ * non-modal peek/half/full bottom sheet — reka `:modal="false"` (no focus trap, no
14
+ * page `aria-hidden`, page-behind at native size + interactive) — bundling the
15
+ * `modal:false` + `shouldScaleBackground:false` + the direction-derived snap ladder.
16
+ * Explicit props still override the mode's defaults.
17
+ */
18
+ export type DrawerMode = "modal" | "live-behind";
19
+ export { default as Drawer } from "./Drawer.vue";
20
+ export { default as DrawerOverlay } from "./DrawerOverlay.vue";
21
+ export { default as DrawerContent } from "./DrawerContent.vue";
22
+ export { default as DrawerHeader } from "./DrawerHeader.vue";
23
+ export { default as DrawerFooter } from "./DrawerFooter.vue";
24
+ export { default as DrawerTitle } from "./DrawerTitle.vue";
25
+ export { default as DrawerDescription } from "./DrawerDescription.vue";