@mkbabb/glass-ui 3.12.0 → 4.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 (436) hide show
  1. package/dist/CardAction-XH4YBVEK.js +158 -0
  2. package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-DdtWXxOK.js} +58 -53
  3. package/dist/{ContextMenuSubContent-Bhg4f5jX.js → ContextMenuSubContent-B0Vs6atR.js} +4 -4
  4. package/dist/{DataTable-CUHMukiQ.js → DataTable-C464Zbqd.js} +99 -97
  5. package/dist/DialogContent-DDE6pQBU.js +103 -0
  6. package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-8eZbdmPc.js} +2 -2
  7. package/dist/FadingScroll-DwNnvKMs.js +76 -0
  8. package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-Dpzwvc4t.js} +1 -1
  9. package/dist/IconChip-BDw1j5mu.js +54 -0
  10. package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-DSjasZIt.js} +1 -1
  11. package/dist/MetricBadge-BpC0R_Ec.js +79 -0
  12. package/dist/{Notification-DLMhblXR.js → Notification-DKjKsQq8.js} +10 -10
  13. package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-1VtwDSgf.js} +3 -3
  14. package/dist/PopoverContent-BTorlp--.js +127 -0
  15. package/dist/{Progress-iEuD9pxG.js → Progress-hAT4gqGH.js} +97 -77
  16. package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-CUVFTWk2.js} +2 -2
  17. package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-C1jb3b3K.js} +24 -8
  18. package/dist/{Switch-Ch-k3Rv-.js → Switch-Dr--uLGH.js} +2 -2
  19. package/dist/{Toaster-1rYWrmAm.js → Toaster-Bm_HQSpc.js} +55 -52
  20. package/dist/{ToggleGroupItem-COu_4IW4.js → ToggleGroupItem-Dzk9hWsF.js} +18 -22
  21. package/dist/animated-digit.js +3 -3
  22. package/dist/api/index.d.ts +10 -4
  23. package/dist/api.js +1 -1
  24. package/dist/aurora.js +113 -98
  25. package/dist/{badge-CaoFJzRb.js → badge-UILT_3pZ.js} +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{button-DN39cGqL.js → button-BNDWhAZb.js} +12 -12
  28. package/dist/button.js +1 -1
  29. package/dist/card.js +1 -1
  30. package/dist/carousel.d.ts +1 -1
  31. package/dist/carousel.js +101 -145
  32. package/dist/{check-BBKKKSTf.js → check-njhk-vfu.js} +1 -1
  33. package/dist/{chevron-down-BSkTP2aL.js → chevron-down-DKkxb4VV.js} +1 -1
  34. package/dist/{chevron-right-sDM0Yvrf.js → chevron-right-CPXbqQQz.js} +1 -1
  35. package/dist/{chevron-up-CCOD_FTz.js → chevron-up-n_24SqI-.js} +1 -1
  36. package/dist/coalesceMetric-5qIeZnTx.js +13 -0
  37. package/dist/collapsible.js +1 -1
  38. package/dist/{color-C5ls_QF7.js → color-DweYl7pE.js} +9 -7
  39. package/dist/color-swatch.d.ts +1 -0
  40. package/dist/color-swatch.js +47 -0
  41. package/dist/color.js +1 -1
  42. package/dist/command.js +1 -1
  43. package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +8 -0
  44. package/dist/components/custom/aurora/constants/presets.d.ts +16 -45
  45. package/dist/components/custom/aurora/constants/renderMode.d.ts +2 -0
  46. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
  47. package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
  48. package/dist/components/custom/color-swatch/ColorSwatch.vue.d.ts +22 -0
  49. package/dist/components/custom/color-swatch/index.d.ts +1 -0
  50. package/dist/components/custom/configurator/Configurator.vue.d.ts +19 -8
  51. package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +16 -0
  52. package/dist/components/custom/constellation/Constellation.vue.d.ts +23 -143
  53. package/dist/components/custom/constellation/composables/createConstellationField.d.ts +41 -0
  54. package/dist/components/custom/constellation/composables/useConstellation.d.ts +26 -0
  55. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
  56. package/dist/components/custom/constellation/constants.d.ts +61 -0
  57. package/dist/components/custom/constellation/constellationDraw.d.ts +30 -0
  58. package/dist/components/custom/constellation/constellationField.d.ts +3 -403
  59. package/dist/components/custom/constellation/constellationInteraction.d.ts +132 -0
  60. package/dist/components/custom/constellation/constellationTypes.d.ts +369 -0
  61. package/dist/components/custom/constellation/index.d.ts +5 -2
  62. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
  63. package/dist/components/custom/dock/DockRail.vue.d.ts +89 -0
  64. package/dist/components/custom/dock/DockSection.vue.d.ts +69 -0
  65. package/dist/components/custom/dock/DockSeparator.vue.d.ts +49 -1
  66. package/dist/components/custom/dock/DockTabButton.vue.d.ts +5 -6
  67. package/dist/components/custom/dock/GlassDock.vue.d.ts +5 -118
  68. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
  69. package/dist/components/custom/dock/composables/index.d.ts +1 -0
  70. package/dist/components/custom/dock/composables/useDockClickIntegrity.d.ts +23 -0
  71. package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
  72. package/dist/components/custom/dock/composables/useDockOrientationMorph.d.ts +44 -0
  73. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +165 -0
  74. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
  75. package/dist/components/custom/dock/constants.d.ts +83 -0
  76. package/dist/components/custom/dock/index.d.ts +5 -0
  77. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +15 -37
  78. package/dist/components/custom/fading-scroll/FadingScroll.vue.d.ts +25 -0
  79. package/dist/components/custom/fading-scroll/composables/useFadingScroll.d.ts +31 -0
  80. package/dist/components/custom/fading-scroll/constants.d.ts +19 -0
  81. package/dist/components/custom/fading-scroll/index.d.ts +2 -0
  82. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +7 -0
  83. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  84. package/dist/components/custom/fourier-field/math.d.ts +34 -0
  85. package/dist/components/custom/fourier-field/presets.d.ts +54 -0
  86. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +8 -0
  87. package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
  88. package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
  89. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
  90. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +21 -8
  91. package/dist/components/custom/goo-blob/constants.d.ts +57 -0
  92. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
  93. package/dist/components/custom/handmark/brush.d.ts +33 -6
  94. package/dist/components/custom/handmark/{useHandMark.d.ts → composables/useHandMark.d.ts} +6 -4
  95. package/dist/components/custom/handmark/constants.d.ts +39 -0
  96. package/dist/components/custom/handmark/geometry.d.ts +14 -12
  97. package/dist/components/custom/handmark/index.d.ts +8 -2
  98. package/dist/components/custom/handmark/types.d.ts +9 -0
  99. package/dist/components/custom/icon-chip/IconChip.vue.d.ts +4 -0
  100. package/dist/components/custom/icon-chip/index.d.ts +2 -0
  101. package/dist/components/custom/icon-chip/types.d.ts +72 -0
  102. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +17 -4
  103. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +37 -0
  104. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +6 -0
  105. package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +6 -0
  106. package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +6 -0
  107. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +11 -18
  108. package/dist/components/custom/metric-badge/index.d.ts +1 -0
  109. package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +15 -4
  110. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +6 -4
  111. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +39 -0
  112. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  113. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +20 -25
  114. package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +30 -21
  115. package/dist/components/custom/tabs/constants.d.ts +18 -0
  116. package/dist/components/custom/tabs/index.d.ts +1 -1
  117. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +14 -0
  118. package/dist/components/ui/_shared/index.d.ts +2 -0
  119. package/dist/components/ui/_shared/menuItemVariants.d.ts +19 -0
  120. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +41 -0
  121. package/dist/components/ui/card/Card.vue.d.ts +16 -4
  122. package/dist/components/ui/carousel/index.d.ts +0 -1
  123. package/dist/components/ui/command/Command.vue.d.ts +3 -0
  124. package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -3
  125. package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
  126. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +5 -0
  127. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
  128. package/dist/components/ui/index.d.ts +0 -1
  129. package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +6 -3
  130. package/dist/components/ui/popover/PopoverContent.vue.d.ts +3 -0
  131. package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +14 -3
  132. package/dist/components/ui/select/SelectTrigger.vue.d.ts +27 -4
  133. package/dist/components/ui/sheet/SheetContent.vue.d.ts +6 -0
  134. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +3 -0
  135. package/dist/components/ui/slider/index.d.ts +22 -19
  136. package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +4 -1
  137. package/dist/components/ui/toast/use-toast.d.ts +2 -2
  138. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  139. package/dist/components/ui/toggle/index.d.ts +1 -1
  140. package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +1 -7
  141. package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +1 -3
  142. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +0 -13
  143. package/dist/composables/color/index.d.ts +12 -0
  144. package/dist/composables/dark/useGlobalDark.d.ts +14 -12
  145. package/dist/composables/glass/index.d.ts +0 -1
  146. package/dist/composables/glass/useGlassBackdropLuminance.d.ts +59 -0
  147. package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
  148. package/dist/composables/motion/core/index.d.ts +1 -1
  149. package/dist/composables/motion/curves.d.ts +48 -0
  150. package/dist/composables/motion/index.d.ts +2 -0
  151. package/dist/composables/motion/springPresets.d.ts +33 -0
  152. package/dist/composables/motion/suite.d.ts +2 -0
  153. package/dist/composables/motion/useLiquidFlex.d.ts +85 -0
  154. package/dist/composables/motion/useSpringMount.d.ts +1 -1
  155. package/dist/composables/motion/useViewTransition.d.ts +36 -1
  156. package/dist/configurator.js +1 -1
  157. package/dist/confirm-dialog.js +3 -3
  158. package/dist/constellation.js +373 -261
  159. package/dist/context-menu.js +2 -2
  160. package/dist/controls.js +48 -14
  161. package/dist/dark.js +1 -1
  162. package/dist/data-table.js +1 -1
  163. package/dist/dialog.js +2 -2
  164. package/dist/dock.js +901 -372
  165. package/dist/dockContext-Bu1Avy-a.js +17 -0
  166. package/dist/dom.js +5 -5
  167. package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-BJ7E9js_.js} +11 -8
  168. package/dist/dropdown-menu.js +1 -1
  169. package/dist/expandable-container.js +44 -81
  170. package/dist/fading-scroll.d.ts +1 -0
  171. package/dist/fading-scroll.js +2 -0
  172. package/dist/forms.js +5 -5
  173. package/dist/fourier-field.js +140 -104
  174. package/dist/fourier-math.js +2 -2
  175. package/dist/glass-panel.js +90 -21
  176. package/dist/glass-ui.css +1 -1
  177. package/dist/glass-ui.js +230 -236
  178. package/dist/goo-blob.js +264 -228
  179. package/dist/handmark.js +203 -159
  180. package/dist/header-ribbon.js +1 -1
  181. package/dist/hover-card.js +1 -1
  182. package/dist/hover-popover.js +1 -1
  183. package/dist/icon-chip.d.ts +1 -0
  184. package/dist/icon-chip.js +2 -0
  185. package/dist/icon-tooltip.js +1 -1
  186. package/dist/index.d.ts +3 -5
  187. package/dist/instrument-chassis.js +1 -1
  188. package/dist/keyboard.js +1 -1
  189. package/dist/label.js +1 -1
  190. package/dist/labeled-field.js +28 -18
  191. package/dist/{math-DTpRVC0e.js → math-DeuJwLFx.js} +26 -2
  192. package/dist/{menuItemVariants-CCoBNkU5.js → menuItemVariants-DWRQXBxJ.js} +10 -4
  193. package/dist/metric-badge.js +1 -1
  194. package/dist/metric-cell.js +29 -22
  195. package/dist/metric-stack.js +35 -34
  196. package/dist/{minimize-2-lcXOuc6V.js → minimize-2-BV31Ob_h.js} +1 -1
  197. package/dist/motion-core.js +32 -136
  198. package/dist/motion-curves.d.ts +1 -0
  199. package/dist/motion-curves.js +130 -0
  200. package/dist/motion.js +38 -37
  201. package/dist/notification.js +1 -1
  202. package/dist/number-field.js +1 -1
  203. package/dist/pager-dots.d.ts +1 -0
  204. package/dist/pager-dots.js +91 -0
  205. package/dist/paper-backdrop.js +1 -1
  206. package/dist/popover.js +1 -1
  207. package/dist/progress.js +1 -1
  208. package/dist/pulse.js +1 -1
  209. package/dist/reactive.js +2 -2
  210. package/dist/scrolling-text.js +1 -1
  211. package/dist/{search-nbkvr2dC.js → search-BSGrf2Sk.js} +1 -1
  212. package/dist/search.js +10 -10
  213. package/dist/select.js +3 -3
  214. package/dist/separator.js +1 -1
  215. package/dist/sheet-CquRYOAw.js +218 -0
  216. package/dist/sheet.js +1 -1
  217. package/dist/{slider-ClgpP7EB.js → slider-DQ95MET2.js} +8 -8
  218. package/dist/slider.js +1 -1
  219. package/dist/sortable-list.js +3 -3
  220. package/dist/springPresets-WXaLbu8u.js +40 -0
  221. package/dist/stacked-icons.js +6 -6
  222. package/dist/styles/animations.css +25 -125
  223. package/dist/styles/cards.css +55 -0
  224. package/dist/styles/components.css +4 -1
  225. package/dist/styles/configurator.css +77 -0
  226. package/dist/styles/dock/density.css +19 -0
  227. package/dist/styles/dock/layer-group.css +83 -25
  228. package/dist/styles/dock/layers.css +23 -1
  229. package/dist/styles/dock/morph-bridge.css +123 -0
  230. package/dist/styles/dock/morph.css +175 -45
  231. package/dist/styles/dock/overflow.css +66 -1
  232. package/dist/styles/dock/rail-extend.css +397 -0
  233. package/dist/styles/dock/section.css +59 -0
  234. package/dist/styles/dock/shell.css +97 -110
  235. package/dist/styles/dock-controls/dark-mode-toggle.css +109 -0
  236. package/dist/styles/dock-controls/icon-button.css +143 -0
  237. package/dist/styles/dock-controls/tab-button.css +143 -0
  238. package/dist/styles/dock-controls/touch-floor.css +94 -0
  239. package/dist/styles/dock-controls/triggers.css +135 -0
  240. package/dist/styles/dock-controls.css +30 -595
  241. package/dist/styles/dock.css +8 -3
  242. package/dist/styles/drawer.css +48 -0
  243. package/dist/styles/feedback-tone.css +104 -0
  244. package/dist/styles/floating-panel.css +17 -0
  245. package/dist/styles/glass/a11y-fallback.css +245 -0
  246. package/dist/styles/glass/ladder.css +383 -0
  247. package/dist/styles/glass/material.css +238 -0
  248. package/dist/styles/glass/progress-rail.css +78 -0
  249. package/dist/styles/glass/squircle.css +66 -0
  250. package/dist/styles/glass/surface-axis.css +113 -0
  251. package/dist/styles/glass/surfaces.css +382 -0
  252. package/dist/styles/glass-refract.css +2 -0
  253. package/dist/styles/glass.css +34 -1188
  254. package/dist/styles/hover-popover.css +2 -0
  255. package/dist/styles/icon-chip.css +149 -0
  256. package/dist/styles/index.css +94 -18
  257. package/dist/styles/instrument-chassis.css +46 -0
  258. package/dist/styles/menu.css +127 -0
  259. package/dist/styles/paper.css +2 -68
  260. package/dist/styles/segmented-tabs.css +346 -0
  261. package/dist/styles/select.css +50 -0
  262. package/dist/styles/theme/bridges.css +347 -0
  263. package/dist/styles/theme/dark.css +7 -0
  264. package/dist/styles/theme/literals.css +94 -0
  265. package/dist/styles/theme/radius.css +95 -0
  266. package/dist/styles/theme.css +26 -529
  267. package/dist/styles/tokens/color-radius.css +287 -0
  268. package/dist/styles/tokens/dark-arm.css +308 -0
  269. package/dist/styles/tokens/glass.css +500 -0
  270. package/dist/styles/tokens/light-dark.css +187 -0
  271. package/dist/styles/tokens/offsets-sizing.css +562 -0
  272. package/dist/styles/tokens/property-regs.css +162 -0
  273. package/dist/styles/tokens/scale-paper.css +409 -0
  274. package/dist/styles/tokens/scheme-motion.css +352 -0
  275. package/dist/styles/tokens/shadow.css +166 -0
  276. package/dist/styles/tokens.css +22 -2360
  277. package/dist/styles/transitions.css +7 -7
  278. package/dist/styles/typography/scale.css +153 -0
  279. package/dist/styles/typography/semantic.css +220 -0
  280. package/dist/styles/typography/utilities.css +159 -0
  281. package/dist/styles/typography.css +23 -453
  282. package/dist/styles/utilities/a11y-overrides.css +169 -0
  283. package/dist/styles/utilities/animate.css +26 -0
  284. package/dist/styles/utilities/base.css +541 -0
  285. package/dist/styles/utilities/btn.css +218 -0
  286. package/dist/styles/utilities/components.css +317 -0
  287. package/dist/styles/utilities.css +19 -1318
  288. package/dist/styles/view-transition.css +4 -52
  289. package/dist/switch.js +1 -1
  290. package/dist/tabs.js +161 -181
  291. package/dist/timeline.js +2 -2
  292. package/dist/toast.js +1 -1
  293. package/dist/toggle-chip.js +3 -1
  294. package/dist/toggle-group.js +1 -1
  295. package/dist/tooltip.js +1 -1
  296. package/dist/typewriter.js +1 -1
  297. package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-C_3wZLx4.js} +1 -1
  298. package/dist/useConfiguratorState-kiIlun8I.js +303 -0
  299. package/dist/useLiquidFlex-C12hXwOZ.js +30 -0
  300. package/dist/useRAFLoop-CdwJ7284.js +109 -0
  301. package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-D7bYU2RK.js} +1 -1
  302. package/dist/useSpecularTracking-Bo5su68i.js +32 -0
  303. package/dist/useSpringMount-CvopqiFr.js +108 -0
  304. package/dist/useSurfaceAxis-CMnF2zHb.js +7 -0
  305. package/dist/{useTouchGate-WFyJYsth.js → useTouchGate-28Tk2-t2.js} +1 -1
  306. package/dist/useViewTransition-COsPjQVZ.js +47 -0
  307. package/dist/utils/coalesceMetric.d.ts +29 -0
  308. package/dist/utils/index.d.ts +1 -0
  309. package/dist/vReveal-D9k0jADx.js +10 -0
  310. package/dist/watercolor-dot.js +22 -13
  311. package/dist/{x-Dfsegz9Y.js → x-BUwTKe50.js} +1 -1
  312. package/package.json +134 -50
  313. package/src/styles/animations.css +25 -125
  314. package/src/styles/cards.css +53 -0
  315. package/src/styles/configurator.css +77 -0
  316. package/src/styles/dock/density.css +19 -0
  317. package/src/styles/dock/layer-group.css +83 -25
  318. package/src/styles/dock/layers.css +23 -1
  319. package/src/styles/dock/morph-bridge.css +123 -0
  320. package/src/styles/dock/morph.css +175 -45
  321. package/src/styles/dock/overflow.css +66 -1
  322. package/src/styles/dock/rail-extend.css +397 -0
  323. package/src/styles/dock/section.css +59 -0
  324. package/src/styles/dock/shell.css +97 -110
  325. package/src/styles/dock-controls/dark-mode-toggle.css +109 -0
  326. package/src/styles/dock-controls/icon-button.css +143 -0
  327. package/src/styles/dock-controls/tab-button.css +143 -0
  328. package/src/styles/dock-controls/touch-floor.css +94 -0
  329. package/src/styles/dock-controls/triggers.css +135 -0
  330. package/src/styles/dock-controls.css +30 -595
  331. package/src/styles/dock.css +8 -3
  332. package/src/styles/drawer.css +42 -0
  333. package/src/styles/feedback-tone.css +104 -0
  334. package/src/styles/floating-panel.css +15 -0
  335. package/src/styles/glass/a11y-fallback.css +245 -0
  336. package/src/styles/glass/ladder.css +383 -0
  337. package/src/styles/glass/material.css +238 -0
  338. package/src/styles/glass/progress-rail.css +78 -0
  339. package/src/styles/glass/squircle.css +66 -0
  340. package/src/styles/glass/surface-axis.css +113 -0
  341. package/src/styles/glass/surfaces.css +382 -0
  342. package/src/styles/glass.css +34 -1188
  343. package/src/styles/icon-chip.css +149 -0
  344. package/src/styles/index.css +93 -17
  345. package/src/styles/instrument-chassis.css +42 -0
  346. package/src/styles/menu.css +127 -0
  347. package/src/styles/paper.css +2 -68
  348. package/src/styles/segmented-tabs.css +340 -0
  349. package/src/styles/select.css +50 -0
  350. package/src/styles/theme/bridges.css +347 -0
  351. package/src/styles/theme/dark.css +7 -0
  352. package/src/styles/theme/literals.css +94 -0
  353. package/src/styles/theme/radius.css +95 -0
  354. package/src/styles/theme.css +26 -529
  355. package/src/styles/tokens/color-radius.css +287 -0
  356. package/src/styles/tokens/dark-arm.css +308 -0
  357. package/src/styles/tokens/glass.css +500 -0
  358. package/src/styles/tokens/light-dark.css +187 -0
  359. package/src/styles/tokens/offsets-sizing.css +562 -0
  360. package/src/styles/tokens/property-regs.css +162 -0
  361. package/src/styles/tokens/scale-paper.css +409 -0
  362. package/src/styles/tokens/scheme-motion.css +352 -0
  363. package/src/styles/tokens/shadow.css +166 -0
  364. package/src/styles/tokens.css +22 -2360
  365. package/src/styles/transitions.css +7 -7
  366. package/src/styles/typography/scale.css +153 -0
  367. package/src/styles/typography/semantic.css +220 -0
  368. package/src/styles/typography/utilities.css +159 -0
  369. package/src/styles/typography.css +23 -453
  370. package/src/styles/utilities/a11y-overrides.css +169 -0
  371. package/src/styles/utilities/animate.css +26 -0
  372. package/src/styles/utilities/base.css +541 -0
  373. package/src/styles/utilities/btn.css +218 -0
  374. package/src/styles/utilities/components.css +317 -0
  375. package/src/styles/utilities.css +19 -1318
  376. package/src/styles/view-transition.css +4 -52
  377. package/dist/CardAction-DuArVky-.js +0 -157
  378. package/dist/DeckProgress-Dmk4_AKN.js +0 -23
  379. package/dist/DialogContent-BRkT1cjP.js +0 -100
  380. package/dist/InstrumentRail-CUJ05YVG.js +0 -44
  381. package/dist/MetricBadge-BZVWIxNy.js +0 -80
  382. package/dist/PopoverContent-BId6ggf_.js +0 -121
  383. package/dist/TabsList-B8CVOQPC.js +0 -101
  384. package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
  385. package/dist/components/custom/deck-progress/index.d.ts +0 -2
  386. package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
  387. package/dist/components/custom/dialog-native/index.d.ts +0 -1
  388. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
  389. package/dist/components/custom/instrument-rail/index.d.ts +0 -2
  390. package/dist/components/ui/carousel/CarouselDots.vue.d.ts +0 -4
  391. package/dist/composables/motion/useRouteTransition.d.ts +0 -42
  392. package/dist/deck-progress.d.ts +0 -1
  393. package/dist/deck-progress.js +0 -2
  394. package/dist/dockContext-BKeIMmNk.js +0 -9
  395. package/dist/instrument-rail.d.ts +0 -1
  396. package/dist/instrument-rail.js +0 -2
  397. package/dist/sheet-VZEtNFvO.js +0 -214
  398. package/dist/styles/instrument-rail.css +0 -127
  399. package/dist/useConfiguratorState-DxAqksK6.js +0 -287
  400. package/dist/useGlassRenderer-D7YGOYiM.js +0 -69
  401. package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
  402. package/dist/useSpringMount-BJSHcLl3.js +0 -113
  403. package/dist/useViewTransition-DaN5Zrox.js +0 -21
  404. package/dist/vReveal-zUIQk-rJ.js +0 -53
  405. package/src/styles/instrument-rail.css +0 -127
  406. /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-C_s6fG7r.js} +0 -0
  407. /package/dist/{ContextMenuContent-DDa0v27s.js → ContextMenuContent-ON3x7cuk.js} +0 -0
  408. /package/dist/{HoverCardContent-B6CcQ8He.js → HoverCardContent-DkMaQzH5.js} +0 -0
  409. /package/dist/{Input-xuDwALQR.js → Input-DVG_J0ne.js} +0 -0
  410. /package/dist/{InstrumentChassis-C2f6cBaQ.js → InstrumentChassis-UUJX0-mW.js} +0 -0
  411. /package/dist/{Label-zRfbQdCn.js → Label-Ck9SWEKM.js} +0 -0
  412. /package/dist/{ModalOverlay-B1GkAjNb.js → ModalOverlay-CkPRRgl_.js} +0 -0
  413. /package/dist/{PaperBackdrop-CqwjnfLv.js → PaperBackdrop-nBKe0vkB.js} +0 -0
  414. /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-Dcczq44n.js} +0 -0
  415. /package/dist/{SelectSeparator-C4Ql0gzV.js → SelectSeparator-DK2y1Bun.js} +0 -0
  416. /package/dist/{Separator-D7sD7RKj.js → Separator-BArl4OaB.js} +0 -0
  417. /package/dist/{TooltipProvider-CmZzCuaG.js → TooltipProvider-B3MkB_8P.js} +0 -0
  418. /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-CBt_VvXa.js} +0 -0
  419. /package/dist/{compile-BOXjLUxu.js → compile-EXXzEr1q.js} +0 -0
  420. /package/dist/{constants-yKeKnE84.js → constants-BPOqYJAm.js} +0 -0
  421. /package/dist/{createContext-B44Sah_H.js → createContext-B2RaZ-b8.js} +0 -0
  422. /package/dist/{createLucideIcon-B6uNAU9G.js → createLucideIcon-DydS2qgk.js} +0 -0
  423. /package/dist/{presets-BP_ALM0m.js → presets-BW2b-fr1.js} +0 -0
  424. /package/dist/{prng-D27-B3tK.js → prng-Cg22zv8g.js} +0 -0
  425. /package/dist/{supportsCssTimeline-C5oe0lnD.js → supportsCssTimeline-BWenxvHU.js} +0 -0
  426. /package/dist/{useGlobalDark-CAhOXNLO.js → useGlobalDark-C28t0VWJ.js} +0 -0
  427. /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
  428. /package/dist/{useInterval-Dsmqwi03.js → useInterval-CNdua40W.js} +0 -0
  429. /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
  430. /package/dist/{useResizeObserver-CWCbk5Px.js → useResizeObserver-V6nq5gJb.js} +0 -0
  431. /package/dist/{useResolveTokenColor-r9pnNjqK.js → useResolveTokenColor-NUG2zYAW.js} +0 -0
  432. /package/dist/{useSortable-C8ReQ50P.js → useSortable-BVqlJRBR.js} +0 -0
  433. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-NmBM5V_4.js} +0 -0
  434. /package/dist/{useTimer-3xqf_54b.js → useTimer-B_PAasDL.js} +0 -0
  435. /package/dist/{useUserInvalidAria-DoJKMZ3s.js → useUserInvalidAria-CDfJuakL.js} +0 -0
  436. /package/dist/{useViewportReady-RIr5Wgkh.js → useViewportReady-CvBcCYDf.js} +0 -0
@@ -0,0 +1,340 @@
1
+ /* ════════════════════════════════════════════════════════════════════════
2
+ The standardized SegmentedTabs grammar (BA.W-TABS). ONE indicator engine,
3
+ TWO materials, ONE orientation axis.
4
+
5
+ · PILL (DEFAULT) — THE GLASS MATERIAL. The track rides `--glass-bg-quiet`
6
+ + a hairline edge; the active indicator is the selected-reads-as-
7
+ glass plate (`--glass-bg-floating`, the W-REGISTER-IOS tier — a
8
+ glass tint FORWARD of the track, NEVER a saturated hue, never an
9
+ opaque `bg-card`). It GLIDES + SQUISHES. Absorbs the retired
10
+ `segmented` value (one register — the user kept it by name).
11
+ · UNDERLINE — THE PAPER MATERIAL. NO plate, NO blur, NO track surface — the
12
+ 2px `--foreground` ink hairline riding the shared `.paper-ink-mark`
13
+ register (W-SURFACE-AXIS mints it; CONSUMED here, never re-minted).
14
+ The engine drives the hairline's inline position/width only. It
15
+ SLIDES (no squish — a hairline does not deform).
16
+
17
+ ORIENTATION is axis-derived (horizontal default · vertical). The vertical
18
+ indicator tracks the BLOCK axis (the R10-2 horizontal-only-utilities slab class
19
+ is structurally impossible — the engine keys off a computed `dim`). Vertical
20
+ underline = the leading-edge ink rail (the math-paper `border-l` read).
21
+
22
+ Carved out of the SFC `<style scoped>` into a styles/ partial (the drawer.css
23
+ precedent), `@import`-ed into styles/index.css in cascade order. Every selector
24
+ is class/attribute-based (no Vue `data-v-*` scope hash), so the rules paint
25
+ un-scoped — the `.segmented-tabs`-family classes the template emits carry them.
26
+
27
+ `--bouncy-track-trim` is the token the track padding, the indicator
28
+ `inset-block`, AND the `anchor()` offset all read so they cannot drift (the W20
29
+ magic-number lock). `--stretch` is the JS-written travel-squish scalar (1 at
30
+ rest); the indicator pairs it reciprocally (stretch X, compress Y →
31
+ volume-preserving). The glide + squish read ONE clock — `--tab-indicator-duration`
32
+ (= `--spring-snappy-duration`, the W-GLASS-CAL calibrated snappy settle, ~0.34s)
33
+ — so the channels cannot desync and the generic-300ms sub-pixel tail is gone.
34
+ ════════════════════════════════════════════════════════════════════════ */
35
+
36
+ /* ── The PILL track (the glass material — DEFAULT) ── */
37
+ .segmented-tabs {
38
+ --bouncy-track-trim: 0.1875rem;
39
+ --bouncy-track-radius: 0.4375rem;
40
+ --bouncy-slider-radius: 0.3125rem;
41
+ /* The travel-squish axis — 1 at rest; useTabIndicator writes it transiently
42
+ on selection, the indicator pairs it volume-preserving. */
43
+ --stretch: 1;
44
+ position: relative;
45
+ display: inline-grid;
46
+ grid-auto-flow: column;
47
+ grid-auto-columns: 1fr;
48
+ padding: var(--bouncy-track-trim);
49
+ border-radius: var(--bouncy-track-radius);
50
+ /* BA.W-TABS — the pill track rides the glass quiet tier (the warm glass
51
+ material, the no-gray register) + a hairline edge. NOT a `--surface-tint`
52
+ gray plate (the R10-5 no-gray cut). */
53
+ background: var(--glass-bg-quiet);
54
+ backdrop-filter: var(--glass-blur-quiet);
55
+ -webkit-backdrop-filter: var(--glass-blur-quiet);
56
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--border) 24%, transparent);
57
+ }
58
+
59
+ /* ── The vertical orientation axis (the block stack) ── */
60
+ .segmented-tabs--vertical {
61
+ display: inline-flex;
62
+ flex-direction: column;
63
+ grid-auto-flow: unset;
64
+ grid-auto-columns: unset;
65
+ align-items: stretch;
66
+ }
67
+
68
+ @media (min-width: 640px) {
69
+ .segmented-tabs {
70
+ --bouncy-track-trim: 0.25rem;
71
+ --bouncy-track-radius: 0.5rem;
72
+ --bouncy-slider-radius: 0.375rem;
73
+ }
74
+ }
75
+
76
+ /* ── The shared indicator body (the PILL plate) ── */
77
+ .segmented-indicator {
78
+ position: absolute;
79
+ /* BA.W-TABS — the active pill indicator rides the glass FLOATING tier (the
80
+ W-REGISTER-IOS "selected reads as glass" register), reading FORWARD of the
81
+ quiet-tier track. A glass tint, NEVER a saturated `--foreground` fill or an
82
+ opaque `bg-card`. */
83
+ background: var(--glass-bg-floating);
84
+ backdrop-filter: var(--glass-blur-floating);
85
+ -webkit-backdrop-filter: var(--glass-blur-floating);
86
+ z-index: 0;
87
+ inset-block: var(--bouncy-track-trim);
88
+ border-radius: var(--bouncy-slider-radius);
89
+ box-shadow:
90
+ 0 1px 3px rgba(0, 0, 0, 0.08),
91
+ 0 0 0 1px color-mix(in srgb, var(--border) 30%, transparent);
92
+ /* The volume-preserving travel-squish: stretch along X, compress Y in
93
+ inverse proportion. `transform-origin: center` → a symmetric width-flex
94
+ as it travels (the indicator grows wider mid-travel, settles to fit). */
95
+ transform-origin: center;
96
+ scale: var(--stretch) calc(1 / var(--stretch));
97
+ }
98
+
99
+ /* Vertical: the indicator deforms on the BLOCK axis (compress X / stretch Y) and
100
+ pads on the inline axis instead. */
101
+ .segmented-tabs--vertical .segmented-indicator {
102
+ inset-block: auto;
103
+ inset-inline: var(--bouncy-track-trim);
104
+ scale: calc(1 / var(--stretch)) var(--stretch);
105
+ }
106
+
107
+ @media (prefers-reduced-motion: no-preference) {
108
+ .segmented-indicator {
109
+ /* ONE composited transform pair (translate+scale) on ONE calibrated
110
+ clock — the glide + the squish share `--tab-indicator-duration` so they
111
+ cannot desync (the R10-2 multi-property-desync class collapsed). */
112
+ transition: scale var(--tab-indicator-duration) var(--spring-snappy);
113
+ }
114
+ }
115
+
116
+ /* Fallback (JS-measured) path — the indicator is moved by inline
117
+ `transform`/`width` writes; animate those alongside the squish scale on the ONE
118
+ calibrated clock. */
119
+ .segmented-indicator--js {
120
+ transition:
121
+ transform var(--tab-indicator-duration) var(--spring-snappy),
122
+ width var(--tab-indicator-duration) var(--spring-snappy),
123
+ height var(--tab-indicator-duration) var(--spring-snappy),
124
+ scale var(--tab-indicator-duration) var(--spring-snappy),
125
+ opacity var(--duration-fast) ease;
126
+ }
127
+
128
+ /* Anchor path — the indicator tethers to the active button's `anchor-name`.
129
+ `inset` reads the anchor's edges; the browser interpolates `inset` between
130
+ buttons on selection (the glide), and the JS `--stretch` write deforms it
131
+ (the squish) on the SAME calibrated clock. */
132
+ @supports (position-anchor: --x) {
133
+ .segmented-indicator--anchor {
134
+ position-anchor: --gl-tab-active;
135
+ /* The four edge longhands tether to the active button's anchor edges (the
136
+ inline-trimmed band over the full anchor block extent). NO `inset-block:
137
+ auto` shorthand here — it would reset the block longhands above it to auto
138
+ and collapse the indicator to height 0 (the live-found clobber). */
139
+ inset-block-start: calc(anchor(top) + 0.1875rem);
140
+ inset-block-end: calc(anchor(bottom) + 0.1875rem);
141
+ inset-inline-start: anchor(left);
142
+ inset-inline-end: anchor(right);
143
+ opacity: 1;
144
+ }
145
+ /* Vertical: the anchor band runs the FULL block extent of the active button
146
+ (the indicator tracks the column, not the row) with the inline axis trimmed. */
147
+ .segmented-tabs--vertical .segmented-indicator--anchor {
148
+ inset-block-start: anchor(top);
149
+ inset-block-end: anchor(bottom);
150
+ inset-inline-start: calc(anchor(left) + 0.1875rem);
151
+ inset-inline-end: calc(anchor(right) + 0.1875rem);
152
+ }
153
+ @media (prefers-reduced-motion: no-preference) {
154
+ .segmented-indicator--anchor {
155
+ transition:
156
+ inset var(--tab-indicator-duration) var(--spring-snappy),
157
+ scale var(--tab-indicator-duration) var(--spring-snappy);
158
+ }
159
+ }
160
+ .segmented-tabs:not(.segmented-tabs--underline) .segmented-tab[aria-pressed="true"],
161
+ .segmented-tabs:not(.segmented-tabs--underline) .segmented-tab[aria-selected="true"] {
162
+ anchor-name: --gl-tab-active;
163
+ }
164
+ }
165
+
166
+ @media (min-width: 640px) {
167
+ .segmented-indicator {
168
+ inset-block: 0.25rem;
169
+ border-radius: 0.375rem;
170
+ }
171
+ .segmented-tabs--vertical .segmented-indicator {
172
+ inset-block: auto;
173
+ inset-inline: 0.25rem;
174
+ }
175
+ @supports (position-anchor: --x) {
176
+ .segmented-indicator--anchor {
177
+ inset-block-start: calc(anchor(top) + 0.25rem);
178
+ inset-block-end: calc(anchor(bottom) + 0.25rem);
179
+ }
180
+ .segmented-tabs--vertical .segmented-indicator--anchor {
181
+ inset-block-start: anchor(top);
182
+ inset-block-end: anchor(bottom);
183
+ inset-inline-start: calc(anchor(left) + 0.25rem);
184
+ inset-inline-end: calc(anchor(right) + 0.25rem);
185
+ }
186
+ }
187
+ }
188
+
189
+ /* ── The tab buttons ── */
190
+ .segmented-tab {
191
+ position: relative;
192
+ z-index: 10;
193
+ border: none;
194
+ background: none;
195
+ font-weight: 500;
196
+ cursor: pointer;
197
+ white-space: nowrap;
198
+ padding: 0.25rem 0.625rem;
199
+ border-radius: 0.3125rem;
200
+ font: inherit;
201
+ font-size: 0.8125rem;
202
+ color: var(--muted-foreground);
203
+ transition: color var(--duration-fast) ease;
204
+ /* AQ.W3 identity base — keep `scale:1; translate:0` so a hover/press
205
+ transform never mints a stacking context that severs `anchor()`
206
+ resolution (the WAAPI press writes `transform` transiently — harmless). */
207
+ scale: 1;
208
+ translate: 0;
209
+ }
210
+
211
+ @media (min-width: 640px) {
212
+ .segmented-tab {
213
+ padding: 0.3125rem 0.75rem;
214
+ font-size: 0.875rem;
215
+ }
216
+ }
217
+
218
+ .segmented-tab[aria-pressed="true"],
219
+ .segmented-tab[aria-selected="true"] {
220
+ color: var(--foreground);
221
+ }
222
+
223
+ .segmented-tab.is-disabled {
224
+ opacity: 0.4;
225
+ cursor: not-allowed;
226
+ pointer-events: none;
227
+ filter: blur(0.5px);
228
+ }
229
+
230
+ /* ── Underline variant ── (THE PAPER MATERIAL — the panel-nav `role=tablist` strip)
231
+ NO plate, NO blur, NO track surface — only the ink hairline paints. */
232
+ .segmented-tabs--underline {
233
+ display: flex;
234
+ grid-auto-flow: unset;
235
+ grid-auto-columns: unset;
236
+ gap: 0.25rem;
237
+ padding: 0;
238
+ background: none;
239
+ backdrop-filter: none;
240
+ -webkit-backdrop-filter: none;
241
+ box-shadow: none;
242
+ border-radius: 0;
243
+ /* BA.W-SURFACE-AXIS scope 8 — the underline indicator COMPOSES the shared
244
+ `.paper-ink-mark` PAPER ink-hairline register (the 2px --foreground ink mark
245
+ on a paper surface — no plate, no blur, no glass). The register tokens are
246
+ declared here on the host; the `::before` pseudo reads them. ≥2 consumers
247
+ with the math-paper section rail (a HORIZONTAL underline here, a VERTICAL
248
+ left-edge rail there — the SAME mark register, parameterized weight/color).
249
+ The register itself lives in glass/surface-axis.css (CONSUMED, never
250
+ re-minted — a shape gap triumvirates at the minting wave). */
251
+ --paper-ink-mark-weight: 2px;
252
+ --paper-ink-mark-color: var(--foreground);
253
+ }
254
+
255
+ /* Vertical underline = the leading-edge ink rail (the math-paper `border-l` read).
256
+ The hairline runs the block extent of the active tab on its inline-start edge. */
257
+ .segmented-tabs--underline.segmented-tabs--vertical {
258
+ flex-direction: column;
259
+ align-items: stretch;
260
+ }
261
+
262
+ /* The active tab is the anchor the underline rule tethers to. */
263
+ .segmented-tabs--underline .segmented-tab[aria-selected="true"] {
264
+ anchor-name: --gl-tab-active;
265
+ }
266
+
267
+ /* The underline indicator pseudo, position-anchored to the active tab; the
268
+ browser interpolates `inset` between anchors on selection on the ONE calibrated
269
+ clock, and the `scale` reads the same `--stretch` squish the slider does (one
270
+ indicator grammar). */
271
+ .segmented-tabs--underline::before {
272
+ content: "";
273
+ position: absolute;
274
+ position-anchor: --gl-tab-active;
275
+ /* BA.W-SURFACE-AXIS scope 8 — the 2px ink mark reads the shared
276
+ `.paper-ink-mark` register (weight + --foreground ink) the host declares. */
277
+ inset-block-start: calc(anchor(bottom) - var(--paper-ink-mark-weight, 2px));
278
+ inset-inline-start: anchor(left);
279
+ inset-inline-end: anchor(right);
280
+ block-size: var(--paper-ink-mark-weight, 2px);
281
+ background: var(--paper-ink-mark-color, var(--foreground));
282
+ border-radius: var(--radius-sm);
283
+ transform-origin: center;
284
+ scale: var(--stretch) 1;
285
+ }
286
+
287
+ /* Vertical underline pseudo — the ink mark is a VERTICAL leading-edge rail (the
288
+ `border-l` read): a 2px-wide column on the active tab's inline-start edge,
289
+ running its full block extent. */
290
+ .segmented-tabs--underline.segmented-tabs--vertical::before {
291
+ inset-block-start: anchor(top);
292
+ inset-block-end: anchor(bottom);
293
+ inset-inline-start: calc(anchor(left) - var(--paper-ink-mark-weight, 2px));
294
+ inset-inline-end: auto;
295
+ block-size: auto;
296
+ inline-size: var(--paper-ink-mark-weight, 2px);
297
+ scale: 1 var(--stretch);
298
+ }
299
+
300
+ @media (prefers-reduced-motion: no-preference) {
301
+ .segmented-tabs--underline::before {
302
+ /* control register — the glide + the squish on the ONE calibrated clock. */
303
+ transition:
304
+ inset var(--tab-indicator-duration) var(--spring-snappy),
305
+ scale var(--tab-indicator-duration) var(--spring-snappy);
306
+ }
307
+ }
308
+
309
+ /* Fallback — static underline when anchor positioning is absent. */
310
+ @supports not (position-anchor: --x) {
311
+ .segmented-tabs--underline::before {
312
+ display: none;
313
+ }
314
+ .segmented-tabs--underline .segmented-tab[aria-selected="true"] {
315
+ border-bottom: var(--paper-ink-mark-weight, 2px) solid var(--foreground);
316
+ }
317
+ .segmented-tabs--underline.segmented-tabs--vertical .segmented-tab[aria-selected="true"] {
318
+ border-bottom: none;
319
+ border-inline-start: var(--paper-ink-mark-weight, 2px) solid var(--foreground);
320
+ }
321
+ }
322
+
323
+ .segmented-tabs--underline .segmented-tab {
324
+ padding: 0.375rem 0.75rem;
325
+ font-size: inherit;
326
+ border-radius: 0.25rem;
327
+ /* The tab-text colour cross-fade rides the fast generic clock (the §6 doctrine
328
+ — a colour shift is a bezier ease, never a spring), matching the pill tab
329
+ buttons. The INDICATOR glide is the only channel on the calibrated spring
330
+ clock. */
331
+ transition: color var(--duration-fast) ease;
332
+ }
333
+
334
+ .segmented-tabs--underline.segmented-tabs--vertical .segmented-tab {
335
+ text-align: start;
336
+ }
337
+
338
+ .segmented-tabs--underline .segmented-tab:hover {
339
+ color: color-mix(in oklab, var(--foreground) 70%, transparent);
340
+ }
@@ -0,0 +1,50 @@
1
+ /*
2
+ * select.css — the Select content collision-bound, pre-compiled (BA.W-EMISSION).
3
+ *
4
+ * THE DEFECT (BA-VJS-A2-WO1 / valuejs-fold A-2): SelectContent.vue authored its
5
+ * collision-bound as a Tailwind ARBITRARY-BRACKET utility
6
+ * [max-height:var(--reka-popper-available-height,60dvh)]
7
+ * which is correct in SOURCE but compiles ONLY into a `dist/*.js` render-function
8
+ * chunk no consumer content-scan reaches (and the P9 emitComponentUtilities
9
+ * safelist rejects fully-arbitrary bracket tokens by construction). So in every
10
+ * consumer the bound NEVER painted — `getComputedStyle(content).maxHeight === "none"`
11
+ * — and a 16-item dropdown rendered 745px tall, overflowing a 900px viewport by
12
+ * 125px (the value.js U-DROPDOWN capture, the binding RED evidence).
13
+ *
14
+ * THE FIX: move the bound to a PRECOMPILED rule that ships in `dist/glass-ui.css`
15
+ * regardless of consumer JIT reach — it is a plain attribute-selector rule, not a
16
+ * Tailwind utility, so it always emits. The cap is the kf donor's default
17
+ * `min(24rem, 60dvh)` (kf design-idioms.css `--easing-dropdown-max-h`; the U8
18
+ * bounded-scroll reference), TIGHTENED by reka's measured
19
+ * `--reka-popper-available-height` on a short viewport via the inner `min()`.
20
+ * `overflow-y: auto` (already on the content via the CVA base) gives the inner
21
+ * scroll. The behaviour is identical to the authored class — it now SHIPS.
22
+ *
23
+ * --select-content-max-h is the ONE retint knob (a consumer widens/narrows the cap
24
+ * by overriding it on any ancestor). The default folds reka's available-height in:
25
+ * when reka reports a height (popper measured), the bound is the MIN of that and
26
+ * the 24rem/60dvh ceiling, so the panel never exceeds the viewport AND never grows
27
+ * past the comfortable ceiling.
28
+ */
29
+
30
+ :root {
31
+ /* The comfortable ceiling — the kf donor default. */
32
+ --select-content-max-h: min(24rem, 60dvh);
33
+ }
34
+
35
+ [data-slot="select-content"] {
36
+ /* The collision-bound: the comfortable ceiling, tightened by reka's measured
37
+ available height on a short viewport. `--reka-popper-available-height` is
38
+ written by reka-ui's popper-positioner; on a tall viewport it exceeds the
39
+ ceiling (so the ceiling wins) and on a short one it clamps the panel to the
40
+ space below the trigger (so the panel bottoms inside the viewport). When reka
41
+ has not yet measured, the fallback is the ceiling alone. */
42
+ max-height: min(
43
+ var(--select-content-max-h),
44
+ var(--reka-popper-available-height, var(--select-content-max-h))
45
+ );
46
+ /* The inner-scroll affordance ships with the bound (the CVA base also sets
47
+ overflow-y-auto; restated here so the bound + scroll travel together as one
48
+ precompiled contract). */
49
+ overflow-y: auto;
50
+ }