@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,40 +0,0 @@
1
- import { t as e } from "./useSpringPress-BypV_KO-.js";
2
- import { t } from "./useLiquidFlex-Ch4exNvN.js";
3
- import { n } from "./writeVelocityWeight-D1rvdxJu.js";
4
- import { computed as r, watch as i } from "vue";
5
- //#region src/composables/motion/useLiquidPress.ts
6
- function a(a = {}) {
7
- let o = a.shrinkDepth ?? .03, s = a.maxStretch ?? 1.04, c = a.pressVar ?? "--press-t", l = a.engageThreshold ?? .001, u = a.squish !== !1, d = e({
8
- response: a.response,
9
- dampingFraction: a.dampingFraction,
10
- initial: a.initial,
11
- initialVelocity: a.initialVelocity,
12
- settleThreshold: a.settleThreshold,
13
- velocitySettleThreshold: a.velocitySettleThreshold,
14
- respectReducedMotion: a.respectReducedMotion,
15
- onValue: a.onValue
16
- }), f = u ? t({
17
- from: 0,
18
- to: 1,
19
- axis: "width",
20
- maxStretch: () => n(a.el?.value ?? null, s),
21
- squishLaw: "linear"
22
- }) : null;
23
- f && i(() => d.value.value, (e) => f.squish(e), {
24
- immediate: !0,
25
- flush: "sync"
26
- });
27
- let p = r(() => {
28
- let e = d.value.value, t = f ? f.stretch.value : 1, n = 1 - e * o, r = (n * t).toFixed(4), i = (n / t).toFixed(4), a = { [c]: e.toFixed(4) };
29
- return f && (a["--flex-vel"] = f.flexVel.value.toFixed(4)), e > l && (a.scale = `${r} ${i}`), a;
30
- });
31
- return {
32
- value: d.value,
33
- press: d.press,
34
- release: d.release,
35
- handlers: d.handlers,
36
- pressStyle: p
37
- };
38
- }
39
- //#endregion
40
- export { a as t };
@@ -1,72 +0,0 @@
1
- import { getCurrentScope as e, onScopeDispose as t } from "vue";
2
- //#region src/composables/motion/useTextHighlight.ts
3
- var n = /* @__PURE__ */ new Map();
4
- function r() {
5
- return typeof CSS < "u" && "highlights" in CSS && typeof globalThis.Highlight == "function";
6
- }
7
- function i(e) {
8
- let t = n.get(e);
9
- if (!t || t.size === 0) {
10
- CSS.highlights.delete(e);
11
- return;
12
- }
13
- let r = new Highlight();
14
- for (let e of t) for (let t of e.ranges) r.add(t);
15
- CSS.highlights.set(e, r);
16
- }
17
- function a(e, t) {
18
- let n = t.trim().toLowerCase();
19
- if (!n) return [];
20
- let r = e.toLowerCase(), i = [], a = 0;
21
- for (;;) {
22
- let e = r.indexOf(n, a);
23
- if (e === -1) break;
24
- i.push({
25
- start: e,
26
- end: e + n.length
27
- }), a = e + n.length;
28
- }
29
- return i;
30
- }
31
- function o(o) {
32
- let s = r(), c = null;
33
- function l() {
34
- if (c) return c;
35
- c = { ranges: [] };
36
- let e = n.get(o);
37
- return e || (e = /* @__PURE__ */ new Set(), n.set(o, e)), e.add(c), c;
38
- }
39
- function u(e) {
40
- s && (l().ranges = e.slice(), i(o));
41
- }
42
- function d(e, t, n = a) {
43
- if (!s) return;
44
- let r = [], i = document.createTreeWalker(e, NodeFilter.SHOW_TEXT);
45
- for (let e = i.nextNode(); e; e = i.nextNode()) {
46
- let i = e.textContent ?? "";
47
- if (i) for (let a of n(i, t)) {
48
- if (a.start >= a.end) continue;
49
- let t = document.createRange();
50
- t.setStart(e, a.start), t.setEnd(e, a.end), r.push(t);
51
- }
52
- }
53
- u(r);
54
- }
55
- function f() {
56
- !s || !c || (c.ranges = [], i(o));
57
- }
58
- function p() {
59
- if (!s || !c) return;
60
- n.get(o)?.delete(c), i(o);
61
- let e = n.get(o);
62
- e && e.size === 0 && n.delete(o), c = null;
63
- }
64
- return e() && t(p), {
65
- set: u,
66
- setFromMatches: d,
67
- clear: f,
68
- supported: s
69
- };
70
- }
71
- //#endregion
72
- export { o as t };
@@ -1,191 +0,0 @@
1
- import { getCurrentScope as e, onMounted as t, onScopeDispose as n, readonly as r, ref as i, toValue as a, watch as o } from "vue";
2
- //#region src/composables/dom/useTokenColor.ts
3
- function s(r, s = {}) {
4
- let c = s.fallback ?? "", l = i(c), u = s.resolver ?? ((e, t) => getComputedStyle(t ?? document.documentElement).getPropertyValue(e));
5
- function d() {
6
- let e = a(r);
7
- return !e || !s.resolver && typeof document > "u" ? c : u(e, (s.element ? a(s.element) : null) ?? (typeof document < "u" ? document.documentElement : void 0) ?? void 0 ?? void 0).trim() || c;
8
- }
9
- function f() {
10
- l.value = d();
11
- }
12
- if (f(), t(f), typeof document < "u") {
13
- let t = new MutationObserver(f);
14
- t.observe(document.documentElement, {
15
- attributes: !0,
16
- attributeFilter: ["class"]
17
- });
18
- let r = typeof window < "u" && window.matchMedia ? window.matchMedia("(prefers-color-scheme: dark)") : null;
19
- r?.addEventListener?.("change", f), e() && n(() => {
20
- t.disconnect(), r?.removeEventListener?.("change", f);
21
- });
22
- }
23
- return o(() => a(r), f), s.element !== void 0 && o(() => a(s.element), f), {
24
- value: l,
25
- refresh: f
26
- };
27
- }
28
- //#endregion
29
- //#region src/composables/dom/useClipboard.ts
30
- async function c(e) {
31
- if (typeof navigator > "u" || !navigator.clipboard?.writeText) return {
32
- ok: !1,
33
- reason: "no-api"
34
- };
35
- try {
36
- return await navigator.clipboard.writeText(e), { ok: !0 };
37
- } catch {
38
- return {
39
- ok: !1,
40
- reason: "clipboard-api"
41
- };
42
- }
43
- }
44
- function l(e) {
45
- if (typeof document > "u") return {
46
- ok: !1,
47
- reason: "no-api"
48
- };
49
- let t = document.createElement("textarea");
50
- t.value = e, t.setAttribute("readonly", ""), t.style.position = "fixed", t.style.top = "-9999px", document.body.appendChild(t), t.select();
51
- let n = !1;
52
- try {
53
- n = document.execCommand("copy");
54
- } catch {
55
- n = !1;
56
- }
57
- return document.body.removeChild(t), n ? { ok: !0 } : {
58
- ok: !1,
59
- reason: "exec-command"
60
- };
61
- }
62
- async function u(e, t) {
63
- let n = await c(e);
64
- if (n.ok) return n;
65
- let r = l(e);
66
- if (r.ok) return r;
67
- let i = r.reason ?? n.reason ?? "no-api";
68
- return t?.(i), {
69
- ok: !1,
70
- reason: i
71
- };
72
- }
73
- async function d(e, t = {}) {
74
- let { ok: n } = await u(e, t.onCopyError);
75
- return n;
76
- }
77
- function f(e = {}) {
78
- let t = e.resetMs ?? 1500, r = i(!1), a = null;
79
- function o() {
80
- a != null && (clearTimeout(a), a = null);
81
- }
82
- async function s(n) {
83
- let i = await u(n, e.onCopyError);
84
- return i.ok && (r.value = !0, o(), a = setTimeout(() => {
85
- r.value = !1, a = null;
86
- }, t)), i;
87
- }
88
- return n(o), {
89
- copied: r,
90
- copy: s
91
- };
92
- }
93
- //#endregion
94
- //#region src/composables/dom/useBreakpoint.ts
95
- function p(t) {
96
- let a = i(!1), o = null;
97
- function s(e) {
98
- a.value = e.matches;
99
- }
100
- function c() {
101
- typeof window > "u" || !window.matchMedia || (o = window.matchMedia(t), a.value = o.matches, o.addEventListener("change", s));
102
- }
103
- function l() {
104
- o?.removeEventListener("change", s), o = null;
105
- }
106
- return e() && n(l), c(), {
107
- matches: r(a),
108
- stop: l
109
- };
110
- }
111
- //#endregion
112
- //#region src/composables/dom/useIdleReady.ts
113
- function m(t = {}) {
114
- let r = t.timeout ?? 2e3, a = i(!1), o = null, s = null, c = !1;
115
- function l() {
116
- c || a.value || (a.value = !0, t.onReady?.(), u());
117
- }
118
- function u() {
119
- o !== null && typeof window < "u" && "cancelIdleCallback" in window && (window.cancelIdleCallback(o), o = null), s !== null && (clearTimeout(s), s = null);
120
- }
121
- function d() {
122
- if (!c) {
123
- if (typeof window > "u") {
124
- l();
125
- return;
126
- }
127
- "requestIdleCallback" in window ? o = window.requestIdleCallback(l, { timeout: r }) : s = setTimeout(l, 0);
128
- }
129
- }
130
- d();
131
- function f() {
132
- c || (c = !0, u());
133
- }
134
- return e() && n(f), {
135
- ready: a,
136
- stop: f
137
- };
138
- }
139
- //#endregion
140
- //#region src/composables/dom/useViewportReady.ts
141
- function h(t, r = {}) {
142
- let a = r.rootMargin ?? "200px", s = r.idleTimeout ?? 1e4, c = r.threshold ?? .01, l = i(!1), u = null, d, f = null, p = null, m = !1;
143
- function h() {
144
- m || l.value || (l.value = !0, _());
145
- }
146
- function g() {
147
- if (!m) {
148
- if (typeof window > "u") {
149
- h();
150
- return;
151
- }
152
- "requestIdleCallback" in window ? f = window.requestIdleCallback(h, { timeout: s }) : p = setTimeout(h, 16);
153
- }
154
- }
155
- function _() {
156
- u &&= (u.disconnect(), null), f !== null && typeof window < "u" && "cancelIdleCallback" in window && (window.cancelIdleCallback(f), f = null), p !== null && (clearTimeout(p), p = null);
157
- }
158
- function v(e) {
159
- if (typeof window > "u" || !("IntersectionObserver" in window)) {
160
- g();
161
- return;
162
- }
163
- u = new IntersectionObserver((e) => {
164
- if (!m) {
165
- for (let t of e) if (t.isIntersecting) {
166
- g(), u?.disconnect(), u = null;
167
- break;
168
- }
169
- }
170
- }, {
171
- rootMargin: a,
172
- threshold: c
173
- }), u.observe(e);
174
- }
175
- function y(e) {
176
- m || l.value || d !== void 0 && d === e || (_(), d = e, e ? v(e) : g());
177
- }
178
- y(t.value);
179
- let b = o(t, (e) => {
180
- y(e);
181
- }, { flush: "post" });
182
- function x() {
183
- m || (m = !0, b(), _());
184
- }
185
- return e() && n(x), {
186
- ready: l,
187
- stop: x
188
- };
189
- }
190
- //#endregion
191
- export { f as a, d as i, m as n, s as o, p as r, h as t };
@@ -1,189 +0,0 @@
1
- /* ─────────────────────────────────────────────────────────────────────────────
2
- * card-scroll.css — the EXTERNALIZED <CardHeader shrink> scroll-choreography
3
- * (BG.W-SCROLL-SHRINK-UNIFY — the card scroll-shrink lifted out of the
4
- * CardHeader.vue <style scoped> block into ONE global, un-hashed home).
5
- *
6
- * WHY EXTERNAL (the encapsulation restore): the choreography WAS a scoped SFC
7
- * block whose @keyframes names were Vue-scope-HASHED and whose slotted-content
8
- * lanes needed the :slotted() escape. Externalized here it is un-hashed AND
9
- * reaches the light-DOM slotted <CardTitle>/<CardDescription> via a PLAIN
10
- * descendant selector (a GLOBAL file carries no data-v-… scope hash, so the
11
- * plain `.card-header--shrink > [data-slot=…]` is the CORRECT form — it matches
12
- * the slotted child with no hash to require).
13
- *
14
- * THE DRY FOLD (the UNIFY): the lane-2 title SCALE leg is shared with the
15
- * page/hero large-title collapse (demo/stories/story-hero.css) via ONE
16
- * @keyframes title-collapse — the card supplies --title-collapse-scale: 0.695
17
- * (= --card-title-shrink-ratio), the page/hero supply 0.82. Only the SCALE leg
18
- * is shared (a byte-identical scale-only keyframe); the hero keeps its OWN
19
- * translate leg (story-hero-shrink-lift). NOT "one keyframe family" — one shared
20
- * scale keyframe + per-surface translate.
21
- *
22
- * COMPOSITOR-ONLY (BB.W-CARD-COMPOSITE — the proof:no-layout-animation floor):
23
- * every lane animates scale / transform / opacity ONLY — ZERO reflow per scroll
24
- * frame (the A'-3 CLS 1.03 defect made structurally impossible). The scrub ease
25
- * is the NO-OVERSHOOT --card-shrink-ease (re-pointed OFF the retired
26
- * --ease-cartoon-punch — a scroll SCRUB must be monotonic; an anticipation-pop /
27
- * overshoot on a scrub is the §12-LAWS proportion fence: cartoon-punch belongs
28
- * on STATE-CHANGE beats, never a scroll scrub, and a non-monotonic curve breaks
29
- * the monotonic-scrub bar).
30
- *
31
- * PRM is the OUTER gate (§Scope 4): the whole
32
- * @supports (animation-timeline: scroll()) block sits under
33
- * prefers-reduced-motion: no-preference, so under reduce NO scroll animation
34
- * binds AT ALL and the header renders in its terminal rest state (full top
35
- * space, full title size, full description visibility). No JS fallback + no
36
- * `animation-duration: 0.01ms` stub is needed — the outer gate is the primary
37
- * AND complete contract.
38
- *
39
- * REQUIRED ANCESTOR: `.card-scroll-host` on the scroll-overflow ancestor (the
40
- * <ScrollCard> owns it) emits the --card-scroll named scroll-timeline. Without
41
- * that host the named timeline never emits and the choreography sits idle.
42
- * ───────────────────────────────────────────────────────────────────────────── */
43
-
44
- .card-header--shrink {
45
- /* --card-title-shrink-ratio is the lane-2 scale ratio pinned from the resolved
46
- type tokens at the default scale: --type-prose floor (18px) ÷ --type-heading
47
- (25.9px) ≈ 0.695. A STATIC scalar (NEVER a per-frame font-size re-measure);
48
- --type-prose is a clamp() so the ratio cannot be CSS-divided live — it is the
49
- pinned reference knob. It feeds the shared @keyframes title-collapse via
50
- --title-collapse-scale (a consumer whose --ui-scale moves the tokens off this
51
- ratio overrides --card-title-shrink-ratio, a NAMED knob — never a fallback to a
52
- font-size animation). */
53
- --card-title-shrink-ratio: 0.695;
54
- --title-collapse-scale: var(--card-title-shrink-ratio);
55
- /* the scrub ease is NO-OVERSHOOT: a scroll scrub maps scroll → animation-progress
56
- monotonically, so the timing function must be strictly monotone (the retired
57
- --ease-cartoon-punch anticipation/overshoot made the title scale up-then-down
58
- past a scroll point — the non-monotonic-scrub defect). */
59
- --card-shrink-ease: var(--ease-out, linear);
60
- /* the stuck-header backplate reads a KEYED warm-glass floating plate (the same
61
- --glass-tint-* warm-admit seam the card body reads — the W55 tinted floating
62
- rung). Card-LOCAL re-point of --card-header-bg (the shared shadow.css token is
63
- READ-ONLY); a consumer override on the host still wins (higher specificity /
64
- inline). */
65
- --card-header-bg: color-mix(
66
- in oklab,
67
- var(--glass-bg-floating),
68
- var(--glass-tint-source) var(--glass-tint-strength)
69
- );
70
- position: relative;
71
- transform-origin: top;
72
- }
73
-
74
- /* lane 4 base — the stuck-header background is a scroll-driven LIFT, not a static
75
- tint. A ::before BACKPLATE carries the --card-header-bg tint and fades
76
- opacity: 0 → 1 on the --card-scroll timeline, so a stuck header reads transparent
77
- over the body at scroll-top and lifts to the painted tint as it sticks. The
78
- opacity channel is compositor-safe; the backplate sits BEHIND the slotted content
79
- (z-index 0), so it never occludes the title/description. */
80
- .card-header--shrink::before {
81
- content: "";
82
- position: absolute;
83
- inset: 0;
84
- z-index: 0;
85
- background: var(--card-header-bg);
86
- opacity: 0;
87
- border-radius: inherit;
88
- pointer-events: none;
89
- }
90
-
91
- /* the slotted content sits ABOVE the scroll-driven backplate. */
92
- .card-header--shrink > * {
93
- position: relative;
94
- z-index: 1;
95
- }
96
-
97
- /* lane-3 base: the description is a transform-collapsible block. transform-origin:
98
- top so the scaleY collapse retires it UPWARD (toward the title), not toward its
99
- own center. */
100
- .card-header--shrink > [data-slot="card-description"] {
101
- transform-origin: top;
102
- will-change: transform, opacity;
103
- }
104
-
105
- /* ── The keyframes (un-hashed, global) — every step animates a compositor-safe
106
- channel ONLY (scale / transform / opacity), the proof:no-layout-animation floor. ── */
107
-
108
- /* THE SHARED scale keyframe (BG.W-SCROLL-SHRINK-UNIFY) — the card title lane AND the
109
- page/hero large-title collapse both ride this ONE keyframe, each supplying its own
110
- --title-collapse-scale (card 0.695 / page-hero 0.82). The `scale:` LONGHAND (not the
111
- `transform` shorthand) so it stacks independently of any per-surface `translate`
112
- leg — the scroll-choreography.css `.scroll-pin` longhand idiom. transform-origin is
113
- set per-consumer on the animated element (left top on the card title). */
114
- @keyframes title-collapse {
115
- to {
116
- scale: var(--title-collapse-scale, 0.82);
117
- }
118
- }
119
-
120
- /* lane 1 — header content compress: the header content slides up via translateY so
121
- the top breathing room visually compresses; the header BOX keeps its layout size
122
- (no padding reflow). */
123
- @keyframes card-header-shrink {
124
- from {
125
- transform: translateY(0);
126
- }
127
- to {
128
- transform: translateY(-0.5rem);
129
- }
130
- }
131
-
132
- /* lane 4 — the scroll-driven header background LIFT (opacity on the backplate). */
133
- @keyframes card-header-bg-lift {
134
- from {
135
- opacity: 0;
136
- }
137
- to {
138
- opacity: 1;
139
- }
140
- }
141
-
142
- /* lane 3 — description retire: opacity fade + scaleY collapse (origin top), the
143
- real-estate reclaim COMPOSITED (never a grid-template-rows relayout). */
144
- @keyframes card-desc-shrink {
145
- from {
146
- opacity: 1;
147
- transform: scaleY(1);
148
- }
149
- to {
150
- opacity: 0;
151
- transform: scaleY(0);
152
- }
153
- }
154
-
155
- @media (prefers-reduced-motion: no-preference) {
156
- @supports (animation-timeline: scroll()) {
157
- /* lane 1 — header content compress. */
158
- .card-header--shrink {
159
- animation: card-header-shrink var(--card-shrink-ease) both;
160
- animation-timeline: --card-scroll;
161
- animation-range: 0px 120px;
162
- }
163
-
164
- /* lane 4 — the scroll-driven header background LIFT. */
165
- .card-header--shrink::before {
166
- animation: card-header-bg-lift var(--card-shrink-ease) both;
167
- animation-timeline: --card-scroll;
168
- animation-range: 0px 120px;
169
- }
170
-
171
- /* lane 2 — title shrink-in-place via the SHARED title-collapse SCALE keyframe;
172
- the text run lays out ONCE at --type-heading, the scroll-timeline only
173
- composites the scale (transform-origin left top anchors the leading edge). */
174
- .card-header--shrink > [data-slot="card-title"] {
175
- animation: title-collapse var(--card-shrink-ease) both;
176
- animation-timeline: --card-scroll;
177
- animation-range: 0px 120px;
178
- transform-origin: left top;
179
- }
180
-
181
- /* lane 3 — description retire (opacity fade + scaleY collapse), the faster
182
- 0..80px cliff (description retires before the header fully settles). */
183
- .card-header--shrink > [data-slot="card-description"] {
184
- animation: card-desc-shrink var(--card-shrink-ease) both;
185
- animation-timeline: --card-scroll;
186
- animation-range: 0px 80px;
187
- }
188
- }
189
- }