@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,500 +0,0 @@
1
- /* dock/shell.css — the `.glass-dock` structural skeleton (AX.W06 carve).
2
- *
3
- * Carved from the dock.css god-module (slice 25). This partial owns the dock's
4
- * STATIC structural surface: the `.glass-dock` root + the W02 single-axis
5
- * `overflow: clip` morph aperture, the paper-grain `::after`, the vertical-root
6
- * column layout, the shape/variant plates (rail · instrument-strip · the
7
- * horizontal shape-rounded/card + the W56 squircle), the position helpers, and
8
- * the W45 `#persistent` / vertical three-region body. The dynamic single-scalar
9
- * morph chrome lives in dock/morph.css; the density × `--dock-scale` cascade in
10
- * dock/density.css; the layer crossfade/hit-test in dock/layers.css.
11
- *
12
- * @import-ed by dock.css in cascade order, in the SAME `@layer components` — the
13
- * carve is isomorphic (same layer, same source order → ZERO visual delta). */
14
-
15
- @layer components {
16
- .glass-dock {
17
- /* BG.W-GLASS-BLUR-PEER — the dock's backdrop re-points onto the SHARED
18
- `--glass-blur-resting` (the unified 8px material), so the dock reads the
19
- SAME `blur(8px)` RADIUS LEG as the glass button (`.btn-glass`), the
20
- default-Card, and the menu-row — ONE liquid-glass material (the
21
- resolved-radius peer lock, proof:glass-cal). `--glass-blur-resting`
22
- carries a `saturate()` companion (it concentrates light like every
23
- other tier — the flat-slab gray-read root stays closed, proof:no-gray
24
- dock witnesses follow this source), and it composes `--glass-level` so
25
- the `prefers-reduced-transparency` → `--glass-level: 0` a11y bracket
26
- firms the dock to `blur(0)` unchanged. The `--glass-blur-dock` tier is
27
- RETIRED (BG.W-CLOSEFIX-9SITE — the chain orphaned by this peer re-point);
28
- the dock reads the unified resting material, there is no dock-own rung. */
29
- /* BG.W-DOCK-LEGIBILITY-RECAL — re-anchor the dock's saturate at 1.2 now the
30
- UNIFIED PLATE TINT is the PRIMARY anti-gray. HEAD had the dock riding the
31
- content-tier `--glass-saturate-resting` (1.4) through the resting peer — the
32
- C-GRAY "over-corrected to metallic" saturate the M4 revert condemns (real
33
- liquid glass concentrates light ~1.1-1.25×). The plate-tint self-engage
34
- (dock/adaptive-legibility.css) is now the PRIMARY anti-gray device, so saturate
35
- no longer carries the whole load and drops off the metallic ceiling to the calm
36
- 1.2 SECONDARY floor.
37
-
38
- THE SUBSTITUTION-VS-INHERITANCE RETUNE PATH (the recurring trap, honoured): the
39
- `:root` `--glass-blur-resting` composes its `saturate(var(--glass-saturate-
40
- resting))` AT `:root` — the inner `var()` is fixed at 1.4 there, so re-declaring
41
- the `--glass-saturate-resting` KNOB on a descendant does NOT re-resolve the
42
- inherited composed blur (the exact --glass-bg-{tier}/--glass-opacity-{tier}
43
- documented trap). So the dock RE-DECLARES the COMPOSED `--glass-blur-resting`
44
- here — the SAME recipe (the `--glass-blur-resting-radius` 8px primitive ×
45
- `--glass-level`, so the `prefers-reduced-transparency` → `--glass-level: 0`
46
- bracket firms to `blur(0)` unchanged AND the proof:glass-cal 8px PEER LOCK holds
47
- by construction — the radius leg is byte-identical), with the pinned
48
- `saturate(1.2)`. `--dock-surface-blur: var(--glass-blur-resting)` reads the
49
- re-composed dock-scoped value; the content-tier resting plate keeps `:root`'s
50
- 1.4. The DARK dock read-weight is PRESERVED by the `.dark .glass-dock` arm below
51
- (the 1.30 glow — the light 1.2 anchor never bleeds into the luminous-dark
52
- register). Machine-locked by proof:no-gray's dock-saturate-anchored-recal
53
- witnesses. */
54
- --glass-blur-resting: blur(calc(var(--glass-blur-resting-radius) * var(--glass-level))) saturate(1.2);
55
- --dock-surface-blur: var(--glass-blur-resting);
56
- /* J.W3.C — vertical-rail max-block + horizontal max-inline caps
57
- live as semantic tokens (defaults in `tokens.css`). When
58
- content exceeds the cap, the appropriate axis container
59
- scrolls with a mask-fade. Consumers override per-instance by
60
- setting `--dock-max-block-size` / `--dock-max-inline-size`
61
- on a `.glass-dock` directly. */
62
- --dock-separator-height: calc(var(--dock-h, var(--size-icon-btn)) * 0.5);
63
- --dock-collapsed-hover-scale: var(--scale-hover-dock);
64
- /* AW.W3 — the spring-keyed child stagger knobs. `--dock-stagger-window-size`
65
- is the fraction of the morph each child reveals over. Consumers retune the
66
- cascade feel per instance.
67
-
68
- AX.W02 — `--dock-stagger-step` is the per-child onset BEAT: each
69
- successive control's reveal starts this fraction-of-morph later than the
70
- one before it, so the row fills outer→in. ONE token × the child index
71
- replaces the hand-typed 0.08/0.16/0.24/0.32/0.4 onset ladder — the onset
72
- is `step × (childIndex − 1)`, capped (the cap below). 0.08 = ~5% of the
73
- ~0.32s morph between items — inside Emil Kowalski's 30–60ms stagger band,
74
- never the >100ms "slideshow" register. The onset rides the NORMALIZED
75
- morph progress (`--dock-expand-t`), NOT a wall-clock timer, so a fast
76
- flick and a slow hover-open both choreograph correctly and an interrupted
77
- morph orphans no timers.
78
-
79
- AX.W45 DK1/DK7 — the window NARROWED 0.55 → 0.4. The per-child onset caps
80
- at `step × 5 = 0.40` (child 6+), so the LAST detail child used to finish at
81
- `0.40 + 0.55 = 0.95` of the morph — it barely appeared until 95% through
82
- (the "shrunken icon does not appear for a while" tail). Tightening the
83
- window to 0.4 lands the last child at `0.40 + 0.4 = 0.80` (the iOS front-
84
- loaded register: stagger the EXPANDING detail, never the persistent/summary
85
- glyph). The step (0.08, Kowalski's band) is KEPT — it is the window, not the
86
- beat, that was too wide. The summary/persistent glyph is front-loaded
87
- structurally (onset 0, scalar-keyed below). */
88
- --dock-stagger-window-size: 0.4;
89
- --dock-stagger-step: 0.08;
90
- /* AW.W3b — big-dock tokens. `--dock-card-radius` is the finite card-shell
91
- radius (default --radius-dock-card = --radius-3xl, density-scaled
92
- below); `--dock-tile-min` is the grid tile minimum (auto-fill track
93
- floor). Both are density-scaled (compact tighter, spacious looser) — the
94
- card radius + tile size ride the density cascade, never magic numbers. */
95
- --dock-card-radius: var(--radius-dock-card);
96
- --dock-tile-min: 4.5rem;
97
- /* Individual-transform identity base (AQ.W3 §W3.2). `scale: 1` at rest
98
- mints the stacking context once so a portaled popover over `--z-dock`
99
- stays above the dock during a hover scale (the load-bearing
100
- stacking-context guarantee). Covers every dock scale site. */
101
- scale: 1;
102
- position: relative;
103
- /* AZ.W-ADAPTIVE-AUTO Arm 1 — the dock self-darkens over light backdrops by
104
- default via the UNCONDITIONAL `:where(.glass-dock)` self-engage rule in
105
- dock/morph.css (mirroring the overlay band's `ladder.css:169`): it re-points
106
- the inheriting `--glass-tint-source`/`--glass-tint-strength` directly on the
107
- dock root, so the shell + chassis + held/open tiers darken toward warm-ink
108
- with NO consumer opt-in (a dock floats over arbitrary — frequently light —
109
- page content). `--glass-backdrop: light` is KEPT here so a consumer's
110
- DESCENDANT nested-glass inside the dock also reads the bright bucket via the
111
- ancestor-querying `@container` block in dock/morph.css (CSS style queries
112
- never self-match, so this declaration alone is inert for the dock's OWN
113
- plate — the self-engage rule, not this token, darkens the dock). */
114
- --glass-backdrop: light;
115
- /* AY.W-A11Y-PERF O-4 — paint containment so the maximal-glass nested
116
- backdrop-filter sample does not escape the dock box (the standard nested-
117
- backdrop-cost mitigation; the Button-in-glass-in-dock stack re-samples the
118
- already-blurred buffer at each level without it). */
119
- /* BA.W-DOCK-GEOMETRY contain:paint AUDIT verdict (a) — the control-plate
120
- clearance fix (the `--dock-control-safe-inset` painted-plate inset, scope
121
- 1) + the scroll-port cross-axis un-clip (scope 2) keep the maximal
122
- hover/active control plate INSIDE the dock padding box: the inset plate is
123
- centered in its cell (≥1px slack/side at hover), the cell sits flush at the
124
- dock content edge, and the `--dock-padding-block` (≈6px) padding holds the
125
- plate ≥7px clear of the `contain: paint` border-box edge on the block axis.
126
- So the `paint` clip axis is the NON-proximate second clip box (the lane's
127
- `probe-bottomdock-nocontain.png` forced-root probe proved the inner
128
- scroll-port box was proximate, not this) and the `paint` axis is RETAINED
129
- here — the inset + freed cross axis suffice, no containment LIFT on the
130
- control-plate band. (BB.W-PERF-PRODUCER A′-4 widens the value to
131
- `contain: layout style paint` — the restyle-scope axes ALONGSIDE the paint
132
- clip box, see below — but never lifts `paint`.) The π readback
133
- (W-DOCK-GEOMETRY-DELTA.md) records the live plate-inside-padding margin
134
- number that binds this verdict. */
135
- /* BB.W-PERF-PRODUCER A′-4 — the `--dock-morph-t` restyle-scope narrowing.
136
- The per-frame morph scalar write recomputes the inheriting `calc()` group
137
- across the dock subtree (dock.css's 10-selector `:where()` consumers); add
138
- the `layout` + `style` containment axes so a scalar write recomputes
139
- layout/style WITHIN the dock subtree, not up the document (the value.js A′-4
140
- ~13fps restyle-cost trace). RECONCILED with the existing axes: `paint`
141
- (above, the BA.W-DOCK-GEOMETRY clip box) composes — `contain: layout style
142
- paint` is the union, NEVER `size` (which `container-type: inline-size` carries
143
- as `inline-size` ONLY on the OPT-IN `containerName` host below; the default
144
- free-floating dock must stay shrink-to-fit, so `size`/`inline-size` is
145
- DELIBERATELY excluded here — adding it would re-introduce the 3.3.0 sliver
146
- regression the §99 comment documents). `layout`/`style` containment scopes
147
- RECALC, it does not establish a paint clip — the L0 plate owns the clip
148
- (W-DOCK-SPINE) and the fan/menu surfaces are TOP-LAYER popovers (W-DOCK-ESCAPE;
149
- the `.glass-dock-frame` rail-escape retired). The `DOCK_SPRING` clock is
150
- byte-fenced (the value.js letter) — this is restyle COST, not a re-tune. */
151
- /* BI.W-DOCK-SPINE — the `paint` axis is DROPPED from `contain` (the triple-identity
152
- clip root). `.glass-dock` is NO LONGER the clip aperture: the L0 `.dock-plate`
153
- (dock/dock.css) owns the visible extent via `clip-path` off `--dock-t`, and the
154
- L1 control run is `overflow: visible`, so a hover plate at the dock edge overhangs
155
- UN-CLIPPED (UF-C6/C7 unrepresentable). `contain: layout style` is KEPT (NO
156
- `paint` — the A′-4 ~13fps restyle-scope for the transitional per-frame
157
- `--dock-morph-t` subtree write, WITHOUT a paint clip that would re-clip the
158
- controls). `contain: layout` establishes a containing block + isolates internal
159
- layout but does NOT clip painting, so the controls still overhang freely. When
160
- W-DOCK-SPRING-UNIFY retires `--dock-morph-t`, the plate scalar's own
161
- `inherits: false` is the sole restyle-scope + `contain` can drop entirely. */
162
- contain: layout style;
163
- display: inline-flex;
164
- align-items: center;
165
- /* AW.W1 — the dock does NOT establish a default inline-size container.
166
- `container-type: inline-size` applies `contain: inline-size`, which
167
- makes an element's inline size INDEPENDENT of its contents — fatally
168
- incompatible with a shrink-to-fit pill: under it `.glass-dock` cannot
169
- size to its content and collapses to its padding floor (~19px) with the
170
- active layer overflowing (the 3.3.0 regression — every horizontal dock,
171
- collapsed AND always-expanded, rendered as a sliver). The `dock`-named
172
- container is now OPT-IN via the `containerName` prop: a consumer
173
- embedding the dock in a width-CONSTRAINED host (a 320px sidebar) sets
174
- `containerName="dock"` to get the descendant container-query reads (the
175
- audacious-label compression below), trading shrink-to-fit for the
176
- host-constrained width it already has there. The default free-floating
177
- dock shrink-wraps to its content (AV.W16 TW3 made this a default and
178
- silently broke dock sizing for the common case). */
179
- /* BC.W-DOCK-ARBITRARY — the base corner is the shape register's token lerp (dock/shape.css, the single radius authority generalizing the prior static). */
180
- white-space: nowrap;
181
- max-inline-size: var(--dock-max-inline-size);
182
- padding: var(--dock-padding-block, 0.375rem) var(--dock-padding-inline, 0.5rem);
183
- /* BI.W-DOCK-SPINE — the GLASS SURFACE (background + backdrop-filter + border)
184
- MOVED off `.glass-dock` onto the L0 `.dock-plate` (dock/dock.css), which owns
185
- the ONE backdrop lens + its `clip-path` visible-extent morph. The box is now
186
- STRUCTURAL (layout + the drop-shadow elevation below); the plate is the surface.
187
- The `--dock-surface-blur` + `--glass-tint-*` tokens re-pointed on `.glass-dock`
188
- by the shell + adaptive-legibility partials INHERIT to the plate, so the AZ
189
- self-engage darken + the dark-arm glow reach it with ZERO re-author. The
190
- collapsed↔expanded surface INTERP is retargeted onto `.dock-plate` in
191
- morph.css. No `backdrop-filter` on the box → ONE lens, no double-blur. */
192
- /* BC.W-BLACK-BAR D2 — the dock rim is the DIRECTIONAL pair (bright catch-light
193
- on the TOP edge, faint warm under-shadow on the BOTTOM — glass-fx.css), the
194
- leading inset layers of the dock shadow stack. RETIRES the omnidirectional
195
- `--glass-edge-light` ring that fought the (now ≤4% α) `--glass-border-dock`
196
- perimeter; the navigation band reads its rim from the SAME corrected token
197
- source as cards/dialogs (no dock-local dark rim re-paste). */
198
- box-shadow: var(--glass-rim-top), var(--glass-rim-bottom), var(--shadow-dock-override, var(--shadow-dock));
199
- }
200
-
201
- /* BG.W-DOCK-LEGIBILITY-RECAL — PRESERVE the dark-dock read-weight. The light dock
202
- re-composes its blur at saturate 1.2 (the calm secondary anti-gray floor above); the
203
- LUMINOUS-DARK register earns a higher saturate glow + the luminosity brightness lift
204
- (the W-DARK-MATERIAL "dark glass glows where light passes" model), so the dark dock
205
- RE-DECLARES the composed `--glass-blur-resting` back to the dark `:root` recipe
206
- (`saturate(1.30) brightness(1.14)`) — otherwise the light `.glass-dock` re-compose
207
- (which wins over the dark `:root` value by cascade order) would strip the dark glow
208
- to 1.2. This is the plain per-mode pair, the house idiom; the SAME radius primitive
209
- (8px × `--glass-level`, peer-lock byte-identical). The dark content-tier resting
210
- plate keeps the dark `:root` value untouched (this override is `.glass-dock`-scoped). */
211
- .dark .glass-dock {
212
- --glass-blur-resting: blur(calc(var(--glass-blur-resting-radius) * var(--glass-level))) saturate(1.30) brightness(1.14);
213
- }
214
-
215
- /* AW.W2 — the box IS the reveal aperture (clip-reveal one-clock morph).
216
- Migrated from `overflow: hidden` to a SINGLE-AXIS `overflow: clip` on the
217
- MORPH axis (horizontal clips X / visible Y; vertical clips Y / visible X),
218
- gated on a `data-morphing` attribute the driver owns (set at gesture START,
219
- cleared on SETTLE). The clip PERSISTS through the morph — content is laid
220
- out ONCE at its natural size behind the aperture and the growing/shrinking
221
- box uncovers it, never spills it — and lifts to `visible` only at REST
222
- expanded (so grown content + the focus ring paint past the box). The
223
- prior `.expanded { overflow: visible }` (bound synchronously to
224
- `visualExpanded`) lifted the clip at frame 0, leaving no aperture to reveal
225
- through; the `:not([data-morphing])` guard holds the clip for the whole
226
- gesture and lifts it on the final paint.
227
-
228
- `overflow: clip` is PAINT-ONLY (not a scroll container): it never
229
- participates in `scrollIntoView`/scroll-anchoring, cannot be a
230
- scroll-driven-animation `scroller`, and drops the `min-width:0` scroll-box
231
- dance for the non-scroll shell. The cross axis is ALWAYS explicitly
232
- `visible` (the MDN single-axis-clip-degrades-to-hidden caveat). The
233
- legitimate scroll ports (`.dock-scroll-{x,y}`, `overflow: auto`) STAY
234
- `auto` — they are NOT migrated. AT.W7-dock-a's orthogonality holds: the
235
- `containerName` opt-in does not touch the clip. */
236
- /* BI.W-DOCK-SPINE — the box `overflow: clip` MORPH APERTURE is DELETED (all four
237
- `:not(.vertical)`/`.vertical` × `[data-morphing]` aperture rules + the rest-expanded
238
- lift). `.glass-dock` NEVER clips its descendants now: the L0 `.dock-plate` owns the
239
- visible-extent morph via `clip-path` off `--dock-t`, and the L1 control run is
240
- `overflow: visible` BOTH axes — a hover/press plate at the dock edge overhangs
241
- UN-CLIPPED (UF-C6/C7). The legitimate vertical SCROLL port (`overflow-y: auto`)
242
- stays below; its cross axis is `visible` (the `overflow-clip-margin` band-aid is
243
- gone — the plate is the clip). During the transitional window (until
244
- W-DOCK-SPRING-UNIFY re-points the plate scalar) the box-size morph still drives the
245
- extent + the plate clip is a corner-safe no-op; a mid-morph content spill is the
246
- tolerated transitional state W-DOCK-CROSSFADE's content-wrapper clip closes. */
247
- .glass-dock {
248
- overflow: visible;
249
- }
250
-
251
- /* AX.W04 F6 — the vertical-dock max-block-size + internal-scroll CONTRACT.
252
- A vertical rail caps at `--dock-max-block-size` (the `.vertical` rule), but
253
- at rest the `overflow: visible` above let over-cap content SPILL — forcing a
254
- consumer (bbnf-buddy ToolsLayer) to hand-anchor a max-height + scroll. Ship
255
- the contract here: at rest a vertical column scrolls its OWN block axis when
256
- content exceeds the cap. When content fits under the cap (`height:auto` <
257
- cap) nothing scrolls — the scroll port only engages on real over-cap
258
- content. The block-axis morph clip stays `data-morphing`-gated above; this
259
- is the AT-REST port only. Consumers set `--dock-max-block-size` per-instance
260
- to anchor the column to the viewport without re-deriving the scroll plumbing.
261
-
262
- BG.W-DOCK-CAP-SCROLL-FADE — a capped vertical axis is INTRINSICALLY a scroll
263
- axis (the `dock-scroll-y` opt-in RETIRED): this rule fires UNCONDITIONALLY on
264
- every at-rest vertical dock, so a SidebarDock that hits `--dock-max-block-
265
- size` at 1280×600 scrolls its trailing utility controls into reach with NO
266
- prop change (the #12 "dock scrolling broken" root fix). The CROSS (inline)
267
- axis is `overflow-x: visible` — post-SPINE the L0 plate owns the clip, so
268
- the scroll port's cross axis never clips the control's inset hover plate
269
- (the `overflow-clip-margin` band-aid retired with the aperture, W-DOCK-SPINE).
270
- The geometric inset (the 80%-of-cell plate) is the lozenge guard. The soft
271
- edge-fade rides the ONE FadingScroll mask seam (the `--fade-start`/
272
- `--fade-end` customs driven off `scroll(self block)` in the `@supports`
273
- block below); at rest both are 0px → SHARP. NOT PRM-gated (a legibility
274
- cue). */
275
- .glass-dock.vertical.always-expanded:not([data-morphing]),
276
- .glass-dock.vertical.expanded:not([data-morphing]) {
277
- /* BI.W-DOCK-SPINE — the cross-axis `overflow-x: clip` + `overflow-clip-margin`
278
- band-aid is GONE (the shell.css:294 aperture the plate retires): the L0 plate
279
- owns the clip, so the scroll port's cross axis is `visible`. The block-axis
280
- `overflow-y: auto` scroll port stays (a capped vertical column scrolls). */
281
- overflow-x: visible;
282
- overflow-y: auto;
283
- scrollbar-width: none;
284
- overscroll-behavior-y: contain;
285
- }
286
-
287
- .glass-dock.vertical.always-expanded:not([data-morphing])::-webkit-scrollbar,
288
- .glass-dock.vertical.expanded:not([data-morphing])::-webkit-scrollbar {
289
- display: none;
290
- }
291
-
292
- /* BG.W-DOCK-CAP-SCROLL-FADE — the liquid-weight soft edge on the vertical
293
- scroll port: the `mask-image` reads the `--fade-start`/`--fade-end` customs
294
- the SAME `gl-fade-start-in`/`gl-fade-end-out` keyframes `<FadingScroll>`
295
- uses drive off the `scroll(self block)` timeline (reached by name — ZERO
296
- new recipe). The `@supports (animation-timeline: scroll())` co-gate was
297
- COLLAPSED at BG.NF.2 W-LEGACY-LADDER-COLLAPSE — scroll-driven animations
298
- are Baseline on the target set (the Safari-26 `scroll()` floor RATIFIED by
299
- 4.7's dual-engine paint PASS, WebKit 26.4 driving the ScrollTimelines
300
- live), so this is the un-gated mechanism. NOT PRM-gated (a legibility
301
- cue). */
302
- .glass-dock.vertical.always-expanded:not([data-morphing]),
303
- .glass-dock.vertical.expanded:not([data-morphing]) {
304
- mask-image: linear-gradient(
305
- to bottom,
306
- transparent 0,
307
- black var(--fade-start, 0px),
308
- black calc(100% - var(--fade-end, 0px)),
309
- transparent 100%
310
- );
311
- animation:
312
- gl-fade-start-in linear both,
313
- gl-fade-end-out linear both;
314
- animation-timeline: scroll(self block), scroll(self block);
315
- animation-range:
316
- 0 var(--fade-scroll-width),
317
- calc(100% - var(--fade-scroll-width)) 100%;
318
- }
319
-
320
- /* BI.W-DOCK-SPINE — the paper-grain `::after` MOVED onto `.dock-plate::after`
321
- (dock/dock.css): the grain belongs on the glass SURFACE, which is the plate now.
322
- Same recipe (the `--paper-clean-texture` overlay + the `.dark` soft-light arm),
323
- byte-identical. */
324
-
325
- /* Vertical rails grow-to-fit then clamp at `--dock-max-block-size` (the
326
- AX.W04 F6 contract). At rest a capped column scrolls its OWN block axis
327
- internally (the `.vertical.always-expanded:not([data-morphing])` port above)
328
- so a consumer setting `--dock-max-block-size` gets a viewport-anchored
329
- scrollable tool palette without hand-anchoring it. `overflow="wrap"` is
330
- horizontal-only (the class is not emitted for a vertical orientation); a
331
- vertical column's natural overflow story is this cap + internal scroll. No
332
- edge-fade mask — the scroll is scrollbar-hidden, not feathered. */
333
- .glass-dock.vertical {
334
- display: inline-flex;
335
- flex-direction: column;
336
- align-items: stretch;
337
- justify-content: flex-start;
338
- /* AX.W45 D13-b — H/V PROPORTION PARITY. The hardcoded `gap: 0.25rem` + the
339
- density-blind `--dock-vertical-padding` override are DELETED. The vertical
340
- dock now reads the SAME `--dock-layer-gap` / `--dock-padding-*` density
341
- cascade the horizontal dock tunes, so `size="lg"` paints a LARGER
342
- gap than `compact` on BOTH axes (the density axis was dead on the vertical
343
- dock). ONE token ladder, both orientations; the `--dock-scale` multiplier
344
- threads it for free (the cascade is `calc(* --dock-scale)`-keyed). */
345
- gap: var(--dock-layer-gap, 0.375rem);
346
- white-space: normal;
347
- width: auto;
348
- height: auto;
349
- max-block-size: var(--dock-max-block-size);
350
- /* overflow on the block (morph) axis is the data-morphing-gated clip
351
- shell above; the cross axis stays visible there. */
352
- padding: var(--dock-padding-block, 0.375rem);
353
- border-radius: var(--radius-dock);
354
- /* BB.W-DOCK-MORPH-FAMILY (f) — the stale "a vertical rail is ALWAYS-EXPANDED
355
- (no collapse↔expand morph)" assumption is RETIRED (it was false since
356
- vertical-collapse shipped: `alwaysExpanded` defaults FALSE, so a vertical
357
- dock genuinely collapses its `block-size`). The vertical plate's
358
- bg/border/padding/radius now MORPH on the SAME `--dock-expand-t` scalar
359
- the horizontal chrome rides (the morph.css `.glass-dock.vertical` interp +
360
- padding axis-inverse + the radius arm below) — the chrome follows the
361
- box-size morph, no discrete snap. NO root CSS-transition on the morph-
362
- chrome props is re-added (a `transition: padding/background/border-color`
363
- arm is the second-clock smell the single-scalar rebuild forbids — the
364
- `--dock-expand-t` interp is the single authority). KEPT: the DECORATIVE
365
- hover-scale + press-squish (the individual `scale`/`transform`) and the
366
- box-shadow fade — interaction polish on the rail, NOT the morph chrome. */
367
- transition:
368
- box-shadow var(--dock-motion-standard),
369
- transform var(--dock-motion-resize),
370
- scale var(--dock-motion-resize);
371
- }
372
-
373
- /* BC.W-DOCK-ENGINE move 2 — the rail polish transition is COMPOSITOR-PROMOTED
374
- only while its hover/press/held state is ARMED (the transform/scale legs ride
375
- the compositor channel; `will-change: transform` hints the layer for the
376
- gesture). NEVER a resting `will-change` (a permanent promotion pins a wasted
377
- compositor layer at rest — the motion-canon P5 no-resting-promotion floor):
378
- the hint lives on the `:hover`/`:active`/`[data-held]` armed selectors and is
379
- cleared the instant the state releases. PRM keeps no pinned layer either — the
380
- universal a11y carve strips the spatial transform under reduce, and a
381
- non-animating rail needs no promotion. */
382
- .glass-dock.vertical:hover,
383
- .glass-dock.vertical:active,
384
- .glass-dock.vertical[data-held] {
385
- will-change: transform;
386
- }
387
-
388
- /* AZ.W-DOCK-TAXONOMY — the vertical dock's surface plate (the prior
389
- `.variant-rail` block; "rail-ness" is now `orientation="vertical"` + a
390
- shape/density choice, not a variant). */
391
- .glass-dock.vertical {
392
- padding: var(--dock-rail-padding, var(--dock-padding-inline, 0.5rem));
393
- }
394
-
395
- /* BI.W-DOCK-SPINE — the vertical dock's SURFACE (background + border-color) retargeted
396
- onto the L0 `.dock-plate` (the box is structural; the plate is the glass). The
397
- AZ.W-ADAPTIVE-AUTO element-level oklab tint composes the inheriting
398
- `--glass-tint-source`/`-strength` the self-engage re-points on `.glass-dock`, so the
399
- darken reaches the vertical plate. Zero-delta at the `0%` rest default. morph.css's
400
- `.glass-dock.vertical .dock-plate` interp (0,3,0) OVERRIDES this during the morph. */
401
- .glass-dock.vertical .dock-plate {
402
- background: color-mix(
403
- in oklab,
404
- var(--glass-bg-dock, var(--glass-bg-wash)),
405
- var(--glass-tint-source) var(--glass-tint-strength)
406
- );
407
- border-color: var(--glass-border-dock, var(--glass-border-wash));
408
- }
409
-
410
- .glass-dock.vertical.shape-pill {
411
- border-radius: var(--radius-pill);
412
- }
413
-
414
- .glass-dock.vertical.shape-rounded {
415
- border-radius: var(--radius-xl);
416
- }
417
-
418
- /* BB.W-DOCK-MORPH-FAMILY (f) — the VERTICAL big-dock CARD radius MORPHS on the
419
- SAME `--dock-expand-t` scalar the horizontal `.shape-card` rides (the radius
420
- arm of the vertical chrome un-gate; it lives in shell.css beside the horizontal
421
- arm, not morph.css). `--radius-pill` at expand-t 0 (collapsed), the finite
422
- `--dock-card-radius` at expand-t 1 (expanded) — the radius follows the box-size
423
- block morph, no discrete snap. The static `.shape-pill`/`.shape-rounded` rest
424
- radii above are the rest endpoints for those shapes; this is the card shape's
425
- interpolated radius (mirroring the horizontal `:not(.vertical).shape-card`). */
426
- .glass-dock.vertical.shape-card {
427
- border-radius: calc(
428
- var(--radius-pill) +
429
- (var(--dock-card-radius) - var(--radius-pill)) *
430
- var(--dock-expand-t)
431
- );
432
- }
433
-
434
- /* AW.W3b — horizontal-root shape rules. The `shape-*` class once bound ONLY under
435
- the vertical surface; on a horizontal dock the prop silently no-op'd (the root
436
- hardwired `--radius-dock` = `--radius-pill`). These rules close that
437
- documented-but-dead prop — `shape="rounded"` / `shape="card"` now paint on a
438
- horizontal dock. Scoped to `:not(.vertical)` so the vertical dock (which owns
439
- its own radius above) is untouched. */
440
- .glass-dock:not(.vertical).shape-rounded {
441
- border-radius: var(--radius-xl);
442
- }
443
-
444
- /* The big-dock CARD shell — a FINITE concentric radius above 2xl, below pill.
445
- It does NOT collapse to a stadium. Collapsed it returns to a pill (the morph
446
- target); the pill↔card radius now MORPHS on the SAME `--dock-expand-t` scalar
447
- the box + chrome ride (ONE clock, no discrete snap) — `--radius-pill` at
448
- expand-t 0 (collapsed), `--dock-card-radius` at expand-t 1 (expanded). The
449
- prior two discrete `.shape-card` / `.shape-card.collapsed` rules + their
450
- reliance on the deleted `border-radius var(--dock-motion-resize)` transition
451
- are RETIRED for this single interpolation. */
452
- .glass-dock:not(.vertical).shape-card {
453
- border-radius: calc(
454
- var(--radius-pill) +
455
- (var(--dock-card-radius) - var(--radius-pill)) *
456
- var(--dock-expand-t)
457
- );
458
- }
459
-
460
- /* AX.W56 — the big-dock IS the one squircle surface (the rounded-vs-squircle
461
- policy: cards/pills/panels stay round, big-docks + the like → superellipse).
462
- The squircle reads markedly better at the large `--radius-dock-card` (24px)
463
- shell — an `@supports`-gated ENHANCEMENT only (Chrome 139+, no FF/Safari 2026).
464
- The `border-radius` arc is the cross-engine CONTRACT; the squircle is the
465
- better tier (NOT a degraded fallback). The shape is now the tokenized
466
- `var(--corner-shape-bigdock)` (theme.css) so it is as overridable as the
467
- radius — a consumer retints the corner shape from `:root`, and W42's
468
- dock-morph reads the same `--corner-k-*` vocabulary. The `@supports`
469
- condition tests the LITERAL `superellipse(2)` (a `var()` is not evaluable in
470
- an `@supports` query) — the same Chrome-139 feature the token resolves to. */
471
- @supports (corner-shape: superellipse(2)) {
472
- .glass-dock:not(.vertical).shape-card {
473
- corner-shape: var(--corner-shape-bigdock);
474
- }
475
- }
476
-
477
- /* AZ.W-DOCK-TAXONOMY — the `instrument-strip` chassis-strip variant is RETIRED
478
- (the ≥2-consumer bar). It carried the vocabulary of the InstrumentRail
479
- component RETIRED at AY W-IC1; with the `variant` discriminant gone and no
480
- live `variant="instrument-strip"` call-site in src/ or demo/, the chassis
481
- paint has zero consumers. The cross-repo speedtest SurveyResultDock cockpit
482
- re-pins in its own migration (recorded in MIGRATION.md). A consumer needing
483
- the chassis surface composes `<InstrumentChassis>` directly. */
484
-
485
- .glass-dock:where(.fixed) {
486
- z-index: var(--z-dock);
487
- }
488
-
489
- .dock-inline {
490
- margin: 0 auto;
491
- }
492
-
493
- .dock-sticky {
494
- position: sticky;
495
- top: 0;
496
- z-index: var(--z-dock);
497
- margin: 0 auto;
498
- }
499
-
500
- }
@@ -1,123 +0,0 @@
1
- /* dock-controls/dark-mode-toggle.css — the `.dark-mode-toggle-button` control
2
- family (AZ.W-CARVE partial 2 of 5; carved out of dock-controls.css).
3
-
4
- The standalone toggle sizes (sm/md/lg/control) + the IN-DOCK glyph-inset
5
- contract (AY.W-DOCK-CHROME §2 / AX.W06 USF-2 — the toggle glyph routes through
6
- `--dock-control-glyph-size` so it is optically uniform with the nav glyphs when
7
- docked). Opens its OWN `@layer components`; @import-ed after icon-button.css. */
8
-
9
- @layer components {
10
- .dark-mode-toggle-button {
11
- width: var(--dark-mode-toggle-size, 2.25rem);
12
- height: var(--dark-mode-toggle-size, 2.25rem);
13
- min-width: var(--dark-mode-toggle-size, 2.25rem);
14
- min-height: var(--dark-mode-toggle-size, 2.25rem);
15
- max-width: var(--dark-mode-toggle-size, 2.25rem);
16
- max-height: var(--dark-mode-toggle-size, 2.25rem);
17
- aspect-ratio: 1;
18
- padding: var(--dark-mode-toggle-padding, 0.375rem);
19
- transition:
20
- opacity var(--dock-motion-standard),
21
- background-color var(--dock-motion-standard),
22
- box-shadow var(--dock-motion-fast);
23
-
24
- & > svg {
25
- width: 100%;
26
- height: 100%;
27
- max-width: 100%;
28
- max-height: 100%;
29
- }
30
-
31
- &:hover,
32
- &:focus {
33
- background: var(--surface-tint-10);
34
- opacity: 1;
35
- outline: none;
36
- }
37
-
38
- &:focus-visible {
39
- /* BI.W-DOCK-CONTROLS (value.js P5) — the ONE dock ring register. */
40
- box-shadow: var(--dock-ring);
41
- }
42
-
43
- &[data-size="sm"] {
44
- --dark-mode-toggle-size: 1.75rem;
45
- --dark-mode-toggle-padding: 0.25rem;
46
- }
47
-
48
- &[data-size="md"] {
49
- --dark-mode-toggle-size: 2.25rem;
50
- --dark-mode-toggle-padding: 0.375rem;
51
- }
52
-
53
- &[data-size="lg"] {
54
- --dark-mode-toggle-size: 2.75rem;
55
- --dark-mode-toggle-padding: 0.5rem;
56
- }
57
-
58
- &[data-size="control"] {
59
- --dark-mode-toggle-size: var(--control-size, 2.25rem);
60
- --dark-mode-toggle-padding: var(--control-icon-padding, 0.375rem);
61
- }
62
- }
63
-
64
- .dark-mode-toggle-button[data-size="dock"],
65
- .glass-dock
66
- .dark-mode-toggle-button:not([data-size="sm"]):not([data-size="lg"]):not(
67
- [data-size="control"]
68
- ) {
69
- --dark-mode-toggle-size: var(--dock-control-size, var(--size-icon-btn));
70
- /* AY.W-DOCK-CHROME §2 — the in-dock toggle GLYPH insets to the nav-glyph
71
- register. The toggle SVG carries `h-full w-full` (the utility layer, which
72
- BEATS the component-layer `> svg { width: --dock-control-glyph-size }` rule
73
- below), so the glyph fills whatever the PADDED box leaves. Prior the in-dock
74
- padding fell to `var(--dock-icon-padding, 0)` (the token is never defined →
75
- 0 pad → the glyph filled the whole 40px box edge-to-edge, ~2.5× the 16-20px
76
- nav glyphs — the user's "too large" read). Pad the box by HALF the box↔glyph
77
- difference so the `h-full` SVG lands at exactly `--dock-control-glyph-size`
78
- (default `--dock-icon-glyph`, the `--dock-scale`-keyed size the nav icons
79
- paint) — optically UNIFORM with the nav glyphs through the utility-win path,
80
- not fighting it.
81
-
82
- BC.W-DOCK-ENGINE move 3 (the Atlas A-9 fold) — the inset subtracts
83
- `--dock-control-glyph-size`, the SAME ONE knob the SVG `width`/`height`
84
- reads below, so the pad and the glyph stay LOCKED (a consumer retinting
85
- `--dock-control-glyph-size` moves both in lockstep — no drift between the
86
- box pad and the painted glyph). `--dock-control-size` AND
87
- `--dock-control-glyph-size` both INHERIT from `.glass-dock[data-size]`,
88
- where the coarse `--dock-scale` re-declare (overflow.css) re-resolves them
89
- in lockstep — so the calc reads the coarse-scaled values on a coarse
90
- pointer too (the AZ.R5-TOKENS substitution-vs-inheritance trap closed for
91
- the toggle glyph: the var() resolves at the toggle button, reading the
92
- coarse-re-resolved inherited tokens, never the frozen `:root` scale). */
93
- --dark-mode-toggle-padding: calc(
94
- (
95
- var(--dock-control-size, var(--size-icon-btn)) -
96
- var(--dock-control-glyph-size, var(--dock-icon-glyph, 1.25rem))
97
- ) / 2
98
- );
99
- }
100
-
101
- /* AX.W06 USF-2 — the dock-control optical-size contract. The
102
- DarkModeToggle renders its OWN internal SVG `h-full w-full` (it bypasses
103
- the `--dock-icon-glyph`-sized `> svg` slot the `.dock-icon-button` family
104
- uses), so IN-DOCK it filled the whole control box edge-to-edge (~2.5× the
105
- nav glyphs) — `--dock-icon-padding` is NEVER DEFINED, so the
106
- `--dark-mode-toggle-padding: var(--dock-icon-padding, 0)` above fell to the
107
- `0` fallback and zero padding let the SVG fill the box. Route the in-dock
108
- toggle glyph through `--dock-control-glyph-size` (the ONE size the whole
109
- dock-control family reads, default = `--dock-icon-glyph`, the same
110
- `--dock-scale`-keyed glyph the nav icons paint), so the toggle is optically
111
- UNIFORM with the nav glyphs WHEN DOCKED. The `h-full w-full` SVG stays
112
- correct for the STANDALONE DarkModeToggle sizes (no `.glass-dock`
113
- ancestor); this rule is scoped to the in-dock path only. Machine-checked by
114
- the dock-control optical-parity gate, not eyeballed. */
115
- .glass-dock
116
- .dark-mode-toggle-button:not([data-size="sm"]):not([data-size="lg"]):not(
117
- [data-size="control"]
118
- )
119
- > svg {
120
- width: var(--dock-control-glyph-size, var(--dock-icon-glyph, 1.25rem));
121
- height: var(--dock-control-glyph-size, var(--dock-icon-glyph, 1.25rem));
122
- }
123
- }