@mkbabb/glass-ui 3.13.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (507) hide show
  1. package/README.md +3 -1
  2. package/dist/CardAction-CW7a0m8M.js +253 -0
  3. package/dist/{CommandShortcut-RowNEO6i.js → CommandShortcut-DvZNQ_HF.js} +58 -53
  4. package/dist/ConfiguratorRow-BR4l-ixA.js +143 -0
  5. package/dist/{ContextMenuContent-CT3AS1WX.js → ContextMenuContent-uWnVxDab.js} +1 -1
  6. package/dist/{ContextMenuSubContent-BQmxTAdw.js → ContextMenuSubContent-xol4sD2q.js} +32 -37
  7. package/dist/{DataTable-BCddn3T3.js → DataTable-CuKwF7wr.js} +99 -97
  8. package/dist/DialogContent-DcKK8k9i.js +103 -0
  9. package/dist/{DialogFooter-Blu4t7tJ.js → DialogFooter-BZNX5aVr.js} +3 -3
  10. package/dist/FadingScroll-DI6hQhT9.js +76 -0
  11. package/dist/{HoverCardContent-Csywg3YF.js → HoverCardContent-b2uaAMRR.js} +1 -1
  12. package/dist/{HoverPopover-CISOJQuZ.js → HoverPopover-CbqbNwgU.js} +2 -2
  13. package/dist/IconChip-BTD-nay5.js +55 -0
  14. package/dist/{IconTooltip-DPzE09X9.js → IconTooltip-Bl8gFZ8d.js} +1 -1
  15. package/dist/{Input-DWQQIOC4.js → Input-h9v5LeXf.js} +1 -1
  16. package/dist/{MetricBadge-C9QMz1KT.js → MetricBadge-RHdBP72w.js} +1 -1
  17. package/dist/Notification-VUwexFUf.js +43 -0
  18. package/dist/NumberFieldContent-Cq7EzX-U.js +138 -0
  19. package/dist/PopoverContent-DL7E6vJP.js +127 -0
  20. package/dist/{Progress-DwlUKGbr.js → Progress-DctG61iZ.js} +98 -78
  21. package/dist/{ScrollingText-DfFrwSph.js → ScrollingText-yOpBzFYq.js} +2 -2
  22. package/dist/{SelectScrollDownButton-CiDUxfEj.js → SelectScrollDownButton-CrA8F0iV.js} +35 -20
  23. package/dist/{Switch-CsIuYP_e.js → Switch-CwYNf8bo.js} +1 -1
  24. package/dist/Toaster-Bw4xR8xV.js +274 -0
  25. package/dist/{ToggleGroupItem-D_AHlRw9.js → ToggleGroupItem-pEM9vIhs.js} +50 -37
  26. package/dist/{TooltipProvider-B3MkB_8P.js → TooltipProvider-rzvnXz60.js} +1 -1
  27. package/dist/animated-digit.js +2 -2
  28. package/dist/api/index.d.ts +16 -8
  29. package/dist/api/types-extra.d.ts +6 -0
  30. package/dist/api.js +2 -2
  31. package/dist/aurora.js +888 -230
  32. package/dist/badge.js +1 -1
  33. package/dist/border-progress.d.ts +1 -0
  34. package/dist/border-progress.js +106 -0
  35. package/dist/button-DYCUa-tH.js +126 -0
  36. package/dist/button.js +1 -1
  37. package/dist/canvas.js +2 -2
  38. package/dist/card.js +2 -2
  39. package/dist/carousel.d.ts +1 -1
  40. package/dist/carousel.js +90 -151
  41. package/dist/collapsible.js +1 -1
  42. package/dist/color-swatch.d.ts +1 -0
  43. package/dist/color-swatch.js +47 -0
  44. package/dist/color.js +1 -1
  45. package/dist/command.js +1 -1
  46. package/dist/compile-CQEFRTmx.js +19 -0
  47. package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
  48. package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
  49. package/dist/components/custom/aurora/composables/runtime.d.ts +19 -0
  50. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
  51. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +51 -0
  52. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +29 -0
  53. package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
  54. package/dist/components/custom/aurora/constants/presets.d.ts +30 -2
  55. package/dist/components/custom/aurora/constants/renderMode.d.ts +63 -10
  56. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
  57. package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
  58. package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
  59. package/dist/components/custom/aurora/index.d.ts +3 -2
  60. package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
  61. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +22 -0
  62. package/dist/components/custom/border-progress/constants.d.ts +59 -0
  63. package/dist/components/custom/border-progress/index.d.ts +4 -0
  64. package/dist/components/custom/color-swatch/ColorSwatch.vue.d.ts +22 -0
  65. package/dist/components/custom/color-swatch/index.d.ts +1 -0
  66. package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
  67. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +11 -0
  68. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
  69. package/dist/components/custom/concentric/composables/ringField.d.ts +44 -0
  70. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +13 -0
  71. package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
  72. package/dist/components/custom/concentric/constants.d.ts +43 -0
  73. package/dist/components/custom/concentric/index.d.ts +5 -0
  74. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
  75. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
  76. package/dist/components/custom/configurator/Configurator.vue.d.ts +19 -8
  77. package/dist/components/custom/constellation/Constellation.vue.d.ts +18 -206
  78. package/dist/components/custom/constellation/composables/useConstellation.d.ts +26 -0
  79. package/dist/components/custom/constellation/constellationField.d.ts +2 -369
  80. package/dist/components/custom/constellation/constellationTypes.d.ts +369 -0
  81. package/dist/components/custom/constellation/index.d.ts +1 -1
  82. package/dist/components/custom/dock/DockIconButton.vue.d.ts +13 -4
  83. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
  84. package/dist/components/custom/dock/DockRail.vue.d.ts +17 -16
  85. package/dist/components/custom/dock/DockSection.vue.d.ts +69 -0
  86. package/dist/components/custom/dock/DockSeparator.vue.d.ts +49 -1
  87. package/dist/components/custom/dock/DockTabButton.vue.d.ts +5 -5
  88. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +75 -0
  89. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
  90. package/dist/components/custom/dock/constants.d.ts +35 -0
  91. package/dist/components/custom/dock/index.d.ts +2 -0
  92. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +38 -0
  93. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +41 -0
  94. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +24 -0
  95. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +34 -0
  96. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -0
  97. package/dist/components/custom/dot-flow-field/constants.d.ts +48 -0
  98. package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
  99. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
  100. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +20 -0
  101. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
  102. package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
  103. package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
  104. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +75 -0
  105. package/dist/components/custom/easing/constants.d.ts +28 -0
  106. package/dist/components/custom/easing/index.d.ts +3 -0
  107. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +10 -0
  108. package/dist/components/custom/fading-scroll/FadingScroll.vue.d.ts +25 -0
  109. package/dist/components/custom/fading-scroll/composables/useFadingScroll.d.ts +31 -0
  110. package/dist/components/custom/fading-scroll/constants.d.ts +19 -0
  111. package/dist/components/custom/fading-scroll/index.d.ts +2 -0
  112. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +19 -2
  113. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +39 -0
  114. package/dist/components/custom/fourier-field/constants.d.ts +7 -0
  115. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  116. package/dist/components/custom/fourier-field/math.d.ts +17 -0
  117. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +9 -1
  118. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +4 -2
  119. package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
  120. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +29 -12
  121. package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
  122. package/dist/components/custom/goo-blob/constants.d.ts +6 -1
  123. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
  124. package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
  125. package/dist/components/custom/handmark/brush.d.ts +269 -0
  126. package/dist/components/custom/handmark/composables/useHandMark.d.ts +89 -0
  127. package/dist/components/custom/handmark/constants.d.ts +39 -0
  128. package/dist/components/custom/handmark/freehand.d.ts +69 -0
  129. package/dist/components/custom/handmark/geometry.d.ts +52 -0
  130. package/dist/components/custom/handmark/index.d.ts +27 -0
  131. package/dist/components/custom/handmark/ink.d.ts +11 -0
  132. package/dist/components/custom/handmark/texture.d.ts +39 -0
  133. package/dist/components/custom/handmark/types.d.ts +62 -0
  134. package/dist/components/custom/icon-chip/IconChip.vue.d.ts +4 -0
  135. package/dist/components/custom/icon-chip/index.d.ts +2 -0
  136. package/dist/components/custom/icon-chip/types.d.ts +82 -0
  137. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +17 -2
  138. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
  139. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +39 -0
  140. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  141. package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
  142. package/dist/components/custom/spa-view/index.d.ts +2 -0
  143. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +29 -24
  144. package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
  145. package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +30 -21
  146. package/dist/components/custom/tabs/constants.d.ts +9 -3
  147. package/dist/components/custom/tabs/index.d.ts +1 -1
  148. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +15 -1
  149. package/dist/components/ui/_shared/index.d.ts +2 -0
  150. package/dist/components/ui/_shared/menuItemVariants.d.ts +19 -0
  151. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +41 -0
  152. package/dist/components/ui/badge/index.d.ts +1 -1
  153. package/dist/components/ui/button/Button.vue.d.ts +5 -2
  154. package/dist/components/ui/button/index.d.ts +2 -2
  155. package/dist/components/ui/card/Card.vue.d.ts +34 -4
  156. package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
  157. package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
  158. package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
  159. package/dist/components/ui/card/index.d.ts +2 -0
  160. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
  161. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
  162. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
  163. package/dist/components/ui/carousel/index.d.ts +0 -1
  164. package/dist/components/ui/command/Command.vue.d.ts +4 -1
  165. package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -3
  166. package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
  167. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +12 -8
  168. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
  169. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
  170. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
  171. package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
  172. package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
  173. package/dist/components/ui/drawer/constants.d.ts +45 -0
  174. package/dist/components/ui/drawer/index.d.ts +23 -15
  175. package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
  176. package/dist/components/ui/focus-scope/index.d.ts +2 -0
  177. package/dist/components/ui/index.d.ts +1 -1
  178. package/dist/components/ui/popover/PopoverContent.vue.d.ts +3 -0
  179. package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
  180. package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +14 -3
  181. package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
  182. package/dist/components/ui/select/SelectTrigger.vue.d.ts +27 -4
  183. package/dist/components/ui/sheet/SheetContent.vue.d.ts +6 -0
  184. package/dist/components/ui/sheet/index.d.ts +1 -1
  185. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +3 -0
  186. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
  187. package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
  188. package/dist/components/ui/toast/use-toast.d.ts +14 -0
  189. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  190. package/dist/composables/dark/index.d.ts +1 -1
  191. package/dist/composables/dark/useGlobalDark.d.ts +23 -1
  192. package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
  193. package/dist/composables/glass/index.d.ts +5 -2
  194. package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
  195. package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
  196. package/dist/composables/glass/vSpecular.d.ts +2 -0
  197. package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
  198. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
  199. package/dist/composables/glass/webgpu/index.d.ts +2 -0
  200. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +54 -0
  201. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +84 -0
  202. package/dist/composables/motion/core/index.d.ts +1 -0
  203. package/dist/composables/motion/index.d.ts +4 -0
  204. package/dist/composables/motion/useDockCtaReceive.d.ts +59 -0
  205. package/dist/composables/motion/useDragMorph.d.ts +77 -0
  206. package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
  207. package/dist/composables/motion/useLiquidPress.d.ts +71 -0
  208. package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
  209. package/dist/composables/motion/useNumericTransition.d.ts +3 -3
  210. package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
  211. package/dist/composables/motion/useViewTransition.d.ts +36 -1
  212. package/dist/concentric.d.ts +1 -0
  213. package/dist/concentric.js +562 -0
  214. package/dist/configurator.js +3 -2
  215. package/dist/confirm-dialog.js +22 -24
  216. package/dist/constellation.js +93 -95
  217. package/dist/context-menu.js +3 -3
  218. package/dist/controls.js +10 -4
  219. package/dist/createCanvasLifecycle-CHD5XrDW.js +82 -0
  220. package/dist/dark.d.ts +1 -1
  221. package/dist/dark.js +1 -1
  222. package/dist/data-table.js +1 -1
  223. package/dist/dialog.js +2 -2
  224. package/dist/dock.js +738 -442
  225. package/dist/{dockContext-BegmJVmx.js → dockContext-BNfyPLe9.js} +1 -1
  226. package/dist/dom.js +5 -5
  227. package/dist/dot-flow-field.d.ts +1 -0
  228. package/dist/dot-flow-field.js +604 -0
  229. package/dist/drawer.d.ts +1 -0
  230. package/dist/drawer.js +380 -0
  231. package/dist/{dropdown-menu-DzkkyBwX.js → dropdown-menu-CofSZuk8.js} +14 -15
  232. package/dist/dropdown-menu.js +1 -1
  233. package/dist/easing.d.ts +1 -0
  234. package/dist/easing.js +463 -0
  235. package/dist/expandable-container.js +45 -38
  236. package/dist/fading-scroll.d.ts +1 -0
  237. package/dist/fading-scroll.js +2 -0
  238. package/dist/focus-scope.d.ts +1 -0
  239. package/dist/focus-scope.js +23 -0
  240. package/dist/forms.js +7 -7
  241. package/dist/fourier-field.js +135 -122
  242. package/dist/fourier-math.js +2 -2
  243. package/dist/glass-panel.js +39 -36
  244. package/dist/glass-ui.css +1 -1
  245. package/dist/glass-ui.js +154 -362
  246. package/dist/goo-blob.js +838 -227
  247. package/dist/handmark.d.ts +1 -0
  248. package/dist/handmark.js +707 -0
  249. package/dist/header-ribbon.js +1 -1
  250. package/dist/hover-card.js +1 -1
  251. package/dist/hover-popover.js +1 -1
  252. package/dist/icon-chip.d.ts +1 -0
  253. package/dist/icon-chip.js +2 -0
  254. package/dist/icon-tooltip.js +1 -1
  255. package/dist/index.d.ts +3 -3
  256. package/dist/instrument-chassis.js +1 -1
  257. package/dist/keyboard.js +1 -1
  258. package/dist/label.js +1 -1
  259. package/dist/labeled-field.js +6 -6
  260. package/dist/{math-U6-RrLmV.js → math-BINYmg5z.js} +11 -3
  261. package/dist/{menuItemVariants-DPiEarb0.js → menuItemVariants-D8VNHq22.js} +10 -4
  262. package/dist/metric-badge.js +1 -1
  263. package/dist/metric-cell.js +25 -22
  264. package/dist/metric-stack.js +4 -8
  265. package/dist/motion-core.js +36 -35
  266. package/dist/motion-curves.js +1 -1
  267. package/dist/motion.js +157 -55
  268. package/dist/notification.js +1 -1
  269. package/dist/number-field.js +1 -1
  270. package/dist/pager-dots.d.ts +1 -0
  271. package/dist/pager-dots.js +91 -0
  272. package/dist/paper-backdrop.js +1 -1
  273. package/dist/popover.js +1 -1
  274. package/dist/{presets-BKVyQfbt.js → presets-BW2b-fr1.js} +14 -1
  275. package/dist/{compile-B7NGOBcP.js → procedural-color.glsl-CIFsJhwI.js} +1 -155
  276. package/dist/procedural-color.wgsl-CToRHugY.js +224 -0
  277. package/dist/progress.js +1 -1
  278. package/dist/pulse.js +1 -1
  279. package/dist/reactive.js +2 -2
  280. package/dist/scrolling-text.js +1 -1
  281. package/dist/search.js +10 -12
  282. package/dist/select.js +3 -3
  283. package/dist/separator.js +1 -1
  284. package/dist/sheet-tZMg0E0w.js +218 -0
  285. package/dist/sheet.js +1 -1
  286. package/dist/{slider-B-JP2JlI.js → slider-DVb4HXU-.js} +7 -7
  287. package/dist/slider.js +1 -1
  288. package/dist/sortable-list.js +3 -3
  289. package/dist/spa-view.d.ts +1 -0
  290. package/dist/spa-view.js +46 -0
  291. package/dist/styles/animations.css +40 -31
  292. package/dist/styles/border-progress.css +109 -0
  293. package/dist/styles/cards.css +76 -0
  294. package/dist/styles/components.css +1 -1
  295. package/dist/styles/configurator.css +35 -0
  296. package/dist/styles/critical-partition.mjs +140 -0
  297. package/dist/styles/critical.css +12 -0
  298. package/dist/styles/deferred.css +31 -0
  299. package/dist/styles/dock/density.css +64 -0
  300. package/dist/styles/dock/layers.css +54 -30
  301. package/dist/styles/dock/morph.css +124 -7
  302. package/dist/styles/dock/overflow.css +31 -2
  303. package/dist/styles/dock/rail-extend.css +168 -71
  304. package/dist/styles/dock/section.css +59 -0
  305. package/dist/styles/dock/shell.css +83 -16
  306. package/dist/styles/dock-controls/icon-button.css +11 -1
  307. package/dist/styles/dock-controls/tab-button.css +24 -83
  308. package/dist/styles/dock-controls/triggers.css +7 -0
  309. package/dist/styles/dock.css +38 -3
  310. package/dist/styles/drawer.css +127 -35
  311. package/dist/styles/feedback-tone.css +104 -0
  312. package/dist/styles/glass/deep.css +44 -0
  313. package/dist/styles/glass/ladder.css +154 -52
  314. package/dist/styles/glass/material.css +78 -15
  315. package/dist/styles/glass/reveal.css +136 -0
  316. package/dist/styles/glass/rim.css +100 -0
  317. package/dist/styles/glass/surface-axis.css +113 -0
  318. package/dist/styles/glass/surfaces.css +189 -15
  319. package/dist/styles/glass-refract.css +96 -44
  320. package/dist/styles/glass-specular-track.css +7 -0
  321. package/dist/styles/glass.css +8 -2
  322. package/dist/styles/hover-popover.css +7 -6
  323. package/dist/styles/icon-chip.css +211 -0
  324. package/dist/styles/index.css +78 -4
  325. package/dist/styles/instrument-chassis.css +107 -2
  326. package/dist/styles/menu.css +127 -0
  327. package/dist/styles/scroll-choreography.css +300 -0
  328. package/dist/styles/segmented-tabs.css +188 -86
  329. package/dist/styles/select.css +50 -0
  330. package/dist/styles/theme/bridges.css +22 -1
  331. package/dist/styles/theme/literals.css +11 -2
  332. package/dist/styles/theme/radius.css +6 -1
  333. package/dist/styles/tokens/color-radius.css +40 -13
  334. package/dist/styles/tokens/dark-arm.css +200 -20
  335. package/dist/styles/tokens/glass-deep.css +75 -0
  336. package/dist/styles/tokens/glass-fx.css +333 -0
  337. package/dist/styles/tokens/glass.css +95 -315
  338. package/dist/styles/tokens/light-dark.css +64 -22
  339. package/dist/styles/tokens/offsets.css +116 -0
  340. package/dist/styles/tokens/on-glass-fg.css +39 -0
  341. package/dist/styles/tokens/property-regs.css +130 -10
  342. package/dist/styles/tokens/scale-paper.css +155 -84
  343. package/dist/styles/tokens/scheme-motion.css +102 -46
  344. package/dist/styles/tokens/scroll-tokens.css +123 -0
  345. package/dist/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
  346. package/dist/styles/tokens.css +9 -3
  347. package/dist/styles/transitions.css +7 -7
  348. package/dist/styles/typography/scale.css +153 -0
  349. package/dist/styles/typography/semantic.css +220 -0
  350. package/dist/styles/typography/utilities.css +174 -0
  351. package/dist/styles/typography.css +23 -507
  352. package/dist/styles/utilities/a11y-overrides.css +33 -4
  353. package/dist/styles/utilities/animate.css +27 -24
  354. package/dist/styles/utilities/base-misc.css +255 -0
  355. package/dist/styles/utilities/base.css +100 -138
  356. package/dist/styles/utilities/btn.css +21 -202
  357. package/dist/styles/utilities/metal.css +189 -0
  358. package/dist/styles/utilities.css +14 -7
  359. package/dist/styles/view-transition.css +4 -1
  360. package/dist/switch.js +1 -1
  361. package/dist/tabs.js +275 -191
  362. package/dist/timeline.js +2 -2
  363. package/dist/toast.js +1 -1
  364. package/dist/toggle-chip.js +3 -1
  365. package/dist/toggle-group.js +1 -1
  366. package/dist/tooltip.js +1 -1
  367. package/dist/typewriter.js +1 -1
  368. package/dist/{useAnimatedNumber-C5I3wWd8.js → useAnimatedNumber-BfUq2bUM.js} +1 -1
  369. package/dist/useCanvas2D-B8w_E3Rr.js +83 -0
  370. package/dist/useConfiguratorState-DNlOh6c8.js +161 -0
  371. package/dist/useDragMorph-DgxnsVJz.js +102 -0
  372. package/dist/{useGlobalDark-yhL4Wp-s.js → useGlobalDark-C28t0VWJ.js} +22 -3
  373. package/dist/useLiquidPress-kfb4KX79.js +39 -0
  374. package/dist/usePointerVelocityField-JbRd5CrM.js +137 -0
  375. package/dist/{useRAFLoop-Bxv0o6L5.js → useRAFLoop-UYa4zoiN.js} +1 -1
  376. package/dist/useSpring-C0jyvEJB.js +40 -0
  377. package/dist/useSpringMount-q1amq1SJ.js +71 -0
  378. package/dist/useSpringPress-BsqPr7FJ.js +34 -0
  379. package/dist/useSurfaceAxis-g0NloYEF.js +7 -0
  380. package/dist/{useTouchGate-Dg7MQI1G.js → useTouchGate-CBZTD4SD.js} +1 -1
  381. package/dist/vReveal-Czsb7zQC.js +10 -0
  382. package/dist/vSpecular-CQFmLNzA.js +68 -0
  383. package/dist/vendor-CKmzio-i.js +226 -0
  384. package/dist/watercolor-dot.js +12 -5
  385. package/package.json +193 -25
  386. package/src/styles/animations.css +40 -31
  387. package/src/styles/border-progress.css +109 -0
  388. package/src/styles/cards.css +76 -0
  389. package/src/styles/configurator.css +35 -0
  390. package/src/styles/critical-partition.mjs +140 -0
  391. package/src/styles/dock/density.css +64 -0
  392. package/src/styles/dock/layers.css +54 -30
  393. package/src/styles/dock/morph.css +124 -7
  394. package/src/styles/dock/overflow.css +31 -2
  395. package/src/styles/dock/rail-extend.css +168 -71
  396. package/src/styles/dock/section.css +59 -0
  397. package/src/styles/dock/shell.css +83 -16
  398. package/src/styles/dock-controls/icon-button.css +11 -1
  399. package/src/styles/dock-controls/tab-button.css +24 -83
  400. package/src/styles/dock-controls/triggers.css +7 -0
  401. package/src/styles/dock.css +38 -3
  402. package/src/styles/drawer.css +123 -35
  403. package/src/styles/feedback-tone.css +104 -0
  404. package/src/styles/glass/deep.css +44 -0
  405. package/src/styles/glass/ladder.css +154 -52
  406. package/src/styles/glass/material.css +78 -15
  407. package/src/styles/glass/reveal.css +136 -0
  408. package/src/styles/glass/rim.css +100 -0
  409. package/src/styles/glass/surface-axis.css +113 -0
  410. package/src/styles/glass/surfaces.css +189 -15
  411. package/src/styles/glass-refract.css +96 -44
  412. package/src/styles/glass-specular-track.css +7 -0
  413. package/src/styles/glass.css +8 -2
  414. package/src/styles/hover-popover.css +7 -6
  415. package/src/styles/icon-chip.css +211 -0
  416. package/src/styles/index.css +78 -4
  417. package/src/styles/instrument-chassis.css +107 -2
  418. package/src/styles/menu.css +127 -0
  419. package/src/styles/scroll-choreography.css +300 -0
  420. package/src/styles/segmented-tabs.css +184 -84
  421. package/src/styles/select.css +50 -0
  422. package/src/styles/theme/bridges.css +22 -1
  423. package/src/styles/theme/literals.css +11 -2
  424. package/src/styles/theme/radius.css +6 -1
  425. package/src/styles/tokens/color-radius.css +40 -13
  426. package/src/styles/tokens/dark-arm.css +200 -20
  427. package/src/styles/tokens/glass-deep.css +75 -0
  428. package/src/styles/tokens/glass-fx.css +333 -0
  429. package/src/styles/tokens/glass.css +95 -315
  430. package/src/styles/tokens/light-dark.css +64 -22
  431. package/src/styles/tokens/offsets.css +116 -0
  432. package/src/styles/tokens/on-glass-fg.css +39 -0
  433. package/src/styles/tokens/property-regs.css +130 -10
  434. package/src/styles/tokens/scale-paper.css +155 -84
  435. package/src/styles/tokens/scheme-motion.css +102 -46
  436. package/src/styles/tokens/scroll-tokens.css +123 -0
  437. package/src/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
  438. package/src/styles/tokens.css +9 -3
  439. package/src/styles/transitions.css +7 -7
  440. package/src/styles/typography/scale.css +153 -0
  441. package/src/styles/typography/semantic.css +220 -0
  442. package/src/styles/typography/utilities.css +174 -0
  443. package/src/styles/typography.css +23 -507
  444. package/src/styles/utilities/a11y-overrides.css +33 -4
  445. package/src/styles/utilities/animate.css +27 -24
  446. package/src/styles/utilities/base-misc.css +255 -0
  447. package/src/styles/utilities/base.css +100 -138
  448. package/src/styles/utilities/btn.css +21 -202
  449. package/src/styles/utilities/metal.css +189 -0
  450. package/src/styles/utilities.css +14 -7
  451. package/src/styles/view-transition.css +4 -1
  452. package/dist/CardAction-Cj2eycQ2.js +0 -157
  453. package/dist/DialogContent-Dl9WkAoS.js +0 -100
  454. package/dist/Notification-DdwNxIrI.js +0 -100
  455. package/dist/NumberFieldContent-CqaN-SvN.js +0 -145
  456. package/dist/PopoverContent-BYwt2-4x.js +0 -121
  457. package/dist/TabsList-Dttss653.js +0 -105
  458. package/dist/Toaster-D6q4HtXu.js +0 -263
  459. package/dist/button-ChXMfsud.js +0 -81
  460. package/dist/check-njhk-vfu.js +0 -7
  461. package/dist/chevron-down-DKkxb4VV.js +0 -7
  462. package/dist/chevron-right-CPXbqQQz.js +0 -7
  463. package/dist/chevron-up-n_24SqI-.js +0 -7
  464. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +0 -84
  465. package/dist/components/custom/underline/index.d.ts +0 -2
  466. package/dist/components/custom/underline/types.d.ts +0 -56
  467. package/dist/components/ui/carousel/CarouselDots.vue.d.ts +0 -4
  468. package/dist/createLucideIcon-DydS2qgk.js +0 -43
  469. package/dist/minimize-2-BV31Ob_h.js +0 -38
  470. package/dist/search-BSGrf2Sk.js +0 -12
  471. package/dist/sheet-1fChZjtw.js +0 -214
  472. package/dist/underline.d.ts +0 -1
  473. package/dist/underline.js +0 -85
  474. package/dist/useCanvas2D-ClrQuZtp.js +0 -96
  475. package/dist/useConfiguratorState-DAoeHVue.js +0 -287
  476. package/dist/useSpecularTracking-Bo5su68i.js +0 -32
  477. package/dist/useSpringMount-CI2jOstM.js +0 -108
  478. package/dist/vReveal-CqaCz_mC.js +0 -44
  479. package/dist/x-BUwTKe50.js +0 -10
  480. /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-68dEXIAl.js} +0 -0
  481. /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-Bx0F_q5g.js} +0 -0
  482. /package/dist/{Label-r3WzWrsj.js → Label-C2ejNWeC.js} +0 -0
  483. /package/dist/{ModalOverlay-DVLI2VRr.js → ModalOverlay-D1VrWyoi.js} +0 -0
  484. /package/dist/{PaperBackdrop-DIXTtVq6.js → PaperBackdrop-Vf3tlpvd.js} +0 -0
  485. /package/dist/{SelectGroup-aumMgWLs.js → SelectGroup-DwwjicPY.js} +0 -0
  486. /package/dist/{SelectSeparator-BQ_1Fcbp.js → SelectSeparator-DXswVdRz.js} +0 -0
  487. /package/dist/{Separator-0JE6LtNu.js → Separator-pKF0oA4M.js} +0 -0
  488. /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
  489. /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
  490. /package/dist/{color-CUYeFbgd.js → color-DweYl7pE.js} +0 -0
  491. /package/dist/{constants-CS75AWHG.js → constants-BPOqYJAm.js} +0 -0
  492. /package/dist/{createContext-BM46COQ-.js → createContext-CpBNTRMI.js} +0 -0
  493. /package/dist/{prng-D27-B3tK.js → prng-Za0Rmgag.js} +0 -0
  494. /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CUyHr5Uu.js} +0 -0
  495. /package/dist/{springPresets--YdWTHtm.js → springPresets-CFQGQfdl.js} +0 -0
  496. /package/dist/{useIntersectionPause-Cc-H9ees.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
  497. /package/dist/{useInterval-iHludrxk.js → useInterval-CvK1mL92.js} +0 -0
  498. /package/dist/{useKeyboardShortcuts-Be3w_Rwk.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
  499. /package/dist/{useLiquidFlex-BL0lLLN2.js → useLiquidFlex-mZPMiNXh.js} +0 -0
  500. /package/dist/{useResizeObserver-BhgdhOIj.js → useResizeObserver-Bpoi7tRE.js} +0 -0
  501. /package/dist/{useResolveTokenColor-Dvn2RZJW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
  502. /package/dist/{useScrollProgress-Dlvx-L3v.js → useScrollProgress-D7bYU2RK.js} +0 -0
  503. /package/dist/{useSortable-muI29agz.js → useSortable-DHjtZSEd.js} +0 -0
  504. /package/dist/{useTextHighlight-DmRYkOBx.js → useTextHighlight-CWEi25hf.js} +0 -0
  505. /package/dist/{useTimer-Dzarvzuk.js → useTimer-BHJOKr35.js} +0 -0
  506. /package/dist/{useUserInvalidAria-B2h6jAM_.js → useUserInvalidAria-y5namzeE.js} +0 -0
  507. /package/dist/{useViewportReady-B40FK4Pa.js → useViewportReady-anbac3m6.js} +0 -0
@@ -0,0 +1,153 @@
1
+ /* typography/scale.css — the OFL face FILES + the :root --type-* SCALE tokens.
2
+ *
3
+ * Carved from typography.css (BA.W-CARVE2) — the FACE declarations (the
4
+ * calibrated `local()` fallback faces for Plus Jakarta Sans + Fira Code) and
5
+ * the √φ scale-number :root block. @import-ed FIRST by the typography.css thin
6
+ * root (the faces + scale numbers must precede the semantic classes that read
7
+ * them). The carve moves rules in the SAME cascade position → byte-isomorphic
8
+ * dist (the no-god-module import-order gate is the witness). */
9
+
10
+ /* ═══════════════════════════════════════════════
11
+ OFL FACE FILES — Plus Jakarta Sans (brand display)
12
+ ═══════════════════════════════════════════════ */
13
+
14
+ /* The payload-bearing "Plus Jakarta Sans" faces live in `fonts.css`
15
+ (`@mkbabb/glass-ui/styles/fonts`), split off the critical entry path so
16
+ `./styles` does not carry the ~99 KB-gzipped font binary. The calibrated
17
+ `local()` fallback face below carries NO payload, stays on the critical
18
+ path, and paints during the `font-display: optional` window. Its metric
19
+ overrides (per system face) were derived via @capsizecss/core's
20
+ `createFontStack` against the bundled latin woff2 — the swap is metrically
21
+ neutral (no CLS). */
22
+ @font-face {
23
+ font-family: "Plus Jakarta Sans Fallback";
24
+ src:
25
+ local("System Font"), local(".SFNS-Regular"), local(".SFNSText-Regular"),
26
+ local("-apple-system");
27
+ ascent-override: 92.3784%;
28
+ descent-override: 19.7572%;
29
+ size-adjust: 112.3639%;
30
+ }
31
+ @font-face {
32
+ font-family: "Plus Jakarta Sans Fallback";
33
+ src: local("Segoe UI"), local("SegoeUI");
34
+ ascent-override: 98.3348%;
35
+ descent-override: 21.0311%;
36
+ size-adjust: 105.5577%;
37
+ }
38
+ @font-face {
39
+ font-family: "Plus Jakarta Sans Fallback";
40
+ src: local("Roboto Regular"), local("Roboto-Regular");
41
+ ascent-override: 98.6597%;
42
+ descent-override: 21.1006%;
43
+ size-adjust: 105.2101%;
44
+ }
45
+ @font-face {
46
+ font-family: "Plus Jakarta Sans Fallback";
47
+ src: local("Arial"), local("ArialMT");
48
+ ascent-override: 98.8763%;
49
+ descent-override: 21.147%;
50
+ line-gap-override: 0%;
51
+ size-adjust: 104.9796%;
52
+ }
53
+
54
+ /* ═══════════════════════════════════════════════
55
+ OFL FACE FILES — Fira Code (canonical mono)
56
+ ═══════════════════════════════════════════════ */
57
+
58
+ /* The payload-bearing "Fira Code" faces live in `fonts.css`
59
+ (`@mkbabb/glass-ui/styles/fonts`), split off the critical entry path. The
60
+ calibrated `local()` fallback face below carries NO payload, stays on the
61
+ critical path, and covers the `font-display: swap` window. Its metric
62
+ overrides reference Roboto Mono (the platform monos cluster within ~2%);
63
+ size-adjust ≈ 1.0 makes the swap geometrically transparent. */
64
+ @font-face {
65
+ font-family: "Fira Code Fallback";
66
+ src:
67
+ local("SF Mono"), local("SFMono-Regular"), local("Menlo"), local("Consolas"),
68
+ local("Courier New"), local("Roboto Mono Regular");
69
+ ascent-override: 99.0161%;
70
+ descent-override: 32.2052%;
71
+ size-adjust: 99.9837%;
72
+ }
73
+
74
+ :root {
75
+ /* Font family tokens. `--font-text` / `--font-display` / `--font-serif` /
76
+ `--font-mono` are NOT declared here — their source-of-truth lives in
77
+ tokens.css §0 (`--font-stack-*`), bridged to Tailwind via theme.css's
78
+ `@theme` block; declaring `:root` literals here would shadow consumer
79
+ `@theme` overrides (un-layered `:root` wins over `@layer theme`). The
80
+ self-hosted faces above expose `"Plus Jakarta Sans"` + `"Fira Code"`,
81
+ each pairing with a calibrated `"... Fallback"`. The brand text register
82
+ (Plus Jakarta Sans) engages by default for every consumer; --font-mono
83
+ references `"Fira Code"` first then the fallback chain. */
84
+
85
+ /* Scale tokens */
86
+ --type-admin-label: 0.625rem; /* 10px — fixed sub-control micro (NOT fluid) */
87
+ --type-micro: 0.6875rem; /* 11px — fixed sub-control micro (NOT fluid) */
88
+ /* BODY/CONTROL register (AY.W-SCALE1 — the desktop-fluid half of corpus #4):
89
+ a GENTLE clamp() viewport base so the control/body register grows ~1-2 steps
90
+ on a wide display (the 27" "font too small" the user flagged) WITHOUT a
91
+ media-query staircase. The <min> of every clamp is the rung's prior fixed rem
92
+ — byte-identical at narrow/mobile (no shipped-narrow reflow; the coarse 1.5×
93
+ --ui-scale still lifts the comfort axis ON TOP). The vw slope is the body
94
+ register's GENTLE slope (not the φ-display ladder's aggressive vw) — the
95
+ "non-contrived" bar. The vw fluid term lives HERE (the typographic base),
96
+ exactly ONCE; the --ui-scale comfort scalar multiplies it exactly ONCE LATER
97
+ (tokens.css --control-text/-sm) — NO double-vw under coarse. The φ-identity
98
+ rungs below (--type-subheading/-heading/-title + the --type-display-* ladder)
99
+ are EXCLUDED — a hero/title is a typographic identity, not a control. */
100
+ --type-caption: clamp(
101
+ 0.75rem,
102
+ 0.71rem + 0.21vw,
103
+ 1rem
104
+ ); /* 12px floor — --control-text-sm source */
105
+ --type-small: clamp(
106
+ 0.875rem,
107
+ 0.8rem + 0.25vw,
108
+ 1.25rem
109
+ ); /* 14px floor — --control-text source (the workhorse) */
110
+ --type-body: clamp(
111
+ 1rem,
112
+ 0.92rem + 0.27vw,
113
+ 1.375rem
114
+ ); /* 16px floor — global body cascade */
115
+ --type-prose: clamp(
116
+ 1.125rem,
117
+ 1.04rem + 0.28vw,
118
+ 1.5rem
119
+ ); /* 18px floor — long-form prose */
120
+ --type-subheading: 1.272rem; /* 20.4px — √φ */
121
+ --type-heading: 1.618rem; /* 25.9px — φ */
122
+ --type-title: 2.058rem; /* 32.9px — φ^(3/2) */
123
+ --type-display-1: clamp(1.618rem, 1.2rem + 1.6vw, 2.618rem); /* φ^2 */
124
+ --type-display-2: clamp(2.058rem, 1.5rem + 2.2vw, 3.33rem); /* φ^(5/2) */
125
+ --type-display-3: clamp(2.618rem, 2rem + 3vw, 4.236rem); /* φ^3 */
126
+ --type-display-4: clamp(3.33rem, 2.5rem + 4vw, 5.382rem); /* φ^(7/2) */
127
+ --type-display-5: clamp(4.236rem, 3.5rem + 6vw, 6.854rem); /* φ^4 */
128
+ /* Audacious display tier (v1.0.3). Extends the φ-ladder three rungs
129
+ beyond display-5 for poster-type consumers (speedtest hero,
130
+ dashboard pane titles when the consumer wants the number to win).
131
+ Same vw-axis as display-1..5 — consumer-agnostic. */
132
+ --type-display-mega: clamp(
133
+ 5.382rem,
134
+ 4rem + 9vw,
135
+ 11.089rem
136
+ ); /* φ^(9/2) — peak 177px */
137
+ --type-display-hero: clamp(
138
+ 6.854rem,
139
+ 4.5rem + 12vw,
140
+ 17.942rem
141
+ ); /* φ^5 — peak 287px */
142
+ --type-display-audacious: clamp(
143
+ 8.728rem,
144
+ 5rem + 16vw,
145
+ 22rem
146
+ ); /* φ^(11/2) — peak 352px (fast.com peg) */
147
+
148
+ /* Line heights & letter spacing live at tokens.css §0 as the canonical
149
+ --type-leading-* / --type-tracking-* rungs. theme.css bridges them
150
+ to Tailwind's `leading-*` / `tracking-*` utilities. The duplicate
151
+ --leading-* / --tracking-* declarations that previously sat here
152
+ were retired in v0.8.6 (audit U.W0.C-c §1.1 / Union 2). */
153
+ }
@@ -0,0 +1,220 @@
1
+ /* typography/semantic.css — the BODY cascade + the DISPLAY / HEADING / BODY /
2
+ * MICRO / ADMIN-LABEL semantic type classes.
3
+ *
4
+ * Carved from typography.css (BA.W-CARVE2) — the semantic register classes
5
+ * that read the scale tokens declared in typography/scale.css. @import-ed
6
+ * SECOND by the typography.css thin root (after the faces+scale, before the
7
+ * aux/mono utilities). The carve moves rules in the SAME cascade position →
8
+ * byte-isomorphic dist (the no-god-module import-order gate is the witness). */
9
+
10
+ /* ═══════════════════════════════════════════════
11
+ BODY CASCADE — the brand text register inherits globally
12
+ ═══════════════════════════════════════════════ */
13
+ body {
14
+ font-family: var(--font-text);
15
+ color: var(--foreground);
16
+ font-size: var(--type-body);
17
+ line-height: var(--type-leading-body);
18
+ }
19
+
20
+ /* ═══════════════════════════════════════════════
21
+ DISPLAY — Plus Jakarta Sans display, tracking-tight
22
+ ═══════════════════════════════════════════════ */
23
+ @utility text-display-audacious {
24
+ font-family: var(--font-display);
25
+ font-size: var(--type-display-audacious);
26
+ line-height: var(--type-leading-display);
27
+ letter-spacing: var(--type-tracking-display);
28
+ font-optical-sizing: auto;
29
+ font-weight: 600;
30
+ /* AQ.W3 §W3.3 — balance multi-line display headlines. Text-only (no box) so
31
+ balance is safe; degrades to unbalanced wrapping with zero break. */
32
+ text-wrap: balance;
33
+ }
34
+
35
+ /* `.text-hero` — the poster-type hero register. Ceiling pegs to
36
+ `--type-display-audacious` (φ^(11/2) — peak 352px). Three knobs tune without
37
+ forking: `--text-hero-size` (total clamp), `--text-hero-leading` (line-height,
38
+ default 0.84), `--text-hero-tracking` (letter-spacing, default -0.03em).
39
+ `font-weight: 300` + `font-feature-settings: ss01, tnum, lnum` lock the
40
+ numeric/stylistic baseline; consumer data-attribute registers compose on top. */
41
+ @utility text-hero {
42
+ font-family: var(--font-display);
43
+ font-size: var(--text-hero-size, var(--type-display-audacious));
44
+ line-height: var(--text-hero-leading, 0.84);
45
+ letter-spacing: var(--text-hero-tracking, -0.03em);
46
+ font-weight: 300;
47
+ font-feature-settings: "ss01", "tnum", "lnum";
48
+ font-variant-numeric: tabular-nums lining-nums;
49
+ font-optical-sizing: auto;
50
+ display: inline-block;
51
+ max-inline-size: 100%;
52
+ /* AQ.W3 §W3.3 — `text-wrap: nowrap` (modern) sits AFTER `white-space:
53
+ nowrap` (legacy fallback) so supporting engines honor the modern form and
54
+ older ones fall through to `white-space`. Forgiving parse, no `@supports`. */
55
+ white-space: nowrap;
56
+ text-wrap: nowrap;
57
+ }
58
+
59
+ @utility text-display-hero {
60
+ font-family: var(--font-display);
61
+ font-size: var(--type-display-hero);
62
+ line-height: var(--type-leading-display);
63
+ letter-spacing: var(--type-tracking-display);
64
+ font-optical-sizing: auto;
65
+ font-weight: 600;
66
+ text-wrap: balance; /* AQ.W3 §W3.3 */
67
+ }
68
+
69
+ @utility text-display-mega {
70
+ font-family: var(--font-display);
71
+ font-size: var(--type-display-mega);
72
+ line-height: var(--type-leading-display);
73
+ letter-spacing: var(--type-tracking-display);
74
+ font-optical-sizing: auto;
75
+ font-weight: 600;
76
+ text-wrap: balance; /* AQ.W3 §W3.3 */
77
+ }
78
+
79
+ @utility text-display-5 {
80
+ font-family: var(--font-display);
81
+ font-size: var(--type-display-5);
82
+ line-height: var(--type-leading-display);
83
+ letter-spacing: var(--type-tracking-display);
84
+ font-optical-sizing: auto;
85
+ font-weight: 600;
86
+ text-wrap: balance; /* AQ.W3 §W3.3 */
87
+ }
88
+
89
+ @utility text-display-4 {
90
+ font-family: var(--font-display);
91
+ font-size: var(--type-display-4);
92
+ line-height: var(--type-leading-display);
93
+ letter-spacing: var(--type-tracking-display);
94
+ font-optical-sizing: auto;
95
+ font-weight: 600;
96
+ text-wrap: balance; /* AQ.W3 §W3.3 */
97
+ }
98
+
99
+ @utility text-display-3 {
100
+ font-family: var(--font-display);
101
+ font-size: var(--type-display-3);
102
+ line-height: var(--type-leading-display);
103
+ letter-spacing: var(--type-tracking-display);
104
+ font-optical-sizing: auto;
105
+ font-weight: 600;
106
+ text-wrap: balance; /* AQ.W3 §W3.3 */
107
+ }
108
+
109
+ @utility text-display-2 {
110
+ font-family: var(--font-display);
111
+ font-size: var(--type-display-2);
112
+ line-height: var(--type-leading-display);
113
+ letter-spacing: var(--type-tracking-display);
114
+ font-optical-sizing: auto;
115
+ font-weight: 600;
116
+ text-wrap: balance; /* AQ.W3 §W3.3 */
117
+ }
118
+
119
+ @utility text-display {
120
+ font-family: var(--font-display);
121
+ font-size: var(--type-display-1);
122
+ line-height: var(--type-leading-display);
123
+ letter-spacing: var(--type-tracking-display);
124
+ font-optical-sizing: auto;
125
+ font-weight: 600;
126
+ text-wrap: balance; /* AQ.W3 §W3.3 */
127
+ }
128
+
129
+ /* ═══════════════════════════════════════════════
130
+ HEADINGS / BODY — Plus Jakarta Sans text register
131
+ ═══════════════════════════════════════════════ */
132
+ @utility text-title {
133
+ font-family: var(--font-text);
134
+ font-size: var(--type-title);
135
+ line-height: var(--type-leading-heading);
136
+ letter-spacing: var(--type-tracking-tight);
137
+ font-weight: 700;
138
+ text-wrap: balance; /* AQ.W3 §W3.3 */
139
+ }
140
+
141
+ @utility text-heading {
142
+ font-family: var(--font-text);
143
+ font-size: var(--type-heading);
144
+ line-height: var(--type-leading-heading);
145
+ font-weight: 700;
146
+ text-wrap: balance; /* AQ.W3 §W3.3 */
147
+ }
148
+
149
+ @utility text-subheading {
150
+ font-family: var(--font-text);
151
+ font-size: var(--type-subheading);
152
+ line-height: var(--type-leading-body);
153
+ font-weight: 600;
154
+ text-wrap: balance; /* AQ.W3 §W3.3 */
155
+ }
156
+
157
+ /* Canonical dock control label register — text labels INSIDE
158
+ `.dock-tab-button` (Start, Next, Submit, …) that want an emphatic character
159
+ without `.text-heading`'s `font-weight: 700` (which reads as literal bold in
160
+ a dock pill). Composes the `--dock-label-size` knob when set (dock.css
161
+ audacious mobile carve), else `--type-subheading`. Weight 400 — Plus Jakarta
162
+ reads heavier than its numeric weight at pill size, so regular is the
163
+ not-bold register. */
164
+ @utility dock-label {
165
+ font-family: var(--font-text);
166
+ font-size: var(--dock-label-size, var(--type-subheading));
167
+ line-height: var(--type-leading-body);
168
+ font-weight: 400;
169
+ letter-spacing: var(--type-tracking-normal);
170
+ }
171
+
172
+ @utility text-prose {
173
+ font-family: var(--font-text);
174
+ font-size: var(--type-prose);
175
+ line-height: var(--type-leading-prose);
176
+ font-weight: 400;
177
+ /* AQ.W3 §W3.3 — `pretty` fixes orphans/rivers in prose. Prose registers
178
+ only (not every text class); degrades to default wrapping, zero break. */
179
+ text-wrap: pretty;
180
+ }
181
+
182
+ @utility text-body {
183
+ font-family: var(--font-text);
184
+ font-size: var(--type-body);
185
+ line-height: var(--type-leading-body);
186
+ font-weight: 400;
187
+ text-wrap: pretty; /* AQ.W3 §W3.3 */
188
+ }
189
+
190
+ @utility text-small {
191
+ font-family: var(--font-text);
192
+ font-size: var(--type-small);
193
+ line-height: var(--type-leading-small);
194
+ font-weight: 400;
195
+ }
196
+
197
+ @utility text-caption {
198
+ font-family: var(--font-text);
199
+ font-size: var(--type-caption);
200
+ line-height: var(--type-leading-caption);
201
+ font-style: italic;
202
+ font-weight: 400;
203
+ }
204
+
205
+ /* ═══════════════════════════════════════════════
206
+ MICRO / ADMIN LABEL — Fira Code
207
+ ═══════════════════════════════════════════════ */
208
+ @utility text-micro {
209
+ font-size: var(--type-micro);
210
+ line-height: 1.25;
211
+ }
212
+
213
+ @utility text-admin-label {
214
+ font-family: var(--font-mono);
215
+ font-size: var(--type-admin-label);
216
+ line-height: 1;
217
+ text-transform: uppercase;
218
+ letter-spacing: var(--type-tracking-caps);
219
+ font-weight: 500;
220
+ }
@@ -0,0 +1,174 @@
1
+ /* typography/utilities.css — the MATH / MONO / FONT-FAMILY / ORNAMENTAL / AUX
2
+ * registers.
3
+ *
4
+ * Carved from typography.css (BA.W-CARVE2) — the math/mono variants, the
5
+ * font-family utilities (.cm-serif/.fira-code), the ornamental .fourier-f, and
6
+ * the @layer components AUX section-label/pane-title/kinetic hooks. @import-ed
7
+ * LAST by the typography.css thin root (after the faces+scale and the semantic
8
+ * classes). The carve moves rules in the SAME cascade position →
9
+ * byte-isomorphic dist (the no-god-module import-order gate is the witness). */
10
+
11
+ /* ═══════════════════════════════════════════════
12
+ MATH — Plus Jakarta Sans italic
13
+ ═══════════════════════════════════════════════ */
14
+ @utility text-math {
15
+ font-family: var(--font-text);
16
+ font-style: italic;
17
+ }
18
+
19
+ @utility text-math-body {
20
+ font-family: var(--font-text);
21
+ font-size: var(--type-prose);
22
+ line-height: var(--type-leading-prose);
23
+ font-style: italic;
24
+ }
25
+
26
+ /* ═══════════════════════════════════════════════
27
+ MONO variants
28
+ ═══════════════════════════════════════════════ */
29
+ /* BB.W-EYEBROW-UNION — THE canonical mono-caption EYEBROW vocabulary, declared
30
+ ONCE. The pure color-agnostic register: mono · caption-size · uppercase ·
31
+ tracking-CAPS. The prior drift (tracking-WIDER 0.05em, weight-500, both off the
32
+ `.section-label` canon-by-usage) is RECONCILED onto the canon's secondary axes
33
+ (clean break, no alias): the tracking folds to `--type-tracking-caps` (0.1em),
34
+ the weight-500 drops (a per-use choice a site states inline via `font-medium`,
35
+ not a fork in the eyebrow register), and color stays UNBAKED so a consumer
36
+ pairs any ink (`text-foreground`/`text-muted-foreground`/an accent) — the 17
37
+ `text-mono-caption text-foreground` sites keep their ink. `.section-label`
38
+ (below) COMPOSES this vocabulary + bakes the muted ink (the colored canon);
39
+ the menu caption reads the `--menu-section-*` knobs that DEFAULT to these same
40
+ tokens (the sanctioned override layer). proof:eyebrow-union locks the
41
+ single-source-ness. */
42
+ @utility text-mono-caption {
43
+ font-family: var(--font-mono);
44
+ font-size: var(--type-caption);
45
+ letter-spacing: var(--type-tracking-caps);
46
+ text-transform: uppercase;
47
+ }
48
+
49
+ @utility text-mono-small {
50
+ font-family: var(--font-mono);
51
+ font-size: var(--type-small);
52
+ line-height: var(--type-leading-small);
53
+ }
54
+
55
+ @utility text-mono-prose {
56
+ font-family: var(--font-mono);
57
+ font-size: var(--type-prose);
58
+ line-height: var(--type-leading-prose);
59
+ letter-spacing: 0.02em;
60
+ }
61
+
62
+ @utility text-mono-micro {
63
+ font-family: var(--font-mono);
64
+ font-size: var(--type-micro);
65
+ line-height: 1.25;
66
+ letter-spacing: 0.025em;
67
+ }
68
+
69
+ /* ═══════════════════════════════════════════════
70
+ FONT FAMILY UTILITIES
71
+ ═══════════════════════════════════════════════ */
72
+ /* .cm-serif — the Computer-Modern math/serif voice. A DISTINCT face from the
73
+ brand text register: it resolves to the consumer-supplied serif (system
74
+ serif by default; a math consumer maps Computer Modern / KaTeX over it). It
75
+ is NOT the Plus Jakarta text register — the one serif survivor of the
76
+ register reconciliation. */
77
+ @utility cm-serif {
78
+ font-family: var(--font-serif-math, serif);
79
+ }
80
+
81
+ @utility fira-code {
82
+ font-family: var(--font-mono);
83
+ font-feature-settings: "liga", "calt";
84
+ }
85
+
86
+ /* ═══════════════════════════════════════════════
87
+ ORNAMENTAL — Fourier F
88
+ ═══════════════════════════════════════════════ */
89
+ @utility fourier-f {
90
+ font-family: var(--font-display);
91
+ font-style: italic;
92
+ font-size: 1.35em;
93
+ line-height: 1;
94
+ vertical-align: -0.05em;
95
+ font-weight: 700;
96
+ display: inline-block;
97
+ }
98
+
99
+ /* ═══════════════════════════════════════════════
100
+ AUX — section label, pane title, kinetic hooks
101
+ ═══════════════════════════════════════════════ */
102
+ @layer components {
103
+ /* Responsive pane title */
104
+ .text-pane-title {
105
+ font-family: var(--font-display);
106
+ font-size: clamp(2.4rem, 1.8rem + 2vw, 3.33rem);
107
+ line-height: var(--type-leading-display);
108
+ letter-spacing: var(--type-tracking-tight);
109
+ font-weight: 600;
110
+ font-optical-sizing: auto;
111
+ }
112
+
113
+ /* AV.W16 TW3 — the pane title scales off its PANE's box, not the viewport.
114
+ An unnamed @container query resolves to the nearest ancestor container,
115
+ so the title grows once its pane clears 40rem (≈ 640px) regardless of the
116
+ viewport. Contract: the consuming pane sets `container-type: inline-size`
117
+ (the dock/chassis pattern); without a container ancestor the compact base
118
+ holds. */
119
+ @container (min-width: 40rem) {
120
+ .text-pane-title {
121
+ font-size: var(--type-display-3);
122
+ }
123
+ }
124
+
125
+ /* Section label (mono, small caps) — the COLORED eyebrow canon. Composes the
126
+ ONE `text-mono-caption` vocabulary (mono · caption · uppercase ·
127
+ tracking-caps) + bakes the muted ink. BB.W-EYEBROW-UNION: this is the
128
+ canon-by-usage register (the StorySection eyebrow column + Section.vue's
129
+ `label` tone + the `.section-label--tinted` accent build on it); it now
130
+ COMPOSES the vocabulary rather than re-declaring it, so a tracking/size
131
+ change to the eyebrow is ONE edit (the `text-mono-caption` rule). */
132
+ .section-label {
133
+ @apply text-mono-caption;
134
+ color: var(--muted-foreground);
135
+ }
136
+
137
+ /* Section-accent eyebrow (AZ.W-SUFFUSE D3-7 / D1-8). ONE coherent
138
+ section-accent register — the colored mono eyebrow reads as an
139
+ intentional system, not a four-hue rainbow. The accent reads a single
140
+ `--section-label-accent` knob (default `--section-color-7`, the violet
141
+ brand anchor) so a page tints its whole eyebrow column at ONE chroma
142
+ from one override, NOT a different hue per section. This is the
143
+ one-color-event rule at PAGE scope: the eyebrow is the page's ONE
144
+ accent identity. The label/value/body ink below stays neutral. */
145
+ .section-label--tinted {
146
+ color: var(--section-label-accent, var(--section-color-7));
147
+ }
148
+
149
+ /* Font-feature helpers */
150
+ .tabular-nums {
151
+ font-variant-numeric: tabular-nums;
152
+ }
153
+
154
+ /* Kinetic: per-character stagger */
155
+ .char-stagger > .char {
156
+ display: inline-block;
157
+ animation: fade-in var(--spring-smooth-duration) var(--spring-smooth, ease) backwards;
158
+ animation-delay: calc(var(--char-index, 0) * 30ms);
159
+ }
160
+
161
+ /* Letter-pressed treatment — reads as text engraved into the panel
162
+ surface. Speedtest's idle hero `0` consumes this via
163
+ `.text-hero[data-idle="true"]`; the `text-engraved` utility is the
164
+ glass-ui contract that any consumer can apply for the same look.
165
+ Opacity dropped in P.W1.B — the audacious canon mutes by colour
166
+ (`--muted-foreground`), not by alpha; opacity ≤ 0.4 over a glass
167
+ surface read as a fade, not as engraving. */
168
+ .text-engraved {
169
+ color: var(--muted-foreground);
170
+ /* AW.W26 — composes the `--text-shadow-engraved` @theme identity token
171
+ (the two-stop emboss) instead of a hand-rolled literal (gate 4). */
172
+ text-shadow: var(--text-shadow-engraved);
173
+ }
174
+ }