@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
package/src/styles/drawer.css
CHANGED
|
@@ -58,6 +58,48 @@
|
|
|
58
58
|
box-shadow: var(--glass-material-rim), var(--glass-shadow-overlay);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
/*
|
|
62
|
+
* BA.W-SURFACE-AXIS — the shared {glass·veil·opaque} surface decoration ON TOP of
|
|
63
|
+
* the `.glass-drawer` recipe. `.glass-drawer` is UNLAYERED (this file), so the
|
|
64
|
+
* `@layer components` `[data-surface]` seam in glass/surface-axis.css would LOSE
|
|
65
|
+
* to it (an unlayered rule always beats a layered one — the AZ.W-DOCK-RAIL
|
|
66
|
+
* cascade-win trap). The fix is the SAME-LAYER carve: these `.glass-drawer[data-
|
|
67
|
+
* surface=…]` rules sit unlayered alongside `.glass-drawer` and win by specificity
|
|
68
|
+
* (attr+class > class), composing the SAME veil/opaque deltas the shared seam
|
|
69
|
+
* declares — NO `glass-drawer`-local recipe fork (they read the same `--veil-*` /
|
|
70
|
+
* `--glass-level` machinery). The `glass` rung is the identity (no rule).
|
|
71
|
+
*/
|
|
72
|
+
.glass-drawer[data-surface="veil"] {
|
|
73
|
+
--veil-bg: color-mix(
|
|
74
|
+
in oklab,
|
|
75
|
+
var(--glass-bg-quiet),
|
|
76
|
+
var(--glass-tint-source) var(--glass-tint-strength)
|
|
77
|
+
);
|
|
78
|
+
--veil-blur: var(--glass-blur-quiet);
|
|
79
|
+
background: var(--veil-bg);
|
|
80
|
+
backdrop-filter: var(--veil-blur);
|
|
81
|
+
-webkit-backdrop-filter: var(--veil-blur);
|
|
82
|
+
border: none;
|
|
83
|
+
box-shadow: none;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.glass-drawer[data-surface="opaque"] {
|
|
87
|
+
/* The solid-card escape. The `.glass-drawer` background reads the `:root`-baked
|
|
88
|
+
`--glass-bg-overlay` token (which substitutes `--glass-level` at :root), so a
|
|
89
|
+
per-element `--glass-level: 0` cannot re-resolve it — the substitution-vs-
|
|
90
|
+
inheritance trap (mirrors surface-axis.css). Set the SOLID plate AT THE
|
|
91
|
+
ELEMENT; still flip the level/tint knobs for a nested glass descendant. */
|
|
92
|
+
--glass-level: 0;
|
|
93
|
+
--glass-tint-strength: 0%;
|
|
94
|
+
/* The SOLID --card plate via the house color-mix idiom (solid --card, expressed
|
|
95
|
+
as the cohesion-sanctioned mix the token ladder speaks — NOT the bare
|
|
96
|
+
`var(--card)` the cohesion D1 check forbids for the always-on drawer plate;
|
|
97
|
+
this is the EXPLICIT opt-out behind `surface="opaque"`, not the default). */
|
|
98
|
+
background: color-mix(in srgb, var(--card), transparent 0%);
|
|
99
|
+
backdrop-filter: none;
|
|
100
|
+
-webkit-backdrop-filter: none;
|
|
101
|
+
}
|
|
102
|
+
|
|
61
103
|
/*
|
|
62
104
|
* Detented (snap-point) sheets fill the viewport height. vaul positions the
|
|
63
105
|
* sheet by translating it DOWN by `innerHeight - (fraction * innerHeight)` —
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/* feedback-tone.css — the ONE shared tinted-glass tone recipe (BA.W-FEEDBACK-TONE).
|
|
2
|
+
|
|
3
|
+
THE COLLAPSE: Toast, Notification, and Alert each carried an INDEPENDENT tone map
|
|
4
|
+
(the Toast variant map painted SOLID `bg-{success,warning,info,destructive}` opaque
|
|
5
|
+
token plates over a `glass-floating` base; the Notification type map painted
|
|
6
|
+
`bg-<tone>/90` near-opaque slabs; Alert alone was correct in SHAPE — glass-wash plate
|
|
7
|
+
+ tone-on-rim — but HARDCODED its `border-<tone>/40` rim per variant). Three tone
|
|
8
|
+
maps, three calibration sites, and TWO of them painted a colored SLAB that occluded
|
|
9
|
+
the backdrop (the R8-12/R8-13 "not glassy at all" defect; the blur track survived but
|
|
10
|
+
was inert behind a 100%-opaque plate).
|
|
11
|
+
|
|
12
|
+
This file mints the tone register ONCE. Every feedback tone reads as COLORED GLASS:
|
|
13
|
+
a tinted-glass wash (the rung bg mixed a BOUNDED % toward the tone, the SAME
|
|
14
|
+
`color-mix(in oklab, <rung bg>, <tint> <strength>)` seam the W55 `--glass-tint-*`
|
|
15
|
+
legibility lift and the `--veil-bg` plate already run — ZERO new compositing path) +
|
|
16
|
+
a tone-keyed rim + a full-chroma glyph. The backdrop STILL shows through (α stays
|
|
17
|
+
translucent, the W2 π floor < ~0.92). The body ink stays `--foreground` /
|
|
18
|
+
`--card-foreground` for legibility (the Alert discipline — body never tone-tinted),
|
|
19
|
+
so the tone is ONE deliberate color event per surface (the AZ.W-SUFFUSE one-color-
|
|
20
|
+
event idiom), never a full-bleed fill.
|
|
21
|
+
|
|
22
|
+
THE ONE KNOB: `--feedback-tone-strength` tints all four tones at once (the bounded
|
|
23
|
+
mix %, the toast-glass §A band). The four tone hues map to the HOUSE tokens
|
|
24
|
+
`--success` / `--warning` / `--info` / `--destructive` (presets-in-consumers — NO new
|
|
25
|
+
colors). A consumer recalibrates the tone weight with ONE override.
|
|
26
|
+
|
|
27
|
+
THE RUNG: the register reads `--feedback-tone-rung` (default the floating-chrome rung
|
|
28
|
+
`--glass-bg-floating`, the Toast/Notification overlay register). Alert RE-POINTS it to
|
|
29
|
+
`--glass-bg-wash` on its own surface (a content panel rides wash, not floating — the
|
|
30
|
+
register difference is correct; only the tone SOURCE unifies, not the rung). The rung
|
|
31
|
+
reads `--glass-bg-*` DIRECTLY (the same tokens W-SURFACE-AXIS's glass arm routes), so
|
|
32
|
+
the tone tint rides ON the glass surface — a re-point, not a fork.
|
|
33
|
+
|
|
34
|
+
THE SUBSTITUTION TRAP (the recurring AX.W55 / dock-scale class): `--feedback-tone-rung`
|
|
35
|
+
resolves the `--glass-bg-floating` token, which BAKES `var(--glass-level)` at its
|
|
36
|
+
`:root` declaration (level=1). A descendant `--glass-level: 0` does NOT re-resolve the
|
|
37
|
+
baked rung — but that is the CORRECT register here: a feedback surface IS translucent
|
|
38
|
+
glass by design; the `opaque`/level-0 escape is W-SURFACE-AXIS's `[data-surface]`
|
|
39
|
+
concern, not a tone-register knob. The tone register composes the tint AT THE ELEMENT
|
|
40
|
+
off the resolved rung, so the `color-mix` re-resolves whenever `--tone`/`--feedback-
|
|
41
|
+
tone-strength`/the rung change (the W55 element-level tint discipline). */
|
|
42
|
+
@layer components {
|
|
43
|
+
:root {
|
|
44
|
+
/* The bounded mix % — the tone wash strength. 18% reads as colored GLASS
|
|
45
|
+
(the backdrop shows through, the silhouette is unmistakably tinted) without
|
|
46
|
+
tipping toward a slab; the toast-glass §A band is ≈12–22%. ONE knob retunes
|
|
47
|
+
all four tones. */
|
|
48
|
+
--feedback-tone-strength: 18%;
|
|
49
|
+
/* The rung the tint mixes over — the floating-chrome register (Toast /
|
|
50
|
+
Notification). Alert re-points it to the wash rung on its own surface. */
|
|
51
|
+
--feedback-tone-rung: var(--glass-bg-floating);
|
|
52
|
+
/* The rim weight — a tone-keyed border, a thin tinted rim (not a loud edge). */
|
|
53
|
+
--feedback-tone-border-strength: 40%;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* ── The parametric register ──────────────────────────────────────────────────
|
|
57
|
+
A surface declares `--tone` (one of the four house tokens) + composes
|
|
58
|
+
`.feedback-tone`; the tinted-glass wash + the tone-keyed rim resolve off the ONE
|
|
59
|
+
recipe. The glyph carries the FULL-chroma tone (`[&>svg]` via the consumer's own
|
|
60
|
+
class, or the `.feedback-tone-glyph` helper below). The `default` (un-toned)
|
|
61
|
+
surface simply omits `.feedback-tone` — the bare glass rung paints.
|
|
62
|
+
|
|
63
|
+
`--tone` has NO `:root` default ON PURPOSE: a `.feedback-tone` surface with no
|
|
64
|
+
`--tone` set would mix the rung toward `initial` (transparent) — a no-op wash, the
|
|
65
|
+
same as the bare rung; this is the safe degenerate, not a paint bug. Every real
|
|
66
|
+
consumer sets `--tone` via its `.feedback-tone-<name>` register. */
|
|
67
|
+
.feedback-tone {
|
|
68
|
+
background: color-mix(
|
|
69
|
+
in oklab,
|
|
70
|
+
var(--feedback-tone-rung),
|
|
71
|
+
var(--tone) var(--feedback-tone-strength)
|
|
72
|
+
);
|
|
73
|
+
border-color: color-mix(
|
|
74
|
+
in oklab,
|
|
75
|
+
transparent,
|
|
76
|
+
var(--tone) var(--feedback-tone-border-strength)
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* The four house tone registers — each binds `--tone` to its house token. A surface
|
|
81
|
+
maps its variant/type onto the matching class (Toast `variant` /
|
|
82
|
+
Notification `type` / Alert `variant`); the `error` notification type maps to the
|
|
83
|
+
destructive tone (the three-maps-into-one collapse — `error` IS destructive). */
|
|
84
|
+
.feedback-tone-success {
|
|
85
|
+
--tone: var(--success);
|
|
86
|
+
}
|
|
87
|
+
.feedback-tone-warning {
|
|
88
|
+
--tone: var(--warning);
|
|
89
|
+
}
|
|
90
|
+
.feedback-tone-info {
|
|
91
|
+
--tone: var(--info);
|
|
92
|
+
}
|
|
93
|
+
.feedback-tone-destructive {
|
|
94
|
+
--tone: var(--destructive);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* The glyph helper — the leading status glyph carries the FULL-chroma tone (the one
|
|
98
|
+
color event's saturated note over the tinted wash). A consumer composes it on its
|
|
99
|
+
icon, or reads `var(--tone)` directly in an arbitrary `[&>svg]:text-(--tone)`
|
|
100
|
+
utility. */
|
|
101
|
+
.feedback-tone-glyph {
|
|
102
|
+
color: var(--tone);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
backdrop-filter: var(--glass-blur-resting);
|
|
11
11
|
color: var(--popover-foreground);
|
|
12
12
|
box-shadow: var(--glass-shadow-resting);
|
|
13
|
+
/* AZ.R5-4 — the comfortable panel inner-pad rung (consumer-verified the
|
|
14
|
+
tight default). Token-first: a consumer retunes every floating panel +
|
|
15
|
+
dropdown surface from `--panel-padding`. */
|
|
16
|
+
padding: var(--panel-padding);
|
|
13
17
|
pointer-events: auto;
|
|
14
18
|
/* V.W3.T9 — animation grammar routes through the canonical
|
|
15
19
|
Tailwind `animate-floating-panel-in` utility (defined in
|
|
@@ -32,3 +36,14 @@
|
|
|
32
36
|
.dropdown-sub-content {
|
|
33
37
|
font-family: var(--dropdown-menu-font, inherit);
|
|
34
38
|
}
|
|
39
|
+
|
|
40
|
+
/* AZ.R5-4 — the comfortable menu inner-pad rung. The dropdown content family
|
|
41
|
+
reads the shared `--panel-padding` token (the prior hand-set `p-1` was the
|
|
42
|
+
tight floor the user flagged on the slides deck). Token-first: one override
|
|
43
|
+
retunes every teleported menu surface. Unlayered like the font rule above —
|
|
44
|
+
the `p-1`/literal Tailwind pad was removed from the SFC `cn()` chains so this
|
|
45
|
+
is the sole padding authority. */
|
|
46
|
+
.dropdown-menu-content,
|
|
47
|
+
.dropdown-sub-content {
|
|
48
|
+
padding: var(--panel-padding);
|
|
49
|
+
}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/* glass/a11y-fallback.css
|
|
2
|
+
The accessibility + capability overrides — @media (prefers-reduced-transparency) / (prefers-contrast: more) / (forced-colors: active), the non-backdrop-filter @layer components fallback, and the :has()-less @supports fallback. LAST in cascade (they override the base ladder).
|
|
3
|
+
Carved from the glass.css cascade root; @import-ed by glass.css in cascade
|
|
4
|
+
order, each in its own @layer components (isomorphic to the monolith).
|
|
5
|
+
See docs/precepts/design-idioms.md §cohesion-aware partials. */
|
|
6
|
+
/* ── Accessibility: reduced transparency ──────────
|
|
7
|
+
AX.W54 — the gestalt collapse: ONE `--glass-level: 0` replaces the ten per-rung
|
|
8
|
+
opacity+blur clobbers. The level-0 path resolves solid `--card` + `blur(0)`
|
|
9
|
+
through the SAME machinery (the opacity seam → 1, the blur seam → 0), so every
|
|
10
|
+
glass surface — current and future — flattens with no per-rung enumeration. The
|
|
11
|
+
grain + highlight kills stay (they sit off the level axis). */
|
|
12
|
+
@media (prefers-reduced-transparency: reduce) {
|
|
13
|
+
:root {
|
|
14
|
+
--glass-level: 0;
|
|
15
|
+
--glass-grain-opacity: 0;
|
|
16
|
+
--glass-highlight: 0 0 0 0 transparent;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* ── Accessibility: high contrast ─────────────────
|
|
21
|
+
AX.W54 — a single bounded `--glass-level: 0.3` (mostly-solid, not fully flat)
|
|
22
|
+
replaces the five per-rung opacity clobbers: every rung firms up toward solid
|
|
23
|
+
for AA while keeping a hint of the glass register. ONE knob, every rung.
|
|
24
|
+
|
|
25
|
+
AX.W55 — the Clear↔Tinted user-escape (Apple's iOS-26.2 analog) COORDINATES the
|
|
26
|
+
two axes here: the OPACITY axis rides W54's `--glass-level` (firm up toward solid)
|
|
27
|
+
AND the TINT axis biases toward ink — `--glass-tint-source` → the warm-ink +
|
|
28
|
+
`--glass-tint-strength` → the AA floor, the same darken the automatic bright
|
|
29
|
+
bucket applies, now reached by the explicit "more contrast" user request. The two
|
|
30
|
+
axes stay DISTINCT (level = opacity+blur, tint = darken) but share the bracket so
|
|
31
|
+
a high-contrast user gets BOTH a firmer plate and the ink-tint legibility lift —
|
|
32
|
+
one coordinated escape, not two parallel forks. */
|
|
33
|
+
@media (prefers-contrast: more) {
|
|
34
|
+
:root {
|
|
35
|
+
--glass-level: 0.3;
|
|
36
|
+
--glass-tint-source: var(--glass-tint-ink);
|
|
37
|
+
--glass-tint-strength: var(--glass-tint-strength-aa);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* ── Accessibility: forced-colors (Windows High Contrast) glass-language skin ──
|
|
42
|
+
AX.W36 — when the OS forces a palette (Windows High Contrast), the platform
|
|
43
|
+
strips the whole decorative glass register: `backdrop-filter` is dropped, the
|
|
44
|
+
`--glass-*` inset/box-shadow rungs vanish, and every meaning-bearing chroma
|
|
45
|
+
flattens to one system color. A `.glass-floating` Dialog over a `.glass-resting`
|
|
46
|
+
Card would read as two borderless transparent rectangles with no edge, and a
|
|
47
|
+
green-vs-red StatusDot would resolve to one indistinguishable dot. This skin
|
|
48
|
+
restores the STRUCTURE the glass chrome encoded — it does NOT pin glass-ui's
|
|
49
|
+
brand colours (no `forced-color-adjust: none`); the chrome is decorative and
|
|
50
|
+
YIELDS to the user's forced palette (css forced-colors guidance). Only the
|
|
51
|
+
standard WHC system keywords are used (`Canvas`/`CanvasText`/`Highlight`) — no
|
|
52
|
+
glass-ui token leaks into the WHC arm.
|
|
53
|
+
|
|
54
|
+
COORDINATES WITH W54 — the same `--glass-level: 0` opaque escape the reduced-
|
|
55
|
+
transparency / high-contrast brackets ride. Setting the ONE clarity knob to 0
|
|
56
|
+
collapses the `--glass-bg-*` opacity recipe to solid `--card` + `blur(0)` through
|
|
57
|
+
the SAME machinery (no parallel solid recipe), so the platform sees opaque plates
|
|
58
|
+
it maps to `Canvas`. The grain + highlight kills match the reduce bracket (they
|
|
59
|
+
sit off the level axis). The W55 tint axis is moot under WHC (the user's palette
|
|
60
|
+
supersedes the ink-darken) but harmless — the opaque plate is system-painted. */
|
|
61
|
+
@media (forced-colors: active) {
|
|
62
|
+
:root {
|
|
63
|
+
--glass-level: 0;
|
|
64
|
+
--glass-grain-opacity: 0;
|
|
65
|
+
--glass-highlight: 0 0 0 0 transparent;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Every glass-material ladder rung relied on `backdrop-filter` + an inset
|
|
69
|
+
`box-shadow` rim for its silhouette — both gone under WHC. Restore a real
|
|
70
|
+
`border` keyed to the system text colour so each tier pane reads as a boxed
|
|
71
|
+
region. The selector group MIRRORS the ladder definition above (one source,
|
|
72
|
+
not a hand-rolled re-list) so a future rung added to the material group
|
|
73
|
+
inherits the WHC edge for free — and any `.glass-material` div picks up the
|
|
74
|
+
edge with no per-component arm. */
|
|
75
|
+
.glass-material,
|
|
76
|
+
.glass-wash,
|
|
77
|
+
.glass-quiet,
|
|
78
|
+
.glass-resting,
|
|
79
|
+
.glass-floating,
|
|
80
|
+
.glass-overlay,
|
|
81
|
+
.glass-card,
|
|
82
|
+
.glass-drawer {
|
|
83
|
+
border: 1px solid CanvasText;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* The floating + overlay rungs (Dialog / Sheet / Popover / DropdownMenu /
|
|
87
|
+
HoverCard compose them) + the Drawer (the overlay-band sheet, drawer.css)
|
|
88
|
+
get the canonical `Canvas` fill so the modal reads as a DISTINCT boxed
|
|
89
|
+
region OVER the page, not a transparent overlap — the hierarchy survives.
|
|
90
|
+
The `CanvasText` edge above already draws the box; this opaque fill
|
|
91
|
+
separates the floating layer from the content beneath it. */
|
|
92
|
+
.glass-floating,
|
|
93
|
+
.glass-overlay,
|
|
94
|
+
.glass-drawer {
|
|
95
|
+
background: Canvas;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* The decorative specular catch-light (`::before`) + grain overlay (`::after`)
|
|
99
|
+
paint nothing meaningful once chroma collapses — yield them entirely (the
|
|
100
|
+
same decorative-chrome cede the `--glass-level: 0` opaque escape performs on
|
|
101
|
+
the body). They are NOT part of the structure the skin restores. */
|
|
102
|
+
.glass-material::before,
|
|
103
|
+
.glass-wash::before,
|
|
104
|
+
.glass-quiet::before,
|
|
105
|
+
.glass-resting::before,
|
|
106
|
+
.glass-floating::before,
|
|
107
|
+
.glass-overlay::before,
|
|
108
|
+
.glass-card::before,
|
|
109
|
+
.glass-drawer::before,
|
|
110
|
+
.glass-wash::after,
|
|
111
|
+
.glass-quiet::after,
|
|
112
|
+
.glass-resting::after,
|
|
113
|
+
.glass-floating::after,
|
|
114
|
+
.glass-overlay::after {
|
|
115
|
+
display: none;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* Meaning-bearing hue identity → a bordered glyph that keeps ok/warn/error
|
|
119
|
+
distinguishable by a WHC-HONORED system color, NOT a glass-ui hue (which WHC
|
|
120
|
+
strips to one fill). StatusDot reflects its variant onto `data-status`
|
|
121
|
+
(StatusDot.vue) and the inner dot carries `.status-dot__dot`; the
|
|
122
|
+
`role="img"` + `aria-label` accessible name already ships, so this is the
|
|
123
|
+
VISUAL differentiation only. A bare bordered dot + the per-status fill triplet
|
|
124
|
+
below means a sighted WHC user can still tell the row apart.
|
|
125
|
+
|
|
126
|
+
`!important` IS load-bearing here: StatusDot paints the dot fill via an INLINE
|
|
127
|
+
`:style="dotStyle"` (`background-color`, specificity 1,0,0,0), which outranks
|
|
128
|
+
any stylesheet selector AND which forced-colors then `forced-color-adjust:
|
|
129
|
+
auto`-remaps to a single Canvas-white — collapsing the row to one indistinct
|
|
130
|
+
dot. The WHC arm must override that inline fill, and inline can only be beaten
|
|
131
|
+
by `!important`; this is the documented forced-colors degradation path (the
|
|
132
|
+
arm only activates under WHC). The component keeps its inline hue in normal
|
|
133
|
+
mode untouched. */
|
|
134
|
+
.status-dot__dot {
|
|
135
|
+
border: 1px solid CanvasText;
|
|
136
|
+
/* The bordered ring alone separates a dot from its surround; the per-status
|
|
137
|
+
fill below adds the WHC-honored distinction. */
|
|
138
|
+
}
|
|
139
|
+
/* The inner painted fill (`.status-dot__fill`, `h-full w-full`) + the pulse ring
|
|
140
|
+
carry the SAME inline glass-ui hue StatusDot paints — under WHC they cover the
|
|
141
|
+
outer `.status-dot__dot` glyph with a `forced-color-adjust`-remapped Canvas
|
|
142
|
+
fill (the row collapses to one white dot even with the outer system color set).
|
|
143
|
+
Yield them so the outer bordered + system-color glyph is the sole visible dot. */
|
|
144
|
+
.status-dot__fill,
|
|
145
|
+
.status-dot__pulse {
|
|
146
|
+
display: none;
|
|
147
|
+
}
|
|
148
|
+
/* The ok/warn/error/idle distinction rides the standard WHC keyword palette:
|
|
149
|
+
active (ok) → Highlight (the affirmative system accent)
|
|
150
|
+
paused (warn) → Mark (the marked/attention system color)
|
|
151
|
+
error → CanvasText (a solid filled dot — the strongest weight)
|
|
152
|
+
idle/custom → Canvas (a hollow dot — only the CanvasText ring reads)
|
|
153
|
+
Each stays distinguishable by the system color the user's palette assigns,
|
|
154
|
+
never glass-ui chroma. The `!important` beats the component's inline fill. */
|
|
155
|
+
.status-dot__dot[data-status="active"] {
|
|
156
|
+
background: Highlight !important;
|
|
157
|
+
}
|
|
158
|
+
.status-dot__dot[data-status="paused"] {
|
|
159
|
+
background: Mark !important;
|
|
160
|
+
}
|
|
161
|
+
.status-dot__dot[data-status="error"] {
|
|
162
|
+
background: CanvasText !important;
|
|
163
|
+
}
|
|
164
|
+
.status-dot__dot[data-status="idle"],
|
|
165
|
+
.status-dot__dot[data-status="custom"] {
|
|
166
|
+
background: Canvas !important;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/* ── @supports fallbacks for non-backdrop-filter browsers ── */
|
|
171
|
+
@layer components {
|
|
172
|
+
/* GUARD 1 — the NO-BLUR-AT-ALL engine (supports NEITHER the unprefixed NOR the
|
|
173
|
+
webkit form): paint an opaque-leaning plate so text stays legible without any
|
|
174
|
+
blur. AY.W-A11Y-PERF O-2b note: this is the floor for the theoretical
|
|
175
|
+
neither-supported case. The Safari ≤17 webkit-only trap (supports the `-webkit-`
|
|
176
|
+
form, so this `@supports not (… or …)` is FALSE and the fallback does NOT fire)
|
|
177
|
+
is closed at the SOURCE OF THE PREFIX: O-2a's build pass guarantees the shipped
|
|
178
|
+
dist carries the `-webkit-backdrop-filter:` pair, so a Safari-17 engine renders
|
|
179
|
+
the BLUR off the prefixed rule (it no longer falls through to a transparent
|
|
180
|
+
unprefixed-only surface). The trap closes where the prefix is emitted, not here. */
|
|
181
|
+
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
|
|
182
|
+
.glass-wash {
|
|
183
|
+
background: color-mix(in srgb, var(--card) 80%, transparent);
|
|
184
|
+
}
|
|
185
|
+
.glass-quiet {
|
|
186
|
+
background: color-mix(in srgb, var(--card) 88%, transparent);
|
|
187
|
+
}
|
|
188
|
+
.glass-resting {
|
|
189
|
+
background: color-mix(in srgb, var(--card) 94%, transparent);
|
|
190
|
+
}
|
|
191
|
+
.glass-floating {
|
|
192
|
+
background: color-mix(in srgb, var(--card) 98%, transparent);
|
|
193
|
+
}
|
|
194
|
+
.glass-overlay {
|
|
195
|
+
background: var(--card);
|
|
196
|
+
}
|
|
197
|
+
.glass-btn {
|
|
198
|
+
background: color-mix(in srgb, var(--background) 92%, transparent);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/* GUARD 2 — the WEBKIT-ONLY engine (supports `-webkit-backdrop-filter` but NOT the
|
|
203
|
+
unprefixed `backdrop-filter` — Safari ≤17). With O-2a's build-emitted prefix the
|
|
204
|
+
shipped rung carries the `-webkit-backdrop-filter:` pair, so this engine PAINTS
|
|
205
|
+
the blur off that prefixed declaration. This guard exists to DOCUMENT-and-confirm
|
|
206
|
+
that path (and would re-assert the translucent glass identity if a future change
|
|
207
|
+
ever stripped the rung bg under this engine) — it re-states the rungs' translucent
|
|
208
|
+
glass-mix so a webkit-only engine that DID get the prefix keeps the glass look,
|
|
209
|
+
never the opaque GUARD-1 plate. The `proof:webkit-backdrop` gate asserts the
|
|
210
|
+
shipped dist carries BOTH guards. */
|
|
211
|
+
@supports ((-webkit-backdrop-filter: blur(1px)) and (not (backdrop-filter: blur(1px)))) {
|
|
212
|
+
.glass-wash {
|
|
213
|
+
background: color-mix(in oklab, var(--glass-bg-wash), var(--glass-tint-source) var(--glass-tint-strength));
|
|
214
|
+
}
|
|
215
|
+
.glass-quiet {
|
|
216
|
+
background: color-mix(in oklab, var(--glass-bg-quiet), var(--glass-tint-source) var(--glass-tint-strength));
|
|
217
|
+
}
|
|
218
|
+
.glass-resting {
|
|
219
|
+
background: color-mix(in oklab, var(--glass-bg-resting), var(--glass-tint-source) var(--glass-tint-strength));
|
|
220
|
+
}
|
|
221
|
+
.glass-floating {
|
|
222
|
+
background: color-mix(in oklab, var(--glass-bg-floating), var(--glass-tint-source) var(--glass-tint-strength));
|
|
223
|
+
}
|
|
224
|
+
.glass-overlay {
|
|
225
|
+
background: color-mix(in oklab, var(--glass-bg-overlay), var(--glass-tint-source) var(--glass-tint-strength));
|
|
226
|
+
}
|
|
227
|
+
.glass-btn {
|
|
228
|
+
background: var(--glass-bg-wash);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/* ── :has() focus-elevation fallback (AQ.W3 §W3.1a) ──────────────────────
|
|
234
|
+
SOLE fallback for engines without `:has()`. `.is-focus-within` is toggled
|
|
235
|
+
by a ≤6-LOC focusin/focusout guard in `Card.vue` that runs ONLY when
|
|
236
|
+
`!CSS.supports('selector(:has(*))')` (modern engines run zero JS). The
|
|
237
|
+
class redefines the SAME `--card-focus-*` rungs as the `:has()` rule, so the
|
|
238
|
+
override values have one source. NOT a live+dead alias — `:has()` is the
|
|
239
|
+
enhancement, this the documented degradation path. */
|
|
240
|
+
@supports not selector(:has(*)) {
|
|
241
|
+
.glass-card.is-focus-within {
|
|
242
|
+
--card-focus-shadow: var(--shadow-md);
|
|
243
|
+
--card-focus-border: var(--glass-border-floating);
|
|
244
|
+
}
|
|
245
|
+
}
|