@mkbabb/glass-ui 3.13.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (507) hide show
  1. package/README.md +3 -1
  2. package/dist/CardAction-CW7a0m8M.js +253 -0
  3. package/dist/{CommandShortcut-RowNEO6i.js → CommandShortcut-DvZNQ_HF.js} +58 -53
  4. package/dist/ConfiguratorRow-BR4l-ixA.js +143 -0
  5. package/dist/{ContextMenuContent-CT3AS1WX.js → ContextMenuContent-uWnVxDab.js} +1 -1
  6. package/dist/{ContextMenuSubContent-BQmxTAdw.js → ContextMenuSubContent-xol4sD2q.js} +32 -37
  7. package/dist/{DataTable-BCddn3T3.js → DataTable-CuKwF7wr.js} +99 -97
  8. package/dist/DialogContent-DcKK8k9i.js +103 -0
  9. package/dist/{DialogFooter-Blu4t7tJ.js → DialogFooter-BZNX5aVr.js} +3 -3
  10. package/dist/FadingScroll-DI6hQhT9.js +76 -0
  11. package/dist/{HoverCardContent-Csywg3YF.js → HoverCardContent-b2uaAMRR.js} +1 -1
  12. package/dist/{HoverPopover-CISOJQuZ.js → HoverPopover-CbqbNwgU.js} +2 -2
  13. package/dist/IconChip-BTD-nay5.js +55 -0
  14. package/dist/{IconTooltip-DPzE09X9.js → IconTooltip-Bl8gFZ8d.js} +1 -1
  15. package/dist/{Input-DWQQIOC4.js → Input-h9v5LeXf.js} +1 -1
  16. package/dist/{MetricBadge-C9QMz1KT.js → MetricBadge-RHdBP72w.js} +1 -1
  17. package/dist/Notification-VUwexFUf.js +43 -0
  18. package/dist/NumberFieldContent-Cq7EzX-U.js +138 -0
  19. package/dist/PopoverContent-DL7E6vJP.js +127 -0
  20. package/dist/{Progress-DwlUKGbr.js → Progress-DctG61iZ.js} +98 -78
  21. package/dist/{ScrollingText-DfFrwSph.js → ScrollingText-yOpBzFYq.js} +2 -2
  22. package/dist/{SelectScrollDownButton-CiDUxfEj.js → SelectScrollDownButton-CrA8F0iV.js} +35 -20
  23. package/dist/{Switch-CsIuYP_e.js → Switch-CwYNf8bo.js} +1 -1
  24. package/dist/Toaster-Bw4xR8xV.js +274 -0
  25. package/dist/{ToggleGroupItem-D_AHlRw9.js → ToggleGroupItem-pEM9vIhs.js} +50 -37
  26. package/dist/{TooltipProvider-B3MkB_8P.js → TooltipProvider-rzvnXz60.js} +1 -1
  27. package/dist/animated-digit.js +2 -2
  28. package/dist/api/index.d.ts +16 -8
  29. package/dist/api/types-extra.d.ts +6 -0
  30. package/dist/api.js +2 -2
  31. package/dist/aurora.js +888 -230
  32. package/dist/badge.js +1 -1
  33. package/dist/border-progress.d.ts +1 -0
  34. package/dist/border-progress.js +106 -0
  35. package/dist/button-DYCUa-tH.js +126 -0
  36. package/dist/button.js +1 -1
  37. package/dist/canvas.js +2 -2
  38. package/dist/card.js +2 -2
  39. package/dist/carousel.d.ts +1 -1
  40. package/dist/carousel.js +90 -151
  41. package/dist/collapsible.js +1 -1
  42. package/dist/color-swatch.d.ts +1 -0
  43. package/dist/color-swatch.js +47 -0
  44. package/dist/color.js +1 -1
  45. package/dist/command.js +1 -1
  46. package/dist/compile-CQEFRTmx.js +19 -0
  47. package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
  48. package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
  49. package/dist/components/custom/aurora/composables/runtime.d.ts +19 -0
  50. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
  51. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +51 -0
  52. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +29 -0
  53. package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
  54. package/dist/components/custom/aurora/constants/presets.d.ts +30 -2
  55. package/dist/components/custom/aurora/constants/renderMode.d.ts +63 -10
  56. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
  57. package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
  58. package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
  59. package/dist/components/custom/aurora/index.d.ts +3 -2
  60. package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
  61. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +22 -0
  62. package/dist/components/custom/border-progress/constants.d.ts +59 -0
  63. package/dist/components/custom/border-progress/index.d.ts +4 -0
  64. package/dist/components/custom/color-swatch/ColorSwatch.vue.d.ts +22 -0
  65. package/dist/components/custom/color-swatch/index.d.ts +1 -0
  66. package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
  67. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +11 -0
  68. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
  69. package/dist/components/custom/concentric/composables/ringField.d.ts +44 -0
  70. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +13 -0
  71. package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
  72. package/dist/components/custom/concentric/constants.d.ts +43 -0
  73. package/dist/components/custom/concentric/index.d.ts +5 -0
  74. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
  75. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
  76. package/dist/components/custom/configurator/Configurator.vue.d.ts +19 -8
  77. package/dist/components/custom/constellation/Constellation.vue.d.ts +18 -206
  78. package/dist/components/custom/constellation/composables/useConstellation.d.ts +26 -0
  79. package/dist/components/custom/constellation/constellationField.d.ts +2 -369
  80. package/dist/components/custom/constellation/constellationTypes.d.ts +369 -0
  81. package/dist/components/custom/constellation/index.d.ts +1 -1
  82. package/dist/components/custom/dock/DockIconButton.vue.d.ts +13 -4
  83. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
  84. package/dist/components/custom/dock/DockRail.vue.d.ts +17 -16
  85. package/dist/components/custom/dock/DockSection.vue.d.ts +69 -0
  86. package/dist/components/custom/dock/DockSeparator.vue.d.ts +49 -1
  87. package/dist/components/custom/dock/DockTabButton.vue.d.ts +5 -5
  88. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +75 -0
  89. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
  90. package/dist/components/custom/dock/constants.d.ts +35 -0
  91. package/dist/components/custom/dock/index.d.ts +2 -0
  92. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +38 -0
  93. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +41 -0
  94. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +24 -0
  95. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +34 -0
  96. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -0
  97. package/dist/components/custom/dot-flow-field/constants.d.ts +48 -0
  98. package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
  99. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
  100. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +20 -0
  101. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
  102. package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
  103. package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
  104. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +75 -0
  105. package/dist/components/custom/easing/constants.d.ts +28 -0
  106. package/dist/components/custom/easing/index.d.ts +3 -0
  107. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +10 -0
  108. package/dist/components/custom/fading-scroll/FadingScroll.vue.d.ts +25 -0
  109. package/dist/components/custom/fading-scroll/composables/useFadingScroll.d.ts +31 -0
  110. package/dist/components/custom/fading-scroll/constants.d.ts +19 -0
  111. package/dist/components/custom/fading-scroll/index.d.ts +2 -0
  112. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +19 -2
  113. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +39 -0
  114. package/dist/components/custom/fourier-field/constants.d.ts +7 -0
  115. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  116. package/dist/components/custom/fourier-field/math.d.ts +17 -0
  117. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +9 -1
  118. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +4 -2
  119. package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
  120. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +29 -12
  121. package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
  122. package/dist/components/custom/goo-blob/constants.d.ts +6 -1
  123. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
  124. package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
  125. package/dist/components/custom/handmark/brush.d.ts +269 -0
  126. package/dist/components/custom/handmark/composables/useHandMark.d.ts +89 -0
  127. package/dist/components/custom/handmark/constants.d.ts +39 -0
  128. package/dist/components/custom/handmark/freehand.d.ts +69 -0
  129. package/dist/components/custom/handmark/geometry.d.ts +52 -0
  130. package/dist/components/custom/handmark/index.d.ts +27 -0
  131. package/dist/components/custom/handmark/ink.d.ts +11 -0
  132. package/dist/components/custom/handmark/texture.d.ts +39 -0
  133. package/dist/components/custom/handmark/types.d.ts +62 -0
  134. package/dist/components/custom/icon-chip/IconChip.vue.d.ts +4 -0
  135. package/dist/components/custom/icon-chip/index.d.ts +2 -0
  136. package/dist/components/custom/icon-chip/types.d.ts +82 -0
  137. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +17 -2
  138. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
  139. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +39 -0
  140. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  141. package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
  142. package/dist/components/custom/spa-view/index.d.ts +2 -0
  143. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +29 -24
  144. package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
  145. package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +30 -21
  146. package/dist/components/custom/tabs/constants.d.ts +9 -3
  147. package/dist/components/custom/tabs/index.d.ts +1 -1
  148. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +15 -1
  149. package/dist/components/ui/_shared/index.d.ts +2 -0
  150. package/dist/components/ui/_shared/menuItemVariants.d.ts +19 -0
  151. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +41 -0
  152. package/dist/components/ui/badge/index.d.ts +1 -1
  153. package/dist/components/ui/button/Button.vue.d.ts +5 -2
  154. package/dist/components/ui/button/index.d.ts +2 -2
  155. package/dist/components/ui/card/Card.vue.d.ts +34 -4
  156. package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
  157. package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
  158. package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
  159. package/dist/components/ui/card/index.d.ts +2 -0
  160. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
  161. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
  162. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
  163. package/dist/components/ui/carousel/index.d.ts +0 -1
  164. package/dist/components/ui/command/Command.vue.d.ts +4 -1
  165. package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -3
  166. package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
  167. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +12 -8
  168. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
  169. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
  170. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
  171. package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
  172. package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
  173. package/dist/components/ui/drawer/constants.d.ts +45 -0
  174. package/dist/components/ui/drawer/index.d.ts +23 -15
  175. package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
  176. package/dist/components/ui/focus-scope/index.d.ts +2 -0
  177. package/dist/components/ui/index.d.ts +1 -1
  178. package/dist/components/ui/popover/PopoverContent.vue.d.ts +3 -0
  179. package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
  180. package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +14 -3
  181. package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
  182. package/dist/components/ui/select/SelectTrigger.vue.d.ts +27 -4
  183. package/dist/components/ui/sheet/SheetContent.vue.d.ts +6 -0
  184. package/dist/components/ui/sheet/index.d.ts +1 -1
  185. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +3 -0
  186. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
  187. package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
  188. package/dist/components/ui/toast/use-toast.d.ts +14 -0
  189. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  190. package/dist/composables/dark/index.d.ts +1 -1
  191. package/dist/composables/dark/useGlobalDark.d.ts +23 -1
  192. package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
  193. package/dist/composables/glass/index.d.ts +5 -2
  194. package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
  195. package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
  196. package/dist/composables/glass/vSpecular.d.ts +2 -0
  197. package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
  198. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
  199. package/dist/composables/glass/webgpu/index.d.ts +2 -0
  200. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +54 -0
  201. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +84 -0
  202. package/dist/composables/motion/core/index.d.ts +1 -0
  203. package/dist/composables/motion/index.d.ts +4 -0
  204. package/dist/composables/motion/useDockCtaReceive.d.ts +59 -0
  205. package/dist/composables/motion/useDragMorph.d.ts +77 -0
  206. package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
  207. package/dist/composables/motion/useLiquidPress.d.ts +71 -0
  208. package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
  209. package/dist/composables/motion/useNumericTransition.d.ts +3 -3
  210. package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
  211. package/dist/composables/motion/useViewTransition.d.ts +36 -1
  212. package/dist/concentric.d.ts +1 -0
  213. package/dist/concentric.js +562 -0
  214. package/dist/configurator.js +3 -2
  215. package/dist/confirm-dialog.js +22 -24
  216. package/dist/constellation.js +93 -95
  217. package/dist/context-menu.js +3 -3
  218. package/dist/controls.js +10 -4
  219. package/dist/createCanvasLifecycle-CHD5XrDW.js +82 -0
  220. package/dist/dark.d.ts +1 -1
  221. package/dist/dark.js +1 -1
  222. package/dist/data-table.js +1 -1
  223. package/dist/dialog.js +2 -2
  224. package/dist/dock.js +738 -442
  225. package/dist/{dockContext-BegmJVmx.js → dockContext-BNfyPLe9.js} +1 -1
  226. package/dist/dom.js +5 -5
  227. package/dist/dot-flow-field.d.ts +1 -0
  228. package/dist/dot-flow-field.js +604 -0
  229. package/dist/drawer.d.ts +1 -0
  230. package/dist/drawer.js +380 -0
  231. package/dist/{dropdown-menu-DzkkyBwX.js → dropdown-menu-CofSZuk8.js} +14 -15
  232. package/dist/dropdown-menu.js +1 -1
  233. package/dist/easing.d.ts +1 -0
  234. package/dist/easing.js +463 -0
  235. package/dist/expandable-container.js +45 -38
  236. package/dist/fading-scroll.d.ts +1 -0
  237. package/dist/fading-scroll.js +2 -0
  238. package/dist/focus-scope.d.ts +1 -0
  239. package/dist/focus-scope.js +23 -0
  240. package/dist/forms.js +7 -7
  241. package/dist/fourier-field.js +135 -122
  242. package/dist/fourier-math.js +2 -2
  243. package/dist/glass-panel.js +39 -36
  244. package/dist/glass-ui.css +1 -1
  245. package/dist/glass-ui.js +154 -362
  246. package/dist/goo-blob.js +838 -227
  247. package/dist/handmark.d.ts +1 -0
  248. package/dist/handmark.js +707 -0
  249. package/dist/header-ribbon.js +1 -1
  250. package/dist/hover-card.js +1 -1
  251. package/dist/hover-popover.js +1 -1
  252. package/dist/icon-chip.d.ts +1 -0
  253. package/dist/icon-chip.js +2 -0
  254. package/dist/icon-tooltip.js +1 -1
  255. package/dist/index.d.ts +3 -3
  256. package/dist/instrument-chassis.js +1 -1
  257. package/dist/keyboard.js +1 -1
  258. package/dist/label.js +1 -1
  259. package/dist/labeled-field.js +6 -6
  260. package/dist/{math-U6-RrLmV.js → math-BINYmg5z.js} +11 -3
  261. package/dist/{menuItemVariants-DPiEarb0.js → menuItemVariants-D8VNHq22.js} +10 -4
  262. package/dist/metric-badge.js +1 -1
  263. package/dist/metric-cell.js +25 -22
  264. package/dist/metric-stack.js +4 -8
  265. package/dist/motion-core.js +36 -35
  266. package/dist/motion-curves.js +1 -1
  267. package/dist/motion.js +157 -55
  268. package/dist/notification.js +1 -1
  269. package/dist/number-field.js +1 -1
  270. package/dist/pager-dots.d.ts +1 -0
  271. package/dist/pager-dots.js +91 -0
  272. package/dist/paper-backdrop.js +1 -1
  273. package/dist/popover.js +1 -1
  274. package/dist/{presets-BKVyQfbt.js → presets-BW2b-fr1.js} +14 -1
  275. package/dist/{compile-B7NGOBcP.js → procedural-color.glsl-CIFsJhwI.js} +1 -155
  276. package/dist/procedural-color.wgsl-CToRHugY.js +224 -0
  277. package/dist/progress.js +1 -1
  278. package/dist/pulse.js +1 -1
  279. package/dist/reactive.js +2 -2
  280. package/dist/scrolling-text.js +1 -1
  281. package/dist/search.js +10 -12
  282. package/dist/select.js +3 -3
  283. package/dist/separator.js +1 -1
  284. package/dist/sheet-tZMg0E0w.js +218 -0
  285. package/dist/sheet.js +1 -1
  286. package/dist/{slider-B-JP2JlI.js → slider-DVb4HXU-.js} +7 -7
  287. package/dist/slider.js +1 -1
  288. package/dist/sortable-list.js +3 -3
  289. package/dist/spa-view.d.ts +1 -0
  290. package/dist/spa-view.js +46 -0
  291. package/dist/styles/animations.css +40 -31
  292. package/dist/styles/border-progress.css +109 -0
  293. package/dist/styles/cards.css +76 -0
  294. package/dist/styles/components.css +1 -1
  295. package/dist/styles/configurator.css +35 -0
  296. package/dist/styles/critical-partition.mjs +140 -0
  297. package/dist/styles/critical.css +12 -0
  298. package/dist/styles/deferred.css +31 -0
  299. package/dist/styles/dock/density.css +64 -0
  300. package/dist/styles/dock/layers.css +54 -30
  301. package/dist/styles/dock/morph.css +124 -7
  302. package/dist/styles/dock/overflow.css +31 -2
  303. package/dist/styles/dock/rail-extend.css +168 -71
  304. package/dist/styles/dock/section.css +59 -0
  305. package/dist/styles/dock/shell.css +83 -16
  306. package/dist/styles/dock-controls/icon-button.css +11 -1
  307. package/dist/styles/dock-controls/tab-button.css +24 -83
  308. package/dist/styles/dock-controls/triggers.css +7 -0
  309. package/dist/styles/dock.css +38 -3
  310. package/dist/styles/drawer.css +127 -35
  311. package/dist/styles/feedback-tone.css +104 -0
  312. package/dist/styles/glass/deep.css +44 -0
  313. package/dist/styles/glass/ladder.css +154 -52
  314. package/dist/styles/glass/material.css +78 -15
  315. package/dist/styles/glass/reveal.css +136 -0
  316. package/dist/styles/glass/rim.css +100 -0
  317. package/dist/styles/glass/surface-axis.css +113 -0
  318. package/dist/styles/glass/surfaces.css +189 -15
  319. package/dist/styles/glass-refract.css +96 -44
  320. package/dist/styles/glass-specular-track.css +7 -0
  321. package/dist/styles/glass.css +8 -2
  322. package/dist/styles/hover-popover.css +7 -6
  323. package/dist/styles/icon-chip.css +211 -0
  324. package/dist/styles/index.css +78 -4
  325. package/dist/styles/instrument-chassis.css +107 -2
  326. package/dist/styles/menu.css +127 -0
  327. package/dist/styles/scroll-choreography.css +300 -0
  328. package/dist/styles/segmented-tabs.css +188 -86
  329. package/dist/styles/select.css +50 -0
  330. package/dist/styles/theme/bridges.css +22 -1
  331. package/dist/styles/theme/literals.css +11 -2
  332. package/dist/styles/theme/radius.css +6 -1
  333. package/dist/styles/tokens/color-radius.css +40 -13
  334. package/dist/styles/tokens/dark-arm.css +200 -20
  335. package/dist/styles/tokens/glass-deep.css +75 -0
  336. package/dist/styles/tokens/glass-fx.css +333 -0
  337. package/dist/styles/tokens/glass.css +95 -315
  338. package/dist/styles/tokens/light-dark.css +64 -22
  339. package/dist/styles/tokens/offsets.css +116 -0
  340. package/dist/styles/tokens/on-glass-fg.css +39 -0
  341. package/dist/styles/tokens/property-regs.css +130 -10
  342. package/dist/styles/tokens/scale-paper.css +155 -84
  343. package/dist/styles/tokens/scheme-motion.css +102 -46
  344. package/dist/styles/tokens/scroll-tokens.css +123 -0
  345. package/dist/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
  346. package/dist/styles/tokens.css +9 -3
  347. package/dist/styles/transitions.css +7 -7
  348. package/dist/styles/typography/scale.css +153 -0
  349. package/dist/styles/typography/semantic.css +220 -0
  350. package/dist/styles/typography/utilities.css +174 -0
  351. package/dist/styles/typography.css +23 -507
  352. package/dist/styles/utilities/a11y-overrides.css +33 -4
  353. package/dist/styles/utilities/animate.css +27 -24
  354. package/dist/styles/utilities/base-misc.css +255 -0
  355. package/dist/styles/utilities/base.css +100 -138
  356. package/dist/styles/utilities/btn.css +21 -202
  357. package/dist/styles/utilities/metal.css +189 -0
  358. package/dist/styles/utilities.css +14 -7
  359. package/dist/styles/view-transition.css +4 -1
  360. package/dist/switch.js +1 -1
  361. package/dist/tabs.js +275 -191
  362. package/dist/timeline.js +2 -2
  363. package/dist/toast.js +1 -1
  364. package/dist/toggle-chip.js +3 -1
  365. package/dist/toggle-group.js +1 -1
  366. package/dist/tooltip.js +1 -1
  367. package/dist/typewriter.js +1 -1
  368. package/dist/{useAnimatedNumber-C5I3wWd8.js → useAnimatedNumber-BfUq2bUM.js} +1 -1
  369. package/dist/useCanvas2D-B8w_E3Rr.js +83 -0
  370. package/dist/useConfiguratorState-DNlOh6c8.js +161 -0
  371. package/dist/useDragMorph-DgxnsVJz.js +102 -0
  372. package/dist/{useGlobalDark-yhL4Wp-s.js → useGlobalDark-C28t0VWJ.js} +22 -3
  373. package/dist/useLiquidPress-kfb4KX79.js +39 -0
  374. package/dist/usePointerVelocityField-JbRd5CrM.js +137 -0
  375. package/dist/{useRAFLoop-Bxv0o6L5.js → useRAFLoop-UYa4zoiN.js} +1 -1
  376. package/dist/useSpring-C0jyvEJB.js +40 -0
  377. package/dist/useSpringMount-q1amq1SJ.js +71 -0
  378. package/dist/useSpringPress-BsqPr7FJ.js +34 -0
  379. package/dist/useSurfaceAxis-g0NloYEF.js +7 -0
  380. package/dist/{useTouchGate-Dg7MQI1G.js → useTouchGate-CBZTD4SD.js} +1 -1
  381. package/dist/vReveal-Czsb7zQC.js +10 -0
  382. package/dist/vSpecular-CQFmLNzA.js +68 -0
  383. package/dist/vendor-CKmzio-i.js +226 -0
  384. package/dist/watercolor-dot.js +12 -5
  385. package/package.json +193 -25
  386. package/src/styles/animations.css +40 -31
  387. package/src/styles/border-progress.css +109 -0
  388. package/src/styles/cards.css +76 -0
  389. package/src/styles/configurator.css +35 -0
  390. package/src/styles/critical-partition.mjs +140 -0
  391. package/src/styles/dock/density.css +64 -0
  392. package/src/styles/dock/layers.css +54 -30
  393. package/src/styles/dock/morph.css +124 -7
  394. package/src/styles/dock/overflow.css +31 -2
  395. package/src/styles/dock/rail-extend.css +168 -71
  396. package/src/styles/dock/section.css +59 -0
  397. package/src/styles/dock/shell.css +83 -16
  398. package/src/styles/dock-controls/icon-button.css +11 -1
  399. package/src/styles/dock-controls/tab-button.css +24 -83
  400. package/src/styles/dock-controls/triggers.css +7 -0
  401. package/src/styles/dock.css +38 -3
  402. package/src/styles/drawer.css +123 -35
  403. package/src/styles/feedback-tone.css +104 -0
  404. package/src/styles/glass/deep.css +44 -0
  405. package/src/styles/glass/ladder.css +154 -52
  406. package/src/styles/glass/material.css +78 -15
  407. package/src/styles/glass/reveal.css +136 -0
  408. package/src/styles/glass/rim.css +100 -0
  409. package/src/styles/glass/surface-axis.css +113 -0
  410. package/src/styles/glass/surfaces.css +189 -15
  411. package/src/styles/glass-refract.css +96 -44
  412. package/src/styles/glass-specular-track.css +7 -0
  413. package/src/styles/glass.css +8 -2
  414. package/src/styles/hover-popover.css +7 -6
  415. package/src/styles/icon-chip.css +211 -0
  416. package/src/styles/index.css +78 -4
  417. package/src/styles/instrument-chassis.css +107 -2
  418. package/src/styles/menu.css +127 -0
  419. package/src/styles/scroll-choreography.css +300 -0
  420. package/src/styles/segmented-tabs.css +184 -84
  421. package/src/styles/select.css +50 -0
  422. package/src/styles/theme/bridges.css +22 -1
  423. package/src/styles/theme/literals.css +11 -2
  424. package/src/styles/theme/radius.css +6 -1
  425. package/src/styles/tokens/color-radius.css +40 -13
  426. package/src/styles/tokens/dark-arm.css +200 -20
  427. package/src/styles/tokens/glass-deep.css +75 -0
  428. package/src/styles/tokens/glass-fx.css +333 -0
  429. package/src/styles/tokens/glass.css +95 -315
  430. package/src/styles/tokens/light-dark.css +64 -22
  431. package/src/styles/tokens/offsets.css +116 -0
  432. package/src/styles/tokens/on-glass-fg.css +39 -0
  433. package/src/styles/tokens/property-regs.css +130 -10
  434. package/src/styles/tokens/scale-paper.css +155 -84
  435. package/src/styles/tokens/scheme-motion.css +102 -46
  436. package/src/styles/tokens/scroll-tokens.css +123 -0
  437. package/src/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
  438. package/src/styles/tokens.css +9 -3
  439. package/src/styles/transitions.css +7 -7
  440. package/src/styles/typography/scale.css +153 -0
  441. package/src/styles/typography/semantic.css +220 -0
  442. package/src/styles/typography/utilities.css +174 -0
  443. package/src/styles/typography.css +23 -507
  444. package/src/styles/utilities/a11y-overrides.css +33 -4
  445. package/src/styles/utilities/animate.css +27 -24
  446. package/src/styles/utilities/base-misc.css +255 -0
  447. package/src/styles/utilities/base.css +100 -138
  448. package/src/styles/utilities/btn.css +21 -202
  449. package/src/styles/utilities/metal.css +189 -0
  450. package/src/styles/utilities.css +14 -7
  451. package/src/styles/view-transition.css +4 -1
  452. package/dist/CardAction-Cj2eycQ2.js +0 -157
  453. package/dist/DialogContent-Dl9WkAoS.js +0 -100
  454. package/dist/Notification-DdwNxIrI.js +0 -100
  455. package/dist/NumberFieldContent-CqaN-SvN.js +0 -145
  456. package/dist/PopoverContent-BYwt2-4x.js +0 -121
  457. package/dist/TabsList-Dttss653.js +0 -105
  458. package/dist/Toaster-D6q4HtXu.js +0 -263
  459. package/dist/button-ChXMfsud.js +0 -81
  460. package/dist/check-njhk-vfu.js +0 -7
  461. package/dist/chevron-down-DKkxb4VV.js +0 -7
  462. package/dist/chevron-right-CPXbqQQz.js +0 -7
  463. package/dist/chevron-up-n_24SqI-.js +0 -7
  464. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +0 -84
  465. package/dist/components/custom/underline/index.d.ts +0 -2
  466. package/dist/components/custom/underline/types.d.ts +0 -56
  467. package/dist/components/ui/carousel/CarouselDots.vue.d.ts +0 -4
  468. package/dist/createLucideIcon-DydS2qgk.js +0 -43
  469. package/dist/minimize-2-BV31Ob_h.js +0 -38
  470. package/dist/search-BSGrf2Sk.js +0 -12
  471. package/dist/sheet-1fChZjtw.js +0 -214
  472. package/dist/underline.d.ts +0 -1
  473. package/dist/underline.js +0 -85
  474. package/dist/useCanvas2D-ClrQuZtp.js +0 -96
  475. package/dist/useConfiguratorState-DAoeHVue.js +0 -287
  476. package/dist/useSpecularTracking-Bo5su68i.js +0 -32
  477. package/dist/useSpringMount-CI2jOstM.js +0 -108
  478. package/dist/vReveal-CqaCz_mC.js +0 -44
  479. package/dist/x-BUwTKe50.js +0 -10
  480. /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-68dEXIAl.js} +0 -0
  481. /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-Bx0F_q5g.js} +0 -0
  482. /package/dist/{Label-r3WzWrsj.js → Label-C2ejNWeC.js} +0 -0
  483. /package/dist/{ModalOverlay-DVLI2VRr.js → ModalOverlay-D1VrWyoi.js} +0 -0
  484. /package/dist/{PaperBackdrop-DIXTtVq6.js → PaperBackdrop-Vf3tlpvd.js} +0 -0
  485. /package/dist/{SelectGroup-aumMgWLs.js → SelectGroup-DwwjicPY.js} +0 -0
  486. /package/dist/{SelectSeparator-BQ_1Fcbp.js → SelectSeparator-DXswVdRz.js} +0 -0
  487. /package/dist/{Separator-0JE6LtNu.js → Separator-pKF0oA4M.js} +0 -0
  488. /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
  489. /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
  490. /package/dist/{color-CUYeFbgd.js → color-DweYl7pE.js} +0 -0
  491. /package/dist/{constants-CS75AWHG.js → constants-BPOqYJAm.js} +0 -0
  492. /package/dist/{createContext-BM46COQ-.js → createContext-CpBNTRMI.js} +0 -0
  493. /package/dist/{prng-D27-B3tK.js → prng-Za0Rmgag.js} +0 -0
  494. /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CUyHr5Uu.js} +0 -0
  495. /package/dist/{springPresets--YdWTHtm.js → springPresets-CFQGQfdl.js} +0 -0
  496. /package/dist/{useIntersectionPause-Cc-H9ees.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
  497. /package/dist/{useInterval-iHludrxk.js → useInterval-CvK1mL92.js} +0 -0
  498. /package/dist/{useKeyboardShortcuts-Be3w_Rwk.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
  499. /package/dist/{useLiquidFlex-BL0lLLN2.js → useLiquidFlex-mZPMiNXh.js} +0 -0
  500. /package/dist/{useResizeObserver-BhgdhOIj.js → useResizeObserver-Bpoi7tRE.js} +0 -0
  501. /package/dist/{useResolveTokenColor-Dvn2RZJW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
  502. /package/dist/{useScrollProgress-Dlvx-L3v.js → useScrollProgress-D7bYU2RK.js} +0 -0
  503. /package/dist/{useSortable-muI29agz.js → useSortable-DHjtZSEd.js} +0 -0
  504. /package/dist/{useTextHighlight-DmRYkOBx.js → useTextHighlight-CWEi25hf.js} +0 -0
  505. /package/dist/{useTimer-Dzarvzuk.js → useTimer-BHJOKr35.js} +0 -0
  506. /package/dist/{useUserInvalidAria-B2h6jAM_.js → useUserInvalidAria-y5namzeE.js} +0 -0
  507. /package/dist/{useViewportReady-B40FK4Pa.js → useViewportReady-anbac3m6.js} +0 -0
@@ -28,10 +28,13 @@
28
28
  */
29
29
  @layer components {
30
30
  :root {
31
- /* The beyond-edge overrun length — how far the hairline runs PAST the dock
32
- content box. A proportioned default (a touch more than a dock control); a
33
- consumer retunes per-instance. Rides `--dock-scale` so it tracks the
34
- coarse-pointer density thread the rest of the dock floor speaks. */
31
+ /* BA.W-DOCK-SECTIONS RE-SEMANTIC — the SYMMETRIC dual-side overrun length. The
32
+ seam line crosses THROUGH the dock and protrudes past BOTH edges by this
33
+ amount each side (the line's cross-extent = dock extent + 2× this knob,
34
+ centered on the seam). Was a one-way connector length pre-wave; now the
35
+ per-side overrun of the dual-side seam line. A proportioned default (a touch
36
+ more than a dock control); rides `--dock-scale` so it tracks the coarse-pointer
37
+ density thread the rest of the dock floor speaks. */
35
38
  --dock-rail-extend-length: calc(2.5rem * var(--dock-scale, 1));
36
39
  }
37
40
 
@@ -72,128 +75,198 @@
72
75
  pointer-events: auto;
73
76
  }
74
77
 
75
- /* AZ.W-RAIL3 — the slot hangs the floating carousel BELOW the dock's bottom edge
76
- for BOTH orientations. The slot's top sits AT the dock's bottom edge
77
- (`inset-block-start: 100%`) and the strip (a horizontal chip carousel) lives
78
- wholly BELOW the dock. The slot anchors at the dock's LEADING (inline-start)
79
- edge but is NOT clamped to the dock's width (`inset-inline-end: auto`), so a
80
- carousel WIDER than a narrow vertical column overflows past the dock's inline
81
- extent — the "floating carousel" that overflows OUTSIDE the dock (the box stays
82
- INVIOLATE because the slot is `position: absolute`, never feeding the dock's
83
- intrinsic size). The connective hairline (`.dock-hairline-extend::before`) is
84
- center-aligned over the strip so it reads as a connector from the dock edge. */
78
+ /* BA.W-DOCK-SECTIONS — THE DIVIDER-SEAM RE-SEAT (the 4th-rail re-conception; the
79
+ midline/edge seat workaround #4 is DELETED, inv-6). The rail line co-locates with
80
+ a NAMED `<DockSeparator anchor>` seam: GlassDock measures that separator's offset
81
+ within the frame and writes `--dock-rail-seam-offset` (the cross-axis center of the
82
+ divider). The slot anchors AT the seam — NOT `50%` (the vertical midline workaround
83
+ the H1 band motivated), NOT the dock edge — and the line OVERRUNS BOTH dock edges
84
+ by `--dock-rail-extend-length` each side (a SYMMETRIC dual-side overrun, replacing
85
+ the one-way connector). The chips fan FLUSH alongside the line. Because the slot is
86
+ `position: absolute` on the non-clipping frame, the dock box stays INVIOLATE (it
87
+ feeds NO size into the dock's intrinsic box — proof:rail-extend box-equality holds).
88
+
89
+ FALLBACK: when no anchored separator is present `--dock-rail-seam-offset` is unset;
90
+ the `var(…, 50%)`-FREE fallback seats the line at the dock's near edge via the
91
+ extent default (never the midline seat). */
92
+
93
+ /* VERTICAL (column) dock — the rail is a HORIZONTAL line. It anchors on the BLOCK
94
+ axis at the ℱ-separator's Y (the seam offset) and overruns on the INLINE axis past
95
+ BOTH the leading and trailing edges: the slot starts `--dock-rail-extend-length`
96
+ LEFT of the dock and its inline extent is the dock width + 2× the overrun, so the
97
+ line protrudes symmetrically each side. The chips fan FLUSH in the trailing gutter
98
+ (translated past the dock's trailing edge). */
85
99
  .glass-dock-frame[data-has-rail].vertical .dock-hairline-slot {
86
- inset-inline-start: 100%;
87
- /* seat the carousel CENTERED beside the dock column. A top-anchored seat
88
- collides with the page H1/breadcrumb band at scroll-top (any fixed offset
89
- from the dock top lands in it at some viewport); the vertical center is
90
- stable across viewport heights and reads as the carousel riding the dock's
91
- midline, clear of the title band. */
92
- inset-block-start: 50%;
100
+ inset-block-start: var(--dock-rail-seam-offset, 0px);
93
101
  inset-block-end: auto;
102
+ inset-inline-start: calc(-1 * var(--dock-rail-extend-length));
103
+ inset-inline-end: auto;
104
+ /* the line's inline extent = dock width + 2× overrun (symmetric, centered). */
105
+ inline-size: calc(100% + 2 * var(--dock-rail-extend-length));
94
106
  translate: 0 -50%;
95
107
  flex-direction: row;
96
- align-items: flex-start;
108
+ align-items: center;
97
109
  justify-content: flex-start;
98
110
  }
111
+ /* HORIZONTAL (row) dock — the rail is a VERTICAL line. It anchors on the INLINE axis
112
+ at the nav-separator's X (the seam offset) and overruns on the BLOCK axis past BOTH
113
+ the top and bottom edges: the slot starts `--dock-rail-extend-length` ABOVE the
114
+ dock and its block extent is the dock height + 2× the overrun. The chips fan FLUSH
115
+ above the line (translated above the dock's top edge so they stay ON-SCREEN for a
116
+ viewport-bottom-anchored dock). */
99
117
  .glass-dock-frame[data-has-rail]:not(.vertical) .dock-hairline-slot {
100
- inset-block-end: 100%;
101
- inset-inline-start: 0;
118
+ inset-inline-start: var(--dock-rail-seam-offset, 0px);
102
119
  inset-inline-end: auto;
120
+ inset-block-start: calc(-1 * var(--dock-rail-extend-length));
121
+ inset-block-end: auto;
122
+ /* the line's block extent = dock height + 2× overrun (symmetric, centered). */
123
+ block-size: calc(100% + 2 * var(--dock-rail-extend-length));
124
+ translate: -50% 0;
103
125
  flex-direction: column;
104
- align-items: flex-start;
105
- justify-content: flex-end;
126
+ align-items: center;
127
+ justify-content: flex-start;
106
128
  }
107
129
 
108
- /* AZ.W-RAIL3 — the FLOATING CAROUSEL strip. The hairline element is the wrapper
109
- that carries (a) a VISIBLE connective hairline running from the dock edge down
110
- to the strip (the user's "the hairline must visibly connect") and (b) the
111
- `.dock-hairline-strip` — a flex row of detached glass chips, the floating
112
- carousel that overflows OUTSIDE the dock box (the third-rail redirect: the
113
- contextual facets are no longer in-dock layers; they are the rail's content). */
130
+ /* BA.W-DOCK-SECTIONS — the seam wrapper. It FILLS the slot (which is already the
131
+ dock + 2× overrun, centered on the seam) and carries (a) the `::before` seam line
132
+ running the full extent and (b) the `.dock-hairline-strip` — the flush fan of
133
+ glass chips butted to the line (the macOS fan-out, rectilinear; NOT a 40px-adrift
134
+ carousel). The chips paint OUTSIDE the dock box (the slot is a `.glass-dock-frame`
135
+ sibling — R4 / box INVIOLATE). */
114
136
  .dock-hairline-extend {
115
137
  position: relative;
116
138
  display: flex;
117
139
  gap: 0;
140
+ inline-size: 100%;
141
+ block-size: 100%;
118
142
  }
119
- /* Vertical dock — connector (a horizontal line) then the chip COLUMN, left-to-right
120
- (the carousel rides BESIDE the dock in its trailing gutter). */
143
+ /* Vertical dock — the seam is a horizontal line at the slot's block center; the chip
144
+ ROW fans FLUSH just past the dock's trailing edge, butted to the line. */
121
145
  .dock-hairline-extend.vertical {
122
146
  flex-direction: row;
123
- align-items: flex-start;
147
+ align-items: center;
148
+ justify-content: flex-end;
124
149
  }
125
- /* Horizontal dock — the strip sits ABOVE: stack the chip-row then the connector
126
- bottom-up (column-reverse puts the first child, the connector, at the BOTTOM,
127
- nearest the dock's top edge — so a viewport-bottom-anchored dock keeps its
128
- carousel ON-SCREEN above it). */
150
+ /* Horizontal dock — the seam is a vertical line at the slot's inline center; the chip
151
+ COLUMN/ROW fans FLUSH above the line (the viewport-bottom dock keeps it on-screen). */
129
152
  .dock-hairline-extend.horizontal {
130
- flex-direction: column-reverse;
131
- align-items: flex-start;
153
+ flex-direction: column;
154
+ align-items: center;
155
+ justify-content: flex-start;
156
+ }
157
+ /* BA.W-DOCK-SECTIONS — the chips fan FLUSH at the DOCK's near edge, butted to the
158
+ seam line where it crosses the dock boundary (NOT at the slot's far overrun end,
159
+ which would re-float them adrift). The positioning rides the `<FadingScroll>`
160
+ WRAPPER (`.dock-hairline-fade`), NOT the strip itself — the strip stays the
161
+ in-flow scroll content of FadingScroll (an absolutely-positioned strip would
162
+ escape FadingScroll's flow → its scroll-port collapses to 0 + the mask hides the
163
+ chips). A vertical dock's fade rides the dock's TRAILING (inline-end) edge in its
164
+ gutter; a horizontal dock's fade rides the dock's TOP (block-start) edge. The seam
165
+ line still protrudes past BOTH edges (the `::before` spans the full slot); only the
166
+ CHIP fade butts the dock so it reads as a fan growing FROM the divider. */
167
+ .dock-hairline-fade {
168
+ max-inline-size: var(--dock-rail-strip-max, 60vw);
169
+ }
170
+ .dock-hairline-extend.vertical .dock-hairline-fade {
171
+ position: absolute;
172
+ inset-inline-start: calc(100% - var(--dock-rail-extend-length));
173
+ inset-block-start: 50%;
174
+ translate: 0 -50%;
175
+ }
176
+ .dock-hairline-extend.horizontal .dock-hairline-fade {
177
+ position: absolute;
178
+ inset-block-end: calc(100% - var(--dock-rail-extend-length));
179
+ inset-inline-start: 50%;
180
+ translate: -50% 0;
132
181
  }
133
182
 
134
- /* R3 — the VISIBLE connective hairline. R1 — the `--border-hairline` token pair
135
- (catch-light + under-shadow) + a faint background fallback so the whisper reads
136
- even over a busy backdrop (the user audited "NO VISIBLE HAIRLINE"). The line
137
- overruns by `--dock-rail-extend-length` (the beyond-edge extent); the
138
- `min-{inline,block}-size` floor is the proof:rail-extend R3 overrun witness. */
183
+ /* R3 — the VISIBLE seam line (no longer a one-way connector tether). R1 — the
184
+ `--border-hairline` token pair (catch-light + under-shadow) + a faint background
185
+ fallback so the whisper reads even over a busy backdrop. BA.W-DOCK-SECTIONS: the
186
+ line now RUNS THE FULL SLOT EXTENT (the slot is already dock + 2× overrun,
187
+ centered on the seam), so it crosses THROUGH the dock and protrudes past BOTH
188
+ edges — ONE continuous line, NOT a 40px tether to a detached carousel. The
189
+ `min-{inline,block}-size: var(--dock-rail-extend-length)` floor stays as the
190
+ proof:rail-extend / proof:rail3 R3 overrun witness (the line is always ≥ the
191
+ overrun length); the `100%` width/height makes it the full symmetric seam. The
192
+ tether `margin` is GONE — the chips fan FLUSH against the line (S3). */
139
193
  .dock-hairline-extend::before {
140
194
  content: "";
141
195
  flex: 0 0 auto;
196
+ position: absolute;
142
197
  box-shadow: var(--border-hairline);
143
198
  background: var(--dock-layer-rail-divider, color-mix(in srgb, var(--border) 45%, transparent));
144
199
  }
145
- /* Vertical dock connector — a HORIZONTAL line running right from the dock's
146
- trailing edge to the chip column, seated near the dock's vertical center. */
200
+ /* Vertical dock — a HORIZONTAL line spanning the FULL slot inline extent (dock +
201
+ 2× overrun), seated on the seam Y; the chips fan flush in the trailing gutter. */
147
202
  .dock-hairline-extend.vertical::before {
148
203
  block-size: 1px;
149
- inline-size: var(--dock-rail-extend-length);
204
+ inline-size: 100%;
150
205
  min-inline-size: var(--dock-rail-extend-length);
151
- align-self: center;
152
- margin-inline-end: 0.25rem;
206
+ inset-block-start: 50%;
207
+ inset-inline-start: 0;
208
+ translate: 0 -50%;
153
209
  }
154
- /* Horizontal dock connector — a VERTICAL line running up from the dock's top
155
- edge to the chip row, seated near the dock's leading control center. */
210
+ /* Horizontal dock — a VERTICAL line spanning the FULL slot block extent (dock +
211
+ 2× overrun), seated on the seam X; the chips fan flush above the line. */
156
212
  .dock-hairline-extend.horizontal::before {
157
213
  inline-size: 1px;
158
- block-size: var(--dock-rail-extend-length);
214
+ block-size: 100%;
159
215
  min-block-size: var(--dock-rail-extend-length);
160
- margin-inline-start: calc(var(--dock-control-size, 1.75rem) * 0.5);
161
- margin-block-start: 0.25rem;
216
+ inset-inline-start: 50%;
217
+ inset-block-start: 0;
218
+ translate: -50% 0;
162
219
  }
163
220
 
164
- /* `extent="inset"` keeps the connector flush at the edge (no overrun). */
221
+ /* `extent="inset"` zeroes the overrun (the line stays flush within the dock edges —
222
+ the slot's `inline-size`/`block-size` collapse to the dock box, no protrusion). */
165
223
  .dock-hairline-extend.extent-inset.vertical::before {
166
- inline-size: 0;
167
224
  min-inline-size: 0;
168
225
  }
169
226
  .dock-hairline-extend.extent-inset.horizontal::before {
170
- block-size: 0;
171
227
  min-block-size: 0;
172
228
  }
229
+ .glass-dock-frame[data-has-rail].vertical .dock-hairline-slot:has(.extent-inset) {
230
+ inset-inline-start: 0;
231
+ inline-size: 100%;
232
+ }
233
+ .glass-dock-frame[data-has-rail]:not(.vertical) .dock-hairline-slot:has(.extent-inset) {
234
+ inset-block-start: 0;
235
+ block-size: 100%;
236
+ }
173
237
 
174
- /* The carousel strip — a flex run of chips that SCROLLS when the chips exceed the
175
- budget (the common 2-4-facet case fits with no scroll; a larger set cycles).
176
- `scroll-snap` gives the carousel detent feel. The strip paints OUTSIDE the dock
177
- box (it is in the `.dock-hairline-slot`, a `.glass-dock-frame` sibling — R4). */
238
+ /* BA.W-DOCK-SECTIONS — the FLUSH chip fan. The chips butt the seam line (NO adrift
239
+ tether — the strip's positioning context is the seam wrapper, not a 40px offset).
240
+ The strip keeps `scroll-snap` (the carousel detent) + a single `overflow` axis as
241
+ the proof:rail3 R5 cyclable witness, but the PRIMARY scroll-fade port is the
242
+ `<FadingScroll>` wrapper DockRail composes (S5 — the bespoke overflow strip is the
243
+ inert inner fallback; FadingScroll owns the edge fade, no duplicate mask here). */
178
244
  .dock-hairline-strip {
179
245
  display: flex;
180
- align-items: flex-start;
246
+ align-items: center;
181
247
  gap: var(--dock-rail-strip-gap, 0.375rem);
182
248
  scrollbar-width: none;
183
249
  padding: 0.125rem;
250
+ /* the collapse-retract origin: the chips translate/fade INTO the rail toward the
251
+ seam on collapse, leaving the stub protrusion. The rest state is full-out. */
252
+ transition:
253
+ opacity var(--duration-normal) var(--ease-standard),
254
+ translate var(--duration-normal) var(--dock-resize-spring, var(--ease-standard));
184
255
  }
185
256
  .dock-hairline-strip::-webkit-scrollbar {
186
257
  display: none;
187
258
  }
188
- /* Vertical dock → a COLUMN carousel beside the dock, scrolls on the block axis. */
259
+ /* Vertical dock → a ROW of chips beside the dock, flush to the horizontal seam;
260
+ scrolls on the inline axis when they exceed the budget. */
189
261
  .dock-hairline-extend.vertical .dock-hairline-strip {
190
- flex-direction: column;
191
- max-block-size: var(--dock-rail-strip-max, 60vh);
192
- overflow-y: auto;
193
- overflow-x: visible;
194
- scroll-snap-type: y proximity;
262
+ flex-direction: row;
263
+ max-inline-size: var(--dock-rail-strip-max, 60vw);
264
+ overflow-x: auto;
265
+ overflow-y: visible;
266
+ scroll-snap-type: x proximity;
195
267
  }
196
- /* Horizontal dock → a ROW carousel above the dock, scrolls on the inline axis. */
268
+ /* Horizontal dock → a ROW of chips above the dock, flush to the vertical seam;
269
+ scrolls on the inline axis when they exceed the budget. */
197
270
  .dock-hairline-extend.horizontal .dock-hairline-strip {
198
271
  flex-direction: row;
199
272
  align-items: center;
@@ -206,6 +279,30 @@
206
279
  scroll-snap-align: start;
207
280
  }
208
281
 
282
+ /* BA.W-DOCK-SECTIONS — THE COLLAPSE-RETRACT (the macOS fan-out retraction; the brief
283
+ + R8-6 fan-out half). When the dock collapses the chips fold back behind a slight
284
+ protruding stub at the dock edge: they translate along the seam axis INTO the rail
285
+ and fade, the seam line keeping a SLIGHT protrusion (the rail never detaches — it
286
+ retracts along the seam axis). The stub fraction is `--dock-rail-retract-stub`. */
287
+ .glass-dock.collapsed ~ .dock-hairline-slot .dock-hairline-strip,
288
+ .glass-dock-frame:has(.glass-dock.collapsed) .dock-hairline-strip {
289
+ opacity: 0;
290
+ translate: calc(var(--dock-rail-extend-length) * (1 - var(--dock-rail-retract-stub, 0.35)))
291
+ 0;
292
+ }
293
+ .glass-dock.collapsed ~ .dock-hairline-slot .dock-hairline-extend.horizontal .dock-hairline-strip,
294
+ .glass-dock-frame:has(.glass-dock.collapsed) .dock-hairline-extend.horizontal .dock-hairline-strip {
295
+ translate: 0
296
+ calc(-1 * var(--dock-rail-extend-length) * (1 - var(--dock-rail-retract-stub, 0.35)));
297
+ }
298
+ /* PRM — snap to the retracted state, no travel (the retract must not animate under
299
+ reduced motion; only the discrete opacity/position endpoints apply). */
300
+ @media (prefers-reduced-motion: reduce) {
301
+ .dock-hairline-strip {
302
+ transition: none;
303
+ }
304
+ }
305
+
209
306
  /* Each chip — a detached FLOATING glass pill (R4-1's register, now a label-bearing
210
307
  carousel chip, auto-width). It is chrome OUTSIDE the dock substrate, so it
211
308
  carries its OWN glass plate (the floating-tier fill + edge-light rim + soft
@@ -0,0 +1,59 @@
1
+ /* BA.W-DOCK-SECTIONS — the <DockSection> tripartite grouping recipe + (in .2) the
2
+ * seam fan-out / retract chrome.
3
+ *
4
+ * THE THREE-ZONE GESTALT (R8-9 — "the docks COMPLETELY lack sections"). The
5
+ * <DockSection> chassis groups the dock's already-in-flow controls into a
6
+ * rail-core | divided sections | nav silhouette and demarcates the zones with the
7
+ * existing <DockSeparator> primitive — NO box-inflation (the section grouping is the
8
+ * controls already in the dock plus the divider seams; it does NOT re-mount a
9
+ * <DockLayerGroup> switcher rail, the W-RAIL3 inflator that demanded column height).
10
+ *
11
+ * The chassis is layout-transparent by default: `display: contents` so the zones flow
12
+ * exactly as the bare controls did (the dock box shrink-wraps as before — the
13
+ * box-INVIOLATE contract). The zone wrappers carry the kind marker the recipe reads;
14
+ * they add NO size of their own. On a vertical (column) dock the section runs as a
15
+ * column; on a horizontal (row) dock it runs as a row — inheriting the dock's own
16
+ * flex axis, never establishing a competing one.
17
+ *
18
+ * @import-ed by dock.css into the SAME `@layer components` as the other dock partials.
19
+ */
20
+ @layer components {
21
+ /* The chassis root is layout-transparent — the zones inherit the dock's flex flow
22
+ (row or column) directly, so grouping into sections adds zero box. */
23
+ .dock-section {
24
+ display: contents;
25
+ }
26
+
27
+ /* A grouped zone — a flex run of the consumer's controls along the dock's axis.
28
+ It owns NO intrinsic size beyond `max-content` (the controls' own size), so the
29
+ dock keeps shrink-wrapping to its tight pill (box INVIOLATE). The gap matches the
30
+ dock's inter-control rhythm. */
31
+ .dock-section-zone {
32
+ display: inline-flex;
33
+ align-items: center;
34
+ gap: var(--dock-section-zone-gap, var(--dock-gap, 0.25rem));
35
+ }
36
+
37
+ /* On a vertical (column) dock the zones stack — the section runs down the rail. */
38
+ .glass-dock.vertical .dock-section-zone {
39
+ flex-direction: column;
40
+ align-items: stretch;
41
+ }
42
+
43
+ /* The rail-core zone leads (the home/brand region); the nav zone trails. They are
44
+ the same flex run — the kind marker is for the recipe + a11y, not a layout fork.
45
+ The core (`data-kind="rail-core"`) zone gets a touch more breathing room from the
46
+ first section seam. The CSS token is `--core` (NOT `--rail-core`): the dock-band
47
+ "rail" noun is de-overloaded (AZ.W-DOCK-TAXONOMY); the data-attr carries the
48
+ spec's `rail-core` vocabulary, the class never says "rail". */
49
+ .dock-section-zone--core {
50
+ flex: 0 0 auto;
51
+ }
52
+ .dock-section-zone--nav {
53
+ flex: 0 0 auto;
54
+ }
55
+ .dock-section-zone--section {
56
+ flex: 0 1 auto;
57
+ min-inline-size: 0;
58
+ }
59
+ }
@@ -80,7 +80,39 @@
80
80
  backdrop-filter sample does not escape the dock box (the standard nested-
81
81
  backdrop-cost mitigation; the Button-in-glass-in-dock stack re-samples the
82
82
  already-blurred buffer at each level without it). */
83
- contain: paint;
83
+ /* BA.W-DOCK-GEOMETRY contain:paint AUDIT verdict (a) — the control-plate
84
+ clearance fix (the `--dock-control-safe-inset` painted-plate inset, scope
85
+ 1) + the scroll-port cross-axis un-clip (scope 2) keep the maximal
86
+ hover/active control plate INSIDE the dock padding box: the inset plate is
87
+ centered in its cell (≥1px slack/side at hover), the cell sits flush at the
88
+ dock content edge, and the `--dock-padding-block` (≈6px) padding holds the
89
+ plate ≥7px clear of the `contain: paint` border-box edge on the block axis.
90
+ So the `paint` clip axis is the NON-proximate second clip box (the lane's
91
+ `probe-bottomdock-nocontain.png` forced-root probe proved the inner
92
+ scroll-port box was proximate, not this) and the `paint` axis is RETAINED
93
+ here — the inset + freed cross axis suffice, no containment LIFT on the
94
+ control-plate band. (BB.W-PERF-PRODUCER A′-4 widens the value to
95
+ `contain: layout style paint` — the restyle-scope axes ALONGSIDE the paint
96
+ clip box, see below — but never lifts `paint`.) The π readback
97
+ (W-DOCK-GEOMETRY-DELTA.md) records the live plate-inside-padding margin
98
+ number that binds this verdict. */
99
+ /* BB.W-PERF-PRODUCER A′-4 — the `--dock-morph-t` restyle-scope narrowing.
100
+ The per-frame morph scalar write recomputes the inheriting `calc()` group
101
+ across the dock subtree (dock.css's 10-selector `:where()` consumers); add
102
+ the `layout` + `style` containment axes so a scalar write recomputes
103
+ layout/style WITHIN the dock subtree, not up the document (the value.js A′-4
104
+ ~13fps restyle-cost trace). RECONCILED with the existing axes: `paint`
105
+ (above, the BA.W-DOCK-GEOMETRY clip box) composes — `contain: layout style
106
+ paint` is the union, NEVER `size` (which `container-type: inline-size` carries
107
+ as `inline-size` ONLY on the OPT-IN `containerName` host below; the default
108
+ free-floating dock must stay shrink-to-fit, so `size`/`inline-size` is
109
+ DELIBERATELY excluded here — adding it would re-introduce the 3.3.0 sliver
110
+ regression the §99 comment documents). The morph-axis `overflow: clip`
111
+ (the reveal aperture) + the `.glass-dock-frame` rail-escape are UNAFFECTED:
112
+ `layout`/`style` containment scopes RECALC, it does not establish a paint
113
+ clip beyond the already-present `paint` axis. The `DOCK_SPRING` clock is
114
+ byte-fenced (the value.js letter) — this is restyle COST, not a re-tune. */
115
+ contain: layout style paint;
84
116
  display: inline-flex;
85
117
  align-items: center;
86
118
  /* AW.W1 — the dock does NOT establish a default inline-size container.
@@ -184,17 +216,33 @@
184
216
  scrolls — the scroll port only engages on real over-cap content. The
185
217
  block-axis morph clip stays `data-morphing`-gated above; this is the
186
218
  AT-REST port only. Consumers set `--dock-max-block-size` per-instance to
187
- anchor the column to the viewport without re-deriving the scroll plumbing. */
188
- .glass-dock.vertical.always-expanded:not([data-morphing]),
189
- .glass-dock.vertical.expanded:not([data-morphing]) {
219
+ anchor the column to the viewport without re-deriving the scroll plumbing.
220
+
221
+ BA.W-DOCK-GEOMETRY (DC-1) — the port is now GATED behind the `dock-scroll-y`
222
+ opt-in (`overflow="scroll"`), NOT unconditional on every `.vertical.
223
+ always-expanded`. THE ROOT: `overflow-y: auto` is a scroll value, and CSS
224
+ Overflow §3 FORCES the sibling `overflow-x: visible` to COMPUTE to `auto` —
225
+ so the F6 pin never survived, and EVERY at-rest vertical dock (even a
226
+ fit-content shell that never scrolls) paid the cross-axis inline clip,
227
+ slicing a control's inset plate left/right (the live π readback measured
228
+ `overflow-x: auto` on the grow-to-fit SidebarDock). A vertical dock that
229
+ genuinely needs the cap+scroll opts IN via `overflow="scroll"` (the
230
+ `.dock-scroll-y` port in overflow.css, the SAME plumbing the F6 comment names);
231
+ a grow-to-fit vertical shell stays `overflow: visible` (line 186) on BOTH axes
232
+ so its inset control plate paints past the track. The fit-content shell pays
233
+ NO cross-axis clip for zero scroll benefit — the goal criterion's "the
234
+ scroll-port cross-axis clip no longer fires on a fit-content shell that never
235
+ scrolls", honored at the geometry root. */
236
+ .glass-dock.vertical.dock-scroll-y.always-expanded:not([data-morphing]),
237
+ .glass-dock.vertical.dock-scroll-y.expanded:not([data-morphing]) {
190
238
  overflow-x: visible;
191
239
  overflow-y: auto;
192
240
  scrollbar-width: none;
193
241
  overscroll-behavior-y: contain;
194
242
  }
195
243
 
196
- .glass-dock.vertical.always-expanded:not([data-morphing])::-webkit-scrollbar,
197
- .glass-dock.vertical.expanded:not([data-morphing])::-webkit-scrollbar {
244
+ .glass-dock.vertical.dock-scroll-y.always-expanded:not([data-morphing])::-webkit-scrollbar,
245
+ .glass-dock.vertical.dock-scroll-y.expanded:not([data-morphing])::-webkit-scrollbar {
198
246
  display: none;
199
247
  }
200
248
 
@@ -244,16 +292,19 @@
244
292
  shell above; the cross axis stays visible there. */
245
293
  padding: var(--dock-padding-block, 0.375rem);
246
294
  border-radius: var(--radius-dock);
247
- /* AX.W01 — a vertical rail is ALWAYS-EXPANDED (no collapse↔expand morph),
248
- so its root padding/background/border-color never morph; the prior
249
- `padding/background/border-color var(--dock-motion-*)` transition arms
250
- are DELETED (a residual root CSS-transition on the morph-chrome props is
251
- the second-clock smell the single-scalar rebuild retires). The block-axis
252
- (height) morph is owned by the inner `.dock-layer-stack` / DockLayerGroup
253
- via the `--dock-morph-t` scalar (the size `calc()` above), never a CSS
254
- transition here. KEPT: the DECORATIVE hover-scale + press-squish (the
255
- individual `scale`/`transform`) and the box-shadow fade — these are
256
- interaction polish on the static rail, NOT the morph. */
295
+ /* BB.W-DOCK-MORPH-FAMILY (f) — the stale "a vertical rail is ALWAYS-EXPANDED
296
+ (no collapse↔expand morph)" assumption is RETIRED (it was false since
297
+ vertical-collapse shipped: `alwaysExpanded` defaults FALSE, so a vertical
298
+ dock genuinely collapses its `block-size`). The vertical plate's
299
+ bg/border/padding/radius now MORPH on the SAME `--dock-expand-t` scalar
300
+ the horizontal chrome rides (the morph.css `.glass-dock.vertical` interp +
301
+ padding axis-inverse + the radius arm below) — the chrome follows the
302
+ box-size morph, no discrete snap. NO root CSS-transition on the morph-
303
+ chrome props is re-added (a `transition: padding/background/border-color`
304
+ arm is the second-clock smell the single-scalar rebuild forbids — the
305
+ `--dock-expand-t` interp is the single authority). KEPT: the DECORATIVE
306
+ hover-scale + press-squish (the individual `scale`/`transform`) and the
307
+ box-shadow fade — interaction polish on the rail, NOT the morph chrome. */
257
308
  transition:
258
309
  box-shadow var(--dock-motion-standard),
259
310
  transform var(--dock-motion-resize),
@@ -289,6 +340,22 @@
289
340
  border-radius: var(--radius-xl);
290
341
  }
291
342
 
343
+ /* BB.W-DOCK-MORPH-FAMILY (f) — the VERTICAL big-dock CARD radius MORPHS on the
344
+ SAME `--dock-expand-t` scalar the horizontal `.shape-card` rides (the radius
345
+ arm of the vertical chrome un-gate; it lives in shell.css beside the horizontal
346
+ arm, not morph.css). `--radius-pill` at expand-t 0 (collapsed), the finite
347
+ `--dock-card-radius` at expand-t 1 (expanded) — the radius follows the box-size
348
+ block morph, no discrete snap. The static `.shape-pill`/`.shape-rounded` rest
349
+ radii above are the rest endpoints for those shapes; this is the card shape's
350
+ interpolated radius (mirroring the horizontal `:not(.vertical).shape-card`). */
351
+ .glass-dock.vertical.shape-card {
352
+ border-radius: calc(
353
+ var(--radius-pill) +
354
+ (var(--dock-card-radius) - var(--radius-pill)) *
355
+ var(--dock-expand-t, 1)
356
+ );
357
+ }
358
+
292
359
  /* AW.W3b — horizontal-root shape rules. The `shape-*` class once bound ONLY under
293
360
  the vertical surface; on a horizontal dock the prop silently no-op'd (the root
294
361
  hardwired `--radius-dock` = `--radius-pill`). These rules close that
@@ -20,10 +20,20 @@
20
20
  scale: 1;
21
21
  width: var(--dock-control-size, var(--size-icon-btn));
22
22
  height: var(--dock-control-size, var(--size-icon-btn));
23
- padding: var(--dock-icon-padding, 0);
23
+ /* BA.W-DOCK-GEOMETRY — the control-plate clearance inset (DC-2). The HIT
24
+ BOX stays the full `--dock-control-size` (the WCAG 2.5.5 touch floor on
25
+ the CELL), while the inset padding + `background-clip: content-box`
26
+ insets the PAINTED plate within it: the hover/active fill paints only the
27
+ content box (the cell minus the inset on every side), so the maximal
28
+ hover (×1.1) / active circle clears the cross-axis clip edge with ≥1px
29
+ margin — the lozenge dies at the plate diameter, not at the clip box. The
30
+ inset falls back to the prior `--dock-icon-padding` (0) when no dock
31
+ ancestor sets `--dock-control-safe-inset` (a standalone icon button). */
32
+ padding: var(--dock-icon-padding, var(--dock-control-safe-inset, 0));
24
33
  cursor: pointer;
25
34
  border: none;
26
35
  background: transparent;
36
+ background-clip: content-box;
27
37
  border-radius: var(--dock-control-radius, var(--radius-pill));
28
38
  /* Foreground base routes through `--dock-fg-on-aurora` (defaults to
29
39
  `--foreground`, byte-identical to before) so a consumer floating the