@mkbabb/glass-ui 5.0.0 → 6.0.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 (470) hide show
  1. package/README.md +30 -27
  2. package/dist/DropdownMenuTrigger-BzQtd9lt.js +65 -0
  3. package/dist/{FadingScroll-BSRLqQCx.js → FadingScroll-C1ZWEjmG.js} +32 -25
  4. package/dist/{Input-DKf-XwUM.js → Input-B4WQ_CMc.js} +1 -1
  5. package/dist/{PagerDots-BP6jh7z4.js → PagerDots-BoTQ7g5l.js} +123 -95
  6. package/dist/{accent-tone-solve-CBw3L0cy.js → accent-tone-solve-Dii9ePhK.js} +1 -1
  7. package/dist/animated-digit.js +1 -1
  8. package/dist/aurora.js +324 -314
  9. package/dist/blob-config.d.ts +0 -4
  10. package/dist/blob-config.js +1 -1
  11. package/dist/blob.js +280 -261
  12. package/dist/{button-BXzhydVB.js → button-32mg6xA8.js} +63 -56
  13. package/dist/button.js +1 -1
  14. package/dist/canvas.js +1 -1
  15. package/dist/{CardAction-2uUvjMQK.js → card-16xmzIr3.js} +29 -11
  16. package/dist/card.js +1 -1
  17. package/dist/carousel.d.ts +1 -2
  18. package/dist/carousel.js +26 -95
  19. package/dist/chip.d.ts +0 -9
  20. package/dist/chip.js +1 -1
  21. package/dist/collapsible.js +1 -1
  22. package/dist/color-swatch.js +1 -0
  23. package/dist/color.js +87 -3
  24. package/dist/{CommandShortcut-fmdbsEJL.js → command-BjPjUU9z.js} +56 -51
  25. package/dist/command.js +1 -1
  26. package/dist/completion-seal.js +64 -55
  27. package/dist/components/_shared/ModalOverlay.vue.d.ts +5 -52
  28. package/dist/components/_shared/field-surfaces.css +1 -0
  29. package/dist/components/_shared/menuItemVariants.d.ts +2 -2
  30. package/dist/components/_shared/useMotionAxis.d.ts +2 -2
  31. package/dist/components/_shared/valueDomain.d.ts +6 -0
  32. package/dist/components/alert/index.d.ts +1 -1
  33. package/dist/components/animated-digit/AnimatedDigit.vue.d.ts +1 -1
  34. package/dist/components/aurora/Aurora.vue.d.ts +7 -1
  35. package/dist/components/aurora/composables/runtime.d.ts +5 -3
  36. package/dist/components/aurora/composables/useAurora.d.ts +4 -2
  37. package/dist/components/avatar/AvatarImage.vue.d.ts +3 -1
  38. package/dist/components/badge/index.d.ts +2 -2
  39. package/dist/components/blob/Blob.vue.d.ts +11 -0
  40. package/dist/components/blob/composables/useMetaballRenderer.d.ts +2 -0
  41. package/dist/components/button/Button.vue.d.ts +4 -2
  42. package/dist/components/button/index.d.ts +2 -2
  43. package/dist/components/card/Card.vue.d.ts +4 -4
  44. package/dist/components/card/ScrollCard.vue.d.ts +1 -1
  45. package/dist/components/card/styles.css +1 -0
  46. package/dist/components/carousel/Carousel.vue.d.ts +2 -2
  47. package/dist/components/carousel/CarouselNext.vue.d.ts +1 -1
  48. package/dist/components/carousel/CarouselPrevious.vue.d.ts +1 -1
  49. package/dist/components/carousel/index.d.ts +0 -1
  50. package/dist/components/carousel/useCarousel.d.ts +2 -2
  51. package/dist/components/combobox/ComboboxList.vue.d.ts +1 -1
  52. package/dist/components/combobox/index.d.ts +1 -3
  53. package/dist/components/command/Command.vue.d.ts +1 -1
  54. package/dist/components/command/CommandDialog.vue.d.ts +9 -6
  55. package/dist/components/completion-seal/styles.css +1 -0
  56. package/dist/components/constellation/Constellation.vue.d.ts +6 -1
  57. package/dist/components/constellation/composables/useConstellation.d.ts +3 -16
  58. package/dist/components/constellation/constants.d.ts +6 -16
  59. package/dist/components/constellation/constellationField.d.ts +3 -5
  60. package/dist/components/constellation/constellationInteraction.d.ts +1 -1
  61. package/dist/components/constellation/constellationRender.d.ts +11 -21
  62. package/dist/components/constellation/constellationTypes.d.ts +12 -9
  63. package/dist/components/constellation/index.d.ts +1 -1
  64. package/dist/components/controls/DarkModeToggle.vue.d.ts +0 -2
  65. package/dist/components/data-table/DataTable.vue.d.ts +14 -2
  66. package/dist/components/data-table/index.d.ts +1 -2
  67. package/dist/components/data-table/types.d.ts +26 -1
  68. package/dist/components/deck/constants.d.ts +0 -10
  69. package/dist/components/deck/index.d.ts +0 -1
  70. package/dist/components/dialog/DialogContent.vue.d.ts +7 -1
  71. package/dist/components/dialog/index.d.ts +0 -1
  72. package/dist/components/dock/DockControl.vue.d.ts +4 -4
  73. package/dist/components/dock/DockStack.vue.d.ts +2 -2
  74. package/dist/components/dock/GlassDock.vue.d.ts +1 -0
  75. package/dist/components/dock/composables/dockMorphContext.d.ts +2 -0
  76. package/dist/components/dock/composables/dockMorphMeasure.d.ts +11 -1
  77. package/dist/components/dock/composables/useDockClickIntegrity.d.ts +4 -0
  78. package/dist/components/dock/composables/useDockOverflowFit.d.ts +3 -3
  79. package/dist/components/dock/composables/useDockPopover.d.ts +2 -0
  80. package/dist/components/dock/composables/useDockShellProps.d.ts +7 -0
  81. package/dist/components/dock/composables/useDockState.d.ts +2 -2
  82. package/dist/components/dock/constants.d.ts +0 -12
  83. package/dist/components/dock/index.d.ts +1 -0
  84. package/dist/components/dock/styles/adaptive-legibility.css +1 -0
  85. package/dist/components/dock/styles/controls/icon-button.css +1 -0
  86. package/dist/{styles/dock-controls → components/dock/styles/controls}/touch-floor.css +1 -1
  87. package/dist/components/dock/styles/controls.css +1 -0
  88. package/dist/{styles/dock → components/dock/styles}/density.css +1 -1
  89. package/dist/components/dock/styles/dock.css +1 -0
  90. package/dist/components/dock/styles/index.css +1 -0
  91. package/dist/components/dock/styles/layer-group.css +1 -0
  92. package/dist/components/dock/styles/layers.css +1 -0
  93. package/dist/components/dock/styles/overflow.css +1 -0
  94. package/dist/components/dock/styles/popover.css +1 -0
  95. package/dist/components/dock/styles/shape.css +1 -0
  96. package/dist/components/dock/styles/shell.css +1 -0
  97. package/dist/components/drawer/Drawer.vue.d.ts +3 -3
  98. package/dist/components/drawer/composables/drawerSnapContext.d.ts +3 -1
  99. package/dist/components/drawer/constants.d.ts +6 -6
  100. package/dist/components/drawer/index.d.ts +4 -6
  101. package/dist/components/drawer/styles.css +1 -0
  102. package/dist/components/dropdown-menu/DropdownMenuContent.vue.d.ts +1 -1
  103. package/dist/components/dropdown-menu/DropdownMenuTrigger.vue.d.ts +9 -3
  104. package/dist/components/dropdown-menu/index.d.ts +0 -1
  105. package/dist/components/easing/EasingConfigurator.vue.d.ts +1 -1
  106. package/dist/components/easing/EasingPicker.vue.d.ts +2 -2
  107. package/dist/components/easing/composables/useEasingPicker.d.ts +4 -0
  108. package/dist/components/easing/constants.d.ts +2 -0
  109. package/dist/components/fading-scroll/composables/useFadingScroll.d.ts +3 -3
  110. package/dist/components/fourier-field/FourierField.vue.d.ts +7 -1
  111. package/dist/components/fourier-field/composables/useFourierField.d.ts +2 -1
  112. package/dist/components/handmark/HandMark.vue.d.ts +1 -1
  113. package/dist/components/handmark/geometry.d.ts +1 -1
  114. package/dist/components/handmark/index.d.ts +4 -6
  115. package/dist/components/icon-chip/styles.css +1 -0
  116. package/dist/components/index.d.ts +0 -1
  117. package/dist/components/infinite-scroll/index.d.ts +1 -0
  118. package/dist/components/instrument-chassis/styles.css +1 -0
  119. package/dist/components/labeled-field/LabeledField.vue.d.ts +12 -2
  120. package/dist/components/labeled-field/LabeledInput.vue.d.ts +10 -3
  121. package/dist/components/liquid-grid/LiquidGrid.vue.d.ts +4 -0
  122. package/dist/components/liquid-grid/composables/useLiquidGrid.d.ts +2 -1
  123. package/dist/components/metric-stack/MetricStack.vue.d.ts +1 -1
  124. package/dist/components/pager-dots/PagerDots.vue.d.ts +1 -1
  125. package/dist/components/popover/PopoverContent.vue.d.ts +1 -1
  126. package/dist/components/progress/Progress.vue.d.ts +5 -40
  127. package/dist/components/progress/ProgressDefault.vue.d.ts +1 -17
  128. package/dist/components/progress/ProgressGradient.vue.d.ts +1 -0
  129. package/dist/components/progress/ProgressLiquid.vue.d.ts +1 -0
  130. package/dist/components/progress/index.d.ts +0 -5
  131. package/dist/components/progress/valueMarks.css +1 -0
  132. package/dist/components/pulse/Pulse.vue.d.ts +2 -2
  133. package/dist/components/scroll-progress-rim/styles.css +1 -0
  134. package/dist/components/search/FuzzySearch.vue.d.ts +4 -2
  135. package/dist/components/search/SearchBar.vue.d.ts +2 -2
  136. package/dist/components/search/searchVariants.d.ts +1 -1
  137. package/dist/components/select/SelectContent.vue.d.ts +1 -1
  138. package/dist/components/select/index.d.ts +0 -2
  139. package/dist/components/skeleton/Skeleton.vue.d.ts +1 -1
  140. package/dist/components/slider/Slider.vue.d.ts +2 -0
  141. package/dist/components/split-chars/SplitChars.vue.d.ts +1 -1
  142. package/dist/components/surface/Surface.vue.d.ts +1 -1
  143. package/dist/components/table/Table.vue.d.ts +4 -0
  144. package/dist/components/tabs/SegmentedTabs.vue.d.ts +10 -0
  145. package/dist/components/tabs/index.d.ts +1 -1
  146. package/dist/components/tabs/styles/drag.css +1 -0
  147. package/dist/components/tags-input/TagsInput.vue.d.ts +2 -2
  148. package/dist/components/timeline/ContinuousTimeline.vue.d.ts +1 -1
  149. package/dist/components/timeline/GlassTimeline.vue.d.ts +4 -4
  150. package/dist/components/toast/Toast.vue.d.ts +3 -3
  151. package/dist/components/toast/use-toast.d.ts +4 -4
  152. package/dist/components/typewriter/TypewriterText.vue.d.ts +1 -4
  153. package/dist/components/typewriter/composables/useTypewriter.d.ts +0 -1
  154. package/dist/components/typewriter/utils/graphemes.d.ts +1 -0
  155. package/dist/components/watercolor-dot/WatercolorDot.vue.d.ts +2 -2
  156. package/dist/composables/glass/useGlassBackdropLuminance.d.ts +31 -0
  157. package/dist/composables/glass/webgpu/rendererStatus.d.ts +13 -0
  158. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +3 -0
  159. package/dist/composables/glass/webgpu/webgpuCanvasTypes.d.ts +2 -0
  160. package/dist/composables/motion/springProjection.d.ts +16 -0
  161. package/dist/composables/motion/useAnimatedNumber.d.ts +1 -6
  162. package/dist/composables/motion/useCountup.d.ts +1 -6
  163. package/dist/composables/motion/useDockCtaReceive.d.ts +55 -0
  164. package/dist/composables/motion/useElementMorph.d.ts +8 -0
  165. package/dist/composables/motion/useLiquidPress.d.ts +12 -4
  166. package/dist/composables/motion/useNumericTransition.d.ts +2 -0
  167. package/dist/composables/motion/useTextHighlight.d.ts +2 -1
  168. package/dist/configurator-CSENXXSy.js +311 -0
  169. package/dist/configurator.js +2 -3
  170. package/dist/constellation.js +235 -571
  171. package/dist/controls.js +55 -63
  172. package/dist/{createCanvasLifecycle-DlrcvWbb.js → createCanvasLifecycle-hsFkQVdl.js} +32 -32
  173. package/dist/dark-DIH-blY1.js +70 -0
  174. package/dist/dark.d.ts +1 -2
  175. package/dist/dark.js +2 -20
  176. package/dist/{DataTable-Bxya8nBn.js → data-table-DveMdgBM.js} +231 -120
  177. package/dist/data-table.js +2 -2
  178. package/dist/deck.js +10 -21
  179. package/dist/dialog-BzQxKrUr.js +281 -0
  180. package/dist/dialog.js +2 -3
  181. package/dist/dock.js +561 -428
  182. package/dist/{dockContext-d-WpJN2Z.js → dockContext-4S9qP0Z4.js} +1 -1
  183. package/dist/dom.js +196 -7
  184. package/dist/drawer.js +111 -66
  185. package/dist/dropdown-menu-DORIA52F.js +378 -0
  186. package/dist/dropdown-menu.js +3 -2
  187. package/dist/easing.d.ts +0 -9
  188. package/dist/easing.js +334 -187
  189. package/dist/expandable-container.js +12 -4
  190. package/dist/fading-scroll.js +1 -1
  191. package/dist/focus-scope.js +1 -1
  192. package/dist/forms.js +37 -78
  193. package/dist/fourier-field.js +273 -263
  194. package/dist/fourier-math.d.ts +0 -6
  195. package/dist/fourier-math.js +112 -2
  196. package/dist/glass-ui.css +1 -1
  197. package/dist/glass-ui.js +131 -195
  198. package/dist/handmark.d.ts +0 -2
  199. package/dist/handmark.js +82 -82
  200. package/dist/header-ribbon.js +41 -30
  201. package/dist/{IconChip-CwLmBJ_K.js → icon-chip-BWuxz1-u.js} +1 -1
  202. package/dist/icon-chip.js +1 -1
  203. package/dist/{IconTooltip-D9sbK-Mk.js → icon-tooltip-CO6rw0dZ.js} +1 -1
  204. package/dist/icon-tooltip.js +1 -1
  205. package/dist/index.d.ts +0 -1
  206. package/dist/infinite-scroll.d.ts +0 -1
  207. package/dist/infinite-scroll.js +17 -15
  208. package/dist/instrument-chassis.js +1 -1
  209. package/dist/keyboard.js +104 -2
  210. package/dist/label.js +1 -1
  211. package/dist/labeled-field.js +95 -69
  212. package/dist/liquid-grid.js +173 -162
  213. package/dist/metric-badge.js +3 -3
  214. package/dist/metric-cell.js +2 -2
  215. package/dist/metric-stack.js +1 -1
  216. package/dist/motion-core.js +15 -16
  217. package/dist/motion-curves.d.ts +0 -20
  218. package/dist/motion.js +59 -58
  219. package/dist/{Notification-DQv2cOh9.js → notification-DVs7ODMg.js} +17 -8
  220. package/dist/notification.js +1 -1
  221. package/dist/{NumberFieldContent-BkE7xPS9.js → number-field-PvkGedHk.js} +2 -2
  222. package/dist/number-field.js +1 -1
  223. package/dist/pager-dots.js +1 -1
  224. package/dist/paper-backdrop.js +31 -2
  225. package/dist/{PopoverContent-DOtszFWK.js → popover-WMgyRSyN.js} +7 -2
  226. package/dist/popover.js +1 -1
  227. package/dist/procedural-color.wgsl-B9mLK7v0.js +377 -0
  228. package/dist/progress-C-HHuFZy.js +192 -0
  229. package/dist/progress.js +2 -2
  230. package/dist/pulse.js +3 -1
  231. package/dist/reactive.js +19 -3
  232. package/dist/rendererStatus-C2-zC2Q-.js +40 -0
  233. package/dist/{resolveCanvasColor-B3L-akX0.js → resolveCanvasColor-yarP5bdk.js} +1 -1
  234. package/dist/scroll-progress-rim.js +1 -1
  235. package/dist/search.js +187 -146
  236. package/dist/{SelectScrollDownButton-CDtwaWkZ.js → select-BIv4R3Ir.js} +109 -44
  237. package/dist/select.js +2 -4
  238. package/dist/separator-CBU94kTM.js +62 -0
  239. package/dist/separator.js +1 -1
  240. package/dist/sidebar.js +1 -1
  241. package/dist/slider-Cc_qw6GA.js +166 -0
  242. package/dist/slider.js +1 -1
  243. package/dist/sortable-list.js +43 -43
  244. package/dist/styles/accessibility.css +1 -0
  245. package/dist/styles/components.css +1 -1
  246. package/dist/styles/glass/control-surfaces.css +1 -1
  247. package/dist/styles/glass/glass-capsule.css +1 -1
  248. package/dist/styles/glass/ladder.css +1 -1
  249. package/dist/styles/glass/liquid-fill.css +1 -1
  250. package/dist/styles/glass/material-roles.css +1 -0
  251. package/dist/styles/glass/material.css +1 -1
  252. package/dist/styles/glass/surface-axis.css +1 -1
  253. package/dist/styles/glass/surfaces-pager.css +1 -1
  254. package/dist/styles/glass/surfaces.css +1 -1
  255. package/dist/styles/glass.css +1 -1
  256. package/dist/styles/index.css +1 -1
  257. package/dist/styles/theme/bridges.css +1 -1
  258. package/dist/styles/tokens/glass-fx.css +1 -1
  259. package/dist/styles/tokens/glass.css +1 -1
  260. package/dist/styles/tokens/offsets.css +1 -1
  261. package/dist/styles/tokens/scale-paper.css +1 -1
  262. package/dist/styles/tokens/scheme-spring.css +1 -1
  263. package/dist/styles/tokens/shadow.css +1 -1
  264. package/dist/styles/tokens.d.ts +53 -0
  265. package/dist/styles/tokens.ts +58 -0
  266. package/dist/styles/typography/scale.css +1 -1
  267. package/dist/styles/typography/semantic.css +1 -1
  268. package/dist/styles/typography/utilities.css +1 -1
  269. package/dist/styles/utilities/base.css +1 -1
  270. package/dist/styles/utilities/btn.css +1 -1
  271. package/dist/styles/utilities/components.css +1 -1
  272. package/dist/styles/utilities.css +1 -1
  273. package/dist/{Switch-BPBfhMU3.js → switch-Boj4Ucn5.js} +1 -1
  274. package/dist/switch.js +1 -1
  275. package/dist/tabs.js +51 -45
  276. package/dist/timeline.js +2 -2
  277. package/dist/toast.js +1 -1
  278. package/dist/{ToggleGroupItem-DNWx2aSW.js → toggle-group-BPchFsns.js} +10 -7
  279. package/dist/toggle-group.js +1 -1
  280. package/dist/tokens.d.ts +1 -53
  281. package/dist/tokens.js +1 -1
  282. package/dist/{TooltipProvider-GtfYdSVf.js → tooltip-BmOQJzh0.js} +1 -0
  283. package/dist/tooltip.js +1 -1
  284. package/dist/typewriter.js +151 -166
  285. package/dist/{useAccentTone-D25DxviG.js → useAccentTone-C-p6WdPe.js} +1 -1
  286. package/dist/{useAnimatedNumber-2XC4aRB6.js → useAnimatedNumber-BRVVaFFc.js} +1 -1
  287. package/dist/useDockCtaReceive-CK-RLASa.js +257 -0
  288. package/dist/{useGooMorph-CU1pwuC6.js → useGooMorph-D1F6QJlH.js} +140 -59
  289. package/dist/{useIntersectionPause-Cmt5Tnv9.js → useIntersectionPause-B-dbxl9w.js} +1 -1
  290. package/dist/useLiquidPress-BYcwwGQV.js +68 -0
  291. package/dist/{useRAFLoop-CvOo_kgb.js → useRAFLoop-BtwQ9DyY.js} +1 -1
  292. package/dist/{useScrollProgress-C-yImzhU.js → useScrollProgress-DZI4nf4v.js} +1 -1
  293. package/dist/{useSelectionGroup-Btpf24aY.js → useSelectionGroup-LDzBdR1Y.js} +3 -3
  294. package/dist/{useTabRovingFocus-CG1H1k1J.js → useTabRovingFocus-DkLYwo4L.js} +1 -1
  295. package/dist/{useTouchGate-BlegwvwL.js → useTouchGate-Cj5fOkTv.js} +1 -1
  296. package/dist/valueDomain-B8L04u3U.js +13 -0
  297. package/dist/watercolor-dot.js +5 -3
  298. package/package.json +5 -12
  299. package/src/styles/accessibility.css +48 -0
  300. package/src/styles/glass/glass-capsule.css +2 -2
  301. package/src/styles/glass/ladder.css +1 -1
  302. package/src/styles/glass/material-roles.css +18 -0
  303. package/src/styles/glass/material.css +18 -12
  304. package/src/styles/glass.css +5 -5
  305. package/src/styles/index.css +38 -30
  306. package/src/styles/theme/bridges.css +0 -6
  307. package/src/styles/tokens/glass-fx.css +1 -5
  308. package/src/styles/tokens/glass.css +1 -2
  309. package/src/styles/tokens/offsets.css +0 -1
  310. package/src/styles/tokens/property-regs.css +11 -10
  311. package/src/styles/tokens/scale-paper.css +0 -1
  312. package/src/styles/tokens/scheme-motion.css +3 -0
  313. package/src/styles/tokens/scheme-spring.css +0 -10
  314. package/src/styles/tokens/shadow.css +3 -29
  315. package/src/styles/tokens.ts +58 -0
  316. package/src/styles/typography/scale.css +5 -2
  317. package/src/styles/typography/semantic.css +5 -5
  318. package/src/styles/typography/utilities.css +5 -5
  319. package/src/styles/utilities/base.css +5 -5
  320. package/src/styles/utilities/btn.css +6 -27
  321. package/src/styles/utilities.css +4 -6
  322. package/dist/ConfiguratorRow-BV6zPjTM.js +0 -151
  323. package/dist/DialogContent-Bl4v10AC.js +0 -192
  324. package/dist/DialogFooter-C0v4Hz2F.js +0 -168
  325. package/dist/PaperBackdrop-BYwE8_kg.js +0 -31
  326. package/dist/Progress-uWLyXE7J.js +0 -308
  327. package/dist/SelectGroup-BuEptUsa.js +0 -31
  328. package/dist/SelectSeparator-4QGephvr.js +0 -49
  329. package/dist/Separator-DqJ6PfOd.js +0 -44
  330. package/dist/color-Bp5jmv4Z.js +0 -86
  331. package/dist/components/carousel/GlassCarouselPager.vue.d.ts +0 -50
  332. package/dist/components/combobox/ComboboxSeparator.vue.d.ts +0 -18
  333. package/dist/components/combobox/ComboboxViewport.vue.d.ts +0 -18
  334. package/dist/components/constellation/composables/constellationGLSetup.d.ts +0 -10
  335. package/dist/components/constellation/composables/constellationWGPUSetup.d.ts +0 -19
  336. package/dist/components/constellation/composables/uniformBridgeWGPU.d.ts +0 -66
  337. package/dist/components/constellation/shaders/constellation-lines.glsl.d.ts +0 -2
  338. package/dist/components/constellation/shaders/constellation-lines.wgsl.d.ts +0 -1
  339. package/dist/components/constellation/shaders/constellation-points.glsl.d.ts +0 -2
  340. package/dist/components/constellation/shaders/constellation-points.wgsl.d.ts +0 -1
  341. package/dist/components/deck/composables/useDeckSpring.d.ts +0 -22
  342. package/dist/components/dialog/DialogScrollContent.vue.d.ts +0 -33
  343. package/dist/components/progress/ProgressSectioned.vue.d.ts +0 -47
  344. package/dist/components/progress/useProgressGeometry.d.ts +0 -60
  345. package/dist/components/section/Section.vue.d.ts +0 -73
  346. package/dist/components/section/index.d.ts +0 -1
  347. package/dist/components/stacked-icons/StackedIconGroup.vue.d.ts +0 -30
  348. package/dist/components/stacked-icons/index.d.ts +0 -2
  349. package/dist/components/stacked-icons/types.d.ts +0 -19
  350. package/dist/dropdown-menu-DaGlVdp9.js +0 -421
  351. package/dist/math-CIEcwsYi.js +0 -112
  352. package/dist/procedural-color.wgsl-ByduxnzV.js +0 -4
  353. package/dist/slider-Cxuj_W_H.js +0 -151
  354. package/dist/stacked-icons.d.ts +0 -1
  355. package/dist/stacked-icons.js +0 -98
  356. package/dist/styles/cards.css +0 -1
  357. package/dist/styles/completion-seal.css +0 -1
  358. package/dist/styles/dock/adaptive-legibility.css +0 -1
  359. package/dist/styles/dock/dock.css +0 -1
  360. package/dist/styles/dock/layer-group.css +0 -1
  361. package/dist/styles/dock/layers.css +0 -1
  362. package/dist/styles/dock/overflow.css +0 -1
  363. package/dist/styles/dock/popover.css +0 -1
  364. package/dist/styles/dock/shape.css +0 -1
  365. package/dist/styles/dock/shell.css +0 -1
  366. package/dist/styles/dock-controls/icon-button.css +0 -1
  367. package/dist/styles/dock-controls.css +0 -1
  368. package/dist/styles/dock.css +0 -1
  369. package/dist/styles/drawer.css +0 -1
  370. package/dist/styles/icon-chip.css +0 -1
  371. package/dist/styles/instrument-chassis.css +0 -1
  372. package/dist/styles/scroll-progress-rim.css +0 -1
  373. package/dist/styles/select.css +0 -1
  374. package/dist/styles/tabs/segmented-tabs-drag.css +0 -1
  375. package/dist/styles/utilities/animate.css +0 -0
  376. package/dist/useConfiguratorState-Dq35N_7t.js +0 -167
  377. package/dist/useDockCtaReceive-BgMmeINo.js +0 -161
  378. package/dist/useGlobalDark-DjKMEQE2.js +0 -53
  379. package/dist/useGpuSubstrate-DcY584kE.js +0 -347
  380. package/dist/useInterval-ZATRi-1T.js +0 -18
  381. package/dist/useKeyboardShortcuts-ynVmNFo3.js +0 -104
  382. package/dist/useLiquidPress-BXNHydZh.js +0 -40
  383. package/dist/useTextHighlight-C46Le9u_.js +0 -72
  384. package/dist/useViewportReady-c0isoKL8.js +0 -191
  385. package/src/styles/card-scroll.css +0 -189
  386. package/src/styles/cards.css +0 -485
  387. package/src/styles/completion-seal.css +0 -205
  388. package/src/styles/configurator.css +0 -359
  389. package/src/styles/dialog-placement.css +0 -68
  390. package/src/styles/dock/adaptive-legibility.css +0 -119
  391. package/src/styles/dock/crossfade.css +0 -139
  392. package/src/styles/dock/cta-seat.css +0 -87
  393. package/src/styles/dock/density.css +0 -458
  394. package/src/styles/dock/dock.css +0 -199
  395. package/src/styles/dock/fisheye.css +0 -81
  396. package/src/styles/dock/layer-group.css +0 -329
  397. package/src/styles/dock/layers.css +0 -438
  398. package/src/styles/dock/morph.css +0 -455
  399. package/src/styles/dock/overflow.css +0 -332
  400. package/src/styles/dock/popover.css +0 -249
  401. package/src/styles/dock/search.css +0 -68
  402. package/src/styles/dock/section.css +0 -59
  403. package/src/styles/dock/shape.css +0 -188
  404. package/src/styles/dock/shell-regions.css +0 -73
  405. package/src/styles/dock/shell.css +0 -500
  406. package/src/styles/dock-controls/dark-mode-toggle.css +0 -123
  407. package/src/styles/dock-controls/icon-button.css +0 -221
  408. package/src/styles/dock-controls/tab-button.css +0 -143
  409. package/src/styles/dock-controls/touch-floor.css +0 -119
  410. package/src/styles/dock-controls/triggers.css +0 -157
  411. package/src/styles/dock-controls.css +0 -92
  412. package/src/styles/dock.css +0 -219
  413. package/src/styles/drawer.css +0 -434
  414. package/src/styles/feedback-tone.css +0 -104
  415. package/src/styles/icon-chip.css +0 -256
  416. package/src/styles/instrument-chassis.css +0 -449
  417. package/src/styles/menu.css +0 -187
  418. package/src/styles/scroll-progress-rim.css +0 -87
  419. package/src/styles/segmented-tabs.css +0 -424
  420. package/src/styles/select.css +0 -201
  421. package/src/styles/tabs/segmented-tabs-drag.css +0 -200
  422. package/src/styles/utilities/animate.css +0 -29
  423. /package/dist/{coalesce-metric-B8o7zT9u.js → coalesce-metric-znAcLzkB.js} +0 -0
  424. /package/dist/{CollapsibleContent-DiHcB_HH.js → collapsible-bPzS1aQk.js} +0 -0
  425. /package/dist/{compile-C55K3P9g.js → compile-DK3Fri1B.js} +0 -0
  426. /package/dist/{styles → components/_shared}/feedback-tone.css +0 -0
  427. /package/dist/{styles → components/_shared}/menu.css +0 -0
  428. /package/dist/{styles → components/card}/card-scroll.css +0 -0
  429. /package/dist/{styles/configurator.css → components/configurator/styles.css} +0 -0
  430. /package/dist/{styles/dock-controls → components/controls}/dark-mode-toggle.css +0 -0
  431. /package/dist/{styles/dialog-placement.css → components/dialog/placement.css} +0 -0
  432. /package/dist/{styles/dock-controls → components/dock/styles/controls}/tab-button.css +0 -0
  433. /package/dist/{styles/dock-controls → components/dock/styles/controls}/triggers.css +0 -0
  434. /package/dist/{styles/dock → components/dock/styles}/crossfade.css +0 -0
  435. /package/dist/{styles/dock → components/dock/styles}/cta-seat.css +0 -0
  436. /package/dist/{styles/dock → components/dock/styles}/fisheye.css +0 -0
  437. /package/dist/{styles/dock → components/dock/styles}/morph.css +0 -0
  438. /package/dist/{styles/dock → components/dock/styles}/search.css +0 -0
  439. /package/dist/{styles/dock → components/dock/styles}/section.css +0 -0
  440. /package/dist/{styles/dock → components/dock/styles}/shell-regions.css +0 -0
  441. /package/dist/{styles/segmented-tabs.css → components/tabs/styles/segmented.css} +0 -0
  442. /package/dist/{constants-D8lSMkOz.js → constants-DRZmNIY-.js} +0 -0
  443. /package/dist/{createContext-BQ1Gy_LB.js → createContext-FU0n5MGK.js} +0 -0
  444. /package/dist/{flow.glsl-CVqPSj8_.js → flow.glsl-DEGFGE11.js} +0 -0
  445. /package/dist/{FocusScope-BzKwhsBn.js → focus-scope-DUTKveod.js} +0 -0
  446. /package/dist/{InstrumentChassis-Dss5Tjcm.js → instrument-chassis-Cvstg4_U.js} +0 -0
  447. /package/dist/{Label-C84TaQiw.js → label-Cj38tJKG.js} +0 -0
  448. /package/dist/{menuItemVariants-DbO-Fr74.js → menuItemVariants-D6AOzzND.js} +0 -0
  449. /package/dist/{pointerFieldMappings-4VtmkOWv.js → pointerFieldMappings-CZojkgKj.js} +0 -0
  450. /package/dist/{presets-B07HzyKd.js → presets-CxeNvxuO.js} +0 -0
  451. /package/dist/{prng-B0PLRmR6.js → prng-Dz2_9RJu.js} +0 -0
  452. /package/dist/{scrollReader-DzYqPQ6V.js → scrollReader-C2oK9Hb8.js} +0 -0
  453. /package/dist/{supportsCssTimeline-Ie4xJFbD.js → supportsCssTimeline-Dz-GVxXM.js} +0 -0
  454. /package/dist/{Toaster-C_-WeU9W.js → toast-kAbchIN2.js} +0 -0
  455. /package/dist/{useControlSize-DJwe-7ZQ.js → useControlSize-CFfOk8I-.js} +0 -0
  456. /package/dist/{useDocumentVisibility-CpJGUgcJ.js → useDocumentVisibility-YeBDGqtI.js} +0 -0
  457. /package/dist/{useDragMorph-65ihHePq.js → useDragMorph-7ygF9O0m.js} +0 -0
  458. /package/dist/{useDragVelocity-BWcNMCux.js → useDragVelocity-CbMZEBaC.js} +0 -0
  459. /package/dist/{useFuzzySearch-KslRxiJY.js → useFuzzySearch-BOgep7RE.js} +0 -0
  460. /package/dist/{useLeadTrail-DOH4XkL1.js → useLeadTrail-BYu8dq4G.js} +0 -0
  461. /package/dist/{usePointerVelocityField-CwXyeW0Z.js → usePointerVelocityField-BdvnO0py.js} +0 -0
  462. /package/dist/{useResizeObserver-DDuoBeBo.js → useResizeObserver-BcUTquV7.js} +0 -0
  463. /package/dist/{useResolveTokenColor-DVT5kwv6.js → useResolveTokenColor-C07e-qaT.js} +0 -0
  464. /package/dist/{useRoutePointer-DL7I0gY4.js → useRoutePointer-BDNMFN73.js} +0 -0
  465. /package/dist/{useSpringMount-CNvvgGiC.js → useSpringMount-C6-DBx4e.js} +0 -0
  466. /package/dist/{useTimer-CkDV8SC2.js → useTimer-D8koDvJS.js} +0 -0
  467. /package/dist/{useUserInvalidAria-Bkruei7M.js → useUserInvalidAria-Cr4nR3tu.js} +0 -0
  468. /package/dist/{vReveal-DUmiEkX_.js → vReveal-DZfWl9XI.js} +0 -0
  469. /package/dist/{vSpecular-DlYN0UZy.js → vSpecular-CQFmLNzA.js} +0 -0
  470. /package/dist/{writeVelocityWeight-D1rvdxJu.js → writeVelocityWeight-D_AcvTsE.js} +0 -0
@@ -1,10 +1,9 @@
1
- export { DialogPortal as DrawerPortal, DialogTrigger as DrawerTrigger, DialogClose as DrawerClose, } from "reka-ui";
1
+ export { DialogTrigger as DrawerTrigger, DialogClose as DrawerClose, } from "reka-ui";
2
2
  /**
3
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).
4
+ * can carry peek/half/full detents; `left`/`right` are the side-lens full-slide
5
+ * axes. Only `mode="live-behind"` resolves a default ladder (bottom/top →
6
+ * `[0.12, 0.5, 1]`); ordinary modal drawers without `snapPoints` rest fully open.
8
7
  */
9
8
  export type DrawerDirection = "top" | "bottom" | "left" | "right";
10
9
  /**
@@ -27,7 +26,6 @@ export type DrawerMode = "modal" | "live-behind";
27
26
  */
28
27
  export type DrawerStage = "none" | "dim" | "scale" | "immersive";
29
28
  export { default as Drawer } from "./Drawer.vue";
30
- export { default as DrawerOverlay } from "./DrawerOverlay.vue";
31
29
  export { default as DrawerContent } from "./DrawerContent.vue";
32
30
  export { default as DrawerHeader } from "./DrawerHeader.vue";
33
31
  export { default as DrawerFooter } from "./DrawerFooter.vue";
@@ -0,0 +1 @@
1
+ @property --glass-drawer-t { syntax: "<number>"; inherits: false; initial-value: 0; } @property --stage-t { syntax: "<number>"; inherits: false; initial-value: 0; } [data-stage-scrim][data-stage-flip], [data-stage-wrapper][data-stage-flip] { transition: --stage-t var(--spring-snappy-duration, 0.4s) var(--spring-snappy, ease); } :root { --drawer-inset-block-end: 0px; --drawer-handle-w: 2.25rem; --drawer-handle-h: 0.3125rem; --drawer-handle-color: var(--muted-foreground); --drawer-handle-opacity: 0.45; --drawer-handle-opacity-active: 0.85; --drawer-snap-rule-color: color-mix(in srgb, var(--border) 60%, transparent); } .glass-drawer { position: fixed; inset-inline: 0; bottom: 0; z-index: var(--z-modal); display: flex; flex-direction: column; height: auto; max-height: 97vh; margin-top: 6rem; border-bottom: 0; border-start-start-radius: var(--radius-panel); border-start-end-radius: var(--radius-panel); } .glass-drawer[data-mode="live-behind"] { z-index: calc(var(--z-dock) - 1); } .glass-drawer[data-surface="veil"] { --veil-bg: color-mix( in oklab, var(--glass-bg-quiet), var(--glass-tint-source) var(--glass-tint-strength) ); --veil-blur: var(--glass-blur-quiet); background: var(--veil-bg); -webkit-backdrop-filter: var(--veil-blur); backdrop-filter: var(--veil-blur); -webkit-backdrop-filter: var(--veil-blur); border: none; box-shadow: none; } .glass-drawer[data-surface="opaque"] { --glass-level: 0; --glass-tint-strength: 0%; background: color-mix(in srgb, var(--card), transparent 0%); -webkit-backdrop-filter: none; backdrop-filter: none; -webkit-backdrop-filter: none; } .glass-drawer[data-glass-drawer-snap-points="true"] { height: 100%; max-height: 100%; margin-top: 0; } .glass-drawer[data-glass-drawer-snap-points="true"][data-glass-drawer-direction="bottom"] { bottom: var(--drawer-inset-block-end); height: calc(100% - var(--drawer-inset-block-end)); max-height: calc(100% - var(--drawer-inset-block-end)); } .glass-drawer[data-glass-drawer-snap-points="true"] { --sheet-descent: clamp(0, calc(var(--stage-t) / 0.85), 1); --sheet-freeze: clamp(0, calc((var(--stage-t) - 0.85) / 0.15), 1); --sheet-crown: color-mix( in oklab, color-mix( in oklab, var(--glass-bg-overlay), var(--glass-tint-source) var(--glass-tint-strength) ), var(--glass-bg-sheet) calc(var(--sheet-descent) * 100%) ); --sheet-solid: color-mix( in oklab, var(--card), var(--glass-capsule-warm) var(--glass-capsule-warm-floor, 16%) ); background: color-mix( in oklab, var(--sheet-crown), var(--sheet-solid) calc(var(--sheet-freeze) * 100%) ); --glass-blur-engage-t: calc( clamp(0, calc(var(--glass-drawer-t) / var(--glass-blur-engage-knee, 0.35)), 1) * (1 - var(--sheet-freeze)) ); -webkit-backdrop-filter: blur( calc(var(--glass-blur-overlay-radius, 20px) * var(--glass-blur-engage-t)) ) saturate(1.6); backdrop-filter: blur( calc(var(--glass-blur-overlay-radius, 20px) * var(--glass-blur-engage-t)) ) saturate(1.6); } .glass-drawer[data-glass-drawer-snap-points="true"][data-surface="opaque"] { background: color-mix(in srgb, var(--card), transparent 0%); -webkit-backdrop-filter: none; backdrop-filter: none; -webkit-backdrop-filter: none; } .glass-drawer[data-glass-drawer-direction="top"] { bottom: auto; top: 0; margin-top: 0; margin-bottom: 6rem; border-top: 0; border-bottom: 1px solid var(--glass-border-overlay); border-radius: 0 0 var(--radius-panel) var(--radius-panel); } .glass-drawer[data-glass-drawer-direction="left"], .glass-drawer[data-glass-drawer-direction="right"] { inset-inline: auto; inset-block: 0; height: 100%; max-height: 100%; width: min(24rem, 92vw); margin: 0; border: 1px solid var(--glass-border-overlay); } .glass-drawer[data-glass-drawer-direction="left"] { left: 0; border-left: 0; border-radius: 0 var(--radius-panel) var(--radius-panel) 0; } .glass-drawer[data-glass-drawer-direction="right"] { right: 0; border-right: 0; border-radius: var(--radius-panel) 0 0 var(--radius-panel); } .glass-drawer-handle { flex-shrink: 0; display: flex; align-items: center; justify-content: center; min-block-size: var(--touch-target, 2.75rem); padding-block: 0.75rem 0.5rem; touch-action: none; cursor: grab; } .glass-drawer-handle:focus-visible { outline: none; } .glass-drawer-handle:focus-visible .glass-drawer-grip { opacity: var(--drawer-handle-opacity-active); box-shadow: 0 0 0 3px var(--focus-ring-color); } .glass-drawer-grip { display: block; width: var(--drawer-handle-w); height: var(--drawer-handle-h); border-radius: var(--radius-pill); background-color: var(--drawer-handle-color); opacity: var(--drawer-handle-opacity); transition: opacity var(--duration-fast) var(--ease-out), width var(--duration-fast) var(--ease-out); } .glass-drawer-handle[data-dragging] .glass-drawer-grip, .glass-drawer-handle:active .glass-drawer-grip, .glass-drawer:hover .glass-drawer-grip { opacity: var(--drawer-handle-opacity-active); width: calc(var(--drawer-handle-w) * 1.15); } .glass-drawer-snap-rule { height: 1px; margin-inline: calc(var(--radius-panel) * -0.5); border: 0; background-color: var(--drawer-snap-rule-color); } [data-stage-scrim] { background: color-mix( in srgb, var(--overlay-scrim-ink) calc((0.28 + clamp(0, var(--stage-t), 1) * 0.44) * 100%), transparent ); } [data-stage-wrapper][data-stage-scale] { scale: calc(1 - 0.05 * clamp(0, var(--stage-t), 1)); border-radius: calc(var(--radius-panel) * clamp(0, var(--stage-t), 1)); transform-origin: 50% 0; overflow: clip; } [data-stage-scrim][data-stage-immersive] { -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); } @media (prefers-reduced-motion: reduce) { .glass-drawer-grip { transition: none; } }
@@ -22,9 +22,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
22
22
  onInteractOutside?: ((event: import("reka-ui").PointerDownOutsideEvent | import("reka-ui").FocusOutsideEvent) => any) | undefined;
23
23
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
24
24
  }>, {
25
- align: "center" | "start" | "end";
26
25
  surface: Surface;
27
26
  sideOffset: number;
27
+ align: "end" | "start" | "center";
28
28
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
29
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
30
30
  declare const _default: typeof __VLS_export;
@@ -1,9 +1,15 @@
1
1
  import { type DropdownMenuTriggerProps } from 'reka-ui';
2
- declare var __VLS_8: {};
2
+ export type DropdownMenuTriggerAction = 'click' | 'pointerdown';
3
+ type __VLS_Props = DropdownMenuTriggerProps & {
4
+ action?: DropdownMenuTriggerAction;
5
+ };
6
+ declare var __VLS_12: {};
3
7
  type __VLS_Slots = {} & {
4
- default?: (props: typeof __VLS_8) => any;
8
+ default?: (props: typeof __VLS_12) => any;
5
9
  };
6
- declare const __VLS_base: import("vue").DefineComponent<DropdownMenuTriggerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DropdownMenuTriggerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
11
+ action: DropdownMenuTriggerAction;
12
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
13
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
8
14
  declare const _default: typeof __VLS_export;
9
15
  export default _default;
@@ -1,4 +1,3 @@
1
- export { DropdownMenuPortal } from 'reka-ui';
2
1
  export type { MenuTrigger } from './useMenuTrigger';
3
2
  export { default as DropdownMenu } from './DropdownMenu.vue';
4
3
  export { default as DropdownMenuTrigger } from './DropdownMenuTrigger.vue';
@@ -22,8 +22,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
22
22
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
23
23
  "onUpdate:modelValue"?: ((value: EasingPickerValue | undefined) => any) | undefined;
24
24
  }>, {
25
- label: string;
26
25
  name: string;
26
+ label: string;
27
27
  mode: EasingPickerMode;
28
28
  steps: number;
29
29
  preset: string;
@@ -20,11 +20,11 @@ type __VLS_ModelProps = {
20
20
  modelValue?: EasingPickerValue;
21
21
  };
22
22
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
23
- declare var __VLS_78: {
23
+ declare var __VLS_122: {
24
24
  value: EasingPickerValue;
25
25
  };
26
26
  type __VLS_Slots = {} & {
27
- footer?: (props: typeof __VLS_78) => any;
27
+ footer?: (props: typeof __VLS_122) => any;
28
28
  };
29
29
  declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
30
30
  "update:modelValue": (value: EasingPickerValue | undefined) => any;
@@ -69,7 +69,11 @@ export interface UseEasingPickerReturn {
69
69
  height: number;
70
70
  }>;
71
71
  progress: Ref<number>;
72
+ playing: Ref<boolean>;
73
+ playbackState: ComputedRef<"idle" | "playing" | "complete">;
74
+ reducedMotion: Ref<boolean>;
72
75
  playTravel: () => void;
76
+ cancelTravel: () => void;
73
77
  stopTravel: () => void;
74
78
  }
75
79
  /**
@@ -26,3 +26,5 @@ export declare const VIEWBOX_FIT_SAMPLES = 16;
26
26
  export declare const TRAVEL_DURATION_MS = 1200;
27
27
  /** The copy-feedback dwell (ms). */
28
28
  export declare const COPY_FEEDBACK_MS = 1400;
29
+ /** Maximum wait for a Clipboard write before offering manual selection (ms). */
30
+ export declare const COPY_ATTEMPT_TIMEOUT_MS = 2000;
@@ -1,11 +1,11 @@
1
1
  import type { MaybeRef, Ref } from "vue";
2
2
  export interface UseFadingScrollOptions {
3
3
  /** Scroll axis. `"x"` reads scrollLeft/Width; `"y"` reads scrollTop/Height. Default `"x"`. */
4
- axis?: "x" | "y";
4
+ axis?: MaybeRef<"x" | "y">;
5
5
  /** Feather the start edge once scrolled past the start. Default `true`. */
6
- fadeStart?: boolean;
6
+ fadeStart?: MaybeRef<boolean>;
7
7
  /** Feather the end edge while trailing overflow remains. Default `true`. */
8
- fadeEnd?: boolean;
8
+ fadeEnd?: MaybeRef<boolean>;
9
9
  }
10
10
  export interface UseFadingScrollControls {
11
11
  /** True when this composable is the ACTIVE writer (the native timeline is absent). */
@@ -1,6 +1,7 @@
1
1
  import type { ColorResolver, OklchStop } from "../../composables/color";
2
2
  import { type BasisComponent } from "./math";
3
3
  import type { FourierFieldConfig } from "./constants";
4
+ import type { RendererStatus } from "../../composables/glass/webgpu/rendererStatus";
4
5
  /**
5
6
  * FourierField — a Fourier epicycle field on the GPU substrate (BC.W-VIZ-FOURIER), a
6
7
  * sibling primitive to Aurora, GooBlob, and DotFlowField. A chain of rotating circles
@@ -46,7 +47,12 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
46
47
  wake: () => void;
47
48
  renderAt: (timeSec: number) => void;
48
49
  setHeadT: (t: number) => void;
49
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
50
+ rendererStatus: Readonly<import("vue").Ref<RendererStatus, RendererStatus>>;
51
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
52
+ rendererStatus: (status: RendererStatus) => any;
53
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
54
+ onRendererStatus?: ((status: RendererStatus) => any) | undefined;
55
+ }>, {
50
56
  seed: string;
51
57
  freeze: boolean;
52
58
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,5 +1,5 @@
1
1
  import { type Ref } from "vue";
2
- import { type GpuBackend } from "../../../composables/glass/webgpu/useGpuSubstrate";
2
+ import { type GpuBackend, type RendererStatus } from "../../../composables/glass/webgpu/useGpuSubstrate";
3
3
  import type { OklchStop } from "../../../composables/color";
4
4
  import type { FourierFieldConfig } from "../constants";
5
5
  import type { BasisComponent } from "../math";
@@ -47,6 +47,7 @@ export interface FourierFieldHandle {
47
47
  readonly reducedMotion: boolean;
48
48
  /** The current loop parameter `head_t ∈ [0,1)` (the scrubber reads/writes it). */
49
49
  readonly headT: number;
50
+ readonly rendererStatus: Readonly<Ref<RendererStatus>>;
50
51
  /** Scrub the clock directly (the transport scrubber / a pointer drag). */
51
52
  setHeadT: (t: number) => void;
52
53
  /** Tear down the renderer + release GPU/GL resources. */
@@ -8,9 +8,9 @@ declare const __VLS_base: import("vue").DefineComponent<HandMarkProps, {
8
8
  play: typeof play;
9
9
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<HandMarkProps> & Readonly<{}>, {
10
10
  color: string;
11
- animation: import("./types").HandAnimation;
12
11
  seed: number;
13
12
  shape: import("./types").HandShape;
13
+ animation: import("./types").HandAnimation;
14
14
  appear: "mount" | "visible" | "manual";
15
15
  jagged: boolean;
16
16
  brush: import("./brush").BrushName | Partial<import("./brush").Brush>;
@@ -12,7 +12,7 @@
12
12
  * - text mode (box == null): use the full viewBox (single-line underline/strike)
13
13
  * - positioned mode (box = {x,y,w,h}): map an explicit rect (circle a datum)
14
14
  *
15
- * The circle arm rides pencil-boil 0.4.x's `ellipsePoints` (the hand-circle
15
+ * The circle arm rides pencil-boil's `ellipsePoints` (the hand-circle
16
16
  * overshoot ring — the sole upstream geometry delta this component required).
17
17
  *
18
18
  * THE SEED RECONCILE (BA.W-HANDMARK [S2]): the wobble centerlines are seeded from
@@ -1,11 +1,9 @@
1
1
  /**
2
2
  * handmark — the ./handmark barrel (SPEC §11).
3
3
  * ─────────────────────────────────────────────────────────────────────────────
4
- * `HandMark` is the generic export; `InkMark` is the prose alias the atlas/slides
5
- * import so call sites read as prose (one implementation, zero divergence). The
6
- * pure L1–L3 functions ship too — they are framework-free, directly usable in
7
- * slides decks, D3 charts (call `shapeGeom`/`ellipsePoints` to ink a path), even
8
- * canvas.
4
+ * `HandMark` is the sole public component name. The pure L1–L3 functions ship
5
+ * too — they are framework-free, directly usable in slides decks, D3 charts
6
+ * (call `shapeGeom`/`ellipsePoints` to ink a path), even canvas.
9
7
  *
10
8
  * The DEFAULT is `pen` (clean ink, grain:0 ⇒ no filter, zero extra dep). The
11
9
  * `@mkbabb/pencil-boil` geometry + `perfect-freehand` body are OPTIONAL PEERS;
@@ -17,7 +15,7 @@
17
15
  * editorial draw-on underline is `<HandMark shape="underline" animation="draw-on">`;
18
16
  * the natural pencil-boil morphology is the `boil` brush.
19
17
  */
20
- export { default as HandMark, default as InkMark } from "./HandMark.vue";
18
+ export { default as HandMark } from "./HandMark.vue";
21
19
  export { BRUSHES, resolveBrush, lerpBrush, type Brush, type BrushName, type BlendMode, type TaperSpec, type StampFn, type InkPath, } from "./brush";
22
20
  export { shapeGeom, serialize, boilLines, naturalUnderlinePoints, VB_W, VB_H, UNDERLINE_GAP, type ShapeGeom, } from "./geometry";
23
21
  export { ink, type SVGFragment } from "./ink";
@@ -0,0 +1 @@
1
+ @import "../../styles/glass/glass-atom.css"; @import "../../styles/glass/glass-chip.css"; :root { --icon-chip-glyph-ratio: 2.18; --icon-chip-duotone-fill: 18%; --icon-chip-plate-strength: 25%; --icon-chip-bloom-mix: 35%; --icon-chip-bloom-glow: 28%; --icon-chip-reveal-step: 60ms; } .icon-chip { --_icon-chip-floor: calc( var(--icon-chip-glyph-size, 22px) * var(--icon-chip-glyph-ratio) ); inline-size: max(var(--icon-chip-size, 48px), var(--_icon-chip-floor)); block-size: max(var(--icon-chip-size, 48px), var(--_icon-chip-floor)); display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-pill, 9999px); background-color: color-mix( in srgb, var(--icon-chip-plate-color, var(--muted)) var(--icon-chip-plate-strength), transparent ); color: var(--icon-chip-event-color, var(--muted-foreground)); transition: background-color var(--duration-fast, 150ms) var(--ease-standard), box-shadow var(--duration-fast, 150ms) var(--ease-standard), transform var(--duration-fast, 150ms) var(--ease-out); } .icon-chip__glyph { display: block; flex-shrink: 0; } .icon-chip--bare { inline-size: auto; block-size: auto; background-color: transparent; border-radius: 0; } .icon-chip--saturated { --icon-chip-plate-strength: 40%; } .icon-chip--glass { background-color: transparent; } @media (hover: hover) { .icon-chip--glass.icon-chip--bloom:hover { background-color: transparent; } } .icon-chip--duotone[data-duotone] svg, .icon-chip[data-duotone] .icon-chip__glyph { fill: color-mix( in srgb, var(--icon-chip-event-color, var(--muted-foreground)) var(--icon-chip-duotone-fill), transparent ); } @media (hover: hover) { .icon-chip--bloom:hover { background-color: color-mix( in srgb, var(--icon-chip-plate-color, var(--muted)) var(--icon-chip-bloom-mix), transparent ); box-shadow: 0 0 0 0.25rem color-mix( in srgb, var(--icon-chip-event-color, var(--muted-foreground)) var(--icon-chip-bloom-glow), transparent ); transform: scale(var(--icon-chip-bloom-scale, 1.06)); transition: background-color var(--duration-fast, 150ms) var(--ease-standard), box-shadow var(--duration-fast, 150ms) var(--ease-standard), transform var(--spring-smooth-duration) var(--spring-smooth); } .icon-chip--bloom:hover .icon-chip__glyph { stroke-width: 2; } } @media (prefers-reduced-motion: no-preference) { .icon-chip--reveal[data-reveal] { animation: icon-chip-reveal var(--spring-snappy-duration) var(--spring-snappy) both; animation-delay: calc(var(--d, 0) * var(--icon-chip-reveal-step)); } } @keyframes icon-chip-reveal { from { opacity: 0; transform: scale(0.85) translateY(0.25rem); } to { opacity: 1; transform: none; } } @media (prefers-reduced-motion: reduce) { .icon-chip--bloom:hover { transform: none; } .icon-chip--bloom:hover .icon-chip__glyph { stroke-width: inherit; } .icon-chip--reveal[data-reveal] { animation: none; } }
@@ -21,7 +21,6 @@ export * from "./number-field";
21
21
  export * from "./popover";
22
22
  export * from "./progress";
23
23
  export * from "./radio-group";
24
- export * from "./section";
25
24
  export * from "./select";
26
25
  export * from "./separator";
27
26
  export * from "./skeleton";
@@ -1 +1,2 @@
1
1
  export { default as InfiniteScroll } from "./InfiniteScroll.vue";
2
+ export * from "./composables";
@@ -0,0 +1 @@
1
+ @layer components { .instrument-chassis { position: relative; display: flex; flex-direction: column; background: var(--glass-curvature-overlay, none), color-mix( in oklab, var(--glass-bg-chassis), var(--phase-color, var(--muted-foreground)) var(--phase-tint-amount, 0%) ); transition: --phase-tint-amount var(--motion-duration-phase-handoff, 600ms) var(--motion-ease-standard); -webkit-backdrop-filter: var(--glass-blur-quiet); backdrop-filter: var(--glass-blur-quiet); border: 1px solid var(--glass-border-wash); border-radius: var(--radius-card); box-shadow: var(--glass-shadow-quiet), inset 0 -0.5px 0 0 rgb(0 0 0 / 0.06); overflow: hidden; --phase-color: var(--muted-foreground); --phase-color-label: var(--muted-foreground); --phase-complete-color: var(--color-gold); --phase-complete-color-label: var(--color-gold-dark, var(--color-gold)); container: chassis / inline-size; } .dark .instrument-chassis { background: var(--glass-curvature-overlay-dark, var(--glass-curvature-overlay, none)), color-mix( in oklab, var(--glass-bg-chassis), var(--phase-color, var(--muted-foreground)) var(--phase-tint-amount, 0%) ); } .instrument-chassis::before { content: ""; position: absolute; inset: 0.5px; border-radius: calc(var(--radius-card) - 0.5px); border: 1px solid var(--surface-tint-4); pointer-events: none; z-index: 1; } .dark .instrument-chassis::before { border-color: var(--surface-tint-6); } .instrument-chassis[data-variant="spine"] { background: var(--glass-spine-vignette); -webkit-backdrop-filter: none; backdrop-filter: none; border: 1px solid var(--glass-spine-border); box-shadow: var(--glass-under-shadow-spine); margin: clamp(0.5rem, 2vw, 1.25rem); } .instrument-chassis[data-variant="spine"]::before { display: none; } .instrument-chassis[data-variant="structure"] { border-color: color-mix(in oklab, var(--color-silver-dark) 55%, transparent); } .instrument-chassis[data-variant="structure"]::before { border-color: color-mix(in oklab, var(--color-silver-light) 60%, transparent); } .dark .instrument-chassis[data-variant="structure"]::before { border-color: color-mix(in oklab, var(--color-silver) 40%, transparent); } .instrument-chassis[data-variant="structure"] { --twin-line-catch: color-mix( in oklab, var(--color-silver-light) 50%, transparent ); --twin-line-shadow: color-mix( in oklab, var(--color-silver-dark) 40%, transparent ); } .instrument-chassis[data-phase="ping"] { --phase-color: var(--chart-ping, var(--viz-chebyshev)); --phase-color-label: var( --chart-ping-label, var(--chart-ping, var(--viz-chebyshev)) ); --phase-tint-amount: var(--phase-tint-peak); } .instrument-chassis[data-phase="download"] { --phase-color: var(--chart-download, var(--viz-fourier)); --phase-color-label: var( --chart-download-label, var(--chart-download, var(--viz-fourier)) ); --phase-tint-amount: var(--phase-tint-peak); } .instrument-chassis[data-phase="upload"] { --phase-color: var(--chart-upload, var(--viz-amber)); --phase-color-label: var( --chart-upload-label, var(--chart-upload, var(--viz-amber)) ); --phase-tint-amount: var(--phase-tint-peak); } .instrument-chassis[data-phase="jitter"] { --phase-color: var(--chart-jitter, var(--viz-legendre)); --phase-color-label: var( --chart-jitter-label, var(--chart-jitter, var(--viz-legendre)) ); --phase-tint-amount: var(--phase-tint-peak); } .instrument-chassis[data-phase="complete"] { --phase-color: var(--phase-complete-color); --phase-color-label: var(--phase-complete-color-label); --phase-tint-amount: var(--phase-tint-peak); } @media (prefers-reduced-motion: reduce) { .instrument-chassis { transition: none; } } .instrument-strip { position: relative; display: flex; align-items: center; gap: var(--instrument-strip-gap, 0.75rem); padding: var(--instrument-strip-padding-block, 0.875rem) var(--instrument-strip-padding-inline, 1.25rem); z-index: 2; } .instrument-dial { position: relative; display: grid; grid-template-columns: var( --instrument-dial-columns, minmax(0, 1.2fr) 1px minmax(0, 1fr) ); align-items: center; gap: var(--instrument-dial-gap, 1.5rem); padding: var(--instrument-dial-padding-block, 1.5rem) var(--instrument-dial-padding-inline, 1.5rem); z-index: 2; } .instrument-control { position: relative; display: flex; align-items: center; gap: var(--instrument-control-gap, 0.5rem); padding: var(--instrument-control-padding-block, 0.875rem) var(--instrument-control-padding-inline, 1.25rem); z-index: 2; } .chassis-divider { @apply twin-line-divider; flex-shrink: 0; position: relative; background: transparent; z-index: 2; pointer-events: none; } .chassis-divider--horizontal { display: flex; flex-direction: column; height: 2px; width: 100%; } .chassis-divider--vertical { display: flex; flex-direction: row; width: 2px; height: var(--chassis-divider-vertical-height, 70%); align-self: center; justify-self: center; } .bezel-line { display: block; flex-shrink: 0; } .chassis-divider--horizontal .bezel-line { height: 1px; width: 100%; } .chassis-divider--vertical .bezel-line { width: 1px; height: 100%; } .bezel-line.top { background: var(--twin-line-catch); } .bezel-line.bottom { background: var(--twin-line-shadow); } .instrument-chassis .dial-divider { align-self: stretch; } @container chassis (max-width: 44.9375rem) { .instrument-chassis .instrument-dial { grid-template-columns: 1fr; grid-template-rows: var(--instrument-dial-meter-reserve-mobile, minmax(0, 1fr)) auto auto; min-height: var(--instrument-dial-min-height-mobile, 24rem); gap: var(--instrument-dial-gap-mobile, 1.5rem); } .instrument-chassis .instrument-dial .dial-divider, .instrument-chassis .instrument-dial .chassis-divider--vertical { flex-direction: column; width: 70%; height: 2px; margin-inline: auto; } .instrument-chassis .instrument-dial .dial-divider .bezel-line, .instrument-chassis .instrument-dial .chassis-divider--vertical .bezel-line { width: 100%; height: 1px; } } @container chassis (min-width: 45rem) { .instrument-chassis .instrument-dial { min-block-size: var( --instrument-dial-min-block-size-desktop, var(--chassis-max-block-size) ); } } }
@@ -36,7 +36,9 @@ import { type HTMLAttributes } from "vue";
36
36
  * so the message is announced when shown. The region's id is exposed as the
37
37
  * default slot's `errorId` slot-prop so the slotted control can bind
38
38
  * `aria-errormessage="errorId"` (the four wrappers auto-wire it; a raw
39
- * `<LabeledField>` slot binds it manually).
39
+ * `<LabeledField>` slot binds it manually). It is polite by default; a form
40
+ * with one summary live region can set `errorLive="off"` to avoid duplicate
41
+ * submit announcements.
40
42
  *
41
43
  * # LabeledField vs ConfiguratorRow — recorded divergence (AZ.W-METRIC-UNIFY §B)
42
44
  *
@@ -59,6 +61,12 @@ type __VLS_Props = {
59
61
  tooltip?: string;
60
62
  labelClass?: HTMLAttributes["class"];
61
63
  required?: boolean;
64
+ /**
65
+ * Controls whether this field's error announces itself. A form-level
66
+ * summary can set this to `off` so one submit does not create competing
67
+ * live-region announcements.
68
+ */
69
+ errorLive?: "off" | "polite" | "assertive";
62
70
  /**
63
71
  * AZ.W-BLOB-REDRESS — render the field's own label `sr-only` (kept in the
64
72
  * DOM for the control↔label a11y association) instead of visibly. Use when
@@ -97,7 +105,9 @@ type __VLS_Slots = {} & {
97
105
  } & {
98
106
  error?: (props: typeof __VLS_13) => any;
99
107
  };
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>;
108
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
109
+ errorLive: "off" | "polite" | "assertive";
110
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
101
111
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
102
112
  declare const _default: typeof __VLS_export;
103
113
  export default _default;
@@ -1,25 +1,32 @@
1
+ import { type InputHTMLAttributes } from "vue";
1
2
  type __VLS_Props = {
2
3
  modelValue: string | number;
3
4
  label: string;
4
- tooltip: string;
5
+ tooltip?: string;
5
6
  labelClass?: string;
6
7
  inputClass?: string;
7
8
  type?: string;
9
+ autocomplete?: InputHTMLAttributes["autocomplete"];
10
+ inputmode?: InputHTMLAttributes["inputmode"];
11
+ enterkeyhint?: InputHTMLAttributes["enterkeyhint"];
12
+ pattern?: InputHTMLAttributes["pattern"];
13
+ placeholder?: InputHTMLAttributes["placeholder"];
8
14
  /**
9
15
  * AQ.W4 §W4.5 — mark the field required. Threads the `aria-hidden`
10
16
  * asterisk onto the label AND sets the native `required` attribute on the
11
17
  * inner `<Input>` (the semantic carrier that drives `:user-invalid`).
12
18
  */
13
19
  required?: boolean;
20
+ errorLive?: "off" | "polite" | "assertive";
14
21
  };
15
22
  declare var __VLS_17: {};
16
23
  type __VLS_Slots = {} & {
17
24
  error?: (props: typeof __VLS_17) => any;
18
25
  };
19
26
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
20
- "update:modelValue": (value: string) => any;
27
+ "update:modelValue": (value: string | number) => any;
21
28
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
22
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
29
+ "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
23
30
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
24
31
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
25
32
  declare const _default: typeof __VLS_export;
@@ -1,4 +1,5 @@
1
1
  import type { LiquidGridConfig } from "./constants";
2
+ import type { RendererStatus } from "../../composables/glass/webgpu/rendererStatus";
2
3
  /**
3
4
  * LiquidGrid — a liquid AA-grid: evenly-spaced LARGER lines on a slowly breathing
4
5
  * curl-flow sheet.
@@ -33,9 +34,12 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
33
34
  resume: () => void;
34
35
  wake: () => void;
35
36
  renderAt: (timeSec: number) => void;
37
+ rendererStatus: Readonly<import("vue").Ref<RendererStatus, RendererStatus>>;
36
38
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
39
+ rendererStatus: (status: RendererStatus) => any;
37
40
  "update:paused": (value: boolean) => any;
38
41
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
42
+ onRendererStatus?: ((status: RendererStatus) => any) | undefined;
39
43
  "onUpdate:paused"?: ((value: boolean) => any) | undefined;
40
44
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
41
45
  declare const _default: typeof __VLS_export;
@@ -1,5 +1,5 @@
1
1
  import { type Ref } from "vue";
2
- import { type GpuBackend } from "../../../composables/glass/webgpu/useGpuSubstrate";
2
+ import { type GpuBackend, type RendererStatus } from "../../../composables/glass/webgpu/useGpuSubstrate";
3
3
  import type { LiquidGridConfig } from "../constants";
4
4
  export interface UseLiquidGridOptions {
5
5
  config: LiquidGridConfig;
@@ -20,6 +20,7 @@ export interface LiquidGridHandle {
20
20
  renderAt: (timeSec: number) => void;
21
21
  /** The live `prefers-reduced-motion: reduce` state. */
22
22
  readonly reducedMotion: boolean;
23
+ readonly rendererStatus: Readonly<Ref<RendererStatus>>;
23
24
  /** Tear down the renderer + release GPU/GL resources. */
24
25
  dispose: () => void;
25
26
  }
@@ -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
- containerName: string;
81
80
  as: string | Component;
81
+ containerName: string;
82
82
  rows: number;
83
83
  register: "audacious" | "result";
84
84
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -39,8 +39,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
39
39
  onSelect?: ((index: number) => any) | undefined;
40
40
  "onUpdate:active"?: ((value: number) => any) | undefined;
41
41
  }>, {
42
- orientation: "horizontal" | "vertical";
43
42
  pattern: "tabs" | "group";
43
+ orientation: "horizontal" | "vertical";
44
44
  ariaLabel: string;
45
45
  ring: boolean;
46
46
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -38,9 +38,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
38
38
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
39
39
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
40
40
  }>, {
41
- align: "center" | "start" | "end";
42
41
  surface: Surface;
43
42
  sideOffset: number;
43
+ align: "end" | "start" | "center";
44
44
  portal: boolean;
45
45
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
46
46
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,54 +1,19 @@
1
1
  import { type HTMLAttributes } from "vue";
2
2
  import type { ProgressRootProps } from "reka-ui";
3
- import type { ProgressSegment } from "./useProgressGeometry";
4
- type ProgressVariant = "default" | "gradient" | "liquid" | "sectioned";
5
- /**
6
- * Progress — the thin variant dispatcher over four orthogonal designs:
7
- * - `default` → ProgressDefault (plain rail + translateX intake-pulse)
8
- * - `gradient` → ProgressGradient (lifecycle motion grammar + indeterminate)
9
- * - `liquid` → ProgressLiquid (the shared .glass-liquid-fill glass cylinder;
10
- * the phase-colour meter — BG.W-LIQUID-FILL)
11
- * - `sectioned` → ProgressSectioned (phase-bus cells + spring active fill)
12
- *
13
- * The dispatcher carries an EXPLICIT prop-boundary contract: incompatible prop
14
- * combinations are refused OUT LOUD (a dev throw) rather than silently producing
15
- * a wrong paint. The historical break this closes: a consumer passing
16
- * `:model-value` to the sectioned variant had it SILENTLY overridden by the
17
- * cumulative cell-fill aggregate, so the bar ignored the value the consumer
18
- * thought drove it. The contract below makes that misuse a loud error — the
19
- * sectioned variant derives its own a11y value from the cells; `modelValue` is
20
- * not its truth.
21
- */
3
+ type ProgressVariant = "default" | "gradient" | "liquid";
22
4
  type __VLS_Props = ProgressRootProps & {
23
5
  class?: HTMLAttributes["class"];
24
- /**
25
- * 'default' = bg-secondary rail + bg-primary indicator.
26
- * 'gradient' = rail respects --progress-track; indicator respects
27
- * --progress-fill; the W4 lifecycle motion grammar layers on.
28
- * 'liquid' = the shared .glass-liquid-fill glass-cylinder meter
29
- * (BG.W-LIQUID-FILL) — the fill tints off --progress-fill
30
- * (or --liquid-fill-tint) with zero per-site glass knowledge.
31
- * 'sectioned' = phase-bus (AB.W3.T2). N colour-coded cells with gradient
32
- * seams; the active cell carries a spring fill. The per-cell
33
- * state map is the truth — NOT `modelValue`.
34
- */
35
6
  variant?: ProgressVariant;
36
- /** Sectioned only — ordered segment list. */
37
- segments?: ProgressSegment[];
38
- /** Sectioned only — key of the currently active segment. */
39
- currentSegmentKey?: string | null;
40
- /** Sectioned only — 0..1 fill of the active segment. */
41
- activeProgress?: number;
7
+ /** Decorative checkpoints in the same 0..max domain as modelValue. */
8
+ marks?: readonly number[];
42
9
  /** Gradient only — indeterminate sweep opt-in. */
43
10
  indeterminate?: boolean;
44
11
  };
45
12
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
46
- variant: ProgressVariant;
47
13
  modelValue: number | null;
14
+ variant: ProgressVariant;
48
15
  indeterminate: boolean;
49
- segments: ProgressSegment[];
50
- currentSegmentKey: string | null;
51
- activeProgress: number;
16
+ marks: readonly number[];
52
17
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
53
18
  declare const _default: typeof __VLS_export;
54
19
  export default _default;
@@ -1,24 +1,8 @@
1
1
  import { type HTMLAttributes } from "vue";
2
2
  import { type ProgressRootProps } from "reka-ui";
3
- /**
4
- * Default progress variant — a `--progress-track` rail + a `--progress-fill`
5
- * indicator with a `translateX(-%)` intake-pulse. The plainest rung; no lifecycle
6
- * motion grammar (that lives on the gradient variant). The thin `Progress`
7
- * dispatcher routes here for `variant="default"`.
8
- *
9
- * Token-read parity with the `gradient` variant (AX.W24 F1): the rail/indicator
10
- * colour read `--progress-track`/`--progress-fill` (fallbacks
11
- * `var(--progress-track-on-glass)`/`var(--primary)`) as Tailwind arbitrary
12
- * properties — `bg-[var(--token,…)]` /
13
- * `[background:var(--token,…)]` — NOT the `bg-secondary`/`bg-primary` utility
14
- * classes. A `bg-primary` utility lives in `@layer utilities`, which ALWAYS
15
- * outranks the `@layer components` `.glass-progress-rail` recipe regardless of
16
- * source order, so a `:root { --progress-fill }` (or `.glass-progress-rail`'s
17
- * token-set) override was a silent no-op on the default variant. Reading the token
18
- * at source makes the `default` variant token-retintable for EVERY consumer.
19
- */
20
3
  type __VLS_Props = ProgressRootProps & {
21
4
  class?: HTMLAttributes["class"];
5
+ marks?: readonly number[];
22
6
  };
23
7
  declare const __VLS_export: 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>;
24
8
  declare const _default: typeof __VLS_export;
@@ -10,6 +10,7 @@ import { type ProgressRootProps } from "reka-ui";
10
10
  */
11
11
  type __VLS_Props = ProgressRootProps & {
12
12
  class?: HTMLAttributes["class"];
13
+ marks?: readonly number[];
13
14
  /**
14
15
  * AI.W4-M.1 — indeterminate sweep. When true, the rail runs a slow
15
16
  * left-to-right gradient pan (`--motion-duration-progress-indeterminate`, 4s
@@ -15,6 +15,7 @@ import { type ProgressRootProps } from "reka-ui";
15
15
  */
16
16
  type __VLS_Props = ProgressRootProps & {
17
17
  class?: HTMLAttributes["class"];
18
+ marks?: readonly number[];
18
19
  };
19
20
  declare const __VLS_export: 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>;
20
21
  declare const _default: typeof __VLS_export;
@@ -1,6 +1 @@
1
1
  export { default as Progress } from "./Progress.vue";
2
- export { default as ProgressDefault } from "./ProgressDefault.vue";
3
- export { default as ProgressGradient } from "./ProgressGradient.vue";
4
- export { default as ProgressLiquid } from "./ProgressLiquid.vue";
5
- export { default as ProgressSectioned } from "./ProgressSectioned.vue";
6
- export { useProgressGeometry, type ProgressSegment, type SectionedCell, } from "./useProgressGeometry";
@@ -0,0 +1 @@
1
+ .progress-value-marks { position: absolute; inset: 0; pointer-events: none; } .progress-value-mark { position: absolute; inset-block-start: 50%; inset-inline-start: var(--value-mark-position); width: var(--value-mark-size, 0.375rem); aspect-ratio: 1; border-radius: 50%; background: var( --value-mark-color, color-mix(in srgb, var(--foreground) 34%, transparent) ); transform: translate(-50%, -50%); } [dir="rtl"] .progress-value-mark { transform: translate(50%, -50%); } .progress-value-fill { position: relative; z-index: 1; transform: translateX(calc(-100% + var(--progress-value-percent))); } [dir="rtl"] .progress-value-fill { transform: translateX(calc(100% - var(--progress-value-percent))); }
@@ -43,11 +43,11 @@ type __VLS_Props = {
43
43
  class?: HTMLAttributes['class'];
44
44
  };
45
45
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
46
- variant: PulseVariant;
47
46
  speed: PulseSpeed;
47
+ variant: PulseVariant;
48
48
  count: number;
49
- once: boolean;
50
49
  intensity: PulseIntensity;
50
+ once: boolean;
51
51
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
52
52
  declare const _default: typeof __VLS_export;
53
53
  export default _default;
@@ -0,0 +1 @@
1
+ .scroll-progress-rim { --scroll-progress-rim-inset: 1px; position: absolute; inset: var(--scroll-progress-rim-inset); z-index: 0; isolation: isolate; border-radius: var(--scroll-progress-rim-radius, inherit); pointer-events: none; } .scroll-progress-rim__track { position: absolute; inset: 0; border: var(--scroll-progress-rim-width, 4px) solid transparent; border-radius: inherit; background: conic-gradient( from 0deg, var(--scroll-progress-rim-spectrum, var(--section-color-7)), transparent var(--scroll-progress-rim-fill, 0%), transparent 100% ), color-mix(in srgb, var(--foreground) 14%, transparent); -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box; -webkit-mask-composite: xor; mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box; mask-composite: exclude; } .scroll-progress-rim[data-coverage="bottom-edge"] .scroll-progress-rim__track { background: linear-gradient( to right, var(--scroll-progress-rim-spectrum, var(--section-color-7)), transparent var(--scroll-progress-rim-fill, 0%), transparent 100% ), color-mix(in srgb, var(--foreground) 14%, transparent); clip-path: inset(calc(100% - var(--scroll-progress-rim-width, 4px)) 0 0); } .scroll-progress-rim[data-coverage="inline-end-edge"] .scroll-progress-rim__track { background: linear-gradient( to bottom, var(--scroll-progress-rim-spectrum, var(--section-color-7)), transparent var(--scroll-progress-rim-fill, 0%), transparent 100% ), color-mix(in srgb, var(--foreground) 14%, transparent); clip-path: inset(0 0 0 calc(100% - var(--scroll-progress-rim-width, 4px))); } .scroll-progress-rim[data-coverage="inline-end-edge"]:dir(rtl) .scroll-progress-rim__track { clip-path: inset(0 calc(100% - var(--scroll-progress-rim-width, 4px)) 0 0); }
@@ -7,6 +7,7 @@ type __VLS_Props = {
7
7
  size?: ControlSize;
8
8
  surface?: Surface;
9
9
  placeholder?: string;
10
+ ariaLabel?: string;
10
11
  typeLabel?: (item: SearchableItem) => string;
11
12
  };
12
13
  declare function focus(): void;
@@ -14,9 +15,10 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
14
15
  focus: typeof focus;
15
16
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
16
17
  size: ControlSize;
17
- variant: SearchVariant;
18
- surface: Surface;
19
18
  placeholder: string;
19
+ surface: Surface;
20
+ variant: SearchVariant;
21
+ ariaLabel: string;
20
22
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
23
  declare const _default: typeof __VLS_export;
22
24
  export default _default;
@@ -22,10 +22,10 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
22
22
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
23
23
  }>, {
24
24
  size: ControlSize;
25
- variant: SearchVariant;
26
- surface: Surface;
27
25
  modelValue: string;
28
26
  placeholder: string;
27
+ surface: Surface;
28
+ variant: SearchVariant;
29
29
  tag: string;
30
30
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
31
31
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -9,7 +9,7 @@ import { type ControlSize, controlSizeClass } from "../_shared/useControlSize";
9
9
  * searchFieldVariants({ variant: "bare" }) → "border-none bg-transparent p-0 rounded-none"
10
10
  */
11
11
  export declare const searchFieldVariants: (props?: ({
12
- variant?: "floating" | "inline" | "bare" | null | undefined;
12
+ variant?: "inline" | "floating" | "bare" | null | undefined;
13
13
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
14
  export type SearchVariant = NonNullable<VariantProps<typeof searchFieldVariants>["variant"]>;
15
15
  /** The CVA's variant-prop shape — the `/api` discovery surface (the SFCs cannot
@@ -28,8 +28,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
28
28
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
29
29
  }>, {
30
30
  position: "item-aligned" | "popper";
31
- align: "center" | "start" | "end";
32
31
  surface: Surface;
32
+ align: "end" | "start" | "center";
33
33
  collisionPadding: number | Partial<Record<"top" | "right" | "bottom" | "left", number>>;
34
34
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
35
35
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -6,5 +6,3 @@ export { default as SelectGroup } from './SelectGroup.vue';
6
6
  export { default as SelectItem } from './SelectItem.vue';
7
7
  export { default as SelectLabel } from './SelectLabel.vue';
8
8
  export { default as SelectSeparator } from './SelectSeparator.vue';
9
- export { default as SelectScrollUpButton } from './SelectScrollUpButton.vue';
10
- export { default as SelectScrollDownButton } from './SelectScrollDownButton.vue';