@mkbabb/glass-ui 3.11.2 → 3.13.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 (360) hide show
  1. package/dist/{CardAction-DuArVky-.js → CardAction-Cj2eycQ2.js} +2 -2
  2. package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-RowNEO6i.js} +4 -4
  3. package/dist/{ContextMenuSubContent-Bhg4f5jX.js → ContextMenuSubContent-BQmxTAdw.js} +4 -4
  4. package/dist/{DataTable-CUHMukiQ.js → DataTable-BCddn3T3.js} +3 -3
  5. package/dist/{DialogContent-BRkT1cjP.js → DialogContent-Dl9WkAoS.js} +3 -3
  6. package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-Blu4t7tJ.js} +2 -2
  7. package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-CISOJQuZ.js} +1 -1
  8. package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-DPzE09X9.js} +1 -1
  9. package/dist/MetricBadge-C9QMz1KT.js +79 -0
  10. package/dist/{Notification-DLMhblXR.js → Notification-DdwNxIrI.js} +2 -2
  11. package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-CqaN-SvN.js} +3 -3
  12. package/dist/{PopoverContent-BId6ggf_.js → PopoverContent-BYwt2-4x.js} +1 -1
  13. package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-DfFrwSph.js} +1 -1
  14. package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-CiDUxfEj.js} +6 -6
  15. package/dist/{Switch-Ch-k3Rv-.js → Switch-CsIuYP_e.js} +1 -1
  16. package/dist/{TabsList-B8CVOQPC.js → TabsList-Dttss653.js} +9 -5
  17. package/dist/{Toaster-1rYWrmAm.js → Toaster-D6q4HtXu.js} +50 -47
  18. package/dist/{ToggleGroupItem-COu_4IW4.js → ToggleGroupItem-D_AHlRw9.js} +18 -22
  19. package/dist/animated-digit.js +2 -2
  20. package/dist/api/index.d.ts +5 -2
  21. package/dist/api.js +2 -2
  22. package/dist/aurora.js +69 -69
  23. package/dist/{badge-CaoFJzRb.js → badge-UILT_3pZ.js} +1 -1
  24. package/dist/badge.js +1 -1
  25. package/dist/{button-DN39cGqL.js → button-ChXMfsud.js} +12 -12
  26. package/dist/button.js +1 -1
  27. package/dist/card.js +1 -1
  28. package/dist/carousel.js +8 -8
  29. package/dist/{check-BBKKKSTf.js → check-njhk-vfu.js} +1 -1
  30. package/dist/{chevron-down-BSkTP2aL.js → chevron-down-DKkxb4VV.js} +1 -1
  31. package/dist/{chevron-right-sDM0Yvrf.js → chevron-right-CPXbqQQz.js} +1 -1
  32. package/dist/{chevron-up-CCOD_FTz.js → chevron-up-n_24SqI-.js} +1 -1
  33. package/dist/coalesceMetric-5qIeZnTx.js +13 -0
  34. package/dist/{color-C5ls_QF7.js → color-CUYeFbgd.js} +9 -7
  35. package/dist/color.js +1 -1
  36. package/dist/command.js +1 -1
  37. package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +8 -0
  38. package/dist/components/custom/aurora/constants/presets.d.ts +5 -62
  39. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
  40. package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
  41. package/dist/components/custom/aurora/index.d.ts +1 -1
  42. package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +16 -0
  43. package/dist/components/custom/constellation/Constellation.vue.d.ts +74 -6
  44. package/dist/components/custom/constellation/composables/createConstellationField.d.ts +41 -0
  45. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
  46. package/dist/components/custom/constellation/constants.d.ts +61 -0
  47. package/dist/components/custom/constellation/constellationDraw.d.ts +30 -0
  48. package/dist/components/custom/constellation/constellationField.d.ts +116 -149
  49. package/dist/components/custom/constellation/constellationInteraction.d.ts +132 -0
  50. package/dist/components/custom/constellation/index.d.ts +5 -2
  51. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
  52. package/dist/components/custom/dock/DockRail.vue.d.ts +88 -0
  53. package/dist/components/custom/dock/DockTabButton.vue.d.ts +3 -4
  54. package/dist/components/custom/dock/GlassDock.vue.d.ts +5 -118
  55. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
  56. package/dist/components/custom/dock/composables/index.d.ts +1 -0
  57. package/dist/components/custom/dock/composables/useDockClickIntegrity.d.ts +23 -0
  58. package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
  59. package/dist/components/custom/dock/composables/useDockOrientationMorph.d.ts +44 -0
  60. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +165 -0
  61. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
  62. package/dist/components/custom/dock/constants.d.ts +48 -0
  63. package/dist/components/custom/dock/index.d.ts +3 -0
  64. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +5 -37
  65. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  66. package/dist/components/custom/fourier-field/math.d.ts +17 -0
  67. package/dist/components/custom/fourier-field/presets.d.ts +54 -0
  68. package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
  69. package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
  70. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
  71. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +11 -8
  72. package/dist/components/custom/goo-blob/constants.d.ts +52 -0
  73. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
  74. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
  75. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +37 -0
  76. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +6 -0
  77. package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +6 -0
  78. package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +6 -0
  79. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +11 -18
  80. package/dist/components/custom/metric-badge/index.d.ts +1 -0
  81. package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +15 -4
  82. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +6 -4
  83. package/dist/components/custom/tabs/constants.d.ts +12 -0
  84. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +84 -0
  85. package/dist/components/custom/underline/index.d.ts +2 -0
  86. package/dist/components/custom/underline/types.d.ts +56 -0
  87. package/dist/components/ui/card/Card.vue.d.ts +15 -3
  88. package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
  89. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
  90. package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +6 -3
  91. package/dist/components/ui/slider/index.d.ts +22 -19
  92. package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +4 -1
  93. package/dist/components/ui/toast/use-toast.d.ts +2 -2
  94. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  95. package/dist/components/ui/toggle/index.d.ts +1 -1
  96. package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +1 -7
  97. package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +1 -3
  98. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +0 -13
  99. package/dist/composables/color/index.d.ts +12 -0
  100. package/dist/composables/dark/index.d.ts +1 -1
  101. package/dist/composables/dark/useGlobalDark.d.ts +1 -21
  102. package/dist/composables/glass/index.d.ts +0 -1
  103. package/dist/composables/glass/useGlassBackdropLuminance.d.ts +59 -0
  104. package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
  105. package/dist/composables/motion/core/index.d.ts +1 -1
  106. package/dist/composables/motion/curves.d.ts +48 -0
  107. package/dist/composables/motion/index.d.ts +2 -0
  108. package/dist/composables/motion/springPresets.d.ts +33 -0
  109. package/dist/composables/motion/suite.d.ts +2 -0
  110. package/dist/composables/motion/useLiquidFlex.d.ts +85 -0
  111. package/dist/composables/motion/useSpringMount.d.ts +1 -1
  112. package/dist/configurator.js +1 -1
  113. package/dist/confirm-dialog.js +2 -2
  114. package/dist/constellation.js +336 -222
  115. package/dist/context-menu.js +2 -2
  116. package/dist/controls.js +47 -13
  117. package/dist/dark.d.ts +1 -1
  118. package/dist/dark.js +1 -1
  119. package/dist/data-table.js +1 -1
  120. package/dist/dialog.js +2 -2
  121. package/dist/dock.js +705 -365
  122. package/dist/dockContext-BegmJVmx.js +17 -0
  123. package/dist/dom.js +5 -5
  124. package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-DzkkyBwX.js} +11 -8
  125. package/dist/dropdown-menu.js +1 -1
  126. package/dist/expandable-container.js +39 -80
  127. package/dist/forms.js +5 -5
  128. package/dist/fourier-field.js +134 -99
  129. package/dist/fourier-math.js +2 -2
  130. package/dist/glass-panel.js +86 -20
  131. package/dist/glass-ui.css +1 -1
  132. package/dist/glass-ui.js +222 -212
  133. package/dist/goo-blob.js +243 -212
  134. package/dist/hover-card.js +1 -1
  135. package/dist/hover-popover.js +1 -1
  136. package/dist/icon-tooltip.js +1 -1
  137. package/dist/index.d.ts +1 -3
  138. package/dist/instrument-chassis.js +1 -1
  139. package/dist/keyboard.js +1 -1
  140. package/dist/label.js +1 -1
  141. package/dist/labeled-field.js +28 -18
  142. package/dist/{math-DTpRVC0e.js → math-U6-RrLmV.js} +18 -2
  143. package/dist/metric-badge.js +1 -1
  144. package/dist/metric-cell.js +25 -21
  145. package/dist/metric-stack.js +35 -34
  146. package/dist/{minimize-2-lcXOuc6V.js → minimize-2-BV31Ob_h.js} +1 -1
  147. package/dist/motion-core.js +32 -137
  148. package/dist/motion-curves.d.ts +1 -0
  149. package/dist/motion-curves.js +130 -0
  150. package/dist/motion.js +38 -37
  151. package/dist/notification.js +1 -1
  152. package/dist/number-field.js +1 -1
  153. package/dist/paper-backdrop.js +1 -1
  154. package/dist/popover.js +1 -1
  155. package/dist/{presets-BP_ALM0m.js → presets-BKVyQfbt.js} +1 -14
  156. package/dist/progress.js +1 -1
  157. package/dist/reactive.js +2 -2
  158. package/dist/scrolling-text.js +1 -1
  159. package/dist/{search-nbkvr2dC.js → search-BSGrf2Sk.js} +1 -1
  160. package/dist/search.js +9 -9
  161. package/dist/select.js +3 -3
  162. package/dist/separator.js +1 -1
  163. package/dist/{sheet-VZEtNFvO.js → sheet-1fChZjtw.js} +3 -3
  164. package/dist/sheet.js +1 -1
  165. package/dist/{slider-ClgpP7EB.js → slider-B-JP2JlI.js} +4 -4
  166. package/dist/slider.js +1 -1
  167. package/dist/sortable-list.js +2 -2
  168. package/dist/springPresets--YdWTHtm.js +40 -0
  169. package/dist/stacked-icons.js +6 -6
  170. package/dist/styles/animations.css +29 -114
  171. package/dist/styles/cards.css +55 -0
  172. package/dist/styles/components.css +4 -1
  173. package/dist/styles/configurator.css +42 -0
  174. package/dist/styles/dock/layer-group.css +83 -25
  175. package/dist/styles/dock/layers.css +23 -1
  176. package/dist/styles/dock/morph-bridge.css +123 -0
  177. package/dist/styles/dock/morph.css +175 -45
  178. package/dist/styles/dock/overflow.css +51 -1
  179. package/dist/styles/dock/rail-extend.css +300 -0
  180. package/dist/styles/dock/shell.css +63 -105
  181. package/dist/styles/dock-controls/dark-mode-toggle.css +109 -0
  182. package/dist/styles/dock-controls/icon-button.css +133 -0
  183. package/dist/styles/dock-controls/tab-button.css +202 -0
  184. package/dist/styles/dock-controls/touch-floor.css +94 -0
  185. package/dist/styles/dock-controls/triggers.css +128 -0
  186. package/dist/styles/dock-controls.css +30 -595
  187. package/dist/styles/dock.css +2 -0
  188. package/dist/styles/drawer.css +2 -0
  189. package/dist/styles/floating-panel.css +17 -0
  190. package/dist/styles/glass/a11y-fallback.css +245 -0
  191. package/dist/styles/glass/ladder.css +337 -0
  192. package/dist/styles/glass/material.css +238 -0
  193. package/dist/styles/glass/progress-rail.css +78 -0
  194. package/dist/styles/glass/squircle.css +66 -0
  195. package/dist/styles/glass/surfaces.css +306 -0
  196. package/dist/styles/glass-refract.css +2 -0
  197. package/dist/styles/glass.css +31 -1188
  198. package/dist/styles/hover-popover.css +2 -0
  199. package/dist/styles/index.css +28 -14
  200. package/dist/styles/instrument-chassis.css +4 -0
  201. package/dist/styles/paper.css +2 -68
  202. package/dist/styles/segmented-tabs.css +275 -0
  203. package/dist/styles/theme/bridges.css +337 -0
  204. package/dist/styles/theme/dark.css +7 -0
  205. package/dist/styles/theme/literals.css +94 -0
  206. package/dist/styles/theme/radius.css +95 -0
  207. package/dist/styles/theme.css +26 -529
  208. package/dist/styles/tokens/color-radius.css +260 -0
  209. package/dist/styles/tokens/dark-arm.css +200 -0
  210. package/dist/styles/tokens/glass.css +440 -0
  211. package/dist/styles/tokens/light-dark.css +158 -0
  212. package/dist/styles/tokens/offsets-sizing.css +500 -0
  213. package/dist/styles/tokens/property-regs.css +169 -0
  214. package/dist/styles/tokens/scale-paper.css +366 -0
  215. package/dist/styles/tokens/scheme-motion.css +334 -0
  216. package/dist/styles/tokens/shadow.css +166 -0
  217. package/dist/styles/tokens.css +22 -2360
  218. package/dist/styles/typography.css +75 -21
  219. package/dist/styles/utilities/a11y-overrides.css +140 -0
  220. package/dist/styles/utilities/animate.css +26 -0
  221. package/dist/styles/utilities/base.css +365 -0
  222. package/dist/styles/utilities/btn.css +401 -0
  223. package/dist/styles/utilities/components.css +317 -0
  224. package/dist/styles/utilities.css +19 -1291
  225. package/dist/styles/view-transition.css +0 -51
  226. package/dist/switch.js +1 -1
  227. package/dist/tabs.js +91 -82
  228. package/dist/timeline.js +1 -1
  229. package/dist/toast.js +1 -1
  230. package/dist/toggle-group.js +1 -1
  231. package/dist/tooltip.js +1 -1
  232. package/dist/underline.d.ts +1 -0
  233. package/dist/underline.js +85 -0
  234. package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-C5I3wWd8.js} +1 -1
  235. package/dist/{useConfiguratorState-DxAqksK6.js → useConfiguratorState-DAoeHVue.js} +8 -8
  236. package/dist/{useGlobalDark-CAhOXNLO.js → useGlobalDark-yhL4Wp-s.js} +3 -22
  237. package/dist/useLiquidFlex-BL0lLLN2.js +30 -0
  238. package/dist/useRAFLoop-Bxv0o6L5.js +109 -0
  239. package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-Dlvx-L3v.js} +1 -1
  240. package/dist/useSpecularTracking-Bo5su68i.js +32 -0
  241. package/dist/useSpringMount-CI2jOstM.js +108 -0
  242. package/dist/{useTouchGate-WFyJYsth.js → useTouchGate-Dg7MQI1G.js} +1 -1
  243. package/dist/utils/coalesceMetric.d.ts +29 -0
  244. package/dist/utils/index.d.ts +1 -0
  245. package/dist/vReveal-CqaCz_mC.js +44 -0
  246. package/dist/watercolor-dot.js +11 -9
  247. package/dist/{x-Dfsegz9Y.js → x-BUwTKe50.js} +1 -1
  248. package/package.json +78 -58
  249. package/src/styles/animations.css +29 -114
  250. package/src/styles/cards.css +53 -0
  251. package/src/styles/configurator.css +42 -0
  252. package/src/styles/dock/layer-group.css +83 -25
  253. package/src/styles/dock/layers.css +23 -1
  254. package/src/styles/dock/morph-bridge.css +123 -0
  255. package/src/styles/dock/morph.css +175 -45
  256. package/src/styles/dock/overflow.css +51 -1
  257. package/src/styles/dock/rail-extend.css +300 -0
  258. package/src/styles/dock/shell.css +63 -105
  259. package/src/styles/dock-controls/dark-mode-toggle.css +109 -0
  260. package/src/styles/dock-controls/icon-button.css +133 -0
  261. package/src/styles/dock-controls/tab-button.css +202 -0
  262. package/src/styles/dock-controls/touch-floor.css +94 -0
  263. package/src/styles/dock-controls/triggers.css +128 -0
  264. package/src/styles/dock-controls.css +30 -595
  265. package/src/styles/dock.css +2 -0
  266. package/src/styles/floating-panel.css +15 -0
  267. package/src/styles/glass/a11y-fallback.css +245 -0
  268. package/src/styles/glass/ladder.css +337 -0
  269. package/src/styles/glass/material.css +238 -0
  270. package/src/styles/glass/progress-rail.css +78 -0
  271. package/src/styles/glass/squircle.css +66 -0
  272. package/src/styles/glass/surfaces.css +306 -0
  273. package/src/styles/glass.css +31 -1188
  274. package/src/styles/index.css +28 -14
  275. package/src/styles/paper.css +2 -68
  276. package/src/styles/segmented-tabs.css +271 -0
  277. package/src/styles/theme/bridges.css +337 -0
  278. package/src/styles/theme/dark.css +7 -0
  279. package/src/styles/theme/literals.css +94 -0
  280. package/src/styles/theme/radius.css +95 -0
  281. package/src/styles/theme.css +26 -529
  282. package/src/styles/tokens/color-radius.css +260 -0
  283. package/src/styles/tokens/dark-arm.css +200 -0
  284. package/src/styles/tokens/glass.css +440 -0
  285. package/src/styles/tokens/light-dark.css +158 -0
  286. package/src/styles/tokens/offsets-sizing.css +500 -0
  287. package/src/styles/tokens/property-regs.css +169 -0
  288. package/src/styles/tokens/scale-paper.css +366 -0
  289. package/src/styles/tokens/scheme-motion.css +334 -0
  290. package/src/styles/tokens/shadow.css +166 -0
  291. package/src/styles/tokens.css +22 -2360
  292. package/src/styles/typography.css +75 -21
  293. package/src/styles/utilities/a11y-overrides.css +140 -0
  294. package/src/styles/utilities/animate.css +26 -0
  295. package/src/styles/utilities/base.css +365 -0
  296. package/src/styles/utilities/btn.css +401 -0
  297. package/src/styles/utilities/components.css +317 -0
  298. package/src/styles/utilities.css +19 -1291
  299. package/src/styles/view-transition.css +0 -51
  300. package/dist/DeckProgress-Dmk4_AKN.js +0 -23
  301. package/dist/InstrumentRail-CUJ05YVG.js +0 -44
  302. package/dist/MetricBadge-BZVWIxNy.js +0 -80
  303. package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
  304. package/dist/components/custom/deck-progress/index.d.ts +0 -2
  305. package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
  306. package/dist/components/custom/dialog-native/index.d.ts +0 -1
  307. package/dist/components/custom/handmark/HandMark.vue.d.ts +0 -29
  308. package/dist/components/custom/handmark/brush.d.ts +0 -242
  309. package/dist/components/custom/handmark/freehand.d.ts +0 -69
  310. package/dist/components/custom/handmark/geometry.d.ts +0 -50
  311. package/dist/components/custom/handmark/index.d.ts +0 -21
  312. package/dist/components/custom/handmark/ink.d.ts +0 -11
  313. package/dist/components/custom/handmark/texture.d.ts +0 -39
  314. package/dist/components/custom/handmark/types.d.ts +0 -53
  315. package/dist/components/custom/handmark/useHandMark.d.ts +0 -87
  316. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
  317. package/dist/components/custom/instrument-rail/index.d.ts +0 -2
  318. package/dist/composables/motion/useRouteTransition.d.ts +0 -42
  319. package/dist/deck-progress.d.ts +0 -1
  320. package/dist/deck-progress.js +0 -2
  321. package/dist/dockContext-BKeIMmNk.js +0 -9
  322. package/dist/handmark.d.ts +0 -1
  323. package/dist/handmark.js +0 -663
  324. package/dist/instrument-rail.d.ts +0 -1
  325. package/dist/instrument-rail.js +0 -2
  326. package/dist/styles/instrument-rail.css +0 -127
  327. package/dist/useGlassRenderer-D7YGOYiM.js +0 -69
  328. package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
  329. package/dist/useSpringMount-BJSHcLl3.js +0 -113
  330. package/dist/useViewTransition-DaN5Zrox.js +0 -21
  331. package/dist/vReveal-zUIQk-rJ.js +0 -53
  332. package/src/styles/instrument-rail.css +0 -127
  333. /package/dist/{ContextMenuContent-DDa0v27s.js → ContextMenuContent-CT3AS1WX.js} +0 -0
  334. /package/dist/{HoverCardContent-B6CcQ8He.js → HoverCardContent-Csywg3YF.js} +0 -0
  335. /package/dist/{Input-xuDwALQR.js → Input-DWQQIOC4.js} +0 -0
  336. /package/dist/{InstrumentChassis-C2f6cBaQ.js → InstrumentChassis-UUJX0-mW.js} +0 -0
  337. /package/dist/{Label-zRfbQdCn.js → Label-r3WzWrsj.js} +0 -0
  338. /package/dist/{ModalOverlay-B1GkAjNb.js → ModalOverlay-DVLI2VRr.js} +0 -0
  339. /package/dist/{PaperBackdrop-CqwjnfLv.js → PaperBackdrop-DIXTtVq6.js} +0 -0
  340. /package/dist/{Progress-iEuD9pxG.js → Progress-DwlUKGbr.js} +0 -0
  341. /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-aumMgWLs.js} +0 -0
  342. /package/dist/{SelectSeparator-C4Ql0gzV.js → SelectSeparator-BQ_1Fcbp.js} +0 -0
  343. /package/dist/{Separator-D7sD7RKj.js → Separator-0JE6LtNu.js} +0 -0
  344. /package/dist/{TooltipProvider-CmZzCuaG.js → TooltipProvider-B3MkB_8P.js} +0 -0
  345. /package/dist/{compile-BOXjLUxu.js → compile-B7NGOBcP.js} +0 -0
  346. /package/dist/{constants-yKeKnE84.js → constants-CS75AWHG.js} +0 -0
  347. /package/dist/{createContext-B44Sah_H.js → createContext-BM46COQ-.js} +0 -0
  348. /package/dist/{createLucideIcon-B6uNAU9G.js → createLucideIcon-DydS2qgk.js} +0 -0
  349. /package/dist/{menuItemVariants-CCoBNkU5.js → menuItemVariants-DPiEarb0.js} +0 -0
  350. /package/dist/{supportsCssTimeline-C5oe0lnD.js → supportsCssTimeline-BWenxvHU.js} +0 -0
  351. /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-Cc-H9ees.js} +0 -0
  352. /package/dist/{useInterval-Dsmqwi03.js → useInterval-iHludrxk.js} +0 -0
  353. /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-Be3w_Rwk.js} +0 -0
  354. /package/dist/{useResizeObserver-CWCbk5Px.js → useResizeObserver-BhgdhOIj.js} +0 -0
  355. /package/dist/{useResolveTokenColor-r9pnNjqK.js → useResolveTokenColor-Dvn2RZJW.js} +0 -0
  356. /package/dist/{useSortable-C8ReQ50P.js → useSortable-muI29agz.js} +0 -0
  357. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-DmRYkOBx.js} +0 -0
  358. /package/dist/{useTimer-3xqf_54b.js → useTimer-Dzarvzuk.js} +0 -0
  359. /package/dist/{useUserInvalidAria-DoJKMZ3s.js → useUserInvalidAria-B2h6jAM_.js} +0 -0
  360. /package/dist/{useViewportReady-RIr5Wgkh.js → useViewportReady-B40FK4Pa.js} +0 -0
@@ -0,0 +1,133 @@
1
+ /* dock-controls/icon-button.css — the `.dock-icon-button` control family
2
+ (AZ.W-CARVE partial 1 of 5; carved out of dock-controls.css).
3
+
4
+ The base rule (size/radius/legibility colour/transition), the glass icon-hover
5
+ fill (AT.W7-dock-b / AX.W45 DK2), the iOS press DARKEN-plus-shrink
6
+ (AZ.W-REGISTER-IOS), the focus + active-paint cohort (O.W6 Lane B), the
7
+ library-owned glyph sizing (AX.W45 D15), + the `--compact` size override.
8
+
9
+ Opens its OWN `@layer components` (same layer as the carve siblings) so the
10
+ carve is cascade-isomorphic. @import-ed after the shared `:where()` group at
11
+ the dock-controls.css root. */
12
+
13
+ @layer components {
14
+ .dock-icon-button {
15
+ display: inline-flex;
16
+ align-items: center;
17
+ justify-content: center;
18
+ flex-shrink: 0;
19
+ /* AQ.W3 §W3.2 identity base */
20
+ scale: 1;
21
+ width: var(--dock-control-size, var(--size-icon-btn));
22
+ height: var(--dock-control-size, var(--size-icon-btn));
23
+ padding: var(--dock-icon-padding, 0);
24
+ cursor: pointer;
25
+ border: none;
26
+ background: transparent;
27
+ border-radius: var(--dock-control-radius, var(--radius-pill));
28
+ /* Foreground base routes through `--dock-fg-on-aurora` (defaults to
29
+ `--foreground`, byte-identical to before) so a consumer floating the
30
+ dock over an aurora can lift contrast per-backdrop. The muted icon
31
+ weight mixes that base down with `--opacity-icon-muted`. */
32
+ color: color-mix(
33
+ in srgb,
34
+ var(--dock-fg-on-aurora, var(--foreground))
35
+ calc(var(--opacity-icon-muted) * 100%),
36
+ transparent
37
+ );
38
+ outline: none;
39
+ transition:
40
+ background-color var(--dock-motion-fast),
41
+ color var(--dock-motion-fast),
42
+ /* AT.W7-dock-b — `scale` carries the press micro-feedback spring
43
+ (transform-scoped only; the surface fades stay on the flat ease). */
44
+ scale var(--dock-press-spring),
45
+ opacity var(--dock-motion-fast),
46
+ /* The box-shadow fade now carries ONLY the focus-visible ring (shared
47
+ `:focus-visible` group in dock.css) + the active-state
48
+ `--dock-active-shadow` — the AX.W09-retired hover `--glass-highlight`
49
+ specular no longer rides it. */
50
+ box-shadow var(--dock-motion-fast);
51
+
52
+ /* AT.W7-dock-b — glass icon-hover. The icon-button hover reads as a glass
53
+ surface, not a flat `--muted` plate: a translucent card-tinted fill is
54
+ the hover affordance. A consumer retunes the fill via `--dock-icon-hover-bg`.
55
+
56
+ AX.W09 — the dock control's SECOND specular (the `--glass-highlight`
57
+ hover box-shadow, AT.W7-dock-b) is RETIRED. The dock-icon-button is a
58
+ member of the unified `.glass-material` group (glass.css), so the moving
59
+ `::before` catch-light is now its SOLE specular owner — one light per
60
+ surface (the §0 "excise or fail" discipline). Stacking the
61
+ `--glass-highlight` inset box-shadow on the most-hovered, slides-floated
62
+ surface was the worst-offending double-light blowout; the card-tinted
63
+ hover fill carries the affordance without a second catch-light, and
64
+ dropping it also removes the `:not(:focus-visible)` specular-vs-ring
65
+ juggle. */
66
+ /* AX.W45 DK2 — the hover reads the FAMILY token `--dock-control-hover-bg`
67
+ (the per-control `--dock-icon-hover-bg` still wins if a consumer set it),
68
+ so the whole dock-control family shares ONE glass-translucent hover fill.
69
+ One source per state across icon/tab/picker (no four-vocabulary drift). */
70
+ &:hover:not(:disabled) {
71
+ background: var(
72
+ --dock-icon-hover-bg,
73
+ var(--dock-control-hover-bg)
74
+ );
75
+ color: var(--btn-hover-color, var(--foreground));
76
+ scale: var(--scale-hover-dock);
77
+ }
78
+
79
+ /* AZ.W-REGISTER-IOS — the iOS press DARKEN-plus-shrink. Press lands the
80
+ glass-darken (`--dock-control-press-bg`, a tier below resting) alongside
81
+ the existing scale-press, so a tap reads "darken + shrink" (C4-INV-4 was
82
+ scale-only). Token-first — a consumer retunes via `--dock-control-press-bg`. */
83
+ &:active:not(:disabled) {
84
+ background: var(--dock-control-press-bg);
85
+ scale: var(--scale-press-dock);
86
+ }
87
+
88
+ &:focus:not(:focus-visible) {
89
+ box-shadow: none;
90
+ outline: none;
91
+ }
92
+
93
+ /* O.W6 Lane B — token-ladder active paint. Defaults match the prior
94
+ hardcoded recipe (--muted bg + --foreground color, no transform / border
95
+ / shadow). Consumers override the active variant via the
96
+ `--dock-active-{bg,color,scale,border,shadow}` cohort scoped to a parent
97
+ (e.g. bbnf-buddy `ToolsLayer.vue` audacious active treatment) — no
98
+ `:deep()` escapes required. See tokens.css §10 (dock geometry block). */
99
+ &:is(.is-active, .active, [aria-expanded="true"], [aria-pressed="true"]) {
100
+ background: var(--dock-active-bg);
101
+ color: var(--dock-active-color);
102
+ scale: var(--dock-active-scale);
103
+ border: var(--dock-active-border);
104
+ box-shadow: var(--dock-active-shadow);
105
+ }
106
+ }
107
+
108
+ /* focus-visible ring + disabled paint hoisted to the shared `:where()`
109
+ group in dock.css. The box-shadow fade transition lives on the base
110
+ `.dock-icon-button` rule (it carries the focus-ring + active-shadow fade
111
+ since AX.W09 retired the hover `--glass-highlight` specular), so no
112
+ per-state transition override is needed. */
113
+
114
+ /* AX.W45 D15 — LIBRARY GLYPH OWNERSHIP. The dock icon-button now sizes its glyph
115
+ (mirroring `.dark-mode-toggle-button > svg`), so the glyph scales WITH the box
116
+ on the `--dock-scale` multiplier instead of swimming at a fixed consumer size.
117
+ `--dock-icon-glyph: calc(1.25rem * var(--dock-scale))` (tokens.css) rides the
118
+ multiplier — at 1.5× the glyph is 30px in a 60px box, the desktop proportion.
119
+ A consumer passing an explicit lucide size class still WINS (utility layer >
120
+ component layer) — a DEFAULT, not a ceiling, matching the `.dock-tab-button`
121
+ font-size precedent. */
122
+ .dock-icon-button > svg {
123
+ width: var(--dock-icon-glyph, 1.25rem);
124
+ height: var(--dock-icon-glyph, 1.25rem);
125
+ }
126
+
127
+ .dock-icon-button--compact {
128
+ width: var(--dock-compact-control-size, auto);
129
+ height: var(--dock-compact-control-size, auto);
130
+ min-width: var(--dock-compact-control-min-width, 0);
131
+ padding: var(--dock-compact-control-padding, 0.25rem);
132
+ }
133
+ }
@@ -0,0 +1,202 @@
1
+ /* dock-controls/tab-button.css — the `.dock-tab-button` control family
2
+ (AZ.W-CARVE partial 3 of 5; carved out of dock-controls.css).
3
+
4
+ The base rule (density-keyed height knob, padding, glass hover/active/press
5
+ cohort), the PRIMARY tier (the dock extension over `@utility btn-audacious` —
6
+ structural shell + the `--phase-color` disco-grain hover radial + the
7
+ `[data-phase]` backplate halo), and the SECONDARY tier (the quieter
8
+ edge-light/edge-shadow cross-control comma-group over tab + icon button).
9
+ Opens its OWN `@layer components`; @import-ed after dark-mode-toggle.css. */
10
+
11
+ @layer components {
12
+ .dock-tab-button {
13
+ display: inline-flex;
14
+ align-items: center;
15
+ flex-shrink: 0;
16
+ /* P.W4 Lane B inline-absorb: the `--dock-tab-h` density-keyed height
17
+ knob (parallel to DockIconButton's --dock-control-size) merged
18
+ here from the prior DockTabButton.vue scoped style block. The
19
+ density rungs that set `--dock-tab-h` per tier live in dock.css
20
+ (the `.glass-dock[data-density="…"]` blocks) — Q.W3
21
+ Lane A consolidated them out of utilities.css, closing the
22
+ cascade-order split-brain. When a parent <GlassDock density="…">
23
+ sets `--dock-tab-h`, the tab-button reserves that row even when
24
+ the glyph + padding sum would ride lower. Falls through to
25
+ `--dock-tab-min-height` (kept for audacious-tier callers) and
26
+ finally to `auto`. R3-spec / audit-E P0-3. */
27
+ min-height: var(--dock-tab-h, var(--dock-tab-min-height, auto));
28
+ padding-inline: var(--dock-tab-padding-inline, 0.75rem);
29
+ padding-block: var(--dock-tab-padding-block, 0.375rem);
30
+ border: none;
31
+ background: transparent;
32
+ border-radius: var(--dock-control-radius, var(--radius-pill));
33
+ /* Default font-size carries through to text-only tab content; consumers
34
+ wrapping content in an explicit type utility (e.g. `text-hero`,
35
+ `text-display`) on an inner <span> win because Tailwind v4 ships
36
+ @utility blocks in @layer utilities, which ranks above @layer
37
+ components — so this declaration is a fallback, not a ceiling. */
38
+ font-size: var(--type-small);
39
+ line-height: 1;
40
+ color: var(--muted-foreground);
41
+ text-decoration: none;
42
+ cursor: pointer;
43
+ white-space: nowrap;
44
+ outline: none;
45
+ /* AQ.W3 §W3.2 identity base */
46
+ scale: 1;
47
+ transition:
48
+ background-color var(--dock-motion-fast),
49
+ color var(--dock-motion-fast),
50
+ /* AT.W7-dock-b — press micro-feedback spring (transform-scoped). */ scale
51
+ var(--dock-press-spring);
52
+
53
+ /* AX.W45 DK2 — converged onto the FAMILY hover/active token pair (the
54
+ surface-tint-8/10 ladder it spoke is ≈ the same intent — glass-translucent
55
+ foreground-over-transparent). ONE grammar across icon/tab/picker.
56
+ AX.W45-TUNE Q3/C3 — the hover MOTION channel is now UNIFIED: the
57
+ `--scale-hover-dock` lift fires here (it used to fire on only icon +
58
+ dropdown), so all four control members lift on hover as ONE register —
59
+ the bg cross-fade (glass-tier), the scale, and the specular gleam read
60
+ together BEFORE click. The transform rides `--dock-press-spring`
61
+ (`--spring-smooth`) per the W52 easing doctrine. */
62
+ &:hover:not(:disabled) {
63
+ background: var(--dock-control-hover-bg);
64
+ color: var(--foreground);
65
+ scale: var(--scale-hover-dock);
66
+ }
67
+
68
+ /* AZ.W-REGISTER-IOS — the iOS press darken-plus-shrink (see the icon-button). */
69
+ &:active:not(:disabled) {
70
+ background: var(--dock-control-press-bg);
71
+ scale: var(--scale-press-dock);
72
+ }
73
+
74
+ &:focus:not(:focus-visible) {
75
+ box-shadow: none;
76
+ }
77
+
78
+ /* focus-visible ring + disabled paint hoisted to the shared `:where()`
79
+ group in dock.css. */
80
+
81
+ &:is(.is-active, .active, [aria-current="page"], [aria-pressed="true"]) {
82
+ background: var(--dock-control-active-bg);
83
+ color: var(--foreground);
84
+ }
85
+ }
86
+
87
+ /* Tier — primary ────────────────────────────────────────────
88
+ *
89
+ * Per W2.7 §9, §12, §13, §17. The primary tier composes three at-rest
90
+ * marks (top-highlight, bottom under-shadow, baseline glass) with three
91
+ * disco accents on hover (specular swap, sparkle sweep, disco-grain).
92
+ *
93
+ * Reservation: disco fires on hover only. At rest the button reads as
94
+ * a Vignelli-restrained composed glass surface. The `--phase-color`
95
+ * cascade (provided by `<InstrumentChassis>` via `data-phase`) tints
96
+ * the disco-grain radial only on hover; idle is neutral.
97
+ *
98
+ * K.W6 Lane B — the canonical disco-grain + sparkle-sweep + specular
99
+ * recipe lifted to `@utility btn-audacious` (utilities.css). The Vue
100
+ * <DockTabButton> attaches `btn-audacious` automatically when the
101
+ * consumer passes `data-tier="primary"`. The dock-local rules below
102
+ * are STRICTLY the dock extension: structural shell (padding, base
103
+ * surface tint, min-height) + phase-tint extensions (hover radial
104
+ * uses `--phase-color`, plus the `[data-phase]` `::before` halo).
105
+ */
106
+ .dock-tab-button[data-tier="primary"] {
107
+ --dock-tab-min-height: 4rem;
108
+ padding-inline: 1.5rem;
109
+ background: color-mix(in srgb, var(--card) 60%, transparent);
110
+ color: var(--foreground);
111
+
112
+ /* Phase-tint hover override — same disco-grain composition as
113
+ * `btn-audacious`, but the radial uses `--phase-color` (instrument-
114
+ * cluster axis) instead of the canonical `--primary`. The `--paper-
115
+ * clean-texture` overlay and `--glass-specular` shadow stack are
116
+ * inherited from the underlying `btn-audacious` utility. */
117
+ /* AX.W52 D19 — the phase-tint hover radial DEMOTED: the prior
118
+ * `ellipse at 30% 30%` at 18% was a loud top-LEFT corner hotspot. Toned to
119
+ * 8% and the anchor shifted off the hard corner toward a softer top-biased
120
+ * ellipse (`40% 25%`) with a tighter `transparent 55%` falloff, so it reads
121
+ * as a surface lift rather than a corner glow — the disco hover identity
122
+ * survives, the egregious corner bloom does not. */
123
+ &:hover:not(:disabled) {
124
+ --glass-grain-opacity: var(--glass-grain-opacity-disco, 0.08);
125
+ background-image:
126
+ var(--paper-clean-texture),
127
+ radial-gradient(
128
+ ellipse at 40% 25%,
129
+ color-mix(
130
+ in srgb,
131
+ var(--phase-color, var(--foreground)) 8%,
132
+ transparent
133
+ ),
134
+ transparent 55%
135
+ );
136
+ background-blend-mode: overlay, normal;
137
+ background-size: var(--paper-texture-size), auto;
138
+ }
139
+
140
+ /* Q.W3.A.4 — phase-tint backplate halo at the pill wrapper.
141
+ *
142
+ * An inner glyph wrapper's own halo would be clipped by the pill's
143
+ * `overflow: hidden` and never escape the glyph box. This `::before`
144
+ * lifts the phase-tint to the pill itself so the glow composes with the
145
+ * whole CTA. Scoped to active phases — at idle / ready the pill stays
146
+ * neutral and inherits the W2.7 reservation ("disco fires on hover
147
+ * only"). */
148
+ /* AX.W52 D19 — the REST phase-halo `::before` (fires during a speedtest run
149
+ * on the most prominent dock control) DEMOTED on the same axis as the hover
150
+ * radial: 18%→8%, the hard `30% 30%` corner shifted to a softer `40% 25%`
151
+ * top-biased ellipse with a tighter `transparent 55%` falloff, and the
152
+ * `opacity: 1` dropped to 0.5 so the persistent run-time halo is a subtle
153
+ * surface lift, not a corner bloom that washes the pill for the whole run. */
154
+ &[data-phase]:not([data-phase="ready"]):not([data-phase="idle"])::before {
155
+ content: "";
156
+ position: absolute;
157
+ inset: 0;
158
+ border-radius: inherit;
159
+ background: radial-gradient(
160
+ ellipse at 40% 25%,
161
+ color-mix(
162
+ in srgb,
163
+ var(--phase-color, var(--foreground)) 8%,
164
+ transparent
165
+ )
166
+ 0%,
167
+ transparent 55%
168
+ );
169
+ pointer-events: none;
170
+ z-index: -1;
171
+ opacity: 0.5;
172
+ transition: opacity var(--duration-fast) var(--ease-standard);
173
+ }
174
+ }
175
+
176
+ /* Tier — secondary ──────────────────────────────────────────
177
+ *
178
+ * Companion to `data-tier="primary"`. Carries the same edge-light +
179
+ * edge-shadow skeu vocabulary at quieter weight: no disco accent, no
180
+ * sparkle, no curvature radial. Composes for icon-button consumers
181
+ * (chassis ActionCluster, SettingsCog) where the surface needs a
182
+ * glass-tier read but not the audacious primary punch. Per P.W1.B
183
+ * audit-C §3 — closes the four bare `<DockIconButton>` consumer sites
184
+ * (cog + back + retake + stop) without redefining the family. The
185
+ * secondary tier is a cross-control comma-group (tab + icon button), so it
186
+ * stays flat — nesting under one control would change coverage.
187
+ */
188
+ .dock-tab-button[data-tier="secondary"],
189
+ .dock-icon-button[data-tier="secondary"] {
190
+ background: color-mix(in srgb, var(--card) 50%, transparent);
191
+ border: 1px solid var(--glass-border-quiet);
192
+ box-shadow: var(--border-hairline), var(--glass-highlight);
193
+ }
194
+
195
+ .dock-tab-button[data-tier="secondary"]:hover:not(:disabled),
196
+ .dock-icon-button[data-tier="secondary"]:hover:not(:disabled) {
197
+ background: color-mix(in srgb, var(--card) 65%, transparent);
198
+ box-shadow:
199
+ var(--glass-specular),
200
+ 0 0.5px 0 0 rgb(0 0 0 / 0.06);
201
+ }
202
+ }
@@ -0,0 +1,94 @@
1
+ /* dock-controls/touch-floor.css — the tail overrides (AZ.W-CARVE partial 5 of 5;
2
+ carved out of dock-controls.css).
3
+
4
+ Two cohorts, both scoped overrides that MUST cascade AFTER the base control
5
+ families (so they @import last):
6
+ 1. the coarse-pointer per-button touch-target floor on the STANDALONE
7
+ `.dock-icon-button` (the in-dock floor is the `--dock-scale` × `max(…,44px)`
8
+ clamp; this is the no-`.glass-dock`-ancestor half).
9
+ 2. the vertical-dock rail SELECTED register (AX.W06 F2/F3 hoist +
10
+ AZ.W-REGISTER-IOS — the selected glyph reads warm-ink `--foreground` and
11
+ the leading-edge accent BAR is the translucent `--dock-selected-accent`
12
+ luminance-lift, the iOS-26/27 register).
13
+ Opens its OWN `@layer components`; @import-ed after triggers.css. */
14
+
15
+ @layer components {
16
+ /* AX.W45 D15 — coarse-pointer touch floor, button-level half. The IN-DOCK floor
17
+ is subsumed into the `--dock-scale` multiplier + the `max(…, 44px)` clamp in
18
+ the dock.css density cascade (the in-dock control-size grows ~1.5× past the
19
+ 44px target, the clamp guarantees the floor even below 1.0× scale). This
20
+ per-button rule is the STANDALONE half: a DockIconButton with NO `.glass-dock`
21
+ ancestor (a routed gear) has no density cascade lifting its size, so it keeps
22
+ the explicit `min-{block,inline}-size` floor. Scoped `:not(:where(.glass-dock
23
+ *))` so it does NOT double-stamp on an in-dock button (the cascade owns that —
24
+ one path per surface, no two-floor). Compact buttons opt out. */
25
+ @media (pointer: coarse) {
26
+ .dock-icon-button:not(.dock-icon-button--compact):not(:where(.glass-dock *)) {
27
+ min-block-size: var(--dock-touch-target, 2.75rem);
28
+ min-inline-size: var(--dock-touch-target, 2.75rem);
29
+ }
30
+ }
31
+
32
+ /* AX.W06 F2/F3 — the HOISTED refined rail nav-item polish. The demo's
33
+ `SidebarDock` dogfooded the active-category affordance (accent glyph tint +
34
+ a left-edge accent rule) as DEMO-PRIVATE chrome (`demo/layout/dock-nav.css`
35
+ `.demo-sidebar-item.is-active`), so a consumer reaching for a vertical nav
36
+ dock (AZ.W-DOCK-TAXONOMY — `orientation="vertical"`, the prior `variant="rail"`)
37
+ got the UN-refined bare `.is-active` colour shift. This hoists the refined
38
+ treatment into the shipped vertical-dock CSS so the demo == the shipped contract
39
+ (the demo no longer re-derives a worse rail by hand). The tap-squish press
40
+ feedback (the `:active` `--scale-press-dock` squish) + the right-anchored
41
+ tooltips are already the dock-control family + the consumer's `<Tooltip
42
+ side="right">` — this carries the active-item ACCENT, the half the variant
43
+ CSS did not own.
44
+
45
+ AZ.W-REGISTER-IOS — the SELECTED register is now the iOS luminance-lift, at
46
+ the ROOT (R3-6): the selected GLYPH reads warm-ink `--foreground` (NOT a
47
+ saturated brand hue — the prior `var(--dock-rail-active-accent, var(--primary))`
48
+ brand fallback is retired off the GLYPH), and the leading-edge accent BAR
49
+ demotes to `--dock-selected-accent` (a translucent foreground luminance-lift,
50
+ NOT a solid brand stripe). A selected rail item reads as the glass material-
51
+ lift plate (`--dock-control-active-bg` = `--glass-bg-floating`) + this quiet
52
+ luminance bar — the iOS-26/27 register. The `--dock-selected-accent` token
53
+ (offsets-sizing.css) is the SINGLE retint knob; the demo no longer overrides
54
+ it to `--viz-fourier` (the brand red survives only as static wordmark/viz/CTA
55
+ ink). The active state reads the SHIPPED four-state hooks the dock-control
56
+ family already activates (`.is-active`, `aria-current="page"`,
57
+ `[aria-pressed="true"]`). Scoped to a `.glass-dock.vertical` descendant
58
+ icon-button — a horizontal dock or the layer-switcher rail are untouched. */
59
+ .glass-dock.vertical .dock-icon-button {
60
+ position: relative;
61
+ }
62
+
63
+ .glass-dock.vertical
64
+ .dock-icon-button:is(.is-active, [aria-current="page"], [aria-pressed="true"]) {
65
+ --dock-active-color: var(--foreground);
66
+ color: var(--foreground);
67
+ }
68
+
69
+ /* The leading-edge accent rule — a short rounded bar pinned to the rail-leading
70
+ edge of the active nav item (the iOS / Figma side-rail selected-affordance).
71
+ `inset-inline-start` keys it off the writing-direction leading edge, so the
72
+ bar sits OUTSIDE the button on the rail's plate; `inset-block: <inset>` keeps
73
+ it short + centred. The width/inset all read `--dock-rail-accent-*` tokens so
74
+ the geometry is tunable from one place.
75
+
76
+ AZ.W-REGISTER-IOS — the bar paints `--dock-selected-accent` (a translucent
77
+ foreground luminance-lift), NOT the prior `var(--dock-rail-active-accent,
78
+ var(--primary))` saturated brand stripe. The selected read is the glass plate
79
+ + this quiet luminance bar — the iOS register, no brand hue on an interactive
80
+ state. `--dock-selected-accent` is the single retint knob (offsets-sizing.css). */
81
+ .glass-dock.vertical
82
+ .dock-icon-button:is(.is-active, [aria-current="page"], [aria-pressed="true"])::before {
83
+ content: "";
84
+ position: absolute;
85
+ inset-block: var(--dock-rail-accent-inset, 18%);
86
+ inset-inline-start: calc(
87
+ -1 * var(--dock-rail-accent-width, 3px) - var(--dock-rail-accent-gap, 2px)
88
+ );
89
+ width: var(--dock-rail-accent-width, 3px);
90
+ border-radius: var(--radius-pill);
91
+ background: var(--dock-selected-accent);
92
+ pointer-events: none;
93
+ }
94
+ }
@@ -0,0 +1,128 @@
1
+ /* dock-controls/triggers.css — the `.dock-select-trigger` /
2
+ `.dock-dropdown-trigger` picker family (AZ.W-CARVE partial 4 of 5; carved out
3
+ of dock-controls.css).
4
+
5
+ The shared base rule, the glass-translucent hover (AX.W45 DK2 — the pickers
6
+ off the opaque `--muted` flat plate onto the FAMILY hover token, with the
7
+ `--scale-hover-dock` lift unified into the shared hover group), the iOS press
8
+ darken (AZ.W-REGISTER-IOS), the focus + open/active fill (hover ≠ open), and
9
+ the `__chevron` open-flip. Opens its OWN `@layer components`; @import-ed after
10
+ tab-button.css. */
11
+
12
+ @layer components {
13
+ .dock-select-trigger,
14
+ .dock-dropdown-trigger {
15
+ display: inline-flex;
16
+ align-items: center;
17
+ justify-content: center;
18
+ flex-shrink: 0;
19
+ /* AQ.W3 §W3.2 identity base */
20
+ scale: 1;
21
+ gap: var(--dock-trigger-gap, 0.25rem);
22
+ min-height: var(--dock-trigger-min-height, auto);
23
+ padding: var(--dock-trigger-padding-block, 0.25rem)
24
+ var(--dock-trigger-padding-inline, 0.5rem);
25
+ white-space: nowrap;
26
+ cursor: pointer;
27
+ border: none;
28
+ background: transparent;
29
+ border-radius: var(--dock-control-radius, var(--radius-pill));
30
+ /* Shares the dock-icon-button legibility base (`--dock-fg-on-aurora`). */
31
+ color: color-mix(
32
+ in srgb,
33
+ var(--dock-fg-on-aurora, var(--foreground))
34
+ calc(var(--opacity-icon-muted) * 100%),
35
+ transparent
36
+ );
37
+ outline: none;
38
+ transition:
39
+ background-color var(--dock-motion-fast),
40
+ color var(--dock-motion-fast),
41
+ /* AT.W7-dock-b — press micro-feedback spring (transform-scoped). */ scale
42
+ var(--dock-press-spring),
43
+ opacity var(--dock-motion-fast);
44
+ }
45
+
46
+ /* AX.W45 DK2 — the pickers move OFF the opaque `--muted` flat plate onto the
47
+ glass-translucent FAMILY hover token (the dock substrate shows through, not a
48
+ solid cream rectangle over the glass — the loudest "not right" tell). hover ≠
49
+ open now: the active/open rule below reads `--dock-control-active-bg` (a tint
50
+ LADDER step above hover), so an OPEN dropdown reads distinctly from a merely-
51
+ hovered one (paired with the chevron flip). ONE source per state, glass-aware
52
+ across the whole dock-control family. */
53
+ /* AX.W45-TUNE Q3/C3 — the picker hover lift is now in the SHARED group: the
54
+ `--scale-hover-dock` scale fires on BOTH select + dropdown (it used to fire on
55
+ the dropdown ONLY — the split-brain hover the DK2 fix left). All four dock
56
+ control members (icon/tab/select/dropdown) now lift on hover as one register,
57
+ mirroring the unified glass-tier `--dock-control-hover-bg` cross-fade. The
58
+ lone `.dock-dropdown-trigger:hover` scale rule is RETIRED into this group. */
59
+ .dock-select-trigger:hover:not(:disabled),
60
+ .dock-dropdown-trigger:hover:not(:disabled) {
61
+ background: var(--dock-control-hover-bg);
62
+ color: var(--btn-hover-color, var(--foreground));
63
+ scale: var(--scale-hover-dock);
64
+ }
65
+
66
+ /* AZ.W-REGISTER-IOS — the iOS press darken-plus-shrink (see the icon-button). */
67
+ .dock-select-trigger:active:not(:disabled),
68
+ .dock-dropdown-trigger:active:not(:disabled) {
69
+ background: var(--dock-control-press-bg);
70
+ scale: var(--scale-press-dock);
71
+ }
72
+
73
+ .dock-select-trigger:focus:not(:focus-visible),
74
+ .dock-dropdown-trigger:focus:not(:focus-visible) {
75
+ box-shadow: none;
76
+ outline: none;
77
+ }
78
+
79
+ /* focus-visible ring + disabled paint hoisted to the shared `:where()`
80
+ group in dock.css; this rule adds only the box-shadow fade transition.
81
+ `scale` keeps the AT.W7-dock-b press micro-feedback spring. */
82
+ .dock-select-trigger:focus-visible,
83
+ .dock-dropdown-trigger:focus-visible {
84
+ transition:
85
+ background-color var(--dock-motion-fast),
86
+ color var(--dock-motion-fast),
87
+ scale var(--dock-press-spring),
88
+ opacity var(--dock-motion-fast),
89
+ box-shadow var(--dock-motion-fast);
90
+ }
91
+
92
+ .dock-select-trigger:is(
93
+ .is-active,
94
+ .active,
95
+ [aria-expanded="true"],
96
+ [aria-pressed="true"]
97
+ ),
98
+ .dock-dropdown-trigger:is(
99
+ .is-active,
100
+ .active,
101
+ [aria-expanded="true"],
102
+ [aria-pressed="true"]
103
+ ) {
104
+ /* AX.W45 DK2 — the OPEN affordance: a translucent active fill a ladder step
105
+ above hover (NOT the opaque `--muted`, NOT byte-identical to hover). OPEN =
106
+ (chevron up + this active fill); HOVER = (the lighter hover fill, chevron
107
+ down) — the smooth glass-aware four-state read the picker lacked. */
108
+ background: var(--dock-control-active-bg);
109
+ color: var(--foreground);
110
+ }
111
+
112
+ .dock-select-trigger__chevron {
113
+ width: var(--dock-trigger-icon-size, 0.75rem);
114
+ height: var(--dock-trigger-icon-size, 0.75rem);
115
+ flex-shrink: 0;
116
+ opacity: 0.5;
117
+ /* Individual-transform identity base (AQ.W3 §W3.2) — `rotate:` longhand
118
+ for family consistency (not a stacking-context hazard: child glyph).
119
+ AT.W7-dock-b — the open/close flip carries the press micro-feedback
120
+ spring (transform-scoped). */
121
+ rotate: 0deg;
122
+ transition: rotate var(--dock-press-spring);
123
+ }
124
+
125
+ .dock-select-trigger[data-state="open"] .dock-select-trigger__chevron {
126
+ rotate: 180deg;
127
+ }
128
+ }