@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
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/* utilities/btn.css
|
|
2
|
+
The interactive/button @utility cluster — scale-on-hover, twin-line-divider, transition-control/collapse, sheet-animate, table-cell/head density, rainbow-vivid/pastel, the text-highlight paint, and btn-interactive. (The btn-audacious/btn-audacious-gold disco recipes + the btn-gold-bg-sweep keyframes were RETIRED at BA.W-GLASS-CAL.)
|
|
3
|
+
Carved from the utilities.css cascade root; @import-ed by utilities.css in
|
|
4
|
+
cascade order. See docs/precepts/design-idioms.md §cohesion-aware partials. */
|
|
5
|
+
/* ── Hover scale (O.W6 Lane C) ──
|
|
6
|
+
Canonical hover-transform utility consuming the `--scale-hover` token
|
|
7
|
+
(tokens.css §11). Promoted from consumer-side `hover:scale-105`
|
|
8
|
+
recipe — 13 sites in keyframes.js demo + 9 sites in words/frontend
|
|
9
|
+
per O11/d L3 + O11/a I4. Single-token recipe (no ladder); the dual
|
|
10
|
+
`--scale-press-{xs..lg}` ladder discussion is the press-axis cohort
|
|
11
|
+
(O-N-7), not hover. Consumers reach the utility via
|
|
12
|
+
`class="scale-on-hover"`; transition + easing bind to the canonical
|
|
13
|
+
`--duration-fast` + `--ease-standard` tokens. */
|
|
14
|
+
@utility scale-on-hover {
|
|
15
|
+
/* Individual-transform identity base (AQ.W3 §W3.2). Transition the `scale`
|
|
16
|
+
longhand (not `transform`) so the migrated hover scale animates.
|
|
17
|
+
AX.W52 §6 doctrine — the `scale` transform leg rides `--spring-smooth`
|
|
18
|
+
(the settle register), NOT the bezier `--ease-standard` (a transform on a
|
|
19
|
+
bezier reads mechanical; springs read alive on transform). */
|
|
20
|
+
scale: 1;
|
|
21
|
+
transition: scale var(--spring-smooth-duration) var(--spring-smooth);
|
|
22
|
+
|
|
23
|
+
&:hover {
|
|
24
|
+
scale: var(--scale-hover);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* ── Twin-line divider — the chassis catch-light / under-shadow groove ───────
|
|
29
|
+
AW.W15 DRY extraction. The twin-line idiom (a 1px white catch-light over a
|
|
30
|
+
1px black under-shadow reading as one engraved hairline groove) is the
|
|
31
|
+
chassis-divider signature. This utility is the SINGLE source of that
|
|
32
|
+
α pair: it publishes `--twin-line-catch` (the top catch-light) and
|
|
33
|
+
`--twin-line-shadow` (the bottom under-shadow) as cascade tokens, dark-adaptive
|
|
34
|
+
by construction (the `.dark &` arm re-resolves them). `instrument-chassis.css`
|
|
35
|
+
(`.bezel-line.top`/`.bottom`) `@apply`s it and reads the tokens; a retint
|
|
36
|
+
touches one rule. (The prior `instrument-rail.css` co-consumer retired at
|
|
37
|
+
AZ.W-PRUNE2 with its component — the α pair stays canonicalised here.) */
|
|
38
|
+
@utility twin-line-divider {
|
|
39
|
+
--twin-line-catch: rgb(255 255 255 / 0.10);
|
|
40
|
+
--twin-line-shadow: rgb(0 0 0 / 0.12);
|
|
41
|
+
|
|
42
|
+
:where(.dark) & {
|
|
43
|
+
--twin-line-catch: rgb(255 255 255 / 0.06);
|
|
44
|
+
--twin-line-shadow: rgb(0 0 0 / 0.18);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* ── Control transition recipe (AU.W8b.4) ───────────────────────────────
|
|
49
|
+
Shared compound transition for interactive controls that animate their
|
|
50
|
+
surface (background-color/color/box-shadow/border-color) on the four-state
|
|
51
|
+
contract. Replaces the per-site
|
|
52
|
+
`transition-[background-color,color,box-shadow,border-color] duration-[var(--duration-fast)] ease-[var(--ease-standard)]`
|
|
53
|
+
arbitrary wraps at ≥2 sites (TabsTrigger, SelectTrigger, Toggle `card`
|
|
54
|
+
variant). Binds the canonical --duration-fast + --ease-standard tokens. */
|
|
55
|
+
@utility transition-control {
|
|
56
|
+
transition-property: background-color, color, box-shadow, border-color;
|
|
57
|
+
transition-duration: var(--duration-fast);
|
|
58
|
+
transition-timing-function: var(--ease-standard);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* ── Collapse transition recipe (AU.W8b.4) ──────────────────────────────
|
|
62
|
+
Shared height+opacity transition for reka-ui collapse surfaces (Accordion
|
|
63
|
+
content, Collapsible content). Replaces the per-site `transition-[height,opacity]`
|
|
64
|
+
wrap at ≥2 sites. The duration/easing rides the data-state
|
|
65
|
+
`animate-accordion-*`/`animate-collapsible-*` keyframes (this only declares
|
|
66
|
+
WHICH properties transition; the keyframes own the timing). */
|
|
67
|
+
@utility transition-collapse {
|
|
68
|
+
transition-property: height, opacity;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* ── Sheet/drawer slide-out animation grammar ──
|
|
72
|
+
Mirror of `.popover-animate` for sheet/drawer panels. Pairs with
|
|
73
|
+
`slide-in-from-{top,right,bottom,left}-N` to compose side-keyed entries.
|
|
74
|
+
The open path uses --duration-panel (slow, deliberate); the close path
|
|
75
|
+
uses --duration-fast so dismiss feels snappy. R5 vocab.γ gap row 6;
|
|
76
|
+
consumed by W2.A sheet/drawer migration. */
|
|
77
|
+
@utility sheet-animate {
|
|
78
|
+
@apply data-[state=open]:animate-in data-[state=closed]:animate-out
|
|
79
|
+
data-[state=open]:fade-in data-[state=closed]:fade-out
|
|
80
|
+
data-[state=open]:duration-[var(--duration-panel)]
|
|
81
|
+
data-[state=closed]:duration-[var(--duration-fast)];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* ── Calm CTA register (BA.W-GLASS-CAL, H2a — the disco retired) ──────────
|
|
85
|
+
The `@utility btn-audacious` + `@utility btn-audacious-gold` recipes + the
|
|
86
|
+
`@keyframes btn-gold-bg-sweep` are RETIRED (clean break, no alias). The user
|
|
87
|
+
removed the "disco effect" wholesale: the sparkle `::after` glyph, the
|
|
88
|
+
disco-grain hover (`--paper-clean-texture` + `--primary`/gold radial), the
|
|
89
|
+
gold-sweep shimmer, and the typed `--ripple-radius` press-ripple are GONE.
|
|
90
|
+
|
|
91
|
+
The `primary-audacious`/`gold-audacious` Button variants (button/index.ts)
|
|
92
|
+
now collapse onto the calm glass-first register — the `glass-wash`/`btn-glass`
|
|
93
|
+
surface + the `--glass-specular` edge catch-light, hover/press on the §6
|
|
94
|
+
doctrine (surface→`--ease-standard`, scale→`--spring-smooth`). `gold-audacious`
|
|
95
|
+
keeps a STATIC warm-gold tint (no animated sweep). The fenced-out GOOD pops
|
|
96
|
+
(`.gold-shimmer` static text gradient, the specular gleam, the press-scale)
|
|
97
|
+
STAY — they were never disco. */
|
|
98
|
+
|
|
99
|
+
/* ── Table density utilities — AN.R0 ─────────────────────────────────────
|
|
100
|
+
`table-cell` and `table-head` replace the former Tailwind `p-4` / `h-12`
|
|
101
|
+
literals in TableCell.vue / TableHead.vue. Both read `--table-density`
|
|
102
|
+
(tokens.css §19) so a single CSS-var assignment on a wrapping element
|
|
103
|
+
scales all row padding + header height simultaneously. Default density=1
|
|
104
|
+
resolves to the identical geometry as the previous Tailwind literals. */
|
|
105
|
+
@utility table-cell {
|
|
106
|
+
padding-inline: var(--table-cell-px, 1rem);
|
|
107
|
+
padding-block: var(--table-cell-py, 1rem);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
@utility table-head {
|
|
111
|
+
height: var(--table-head-h, 3rem);
|
|
112
|
+
padding-inline: var(--table-head-px, 1rem);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/* ── Rainbow gradient backgrounds ───────────────────────────────────────
|
|
116
|
+
`.rainbow-vivid` + `.rainbow-pastel` paint a left-to-right 7-stop spectrum
|
|
117
|
+
from the canonical `--rainbow-*` / `--rainbow-pastel-*` token families
|
|
118
|
+
(tokens.css §14). Consumed by keyframes.js's demo transport chrome —
|
|
119
|
+
`TransportDock.vue` / `RibbonBar.vue` bind `rainbow-vivid` (playing/active)
|
|
120
|
+
vs `rainbow-pastel` (idle) on the play + Apply buttons (re-confirmed live at
|
|
121
|
+
AZ.W-PRUNE2 E4-2). */
|
|
122
|
+
@utility rainbow-vivid {
|
|
123
|
+
background: linear-gradient(
|
|
124
|
+
to right,
|
|
125
|
+
var(--rainbow-red),
|
|
126
|
+
var(--rainbow-orange),
|
|
127
|
+
var(--rainbow-yellow),
|
|
128
|
+
var(--rainbow-green),
|
|
129
|
+
var(--rainbow-blue),
|
|
130
|
+
var(--rainbow-indigo),
|
|
131
|
+
var(--rainbow-violet)
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
@utility rainbow-pastel {
|
|
136
|
+
background: linear-gradient(
|
|
137
|
+
to right,
|
|
138
|
+
var(--rainbow-pastel-red),
|
|
139
|
+
var(--rainbow-pastel-orange),
|
|
140
|
+
var(--rainbow-pastel-yellow),
|
|
141
|
+
var(--rainbow-pastel-green),
|
|
142
|
+
var(--rainbow-pastel-blue),
|
|
143
|
+
var(--rainbow-pastel-indigo),
|
|
144
|
+
var(--rainbow-pastel-violet)
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/* ── Text-highlight paint (CSS Custom Highlight API) ─────────────────────
|
|
149
|
+
The default `::highlight()` paint for the `useTextHighlight` composable
|
|
150
|
+
(composables/motion; the `/motion-core` subpath, AX.W37). A named `Highlight`
|
|
151
|
+
registered in `CSS.highlights`
|
|
152
|
+
under one of these keys paints its `Range` set without a `<mark>` wrapper.
|
|
153
|
+
Token-bridged: the search mark reads the canonical pastel-yellow rainbow
|
|
154
|
+
token at a soft alpha; the equation/variable mark reads `--primary`. Both
|
|
155
|
+
axes are overridable via the `--text-highlight-*` custom properties. */
|
|
156
|
+
::highlight(glass-search-mark) {
|
|
157
|
+
background-color: var(
|
|
158
|
+
--text-highlight-search-bg,
|
|
159
|
+
color-mix(in srgb, var(--rainbow-pastel-yellow) 55%, transparent)
|
|
160
|
+
);
|
|
161
|
+
color: var(--text-highlight-search-fg, inherit);
|
|
162
|
+
}
|
|
163
|
+
::highlight(glass-mark) {
|
|
164
|
+
background-color: var(
|
|
165
|
+
--text-highlight-bg,
|
|
166
|
+
color-mix(in srgb, var(--primary) 18%, transparent)
|
|
167
|
+
);
|
|
168
|
+
color: var(--text-highlight-fg, inherit);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/* ── Interactive-button four-state recipe ────────────────────────────────
|
|
172
|
+
`.btn-interactive` carries the canonical "Button-with-spring-hover"
|
|
173
|
+
four-state contract — transition + hover-scale + active-press + disabled-
|
|
174
|
+
opacity + focus-ring fade-in. The Button primitive's variants emit the four
|
|
175
|
+
states except `hover:scale-*`; this is the canonical opt-in that adds the
|
|
176
|
+
spring-hover lift. Consumed by keyframes.js at 7 sites.
|
|
177
|
+
|
|
178
|
+
AX.W52 §6 — the hover lift is the restrained `--scale-hover-btn` (1.05, NOT
|
|
179
|
+
the emphatic 1.08 `--scale-hover`) routed through `--spring-smooth` — the ONE
|
|
180
|
+
button scale register the §6 doctrine records and the gate asserts across
|
|
181
|
+
`.btn-pill`/`.tap-squish`/`.glass-btn`/`btn-interactive`. The surface legs
|
|
182
|
+
stay on the bezier `--ease-standard` (a colour cross-fade reads as a wobble
|
|
183
|
+
on a spring); only the `scale` transform leg springs. */
|
|
184
|
+
@utility btn-interactive {
|
|
185
|
+
/* AQ.W3 §W3.2 identity base */
|
|
186
|
+
scale: 1;
|
|
187
|
+
transition:
|
|
188
|
+
background-color var(--duration-fast) var(--ease-standard),
|
|
189
|
+
color var(--duration-fast) var(--ease-standard),
|
|
190
|
+
scale var(--spring-smooth-duration) var(--spring-smooth),
|
|
191
|
+
opacity var(--duration-fast) var(--ease-standard);
|
|
192
|
+
|
|
193
|
+
&:hover {
|
|
194
|
+
scale: var(--scale-hover-btn);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
&:active {
|
|
198
|
+
scale: var(--scale-press);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
&:disabled {
|
|
202
|
+
opacity: var(--opacity-disabled);
|
|
203
|
+
pointer-events: none;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
&:focus-visible {
|
|
207
|
+
box-shadow: var(--focus-ring-shadow);
|
|
208
|
+
outline: none;
|
|
209
|
+
/* Fade in; base state has no box-shadow transition → instant
|
|
210
|
+
removal. The `scale` leg keeps the `--spring-smooth` register. */
|
|
211
|
+
transition:
|
|
212
|
+
background-color var(--duration-fast) var(--ease-standard),
|
|
213
|
+
color var(--duration-fast) var(--ease-standard),
|
|
214
|
+
scale var(--spring-smooth-duration) var(--spring-smooth),
|
|
215
|
+
opacity var(--duration-fast) var(--ease-standard),
|
|
216
|
+
box-shadow var(--duration-fast) var(--ease-standard);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/* utilities/components.css
|
|
2
|
+
The @layer components component half — metric-badge pill + label-bearing variants, the glassmorphic input-bar, hover-lift levels, cartoon shadows, divider utilities.
|
|
3
|
+
Carved from the utilities.css cascade root; @import-ed by utilities.css in
|
|
4
|
+
cascade order. See docs/precepts/design-idioms.md §cohesion-aware partials. */
|
|
5
|
+
@layer components {
|
|
6
|
+
/* ── Metric badge pill — compact glass label for numeric telemetry ── */
|
|
7
|
+
.metric-badge {
|
|
8
|
+
display: inline-flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
justify-content: center;
|
|
11
|
+
text-align: center;
|
|
12
|
+
/* AQ.W3 §W3.2 identity base */
|
|
13
|
+
scale: 1;
|
|
14
|
+
gap: var(--metric-badge-gap, 0.125rem);
|
|
15
|
+
max-width: var(--metric-badge-max-width, 8rem);
|
|
16
|
+
min-height: var(--metric-badge-min-height, 1.5rem);
|
|
17
|
+
padding:
|
|
18
|
+
var(--metric-badge-padding-block, 0.125rem)
|
|
19
|
+
var(--metric-badge-padding-inline, 0.5rem);
|
|
20
|
+
overflow: hidden;
|
|
21
|
+
flex-shrink: 0;
|
|
22
|
+
line-height: 1;
|
|
23
|
+
/* Canonical 5-tier glass surface: the `quiet` rung paints the badge
|
|
24
|
+
plate at the `--glass-bg-quiet` α (0.50) with `--glass-blur-quiet`.
|
|
25
|
+
Reduced-transparency / no-backdrop-filter fallbacks propagate
|
|
26
|
+
through the lazy custom-property resolution that `glass.css`
|
|
27
|
+
sets up — the badge no longer bypasses the canon.
|
|
28
|
+
(Per audit U.W0.C-c §7.2.) */
|
|
29
|
+
border: 1px solid var(--metric-badge-border, var(--glass-border-quiet));
|
|
30
|
+
border-radius: var(--metric-badge-radius, var(--radius-badge, var(--radius-pill)));
|
|
31
|
+
background: var(--metric-badge-bg, var(--glass-bg-quiet));
|
|
32
|
+
backdrop-filter: var(--metric-badge-blur, var(--glass-blur-quiet));
|
|
33
|
+
box-shadow: var(--metric-badge-shadow, 0 1px 6px color-mix(in srgb, var(--shadow-color) 8%, transparent), var(--glass-highlight));
|
|
34
|
+
transition:
|
|
35
|
+
background var(--duration-fast) var(--ease-standard),
|
|
36
|
+
border-color var(--duration-fast) var(--ease-standard),
|
|
37
|
+
box-shadow var(--duration-fast) var(--ease-standard),
|
|
38
|
+
scale var(--duration-fast) var(--ease-standard);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.metric-badge > span {
|
|
42
|
+
line-height: 1;
|
|
43
|
+
/* AW.W26 — `wrap-anywhere` (overflow-wrap: anywhere) on the value slot:
|
|
44
|
+
a long metric value breaks WITHIN the badge rather than being clipped
|
|
45
|
+
by the host `overflow: hidden`. v4.1 `wrap-anywhere` / mwg css §7.
|
|
46
|
+
Scoped to the value span, NOT a universal selector (mwg perf caveat). */
|
|
47
|
+
overflow-wrap: anywhere;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.metric-badge:hover {
|
|
51
|
+
/* Hover lifts to the `resting` rung — one step up the canonical
|
|
52
|
+
ladder (audit U.W0.C-c §7.2). */
|
|
53
|
+
border-color: var(--metric-badge-hover-border, var(--glass-border-resting));
|
|
54
|
+
background: var(--metric-badge-hover-bg, var(--glass-bg-resting));
|
|
55
|
+
box-shadow: var(--metric-badge-hover-shadow, 0 2px 10px color-mix(in srgb, var(--shadow-color) 12%, transparent), var(--glass-highlight));
|
|
56
|
+
scale: var(--metric-badge-hover-scale, 1.02);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.metric-badge:active {
|
|
60
|
+
scale: var(--metric-badge-press-scale, 0.96);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.metric-badge:focus-visible {
|
|
64
|
+
outline: none;
|
|
65
|
+
box-shadow: var(--focus-ring-shadow);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Phase-finish catch-light — the quieter cousin of --glass-specular.
|
|
69
|
+
Speedtest toggles `data-just-resolved="true"` on a metric pill once
|
|
70
|
+
its phase completes; the badge briefly carries a 1px catch-light
|
|
71
|
+
streak at the top edge. Reads as the pill catching club lighting at
|
|
72
|
+
the moment its result resolves. */
|
|
73
|
+
.metric-badge[data-just-resolved="true"] {
|
|
74
|
+
box-shadow:
|
|
75
|
+
inset 0 1px 0 0 rgb(255 255 255 / 0.18),
|
|
76
|
+
var(--metric-badge-shadow,
|
|
77
|
+
0 1px 6px color-mix(in srgb, var(--shadow-color) 8%, transparent),
|
|
78
|
+
var(--glass-highlight));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* ── Label-bearing variants ───────────────────────────────────────────
|
|
82
|
+
When the badge carries a `labelPosition`, the prose-style annotation
|
|
83
|
+
slot precedes the amount. Inline keeps the row baseline-aligned;
|
|
84
|
+
stacked breaks to a column with items flush-left. The label slot
|
|
85
|
+
carries its own tracked uppercase rules; the badge's max-width
|
|
86
|
+
relaxes so the wider register fits. */
|
|
87
|
+
.metric-badge--label-inline {
|
|
88
|
+
flex-direction: row;
|
|
89
|
+
align-items: baseline;
|
|
90
|
+
justify-content: flex-start;
|
|
91
|
+
gap: var(--metric-badge-label-gap, 0.375rem);
|
|
92
|
+
max-width: var(--metric-badge-label-max-width, none);
|
|
93
|
+
text-align: left;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.metric-badge--label-stacked {
|
|
97
|
+
flex-direction: column;
|
|
98
|
+
align-items: flex-start;
|
|
99
|
+
justify-content: center;
|
|
100
|
+
gap: var(--metric-badge-label-gap-stacked, 0.0625rem);
|
|
101
|
+
max-width: var(--metric-badge-label-max-width, none);
|
|
102
|
+
text-align: left;
|
|
103
|
+
min-height: var(--metric-badge-min-height-stacked, 2.625rem);
|
|
104
|
+
padding-block: var(--metric-badge-padding-block-stacked, 0.375rem);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* T.W2.T2 — stacked variant pairs amount + unit on a single row (row 2)
|
|
108
|
+
below the label (row 1). The `.metric-badge__row` wrapper baseline-
|
|
109
|
+
aligns the value and unit so the quantity reads as one phrase, not as
|
|
110
|
+
three siblings split across three rows (the pre-T behaviour the
|
|
111
|
+
audit B-spec §2.1 flagged). */
|
|
112
|
+
.metric-badge--label-stacked .metric-badge__row {
|
|
113
|
+
display: inline-flex;
|
|
114
|
+
align-items: baseline;
|
|
115
|
+
gap: var(--metric-badge-row-gap-stacked, 0.25rem);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* T.W2.T3 — MetricPill density modifiers. The pill is a thin composition
|
|
119
|
+
over MetricBadge with `labelPosition="stacked"` defaults; the density
|
|
120
|
+
knob adjusts block padding + horizontal padding so the pill reads at
|
|
121
|
+
the right register for its dock host. `spacious` is the default
|
|
122
|
+
(chassis-strip rhythm), `comfortable` keeps the tighter compact
|
|
123
|
+
register for densely-packed dock clusters. The selectors compose with
|
|
124
|
+
`.metric-badge--label-stacked` so the inline ladder remains untouched
|
|
125
|
+
— these are stacked-only refinements. */
|
|
126
|
+
.metric-pill[data-density="spacious"].metric-badge--label-stacked {
|
|
127
|
+
--metric-badge-padding-block-stacked: 0.5rem;
|
|
128
|
+
--metric-badge-padding-inline: 0.75rem;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.metric-pill[data-density="comfortable"].metric-badge--label-stacked {
|
|
132
|
+
--metric-badge-padding-block-stacked: 0.25rem;
|
|
133
|
+
--metric-badge-padding-inline: 0.5rem;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* AS.W4 — @container style(--density) companion. A pill nested under a host
|
|
137
|
+
that sets `--density: comfortable | spacious` on a wrapping element picks
|
|
138
|
+
up the matching padding register with no `data-density` markup contract;
|
|
139
|
+
the attribute rules above stay the SOLE fallback (inv 47).
|
|
140
|
+
The inner `.metric-pill.metric-badge--label-stacked` selector (0,2,0) sits
|
|
141
|
+
just BELOW the `.metric-pill[data-density]…` attribute rules (0,3,0) — so a
|
|
142
|
+
pill carrying BOTH the attribute and a `--density` ancestor lands on the
|
|
143
|
+
attribute rule (same tokens, identical paint), while a pill with only the
|
|
144
|
+
ancestor token still resolves the right register (no competing rule sets
|
|
145
|
+
these padding custom props at higher weight in that case).
|
|
146
|
+
|
|
147
|
+
No `@supports` wrapper: unlike the sibling scroll-state recipe (which
|
|
148
|
+
probes `@supports (container-type: scroll-state)` — a probeable
|
|
149
|
+
container-type VALUE), style queries introduce no new `container-type`
|
|
150
|
+
value (every element is a style container by default), so there is no
|
|
151
|
+
clean declaration test for style-query support. This relies on
|
|
152
|
+
`@container style()`'s own graceful degradation: an engine without
|
|
153
|
+
style-query support parses the unknown at-rule as invalid, drops the
|
|
154
|
+
block, and keeps the `[data-density]` attribute base. (The earlier
|
|
155
|
+
`@supports (container-type: inline-size)` wrapper was wrong — it probed
|
|
156
|
+
SIZE-query support, a distinct feature with a distinct support timeline.) */
|
|
157
|
+
@container style(--density: spacious) {
|
|
158
|
+
.metric-pill.metric-badge--label-stacked {
|
|
159
|
+
--metric-badge-padding-block-stacked: 0.5rem;
|
|
160
|
+
--metric-badge-padding-inline: 0.75rem;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
@container style(--density: comfortable) {
|
|
164
|
+
.metric-pill.metric-badge--label-stacked {
|
|
165
|
+
--metric-badge-padding-block-stacked: 0.25rem;
|
|
166
|
+
--metric-badge-padding-inline: 0.5rem;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.metric-badge__label {
|
|
171
|
+
letter-spacing: 0.18em;
|
|
172
|
+
line-height: 1;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/* Dual-slot default visibility (R2-spec):
|
|
176
|
+
The library renders both `--full` and `--abbr` siblings whenever both
|
|
177
|
+
props are passed. Default identity is the full label; the abbreviation
|
|
178
|
+
sits hidden until consumer container-query CSS flips it. The adjacent-
|
|
179
|
+
sibling selector preserves single-slot back-compat: when a consumer
|
|
180
|
+
passes only `abbreviation` (no `--full` sibling rendered), the abbr
|
|
181
|
+
reads at default visibility. */
|
|
182
|
+
.metric-badge__label--full + .metric-badge__label--abbr {
|
|
183
|
+
display: none;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/* sm-tier label tracking — tighter than the md/lg/xl 0.18em rung so the
|
|
187
|
+
compact register reads as a tighter annotation against the smaller
|
|
188
|
+
glyph rise. R2-spec D-Rec-2 (audit-D). */
|
|
189
|
+
.metric-badge[data-size="sm"] .metric-badge__label {
|
|
190
|
+
letter-spacing: 0.1em;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/* Q.W3 Lane A — the `.glass-dock[data-density="…"]` density rungs that
|
|
194
|
+
set `--dock-tab-h` + `--dock-label-size` were consolidated into
|
|
195
|
+
`dock.css` (their canonical dock-styles home). They formerly lived
|
|
196
|
+
here and resolved only by the index.css import order (utilities.css
|
|
197
|
+
after dock.css); the cascade-order dependency is now gone. */
|
|
198
|
+
|
|
199
|
+
/* ── Input bar — glassmorphic inline input container ──
|
|
200
|
+
Composes the canonical `floating` glass rung (--glass-bg-floating
|
|
201
|
+
≈ 80% α, --glass-blur-floating ≈ 24px) — same surface read as the
|
|
202
|
+
prior raw composition but routed through the canonical 5-tier
|
|
203
|
+
ladder so PRT / no-backdrop-filter fallbacks propagate cleanly.
|
|
204
|
+
(Per audit U.W0.C-c §7.2.) */
|
|
205
|
+
.input-bar {
|
|
206
|
+
display: flex;
|
|
207
|
+
align-items: center;
|
|
208
|
+
gap: 0.5rem;
|
|
209
|
+
border-radius: var(--radius-2xl);
|
|
210
|
+
border: 1px solid var(--glass-border-floating);
|
|
211
|
+
background: var(--glass-bg-floating);
|
|
212
|
+
backdrop-filter: var(--glass-blur-floating);
|
|
213
|
+
|
|
214
|
+
padding: 0 0.75rem;
|
|
215
|
+
height: 2.25rem;
|
|
216
|
+
max-width: var(--max-width-input);
|
|
217
|
+
width: 100%;
|
|
218
|
+
transition:
|
|
219
|
+
box-shadow var(--duration-fast) var(--ease-standard),
|
|
220
|
+
border-color var(--duration-fast) var(--ease-standard);
|
|
221
|
+
}
|
|
222
|
+
.input-bar:focus-within {
|
|
223
|
+
box-shadow: var(--focus-ring-shadow);
|
|
224
|
+
border-color: var(--border);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.input-bar-field {
|
|
228
|
+
font-family: var(--font-mono, monospace);
|
|
229
|
+
font-size: var(--type-small);
|
|
230
|
+
background: transparent;
|
|
231
|
+
border: none;
|
|
232
|
+
outline: none;
|
|
233
|
+
flex: 1;
|
|
234
|
+
min-width: 0;
|
|
235
|
+
}
|
|
236
|
+
.input-bar-field::placeholder {
|
|
237
|
+
color: color-mix(in srgb, var(--muted-foreground) 50%, transparent);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* ── Hover lift — translate-y + shadow on hover (3 levels) ──
|
|
241
|
+
The shared transition is expressed once over the family; the three
|
|
242
|
+
:hover rules carry the per-level translate + shadow. */
|
|
243
|
+
:where(.hover-lift, .hover-lift-md, .hover-lift-lg) {
|
|
244
|
+
/* Individual-transform identity base (AQ.W3 §W3.2) — `translate: 0` at
|
|
245
|
+
rest mints the stacking context once so the hover lift does not
|
|
246
|
+
flicker it into being. */
|
|
247
|
+
translate: 0;
|
|
248
|
+
transition-property: translate, box-shadow;
|
|
249
|
+
transition-duration: var(--duration-normal);
|
|
250
|
+
transition-timing-function: var(--ease-standard);
|
|
251
|
+
}
|
|
252
|
+
.hover-lift:hover:not(:disabled):not([aria-disabled='true']) {
|
|
253
|
+
translate: 0 var(--lift-sm);
|
|
254
|
+
box-shadow: var(--shadow-md);
|
|
255
|
+
}
|
|
256
|
+
.hover-lift-md:hover:not(:disabled):not([aria-disabled='true']) {
|
|
257
|
+
translate: 0 var(--lift-md);
|
|
258
|
+
box-shadow: var(--shadow-md);
|
|
259
|
+
}
|
|
260
|
+
.hover-lift-lg:hover:not(:disabled):not([aria-disabled='true']) {
|
|
261
|
+
translate: 0 var(--lift-lg);
|
|
262
|
+
box-shadow: var(--shadow-lg);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/* ── Cartoon shadows — token-driven box-shadow + bezel border + lift ──
|
|
266
|
+
The box-shadow stack reads from the canonical
|
|
267
|
+
`--shadow-cartoon-{sm,md,lg}` rungs declared at tokens.css:304-312.
|
|
268
|
+
Those rungs use `color-mix(in srgb, var(--shadow-color) N%, transparent)`
|
|
269
|
+
so dark-mode flips the cast through `--shadow-color` automatically.
|
|
270
|
+
The 2px bezel border + translateY are the cartoon-stamp geometry
|
|
271
|
+
atop the canonical depth — kept here so a single class delivers
|
|
272
|
+
the whole cartoon read.
|
|
273
|
+
(Per audit U.W0.C-c §1.3 / Union 1 — collapses the dual-system
|
|
274
|
+
drift onto the token-driven shadow.) */
|
|
275
|
+
:where(.shadow-cartoon-sm, .shadow-cartoon-md, .shadow-cartoon-lg) {
|
|
276
|
+
border: 2px solid var(--border);
|
|
277
|
+
}
|
|
278
|
+
/* Static cartoon-stamp lift (AQ.W3 §W3.2). NOT state-driven, so the
|
|
279
|
+
identity base is not strictly required, but the `translate:` longhand
|
|
280
|
+
keeps the family uniform with the state-driven sites above. */
|
|
281
|
+
.shadow-cartoon-sm {
|
|
282
|
+
box-shadow: var(--shadow-cartoon-sm);
|
|
283
|
+
translate: 0 -1px;
|
|
284
|
+
}
|
|
285
|
+
.shadow-cartoon-md {
|
|
286
|
+
box-shadow: var(--shadow-cartoon-md);
|
|
287
|
+
translate: 0 -1px;
|
|
288
|
+
}
|
|
289
|
+
.shadow-cartoon-lg {
|
|
290
|
+
box-shadow: var(--shadow-cartoon-lg);
|
|
291
|
+
translate: 0 -2px;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/* ── Divider utilities ── */
|
|
295
|
+
.divider-h {
|
|
296
|
+
height: 2px;
|
|
297
|
+
background: linear-gradient(
|
|
298
|
+
to right,
|
|
299
|
+
transparent 1%,
|
|
300
|
+
var(--border) 8%,
|
|
301
|
+
var(--border) 92%,
|
|
302
|
+
transparent 99%
|
|
303
|
+
);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.divider-h-tapered {
|
|
307
|
+
height: 2px;
|
|
308
|
+
background: linear-gradient(
|
|
309
|
+
to right,
|
|
310
|
+
transparent 3%,
|
|
311
|
+
var(--border) 15%,
|
|
312
|
+
var(--border) 85%,
|
|
313
|
+
transparent 97%
|
|
314
|
+
);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
}
|