@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,485 +0,0 @@
1
- /* Card-feature styles — the coherent home for card surface decorations.
2
- * `.cartoon-card` + `.elevated-card` recipe classes were removed at C.W5 per the
3
- * W0 overfitting audit (Card's tier system covers both). `cartoon-surface` is the
4
- * Q.W3 Lane B re-model of the former `.glass-cartoon` recipe: a decoration-only
5
- * utility (no tier of its own), relocated here from glass.css — which now holds
6
- * only the 5-rung glass ladder. */
7
-
8
- @layer components {
9
- /* ── BD.W-CARD-MATERIAL-FLOOR — the card-surface warm tint-seam enrollment ──
10
- The §4 leg-(a) material floor, reconciled to the SHIPPED `--glass-tint-*`
11
- seam (NOT a fork, NOT a global re-tint). The card's glass/cartoon surfaces
12
- ride the `.glass-${tier}` ladder rung, whose fill is already
13
- `color-mix(in oklab, --glass-bg-${tier}, --glass-tint-source --glass-tint-
14
- strength)` (ladder.css) — so the card reaches the warm floor by setting a
15
- CARD-LOCAL non-zero `--glass-tint-strength` (the global default at
16
- surface-axis.css:83 stays `0%`, so the 6 other seam-readers — drawer / menu /
17
- veil / jubilance / .btn-glass / .segmented-indicator — are byte-unchanged:
18
- the blast-radius bite). `--glass-tint-source` defaults to `var(--card)` (a
19
- warm cream, glass-fx.css:158), so the floor is warm by construction in BOTH
20
- modes. The card clears the warm-chroma floor (C ≥ 0.02 warm) in the MATERIAL
21
- itself — before the field even lands, and on a dead ground (print / reduced-
22
- transparency), the "far too gray" verdict closes at the material layer.
23
-
24
- SCOPE — `[data-surface]` is `glass` or `cartoon` (NOT `veil`: veil owns its
25
- own `--veil-bg` tint seam below; NOT `opaque`: the solid `--card` plate is
26
- already warm-cream). The strength is set on the host so it inherits into the
27
- rung's `color-mix`. This is a card-local re-point of the SHIPPED seam — DRY,
28
- no second compositing axis, the ladder rung does the mix. */
29
- [data-slot="card"]:where(
30
- [data-surface="glass"],
31
- [data-surface="cartoon"]
32
- ) {
33
- --glass-tint-strength: 8%;
34
- /* BD.W-CARD-CEL-MOTION (§3.1) — the defined-edge border-ink floor. The
35
- ladder rung's `--glass-border-resting`/`-quiet` ink is 4% warm
36
- (glass.css:331-332) — it vanishes cream-on-cream (K3 RED). Floor the
37
- card's own border-ink UP to ≥8% warm-ink so the cel reads as a defined
38
- SHAPE (WCAG 1.4.11 non-text). `--glass-border-rung` is the per-rung ink
39
- the accent-composed `--glass-border-accent` reads (ladder.css /
40
- surfaces.css); re-pointing it card-locally floors the border WITHOUT
41
- forking the rim (the keyed two-stop rim from `--glass-material-rim` is
42
- CONSUMED unchanged — the card does NOT re-mint a rim). Warm (the
43
- `--foreground` mix is warm-cream in both modes); the `.dark` ink lifts
44
- off the near-black field through the same `--foreground` flip. */
45
- --glass-border-rung: color-mix(in srgb, var(--foreground) 9%, transparent);
46
- }
47
-
48
- /* BD.W-CARD-CEL-MOTION (§3.2) — the inner catch-light over the field. A faint
49
- `screen`-blended warm catch sits where the upper-right `--glass-key` sun
50
- hits, lifting the cel off the field (the §3 layer-4 catch, coherent with the
51
- rim + cast — ONE key). It rides the host `background-image` stack ALONGSIDE
52
- the field underlayer (both are static gradients in the same longhand; the
53
- catch is the FIRST layer so it sits over the warm underlayer), so it adds NO
54
- pseudo (`::before` = moving specular, `::after` = grain — both occupied).
55
- `screen` lifts only where there is light, never darkening — and it is below
56
- content + clipped to the host radius, so it never washes the text column
57
- (the K-AA carve). Under `prefers-contrast: more` the screen blend is dropped
58
- (the catch is decoration, the edge is the legibility asset). */
59
- [data-slot="card"][data-surface="glass"]:not(.paper-grid) {
60
- /* F2.R1 W-DARK-READABILITY-REPAIR — the blend is TOKENIZED so the dark arm
61
- (tokens/dark-arm.css, the `--card-field-floor-blend` re-point) swaps the
62
- light `screen` LIFT for a dark `normal` SINK. In dark the near-white amber
63
- key screen-blended into a hot in-card lamp (value.js card-lighting-forensics
64
- artifact 1); the dark arm blends NORMAL so the warm underlayer sinks INTO the
65
- deep plate instead of lifting it toward the cream label. Light default is
66
- byte-identical (unset token → the `screen, normal` fallback). */
67
- background-blend-mode: var(--card-field-floor-blend, screen, normal);
68
- }
69
- @media (prefers-contrast: more) {
70
- [data-slot="card"][data-surface="glass"]:not(.paper-grid) {
71
- background-blend-mode: normal;
72
- }
73
- }
74
-
75
- /* ── BD.W-CARD-FIELD-FLOOR — the orphan-card static warm field underlayer ──
76
- The §2 leg-(b) structural contract, card-local fallback. The COMMON case is
77
- ancestor-supplied: the page mounts ONE global `[data-paper-field]` plane
78
- (AppShell) behind every route, and the card composites over it. The ORPHAN
79
- case is a card in an OCCLUDING context an ancestor field cannot reach (a
80
- dialog / drawer / portal that paints its own opaque ground over the page
81
- field) — there the card mounts its OWN cheap static warm underlayer so it is
82
- NEVER gray-over-nothing wherever it is dropped.
83
-
84
- MECHANISM — ONE static `radial-gradient` on the host `background-image`
85
- longhand (the proven `.paper-grid` coexistence seam: a later
86
- `background-image` COEXISTS with the glass tier's `background:` shorthand
87
- fill — paints OVER the translucent color, UNDER content + UNDER both
88
- pseudos, clipped to the host `border-radius` by construction). Zero JS, one
89
- compositor-cached paint, PRM-static. The warm 0-alpha stops are explicit
90
- `oklch(L C H / 0)` (NEVER bare `transparent` — the WebKit black-premultiply
91
- hole, build-trap-(d)).
92
-
93
- THE NO-DOUBLE-PAINT GATE (the presence-BEHIND check, NOT `closest()`): the
94
- fallback paints ONLY when NO `[data-paper-field]` ancestor is present — `:where(
95
- [data-paper-field]) &` switches it OFF under the global field, so a card over
96
- the page field reads the page field (no local underlayer), and a 50-card grid
97
- under ONE ancestor field is ONE field paint, not N. A `cartoon`/`opaque`
98
- card already carries a defined edge + warm fill, so the orphan field is the
99
- glass-surface case; `surface="glass"` only (the orphan glass card is the one
100
- that reads gray-over-nothing). The `.paper-grid` document register is EXCLUDED
101
- by selector (it sets its own grid `background-image` underlayer — a grid card
102
- opts out of the warm-field fallback, not a `background-image: none` race). */
103
- [data-slot="card"][data-surface="glass"]:not(.paper-grid) {
104
- /* TWO static layers in ONE longhand (blended by the `background-blend-mode`
105
- above — `screen, normal`): (1) the upper-right KEYED catch-light (warm,
106
- `screen`-blended so it only LIFTS — the §3 catch), then (2) the warm cel
107
- UNDERLAYER (one radial, amber-key toward the upper-right `--glass-key`,
108
- the field fallback). Both fade to a warm 0-alpha — NEVER bare
109
- `transparent` (the WebKit black-premultiply hole, build-trap-(d)). */
110
- /* F2.R1 W-DARK-READABILITY-REPAIR — TOKENIZED so the dark arm swaps the two
111
- hot light-amber screen radials (L≈0.9-0.96) for ONE damped warm-DARK sink
112
- (tokens/dark-arm.css `--card-field-floor-image`). Light default is the two
113
- radials below (unset token → byte-identical light paint). Machine-locked by
114
- `proof:glass` dark-legibility DL1 (the composited hot-zone label clears AA +
115
- APCA over the dark plate). */
116
- background-image: var(
117
- --card-field-floor-image,
118
- radial-gradient(
119
- 60% 55% at 80% 16%,
120
- oklch(0.96 0.04 78 / 0.5),
121
- oklch(0.96 0.04 78 / 0) 72%
122
- ),
123
- radial-gradient(
124
- 120% 110% at 78% 22%,
125
- oklch(0.9 0.075 72 / 0.5),
126
- oklch(0.9 0.075 72 / 0) 70%
127
- )
128
- );
129
- }
130
-
131
- /* The presence-behind gate — under an ancestor field, the card reads the REAL
132
- field (the page plane transmits through the translucent fill), so the local
133
- fallback is switched OFF (no double paint). A 50-card grid under ONE ancestor
134
- field is ONE field paint, not N local underlayers. */
135
- :where([data-paper-field])
136
- [data-slot="card"][data-surface="glass"]:not(.paper-grid) {
137
- background-image: none;
138
- }
139
-
140
- /* Paper texture overlay — a PAPER surface reads the ONE warm raster tooth
141
- (BG.W-PAPER-TEXTURE-UNIFY), not the grey `--paper-clean-texture` whisper.
142
- The tooth carries its warmth at SOURCE, so the `background-blend-mode`
143
- multiply (light) / screen (dark) sinks/lifts the WARM fiber into the plate.
144
- Reads the paper tile period (`--paper-grain-tile`), not the 200px glass-
145
- grain whisper size. The `--paper-clean-texture` name is retained only for
146
- the disjoint GLASS-grain system (glass/grain-overlay.css / dock/shell.css)
147
- — the register fence (paper is warm material, glass is a neutral whisper). */
148
- .paper-texture {
149
- background-image: var(--paper-grain-tooth);
150
- background-repeat: repeat;
151
- background-size: var(--paper-grain-tile);
152
- background-blend-mode: multiply;
153
- }
154
-
155
- :where(.dark) .paper-texture {
156
- background-blend-mode: screen;
157
- }
158
-
159
- /* BB.W-PAPER-GRID-TEXTURE — the GEOMETRIC sibling of `.paper-texture`.
160
- Paints the two-frequency `--paper-grid-texture` engineering-grid as a
161
- card's INTERIOR ground, clipped to the plate's own `border-radius`
162
- automatically (a host `background-image`), so the math/grid brand pillar
163
- reads THROUGH a document-register card at the ambient `--paper-grid-
164
- opacity` — not only in the page margin an opaque plate occludes. A
165
- decoration-only register (NOT a tier): it composes ON TOP of any glass/
166
- paper tier, exactly like `.paper-texture` / `cartoon-surface` /
167
- `veil-surface`.
168
-
169
- BC.W-GRID-SIMPLE — the card-interior pitch UNIFIES onto the ONE
170
- `--grid-*` rhythm source: `--paper-grid-texture-size` now reads
171
- `var(--grid-pitch)` (scale-paper.css), retiring the prior 32px literal so
172
- the demo page grid + this card interior share ONE pitch (the
173
- two-parallel-28px/32px-systems fix). This card-interior register keeps its
174
- OWN quieter ambient strength (`--paper-grid-opacity`), DISTINCT from the
175
- full-bleed page-bg 3%/11% tier — a card interior reads softer than a page
176
- wash. It is a host `background-image` only — NO `backdrop-filter`/`filter`
177
- on this element, so the grid lines are NEVER convolved into the "blurry
178
- mess" the page grid suffered (the de-blur discipline: the grid is the
179
- card's own underlay, not a crisp grid read THROUGH a blurred glass plate).
180
-
181
- THE SEAM (the two-pseudo-budget reveal, recorded — the Triumvirate's
182
- through-glass-read locate-the-seam, NOT a token-α loop): a glass tier
183
- already claims BOTH pseudos — `::before` is the moving-specular catch-
184
- light (glass/material.css) and `::after` is the grain overlay
185
- (glass/ladder.css). A `.paper-grid::after` would CLOBBER the grain's
186
- `background-image` on the SAME single pseudo — so the grid + grain could
187
- not compose (the orthogonality the spec requires). The grid therefore
188
- rides the HOST element's `background-image` longhand: the glass tier's
189
- `background:` SHORTHAND sets the translucent fill `background-color`, and
190
- a later `background-image` longhand COEXISTS with that color (the image
191
- paints OVER the color, UNDER the content + UNDER both pseudos), so the
192
- grid is the card's own underlay felt THROUGH the glass tint with ZERO
193
- pseudo contention — grain (`::after`) + specular (`::before`) + grid
194
- (host bg-image) all paint at once. The host bg-image is clipped by the
195
- host `border-radius` by construction (no `border-radius: inherit` pseudo
196
- needed). A STATIC raster — gradient-stack `background-image`, one
197
- compositor-cached paint, no per-frame repaint (the W6 paint-path
198
- discipline). The ambient strength lives in the line-ink alpha (the
199
- `--paper-grid-opacity`-scaled `--foreground` mix, scale-paper.css) since
200
- a host bg-image has no independent layer-opacity — so ONE knob
201
- (`--paper-grid-opacity`) still tunes the through-card strength. */
202
- .paper-grid {
203
- background-image: var(--paper-grid-texture);
204
- background-repeat: repeat;
205
- background-size:
206
- calc(var(--paper-grid-texture-size) * 4)
207
- calc(var(--paper-grid-texture-size) * 4),
208
- calc(var(--paper-grid-texture-size) * 4)
209
- calc(var(--paper-grid-texture-size) * 4),
210
- var(--paper-grid-texture-size) var(--paper-grid-texture-size),
211
- var(--paper-grid-texture-size) var(--paper-grid-texture-size);
212
- background-blend-mode: multiply;
213
- }
214
-
215
- /* The scheme-aware dark arm — PLAIN-ancestor `.dark` (NOT a scoped
216
- `:global()`; the recurring scoped-global-drop trap, recorded; this is a
217
- library CSS partial, but the discipline holds). The line ink is
218
- `--foreground`-derived, so the warm-cream foreground flips dark→light in
219
- the `.dark` block and the grid ink auto-lifts off the near-black `--card`
220
- interior with NO parallel `--paper-grid-*-dark` family — only the BLEND
221
- flips (light `multiply` → dark `screen`, the legible-on-dark equivalent
222
- the `.paper-texture` dark arm uses). */
223
- :where(.dark) .paper-grid,
224
- .dark .paper-grid {
225
- background-blend-mode: screen;
226
- }
227
- }
228
-
229
- /* ═══════════════════════════════════════════════
230
- A11y — the geometric grid honors the SAME transparency idiom the organic
231
- paper register establishes (paper.css). A reduced-transparency user gets a
232
- clean card interior, no texture; the static grid needs no motion gate (the
233
- PRM block guards a future drift only). One a11y idiom, not a grid-local fork.
234
- ═══════════════════════════════════════════════ */
235
- @media (prefers-reduced-transparency: reduce) {
236
- .paper-grid {
237
- background-image: none;
238
- }
239
- }
240
-
241
- @media (prefers-reduced-motion: reduce) {
242
- .paper-grid {
243
- /* Static raster at rest; guard a future `@property` transform drift. */
244
- animation: none !important;
245
- }
246
- }
247
-
248
- /* ── Selection-card decoration (BC.W-SELECTION-CARD — the I5 selection card) ──────
249
- The ONE new Atlas component, realized as a `<Card variant="selection">`
250
- DECORATION (NOT a new SFC, NOT a new tier, NOT a new compositing seam). It
251
- COMPOSES the two BUILT seams — the A-2 `--glass-accent` rim (glass/rim.css +
252
- glass/material.css) + the A-3 `.metal-*-border` swept rim (utilities/metal.css)
253
- — and authors ZERO competing rim/background recipe of its own. The rule is a
254
- TOKEN-SUBSTITUTION on the base tier (the `.glass-opaque`/`.glass-deep` precedent):
255
- it re-points the EXISTING `--glass-accent-strength` (+ an OPTIONAL sub-perceptual
256
- floating-tier lift) locally; it does NOT declare a `background`/`border`.
257
-
258
- THE RIM-NOT-FILL DISCIPLINE (the no-saturated-slab structural bar): selection is
259
- read by (a) the metal rim (the `.metal-*-border` class Card composes when
260
- `:selected`), (b) a BOUNDED accent-strength LIFT (unselected → selected, both ≤
261
- the W-GLASS-ACCENT rim ceiling), and OPTIONALLY (c) a sub-perceptual
262
- `--glass-bg-floating`-tier lift (the "selected reads as glass" register). The
263
- plate STAYS warm-cream translucent — the BC.W-GLASS-IDENTITY floor is inviolate.
264
- This rule NEVER writes `--glass-tint-source`/`--glass-tint-strength` (the A-2
265
- distinct-axis fence — the accent is rim+glint DECORATION, not whole-plate
266
- legibility) and NEVER paints a `--foreground`/`--primary`/`--surface-tint` opaque
267
- plate FILL (the "selected = loud fill" anti-pattern is the disease-root the gate's
268
- S3 bite reds).
269
-
270
- THE ACCENT-STRENGTH LADDER (the bounded lift, two tokens a consumer retunes):
271
- unselected → --selection-accent-strength (~16% — a calm rim glow)
272
- selected → --selection-accent-strength-selected (~28% — brighter at the rim,
273
- still ≤ the W-GLASS-ACCENT ceiling; the data hue reads stronger at
274
- the rim/glint, NOT a flooded plate)
275
- The host (Card.vue) writes `--glass-accent` (the HUE) per-instance off `data-hue`;
276
- this rule supplies the STRENGTH so the calm/selected lift is ONE source. An UNSET
277
- `data-hue` leaves `--glass-accent: transparent` (the @property default), so even
278
- with the strength engaged the `color-mix(in oklab, X, transparent N%)` === X — the
279
- A-2 no-op floor: a `variant="selection"` card with no `data-hue` is byte-identical
280
- to a bare Card. A consumer may override `--glass-accent-strength` per-instance
281
- (Card.vue's `data-hue-strength`); this rule is the default. */
282
- [data-variant="selection"] {
283
- /* The bounded accent-strength ladder — both ≤ the W-GLASS-ACCENT rim ceiling.
284
- A consumer retunes the calm/selected pair from these two knobs. */
285
- --selection-accent-strength: 16%;
286
- --selection-accent-strength-selected: 28%;
287
- /* Re-point the EXISTING accent-strength seam to the calm rung (the rim glow at
288
- rest). At an unset `--glass-accent: transparent` this is a provable no-op. */
289
- --glass-accent-strength: var(--selection-accent-strength);
290
- }
291
-
292
- [data-variant="selection"][data-selected="true"] {
293
- /* SELECTED — lift the accent-strength to the brighter (still-bounded) rung. The
294
- brighter rim + the `.metal-*-border` Card composes are the selection read; the
295
- plate is UNTOUCHED (no background/fill here — rim-not-fill). */
296
- --glass-accent-strength: var(--selection-accent-strength-selected);
297
- /* OPTIONAL sub-perceptual "selected reads as glass" lift — re-point the base
298
- tier's resting fill toward the floating rung (the W-REGISTER-IOS tier), a
299
- TOKEN re-point, NOT a `--surface-tint` gray plate, NEVER a `--foreground`
300
- brand fill. The plate stays warm-cream translucent (the floating rung is the
301
- SAME warm-cream material at a heavier rung, the BC.W-GLASS-IDENTITY ladder). */
302
- --glass-bg-resting: var(--glass-bg-floating, var(--glass-bg-resting));
303
- }
304
-
305
- /* ── Cartoon surface decoration ───────────────────────────────────
306
- The Memphis-sticker register. Composes ON TOP of a glass tier — it is
307
- NOT itself a tier. The former `.glass-cartoon` recipe declared
308
- `var(--glass-bg-cartoon, var(--glass-bg-quiet))` etc., but the
309
- `--glass-{bg,blur,border}-cartoon` tokens were never defined anywhere
310
- in src/ (Qχ §2): the fall-through always resolved to the `quiet` rung.
311
- That phantom-token layer is dropped — background / backdrop-filter /
312
- border-color come from the `glass-${tier}` class the host already
313
- applies. `cartoon-surface` carries ONLY the three real deltas over a
314
- bare tier: a 2px border weight, an offset-stamp shadow, and a
315
- hover-lift. <Card surface="cartoon"> layers it onto its resolved tier. */
316
- @utility cartoon-surface {
317
- border-width: 2px;
318
- box-shadow: var(--shadow-cartoon-md);
319
- /* Individual-transform identity base (AQ.W3 §W3.2) — state-driven 2D lift on
320
- a card surface that often hosts portaled content; `translate: 0` at rest
321
- mints the stacking context once. Longhand maps `translate(x, y)` 1:1. */
322
- translate: 0;
323
- position: relative;
324
- /* BD.W-CARTOON-CASTER — the LOUD register carries `--motion-weight: 1` in the
325
- SAME recipe (the loud-register coupling: so the punch is never accidentally
326
- muted to ~+13.6% by inheriting the rest 0.618 — the BD.W-CARTOON-PUNCH
327
- loud-register guard's concrete pass-subject). The press ramp ALIASES the
328
- existing `--card-press-t` (the host's `useLiquidPress` already drives it for
329
- every `pressable` card) — NO second press var, NO Card press-driver rewrite. */
330
- --motion-weight: 1;
331
- --cartoon-press-t: var(--card-press-t, 0);
332
- transition:
333
- translate var(--duration-normal) var(--ease-cartoon-punch),
334
- scale var(--duration-normal) var(--ease-cartoon-punch),
335
- box-shadow var(--duration-normal) var(--ease-standard);
336
-
337
- /* BD.W-CARTOON-CASTER — the hover RE-POINTS the existing rule onto the punch
338
- curve (was --spring-smooth) and guards `:not(:active)` so the press squash wins;
339
- the object lifts a hair UP-RIGHT (toward the upper-right `--glass-key`) and the
340
- cast deepens to the lg rung (the gap opens). ONE hover rule, no double-declare. */
341
- &:hover:not(:active):not(:disabled) {
342
- translate: var(--lift-sm) var(--lift-sm);
343
- /* BD.W-CARD-CEL-MOTION (§5) — the cel lifts toward the light with a
344
- sub-perceptual VOL-PRESERVING scale (X·Y ≈ 1: 1.015 × 0.985 ≈ 1.0): the
345
- cel rising toward its sun reads as PEELING off the field, not a flat
346
- sticker slide. Composes the existing `scale` transition (declared above)
347
- on the punch curve. The press squash (`scale: 1.04 0.94`) wins via
348
- `:not(:active)`. */
349
- scale: 1.015 0.985;
350
- box-shadow: var(--shadow-cartoon-lg);
351
- & .cartoon-cast {
352
- box-shadow: var(--shadow-cartoon-lg);
353
- }
354
- }
355
-
356
- /* BD.W-CARTOON-CASTER — the press is a NON-uniform SQUASH (H5): widen X, compress
357
- Y — real squash & stretch, NOT a uniform shrink. The CSS `:active` is the no-JS
358
- floor; `useLiquidPress` drives `--card-press-t` 0→1 for the continuous
359
- interruptible press the inert caster rides. */
360
- &:active:not(:disabled) {
361
- scale: 1.04 0.94;
362
- }
363
- }
364
-
365
- /* ── BD.W-CARTOON-CASTER — the inert-child moving cel cast ───────────────────────
366
- The cast rides an INERT `<span class="cartoon-cast" aria-hidden>` child the Card
367
- emits when `surface="cartoon"` — NOT a `::before`/`::after` pseudo (both are
368
- OCCUPIED on the real glass carrier: `::before` is the moving-specular catch-light,
369
- `::after` is the grain overlay; the H2 hardening). The child is a self-contained
370
- ink-plate the body floats above: it carries the SAME shipped `--shadow-cartoon-md`
371
- box-shadow (set ONCE per state-flip — NEVER animated, the §L7 paint-fence) and
372
- MOVES on the compositor via `translate`/`scale` only.
373
-
374
- The cast travels DOWN-LEFT (opposite the upper-right `--glass-key`, coherent with
375
- the shadow.css cel-ink geometry) as the body lifts, and SPREADS as the gap opens.
376
- ONE scalar drive: `--cartoon-press-t × --motion-weight` (the `:root` PRM carve
377
- zeroes `--motion-weight` → travel/spread collapse to rest). It LAGS the body
378
- (~1.15× slower transition) → the ink recoils LATE on release (follow-through /
379
- overlapping action). The `--cartoon-cast-dx/dy` drag-track deltas are 0 at rest
380
- (the opt-in `useCartoonCast` DOM bridge is future — labeled honestly). */
381
- .cartoon-cast {
382
- position: absolute;
383
- inset: 0;
384
- z-index: -1; /* behind the cel face, in front of the page */
385
- border-radius: inherit;
386
- pointer-events: none;
387
- box-shadow: var(--shadow-cartoon-md);
388
- /* the derived offset + spread — read `--motion-weight × --cartoon-press-t`. The
389
- sign is DOWN-LEFT (negative X, positive Y) to match the upper-right key. */
390
- --cast-travel: calc(6px * var(--motion-weight) * var(--cartoon-press-t));
391
- --cast-spread: calc(1 + 0.18 * var(--motion-weight) * var(--cartoon-press-t));
392
- translate:
393
- calc(-1 * var(--cast-travel) + var(--cartoon-cast-dx))
394
- calc(var(--cast-travel) + var(--cartoon-cast-dy));
395
- scale: var(--cast-spread);
396
- /* the caster LAGS the body (~1.15×) → the late ink recoil on release. */
397
- transition:
398
- translate calc(var(--duration-normal) * 1.15) var(--ease-cartoon-punch),
399
- scale calc(var(--duration-normal) * 1.15) var(--ease-cartoon-punch),
400
- --cartoon-cast-dx var(--duration-normal) var(--ease-cartoon-punch),
401
- --cartoon-cast-dy var(--duration-normal) var(--ease-cartoon-punch);
402
- will-change: translate, scale;
403
- }
404
-
405
- /* ── BI.W-SHADOW-GRAMMAR (Law 4) — the offset-stamp requires a CARD silhouette ──
406
- The hard 0-blur `--shadow-cartoon-*` offset stamp is a card-silhouette grammar: on
407
- a CARD it tucks under the corner radius, but on a CAPSULE/PILL host the hard
408
- directional stamp pokes off the stadium along the bottom-left arc = the lopsided
409
- crescent (UF-A8/A9 — the loud `primary-audacious`/`gold-audacious` `-audacious`
410
- CTAs, ss-08/ss-26). So the `.btn-punch` pill cast RE-POINTS the inert child's stamp
411
- to a SOFT radius-following drop (`--shadow-lg`): the punch WEIGHT re-lands on the
412
- soft drop + the press-squish + the specular gleam (the BD.W-CARTOON-PUNCH weight
413
- SURVIVES — the ratified judgment), WITHOUT the hard offset crescent. The cast still
414
- TRAVELS down-left on press (`--cartoon-press-t` drives translate/scale over the soft
415
- drop) — the caster punch, minus the crescent. The hard offset stamp stays legal ONLY
416
- under a card-radius ancestor (`.cartoon-surface`, the Card `surface="cartoon"`
417
- register above). Law-4 GREEN condition of proof:geometry-grammar. */
418
- .btn-punch .cartoon-cast {
419
- box-shadow: var(--shadow-lg);
420
- }
421
-
422
- /* BD.W-CARTOON-CASTER — PRM/PRT carve. Under reduced-motion `--motion-weight: 0`
423
- zeroes travel/spread/squash/lag in ONE assignment (every `calc(… * --motion-weight)`
424
- collapses to rest); the transition is killed. The static bold cel STAMP persists
425
- (identity/legibility — only the TRAVEL/PUNCH is removed). */
426
- @media (prefers-reduced-motion: reduce) {
427
- .cartoon-surface,
428
- .cartoon-cast {
429
- --motion-weight: 0;
430
- transition: none;
431
- }
432
- }
433
-
434
- /* ── Veil surface decoration (R5-7) ──────────────────────────────
435
- The text-legibility PLATE register, ratified by three slides sites (the
436
- deck cover subtitle / standfirst / closer lede). Conceptually the W55
437
- adaptive-legibility tint applied as a LOCAL plate: a translucent glass
438
- fill + blur that darkens content-on-glass over a busy/bright backdrop so
439
- text clears AA, but with the BOXED look STRIPPED — no border, no rim, no
440
- highlight (the user's read: the border+rim "reads as a dividing line on a
441
- text plate"). It is the `surface` sibling of `cartoon` — a decoration-only
442
- utility, NOT a tier of its own.
443
-
444
- It routes the glass MATERIAL through the `--glass-*` ladder (`--veil-bg`
445
- defaults to the `quiet` rung's adaptive-tint mix, `--veil-blur` to the
446
- quiet blur), so the glass-cohesion model sees a sanctioned glass register
447
- (the level knob scales the blur; the W55 bright-bucket darkens the fill via
448
- the same inheriting tint axis the rung already reads). What it carries on TOP
449
- of a bare rung is the THREE veil deltas, each a `--veil-*` knob a consumer
450
- retunes:
451
-
452
- border : none (--veil-border, the dividing-line strip)
453
- shadow : none (--veil-shadow, the rim/highlight strip)
454
- feather : none (default) (--veil-feather — an OPTIONAL radial mask that
455
- fades the plate edges into the backdrop; off by default so the
456
- plate is a clean rectangle, on when a consumer wants the
457
- soft-edged "bleed into the page" text-plate look)
458
-
459
- <Card surface="veil"> selects it; `--veil-bg`/`--veil-blur` ride the same
460
- `--glass-*` rungs as the ladder, so one `--glass-level` / `--glass-backdrop`
461
- override retunes it in lockstep with every other glass surface. */
462
- @utility veil-surface {
463
- /* The glass material — routed through the `--glass-*` ladder so the
464
- cohesion model reads a sanctioned glass register, and the W55 adaptive
465
- darken (the inheriting `--glass-tint-*` axis) + the `--glass-level` clarity
466
- knob reach the plate with NO veil-local recipe. Defaults to the `quiet`
467
- rung; a consumer re-points `--veil-bg`/`--veil-blur` to any other rung. */
468
- --veil-bg: color-mix(in oklab, var(--glass-bg-quiet), var(--glass-tint-source) var(--glass-tint-strength));
469
- --veil-blur: var(--glass-blur-quiet);
470
- /* The three veil deltas over a bare rung — each overridable. */
471
- --veil-border: none;
472
- --veil-shadow: none;
473
- --veil-feather: none;
474
-
475
- background: var(--veil-bg);
476
- backdrop-filter: var(--veil-blur);
477
- border: var(--veil-border);
478
- box-shadow: var(--veil-shadow);
479
- /* The optional radial feather — a `mask-image` only painted when
480
- `--veil-feather` is set to a gradient (default `none` = no mask = a clean
481
- rectangle). `mask-image: none` is the identity, so the default plate is
482
- unmasked. `mask-image` Baseline 2023-12 — a non-supporting engine ignores
483
- it and keeps the clean rectangle. */
484
- mask-image: var(--veil-feather);
485
- }