@mkbabb/glass-ui 5.0.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (470) hide show
  1. package/README.md +30 -27
  2. package/dist/DropdownMenuTrigger-BzQtd9lt.js +65 -0
  3. package/dist/{FadingScroll-BSRLqQCx.js → FadingScroll-C1ZWEjmG.js} +32 -25
  4. package/dist/{Input-DKf-XwUM.js → Input-B4WQ_CMc.js} +1 -1
  5. package/dist/{PagerDots-BP6jh7z4.js → PagerDots-BoTQ7g5l.js} +123 -95
  6. package/dist/{accent-tone-solve-CBw3L0cy.js → accent-tone-solve-Dii9ePhK.js} +1 -1
  7. package/dist/animated-digit.js +1 -1
  8. package/dist/aurora.js +324 -314
  9. package/dist/blob-config.d.ts +0 -4
  10. package/dist/blob-config.js +1 -1
  11. package/dist/blob.js +280 -261
  12. package/dist/{button-BXzhydVB.js → button-32mg6xA8.js} +63 -56
  13. package/dist/button.js +1 -1
  14. package/dist/canvas.js +1 -1
  15. package/dist/{CardAction-2uUvjMQK.js → card-16xmzIr3.js} +29 -11
  16. package/dist/card.js +1 -1
  17. package/dist/carousel.d.ts +1 -2
  18. package/dist/carousel.js +26 -95
  19. package/dist/chip.d.ts +0 -9
  20. package/dist/chip.js +1 -1
  21. package/dist/collapsible.js +1 -1
  22. package/dist/color-swatch.js +1 -0
  23. package/dist/color.js +87 -3
  24. package/dist/{CommandShortcut-fmdbsEJL.js → command-BjPjUU9z.js} +56 -51
  25. package/dist/command.js +1 -1
  26. package/dist/completion-seal.js +64 -55
  27. package/dist/components/_shared/ModalOverlay.vue.d.ts +5 -52
  28. package/dist/components/_shared/field-surfaces.css +1 -0
  29. package/dist/components/_shared/menuItemVariants.d.ts +2 -2
  30. package/dist/components/_shared/useMotionAxis.d.ts +2 -2
  31. package/dist/components/_shared/valueDomain.d.ts +6 -0
  32. package/dist/components/alert/index.d.ts +1 -1
  33. package/dist/components/animated-digit/AnimatedDigit.vue.d.ts +1 -1
  34. package/dist/components/aurora/Aurora.vue.d.ts +7 -1
  35. package/dist/components/aurora/composables/runtime.d.ts +5 -3
  36. package/dist/components/aurora/composables/useAurora.d.ts +4 -2
  37. package/dist/components/avatar/AvatarImage.vue.d.ts +3 -1
  38. package/dist/components/badge/index.d.ts +2 -2
  39. package/dist/components/blob/Blob.vue.d.ts +11 -0
  40. package/dist/components/blob/composables/useMetaballRenderer.d.ts +2 -0
  41. package/dist/components/button/Button.vue.d.ts +4 -2
  42. package/dist/components/button/index.d.ts +2 -2
  43. package/dist/components/card/Card.vue.d.ts +4 -4
  44. package/dist/components/card/ScrollCard.vue.d.ts +1 -1
  45. package/dist/components/card/styles.css +1 -0
  46. package/dist/components/carousel/Carousel.vue.d.ts +2 -2
  47. package/dist/components/carousel/CarouselNext.vue.d.ts +1 -1
  48. package/dist/components/carousel/CarouselPrevious.vue.d.ts +1 -1
  49. package/dist/components/carousel/index.d.ts +0 -1
  50. package/dist/components/carousel/useCarousel.d.ts +2 -2
  51. package/dist/components/combobox/ComboboxList.vue.d.ts +1 -1
  52. package/dist/components/combobox/index.d.ts +1 -3
  53. package/dist/components/command/Command.vue.d.ts +1 -1
  54. package/dist/components/command/CommandDialog.vue.d.ts +9 -6
  55. package/dist/components/completion-seal/styles.css +1 -0
  56. package/dist/components/constellation/Constellation.vue.d.ts +6 -1
  57. package/dist/components/constellation/composables/useConstellation.d.ts +3 -16
  58. package/dist/components/constellation/constants.d.ts +6 -16
  59. package/dist/components/constellation/constellationField.d.ts +3 -5
  60. package/dist/components/constellation/constellationInteraction.d.ts +1 -1
  61. package/dist/components/constellation/constellationRender.d.ts +11 -21
  62. package/dist/components/constellation/constellationTypes.d.ts +12 -9
  63. package/dist/components/constellation/index.d.ts +1 -1
  64. package/dist/components/controls/DarkModeToggle.vue.d.ts +0 -2
  65. package/dist/components/data-table/DataTable.vue.d.ts +14 -2
  66. package/dist/components/data-table/index.d.ts +1 -2
  67. package/dist/components/data-table/types.d.ts +26 -1
  68. package/dist/components/deck/constants.d.ts +0 -10
  69. package/dist/components/deck/index.d.ts +0 -1
  70. package/dist/components/dialog/DialogContent.vue.d.ts +7 -1
  71. package/dist/components/dialog/index.d.ts +0 -1
  72. package/dist/components/dock/DockControl.vue.d.ts +4 -4
  73. package/dist/components/dock/DockStack.vue.d.ts +2 -2
  74. package/dist/components/dock/GlassDock.vue.d.ts +1 -0
  75. package/dist/components/dock/composables/dockMorphContext.d.ts +2 -0
  76. package/dist/components/dock/composables/dockMorphMeasure.d.ts +11 -1
  77. package/dist/components/dock/composables/useDockClickIntegrity.d.ts +4 -0
  78. package/dist/components/dock/composables/useDockOverflowFit.d.ts +3 -3
  79. package/dist/components/dock/composables/useDockPopover.d.ts +2 -0
  80. package/dist/components/dock/composables/useDockShellProps.d.ts +7 -0
  81. package/dist/components/dock/composables/useDockState.d.ts +2 -2
  82. package/dist/components/dock/constants.d.ts +0 -12
  83. package/dist/components/dock/index.d.ts +1 -0
  84. package/dist/components/dock/styles/adaptive-legibility.css +1 -0
  85. package/dist/components/dock/styles/controls/icon-button.css +1 -0
  86. package/dist/{styles/dock-controls → components/dock/styles/controls}/touch-floor.css +1 -1
  87. package/dist/components/dock/styles/controls.css +1 -0
  88. package/dist/{styles/dock → components/dock/styles}/density.css +1 -1
  89. package/dist/components/dock/styles/dock.css +1 -0
  90. package/dist/components/dock/styles/index.css +1 -0
  91. package/dist/components/dock/styles/layer-group.css +1 -0
  92. package/dist/components/dock/styles/layers.css +1 -0
  93. package/dist/components/dock/styles/overflow.css +1 -0
  94. package/dist/components/dock/styles/popover.css +1 -0
  95. package/dist/components/dock/styles/shape.css +1 -0
  96. package/dist/components/dock/styles/shell.css +1 -0
  97. package/dist/components/drawer/Drawer.vue.d.ts +3 -3
  98. package/dist/components/drawer/composables/drawerSnapContext.d.ts +3 -1
  99. package/dist/components/drawer/constants.d.ts +6 -6
  100. package/dist/components/drawer/index.d.ts +4 -6
  101. package/dist/components/drawer/styles.css +1 -0
  102. package/dist/components/dropdown-menu/DropdownMenuContent.vue.d.ts +1 -1
  103. package/dist/components/dropdown-menu/DropdownMenuTrigger.vue.d.ts +9 -3
  104. package/dist/components/dropdown-menu/index.d.ts +0 -1
  105. package/dist/components/easing/EasingConfigurator.vue.d.ts +1 -1
  106. package/dist/components/easing/EasingPicker.vue.d.ts +2 -2
  107. package/dist/components/easing/composables/useEasingPicker.d.ts +4 -0
  108. package/dist/components/easing/constants.d.ts +2 -0
  109. package/dist/components/fading-scroll/composables/useFadingScroll.d.ts +3 -3
  110. package/dist/components/fourier-field/FourierField.vue.d.ts +7 -1
  111. package/dist/components/fourier-field/composables/useFourierField.d.ts +2 -1
  112. package/dist/components/handmark/HandMark.vue.d.ts +1 -1
  113. package/dist/components/handmark/geometry.d.ts +1 -1
  114. package/dist/components/handmark/index.d.ts +4 -6
  115. package/dist/components/icon-chip/styles.css +1 -0
  116. package/dist/components/index.d.ts +0 -1
  117. package/dist/components/infinite-scroll/index.d.ts +1 -0
  118. package/dist/components/instrument-chassis/styles.css +1 -0
  119. package/dist/components/labeled-field/LabeledField.vue.d.ts +12 -2
  120. package/dist/components/labeled-field/LabeledInput.vue.d.ts +10 -3
  121. package/dist/components/liquid-grid/LiquidGrid.vue.d.ts +4 -0
  122. package/dist/components/liquid-grid/composables/useLiquidGrid.d.ts +2 -1
  123. package/dist/components/metric-stack/MetricStack.vue.d.ts +1 -1
  124. package/dist/components/pager-dots/PagerDots.vue.d.ts +1 -1
  125. package/dist/components/popover/PopoverContent.vue.d.ts +1 -1
  126. package/dist/components/progress/Progress.vue.d.ts +5 -40
  127. package/dist/components/progress/ProgressDefault.vue.d.ts +1 -17
  128. package/dist/components/progress/ProgressGradient.vue.d.ts +1 -0
  129. package/dist/components/progress/ProgressLiquid.vue.d.ts +1 -0
  130. package/dist/components/progress/index.d.ts +0 -5
  131. package/dist/components/progress/valueMarks.css +1 -0
  132. package/dist/components/pulse/Pulse.vue.d.ts +2 -2
  133. package/dist/components/scroll-progress-rim/styles.css +1 -0
  134. package/dist/components/search/FuzzySearch.vue.d.ts +4 -2
  135. package/dist/components/search/SearchBar.vue.d.ts +2 -2
  136. package/dist/components/search/searchVariants.d.ts +1 -1
  137. package/dist/components/select/SelectContent.vue.d.ts +1 -1
  138. package/dist/components/select/index.d.ts +0 -2
  139. package/dist/components/skeleton/Skeleton.vue.d.ts +1 -1
  140. package/dist/components/slider/Slider.vue.d.ts +2 -0
  141. package/dist/components/split-chars/SplitChars.vue.d.ts +1 -1
  142. package/dist/components/surface/Surface.vue.d.ts +1 -1
  143. package/dist/components/table/Table.vue.d.ts +4 -0
  144. package/dist/components/tabs/SegmentedTabs.vue.d.ts +10 -0
  145. package/dist/components/tabs/index.d.ts +1 -1
  146. package/dist/components/tabs/styles/drag.css +1 -0
  147. package/dist/components/tags-input/TagsInput.vue.d.ts +2 -2
  148. package/dist/components/timeline/ContinuousTimeline.vue.d.ts +1 -1
  149. package/dist/components/timeline/GlassTimeline.vue.d.ts +4 -4
  150. package/dist/components/toast/Toast.vue.d.ts +3 -3
  151. package/dist/components/toast/use-toast.d.ts +4 -4
  152. package/dist/components/typewriter/TypewriterText.vue.d.ts +1 -4
  153. package/dist/components/typewriter/composables/useTypewriter.d.ts +0 -1
  154. package/dist/components/typewriter/utils/graphemes.d.ts +1 -0
  155. package/dist/components/watercolor-dot/WatercolorDot.vue.d.ts +2 -2
  156. package/dist/composables/glass/useGlassBackdropLuminance.d.ts +31 -0
  157. package/dist/composables/glass/webgpu/rendererStatus.d.ts +13 -0
  158. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +3 -0
  159. package/dist/composables/glass/webgpu/webgpuCanvasTypes.d.ts +2 -0
  160. package/dist/composables/motion/springProjection.d.ts +16 -0
  161. package/dist/composables/motion/useAnimatedNumber.d.ts +1 -6
  162. package/dist/composables/motion/useCountup.d.ts +1 -6
  163. package/dist/composables/motion/useDockCtaReceive.d.ts +55 -0
  164. package/dist/composables/motion/useElementMorph.d.ts +8 -0
  165. package/dist/composables/motion/useLiquidPress.d.ts +12 -4
  166. package/dist/composables/motion/useNumericTransition.d.ts +2 -0
  167. package/dist/composables/motion/useTextHighlight.d.ts +2 -1
  168. package/dist/configurator-CSENXXSy.js +311 -0
  169. package/dist/configurator.js +2 -3
  170. package/dist/constellation.js +235 -571
  171. package/dist/controls.js +55 -63
  172. package/dist/{createCanvasLifecycle-DlrcvWbb.js → createCanvasLifecycle-hsFkQVdl.js} +32 -32
  173. package/dist/dark-DIH-blY1.js +70 -0
  174. package/dist/dark.d.ts +1 -2
  175. package/dist/dark.js +2 -20
  176. package/dist/{DataTable-Bxya8nBn.js → data-table-DveMdgBM.js} +231 -120
  177. package/dist/data-table.js +2 -2
  178. package/dist/deck.js +10 -21
  179. package/dist/dialog-BzQxKrUr.js +281 -0
  180. package/dist/dialog.js +2 -3
  181. package/dist/dock.js +561 -428
  182. package/dist/{dockContext-d-WpJN2Z.js → dockContext-4S9qP0Z4.js} +1 -1
  183. package/dist/dom.js +196 -7
  184. package/dist/drawer.js +111 -66
  185. package/dist/dropdown-menu-DORIA52F.js +378 -0
  186. package/dist/dropdown-menu.js +3 -2
  187. package/dist/easing.d.ts +0 -9
  188. package/dist/easing.js +334 -187
  189. package/dist/expandable-container.js +12 -4
  190. package/dist/fading-scroll.js +1 -1
  191. package/dist/focus-scope.js +1 -1
  192. package/dist/forms.js +37 -78
  193. package/dist/fourier-field.js +273 -263
  194. package/dist/fourier-math.d.ts +0 -6
  195. package/dist/fourier-math.js +112 -2
  196. package/dist/glass-ui.css +1 -1
  197. package/dist/glass-ui.js +131 -195
  198. package/dist/handmark.d.ts +0 -2
  199. package/dist/handmark.js +82 -82
  200. package/dist/header-ribbon.js +41 -30
  201. package/dist/{IconChip-CwLmBJ_K.js → icon-chip-BWuxz1-u.js} +1 -1
  202. package/dist/icon-chip.js +1 -1
  203. package/dist/{IconTooltip-D9sbK-Mk.js → icon-tooltip-CO6rw0dZ.js} +1 -1
  204. package/dist/icon-tooltip.js +1 -1
  205. package/dist/index.d.ts +0 -1
  206. package/dist/infinite-scroll.d.ts +0 -1
  207. package/dist/infinite-scroll.js +17 -15
  208. package/dist/instrument-chassis.js +1 -1
  209. package/dist/keyboard.js +104 -2
  210. package/dist/label.js +1 -1
  211. package/dist/labeled-field.js +95 -69
  212. package/dist/liquid-grid.js +173 -162
  213. package/dist/metric-badge.js +3 -3
  214. package/dist/metric-cell.js +2 -2
  215. package/dist/metric-stack.js +1 -1
  216. package/dist/motion-core.js +15 -16
  217. package/dist/motion-curves.d.ts +0 -20
  218. package/dist/motion.js +59 -58
  219. package/dist/{Notification-DQv2cOh9.js → notification-DVs7ODMg.js} +17 -8
  220. package/dist/notification.js +1 -1
  221. package/dist/{NumberFieldContent-BkE7xPS9.js → number-field-PvkGedHk.js} +2 -2
  222. package/dist/number-field.js +1 -1
  223. package/dist/pager-dots.js +1 -1
  224. package/dist/paper-backdrop.js +31 -2
  225. package/dist/{PopoverContent-DOtszFWK.js → popover-WMgyRSyN.js} +7 -2
  226. package/dist/popover.js +1 -1
  227. package/dist/procedural-color.wgsl-B9mLK7v0.js +377 -0
  228. package/dist/progress-C-HHuFZy.js +192 -0
  229. package/dist/progress.js +2 -2
  230. package/dist/pulse.js +3 -1
  231. package/dist/reactive.js +19 -3
  232. package/dist/rendererStatus-C2-zC2Q-.js +40 -0
  233. package/dist/{resolveCanvasColor-B3L-akX0.js → resolveCanvasColor-yarP5bdk.js} +1 -1
  234. package/dist/scroll-progress-rim.js +1 -1
  235. package/dist/search.js +187 -146
  236. package/dist/{SelectScrollDownButton-CDtwaWkZ.js → select-BIv4R3Ir.js} +109 -44
  237. package/dist/select.js +2 -4
  238. package/dist/separator-CBU94kTM.js +62 -0
  239. package/dist/separator.js +1 -1
  240. package/dist/sidebar.js +1 -1
  241. package/dist/slider-Cc_qw6GA.js +166 -0
  242. package/dist/slider.js +1 -1
  243. package/dist/sortable-list.js +43 -43
  244. package/dist/styles/accessibility.css +1 -0
  245. package/dist/styles/components.css +1 -1
  246. package/dist/styles/glass/control-surfaces.css +1 -1
  247. package/dist/styles/glass/glass-capsule.css +1 -1
  248. package/dist/styles/glass/ladder.css +1 -1
  249. package/dist/styles/glass/liquid-fill.css +1 -1
  250. package/dist/styles/glass/material-roles.css +1 -0
  251. package/dist/styles/glass/material.css +1 -1
  252. package/dist/styles/glass/surface-axis.css +1 -1
  253. package/dist/styles/glass/surfaces-pager.css +1 -1
  254. package/dist/styles/glass/surfaces.css +1 -1
  255. package/dist/styles/glass.css +1 -1
  256. package/dist/styles/index.css +1 -1
  257. package/dist/styles/theme/bridges.css +1 -1
  258. package/dist/styles/tokens/glass-fx.css +1 -1
  259. package/dist/styles/tokens/glass.css +1 -1
  260. package/dist/styles/tokens/offsets.css +1 -1
  261. package/dist/styles/tokens/scale-paper.css +1 -1
  262. package/dist/styles/tokens/scheme-spring.css +1 -1
  263. package/dist/styles/tokens/shadow.css +1 -1
  264. package/dist/styles/tokens.d.ts +53 -0
  265. package/dist/styles/tokens.ts +58 -0
  266. package/dist/styles/typography/scale.css +1 -1
  267. package/dist/styles/typography/semantic.css +1 -1
  268. package/dist/styles/typography/utilities.css +1 -1
  269. package/dist/styles/utilities/base.css +1 -1
  270. package/dist/styles/utilities/btn.css +1 -1
  271. package/dist/styles/utilities/components.css +1 -1
  272. package/dist/styles/utilities.css +1 -1
  273. package/dist/{Switch-BPBfhMU3.js → switch-Boj4Ucn5.js} +1 -1
  274. package/dist/switch.js +1 -1
  275. package/dist/tabs.js +51 -45
  276. package/dist/timeline.js +2 -2
  277. package/dist/toast.js +1 -1
  278. package/dist/{ToggleGroupItem-DNWx2aSW.js → toggle-group-BPchFsns.js} +10 -7
  279. package/dist/toggle-group.js +1 -1
  280. package/dist/tokens.d.ts +1 -53
  281. package/dist/tokens.js +1 -1
  282. package/dist/{TooltipProvider-GtfYdSVf.js → tooltip-BmOQJzh0.js} +1 -0
  283. package/dist/tooltip.js +1 -1
  284. package/dist/typewriter.js +151 -166
  285. package/dist/{useAccentTone-D25DxviG.js → useAccentTone-C-p6WdPe.js} +1 -1
  286. package/dist/{useAnimatedNumber-2XC4aRB6.js → useAnimatedNumber-BRVVaFFc.js} +1 -1
  287. package/dist/useDockCtaReceive-CK-RLASa.js +257 -0
  288. package/dist/{useGooMorph-CU1pwuC6.js → useGooMorph-D1F6QJlH.js} +140 -59
  289. package/dist/{useIntersectionPause-Cmt5Tnv9.js → useIntersectionPause-B-dbxl9w.js} +1 -1
  290. package/dist/useLiquidPress-BYcwwGQV.js +68 -0
  291. package/dist/{useRAFLoop-CvOo_kgb.js → useRAFLoop-BtwQ9DyY.js} +1 -1
  292. package/dist/{useScrollProgress-C-yImzhU.js → useScrollProgress-DZI4nf4v.js} +1 -1
  293. package/dist/{useSelectionGroup-Btpf24aY.js → useSelectionGroup-LDzBdR1Y.js} +3 -3
  294. package/dist/{useTabRovingFocus-CG1H1k1J.js → useTabRovingFocus-DkLYwo4L.js} +1 -1
  295. package/dist/{useTouchGate-BlegwvwL.js → useTouchGate-Cj5fOkTv.js} +1 -1
  296. package/dist/valueDomain-B8L04u3U.js +13 -0
  297. package/dist/watercolor-dot.js +5 -3
  298. package/package.json +5 -12
  299. package/src/styles/accessibility.css +48 -0
  300. package/src/styles/glass/glass-capsule.css +2 -2
  301. package/src/styles/glass/ladder.css +1 -1
  302. package/src/styles/glass/material-roles.css +18 -0
  303. package/src/styles/glass/material.css +18 -12
  304. package/src/styles/glass.css +5 -5
  305. package/src/styles/index.css +38 -30
  306. package/src/styles/theme/bridges.css +0 -6
  307. package/src/styles/tokens/glass-fx.css +1 -5
  308. package/src/styles/tokens/glass.css +1 -2
  309. package/src/styles/tokens/offsets.css +0 -1
  310. package/src/styles/tokens/property-regs.css +11 -10
  311. package/src/styles/tokens/scale-paper.css +0 -1
  312. package/src/styles/tokens/scheme-motion.css +3 -0
  313. package/src/styles/tokens/scheme-spring.css +0 -10
  314. package/src/styles/tokens/shadow.css +3 -29
  315. package/src/styles/tokens.ts +58 -0
  316. package/src/styles/typography/scale.css +5 -2
  317. package/src/styles/typography/semantic.css +5 -5
  318. package/src/styles/typography/utilities.css +5 -5
  319. package/src/styles/utilities/base.css +5 -5
  320. package/src/styles/utilities/btn.css +6 -27
  321. package/src/styles/utilities.css +4 -6
  322. package/dist/ConfiguratorRow-BV6zPjTM.js +0 -151
  323. package/dist/DialogContent-Bl4v10AC.js +0 -192
  324. package/dist/DialogFooter-C0v4Hz2F.js +0 -168
  325. package/dist/PaperBackdrop-BYwE8_kg.js +0 -31
  326. package/dist/Progress-uWLyXE7J.js +0 -308
  327. package/dist/SelectGroup-BuEptUsa.js +0 -31
  328. package/dist/SelectSeparator-4QGephvr.js +0 -49
  329. package/dist/Separator-DqJ6PfOd.js +0 -44
  330. package/dist/color-Bp5jmv4Z.js +0 -86
  331. package/dist/components/carousel/GlassCarouselPager.vue.d.ts +0 -50
  332. package/dist/components/combobox/ComboboxSeparator.vue.d.ts +0 -18
  333. package/dist/components/combobox/ComboboxViewport.vue.d.ts +0 -18
  334. package/dist/components/constellation/composables/constellationGLSetup.d.ts +0 -10
  335. package/dist/components/constellation/composables/constellationWGPUSetup.d.ts +0 -19
  336. package/dist/components/constellation/composables/uniformBridgeWGPU.d.ts +0 -66
  337. package/dist/components/constellation/shaders/constellation-lines.glsl.d.ts +0 -2
  338. package/dist/components/constellation/shaders/constellation-lines.wgsl.d.ts +0 -1
  339. package/dist/components/constellation/shaders/constellation-points.glsl.d.ts +0 -2
  340. package/dist/components/constellation/shaders/constellation-points.wgsl.d.ts +0 -1
  341. package/dist/components/deck/composables/useDeckSpring.d.ts +0 -22
  342. package/dist/components/dialog/DialogScrollContent.vue.d.ts +0 -33
  343. package/dist/components/progress/ProgressSectioned.vue.d.ts +0 -47
  344. package/dist/components/progress/useProgressGeometry.d.ts +0 -60
  345. package/dist/components/section/Section.vue.d.ts +0 -73
  346. package/dist/components/section/index.d.ts +0 -1
  347. package/dist/components/stacked-icons/StackedIconGroup.vue.d.ts +0 -30
  348. package/dist/components/stacked-icons/index.d.ts +0 -2
  349. package/dist/components/stacked-icons/types.d.ts +0 -19
  350. package/dist/dropdown-menu-DaGlVdp9.js +0 -421
  351. package/dist/math-CIEcwsYi.js +0 -112
  352. package/dist/procedural-color.wgsl-ByduxnzV.js +0 -4
  353. package/dist/slider-Cxuj_W_H.js +0 -151
  354. package/dist/stacked-icons.d.ts +0 -1
  355. package/dist/stacked-icons.js +0 -98
  356. package/dist/styles/cards.css +0 -1
  357. package/dist/styles/completion-seal.css +0 -1
  358. package/dist/styles/dock/adaptive-legibility.css +0 -1
  359. package/dist/styles/dock/dock.css +0 -1
  360. package/dist/styles/dock/layer-group.css +0 -1
  361. package/dist/styles/dock/layers.css +0 -1
  362. package/dist/styles/dock/overflow.css +0 -1
  363. package/dist/styles/dock/popover.css +0 -1
  364. package/dist/styles/dock/shape.css +0 -1
  365. package/dist/styles/dock/shell.css +0 -1
  366. package/dist/styles/dock-controls/icon-button.css +0 -1
  367. package/dist/styles/dock-controls.css +0 -1
  368. package/dist/styles/dock.css +0 -1
  369. package/dist/styles/drawer.css +0 -1
  370. package/dist/styles/icon-chip.css +0 -1
  371. package/dist/styles/instrument-chassis.css +0 -1
  372. package/dist/styles/scroll-progress-rim.css +0 -1
  373. package/dist/styles/select.css +0 -1
  374. package/dist/styles/tabs/segmented-tabs-drag.css +0 -1
  375. package/dist/styles/utilities/animate.css +0 -0
  376. package/dist/useConfiguratorState-Dq35N_7t.js +0 -167
  377. package/dist/useDockCtaReceive-BgMmeINo.js +0 -161
  378. package/dist/useGlobalDark-DjKMEQE2.js +0 -53
  379. package/dist/useGpuSubstrate-DcY584kE.js +0 -347
  380. package/dist/useInterval-ZATRi-1T.js +0 -18
  381. package/dist/useKeyboardShortcuts-ynVmNFo3.js +0 -104
  382. package/dist/useLiquidPress-BXNHydZh.js +0 -40
  383. package/dist/useTextHighlight-C46Le9u_.js +0 -72
  384. package/dist/useViewportReady-c0isoKL8.js +0 -191
  385. package/src/styles/card-scroll.css +0 -189
  386. package/src/styles/cards.css +0 -485
  387. package/src/styles/completion-seal.css +0 -205
  388. package/src/styles/configurator.css +0 -359
  389. package/src/styles/dialog-placement.css +0 -68
  390. package/src/styles/dock/adaptive-legibility.css +0 -119
  391. package/src/styles/dock/crossfade.css +0 -139
  392. package/src/styles/dock/cta-seat.css +0 -87
  393. package/src/styles/dock/density.css +0 -458
  394. package/src/styles/dock/dock.css +0 -199
  395. package/src/styles/dock/fisheye.css +0 -81
  396. package/src/styles/dock/layer-group.css +0 -329
  397. package/src/styles/dock/layers.css +0 -438
  398. package/src/styles/dock/morph.css +0 -455
  399. package/src/styles/dock/overflow.css +0 -332
  400. package/src/styles/dock/popover.css +0 -249
  401. package/src/styles/dock/search.css +0 -68
  402. package/src/styles/dock/section.css +0 -59
  403. package/src/styles/dock/shape.css +0 -188
  404. package/src/styles/dock/shell-regions.css +0 -73
  405. package/src/styles/dock/shell.css +0 -500
  406. package/src/styles/dock-controls/dark-mode-toggle.css +0 -123
  407. package/src/styles/dock-controls/icon-button.css +0 -221
  408. package/src/styles/dock-controls/tab-button.css +0 -143
  409. package/src/styles/dock-controls/touch-floor.css +0 -119
  410. package/src/styles/dock-controls/triggers.css +0 -157
  411. package/src/styles/dock-controls.css +0 -92
  412. package/src/styles/dock.css +0 -219
  413. package/src/styles/drawer.css +0 -434
  414. package/src/styles/feedback-tone.css +0 -104
  415. package/src/styles/icon-chip.css +0 -256
  416. package/src/styles/instrument-chassis.css +0 -449
  417. package/src/styles/menu.css +0 -187
  418. package/src/styles/scroll-progress-rim.css +0 -87
  419. package/src/styles/segmented-tabs.css +0 -424
  420. package/src/styles/select.css +0 -201
  421. package/src/styles/tabs/segmented-tabs-drag.css +0 -200
  422. package/src/styles/utilities/animate.css +0 -29
  423. /package/dist/{coalesce-metric-B8o7zT9u.js → coalesce-metric-znAcLzkB.js} +0 -0
  424. /package/dist/{CollapsibleContent-DiHcB_HH.js → collapsible-bPzS1aQk.js} +0 -0
  425. /package/dist/{compile-C55K3P9g.js → compile-DK3Fri1B.js} +0 -0
  426. /package/dist/{styles → components/_shared}/feedback-tone.css +0 -0
  427. /package/dist/{styles → components/_shared}/menu.css +0 -0
  428. /package/dist/{styles → components/card}/card-scroll.css +0 -0
  429. /package/dist/{styles/configurator.css → components/configurator/styles.css} +0 -0
  430. /package/dist/{styles/dock-controls → components/controls}/dark-mode-toggle.css +0 -0
  431. /package/dist/{styles/dialog-placement.css → components/dialog/placement.css} +0 -0
  432. /package/dist/{styles/dock-controls → components/dock/styles/controls}/tab-button.css +0 -0
  433. /package/dist/{styles/dock-controls → components/dock/styles/controls}/triggers.css +0 -0
  434. /package/dist/{styles/dock → components/dock/styles}/crossfade.css +0 -0
  435. /package/dist/{styles/dock → components/dock/styles}/cta-seat.css +0 -0
  436. /package/dist/{styles/dock → components/dock/styles}/fisheye.css +0 -0
  437. /package/dist/{styles/dock → components/dock/styles}/morph.css +0 -0
  438. /package/dist/{styles/dock → components/dock/styles}/search.css +0 -0
  439. /package/dist/{styles/dock → components/dock/styles}/section.css +0 -0
  440. /package/dist/{styles/dock → components/dock/styles}/shell-regions.css +0 -0
  441. /package/dist/{styles/segmented-tabs.css → components/tabs/styles/segmented.css} +0 -0
  442. /package/dist/{constants-D8lSMkOz.js → constants-DRZmNIY-.js} +0 -0
  443. /package/dist/{createContext-BQ1Gy_LB.js → createContext-FU0n5MGK.js} +0 -0
  444. /package/dist/{flow.glsl-CVqPSj8_.js → flow.glsl-DEGFGE11.js} +0 -0
  445. /package/dist/{FocusScope-BzKwhsBn.js → focus-scope-DUTKveod.js} +0 -0
  446. /package/dist/{InstrumentChassis-Dss5Tjcm.js → instrument-chassis-Cvstg4_U.js} +0 -0
  447. /package/dist/{Label-C84TaQiw.js → label-Cj38tJKG.js} +0 -0
  448. /package/dist/{menuItemVariants-DbO-Fr74.js → menuItemVariants-D6AOzzND.js} +0 -0
  449. /package/dist/{pointerFieldMappings-4VtmkOWv.js → pointerFieldMappings-CZojkgKj.js} +0 -0
  450. /package/dist/{presets-B07HzyKd.js → presets-CxeNvxuO.js} +0 -0
  451. /package/dist/{prng-B0PLRmR6.js → prng-Dz2_9RJu.js} +0 -0
  452. /package/dist/{scrollReader-DzYqPQ6V.js → scrollReader-C2oK9Hb8.js} +0 -0
  453. /package/dist/{supportsCssTimeline-Ie4xJFbD.js → supportsCssTimeline-Dz-GVxXM.js} +0 -0
  454. /package/dist/{Toaster-C_-WeU9W.js → toast-kAbchIN2.js} +0 -0
  455. /package/dist/{useControlSize-DJwe-7ZQ.js → useControlSize-CFfOk8I-.js} +0 -0
  456. /package/dist/{useDocumentVisibility-CpJGUgcJ.js → useDocumentVisibility-YeBDGqtI.js} +0 -0
  457. /package/dist/{useDragMorph-65ihHePq.js → useDragMorph-7ygF9O0m.js} +0 -0
  458. /package/dist/{useDragVelocity-BWcNMCux.js → useDragVelocity-CbMZEBaC.js} +0 -0
  459. /package/dist/{useFuzzySearch-KslRxiJY.js → useFuzzySearch-BOgep7RE.js} +0 -0
  460. /package/dist/{useLeadTrail-DOH4XkL1.js → useLeadTrail-BYu8dq4G.js} +0 -0
  461. /package/dist/{usePointerVelocityField-CwXyeW0Z.js → usePointerVelocityField-BdvnO0py.js} +0 -0
  462. /package/dist/{useResizeObserver-DDuoBeBo.js → useResizeObserver-BcUTquV7.js} +0 -0
  463. /package/dist/{useResolveTokenColor-DVT5kwv6.js → useResolveTokenColor-C07e-qaT.js} +0 -0
  464. /package/dist/{useRoutePointer-DL7I0gY4.js → useRoutePointer-BDNMFN73.js} +0 -0
  465. /package/dist/{useSpringMount-CNvvgGiC.js → useSpringMount-C6-DBx4e.js} +0 -0
  466. /package/dist/{useTimer-CkDV8SC2.js → useTimer-D8koDvJS.js} +0 -0
  467. /package/dist/{useUserInvalidAria-Bkruei7M.js → useUserInvalidAria-Cr4nR3tu.js} +0 -0
  468. /package/dist/{vReveal-DUmiEkX_.js → vReveal-DZfWl9XI.js} +0 -0
  469. /package/dist/{vSpecular-DlYN0UZy.js → vSpecular-CQFmLNzA.js} +0 -0
  470. /package/dist/{writeVelocityWeight-D1rvdxJu.js → writeVelocityWeight-D_AcvTsE.js} +0 -0
@@ -1,87 +0,0 @@
1
- /* Radius-following progress paint: a border-box fill with its padding box cut
2
- away. The rim is an overlay, so it never changes its host's layout. */
3
- .scroll-progress-rim {
4
- position: absolute;
5
- inset: 0;
6
- border-radius: var(--scroll-progress-rim-radius, inherit);
7
- pointer-events: none;
8
- }
9
-
10
- .scroll-progress-rim__track {
11
- position: absolute;
12
- inset: 0;
13
- border: var(--scroll-progress-rim-width, 4px) solid transparent;
14
- border-radius: inherit;
15
- background: conic-gradient(
16
- from 0deg,
17
- var(--scroll-progress-rim-spectrum, var(--section-color-7)),
18
- transparent var(--scroll-progress-rim-fill, 0%),
19
- transparent 100%
20
- );
21
- -webkit-mask:
22
- linear-gradient(#fff 0 0) padding-box,
23
- linear-gradient(#fff 0 0) border-box;
24
- -webkit-mask-composite: xor;
25
- mask:
26
- linear-gradient(#fff 0 0) padding-box,
27
- linear-gradient(#fff 0 0) border-box;
28
- mask-composite: exclude;
29
- }
30
-
31
- .scroll-progress-rim[data-coverage="bottom-edge"] .scroll-progress-rim__track {
32
- background: linear-gradient(
33
- to right,
34
- var(--scroll-progress-rim-spectrum, var(--section-color-7)),
35
- transparent var(--scroll-progress-rim-fill, 0%),
36
- transparent 100%
37
- );
38
- -webkit-mask:
39
- linear-gradient(
40
- to top,
41
- #fff 0,
42
- #fff var(--scroll-progress-rim-width, 4px),
43
- transparent var(--scroll-progress-rim-width, 4px)
44
- ),
45
- linear-gradient(#fff 0 0) padding-box,
46
- linear-gradient(#fff 0 0) border-box;
47
- -webkit-mask-composite: source-in, xor, source-over;
48
- mask:
49
- linear-gradient(
50
- to top,
51
- #fff 0,
52
- #fff var(--scroll-progress-rim-width, 4px),
53
- transparent var(--scroll-progress-rim-width, 4px)
54
- ),
55
- linear-gradient(#fff 0 0) padding-box,
56
- linear-gradient(#fff 0 0) border-box;
57
- mask-composite: intersect, exclude, add;
58
- }
59
-
60
- .scroll-progress-rim[data-coverage="inline-end-edge"] .scroll-progress-rim__track {
61
- background: linear-gradient(
62
- to bottom,
63
- var(--scroll-progress-rim-spectrum, var(--section-color-7)),
64
- transparent var(--scroll-progress-rim-fill, 0%),
65
- transparent 100%
66
- );
67
- -webkit-mask:
68
- linear-gradient(
69
- to left,
70
- #fff 0,
71
- #fff var(--scroll-progress-rim-width, 4px),
72
- transparent var(--scroll-progress-rim-width, 4px)
73
- ),
74
- linear-gradient(#fff 0 0) padding-box,
75
- linear-gradient(#fff 0 0) border-box;
76
- -webkit-mask-composite: source-in, xor, source-over;
77
- mask:
78
- linear-gradient(
79
- to left,
80
- #fff 0,
81
- #fff var(--scroll-progress-rim-width, 4px),
82
- transparent var(--scroll-progress-rim-width, 4px)
83
- ),
84
- linear-gradient(#fff 0 0) padding-box,
85
- linear-gradient(#fff 0 0) border-box;
86
- mask-composite: intersect, exclude, add;
87
- }
@@ -1,424 +0,0 @@
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
- /* BC.W-TABS-IOS — the iOS-27 stadium register. The pill reads the role-bearing
40
- `--radius-tab` (= --radius-pill = 9999px) — on a short pill box this clamps to
41
- half-height → a TRUE stadium end-cap (not the squared `0.3125rem` rounded-rect
42
- the HEAD shipped). The TRACK corner is CONCENTRIC with the pill (Apple's
43
- `.containerConcentric`): the pill radius + the trim inset, so a stadium pill
44
- sits inside a near-stadium track. No breakpoint radius bump — a stadium does
45
- not change radius across viewports (clean break, the 640px radius lines gone). */
46
- --bouncy-slider-radius: var(--radius-tab);
47
- --bouncy-track-radius: calc(var(--bouncy-slider-radius) + var(--bouncy-track-trim));
48
- /* The travel-squish axis — 1 at rest; useTabIndicator writes it transiently
49
- on selection, the indicator pairs it volume-preserving. */
50
- --stretch: 1;
51
- position: relative;
52
- display: inline-grid;
53
- grid-auto-flow: column;
54
- grid-auto-columns: 1fr;
55
- padding: var(--bouncy-track-trim);
56
- border-radius: var(--bouncy-track-radius);
57
- /* BD.W-TAB-IOS-CAPSULE — the warm-glass quiet surface + the rim + the iOS-27
58
- sunken recess now live in the SHARED `.glass-capsule-track` register (the SFC
59
- composes it onto the pill track). The track is a thin warm-glass quiet capsule
60
- with a lit top edge + a recessed well, never a dark hairline, never gray. The
61
- indicator (`.glass-capsule`) reads FORWARD off the SAME rim + the lift shadow.
62
- The underline material does NOT compose the track (paper, no surface). */
63
- }
64
-
65
- /* ── The vertical orientation axis (the block stack) ── */
66
- .segmented-tabs--vertical {
67
- display: inline-flex;
68
- flex-direction: column;
69
- grid-auto-flow: unset;
70
- grid-auto-columns: unset;
71
- align-items: stretch;
72
- /* BI.W-RADIUS-GRAMMAR (Law 2 — capsule-vs-card). A COLUMN-STACK track cannot
73
- wear the horizontal arm's stadium `--radius-tab` (= --radius-pill = 9999px):
74
- on a tall multi-row box the stadium clamps its end-caps to a ~46px half-height
75
- balloon (the live-measured 10003px→46px defect, UF-A2/FAM-4). The vertical arm
76
- re-binds the family radius var onto the BOUNDED `--radius-strip` (≈12px); the
77
- shipped concentric track calc (`--bouncy-track-radius`, above) re-resolves the
78
- track corner off it for free. The horizontal `.segmented-tabs` is byte-untouched
79
- (its single-row pill stays a legal stadium — the pill-in-pill exemption). */
80
- --bouncy-slider-radius: var(--radius-strip);
81
- /* Law 1 — the concentric relay. The vertical track is the concentric CONTAINER:
82
- it publishes its resolved outer radius as `--radius-ctx` + its trim inset as
83
- `--radius-inset`, and the indicator (the nested surface) derives its arc below.
84
- This GENERALIZES the shipped per-surface `.containerConcentric` idiom onto the
85
- named Law-1 contract (Ruling 11 site #2), so the relay is LIVE not dead-on-mint. */
86
- --radius-ctx: var(--bouncy-track-radius);
87
- --radius-inset: var(--bouncy-track-trim);
88
- }
89
-
90
- /* The vertical indicator arc is the concentric INNER of the track — it reads the
91
- Law-1 relay `inner = max(floor, ctx − inset)` (= --radius-strip, the shipped calc
92
- value routed through the named contract). Specificity (0,2,0) wins the base
93
- `.segmented-indicator` (0,1,0) `border-radius: var(--bouncy-slider-radius)`. */
94
- .segmented-tabs--vertical .segmented-indicator {
95
- border-radius: max(
96
- var(--radius-floor),
97
- calc(var(--radius-ctx) - var(--radius-inset))
98
- );
99
- }
100
-
101
- @media (min-width: 640px) {
102
- .segmented-tabs {
103
- /* BC.W-TABS-IOS — only the trim (pad) axis bumps at the wider breakpoint; the
104
- radius is the viewport-invariant stadium (--radius-tab), so the corner
105
- track-radius re-resolves concentric off the bigger trim by construction. */
106
- --bouncy-track-trim: 0.25rem;
107
- }
108
- }
109
-
110
- /* ── The shared indicator body (the PILL plate) ── */
111
- .segmented-indicator {
112
- position: absolute;
113
- /* BD.W-TAB-IOS-CAPSULE — the active pill COMPOSES the shared `.glass-capsule`
114
- (the SFC adds the class). The warm-floor fill (`--glass-bg-floating-tinted`
115
- composed toward the warm-floor source, meanChroma ≥ 0.02 both modes — never
116
- gray), the floating blur, the directional rim + the lift under-shadow ALL live
117
- there now, ONE recipe ≥3 consumers. This block keeps only the position +
118
- inset + the indicator-local stadium radius + the motion transform. */
119
- z-index: 0;
120
- inset-block: var(--bouncy-track-trim);
121
- border-radius: var(--bouncy-slider-radius);
122
- /* BD.W-TABS-LIQUID — the COMPOSED transform write: the area-inflation BLOB
123
- (uniform, both axes, `--tab-blob` driven imperatively by the 2nd
124
- `useLiquidFlex` channel — grow→overshoot→shrink) × the volume-preserving
125
- travel-squish (`--stretch`, reciprocal). `transform-origin: center` → the blob
126
- grows from center (the label stays put) and the squish stays center-pinned. */
127
- transform-origin: center;
128
- scale: calc(var(--tab-blob, 1) * var(--stretch))
129
- calc(var(--tab-blob, 1) / var(--stretch));
130
- }
131
-
132
- /* BI.W-TABS-FACTOR — the indicator PLATE. The glass fill (`.glass-capsule`) + the
133
- refraction (`.glass-lens`) live on this nested plate so the eyeglass two-rest-state
134
- block-proud magnify rides its OWN compositor channel: `transform: scaleY(var(--eyeglass-y))`
135
- — NOT the outer's `scale` (the travel-squish) nor its `transform` (the glide/drag), so
136
- the per-frame `useLeadTrail` write of `--eyeglass-live-t` is never lagged by their
137
- transitions. The plate fills the shell (`inset: 0`); the outer squish/glide scale +
138
- translate compose over it (the outer scale scales the plate too — squish × magnify).
139
- `--eyeglass-y` defaults 1 (the flat slot-fill capsule — the degrade / non-eyeglass
140
- floor); the eyeglass scope (segmented-tabs-drag.css) drives the two-rest-state calc.
141
- NO transition on the plate transform — the useLeadTrail integrator is the animator on
142
- the live path; the `@property --eyeglass-live-t` covers the discrete/degrade path. */
143
- .segmented-indicator__plate {
144
- position: absolute;
145
- inset: 0;
146
- border-radius: inherit;
147
- transform-origin: center;
148
- transform: scaleY(var(--eyeglass-y, 1));
149
- }
150
-
151
- /* BD.W-TABS-LIQUID — the COMMIT accent-flood (T4, opt-in). A momentary full-capsule
152
- wash of `--glass-accent`, driven by `--tab-flood-t` (0→1→0), that TRAILS the
153
- spatial glide a beat then clears (EFFECTS-after-SPATIAL). `isolation: isolate` on
154
- the host so the `plus-lighter` blend composites the flood against the capsule
155
- only (not the page); the gradient is `in srgb` (additive bloom, NOT oklab). The
156
- accent is a CONSUMER accent — default `--glass-accent: transparent` → byte-
157
- identical rest, provable no-op. The SAME register dock-tabs adopt (dormant at
158
- `--tab-flood-t: 0`). */
159
- .segmented-indicator {
160
- isolation: isolate;
161
- }
162
- @supports (mix-blend-mode: plus-lighter) {
163
- .segmented-indicator::after {
164
- content: "";
165
- position: absolute;
166
- inset: 0;
167
- border-radius: inherit;
168
- pointer-events: none;
169
- background: radial-gradient(
170
- 120% 140% at 50% 50%,
171
- color-mix(in srgb, var(--glass-accent, transparent) 55%, transparent),
172
- transparent 70%
173
- );
174
- mix-blend-mode: plus-lighter;
175
- opacity: var(--tab-flood-t, 0);
176
- }
177
- }
178
-
179
- /* Vertical: the indicator deforms on the BLOCK axis (compress X / stretch Y) and
180
- pads on the inline axis instead. */
181
- .segmented-tabs--vertical .segmented-indicator {
182
- inset-block: auto;
183
- inset-inline: var(--bouncy-track-trim);
184
- /* BD.W-TABS-LIQUID — the vertical arm mirrors the blob × squish: the block axis
185
- carries the stretch, the inline axis its reciprocal, both uniformly inflated. */
186
- scale: calc(var(--tab-blob, 1) / var(--stretch))
187
- calc(var(--tab-blob, 1) * var(--stretch));
188
- }
189
-
190
- @media (prefers-reduced-motion: no-preference) {
191
- .segmented-indicator {
192
- /* BD.W-TABS-LIQUID — the composed `scale` (`--tab-blob × --stretch`) rides the
193
- DEPENDED `--ease-cartoon-punch` curve (the booked Band-0 token, CONSUMED
194
- never minted) so the 5-beat blob anticipates (the curve's pre-dip < 0),
195
- overshoots past the destination footprint (peaks > 1), then settles soft.
196
- The discrete imperative `--tab-blob` writes (open/release) INTERPOLATE on
197
- this clock via the `@property` registration — no snap-flicker. ONE clock,
198
- ONE composited transform pair — the glide (inset) + the squish + the blob
199
- cannot desync. The `--tab-flood-t` accent-flood trails a beat after. */
200
- transition: scale var(--tab-indicator-duration) var(--ease-cartoon-punch);
201
- }
202
- }
203
-
204
- /* The JS-measured indicator glide — the indicator is moved by inline `transform`/
205
- `width` writes; animate those alongside the squish scale on the ONE calibrated clock.
206
- BI.W-TABS-FACTOR — the pill IS the eyeglass loupe by default, so its travel rides the
207
- `--spring-eyeglass` curve (the measured Find My loupe register, SPRING_PRESETS
208
- `eyeglass` — snappy-class speed 0.36 / dock-class give ζ0.64; TABS-GLASS-LADDER §8.2)
209
- on the same calibrated `--tab-indicator-duration` clock (unchanged — the underline
210
- paper material keeps `--spring-snappy`). This is the eyeglass row's CSS consumer (the
211
- ≥2-consumer bar: this glide + the JS `useEyeglassLive` release). */
212
- .segmented-indicator--js {
213
- transition:
214
- transform var(--tab-indicator-duration) var(--spring-eyeglass),
215
- width var(--tab-indicator-duration) var(--spring-eyeglass),
216
- height var(--tab-indicator-duration) var(--spring-eyeglass),
217
- scale var(--tab-indicator-duration) var(--spring-eyeglass),
218
- opacity var(--duration-fast) ease;
219
- }
220
-
221
- /* BI.W-DOCK-CONTROLS — the PILL `.segmented-indicator--anchor` CSS-anchor branch
222
- is RETIRED (DEFINITION-ABSENT). The pill indicator now rides the ONE JS-measured
223
- writer (`useSelectionIndicator`) on every engine — Chrome and Safari paint the
224
- same pixels by construction, so the CSS `position-anchor` glide path (which only
225
- fired on anchor-supporting engines) is dead. The underline material keeps its
226
- own `anchor-name`/`::before` indicator below (a distinct paper-material indicator,
227
- not the pill writer). */
228
-
229
- @media (min-width: 640px) {
230
- .segmented-indicator {
231
- /* BC.W-TABS-IOS — only the inset (trim) axis bumps; the radius stays the
232
- viewport-invariant stadium (`--bouncy-slider-radius` = --radius-tab). The
233
- HEAD `border-radius: 0.375rem` px-literal that squared the pill is GONE. */
234
- inset-block: 0.25rem;
235
- }
236
- .segmented-tabs--vertical .segmented-indicator {
237
- inset-block: auto;
238
- inset-inline: 0.25rem;
239
- }
240
- /* BI.W-DOCK-CONTROLS — the pill `.segmented-indicator--anchor` breakpoint trim
241
- retired with the anchor branch (the ONE JS writer carries the inset). */
242
- }
243
-
244
- /* ── The tab buttons ── */
245
- .segmented-tab {
246
- position: relative;
247
- z-index: 10;
248
- border: none;
249
- background: none;
250
- font-weight: 500;
251
- cursor: pointer;
252
- white-space: nowrap;
253
- padding: 0.25rem 0.625rem;
254
- border-radius: 0.3125rem;
255
- font: inherit;
256
- font-size: 0.8125rem;
257
- color: var(--muted-foreground);
258
- /* BD.W-TABS-LIQUID — the glyph scale-pop (overlapping action / follow-through):
259
- the label settles AFTER the capsule (the child trails the parent). The `scale`
260
- channel rides the snappy spring with a 60ms delay so it OVERLAPS the capsule
261
- arrival; the colour cross-fade stays on the fast bezier. */
262
- transition:
263
- color var(--duration-fast) ease,
264
- scale var(--spring-snappy-duration) var(--spring-snappy) 60ms;
265
- /* AQ.W3 identity base — keep `scale:1; translate:0` so a hover/press
266
- transform never mints a stacking context that severs `anchor()`
267
- resolution (the WAAPI press writes `transform` transiently — harmless). */
268
- scale: 1;
269
- translate: 0;
270
- }
271
-
272
- @media (min-width: 640px) {
273
- .segmented-tab {
274
- padding: 0.3125rem 0.75rem;
275
- font-size: 0.875rem;
276
- }
277
- }
278
-
279
- .segmented-tab[aria-pressed="true"],
280
- .segmented-tab[aria-selected="true"] {
281
- color: var(--foreground);
282
- }
283
-
284
- /* BD.W-TABS-LIQUID — the glyph scale-pop on the PILL selection. The live selection
285
- model is `aria-pressed` (the pill is a ToggleGroup-shaped surface — verified in
286
- SegmentedTabs.vue, NOT `aria-selected` which the underline paper material uses).
287
- The pop magnitude DEPENDS `--motion-weight` (the booked Band-0 token, CONSUMED):
288
- `calc(1 + 0.06 × --motion-weight)` → ~+3.7% at rest weight 0.618, and exactly 1
289
- under PRM (`--motion-weight: 0`). The 60ms transition delay (above) settles it a
290
- beat after the capsule arrives (overlapping action). The underline label does NOT
291
- pop (paper ink, no inflation — the material fence). */
292
- .segmented-tabs:not(.segmented-tabs--underline)
293
- .segmented-tab[aria-pressed="true"] {
294
- scale: calc(1 + 0.06 * var(--motion-weight));
295
- }
296
-
297
- .segmented-tab.is-disabled {
298
- opacity: 0.4;
299
- cursor: not-allowed;
300
- pointer-events: none;
301
- filter: blur(0.5px);
302
- }
303
-
304
- /* ── Underline variant ── (THE PAPER MATERIAL — the panel-nav `role=tablist` strip)
305
- NO plate, NO blur, NO track surface — only the ink hairline paints. */
306
- .segmented-tabs--underline {
307
- display: flex;
308
- grid-auto-flow: unset;
309
- grid-auto-columns: unset;
310
- gap: 0.25rem;
311
- padding: 0;
312
- background: none;
313
- backdrop-filter: none;
314
- -webkit-backdrop-filter: none;
315
- box-shadow: none;
316
- border-radius: 0;
317
- /* BA.W-SURFACE-AXIS scope 8 — the underline indicator COMPOSES the shared
318
- `.paper-ink-mark` PAPER ink-hairline register (the 2px --foreground ink mark
319
- on a paper surface — no plate, no blur, no glass). The register tokens are
320
- declared here on the host; the `::before` pseudo reads them. ≥2 consumers
321
- with the math-paper section rail (a HORIZONTAL underline here, a VERTICAL
322
- left-edge rail there — the SAME mark register, parameterized weight/color).
323
- The register itself lives in glass/surface-axis.css (CONSUMED, never
324
- re-minted — a shape gap triumvirates at the minting wave). */
325
- --paper-ink-mark-weight: 2px;
326
- --paper-ink-mark-color: var(--foreground);
327
- }
328
-
329
- /* Vertical underline = the leading-edge ink rail (the math-paper `border-l` read).
330
- The hairline runs the block extent of the active tab on its inline-start edge. */
331
- .segmented-tabs--underline.segmented-tabs--vertical {
332
- flex-direction: column;
333
- align-items: stretch;
334
- }
335
-
336
- /* The active tab is the anchor the underline rule tethers to. */
337
- .segmented-tabs--underline .segmented-tab[aria-selected="true"] {
338
- anchor-name: --gl-tab-active;
339
- }
340
-
341
- /* The underline indicator pseudo, position-anchored to the active tab; the
342
- browser interpolates `inset` between anchors on selection on the ONE calibrated
343
- clock, and the `scale` reads the same `--stretch` squish the slider does (one
344
- indicator grammar). */
345
- .segmented-tabs--underline::before {
346
- content: "";
347
- position: absolute;
348
- position-anchor: --gl-tab-active;
349
- /* BA.W-SURFACE-AXIS scope 8 — the 2px ink mark reads the shared
350
- `.paper-ink-mark` register (weight + --foreground ink) the host declares. */
351
- inset-block-start: calc(anchor(bottom) - var(--paper-ink-mark-weight, 2px));
352
- inset-inline-start: anchor(left);
353
- inset-inline-end: anchor(right);
354
- block-size: var(--paper-ink-mark-weight, 2px);
355
- background: var(--paper-ink-mark-color, var(--foreground));
356
- border-radius: var(--radius-sm);
357
- transform-origin: center;
358
- scale: var(--stretch) 1;
359
- }
360
-
361
- /* Vertical underline pseudo — the ink mark is a VERTICAL leading-edge rail (the
362
- `border-l` read): a 2px-wide column on the active tab's inline-start edge,
363
- running its full block extent. */
364
- .segmented-tabs--underline.segmented-tabs--vertical::before {
365
- inset-block-start: anchor(top);
366
- inset-block-end: anchor(bottom);
367
- inset-inline-start: calc(anchor(left) - var(--paper-ink-mark-weight, 2px));
368
- inset-inline-end: auto;
369
- block-size: auto;
370
- inline-size: var(--paper-ink-mark-weight, 2px);
371
- scale: 1 var(--stretch);
372
- }
373
-
374
- @media (prefers-reduced-motion: no-preference) {
375
- .segmented-tabs--underline::before {
376
- /* control register — the glide + the squish on the ONE calibrated clock. */
377
- transition:
378
- inset var(--tab-indicator-duration) var(--spring-snappy),
379
- scale var(--tab-indicator-duration) var(--spring-snappy);
380
- }
381
- }
382
-
383
- /* Fallback — static underline when anchor positioning is absent. */
384
- @supports not (position-anchor: --x) {
385
- .segmented-tabs--underline::before {
386
- display: none;
387
- }
388
- .segmented-tabs--underline .segmented-tab[aria-selected="true"] {
389
- border-bottom: var(--paper-ink-mark-weight, 2px) solid var(--foreground);
390
- }
391
- .segmented-tabs--underline.segmented-tabs--vertical .segmented-tab[aria-selected="true"] {
392
- border-bottom: none;
393
- border-inline-start: var(--paper-ink-mark-weight, 2px) solid var(--foreground);
394
- }
395
- }
396
-
397
- .segmented-tabs--underline .segmented-tab {
398
- padding: 0.375rem 0.75rem;
399
- /* BC.W-UNDERLINE-TUNE — the audacious editorial label voice. The underline is
400
- the PAPER/editorial material (BA.W-TABS), so its labels carry the √φ display
401
- register, NOT the small 0.8125rem control size the PILL labels keep (the
402
- two-voice fence — the pill is a compact control, the underline is an editorial
403
- nav head). `--type-subheading` (1.272rem / 20.4px, the √φ rung) + the Apple
404
- display tracking `--type-tracking-display` (−1.5%) are the BB.W-DISPLAY-TRACKING
405
- ladder rungs CONSUMED here (never re-minted), the same pairing the semantic
406
- display rungs ride. A confident editorial strip, not a default Tailwind row. */
407
- font-size: var(--type-subheading);
408
- letter-spacing: var(--type-tracking-display);
409
- border-radius: 0.25rem;
410
- /* The tab-text colour cross-fade rides the fast generic clock (the §6 doctrine
411
- — a colour shift is a bezier ease, never a spring), matching the pill tab
412
- buttons. The INDICATOR glide is the only channel on the calibrated spring
413
- clock. */
414
- transition: color var(--duration-fast) ease;
415
- }
416
-
417
- .segmented-tabs--underline.segmented-tabs--vertical .segmented-tab {
418
- text-align: start;
419
- }
420
-
421
- .segmented-tabs--underline .segmented-tab:hover {
422
- color: color-mix(in oklab, var(--foreground) 70%, transparent);
423
- }
424
-