@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
@@ -26,26 +26,12 @@
26
26
  --modal-shadow: var(--shadow-modal);
27
27
 
28
28
  /* Elevation scale */
29
- --shadow-xs: 0 1px 3px color-mix(in srgb, var(--shadow-color) 4%, transparent),
30
- 0 1px 2px color-mix(in srgb, var(--shadow-color) 6%, transparent);
31
29
  --shadow-sm: 0 2px 8px color-mix(in srgb, var(--shadow-color) 6%, transparent);
32
30
  --shadow-md: 0 4px 16px color-mix(in srgb, var(--shadow-color) 8%, transparent);
33
31
  --shadow-lg: 0 4px 20px color-mix(in srgb, var(--shadow-color) 12%, transparent);
34
32
  --shadow-xl: 0 8px 24px color-mix(in srgb, var(--shadow-color) 14%, transparent);
35
33
  --shadow-2xl: 0 25px 50px -12px color-mix(in srgb, var(--shadow-color) 25%, transparent);
36
34
 
37
- /* Z.W2.T3a — uniform-cast shadow rung. Offset 0 / 0, no directional
38
- Y bias. Use case: dock-hosted icons (e.g. the speedtest settings
39
- gear) where the surrounding dock shadow's downward cast reads as
40
- a per-icon right-edge halo on the rightmost child (A2 §B7). The
41
- uniform variant carries the same color-mix recipe family as the
42
- sized rungs (`--shadow-md`, `--shadow-lg`) so the perceived
43
- elevation is a peer, not a sibling. Consumers compose via
44
- `--shadow-dock-override: var(--shadow-uniform)` per-instance, or
45
- attach to per-icon-button stacks where directional cast is wrong-
46
- shape. Documented in DESIGN.md token table. */
47
- --shadow-uniform: 0 0 12px color-mix(in srgb, var(--shadow-color) 8%, transparent);
48
-
49
35
  /* Card = soft drop plate by default. The cartoon offset is a brand-flavoured
50
36
  decoration (a sticker look), not the canonical card shape. Consumers
51
37
  wanting the cartoon look pass <Card surface="cartoon">, which composes the
@@ -54,14 +40,6 @@
54
40
  --shadow-card: var(--shadow-md);
55
41
  --card-shadow: var(--shadow-card);
56
42
 
57
- /* AI.W1-α — sticky CardHeader background. Parameterises the
58
- `bg-card/60` literal value.js's PaneHeader.vue carried so the
59
- glass-ui canon owns the recipe. The scroll-driven `<CardHeader
60
- shrink>` choreography reads this token for its sticky-header
61
- backdrop tint; consumers retune per-app by overriding the
62
- variable at any ancestor. Auto-dark via `--card`. */
63
- --card-header-bg: color-mix(in srgb, var(--card) 60%, transparent);
64
-
65
43
  /* Dock shadows — a single omnidirectional glow in the
66
44
  `--shadow-md`/`--shadow-lg` family (a directional drop concentrated on
67
45
  the pill's rounded right cap as a right-edge halo; the dock's own
@@ -183,19 +161,15 @@
183
161
  satellite bulges). Both rungs ride the SAME `--blob-shadow-color` (the ambient
184
162
  `--shadow-color`/`--foreground` base), so the grounded read re-resolves under
185
163
  `.dark` with no hardcoded dark block (the house cartoon-shadow adaptive pattern).
186
- A consumer retunes grounding by overriding `--blob-shadow-contact-*` or the whole
187
- `--blob-shadow` composite on the cascade. */
164
+ A consumer retunes grounding by overriding `--blob-shadow-contact-*` on the cascade. */
188
165
  --blob-shadow-contact-offset: 0 1px;
189
166
  --blob-shadow-contact-blur: 3px;
190
167
  --blob-shadow-contact-strength: 38%;
191
168
  --blob-shadow-contact: var(--blob-shadow-contact-offset) var(--blob-shadow-contact-blur)
192
169
  color-mix(in srgb, var(--blob-shadow-color) var(--blob-shadow-contact-strength), transparent);
193
170
 
194
- /* The grounded composite is consumed by GooBlob.vue as TWO chained drop-shadow()
195
- filters: drop-shadow(ambient) drop-shadow(contact). `--blob-shadow` keeps the
196
- single-rung ambient value (back-compat: a consumer reading the old token still
197
- gets the soft cast); the grounded read is the explicit two-rung pair. */
198
- --blob-shadow: var(--blob-shadow-ambient);
171
+ /* GooBlob consumes the grounded pair as chained ambient and contact
172
+ drop-shadow() filters. */
199
173
 
200
174
  /* The hover lift — the ambient cast deepens + softens (the dome rises) AND the
201
175
  contact band TIGHTENS toward the lifted base (a touch of extra grounding-darken
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Runtime design tokens — the JS/TS projection of glass-ui's CSS custom properties.
3
+ *
4
+ * CSS tokens in `src/styles/tokens.css` drive the rendered UI. Some contexts
5
+ * (echarts configs, Canvas 2D, WebGL, canvas-rendered charts) cannot resolve
6
+ * CSS variables at render time — they need literal numbers and strings.
7
+ *
8
+ * This module mirrors the CSS tokens for those consumers. Keep in sync.
9
+ */
10
+
11
+ /** Chart container heights (px). Match `--chart-height-*` in tokens.css. */
12
+ export const chartHeights = {
13
+ compact: 240,
14
+ default: 360,
15
+ large: 400,
16
+ } as const;
17
+
18
+ /** Echarts grid margin (px). Matches `--chart-margin` in tokens.css. */
19
+ export const chartMargin = 20;
20
+
21
+ /**
22
+ * Neutral divider colors for chart gridlines, axis ticks, overlays.
23
+ * rgba literals — echarts / Canvas 2D can't parse CSS vars in color options.
24
+ * Match `--color-divider-*` in tokens.css.
25
+ */
26
+ export const chartColors = {
27
+ dividerSubtle: "rgba(128, 128, 128, 0.05)",
28
+ dividerMedium: "rgba(128, 128, 128, 0.4)",
29
+ dividerStrong: "rgba(128, 128, 128, 0.7)",
30
+ } as const;
31
+
32
+ /** Default form-select minimum width (px). Matches `--input-min-width-sm`. */
33
+ export const minWidthInputSm = 80;
34
+
35
+ /**
36
+ * Stagger increments (ms) — TS mirror of the `--motion-stagger-*` canon
37
+ * promoted at AJ-W4-κ. Use these for animation cascades driven from JS
38
+ * (e.g. echarts `animationDelay: (idx) => idx * motionStagger.default`,
39
+ * Vue inline-style binding) so the JS-driven cascade and CSS-driven
40
+ * cascade resolve to the same value. The three named tiers correspond
41
+ * to `--motion-stagger-tight | --motion-stagger-default | --motion-stagger-relaxed`
42
+ * in `styles/tokens.css`:
43
+ *
44
+ * - `tight` (40ms) — dense row cascades (StatsCards row strip,
45
+ * results-table `:nth-child` delays)
46
+ * - `default` (80ms) — canonical row stagger (ResultStack, bar
47
+ * entrance, useStaggerReveal default)
48
+ * - `relaxed` (120ms) — wider series cascades (TimeSeriesChart)
49
+ *
50
+ * Retires per-consumer constants (SERIES_STAGGER_MS, BAR_STAGGER_MS,
51
+ * STATS_CARD_STAGGER_MS) into single-source token reads. Per A5 §8.9 +
52
+ * AJ-W4-κ.
53
+ */
54
+ export const motionStagger = {
55
+ tight: 40,
56
+ default: 80,
57
+ relaxed: 120,
58
+ } as const;
@@ -150,8 +150,11 @@
150
150
  consumer tuning the bold-letterform character (a lighter title, a heavier
151
151
  display) had to fork every @utility. These name the weight the way the size
152
152
  ladder names --type-*: the semantic.css utilities read them; the literals are
153
- byte-identical defaults (display 600, heading/title 700). */
154
- --type-weight-display: 600;
153
+ byte-identical defaults (display 600, heading/title 700). The public
154
+ --font-display-weight knob feeds the canonical internal display register so a
155
+ consumer override reaches every display utility without a utility fork. */
156
+ --font-display-weight: 600;
157
+ --type-weight-display: var(--font-display-weight);
155
158
  --type-weight-heading: 700;
156
159
  --type-weight-title: 700;
157
160
 
@@ -26,7 +26,7 @@ body {
26
26
  line-height: var(--type-leading-display);
27
27
  letter-spacing: var(--type-tracking-display);
28
28
  font-optical-sizing: auto;
29
- font-weight: 600;
29
+ font-weight: var(--type-weight-display);
30
30
  /* AQ.W3 §W3.3 — balance multi-line display headlines. Text-only (no box) so
31
31
  balance is safe; degrades to unbalanced wrapping with zero break. */
32
32
  text-wrap: balance;
@@ -62,7 +62,7 @@ body {
62
62
  line-height: var(--type-leading-display);
63
63
  letter-spacing: var(--type-tracking-display);
64
64
  font-optical-sizing: auto;
65
- font-weight: 600;
65
+ font-weight: var(--type-weight-display);
66
66
  text-wrap: balance; /* AQ.W3 §W3.3 */
67
67
  }
68
68
 
@@ -72,7 +72,7 @@ body {
72
72
  line-height: var(--type-leading-display);
73
73
  letter-spacing: var(--type-tracking-display);
74
74
  font-optical-sizing: auto;
75
- font-weight: 600;
75
+ font-weight: var(--type-weight-display);
76
76
  text-wrap: balance; /* AQ.W3 §W3.3 */
77
77
  }
78
78
 
@@ -82,7 +82,7 @@ body {
82
82
  line-height: var(--type-leading-display);
83
83
  letter-spacing: var(--type-tracking-display);
84
84
  font-optical-sizing: auto;
85
- font-weight: 600;
85
+ font-weight: var(--type-weight-display);
86
86
  text-wrap: balance; /* AQ.W3 §W3.3 */
87
87
  }
88
88
 
@@ -92,7 +92,7 @@ body {
92
92
  line-height: var(--type-leading-display);
93
93
  letter-spacing: var(--type-tracking-display);
94
94
  font-optical-sizing: auto;
95
- font-weight: 600;
95
+ font-weight: var(--type-weight-display);
96
96
  text-wrap: balance; /* AQ.W3 §W3.3 */
97
97
  }
98
98
 
@@ -103,10 +103,10 @@
103
103
  /* Responsive pane title */
104
104
  .text-pane-title {
105
105
  font-family: var(--font-display);
106
- font-size: clamp(2.4rem, 1.8rem + 2vw, 3.33rem);
106
+ font-size: var(--type-display-2);
107
107
  line-height: var(--type-leading-display);
108
- letter-spacing: var(--type-tracking-tight);
109
- font-weight: 600;
108
+ letter-spacing: var(--type-tracking-display);
109
+ font-weight: var(--type-weight-display);
110
110
  font-optical-sizing: auto;
111
111
  }
112
112
 
@@ -165,9 +165,9 @@
165
165
  color: color-mix(in oklab, var(--neutral-5), var(--foreground) 22%);
166
166
  }
167
167
 
168
- /* Font-feature helpers */
168
+ /* Numeric role — a size-agnostic modifier for values, counters, and tables. */
169
169
  .tabular-nums {
170
- font-variant-numeric: tabular-nums;
170
+ font-variant-numeric: tabular-nums lining-nums;
171
171
  }
172
172
 
173
173
  /* Kinetic: per-character stagger. The per-glyph increment is the single-
@@ -103,7 +103,7 @@
103
103
  inline-size: 100%;
104
104
  min-inline-size: 0;
105
105
  }
106
- .labeled-field:has(:user-invalid),
106
+ .labeled-field:has(:where(:user-invalid, [aria-invalid="true"])),
107
107
  .labeled-field.has-error {
108
108
  --field-label-color: var(--destructive);
109
109
  }
@@ -119,12 +119,12 @@
119
119
  color: var(--destructive);
120
120
  margin-block-start: 0.25rem;
121
121
  }
122
- .labeled-field:has(:user-invalid) .labeled-field-error,
122
+ .labeled-field:has(:where(:user-invalid, [aria-invalid="true"])) .labeled-field-error,
123
123
  .labeled-field.has-error .labeled-field-error {
124
124
  display: block;
125
125
  }
126
126
  /* Hide the error text once the field reads valid (the user corrected it). */
127
- .labeled-field:has(:user-valid) .labeled-field-error,
127
+ .labeled-field:has(:where(:user-valid, [aria-invalid="false"])) .labeled-field-error,
128
128
  .labeled-field.has-valid .labeled-field-error {
129
129
  display: none;
130
130
  }
@@ -283,11 +283,11 @@
283
283
  scale var(--duration-fast) var(--transition-liquid-spatial);
284
284
  transform-origin: center center;
285
285
  }
286
- .tap-squish:active {
286
+ .tap-squish:not([data-press-armed]):active {
287
287
  scale: var(--scale-press);
288
288
  }
289
289
  @media (prefers-reduced-motion: reduce) {
290
- .tap-squish:active {
290
+ .tap-squish:not([data-press-armed]):active {
291
291
  /* Reset to the longhand identity (not `transform: none`) so the
292
292
  press scale is neutralized under PRM. */
293
293
  scale: 1;
@@ -104,14 +104,16 @@
104
104
  surfaces now ride the spring-clocked `.glass-reveal`, BB.W-LIQUID-REVEAL).
105
105
  Pairs with
106
106
  `slide-in-from-{top,right,bottom,left}-N` to compose side-keyed entries.
107
- The open path uses --duration-panel (slow, deliberate); the close path
108
- uses --duration-fast so dismiss feels snappy. R5 vocab.γ gap row 6;
107
+ The open path uses --duration-panel (slow, deliberate); the close path uses
108
+ --duration-fast so dismiss feels snappy. Both base clocks multiply the ONE
109
+ inherited --motion-tempo reader here, so portaled panels and scrims co-scale
110
+ without a story/consumer bridge or a second duration alias. R5 vocab.γ gap row 6;
109
111
  consumed by W2.A sheet/drawer migration. */
110
112
  @utility sheet-animate {
111
113
  @apply data-[state=open]:animate-in data-[state=closed]:animate-out
112
114
  data-[state=open]:fade-in data-[state=closed]:fade-out
113
- data-[state=open]:duration-[var(--duration-panel)]
114
- data-[state=closed]:duration-[var(--duration-fast)];
115
+ data-[state=open]:duration-[calc(var(--duration-panel)*var(--motion-tempo))]
116
+ data-[state=closed]:duration-[calc(var(--duration-fast)*var(--motion-tempo))];
115
117
  }
116
118
 
117
119
  /* ── Calm CTA register (BA.W-GLASS-CAL, H2a — the disco retired) ──────────
@@ -248,29 +250,6 @@
248
250
  );
249
251
  }
250
252
 
251
- /* ── Text-highlight paint (CSS Custom Highlight API) ─────────────────────
252
- The default `::highlight()` paint for the `useTextHighlight` composable
253
- (composables/motion; the `/motion-core` subpath, AX.W37). A named `Highlight`
254
- registered in `CSS.highlights`
255
- under one of these keys paints its `Range` set without a `<mark>` wrapper.
256
- Token-bridged: the search mark reads the canonical pastel-yellow rainbow
257
- token at a soft alpha; the equation/variable mark reads `--primary`. Both
258
- axes are overridable via the `--text-highlight-*` custom properties. */
259
- ::highlight(glass-search-mark) {
260
- background-color: var(
261
- --text-highlight-search-bg,
262
- color-mix(in srgb, var(--rainbow-pastel-yellow) 55%, transparent)
263
- );
264
- color: var(--text-highlight-search-fg, inherit);
265
- }
266
- ::highlight(glass-mark) {
267
- background-color: var(
268
- --text-highlight-bg,
269
- color-mix(in srgb, var(--primary) 18%, transparent)
270
- );
271
- color: var(--text-highlight-fg, inherit);
272
- }
273
-
274
253
  /* ── Interactive-button four-state recipe ────────────────────────────────
275
254
  `.btn-interactive` carries the canonical "Button-with-spring-hover"
276
255
  four-state contract — transition + hover-scale + active-press + disabled-
@@ -3,11 +3,11 @@
3
3
  * ── Thin @import ROOT (cohesion-aware carve) ───────────────────────────────
4
4
  * The utility body is carved into cohesive `utilities/*.css` partials (each
5
5
  * under the 500-line no-god-module bound), @import-ed below in CASCADE ORDER.
6
- * The leading @utility animation pair, the @layer components base block (split
7
- * at the metric-badge seam into base/components AND, at BB.W-CARVE3, at the
6
+ * The @layer components base block (split at the metric-badge seam into
7
+ * base/components AND, at BB.W-CARVE3, at the
8
8
  * post-tap-squish seam into base/base-misc — all adjacent same-layer blocks,
9
- * isomorphic), the @utility button cluster, and the a11y @media overrides keep
10
- * their source order so the cascade is unchanged. See
9
+ * isomorphic), and the @utility button cluster keep their source order.
10
+ * Accessibility modes load once at the end of styles/index.css. See
11
11
  * docs/precepts/design-idioms.md §cohesion-aware partials.
12
12
  */
13
13
 
@@ -17,10 +17,8 @@
17
17
  the cascade is unchanged). BB.W-METAL-SHIMMER homes `metal.css` right after
18
18
  `base-misc.css` (its `.gold-shimmer` sibling — both `@layer components` metal
19
19
  registers; the metal family is cohesive with the re-pointed gold-shimmer): */
20
- @import "./utilities/animate.css";
21
20
  @import "./utilities/base.css";
22
21
  @import "./utilities/base-misc.css";
23
22
  @import "./utilities/metal.css";
24
23
  @import "./utilities/components.css";
25
24
  @import "./utilities/btn.css";
26
- @import "./utilities/a11y-overrides.css";
@@ -1,151 +0,0 @@
1
- import { t as e } from "./class-names-5jotTFzp.js";
2
- import { t } from "./_plugin-vue_export-helper-C1je1s0u.js";
3
- import { t as n } from "./createContext-BQ1Gy_LB.js";
4
- import { t as r } from "./Label-C84TaQiw.js";
5
- import { computed as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineComponent as u, mergeModels as d, normalizeClass as f, normalizeStyle as p, openBlock as m, renderSlot as h, toDisplayString as g, unref as _, useId as v, useModel as y, withCtx as b } from "vue";
6
- import { ChevronDown as x, RotateCcw as S } from "@lucide/vue";
7
- //#region src/components/configurator/size.ts
8
- var C = n("configuratorSize"), w = C.KEY;
9
- function T(e) {
10
- C.provide(e);
11
- }
12
- var E = C.use, D = ["data-state"], O = [
13
- "aria-expanded",
14
- "aria-controls",
15
- "data-state"
16
- ], k = { class: "flex min-w-0 items-baseline gap-2" }, A = { class: "configurator-section-label truncate" }, j = {
17
- key: 0,
18
- class: "truncate text-micro font-mono text-muted-foreground/70"
19
- }, M = [
20
- "id",
21
- "aria-hidden",
22
- "inert",
23
- "data-state"
24
- ], N = { class: "min-h-0 overflow-hidden" }, P = ["data-dividers"], F = /* @__PURE__ */ t(/* @__PURE__ */ u({
25
- __name: "ConfiguratorLayer",
26
- props: /* @__PURE__ */ d({
27
- label: {},
28
- sub: {},
29
- id: {},
30
- defaultOpen: {
31
- type: Boolean,
32
- default: !0
33
- },
34
- dividers: { type: Boolean },
35
- class: { type: [
36
- Boolean,
37
- null,
38
- String,
39
- Object,
40
- Array
41
- ] },
42
- bodyClass: { type: [
43
- Boolean,
44
- null,
45
- String,
46
- Object,
47
- Array
48
- ] }
49
- }, {
50
- open: {
51
- type: Boolean,
52
- default: void 0
53
- },
54
- openModifiers: {}
55
- }),
56
- emits: ["update:open"],
57
- setup(t) {
58
- let n = t, r = y(t, "open");
59
- r.value === void 0 && (r.value = n.defaultOpen);
60
- let c = `configurator-layer-body-${v()}`, u = i(() => n.id ?? c);
61
- function d() {
62
- r.value = !r.value;
63
- }
64
- let b = i(() => r.value ? "open" : "closed");
65
- return (i, c) => (m(), o("div", {
66
- "data-slot": "configurator-layer",
67
- class: f(_(e)("configurator-layer border", n.class)),
68
- "data-state": b.value
69
- }, [s("button", {
70
- type: "button",
71
- "data-slot": "configurator-layer-trigger",
72
- class: f(_(e)("configurator-layer-trigger", "group flex w-full items-center justify-between gap-2 py-2", "tap-squish transition-control text-left hover:bg-foreground/5 focus-ring")),
73
- "aria-expanded": r.value,
74
- "aria-controls": u.value,
75
- "data-state": b.value,
76
- onClick: d
77
- }, [s("div", k, [s("span", A, g(t.label), 1), t.sub ? (m(), o("span", j, g(t.sub), 1)) : a("", !0)]), l(_(x), {
78
- class: "h-4 w-4 shrink-0 text-muted-foreground group-data-[state=open]:rotate-180 transition-disclosure",
79
- "aria-hidden": "true"
80
- })], 10, O), s("div", {
81
- id: u.value,
82
- role: "region",
83
- "aria-hidden": !r.value,
84
- inert: !r.value || void 0,
85
- "data-state": b.value,
86
- class: "configurator-layer-region grid motion-reduce:transition-none",
87
- style: p({ gridTemplateRows: r.value ? "1fr" : "0fr" })
88
- }, [s("div", N, [s("div", {
89
- "data-dividers": n.dividers || void 0,
90
- class: f(_(e)("configurator-layer-body py-2 space-y-2", n.dividers && "[&>*+*]:border-t [&>*+*]:pt-2", n.bodyClass))
91
- }, [h(i.$slots, "default", {}, void 0, !0)], 10, P)])], 12, M)], 10, D));
92
- }
93
- }), [["__scopeId", "data-v-733eddff"]]), I = ["data-size"], L = { class: "flex items-baseline justify-between gap-3" }, R = { class: "flex min-w-0 items-baseline gap-2" }, z = {
94
- key: 0,
95
- class: "truncate text-small font-normal text-muted-foreground"
96
- }, B = {
97
- key: 1,
98
- class: "truncate text-micro font-mono text-muted-foreground/70"
99
- }, V = ["aria-label"], H = { class: "flex w-full min-w-0 items-center [&>*]:min-w-0 [&>*]:w-full [&>*]:flex-1" }, U = {
100
- key: 0,
101
- class: "text-micro leading-snug text-muted-foreground/80"
102
- }, W = /* @__PURE__ */ t(/* @__PURE__ */ u({
103
- __name: "ConfiguratorRow",
104
- props: {
105
- label: {},
106
- sub: {},
107
- name: {},
108
- description: {},
109
- canReset: { type: Boolean },
110
- size: {},
111
- class: { type: [
112
- Boolean,
113
- null,
114
- String,
115
- Object,
116
- Array
117
- ] }
118
- },
119
- emits: ["reset"],
120
- setup(t, { emit: n }) {
121
- let u = t, d = n, p = E(), v = i(() => u.size ?? p?.value ?? void 0);
122
- return (n, i) => (m(), o("div", {
123
- "data-slot": "configurator-row",
124
- class: f(_(e)("configurator-row flex flex-col gap-1.5 py-2", u.class)),
125
- "data-size": v.value
126
- }, [
127
- s("div", L, [s("div", R, [
128
- l(_(r), { class: "truncate text-small font-medium text-foreground" }, {
129
- default: b(() => [c(g(t.label), 1)]),
130
- _: 1
131
- }),
132
- t.sub ? (m(), o("span", z, g(t.sub), 1)) : a("", !0),
133
- t.name ? (m(), o("span", B, g(t.name), 1)) : a("", !0)
134
- ]), t.canReset ? (m(), o("button", {
135
- key: 0,
136
- type: "button",
137
- "data-slot": "configurator-reset",
138
- class: "tap-squish transition-control focus-ring inline-flex h-6 w-6 items-center justify-center rounded-pill text-muted-foreground/60 hover:bg-foreground/5 hover:text-foreground",
139
- "aria-label": `Reset ${t.label}`,
140
- onClick: i[0] ||= (e) => d("reset")
141
- }, [l(_(S), {
142
- class: "h-3 w-3",
143
- "aria-hidden": "true"
144
- })], 8, V)) : a("", !0)]),
145
- s("div", H, [h(n.$slots, "default", {}, void 0, !0)]),
146
- t.description ? (m(), o("p", U, g(t.description), 1)) : a("", !0)
147
- ], 10, I));
148
- }
149
- }), [["__scopeId", "data-v-bae0716a"]]);
150
- //#endregion
151
- export { E as a, T as i, F as n, w as r, W as t };
@@ -1,192 +0,0 @@
1
- import { t as e } from "./class-names-5jotTFzp.js";
2
- import { n as t } from "./useSurfaceAxis-DudiZVOR.js";
3
- import { t as n } from "./useMotionAxis-DCCXMC-i.js";
4
- import { t as r } from "./useSpringMount-CNvvgGiC.js";
5
- import { computed as i, createBlock as a, createCommentVNode as o, createElementVNode as s, createVNode as c, defineComponent as l, mergeProps as u, normalizeClass as d, normalizeStyle as f, onScopeDispose as p, openBlock as m, renderSlot as h, unref as g, watch as _, withCtx as v } from "vue";
6
- import { DialogClose as y, DialogContent as b, DialogOverlay as x, DialogPortal as S, DialogRoot as C, injectDialogRootContext as w, useForwardPropsEmits as T } from "reka-ui";
7
- import { X as E } from "@lucide/vue";
8
- //#endregion
9
- //#region src/components/dialog/Dialog.vue
10
- var D = /* @__PURE__ */ l({
11
- __name: "Dialog",
12
- props: {
13
- open: { type: Boolean },
14
- defaultOpen: { type: Boolean },
15
- modal: { type: Boolean }
16
- },
17
- emits: ["update:open"],
18
- setup(e, { emit: t }) {
19
- let n = T(e, t);
20
- return (e, t) => (m(), a(g(C), u({ "data-slot": "dialog" }, g(n)), {
21
- default: v(() => [h(e.$slots, "default")]),
22
- _: 3
23
- }, 16));
24
- }
25
- }), O = /* @__PURE__ */ l({
26
- __name: "ModalOverlay",
27
- props: {
28
- class: { type: [
29
- Boolean,
30
- null,
31
- String,
32
- Object,
33
- Array
34
- ] },
35
- scrim: { default: "glass" },
36
- animate: { default: "fade" },
37
- layout: { default: "centered" },
38
- scrimAnimation: {}
39
- },
40
- setup(t) {
41
- let n = t, r = {
42
- glass: "bg-overlay-scrim",
43
- clear: "bg-overlay-scrim-subtle",
44
- dim: "bg-overlay-scrim-strong"
45
- }, o = {
46
- fade: "sheet-animate",
47
- scale: "sheet-animate",
48
- slide: "sheet-animate",
49
- none: ""
50
- }, s = {
51
- centered: "",
52
- edge: "",
53
- scroll: "grid place-items-center overflow-y-auto"
54
- }, c = i(() => {
55
- if (n.scrimAnimation) return { "--scrim-animation": n.scrimAnimation };
56
- });
57
- return (t, i) => (m(), a(g(x), {
58
- class: d(g(e)("fixed inset-0 z-overlay [backdrop-filter:var(--glass-blur-wash)]", r[n.scrim], s[n.layout], o[n.animate], n.class)),
59
- style: f(c.value),
60
- "data-scrim-animation": n.scrimAnimation ? "" : void 0
61
- }, {
62
- default: v(() => [h(t.$slots, "default")]),
63
- _: 3
64
- }, 8, [
65
- "class",
66
- "style",
67
- "data-scrim-animation"
68
- ]));
69
- }
70
- }), k = "fixed left-1/2 top-1/2 z-modal grid w-full max-w-lg gap-4 [--overlay-pad-inline:--spacing(6)] [--overlay-pad-block:calc(var(--overlay-pad-inline)*1.272)] px-(--overlay-pad-inline) py-(--overlay-pad-block)", A = "-translate-x-1/2 -translate-y-1/2 glass-reveal", j = "grid gap-4 [--overlay-pad-inline:--spacing(6)] [--overlay-pad-block:calc(var(--overlay-pad-inline)*1.272)] px-(--overlay-pad-inline) py-(--overlay-pad-block) transition ease-in-out sheet-animate", M = /* @__PURE__ */ l({
71
- __name: "DialogContent",
72
- props: {
73
- forceMount: { type: Boolean },
74
- disableOutsidePointerEvents: { type: Boolean },
75
- asChild: { type: Boolean },
76
- as: {},
77
- class: { type: [
78
- Boolean,
79
- null,
80
- String,
81
- Object,
82
- Array
83
- ] },
84
- surface: { default: "glass" },
85
- placement: { default: "center" },
86
- scrimAnimation: {},
87
- motion: {},
88
- springPreset: {},
89
- showClose: {
90
- type: Boolean,
91
- default: !0
92
- },
93
- stage: { default: "none" }
94
- },
95
- emits: [
96
- "escapeKeyDown",
97
- "pointerDownOutside",
98
- "focusOutside",
99
- "interactOutside",
100
- "openAutoFocus",
101
- "closeAutoFocus"
102
- ],
103
- setup(l, { emit: d }) {
104
- let f = l, x = d, C = i(() => {
105
- let { class: e, surface: t, placement: n, scrimAnimation: r, motion: i, springPreset: a, showClose: o, stage: s, ...c } = f;
106
- return c;
107
- }), D = i(() => f.placement ?? "center"), M = i(() => D.value === "center"), N = n(() => f.motion), P = i(() => f.springPreset != null && N.resolved.value !== "off" && (f.placement ?? "center") === "center"), F = typeof window < "u" && window.matchMedia?.("(prefers-reduced-motion: reduce)").matches, I = i(() => {
108
- let e = f.stage;
109
- return F && (e === "scale" || e === "immersive") ? "dim" : e;
110
- }), L = w();
111
- function R(e) {
112
- if (!(typeof document > "u" || f.stage === "none")) if (e) requestAnimationFrame(() => {
113
- let e = document.querySelector("[data-stage-wrapper]"), t = document.querySelector("[data-stage-scrim]"), n = I.value === "scale" || I.value === "immersive", r = I.value === "immersive";
114
- for (let n of [e, t]) n && (n.setAttribute("data-stage-flip", ""), n.style.setProperty("--stage-t", "0"));
115
- e && e.toggleAttribute("data-stage-scale", n), t && t.toggleAttribute("data-stage-immersive", r), requestAnimationFrame(() => {
116
- for (let n of [e, t]) n && n.style.setProperty("--stage-t", "1");
117
- });
118
- });
119
- else {
120
- let e = document.querySelector("[data-stage-wrapper]"), t = document.querySelector("[data-stage-scrim]");
121
- for (let n of [e, t]) n && (n.removeAttribute("data-stage-flip"), n.style.removeProperty("--stage-t"));
122
- e && e.removeAttribute("data-stage-scale"), t && t.removeAttribute("data-stage-immersive");
123
- }
124
- }
125
- _(() => L?.open.value, (e) => R(!!e), { immediate: !0 }), p(() => R(!1));
126
- let z = T(C, x), B = i(() => e(t(f.surface, "floating"), "rounded-dialog")), V = {
127
- top: "rounded-b-dialog border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
128
- bottom: "rounded-t-dialog border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
129
- left: "rounded-r-dialog border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left",
130
- right: "rounded-l-dialog border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right"
131
- }, H = i(() => M.value ? e(k, P.value ? "" : A, B.value, f.class) : e(j, V[D.value], t(f.surface, "floating"), f.class)), U = {
132
- "--radius-ctx": "var(--radius-dialog)",
133
- "--radius-inset": "var(--overlay-pad-inline)"
134
- }, W = P.value ? w() : null, G = P.value && W ? r({
135
- open: W.open,
136
- preset: f.springPreset ?? "smooth"
137
- }) : null, K = i(() => {
138
- if (!G) return;
139
- let e = G.position.value, t = 1 - .05 * e;
140
- return {
141
- transform: "none",
142
- translate: "-50% -50%",
143
- scale: String(t),
144
- opacity: String(1 - e),
145
- animation: "none",
146
- transition: "none"
147
- };
148
- }), q = { "--glass-bg-rung": "var(--glass-bg-dialog)" }, J = i(() => ({
149
- ...q,
150
- ...M.value ? {} : U,
151
- ...N.hostStyle.value ?? {},
152
- ...K.value ?? {}
153
- }));
154
- return (e, t) => (m(), a(g(S), null, {
155
- default: v(() => [c(O, {
156
- scrim: "glass",
157
- animate: "fade",
158
- layout: "centered",
159
- "scrim-animation": f.scrimAnimation
160
- }, null, 8, ["scrim-animation"]), c(g(b), u(g(z), {
161
- class: H.value,
162
- style: J.value,
163
- "data-surface": f.surface,
164
- "data-slot": "dialog-content",
165
- "data-placement": M.value ? void 0 : D.value,
166
- "data-reveal": M.value ? "overlay" : void 0,
167
- "data-motion": g(N).dataMotion.value,
168
- "data-spring": P.value ? f.springPreset ?? "smooth" : void 0
169
- }), {
170
- default: v(() => [h(e.$slots, "default"), f.showClose ? (m(), a(g(y), {
171
- key: 0,
172
- class: "focus-ring absolute right-(--overlay-pad-inline) top-(--overlay-pad-block) rounded-sm opacity-70 transition-opacity hover:opacity-100 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground"
173
- }, {
174
- default: v(() => [c(g(E), { class: "w-4 h-4" }), t[0] ||= s("span", { class: "sr-only" }, "Close", -1)]),
175
- _: 1
176
- })) : o("", !0)]),
177
- _: 3
178
- }, 16, [
179
- "class",
180
- "style",
181
- "data-surface",
182
- "data-placement",
183
- "data-reveal",
184
- "data-motion",
185
- "data-spring"
186
- ])]),
187
- _: 3
188
- }));
189
- }
190
- });
191
- //#endregion
192
- export { O as n, D as r, M as t };