@mkbabb/glass-ui 3.12.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CardAction-XH4YBVEK.js +158 -0
- package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-DdtWXxOK.js} +58 -53
- package/dist/{ContextMenuSubContent-Bhg4f5jX.js → ContextMenuSubContent-B0Vs6atR.js} +4 -4
- package/dist/{DataTable-CUHMukiQ.js → DataTable-C464Zbqd.js} +99 -97
- package/dist/DialogContent-DDE6pQBU.js +103 -0
- package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-8eZbdmPc.js} +2 -2
- package/dist/FadingScroll-DwNnvKMs.js +76 -0
- package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-Dpzwvc4t.js} +1 -1
- package/dist/IconChip-BDw1j5mu.js +54 -0
- package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-DSjasZIt.js} +1 -1
- package/dist/MetricBadge-BpC0R_Ec.js +79 -0
- package/dist/{Notification-DLMhblXR.js → Notification-DKjKsQq8.js} +10 -10
- package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-1VtwDSgf.js} +3 -3
- package/dist/PopoverContent-BTorlp--.js +127 -0
- package/dist/{Progress-iEuD9pxG.js → Progress-hAT4gqGH.js} +97 -77
- package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-CUVFTWk2.js} +2 -2
- package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-C1jb3b3K.js} +24 -8
- package/dist/{Switch-Ch-k3Rv-.js → Switch-Dr--uLGH.js} +2 -2
- package/dist/{Toaster-1rYWrmAm.js → Toaster-Bm_HQSpc.js} +55 -52
- package/dist/{ToggleGroupItem-COu_4IW4.js → ToggleGroupItem-Dzk9hWsF.js} +18 -22
- package/dist/animated-digit.js +3 -3
- package/dist/api/index.d.ts +10 -4
- package/dist/api.js +1 -1
- package/dist/aurora.js +113 -98
- package/dist/{badge-CaoFJzRb.js → badge-UILT_3pZ.js} +1 -1
- package/dist/badge.js +1 -1
- package/dist/{button-DN39cGqL.js → button-BNDWhAZb.js} +12 -12
- package/dist/button.js +1 -1
- package/dist/card.js +1 -1
- package/dist/carousel.d.ts +1 -1
- package/dist/carousel.js +101 -145
- package/dist/{check-BBKKKSTf.js → check-njhk-vfu.js} +1 -1
- package/dist/{chevron-down-BSkTP2aL.js → chevron-down-DKkxb4VV.js} +1 -1
- package/dist/{chevron-right-sDM0Yvrf.js → chevron-right-CPXbqQQz.js} +1 -1
- package/dist/{chevron-up-CCOD_FTz.js → chevron-up-n_24SqI-.js} +1 -1
- package/dist/coalesceMetric-5qIeZnTx.js +13 -0
- package/dist/collapsible.js +1 -1
- package/dist/{color-C5ls_QF7.js → color-DweYl7pE.js} +9 -7
- package/dist/color-swatch.d.ts +1 -0
- package/dist/color-swatch.js +47 -0
- package/dist/color.js +1 -1
- package/dist/command.js +1 -1
- package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +8 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +16 -45
- package/dist/components/custom/aurora/constants/renderMode.d.ts +2 -0
- package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
- package/dist/components/custom/color-swatch/ColorSwatch.vue.d.ts +22 -0
- package/dist/components/custom/color-swatch/index.d.ts +1 -0
- package/dist/components/custom/configurator/Configurator.vue.d.ts +19 -8
- package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +16 -0
- package/dist/components/custom/constellation/Constellation.vue.d.ts +23 -143
- package/dist/components/custom/constellation/composables/createConstellationField.d.ts +41 -0
- package/dist/components/custom/constellation/composables/useConstellation.d.ts +26 -0
- package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
- package/dist/components/custom/constellation/constants.d.ts +61 -0
- package/dist/components/custom/constellation/constellationDraw.d.ts +30 -0
- package/dist/components/custom/constellation/constellationField.d.ts +3 -403
- package/dist/components/custom/constellation/constellationInteraction.d.ts +132 -0
- package/dist/components/custom/constellation/constellationTypes.d.ts +369 -0
- package/dist/components/custom/constellation/index.d.ts +5 -2
- package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
- package/dist/components/custom/dock/DockRail.vue.d.ts +89 -0
- package/dist/components/custom/dock/DockSection.vue.d.ts +69 -0
- package/dist/components/custom/dock/DockSeparator.vue.d.ts +49 -1
- package/dist/components/custom/dock/DockTabButton.vue.d.ts +5 -6
- package/dist/components/custom/dock/GlassDock.vue.d.ts +5 -118
- package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
- package/dist/components/custom/dock/composables/index.d.ts +1 -0
- package/dist/components/custom/dock/composables/useDockClickIntegrity.d.ts +23 -0
- package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
- package/dist/components/custom/dock/composables/useDockOrientationMorph.d.ts +44 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +165 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
- package/dist/components/custom/dock/constants.d.ts +83 -0
- package/dist/components/custom/dock/index.d.ts +5 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +15 -37
- package/dist/components/custom/fading-scroll/FadingScroll.vue.d.ts +25 -0
- package/dist/components/custom/fading-scroll/composables/useFadingScroll.d.ts +31 -0
- package/dist/components/custom/fading-scroll/constants.d.ts +19 -0
- package/dist/components/custom/fading-scroll/index.d.ts +2 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +7 -0
- package/dist/components/custom/fourier-field/index.d.ts +1 -1
- package/dist/components/custom/fourier-field/math.d.ts +34 -0
- package/dist/components/custom/fourier-field/presets.d.ts +54 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +8 -0
- package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
- package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
- package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +21 -8
- package/dist/components/custom/goo-blob/constants.d.ts +57 -0
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
- package/dist/components/custom/handmark/brush.d.ts +33 -6
- package/dist/components/custom/handmark/{useHandMark.d.ts → composables/useHandMark.d.ts} +6 -4
- package/dist/components/custom/handmark/constants.d.ts +39 -0
- package/dist/components/custom/handmark/geometry.d.ts +14 -12
- package/dist/components/custom/handmark/index.d.ts +8 -2
- package/dist/components/custom/handmark/types.d.ts +9 -0
- package/dist/components/custom/icon-chip/IconChip.vue.d.ts +4 -0
- package/dist/components/custom/icon-chip/index.d.ts +2 -0
- package/dist/components/custom/icon-chip/types.d.ts +72 -0
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +17 -4
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +37 -0
- package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +6 -0
- package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +6 -0
- package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +6 -0
- package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +11 -18
- package/dist/components/custom/metric-badge/index.d.ts +1 -0
- package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +15 -4
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +6 -4
- package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +39 -0
- package/dist/components/custom/pager-dots/index.d.ts +2 -0
- package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +20 -25
- package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +30 -21
- package/dist/components/custom/tabs/constants.d.ts +18 -0
- package/dist/components/custom/tabs/index.d.ts +1 -1
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +14 -0
- package/dist/components/ui/_shared/index.d.ts +2 -0
- package/dist/components/ui/_shared/menuItemVariants.d.ts +19 -0
- package/dist/components/ui/_shared/useSurfaceAxis.d.ts +41 -0
- package/dist/components/ui/card/Card.vue.d.ts +16 -4
- package/dist/components/ui/carousel/index.d.ts +0 -1
- package/dist/components/ui/command/Command.vue.d.ts +3 -0
- package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -3
- package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts +5 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
- package/dist/components/ui/index.d.ts +0 -1
- package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +6 -3
- package/dist/components/ui/popover/PopoverContent.vue.d.ts +3 -0
- package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +14 -3
- package/dist/components/ui/select/SelectTrigger.vue.d.ts +27 -4
- package/dist/components/ui/sheet/SheetContent.vue.d.ts +6 -0
- package/dist/components/ui/skeleton/Skeleton.vue.d.ts +3 -0
- package/dist/components/ui/slider/index.d.ts +22 -19
- package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +4 -1
- package/dist/components/ui/toast/use-toast.d.ts +2 -2
- package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
- package/dist/components/ui/toggle/index.d.ts +1 -1
- package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +1 -7
- package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +1 -3
- package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +0 -13
- package/dist/composables/color/index.d.ts +12 -0
- package/dist/composables/dark/useGlobalDark.d.ts +14 -12
- package/dist/composables/glass/index.d.ts +0 -1
- package/dist/composables/glass/useGlassBackdropLuminance.d.ts +59 -0
- package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
- package/dist/composables/motion/core/index.d.ts +1 -1
- package/dist/composables/motion/curves.d.ts +48 -0
- package/dist/composables/motion/index.d.ts +2 -0
- package/dist/composables/motion/springPresets.d.ts +33 -0
- package/dist/composables/motion/suite.d.ts +2 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +85 -0
- package/dist/composables/motion/useSpringMount.d.ts +1 -1
- package/dist/composables/motion/useViewTransition.d.ts +36 -1
- package/dist/configurator.js +1 -1
- package/dist/confirm-dialog.js +3 -3
- package/dist/constellation.js +373 -261
- package/dist/context-menu.js +2 -2
- package/dist/controls.js +48 -14
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/dialog.js +2 -2
- package/dist/dock.js +901 -372
- package/dist/dockContext-Bu1Avy-a.js +17 -0
- package/dist/dom.js +5 -5
- package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-BJ7E9js_.js} +11 -8
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +44 -81
- package/dist/fading-scroll.d.ts +1 -0
- package/dist/fading-scroll.js +2 -0
- package/dist/forms.js +5 -5
- package/dist/fourier-field.js +140 -104
- package/dist/fourier-math.js +2 -2
- package/dist/glass-panel.js +90 -21
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +230 -236
- package/dist/goo-blob.js +264 -228
- package/dist/handmark.js +203 -159
- package/dist/header-ribbon.js +1 -1
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-chip.d.ts +1 -0
- package/dist/icon-chip.js +2 -0
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +3 -5
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +28 -18
- package/dist/{math-DTpRVC0e.js → math-DeuJwLFx.js} +26 -2
- package/dist/{menuItemVariants-CCoBNkU5.js → menuItemVariants-DWRQXBxJ.js} +10 -4
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +29 -22
- package/dist/metric-stack.js +35 -34
- package/dist/{minimize-2-lcXOuc6V.js → minimize-2-BV31Ob_h.js} +1 -1
- package/dist/motion-core.js +32 -136
- package/dist/motion-curves.d.ts +1 -0
- package/dist/motion-curves.js +130 -0
- package/dist/motion.js +38 -37
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.d.ts +1 -0
- package/dist/pager-dots.js +91 -0
- package/dist/paper-backdrop.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/progress.js +1 -1
- package/dist/pulse.js +1 -1
- package/dist/reactive.js +2 -2
- package/dist/scrolling-text.js +1 -1
- package/dist/{search-nbkvr2dC.js → search-BSGrf2Sk.js} +1 -1
- package/dist/search.js +10 -10
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/sheet-CquRYOAw.js +218 -0
- package/dist/sheet.js +1 -1
- package/dist/{slider-ClgpP7EB.js → slider-DQ95MET2.js} +8 -8
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +3 -3
- package/dist/springPresets-WXaLbu8u.js +40 -0
- package/dist/stacked-icons.js +6 -6
- package/dist/styles/animations.css +25 -125
- package/dist/styles/cards.css +55 -0
- package/dist/styles/components.css +4 -1
- package/dist/styles/configurator.css +77 -0
- package/dist/styles/dock/density.css +19 -0
- package/dist/styles/dock/layer-group.css +83 -25
- package/dist/styles/dock/layers.css +23 -1
- package/dist/styles/dock/morph-bridge.css +123 -0
- package/dist/styles/dock/morph.css +175 -45
- package/dist/styles/dock/overflow.css +66 -1
- package/dist/styles/dock/rail-extend.css +397 -0
- package/dist/styles/dock/section.css +59 -0
- package/dist/styles/dock/shell.css +97 -110
- package/dist/styles/dock-controls/dark-mode-toggle.css +109 -0
- package/dist/styles/dock-controls/icon-button.css +143 -0
- package/dist/styles/dock-controls/tab-button.css +143 -0
- package/dist/styles/dock-controls/touch-floor.css +94 -0
- package/dist/styles/dock-controls/triggers.css +135 -0
- package/dist/styles/dock-controls.css +30 -595
- package/dist/styles/dock.css +8 -3
- package/dist/styles/drawer.css +48 -0
- package/dist/styles/feedback-tone.css +104 -0
- package/dist/styles/floating-panel.css +17 -0
- package/dist/styles/glass/a11y-fallback.css +245 -0
- package/dist/styles/glass/ladder.css +383 -0
- package/dist/styles/glass/material.css +238 -0
- package/dist/styles/glass/progress-rail.css +78 -0
- package/dist/styles/glass/squircle.css +66 -0
- package/dist/styles/glass/surface-axis.css +113 -0
- package/dist/styles/glass/surfaces.css +382 -0
- package/dist/styles/glass-refract.css +2 -0
- package/dist/styles/glass.css +34 -1188
- package/dist/styles/hover-popover.css +2 -0
- package/dist/styles/icon-chip.css +149 -0
- package/dist/styles/index.css +94 -18
- package/dist/styles/instrument-chassis.css +46 -0
- package/dist/styles/menu.css +127 -0
- package/dist/styles/paper.css +2 -68
- package/dist/styles/segmented-tabs.css +346 -0
- package/dist/styles/select.css +50 -0
- package/dist/styles/theme/bridges.css +347 -0
- package/dist/styles/theme/dark.css +7 -0
- package/dist/styles/theme/literals.css +94 -0
- package/dist/styles/theme/radius.css +95 -0
- package/dist/styles/theme.css +26 -529
- package/dist/styles/tokens/color-radius.css +287 -0
- package/dist/styles/tokens/dark-arm.css +308 -0
- package/dist/styles/tokens/glass.css +500 -0
- package/dist/styles/tokens/light-dark.css +187 -0
- package/dist/styles/tokens/offsets-sizing.css +562 -0
- package/dist/styles/tokens/property-regs.css +162 -0
- package/dist/styles/tokens/scale-paper.css +409 -0
- package/dist/styles/tokens/scheme-motion.css +352 -0
- package/dist/styles/tokens/shadow.css +166 -0
- package/dist/styles/tokens.css +22 -2360
- package/dist/styles/transitions.css +7 -7
- package/dist/styles/typography/scale.css +153 -0
- package/dist/styles/typography/semantic.css +220 -0
- package/dist/styles/typography/utilities.css +159 -0
- package/dist/styles/typography.css +23 -453
- package/dist/styles/utilities/a11y-overrides.css +169 -0
- package/dist/styles/utilities/animate.css +26 -0
- package/dist/styles/utilities/base.css +541 -0
- package/dist/styles/utilities/btn.css +218 -0
- package/dist/styles/utilities/components.css +317 -0
- package/dist/styles/utilities.css +19 -1318
- package/dist/styles/view-transition.css +4 -52
- package/dist/switch.js +1 -1
- package/dist/tabs.js +161 -181
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +3 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-C_3wZLx4.js} +1 -1
- package/dist/useConfiguratorState-kiIlun8I.js +303 -0
- package/dist/useLiquidFlex-C12hXwOZ.js +30 -0
- package/dist/useRAFLoop-CdwJ7284.js +109 -0
- package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-D7bYU2RK.js} +1 -1
- package/dist/useSpecularTracking-Bo5su68i.js +32 -0
- package/dist/useSpringMount-CvopqiFr.js +108 -0
- package/dist/useSurfaceAxis-CMnF2zHb.js +7 -0
- package/dist/{useTouchGate-WFyJYsth.js → useTouchGate-28Tk2-t2.js} +1 -1
- package/dist/useViewTransition-COsPjQVZ.js +47 -0
- package/dist/utils/coalesceMetric.d.ts +29 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/vReveal-D9k0jADx.js +10 -0
- package/dist/watercolor-dot.js +22 -13
- package/dist/{x-Dfsegz9Y.js → x-BUwTKe50.js} +1 -1
- package/package.json +134 -50
- package/src/styles/animations.css +25 -125
- package/src/styles/cards.css +53 -0
- package/src/styles/configurator.css +77 -0
- package/src/styles/dock/density.css +19 -0
- package/src/styles/dock/layer-group.css +83 -25
- package/src/styles/dock/layers.css +23 -1
- package/src/styles/dock/morph-bridge.css +123 -0
- package/src/styles/dock/morph.css +175 -45
- package/src/styles/dock/overflow.css +66 -1
- package/src/styles/dock/rail-extend.css +397 -0
- package/src/styles/dock/section.css +59 -0
- package/src/styles/dock/shell.css +97 -110
- package/src/styles/dock-controls/dark-mode-toggle.css +109 -0
- package/src/styles/dock-controls/icon-button.css +143 -0
- package/src/styles/dock-controls/tab-button.css +143 -0
- package/src/styles/dock-controls/touch-floor.css +94 -0
- package/src/styles/dock-controls/triggers.css +135 -0
- package/src/styles/dock-controls.css +30 -595
- package/src/styles/dock.css +8 -3
- package/src/styles/drawer.css +42 -0
- package/src/styles/feedback-tone.css +104 -0
- package/src/styles/floating-panel.css +15 -0
- package/src/styles/glass/a11y-fallback.css +245 -0
- package/src/styles/glass/ladder.css +383 -0
- package/src/styles/glass/material.css +238 -0
- package/src/styles/glass/progress-rail.css +78 -0
- package/src/styles/glass/squircle.css +66 -0
- package/src/styles/glass/surface-axis.css +113 -0
- package/src/styles/glass/surfaces.css +382 -0
- package/src/styles/glass.css +34 -1188
- package/src/styles/icon-chip.css +149 -0
- package/src/styles/index.css +93 -17
- package/src/styles/instrument-chassis.css +42 -0
- package/src/styles/menu.css +127 -0
- package/src/styles/paper.css +2 -68
- package/src/styles/segmented-tabs.css +340 -0
- package/src/styles/select.css +50 -0
- package/src/styles/theme/bridges.css +347 -0
- package/src/styles/theme/dark.css +7 -0
- package/src/styles/theme/literals.css +94 -0
- package/src/styles/theme/radius.css +95 -0
- package/src/styles/theme.css +26 -529
- package/src/styles/tokens/color-radius.css +287 -0
- package/src/styles/tokens/dark-arm.css +308 -0
- package/src/styles/tokens/glass.css +500 -0
- package/src/styles/tokens/light-dark.css +187 -0
- package/src/styles/tokens/offsets-sizing.css +562 -0
- package/src/styles/tokens/property-regs.css +162 -0
- package/src/styles/tokens/scale-paper.css +409 -0
- package/src/styles/tokens/scheme-motion.css +352 -0
- package/src/styles/tokens/shadow.css +166 -0
- package/src/styles/tokens.css +22 -2360
- package/src/styles/transitions.css +7 -7
- package/src/styles/typography/scale.css +153 -0
- package/src/styles/typography/semantic.css +220 -0
- package/src/styles/typography/utilities.css +159 -0
- package/src/styles/typography.css +23 -453
- package/src/styles/utilities/a11y-overrides.css +169 -0
- package/src/styles/utilities/animate.css +26 -0
- package/src/styles/utilities/base.css +541 -0
- package/src/styles/utilities/btn.css +218 -0
- package/src/styles/utilities/components.css +317 -0
- package/src/styles/utilities.css +19 -1318
- package/src/styles/view-transition.css +4 -52
- package/dist/CardAction-DuArVky-.js +0 -157
- package/dist/DeckProgress-Dmk4_AKN.js +0 -23
- package/dist/DialogContent-BRkT1cjP.js +0 -100
- package/dist/InstrumentRail-CUJ05YVG.js +0 -44
- package/dist/MetricBadge-BZVWIxNy.js +0 -80
- package/dist/PopoverContent-BId6ggf_.js +0 -121
- package/dist/TabsList-B8CVOQPC.js +0 -101
- package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
- package/dist/components/custom/deck-progress/index.d.ts +0 -2
- package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
- package/dist/components/custom/dialog-native/index.d.ts +0 -1
- package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
- package/dist/components/custom/instrument-rail/index.d.ts +0 -2
- package/dist/components/ui/carousel/CarouselDots.vue.d.ts +0 -4
- package/dist/composables/motion/useRouteTransition.d.ts +0 -42
- package/dist/deck-progress.d.ts +0 -1
- package/dist/deck-progress.js +0 -2
- package/dist/dockContext-BKeIMmNk.js +0 -9
- package/dist/instrument-rail.d.ts +0 -1
- package/dist/instrument-rail.js +0 -2
- package/dist/sheet-VZEtNFvO.js +0 -214
- package/dist/styles/instrument-rail.css +0 -127
- package/dist/useConfiguratorState-DxAqksK6.js +0 -287
- package/dist/useGlassRenderer-D7YGOYiM.js +0 -69
- package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
- package/dist/useSpringMount-BJSHcLl3.js +0 -113
- package/dist/useViewTransition-DaN5Zrox.js +0 -21
- package/dist/vReveal-zUIQk-rJ.js +0 -53
- package/src/styles/instrument-rail.css +0 -127
- /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-C_s6fG7r.js} +0 -0
- /package/dist/{ContextMenuContent-DDa0v27s.js → ContextMenuContent-ON3x7cuk.js} +0 -0
- /package/dist/{HoverCardContent-B6CcQ8He.js → HoverCardContent-DkMaQzH5.js} +0 -0
- /package/dist/{Input-xuDwALQR.js → Input-DVG_J0ne.js} +0 -0
- /package/dist/{InstrumentChassis-C2f6cBaQ.js → InstrumentChassis-UUJX0-mW.js} +0 -0
- /package/dist/{Label-zRfbQdCn.js → Label-Ck9SWEKM.js} +0 -0
- /package/dist/{ModalOverlay-B1GkAjNb.js → ModalOverlay-CkPRRgl_.js} +0 -0
- /package/dist/{PaperBackdrop-CqwjnfLv.js → PaperBackdrop-nBKe0vkB.js} +0 -0
- /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-Dcczq44n.js} +0 -0
- /package/dist/{SelectSeparator-C4Ql0gzV.js → SelectSeparator-DK2y1Bun.js} +0 -0
- /package/dist/{Separator-D7sD7RKj.js → Separator-BArl4OaB.js} +0 -0
- /package/dist/{TooltipProvider-CmZzCuaG.js → TooltipProvider-B3MkB_8P.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-CBt_VvXa.js} +0 -0
- /package/dist/{compile-BOXjLUxu.js → compile-EXXzEr1q.js} +0 -0
- /package/dist/{constants-yKeKnE84.js → constants-BPOqYJAm.js} +0 -0
- /package/dist/{createContext-B44Sah_H.js → createContext-B2RaZ-b8.js} +0 -0
- /package/dist/{createLucideIcon-B6uNAU9G.js → createLucideIcon-DydS2qgk.js} +0 -0
- /package/dist/{presets-BP_ALM0m.js → presets-BW2b-fr1.js} +0 -0
- /package/dist/{prng-D27-B3tK.js → prng-Cg22zv8g.js} +0 -0
- /package/dist/{supportsCssTimeline-C5oe0lnD.js → supportsCssTimeline-BWenxvHU.js} +0 -0
- /package/dist/{useGlobalDark-CAhOXNLO.js → useGlobalDark-C28t0VWJ.js} +0 -0
- /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
- /package/dist/{useInterval-Dsmqwi03.js → useInterval-CNdua40W.js} +0 -0
- /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
- /package/dist/{useResizeObserver-CWCbk5Px.js → useResizeObserver-V6nq5gJb.js} +0 -0
- /package/dist/{useResolveTokenColor-r9pnNjqK.js → useResolveTokenColor-NUG2zYAW.js} +0 -0
- /package/dist/{useSortable-C8ReQ50P.js → useSortable-BVqlJRBR.js} +0 -0
- /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-NmBM5V_4.js} +0 -0
- /package/dist/{useTimer-3xqf_54b.js → useTimer-B_PAasDL.js} +0 -0
- /package/dist/{useUserInvalidAria-DoJKMZ3s.js → useUserInvalidAria-CDfJuakL.js} +0 -0
- /package/dist/{useViewportReady-RIr5Wgkh.js → useViewportReady-CvBcCYDf.js} +0 -0
|
@@ -64,6 +64,36 @@
|
|
|
64
64
|
stacking-context guarantee). Covers every dock scale site. */
|
|
65
65
|
scale: 1;
|
|
66
66
|
position: relative;
|
|
67
|
+
/* AZ.W-ADAPTIVE-AUTO Arm 1 — the dock self-darkens over light backdrops by
|
|
68
|
+
default via the UNCONDITIONAL `:where(.glass-dock)` self-engage rule in
|
|
69
|
+
dock/morph.css (mirroring the overlay band's `ladder.css:169`): it re-points
|
|
70
|
+
the inheriting `--glass-tint-source`/`--glass-tint-strength` directly on the
|
|
71
|
+
dock root, so the shell + chassis + held/open tiers darken toward warm-ink
|
|
72
|
+
with NO consumer opt-in (a dock floats over arbitrary — frequently light —
|
|
73
|
+
page content). `--glass-backdrop: light` is KEPT here so a consumer's
|
|
74
|
+
DESCENDANT nested-glass inside the dock also reads the bright bucket via the
|
|
75
|
+
ancestor-querying `@container` block in dock/morph.css (CSS style queries
|
|
76
|
+
never self-match, so this declaration alone is inert for the dock's OWN
|
|
77
|
+
plate — the self-engage rule, not this token, darkens the dock). */
|
|
78
|
+
--glass-backdrop: light;
|
|
79
|
+
/* AY.W-A11Y-PERF O-4 — paint containment so the maximal-glass nested
|
|
80
|
+
backdrop-filter sample does not escape the dock box (the standard nested-
|
|
81
|
+
backdrop-cost mitigation; the Button-in-glass-in-dock stack re-samples the
|
|
82
|
+
already-blurred buffer at each level without it). */
|
|
83
|
+
/* BA.W-DOCK-GEOMETRY contain:paint AUDIT verdict (a) — the control-plate
|
|
84
|
+
clearance fix (the `--dock-control-safe-inset` painted-plate inset, scope
|
|
85
|
+
1) + the scroll-port cross-axis un-clip (scope 2) keep the maximal
|
|
86
|
+
hover/active control plate INSIDE the dock padding box: the inset plate is
|
|
87
|
+
centered in its cell (≥1px slack/side at hover), the cell sits flush at the
|
|
88
|
+
dock content edge, and the `--dock-padding-block` (≈6px) padding holds the
|
|
89
|
+
plate ≥7px clear of the `contain: paint` border-box edge on the block axis.
|
|
90
|
+
So `contain: paint` is the NON-proximate second clip box (the lane's
|
|
91
|
+
`probe-bottomdock-nocontain.png` forced-root probe proved the inner
|
|
92
|
+
scroll-port box was proximate, not this) and it is UNEDITED here — the
|
|
93
|
+
inset + freed cross axis suffice, no containment lift on the control-plate
|
|
94
|
+
band. The π readback (W-DOCK-GEOMETRY-DELTA.md) records the live
|
|
95
|
+
plate-inside-padding margin number that binds this verdict. */
|
|
96
|
+
contain: paint;
|
|
67
97
|
display: inline-flex;
|
|
68
98
|
align-items: center;
|
|
69
99
|
/* AW.W1 — the dock does NOT establish a default inline-size container.
|
|
@@ -167,17 +197,33 @@
|
|
|
167
197
|
scrolls — the scroll port only engages on real over-cap content. The
|
|
168
198
|
block-axis morph clip stays `data-morphing`-gated above; this is the
|
|
169
199
|
AT-REST port only. Consumers set `--dock-max-block-size` per-instance to
|
|
170
|
-
anchor the column to the viewport without re-deriving the scroll plumbing.
|
|
171
|
-
|
|
172
|
-
|
|
200
|
+
anchor the column to the viewport without re-deriving the scroll plumbing.
|
|
201
|
+
|
|
202
|
+
BA.W-DOCK-GEOMETRY (DC-1) — the port is now GATED behind the `dock-scroll-y`
|
|
203
|
+
opt-in (`overflow="scroll"`), NOT unconditional on every `.vertical.
|
|
204
|
+
always-expanded`. THE ROOT: `overflow-y: auto` is a scroll value, and CSS
|
|
205
|
+
Overflow §3 FORCES the sibling `overflow-x: visible` to COMPUTE to `auto` —
|
|
206
|
+
so the F6 pin never survived, and EVERY at-rest vertical dock (even a
|
|
207
|
+
fit-content shell that never scrolls) paid the cross-axis inline clip,
|
|
208
|
+
slicing a control's inset plate left/right (the live π readback measured
|
|
209
|
+
`overflow-x: auto` on the grow-to-fit SidebarDock). A vertical dock that
|
|
210
|
+
genuinely needs the cap+scroll opts IN via `overflow="scroll"` (the
|
|
211
|
+
`.dock-scroll-y` port in overflow.css, the SAME plumbing the F6 comment names);
|
|
212
|
+
a grow-to-fit vertical shell stays `overflow: visible` (line 186) on BOTH axes
|
|
213
|
+
so its inset control plate paints past the track. The fit-content shell pays
|
|
214
|
+
NO cross-axis clip for zero scroll benefit — the goal criterion's "the
|
|
215
|
+
scroll-port cross-axis clip no longer fires on a fit-content shell that never
|
|
216
|
+
scrolls", honored at the geometry root. */
|
|
217
|
+
.glass-dock.vertical.dock-scroll-y.always-expanded:not([data-morphing]),
|
|
218
|
+
.glass-dock.vertical.dock-scroll-y.expanded:not([data-morphing]) {
|
|
173
219
|
overflow-x: visible;
|
|
174
220
|
overflow-y: auto;
|
|
175
221
|
scrollbar-width: none;
|
|
176
222
|
overscroll-behavior-y: contain;
|
|
177
223
|
}
|
|
178
224
|
|
|
179
|
-
.glass-dock.vertical.always-expanded:not([data-morphing])::-webkit-scrollbar,
|
|
180
|
-
.glass-dock.vertical.expanded:not([data-morphing])::-webkit-scrollbar {
|
|
225
|
+
.glass-dock.vertical.dock-scroll-y.always-expanded:not([data-morphing])::-webkit-scrollbar,
|
|
226
|
+
.glass-dock.vertical.dock-scroll-y.expanded:not([data-morphing])::-webkit-scrollbar {
|
|
181
227
|
display: none;
|
|
182
228
|
}
|
|
183
229
|
|
|
@@ -243,27 +289,42 @@
|
|
|
243
289
|
scale var(--dock-motion-resize);
|
|
244
290
|
}
|
|
245
291
|
|
|
246
|
-
.
|
|
292
|
+
/* AZ.W-DOCK-TAXONOMY — the vertical dock's surface plate (the prior
|
|
293
|
+
`.variant-rail` block; "rail-ness" is now `orientation="vertical"` + a
|
|
294
|
+
shape/density choice, not a variant). */
|
|
295
|
+
.glass-dock.vertical {
|
|
247
296
|
padding: var(--dock-rail-padding, var(--dock-padding-inline, 0.5rem));
|
|
248
|
-
|
|
297
|
+
/* AZ.W-ADAPTIVE-AUTO Arm 1 — the vertical dock threads the SAME element-level
|
|
298
|
+
oklab tint wrapper the shell base carries (NOT the pre-substituted
|
|
299
|
+
`--glass-bg-dock` token alone, whose inner tint baked at the `:root` 0%
|
|
300
|
+
strength before the `:where(.glass-dock)` self-engage re-points the
|
|
301
|
+
inheriting tint tokens — the substitution-vs-inheritance trap §3a names).
|
|
302
|
+
Wrapping HERE lets the self-engage darken reach the vertical dock's OWN
|
|
303
|
+
plate. Zero-delta at the `0%` rest default (the mix is a no-op =
|
|
304
|
+
byte-identical to the flat dock bg). */
|
|
305
|
+
background: color-mix(
|
|
306
|
+
in oklab,
|
|
307
|
+
var(--glass-bg-dock, var(--glass-bg-wash)),
|
|
308
|
+
var(--glass-tint-source) var(--glass-tint-strength)
|
|
309
|
+
);
|
|
249
310
|
border-color: var(--glass-border-dock, var(--glass-border-wash));
|
|
250
311
|
}
|
|
251
312
|
|
|
252
|
-
.glass-dock.
|
|
313
|
+
.glass-dock.vertical.shape-pill {
|
|
253
314
|
border-radius: var(--radius-pill);
|
|
254
315
|
}
|
|
255
316
|
|
|
256
|
-
.glass-dock.
|
|
317
|
+
.glass-dock.vertical.shape-rounded {
|
|
257
318
|
border-radius: var(--radius-xl);
|
|
258
319
|
}
|
|
259
320
|
|
|
260
|
-
/* AW.W3b — horizontal-root shape rules. The `shape-*` class
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
.glass-dock
|
|
321
|
+
/* AW.W3b — horizontal-root shape rules. The `shape-*` class once bound ONLY under
|
|
322
|
+
the vertical surface; on a horizontal dock the prop silently no-op'd (the root
|
|
323
|
+
hardwired `--radius-dock` = `--radius-pill`). These rules close that
|
|
324
|
+
documented-but-dead prop — `shape="rounded"` / `shape="card"` now paint on a
|
|
325
|
+
horizontal dock. Scoped to `:not(.vertical)` so the vertical dock (which owns
|
|
326
|
+
its own radius above) is untouched. */
|
|
327
|
+
.glass-dock:not(.vertical).shape-rounded {
|
|
267
328
|
border-radius: var(--radius-xl);
|
|
268
329
|
}
|
|
269
330
|
|
|
@@ -275,7 +336,7 @@
|
|
|
275
336
|
prior two discrete `.shape-card` / `.shape-card.collapsed` rules + their
|
|
276
337
|
reliance on the deleted `border-radius var(--dock-motion-resize)` transition
|
|
277
338
|
are RETIRED for this single interpolation. */
|
|
278
|
-
.glass-dock
|
|
339
|
+
.glass-dock:not(.vertical).shape-card {
|
|
279
340
|
border-radius: calc(
|
|
280
341
|
var(--radius-pill) +
|
|
281
342
|
(var(--dock-card-radius) - var(--radius-pill)) *
|
|
@@ -295,80 +356,18 @@
|
|
|
295
356
|
condition tests the LITERAL `superellipse(2)` (a `var()` is not evaluable in
|
|
296
357
|
an `@supports` query) — the same Chrome-139 feature the token resolves to. */
|
|
297
358
|
@supports (corner-shape: superellipse(2)) {
|
|
298
|
-
.glass-dock
|
|
359
|
+
.glass-dock:not(.vertical).shape-card {
|
|
299
360
|
corner-shape: var(--corner-shape-bigdock);
|
|
300
361
|
}
|
|
301
362
|
}
|
|
302
363
|
|
|
303
|
-
/*
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
*
|
|
311
|
-
* The variant intentionally inherits the rail variant's vertical
|
|
312
|
-
* layout (orientation: vertical; flex-direction: column) — the
|
|
313
|
-
* orientation + fitContent computeds in GlassDock.vue branch on
|
|
314
|
-
* `variant === "instrument-strip"` alongside the existing rail
|
|
315
|
-
* branch. Only the surface vocabulary changes vs the rail:
|
|
316
|
-
* - Border-radius drops from `--radius-pill` to `--radius-card`
|
|
317
|
-
* (matches `<InstrumentChassis> { border-radius: var(--radius-card) }`).
|
|
318
|
-
* - Background plate routes through `--glass-bg-chassis` (0.28α
|
|
319
|
-
* per tokens.css §V) instead of `--glass-bg-wash`.
|
|
320
|
-
* - Border routes through `--glass-border-quiet` to match the
|
|
321
|
-
* chassis primitive's at-rest stroke.
|
|
322
|
-
* - Box-shadow routes through `--glass-shadow-quiet` plus the
|
|
323
|
-
* inset-bottom hairline matching the chassis primitive
|
|
324
|
-
* (instrument-chassis.css:42-45).
|
|
325
|
-
*
|
|
326
|
-
* The `.shape-pill` / `.shape-rounded` class hooks are still emitted
|
|
327
|
-
* by the template but no rule binds them under
|
|
328
|
-
* `.variant-instrument-strip` — chassis-strip carries ONE canonical
|
|
329
|
-
* border-radius (`--radius-card`), per the chassis family. */
|
|
330
|
-
.glass-dock.variant-instrument-strip {
|
|
331
|
-
padding: var(
|
|
332
|
-
--dock-instrument-strip-padding,
|
|
333
|
-
var(--dock-padding-inline, 0.75rem)
|
|
334
|
-
);
|
|
335
|
-
/* AX.W55 — the chassis-strip threads the SAME oklab tint wrapper the five
|
|
336
|
-
rungs + the dock shell (--glass-bg-dock) carry, so the adaptive darken
|
|
337
|
-
reaches it. Zero-delta at the `0%` rest default (the mix is 0% toward the
|
|
338
|
-
source = byte-identical to the flat `var(--glass-bg-chassis)`); it only
|
|
339
|
-
activates under the bright bucket below. */
|
|
340
|
-
background: color-mix(
|
|
341
|
-
in oklab,
|
|
342
|
-
var(--glass-bg-chassis, var(--glass-bg-wash)),
|
|
343
|
-
var(--glass-tint-source) var(--glass-tint-strength)
|
|
344
|
-
);
|
|
345
|
-
border: 1px solid var(--glass-border-quiet, var(--glass-border-resting));
|
|
346
|
-
border-radius: var(--radius-card);
|
|
347
|
-
box-shadow:
|
|
348
|
-
var(--glass-shadow-quiet, var(--shadow-dock)),
|
|
349
|
-
inset 0 -0.5px 0 0 rgb(0 0 0 / 0.06);
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
/* Engraved-bezel inner stroke — matches `<InstrumentChassis>::before`
|
|
353
|
-
* (instrument-chassis.css:85-93). The chassis-strip silhouette without
|
|
354
|
-
* this stroke reads as a flat plate; with it the strip reads as the
|
|
355
|
-
* polished sleeve of an instrument-panel module. The `::before`
|
|
356
|
-
* z-index sits above the chassis backdrop but below the slotted
|
|
357
|
-
* content (the MetricBadge stack), matching the chassis primitive's
|
|
358
|
-
* z-order. The host `.glass-dock` is already `position: relative`. */
|
|
359
|
-
.glass-dock.variant-instrument-strip::before {
|
|
360
|
-
content: "";
|
|
361
|
-
position: absolute;
|
|
362
|
-
inset: 0.5px;
|
|
363
|
-
border-radius: calc(var(--radius-card) - 0.5px);
|
|
364
|
-
border: 1px solid var(--surface-tint-4);
|
|
365
|
-
pointer-events: none;
|
|
366
|
-
z-index: 1;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
.dark .glass-dock.variant-instrument-strip::before {
|
|
370
|
-
border-color: var(--surface-tint-6);
|
|
371
|
-
}
|
|
364
|
+
/* AZ.W-DOCK-TAXONOMY — the `instrument-strip` chassis-strip variant is RETIRED
|
|
365
|
+
(the ≥2-consumer bar). It carried the vocabulary of the InstrumentRail
|
|
366
|
+
component RETIRED at AY W-IC1; with the `variant` discriminant gone and no
|
|
367
|
+
live `variant="instrument-strip"` call-site in src/ or demo/, the chassis
|
|
368
|
+
paint has zero consumers. The cross-repo speedtest SurveyResultDock cockpit
|
|
369
|
+
re-pins in its own migration (recorded in MIGRATION.md). A consumer needing
|
|
370
|
+
the chassis surface composes `<InstrumentChassis>` directly. */
|
|
372
371
|
|
|
373
372
|
.glass-dock:where(.fixed) {
|
|
374
373
|
z-index: var(--z-dock);
|
|
@@ -426,32 +425,20 @@
|
|
|
426
425
|
margin-block-start: var(--dock-layer-gap, 0.375rem);
|
|
427
426
|
}
|
|
428
427
|
|
|
429
|
-
/*
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
428
|
+
/* AZ.W-DOCK-TAXONOMY (move 2) — the VERTICAL dock's layer panes lay their content
|
|
429
|
+
out as a COLUMN. The dock body is now the SAME orientation-agnostic
|
|
430
|
+
`.dock-layers` full/summary morph pair the horizontal dock uses (the prior
|
|
431
|
+
static `.dock-layer--vertical-body` single-stack RETIRED — a vertical dock now
|
|
432
|
+
collapses its block axis too). The base `.dock-layer { display: flex;
|
|
433
|
+
align-items: center }` is row by default; here the full/summary panes flip to a
|
|
434
|
+
stretched column stack carrying the dock's `--dock-layer-gap` rhythm, so
|
|
435
|
+
authored item groups + `<DockSeparator>` rules read with the correct vertical
|
|
436
|
+
cadence. The block-axis morph aperture is owned by `.dock-layers` (layers.css —
|
|
437
|
+
`.glass-dock.vertical[data-morphing] .dock-layers` morphs `block-size`). */
|
|
438
|
+
.glass-dock.vertical .dock-layer {
|
|
440
439
|
flex-direction: column;
|
|
441
440
|
align-items: stretch;
|
|
442
441
|
gap: var(--dock-layer-gap, 0.375rem);
|
|
443
442
|
min-width: 0;
|
|
444
443
|
}
|
|
445
|
-
|
|
446
|
-
/* The OPTIONAL trailing `#collapsed` section (the vertical analogue of the
|
|
447
|
-
horizontal summary pane) — a persistent secondary group below a structural
|
|
448
|
-
`<DockSeparator>`, sharing the column's gap rhythm. Renders only when the
|
|
449
|
-
consumer authors a `#collapsed` slot (GlassDock.vue guards it), so a vertical
|
|
450
|
-
dock with no collapsed slot keeps the prior single-stack body. */
|
|
451
|
-
.glass-dock.vertical .dock-layer--vertical-section {
|
|
452
|
-
display: flex;
|
|
453
|
-
flex-direction: column;
|
|
454
|
-
align-items: stretch;
|
|
455
|
-
gap: var(--dock-layer-gap, 0.375rem);
|
|
456
|
-
}
|
|
457
444
|
}
|
|
@@ -0,0 +1,109 @@
|
|
|
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
|
+
box-shadow: var(--focus-ring-shadow);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&[data-size="sm"] {
|
|
43
|
+
--dark-mode-toggle-size: 1.75rem;
|
|
44
|
+
--dark-mode-toggle-padding: 0.25rem;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&[data-size="md"] {
|
|
48
|
+
--dark-mode-toggle-size: 2.25rem;
|
|
49
|
+
--dark-mode-toggle-padding: 0.375rem;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&[data-size="lg"] {
|
|
53
|
+
--dark-mode-toggle-size: 2.75rem;
|
|
54
|
+
--dark-mode-toggle-padding: 0.5rem;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
&[data-size="control"] {
|
|
58
|
+
--dark-mode-toggle-size: var(--control-size, 2.25rem);
|
|
59
|
+
--dark-mode-toggle-padding: var(--control-icon-padding, 0.375rem);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.dark-mode-toggle-button[data-size="dock"],
|
|
64
|
+
.glass-dock
|
|
65
|
+
.dark-mode-toggle-button:not([data-size="sm"]):not([data-size="lg"]):not(
|
|
66
|
+
[data-size="control"]
|
|
67
|
+
) {
|
|
68
|
+
--dark-mode-toggle-size: var(--dock-control-size, var(--size-icon-btn));
|
|
69
|
+
/* AY.W-DOCK-CHROME §2 — the in-dock toggle GLYPH insets to the nav-glyph
|
|
70
|
+
register. The toggle SVG carries `h-full w-full` (the utility layer, which
|
|
71
|
+
BEATS the component-layer `> svg { width: --dock-control-glyph-size }` rule
|
|
72
|
+
below), so the glyph fills whatever the PADDED box leaves. Prior the in-dock
|
|
73
|
+
padding fell to `var(--dock-icon-padding, 0)` (the token is never defined →
|
|
74
|
+
0 pad → the glyph filled the whole 40px box edge-to-edge, ~2.5× the 16-20px
|
|
75
|
+
nav glyphs — the user's "too large" read). Pad the box by HALF the box↔glyph
|
|
76
|
+
difference so the `h-full` SVG lands at exactly `--dock-icon-glyph` (the
|
|
77
|
+
`--dock-scale`-keyed size the nav icons paint) — optically UNIFORM with the
|
|
78
|
+
nav glyphs through the utility-win path, not fighting it. */
|
|
79
|
+
--dark-mode-toggle-padding: calc(
|
|
80
|
+
(
|
|
81
|
+
var(--dock-control-size, var(--size-icon-btn)) -
|
|
82
|
+
var(--dock-icon-glyph, 1.25rem)
|
|
83
|
+
) / 2
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* AX.W06 USF-2 — the dock-control optical-size contract. The
|
|
88
|
+
DarkModeToggle renders its OWN internal SVG `h-full w-full` (it bypasses
|
|
89
|
+
the `--dock-icon-glyph`-sized `> svg` slot the `.dock-icon-button` family
|
|
90
|
+
uses), so IN-DOCK it filled the whole control box edge-to-edge (~2.5× the
|
|
91
|
+
nav glyphs) — `--dock-icon-padding` is NEVER DEFINED, so the
|
|
92
|
+
`--dark-mode-toggle-padding: var(--dock-icon-padding, 0)` above fell to the
|
|
93
|
+
`0` fallback and zero padding let the SVG fill the box. Route the in-dock
|
|
94
|
+
toggle glyph through `--dock-control-glyph-size` (the ONE size the whole
|
|
95
|
+
dock-control family reads, default = `--dock-icon-glyph`, the same
|
|
96
|
+
`--dock-scale`-keyed glyph the nav icons paint), so the toggle is optically
|
|
97
|
+
UNIFORM with the nav glyphs WHEN DOCKED. The `h-full w-full` SVG stays
|
|
98
|
+
correct for the STANDALONE DarkModeToggle sizes (no `.glass-dock`
|
|
99
|
+
ancestor); this rule is scoped to the in-dock path only. Machine-checked by
|
|
100
|
+
the dock-control optical-parity gate, not eyeballed. */
|
|
101
|
+
.glass-dock
|
|
102
|
+
.dark-mode-toggle-button:not([data-size="sm"]):not([data-size="lg"]):not(
|
|
103
|
+
[data-size="control"]
|
|
104
|
+
)
|
|
105
|
+
> svg {
|
|
106
|
+
width: var(--dock-control-glyph-size, var(--dock-icon-glyph, 1.25rem));
|
|
107
|
+
height: var(--dock-control-glyph-size, var(--dock-icon-glyph, 1.25rem));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
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
|
+
/* BA.W-DOCK-GEOMETRY — the control-plate clearance inset (DC-2). The HIT
|
|
24
|
+
BOX stays the full `--dock-control-size` (the WCAG 2.5.5 touch floor on
|
|
25
|
+
the CELL), while the inset padding + `background-clip: content-box`
|
|
26
|
+
insets the PAINTED plate within it: the hover/active fill paints only the
|
|
27
|
+
content box (the cell minus the inset on every side), so the maximal
|
|
28
|
+
hover (×1.1) / active circle clears the cross-axis clip edge with ≥1px
|
|
29
|
+
margin — the lozenge dies at the plate diameter, not at the clip box. The
|
|
30
|
+
inset falls back to the prior `--dock-icon-padding` (0) when no dock
|
|
31
|
+
ancestor sets `--dock-control-safe-inset` (a standalone icon button). */
|
|
32
|
+
padding: var(--dock-icon-padding, var(--dock-control-safe-inset, 0));
|
|
33
|
+
cursor: pointer;
|
|
34
|
+
border: none;
|
|
35
|
+
background: transparent;
|
|
36
|
+
background-clip: content-box;
|
|
37
|
+
border-radius: var(--dock-control-radius, var(--radius-pill));
|
|
38
|
+
/* Foreground base routes through `--dock-fg-on-aurora` (defaults to
|
|
39
|
+
`--foreground`, byte-identical to before) so a consumer floating the
|
|
40
|
+
dock over an aurora can lift contrast per-backdrop. The muted icon
|
|
41
|
+
weight mixes that base down with `--opacity-icon-muted`. */
|
|
42
|
+
color: color-mix(
|
|
43
|
+
in srgb,
|
|
44
|
+
var(--dock-fg-on-aurora, var(--foreground))
|
|
45
|
+
calc(var(--opacity-icon-muted) * 100%),
|
|
46
|
+
transparent
|
|
47
|
+
);
|
|
48
|
+
outline: none;
|
|
49
|
+
transition:
|
|
50
|
+
background-color var(--dock-motion-fast),
|
|
51
|
+
color var(--dock-motion-fast),
|
|
52
|
+
/* AT.W7-dock-b — `scale` carries the press micro-feedback spring
|
|
53
|
+
(transform-scoped only; the surface fades stay on the flat ease). */
|
|
54
|
+
scale var(--dock-press-spring),
|
|
55
|
+
opacity var(--dock-motion-fast),
|
|
56
|
+
/* The box-shadow fade now carries ONLY the focus-visible ring (shared
|
|
57
|
+
`:focus-visible` group in dock.css) + the active-state
|
|
58
|
+
`--dock-active-shadow` — the AX.W09-retired hover `--glass-highlight`
|
|
59
|
+
specular no longer rides it. */
|
|
60
|
+
box-shadow var(--dock-motion-fast);
|
|
61
|
+
|
|
62
|
+
/* AT.W7-dock-b — glass icon-hover. The icon-button hover reads as a glass
|
|
63
|
+
surface, not a flat `--muted` plate: a translucent card-tinted fill is
|
|
64
|
+
the hover affordance. A consumer retunes the fill via `--dock-icon-hover-bg`.
|
|
65
|
+
|
|
66
|
+
AX.W09 — the dock control's SECOND specular (the `--glass-highlight`
|
|
67
|
+
hover box-shadow, AT.W7-dock-b) is RETIRED. The dock-icon-button is a
|
|
68
|
+
member of the unified `.glass-material` group (glass.css), so the moving
|
|
69
|
+
`::before` catch-light is now its SOLE specular owner — one light per
|
|
70
|
+
surface (the §0 "excise or fail" discipline). Stacking the
|
|
71
|
+
`--glass-highlight` inset box-shadow on the most-hovered, slides-floated
|
|
72
|
+
surface was the worst-offending double-light blowout; the card-tinted
|
|
73
|
+
hover fill carries the affordance without a second catch-light, and
|
|
74
|
+
dropping it also removes the `:not(:focus-visible)` specular-vs-ring
|
|
75
|
+
juggle. */
|
|
76
|
+
/* AX.W45 DK2 — the hover reads the FAMILY token `--dock-control-hover-bg`
|
|
77
|
+
(the per-control `--dock-icon-hover-bg` still wins if a consumer set it),
|
|
78
|
+
so the whole dock-control family shares ONE glass-translucent hover fill.
|
|
79
|
+
One source per state across icon/tab/picker (no four-vocabulary drift). */
|
|
80
|
+
&:hover:not(:disabled) {
|
|
81
|
+
background: var(
|
|
82
|
+
--dock-icon-hover-bg,
|
|
83
|
+
var(--dock-control-hover-bg)
|
|
84
|
+
);
|
|
85
|
+
color: var(--btn-hover-color, var(--foreground));
|
|
86
|
+
scale: var(--scale-hover-dock);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* AZ.W-REGISTER-IOS — the iOS press DARKEN-plus-shrink. Press lands the
|
|
90
|
+
glass-darken (`--dock-control-press-bg`, a tier below resting) alongside
|
|
91
|
+
the existing scale-press, so a tap reads "darken + shrink" (C4-INV-4 was
|
|
92
|
+
scale-only). Token-first — a consumer retunes via `--dock-control-press-bg`. */
|
|
93
|
+
&:active:not(:disabled) {
|
|
94
|
+
background: var(--dock-control-press-bg);
|
|
95
|
+
scale: var(--scale-press-dock);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
&:focus:not(:focus-visible) {
|
|
99
|
+
box-shadow: none;
|
|
100
|
+
outline: none;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* O.W6 Lane B — token-ladder active paint. Defaults match the prior
|
|
104
|
+
hardcoded recipe (--muted bg + --foreground color, no transform / border
|
|
105
|
+
/ shadow). Consumers override the active variant via the
|
|
106
|
+
`--dock-active-{bg,color,scale,border,shadow}` cohort scoped to a parent
|
|
107
|
+
(e.g. bbnf-buddy `ToolsLayer.vue` audacious active treatment) — no
|
|
108
|
+
`:deep()` escapes required. See tokens.css §10 (dock geometry block). */
|
|
109
|
+
&:is(.is-active, .active, [aria-expanded="true"], [aria-pressed="true"]) {
|
|
110
|
+
background: var(--dock-active-bg);
|
|
111
|
+
color: var(--dock-active-color);
|
|
112
|
+
scale: var(--dock-active-scale);
|
|
113
|
+
border: var(--dock-active-border);
|
|
114
|
+
box-shadow: var(--dock-active-shadow);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* focus-visible ring + disabled paint hoisted to the shared `:where()`
|
|
119
|
+
group in dock.css. The box-shadow fade transition lives on the base
|
|
120
|
+
`.dock-icon-button` rule (it carries the focus-ring + active-shadow fade
|
|
121
|
+
since AX.W09 retired the hover `--glass-highlight` specular), so no
|
|
122
|
+
per-state transition override is needed. */
|
|
123
|
+
|
|
124
|
+
/* AX.W45 D15 — LIBRARY GLYPH OWNERSHIP. The dock icon-button now sizes its glyph
|
|
125
|
+
(mirroring `.dark-mode-toggle-button > svg`), so the glyph scales WITH the box
|
|
126
|
+
on the `--dock-scale` multiplier instead of swimming at a fixed consumer size.
|
|
127
|
+
`--dock-icon-glyph: calc(1.25rem * var(--dock-scale))` (tokens.css) rides the
|
|
128
|
+
multiplier — at 1.5× the glyph is 30px in a 60px box, the desktop proportion.
|
|
129
|
+
A consumer passing an explicit lucide size class still WINS (utility layer >
|
|
130
|
+
component layer) — a DEFAULT, not a ceiling, matching the `.dock-tab-button`
|
|
131
|
+
font-size precedent. */
|
|
132
|
+
.dock-icon-button > svg {
|
|
133
|
+
width: var(--dock-icon-glyph, 1.25rem);
|
|
134
|
+
height: var(--dock-icon-glyph, 1.25rem);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.dock-icon-button--compact {
|
|
138
|
+
width: var(--dock-compact-control-size, auto);
|
|
139
|
+
height: var(--dock-compact-control-size, auto);
|
|
140
|
+
min-width: var(--dock-compact-control-min-width, 0);
|
|
141
|
+
padding: var(--dock-compact-control-padding, 0.25rem);
|
|
142
|
+
}
|
|
143
|
+
}
|