@mkbabb/glass-ui 3.12.0 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CardAction-DuArVky-.js → CardAction-Cj2eycQ2.js} +2 -2
- package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-RowNEO6i.js} +4 -4
- package/dist/{ContextMenuSubContent-Bhg4f5jX.js → ContextMenuSubContent-BQmxTAdw.js} +4 -4
- package/dist/{DataTable-CUHMukiQ.js → DataTable-BCddn3T3.js} +3 -3
- package/dist/{DialogContent-BRkT1cjP.js → DialogContent-Dl9WkAoS.js} +3 -3
- package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-Blu4t7tJ.js} +2 -2
- package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-CISOJQuZ.js} +1 -1
- package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-DPzE09X9.js} +1 -1
- package/dist/MetricBadge-C9QMz1KT.js +79 -0
- package/dist/{Notification-DLMhblXR.js → Notification-DdwNxIrI.js} +2 -2
- package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-CqaN-SvN.js} +3 -3
- package/dist/{PopoverContent-BId6ggf_.js → PopoverContent-BYwt2-4x.js} +1 -1
- package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-DfFrwSph.js} +1 -1
- package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-CiDUxfEj.js} +6 -6
- package/dist/{Switch-Ch-k3Rv-.js → Switch-CsIuYP_e.js} +1 -1
- package/dist/{TabsList-B8CVOQPC.js → TabsList-Dttss653.js} +9 -5
- package/dist/{Toaster-1rYWrmAm.js → Toaster-D6q4HtXu.js} +50 -47
- package/dist/{ToggleGroupItem-COu_4IW4.js → ToggleGroupItem-D_AHlRw9.js} +18 -22
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +5 -2
- package/dist/api.js +2 -2
- package/dist/aurora.js +69 -69
- package/dist/{badge-CaoFJzRb.js → badge-UILT_3pZ.js} +1 -1
- package/dist/badge.js +1 -1
- package/dist/{button-DN39cGqL.js → button-ChXMfsud.js} +12 -12
- package/dist/button.js +1 -1
- package/dist/card.js +1 -1
- package/dist/carousel.js +8 -8
- 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/{color-C5ls_QF7.js → color-CUYeFbgd.js} +9 -7
- 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 +5 -62
- 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/aurora/index.d.ts +1 -1
- package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +16 -0
- package/dist/components/custom/constellation/Constellation.vue.d.ts +74 -6
- package/dist/components/custom/constellation/composables/createConstellationField.d.ts +41 -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 +116 -149
- package/dist/components/custom/constellation/constellationInteraction.d.ts +132 -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 +88 -0
- package/dist/components/custom/dock/DockTabButton.vue.d.ts +3 -4
- 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 +48 -0
- package/dist/components/custom/dock/index.d.ts +3 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +5 -37
- package/dist/components/custom/fourier-field/index.d.ts +1 -1
- package/dist/components/custom/fourier-field/math.d.ts +17 -0
- package/dist/components/custom/fourier-field/presets.d.ts +54 -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 +11 -8
- package/dist/components/custom/goo-blob/constants.d.ts +52 -0
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
- 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/tabs/constants.d.ts +12 -0
- package/dist/components/custom/underline/GlassUnderline.vue.d.ts +84 -0
- package/dist/components/custom/underline/index.d.ts +2 -0
- package/dist/components/custom/underline/types.d.ts +56 -0
- package/dist/components/ui/card/Card.vue.d.ts +15 -3
- package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
- package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +6 -3
- 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/index.d.ts +1 -1
- package/dist/composables/dark/useGlobalDark.d.ts +1 -21
- 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/configurator.js +1 -1
- package/dist/confirm-dialog.js +2 -2
- package/dist/constellation.js +336 -222
- package/dist/context-menu.js +2 -2
- package/dist/controls.js +48 -20
- package/dist/dark.d.ts +1 -1
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/dialog.js +2 -2
- package/dist/dock.js +705 -365
- package/dist/dockContext-BegmJVmx.js +17 -0
- package/dist/dom.js +5 -5
- package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-DzkkyBwX.js} +11 -8
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +39 -80
- package/dist/forms.js +5 -5
- package/dist/fourier-field.js +134 -99
- package/dist/fourier-math.js +2 -2
- package/dist/glass-panel.js +86 -20
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +222 -212
- package/dist/goo-blob.js +243 -212
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +1 -3
- 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-U6-RrLmV.js} +18 -2
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +25 -21
- 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 -137
- 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/paper-backdrop.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/{presets-BP_ALM0m.js → presets-BKVyQfbt.js} +1 -14
- package/dist/progress.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 +9 -9
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/{sheet-VZEtNFvO.js → sheet-1fChZjtw.js} +3 -3
- package/dist/sheet.js +1 -1
- package/dist/{slider-ClgpP7EB.js → slider-B-JP2JlI.js} +4 -4
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +2 -2
- package/dist/springPresets--YdWTHtm.js +40 -0
- package/dist/stacked-icons.js +6 -6
- package/dist/styles/animations.css +29 -114
- package/dist/styles/cards.css +55 -0
- package/dist/styles/components.css +4 -1
- package/dist/styles/configurator.css +42 -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 +51 -1
- package/dist/styles/dock/rail-extend.css +300 -0
- package/dist/styles/dock/shell.css +63 -105
- package/dist/styles/dock-controls/dark-mode-toggle.css +109 -0
- package/dist/styles/dock-controls/icon-button.css +133 -0
- package/dist/styles/dock-controls/tab-button.css +202 -0
- package/dist/styles/dock-controls/touch-floor.css +94 -0
- package/dist/styles/dock-controls/triggers.css +128 -0
- package/dist/styles/dock-controls.css +30 -595
- package/dist/styles/dock.css +2 -0
- package/dist/styles/drawer.css +2 -0
- package/dist/styles/floating-panel.css +17 -0
- package/dist/styles/glass/a11y-fallback.css +245 -0
- package/dist/styles/glass/ladder.css +337 -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/surfaces.css +306 -0
- package/dist/styles/glass-refract.css +2 -0
- package/dist/styles/glass.css +31 -1188
- package/dist/styles/hover-popover.css +2 -0
- package/dist/styles/index.css +28 -14
- package/dist/styles/instrument-chassis.css +4 -0
- package/dist/styles/paper.css +2 -68
- package/dist/styles/segmented-tabs.css +275 -0
- package/dist/styles/theme/bridges.css +337 -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 +260 -0
- package/dist/styles/tokens/dark-arm.css +200 -0
- package/dist/styles/tokens/glass.css +440 -0
- package/dist/styles/tokens/light-dark.css +158 -0
- package/dist/styles/tokens/offsets-sizing.css +500 -0
- package/dist/styles/tokens/property-regs.css +169 -0
- package/dist/styles/tokens/scale-paper.css +366 -0
- package/dist/styles/tokens/scheme-motion.css +334 -0
- package/dist/styles/tokens/shadow.css +166 -0
- package/dist/styles/tokens.css +22 -2360
- package/dist/styles/typography.css +75 -21
- package/dist/styles/utilities/a11y-overrides.css +140 -0
- package/dist/styles/utilities/animate.css +26 -0
- package/dist/styles/utilities/base.css +365 -0
- package/dist/styles/utilities/btn.css +401 -0
- package/dist/styles/utilities/components.css +317 -0
- package/dist/styles/utilities.css +19 -1318
- package/dist/styles/view-transition.css +0 -51
- package/dist/switch.js +1 -1
- package/dist/tabs.js +91 -82
- package/dist/timeline.js +1 -1
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/underline.d.ts +1 -0
- package/dist/underline.js +85 -0
- package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-C5I3wWd8.js} +1 -1
- package/dist/{useConfiguratorState-DxAqksK6.js → useConfiguratorState-DAoeHVue.js} +8 -8
- package/dist/{useGlobalDark-CAhOXNLO.js → useGlobalDark-yhL4Wp-s.js} +3 -22
- package/dist/useLiquidFlex-BL0lLLN2.js +30 -0
- package/dist/useRAFLoop-Bxv0o6L5.js +109 -0
- package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-Dlvx-L3v.js} +1 -1
- package/dist/useSpecularTracking-Bo5su68i.js +32 -0
- package/dist/useSpringMount-CI2jOstM.js +108 -0
- package/dist/{useTouchGate-WFyJYsth.js → useTouchGate-Dg7MQI1G.js} +1 -1
- package/dist/utils/coalesceMetric.d.ts +29 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/vReveal-CqaCz_mC.js +44 -0
- package/dist/watercolor-dot.js +11 -9
- package/dist/{x-Dfsegz9Y.js → x-BUwTKe50.js} +1 -1
- package/package.json +78 -58
- package/src/styles/animations.css +29 -114
- package/src/styles/cards.css +53 -0
- package/src/styles/configurator.css +42 -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 +51 -1
- package/src/styles/dock/rail-extend.css +300 -0
- package/src/styles/dock/shell.css +63 -105
- package/src/styles/dock-controls/dark-mode-toggle.css +109 -0
- package/src/styles/dock-controls/icon-button.css +133 -0
- package/src/styles/dock-controls/tab-button.css +202 -0
- package/src/styles/dock-controls/touch-floor.css +94 -0
- package/src/styles/dock-controls/triggers.css +128 -0
- package/src/styles/dock-controls.css +30 -595
- package/src/styles/dock.css +2 -0
- package/src/styles/floating-panel.css +15 -0
- package/src/styles/glass/a11y-fallback.css +245 -0
- package/src/styles/glass/ladder.css +337 -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/surfaces.css +306 -0
- package/src/styles/glass.css +31 -1188
- package/src/styles/index.css +28 -14
- package/src/styles/paper.css +2 -68
- package/src/styles/segmented-tabs.css +271 -0
- package/src/styles/theme/bridges.css +337 -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 +260 -0
- package/src/styles/tokens/dark-arm.css +200 -0
- package/src/styles/tokens/glass.css +440 -0
- package/src/styles/tokens/light-dark.css +158 -0
- package/src/styles/tokens/offsets-sizing.css +500 -0
- package/src/styles/tokens/property-regs.css +169 -0
- package/src/styles/tokens/scale-paper.css +366 -0
- package/src/styles/tokens/scheme-motion.css +334 -0
- package/src/styles/tokens/shadow.css +166 -0
- package/src/styles/tokens.css +22 -2360
- package/src/styles/typography.css +75 -21
- package/src/styles/utilities/a11y-overrides.css +140 -0
- package/src/styles/utilities/animate.css +26 -0
- package/src/styles/utilities/base.css +365 -0
- package/src/styles/utilities/btn.css +401 -0
- package/src/styles/utilities/components.css +317 -0
- package/src/styles/utilities.css +19 -1318
- package/src/styles/view-transition.css +0 -51
- package/dist/DeckProgress-Dmk4_AKN.js +0 -23
- package/dist/InstrumentRail-CUJ05YVG.js +0 -44
- package/dist/MetricBadge-BZVWIxNy.js +0 -80
- 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/handmark/HandMark.vue.d.ts +0 -29
- package/dist/components/custom/handmark/brush.d.ts +0 -242
- package/dist/components/custom/handmark/freehand.d.ts +0 -69
- package/dist/components/custom/handmark/geometry.d.ts +0 -50
- package/dist/components/custom/handmark/index.d.ts +0 -21
- package/dist/components/custom/handmark/ink.d.ts +0 -11
- package/dist/components/custom/handmark/texture.d.ts +0 -39
- package/dist/components/custom/handmark/types.d.ts +0 -53
- package/dist/components/custom/handmark/useHandMark.d.ts +0 -87
- 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/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/handmark.d.ts +0 -1
- package/dist/handmark.js +0 -663
- package/dist/instrument-rail.d.ts +0 -1
- package/dist/instrument-rail.js +0 -2
- package/dist/styles/instrument-rail.css +0 -127
- 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/{ContextMenuContent-DDa0v27s.js → ContextMenuContent-CT3AS1WX.js} +0 -0
- /package/dist/{HoverCardContent-B6CcQ8He.js → HoverCardContent-Csywg3YF.js} +0 -0
- /package/dist/{Input-xuDwALQR.js → Input-DWQQIOC4.js} +0 -0
- /package/dist/{InstrumentChassis-C2f6cBaQ.js → InstrumentChassis-UUJX0-mW.js} +0 -0
- /package/dist/{Label-zRfbQdCn.js → Label-r3WzWrsj.js} +0 -0
- /package/dist/{ModalOverlay-B1GkAjNb.js → ModalOverlay-DVLI2VRr.js} +0 -0
- /package/dist/{PaperBackdrop-CqwjnfLv.js → PaperBackdrop-DIXTtVq6.js} +0 -0
- /package/dist/{Progress-iEuD9pxG.js → Progress-DwlUKGbr.js} +0 -0
- /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-aumMgWLs.js} +0 -0
- /package/dist/{SelectSeparator-C4Ql0gzV.js → SelectSeparator-BQ_1Fcbp.js} +0 -0
- /package/dist/{Separator-D7sD7RKj.js → Separator-0JE6LtNu.js} +0 -0
- /package/dist/{TooltipProvider-CmZzCuaG.js → TooltipProvider-B3MkB_8P.js} +0 -0
- /package/dist/{compile-BOXjLUxu.js → compile-B7NGOBcP.js} +0 -0
- /package/dist/{constants-yKeKnE84.js → constants-CS75AWHG.js} +0 -0
- /package/dist/{createContext-B44Sah_H.js → createContext-BM46COQ-.js} +0 -0
- /package/dist/{createLucideIcon-B6uNAU9G.js → createLucideIcon-DydS2qgk.js} +0 -0
- /package/dist/{menuItemVariants-CCoBNkU5.js → menuItemVariants-DPiEarb0.js} +0 -0
- /package/dist/{supportsCssTimeline-C5oe0lnD.js → supportsCssTimeline-BWenxvHU.js} +0 -0
- /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-Cc-H9ees.js} +0 -0
- /package/dist/{useInterval-Dsmqwi03.js → useInterval-iHludrxk.js} +0 -0
- /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-Be3w_Rwk.js} +0 -0
- /package/dist/{useResizeObserver-CWCbk5Px.js → useResizeObserver-BhgdhOIj.js} +0 -0
- /package/dist/{useResolveTokenColor-r9pnNjqK.js → useResolveTokenColor-Dvn2RZJW.js} +0 -0
- /package/dist/{useSortable-C8ReQ50P.js → useSortable-muI29agz.js} +0 -0
- /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-DmRYkOBx.js} +0 -0
- /package/dist/{useTimer-3xqf_54b.js → useTimer-Dzarvzuk.js} +0 -0
- /package/dist/{useUserInvalidAria-DoJKMZ3s.js → useUserInvalidAria-B2h6jAM_.js} +0 -0
- /package/dist/{useViewportReady-RIr5Wgkh.js → useViewportReady-B40FK4Pa.js} +0 -0
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
/* tokens/offsets-sizing.css
|
|
2
|
+
§9 animation offsets · §10 sizing (control heights, dropdown, carousel, stack-overlap, touch-target floor).
|
|
3
|
+
Carved from the tokens.css cascade root; @import-ed by tokens.css in
|
|
4
|
+
cascade order. Same :root cascade context as its siblings. */
|
|
5
|
+
:root {
|
|
6
|
+
/* ═══════════════════════════════════════════════
|
|
7
|
+
§9 ANIMATION OFFSETS
|
|
8
|
+
═══════════════════════════════════════════════ */
|
|
9
|
+
/* Hover lift offsets */
|
|
10
|
+
--lift-sm: -1px;
|
|
11
|
+
--lift-md: -2px;
|
|
12
|
+
--lift-lg: -4px;
|
|
13
|
+
|
|
14
|
+
/* Layout tokens */
|
|
15
|
+
--mask-fade-width: 1rem;
|
|
16
|
+
/* J.W3.C — dock content overflow caps. When dock content exceeds
|
|
17
|
+
these dimensions, the inner `.dock-layers` (horizontal) /
|
|
18
|
+
`.glass-dock.vertical` (rail) container scrolls with a
|
|
19
|
+
`.scroll-fade-{x,y}` mask-fade so the boundary feathers rather
|
|
20
|
+
than cliffs. Defaults clamp to 80vw / 80vh capped at sensible
|
|
21
|
+
desktop widths; consumers override per-dock by setting either
|
|
22
|
+
token directly on a `.glass-dock` instance. User findings 1 + 5a. */
|
|
23
|
+
/* AX.W04 — `--dock-max-inline-size` is the canonical inline cap EVERY overflow
|
|
24
|
+
strategy reads: `overflow="scroll"` scrolls past it, and `overflow="wrap"`
|
|
25
|
+
wraps to N rows on the over-cap crossing (the dock shrink-wraps to content,
|
|
26
|
+
`max-inline-size` caps that intrinsic width at this token). The prior
|
|
27
|
+
`--dock-overflow-bp: 640px` viewport-breakpoint token (the magic-640
|
|
28
|
+
snap-back) is DELETED — the wrap is content-driven, not viewport-coupled, so
|
|
29
|
+
there is no breakpoint threshold to name. */
|
|
30
|
+
--dock-max-inline-size: min(80vw, 64rem);
|
|
31
|
+
--dock-max-block-size: min(80vh, 48rem);
|
|
32
|
+
|
|
33
|
+
/* AB.W1.T1 — chassis max-block-size guardrail.
|
|
34
|
+
Maximum block size a centred consumer-app card may consume while
|
|
35
|
+
preserving the inline dock footprint. The recipe subtracts the
|
|
36
|
+
consumer-owned `--dock-footer-space` (dock height + dock inset +
|
|
37
|
+
card-edge inset) and `--page-padding-top` from the dynamic viewport,
|
|
38
|
+
then takes one further rem of breathing room so the card never
|
|
39
|
+
butts the dock — the user mandate is `≥ 1rem visible gap above
|
|
40
|
+
dock`. Both consumer tokens carry safe fallbacks for callers that
|
|
41
|
+
have not declared them.
|
|
42
|
+
|
|
43
|
+
Consumers should shrink internal regions (meter, readout, timeline)
|
|
44
|
+
before falling back to scroll. This token is a guardrail against
|
|
45
|
+
chassis overflow, NOT a license to make the card scroll as the
|
|
46
|
+
default solution; clamp-first / no-scroll-first is the canon.
|
|
47
|
+
See DESIGN.md `## Chassis sizing — dock-adjusted viewport`. */
|
|
48
|
+
--chassis-max-block-size: calc(
|
|
49
|
+
100dvh
|
|
50
|
+
- var(--dock-footer-space, 5.75rem)
|
|
51
|
+
- var(--page-padding-top, 0rem)
|
|
52
|
+
- 1rem
|
|
53
|
+
);
|
|
54
|
+
/* R0G-2 (AO.W3/W4) — chassis mobile dial-reserve canon. instrument-
|
|
55
|
+
chassis.css's mobile breakpoint reserves the dial's final box from
|
|
56
|
+
frame 0 via these vars (with the same values as inline fallbacks, the
|
|
57
|
+
safety net). Token-first home so the vars resolve canonically. */
|
|
58
|
+
--instrument-dial-min-height-mobile: 24rem;
|
|
59
|
+
--instrument-dial-meter-reserve-mobile: minmax(0, 1fr);
|
|
60
|
+
|
|
61
|
+
--max-width-input: 24rem;
|
|
62
|
+
--input-min-width-sm: 5rem;
|
|
63
|
+
--min-width-input-sm: var(--input-min-width-sm);
|
|
64
|
+
/* AU.W8b.4 — canonical popover width (Combobox list + anchor). Lifts the
|
|
65
|
+
`w-[200px]` arbitrary-value wrap to the `w-popover` @theme utility. */
|
|
66
|
+
--popover-width: 200px;
|
|
67
|
+
/* AZ.R5-4 — the ONE panel inner-padding rung (the consumer-verified "the
|
|
68
|
+
popover/dropdown content reads TIGHT" finding). The floating-panel +
|
|
69
|
+
DropdownMenuContent recipes read THIS token for their inner pad instead of
|
|
70
|
+
the prior hand-set `p-1`/literal, so a consumer retunes every teleported
|
|
71
|
+
menu/panel surface from one override. The comfortable default is `0.375rem`
|
|
72
|
+
(a half-rung over the prior 0.25rem tight floor — comfortable both modes
|
|
73
|
+
without over-padding a dense menu list). PopoverContent keeps its own
|
|
74
|
+
`--panel-padding-roomy` (1rem) for the prose-popover register. */
|
|
75
|
+
--panel-padding: 0.375rem;
|
|
76
|
+
--panel-padding-roomy: 1rem;
|
|
77
|
+
--chart-height-compact: 15rem;
|
|
78
|
+
--chart-height-default: 22.5rem;
|
|
79
|
+
--chart-height-large: 25rem;
|
|
80
|
+
--chart-margin: 1.25rem;
|
|
81
|
+
--paper-texture-size: 200px 200px;
|
|
82
|
+
|
|
83
|
+
/* Border opacity scale */
|
|
84
|
+
--border-opacity-light: 0.15;
|
|
85
|
+
--border-opacity-medium: 0.25;
|
|
86
|
+
--border-opacity-strong: 0.6;
|
|
87
|
+
|
|
88
|
+
/* ═══════════════════════════════════════════════
|
|
89
|
+
§10 SIZING
|
|
90
|
+
═══════════════════════════════════════════════ */
|
|
91
|
+
/* ── The ONE comfortable-sizing scale doctrine (AX.W51 D18) ──────────────
|
|
92
|
+
`--ui-scale` is the MASTER comfortable-sizing scalar — ONE unitless knob
|
|
93
|
+
(registered @property <number>, inherits:true, default the identity 1)
|
|
94
|
+
every interactive-control magnitude derives through `calc(<base> *
|
|
95
|
+
var(--ui-scale))`, so a single override grows control HEIGHT + PADDING +
|
|
96
|
+
GAP + FONT-SIZE + GLYPH in LOCKSTEP, proportion preserved, no per-component
|
|
97
|
+
hack. The cohorts below (`--control-h-*` heights, `--control-text*` control
|
|
98
|
+
fonts, `--ui-glyph*` glyphs) are its reading surfaces; the CVA bases + the
|
|
99
|
+
`.btn-pill`/`.input-pill` pills consume them.
|
|
100
|
+
|
|
101
|
+
ONE scale system, not three. The dock (`--dock-scale`) and the dropdown
|
|
102
|
+
family (`--dropdown-text`, W50) are SPECIALIZATIONS that read this axis:
|
|
103
|
+
`--dock-scale: calc(var(--ui-scale) * var(--dock-local-scale, 1))` — the
|
|
104
|
+
dock multiplies ON TOP of the global comfort axis (its existing geometry
|
|
105
|
+
`calc` cascade inherits the global axis for free, zero edit). A consumer
|
|
106
|
+
re-tints the whole library's comfort from ONE `:root { --ui-scale: … }`
|
|
107
|
+
override (or a scoped region — a dense data-table sets it lower) — the
|
|
108
|
+
token-first axis.
|
|
109
|
+
|
|
110
|
+
EXCLUDED — the φ-DISPLAY ladder (`--type-display-*` / `--type-title` /
|
|
111
|
+
`--type-heading` / `--type-subheading`): a hero/title is a TYPOGRAPHIC
|
|
112
|
+
identity, NOT a touch target, so it does NOT grow on the comfort/coarse
|
|
113
|
+
axis. Only interactive-CONTROL text rides `--ui-scale`. Containers (card /
|
|
114
|
+
panel radii + paddings) are separate `--radius-*` / `--space-*` axes.
|
|
115
|
+
|
|
116
|
+
The desktop default is the IDENTITY (1) — byte-exact preservation, no
|
|
117
|
+
reflow of shipped consumers. The comfort GROWTH lives at the coarse-pointer
|
|
118
|
+
default (`--ui-coarse-scale`, §below) + the consumer override. The
|
|
119
|
+
WCAG-2.5.5 44px touch floor survives as a `max(…, --control-floor)` clamp
|
|
120
|
+
inside the scaled control-size (the coarse block lifts `--control-floor` to
|
|
121
|
+
`--touch-target`, so a sub-1 scale cannot drop a control under the target).
|
|
122
|
+
Coordinates with W54's `--glass-level` + W55's `--glass-tint-*` — SEPARATE
|
|
123
|
+
axes (size vs material vs legibility); a control is comfortably-sized AND
|
|
124
|
+
glass AND legible, three orthogonal knobs. */
|
|
125
|
+
--ui-scale: 1;
|
|
126
|
+
/* The global coarse-pointer comfort default — the WHOLE library grows ~1.5×
|
|
127
|
+
on touch from ONE place (the @media (pointer: coarse) block at §below lifts
|
|
128
|
+
:root --ui-scale to this). The dock's prior parallel 1.5× becomes the global
|
|
129
|
+
default it now shares. Public library-default identity — a consumer sets
|
|
130
|
+
1.3 / 1.75 on :root or a scope. */
|
|
131
|
+
--ui-coarse-scale: 1.5;
|
|
132
|
+
/* The control-height cohort — the h-7/h-9/h-10/h-11 register (28/36/40/44px)
|
|
133
|
+
the CVA size rungs encode, each scaled by the master axis. The CVA rungs
|
|
134
|
+
read these via `h-[var(--control-h-*)]` instead of the raw `h-N` literal.
|
|
135
|
+
`--control-floor` is the WCAG-2.5.5 clamp seam (0 at desktop, lifted to
|
|
136
|
+
--touch-target under coarse-pointer); each height is `max(scaled, floor)`. */
|
|
137
|
+
--control-floor: 0px;
|
|
138
|
+
--control-h-xs: max(calc(1.75rem * var(--ui-scale)), var(--control-floor));
|
|
139
|
+
--control-h-sm: max(calc(2.25rem * var(--ui-scale)), var(--control-floor));
|
|
140
|
+
--control-h-md: max(calc(2.5rem * var(--ui-scale)), var(--control-floor));
|
|
141
|
+
--control-h-lg: max(calc(2.75rem * var(--ui-scale)), var(--control-floor));
|
|
142
|
+
/* The control-FONT register (RED 3 — the user's "font too small"). A comfort
|
|
143
|
+
multiplier BETWEEN the static φ-ladder rung and the painted control font,
|
|
144
|
+
so interactive-control text grows on the comfort axis while the φ-DISPLAY
|
|
145
|
+
ladder stays a pure typographic scale (display headings do NOT grow on
|
|
146
|
+
touch). `--control-text` is the workhorse (the `text-sm` register the
|
|
147
|
+
buttons/inputs/triggers carried); `--control-text-sm` is the quieter rung
|
|
148
|
+
(the `text-xs` badge/caption register). W50's `--dropdown-text` IS the
|
|
149
|
+
picker-family specialization of this register.
|
|
150
|
+
|
|
151
|
+
AY.W-SCALE1 — the no-double-vw reconcile: the desktop-fluid viewport base
|
|
152
|
+
lives ONCE in `--type-small` / `--type-caption` (typography.css §scale — a
|
|
153
|
+
gentle `clamp(…vw…)` so the control font grows on a wide display); the
|
|
154
|
+
`--ui-scale` comfort scalar multiplies that FLUID base exactly ONCE HERE. The
|
|
155
|
+
vw term is applied once (in the rung), the comfort factor once (here) — under
|
|
156
|
+
the coarse 1.5× the font grows by the comfort factor ONCE, NOT vw×1.5
|
|
157
|
+
over-scaled. Do NOT inline a second clamp() here, and do NOT multiply the rung
|
|
158
|
+
by --ui-scale at the rung. */
|
|
159
|
+
--control-text: calc(var(--type-small) * var(--ui-scale));
|
|
160
|
+
--control-text-sm: calc(var(--type-caption) * var(--ui-scale));
|
|
161
|
+
/* The control-GLYPH cohort (RED 4 — the glyph grows WITH the box). The
|
|
162
|
+
1rem/0.875rem control-glyph register the `size-4`/`size-3.5` literals
|
|
163
|
+
encode; the un-sized-<svg> CVA rule reads these via
|
|
164
|
+
`size-[var(--ui-glyph)]`, KEEPING the `:not([class*=size-])` host-sized-icon
|
|
165
|
+
escape intact (an explicit `size-9` still wins). */
|
|
166
|
+
--ui-glyph: calc(1rem * var(--ui-scale));
|
|
167
|
+
--ui-glyph-sm: calc(0.875rem * var(--ui-scale));
|
|
168
|
+
|
|
169
|
+
/* ── The picker-family type-scale (AX.W50 D17) ───────────────────────────
|
|
170
|
+
ONE governed two-rung scale the WHOLE shadcn picker family (Select /
|
|
171
|
+
DropdownMenu / Combobox / ContextMenu / Command / MultiSelect) reads, so the
|
|
172
|
+
family paints at ONE uniform scale instead of the scattered raw
|
|
173
|
+
`text-sm`/`text-xs` Tailwind-literal lottery (item rows at `text-sm`,
|
|
174
|
+
headings/shortcuts at `text-xs`, the two filter inputs at mismatched heights).
|
|
175
|
+
A consumer re-tints the whole family from ONE override.
|
|
176
|
+
|
|
177
|
+
It is a SPECIALIZATION of W51's control-font register (one scale system, not
|
|
178
|
+
three): `--dropdown-text` reads `--control-text` (the comfort-scaled `text-sm`)
|
|
179
|
+
and `--dropdown-text-secondary` reads `--control-text-sm` (the comfort-scaled
|
|
180
|
+
`text-xs`), so the picker family rides the SAME `--ui-scale` comfort axis as
|
|
181
|
+
every other control — a `--ui-scale` bump grows the dropdowns too. A consumer
|
|
182
|
+
wanting the family LARGER than the rest overrides `--dropdown-text` directly
|
|
183
|
+
(e.g. `var(--type-body)`); the override re-resolves every family surface.
|
|
184
|
+
|
|
185
|
+
Scale-contract (which surface reads which rung):
|
|
186
|
+
• PRIMARY (`--dropdown-text`) → item rows, triggers, filter inputs, empties.
|
|
187
|
+
• SECONDARY (`--dropdown-text-secondary`) → section labels, group-headings,
|
|
188
|
+
keyboard shortcuts (the quieter-than-item caption register; resolves the
|
|
189
|
+
witness-2 contradiction — the Select/DropdownMenu/ContextMenu labels
|
|
190
|
+
collapse DOWN to the secondary rung to match the Combobox/Command headings,
|
|
191
|
+
ONE rung for the section-label role family-wide).
|
|
192
|
+
`--dropdown-input-height` unifies the two filter-input heights (Combobox was
|
|
193
|
+
h-10, Command was h-11) onto ONE register — a specialization of W51's
|
|
194
|
+
`--control-h-md` so the picker input scales on the comfort axis with the font. */
|
|
195
|
+
--dropdown-text: var(--control-text);
|
|
196
|
+
--dropdown-text-secondary: var(--control-text-sm);
|
|
197
|
+
--dropdown-input-height: var(--control-h-md);
|
|
198
|
+
|
|
199
|
+
--size-icon-btn: 2.5rem;
|
|
200
|
+
--icon-xs: 0.75rem;
|
|
201
|
+
--icon-sm: 0.875rem;
|
|
202
|
+
--icon-md: 1rem;
|
|
203
|
+
--icon-lg: 1.25rem;
|
|
204
|
+
--icon-xl: 1.5rem;
|
|
205
|
+
/* V.W2 T9 — 32px rung; spinner glyphs (Loader2) + dense table-row buttons.
|
|
206
|
+
Naming follows the radius ladder + Tailwind convention (2xl > xl > xxl) —
|
|
207
|
+
see B6 §2.4 for the naming rationale. */
|
|
208
|
+
--icon-2xl: 2rem;
|
|
209
|
+
/* V.W2 T10 — 40px rung; empty-state hero glyph (DashboardMap MapIcon).
|
|
210
|
+
AI.W5-ζ — rebound from `2.5rem` literal to `var(--size-icon-btn)` so
|
|
211
|
+
the alignment is contractual single-source-of-truth rather than the
|
|
212
|
+
coincidental numerical match noted prior. */
|
|
213
|
+
--icon-3xl: var(--size-icon-btn);
|
|
214
|
+
/* V.W2 T11 — 56px rung; FlowSelector school/home survey-flow picker.
|
|
215
|
+
Largest rung in the icon ladder; reserved for hero-class glyphs. */
|
|
216
|
+
--icon-hero: 3.5rem;
|
|
217
|
+
|
|
218
|
+
/* Golden-ratio spacing rungs — φ² and φ³. Preemptive substrate; W4 hero
|
|
219
|
+
chassis + W5 StoryChassis migration land the consumers. R3 §A row 1.
|
|
220
|
+
The 0..4 rungs are not currently named (consumers reach via
|
|
221
|
+
Tailwind's spacing scale); 5/6 land here because their values fall
|
|
222
|
+
outside the default ladder and the audacious chassis pattern wants
|
|
223
|
+
a named handle. */
|
|
224
|
+
--space-phi-5: 2.618rem; /* φ² */
|
|
225
|
+
--space-phi-6: 4.236rem; /* φ³ */
|
|
226
|
+
|
|
227
|
+
/* Dock geometry — consumers may override locally */
|
|
228
|
+
--dock-h: calc(var(--size-icon-btn) + 0.75rem + 3px);
|
|
229
|
+
--dock-margin: 0.5rem;
|
|
230
|
+
--dock-menubar-reserve: 4rem;
|
|
231
|
+
|
|
232
|
+
/* AX.W45 — the dock geometry multiplier. `--dock-scale` threads the WHOLE
|
|
233
|
+
`.glass-dock[data-density]` geometry cascade (box, padding, gap, tab,
|
|
234
|
+
tile-min, glyph) via `calc(<base> * --dock-scale)`, so a single knob grows
|
|
235
|
+
every dock axis in lockstep. The WCAG 2.5.5 44px floor survives as a `max(…,
|
|
236
|
+
44px)` clamp INSIDE the scaled control-size.
|
|
237
|
+
|
|
238
|
+
AX.W51 RECONCILE (D18) — `--dock-scale` is RE-HOMED as a SPECIALIZATION of
|
|
239
|
+
the global `--ui-scale` comfort axis: `calc(var(--ui-scale) *
|
|
240
|
+
var(--dock-local-scale, 1))`. The dock now MULTIPLIES on top of the global
|
|
241
|
+
comfort scalar — its whole existing geometry `calc` chain inherits the global
|
|
242
|
+
axis for FREE (zero edit to the density cascade; the reconcile is at this ONE
|
|
243
|
+
definition line). At the desktop identity (`--ui-scale: 1`,
|
|
244
|
+
`--dock-local-scale: 1`) the dock is byte-identical to HEAD. On coarse-pointer
|
|
245
|
+
the GLOBAL `:root { --ui-scale: var(--ui-coarse-scale, 1.5) }` block grows the
|
|
246
|
+
dock WITH the rest of the library — ONE consistent touch scale, not a parallel
|
|
247
|
+
dock-only 1.5×. `--dock-local-scale` is the dock-local EXTRA multiplier
|
|
248
|
+
(default 1): a consumer who wants the dock LARGER than the global comfort sets
|
|
249
|
+
it, and the coarse block lifts it to `--dock-mobile-scale` (default 1, the
|
|
250
|
+
stack-extra) so the dock can grow an extra notch ON TOP of the global coarse
|
|
251
|
+
default. `--dock-mobile-scale` is the public library-default identity
|
|
252
|
+
(presets-in-consumers: a consumer sets 1.3/1.75 on `:root` or a dock scope). */
|
|
253
|
+
--dock-scale: calc(var(--ui-scale) * var(--dock-local-scale, 1));
|
|
254
|
+
--dock-local-scale: 1;
|
|
255
|
+
/* --dock-mobile-scale is the CONSUMER coarse knob — UNSET at :root so the
|
|
256
|
+
dock-layer coarse default (--dock-coarse-scale, below) is the fallback the
|
|
257
|
+
coarse block reads; a consumer setting --dock-mobile-scale on ANY ancestor
|
|
258
|
+
wins the fallback (R5-1 — the knob must reach the geometry cascade, not be
|
|
259
|
+
shadowed by a hard-pin on .glass-dock[data-density]). The coarse block in
|
|
260
|
+
dock/overflow.css RE-DECLARES --dock-scale so the descendant --dock-local-scale
|
|
261
|
+
lift re-flows into it (the substitution-vs-inheritance trap). */
|
|
262
|
+
--dock-mobile-scale: initial;
|
|
263
|
+
/* R5-2 — the dock-layer coarse-register default. The dock is a DENSE chrome strip
|
|
264
|
+
(not a body control), so on touch it floors at a TIGHTER multiplier than the
|
|
265
|
+
global --ui-coarse-scale 1.5 (which painted an ~80px collapsed pill, ~22% too
|
|
266
|
+
big — the slides-consumer R5-2 finding). 0.78 × the 1.5 global ≈ 1.17 effective
|
|
267
|
+
→ a ~60px collapsed pill, the WCAG-2.5.5 44px floor held by the
|
|
268
|
+
`max(…, --dock-control-floor)` clamp. The consumer knob --dock-mobile-scale
|
|
269
|
+
overrides this; a consumer who wants the dock to MATCH the global comfort sets
|
|
270
|
+
--dock-mobile-scale: 1. */
|
|
271
|
+
--dock-coarse-scale: 0.78;
|
|
272
|
+
/* Library glyph ownership — `.dock-icon-button > svg` reads this so the dock
|
|
273
|
+
icon glyph scales WITH the box (mirroring `.dark-mode-toggle-button > svg`).
|
|
274
|
+
A consumer-passed explicit lucide size class still WINS (utility layer >
|
|
275
|
+
component layer); this is a DEFAULT, not a ceiling. */
|
|
276
|
+
--dock-icon-glyph: calc(1.25rem * var(--dock-scale));
|
|
277
|
+
|
|
278
|
+
/* AX.W45-TUNE Q1 — the COLLAPSED-pill floor tokens. The collapsed summary
|
|
279
|
+
used to fall to `--dock-layer-height` (the FULL control height, ~2.5rem) for
|
|
280
|
+
its `min-width` with NO block floor, so the shrunken pill read as an
|
|
281
|
+
un-collapsed control row, not a tight proportioned squircle. These two floor
|
|
282
|
+
tokens (referenced by dock.css's `.collapsed .dock-layer--summary` min-size +
|
|
283
|
+
the `--dock-pad-collapsed` morph floor) mint a TIGHT proportioned pill: the
|
|
284
|
+
summary min-size is ≈70% of the full control height (a proportioned dot, not a
|
|
285
|
+
full-row stub — the ratified default), and the collapsed padding is a step
|
|
286
|
+
BELOW the expanded `--dock-padding-block` so the collapsed chrome hugs the
|
|
287
|
+
glyph. The summary carries a SYMMETRIC `min-block-size` (dock.css) keyed to the
|
|
288
|
+
same token so the pill floors on BOTH axes — a squircle, not a stub. Consumers
|
|
289
|
+
retune the pill geometry per-instance via these two handles. */
|
|
290
|
+
/* AY.W-DOCK-NAV B4 — the collapsed pill is a PERFECT CIRCLE (the user's
|
|
291
|
+
"circle, not oval" bar). The diameter is the collapsed-summary min-size on
|
|
292
|
+
BOTH axes; the morph.css `.collapsed .dock-layer--summary` rule LIFTS the
|
|
293
|
+
`.dock-layer` height-lock (`height: var(--dock-layer-height)`) for the
|
|
294
|
+
collapsed summary so the pane is square at this token (the prior oval —
|
|
295
|
+
38×50, aspect 0.76 — was the locked 40px height against a 28px min-width).
|
|
296
|
+
The 0.85× value is a TIGHT proportioned circle a step below the full control
|
|
297
|
+
(so the collapsed dot reads smaller than an expanded control row) while
|
|
298
|
+
staying large enough that the centred glyph is not cramped. A consumer
|
|
299
|
+
retunes the circle diameter via this one handle. */
|
|
300
|
+
--dock-collapsed-summary-min-size: calc(var(--dock-layer-height, 2.5rem) * 0.85);
|
|
301
|
+
/* AX.W61 — the collapsed padding now threads the ONE `--dock-scale` coarse-pointer
|
|
302
|
+
multiplier DIRECTLY (at HEAD it was a flat 0.25rem off the scale, so the
|
|
303
|
+
collapsed pad alone stayed desktop-sized at the 1.5x mobile scale while the
|
|
304
|
+
box/glyph/min-size grew — a desync the morph then interpolated FROM). The
|
|
305
|
+
summary min-size already threads `--dock-scale` transitively through
|
|
306
|
+
`--dock-layer-height` (itself `calc(* --dock-scale)` at every density rung); this
|
|
307
|
+
lands the collapsed pad on the same thread so the whole collapsed pill scales
|
|
308
|
+
coherently on touch. The 0.25rem base stays the ratified tight floor. */
|
|
309
|
+
--dock-collapsed-padding: calc(0.25rem * var(--dock-scale));
|
|
310
|
+
|
|
311
|
+
/* AX.W45-TUNE Q3/C3 + C5 — the dock-control family reads a real GLASS register
|
|
312
|
+
on hover/active, NOT a same-hue `--card` mix at an alpha adjacent to the dock's
|
|
313
|
+
own `--glass-bg-dock` substrate (a sub-1%-ΔL no-op — the loud Q3 tell: "nothing
|
|
314
|
+
on hover, something on click"). Both legs now point at NAMED glass tiers a
|
|
315
|
+
measurable step ABOVE the dock's 42%-opacity substrate:
|
|
316
|
+
• hover → `--glass-bg-resting` (the 65% glass plate) — the control surface
|
|
317
|
+
WAKES as a brighter glass tier on hover, reading the blurred dock
|
|
318
|
+
substrate through it. The +ΔL above `--glass-bg-dock` is perceptible
|
|
319
|
+
BEFORE click; the specular gleam + scale ride alongside (one register).
|
|
320
|
+
• active → `--glass-bg-floating` (the 80% glass plate) — a tier ABOVE hover,
|
|
321
|
+
the keyframes-dock "selected element reads as glass" model the user
|
|
322
|
+
named (`pass-3:13`): the selected tile is a glass tier that shows the
|
|
323
|
+
substrate through it, NOT the flat `--surface-tint-12` ink wash. The
|
|
324
|
+
active ≠ hover register is the glass-tier step, not an alpha nudge.
|
|
325
|
+
This is a REGISTER change (substrate→glass-tier), not a magnitude knob. The
|
|
326
|
+
per-control `--dock-icon-hover-bg` override still wins if a consumer set it. */
|
|
327
|
+
--dock-control-hover-bg: var(--glass-bg-resting);
|
|
328
|
+
--dock-control-active-bg: var(--glass-bg-floating);
|
|
329
|
+
|
|
330
|
+
/* AX.W45-TUNE C4/C5 — the small-tile specular override. The 40px dock-control
|
|
331
|
+
tile is a fraction of a card's plate, so the global `--glass-specular-size`
|
|
332
|
+
(36% of the plate) blooms a disproportionate disc on a hover/active dock tile
|
|
333
|
+
(the I.W6 finding). The dock controls scope a TIGHTER radius (22%) so the gleam
|
|
334
|
+
wakes as a restrained EDGE-catch on the small tile, not a tile-filling bloom —
|
|
335
|
+
the right resolution of I.W6 (sized-down on the small surface), not turning the
|
|
336
|
+
specular off everywhere. Read by the dock-control `::before` recipe (glass.css)
|
|
337
|
+
via the family-scoped override below; the global card/panel size is untouched. */
|
|
338
|
+
--dock-control-specular-size: 22%;
|
|
339
|
+
|
|
340
|
+
/* AZ.W-DOCK-RAIL — the layer-switcher rail is a HAIRLINE register, not a
|
|
341
|
+
fused tinted gutter. The `--surface-tint-8` filled plate (the "heavy dark
|
|
342
|
+
blob column" R3-1) is RETIRED: `--dock-layer-rail-bg` defaults TRANSPARENT
|
|
343
|
+
so the rail box paints no fill, and the single `--dock-layer-rail-divider`
|
|
344
|
+
hairline becomes the only visible rail edge — a thin rule between the
|
|
345
|
+
switcher column and the dock body (the iOS-grade hairline switcher).
|
|
346
|
+
The hover/active affordance stays a translucent GLASS tint: the active
|
|
347
|
+
indicator reads `--dock-layer-rail-active`, defaulting to the glass-floating
|
|
348
|
+
tier (the keyframes-dock "selected reads as glass" register), NOT a
|
|
349
|
+
saturated `--primary 15%` warm-red mix — the exact accent defers to
|
|
350
|
+
W-REGISTER-IOS's root register (the rail keeps a glass tint here, never
|
|
351
|
+
bakes a brand-red the de-red wave has to undo). */
|
|
352
|
+
--dock-layer-rail-bg: transparent;
|
|
353
|
+
--dock-layer-rail-divider: color-mix(in srgb, var(--border) 40%, transparent);
|
|
354
|
+
--dock-layer-rail-hover: color-mix(in srgb, var(--accent) 30%, transparent);
|
|
355
|
+
--dock-layer-rail-active: var(--glass-bg-floating);
|
|
356
|
+
/* AY.W-DOCK-NAV B6 — the switcher-rail TAB is a COMPACT square, distinct from
|
|
357
|
+
the 40px dock CONTROL. The prior fallback chain (`var(--dock-control-size,
|
|
358
|
+
1.75rem)`) resolved to the full 40px control, so a 3-tab column rail stood
|
|
359
|
+
~140px tall — a giant pill of dead space. A dedicated tighter tab size
|
|
360
|
+
(1.75rem = 28px, density-scaled) keeps the rail a compact icon column the
|
|
361
|
+
indicator travels cleanly, and the dock grows only as tall as the rail needs.
|
|
362
|
+
Consumers retune the rail-tab size via this one handle. */
|
|
363
|
+
--dock-layer-tab-size: calc(1.75rem * var(--dock-scale));
|
|
364
|
+
|
|
365
|
+
/* Dock active-state ladder (O.W6 Lane B)
|
|
366
|
+
Token-overridable active paint for `.dock-icon-button`. Promoted
|
|
367
|
+
from hardcoded `background: var(--muted); color: var(--foreground)`
|
|
368
|
+
per bbnf-buddy O11/c R1: 7 `:deep()` escapes at `ToolsLayer.vue`
|
|
369
|
+
redefine bg/color/scale/border/shadow on the active variant; the
|
|
370
|
+
ladder absorbs ~3 of 7 at a stroke. Defaults preserve the prior
|
|
371
|
+
visual contract (no transform, no border, no shadow) — overrides
|
|
372
|
+
take effect per-instance via `:root` or a parent scope, e.g.
|
|
373
|
+
`.tools-layer { --dock-active-scale: 1.2; --dock-active-bg: …; }`.
|
|
374
|
+
≥ 2-consumer coverage: bbnf-buddy ToolsLayer (override consumer) +
|
|
375
|
+
speedtest dock (default consumer).
|
|
376
|
+
|
|
377
|
+
AX.W45 DK2 — re-pointed off the opaque `--muted` plate onto the glass-
|
|
378
|
+
correct `--dock-control-active-bg` (a translucent tint a ladder step above
|
|
379
|
+
hover), so the icon-button active no longer stamps a solid cream rectangle
|
|
380
|
+
over the dock glass. The O.W6 active-ladder override consumers still retint
|
|
381
|
+
per-instance; only the DEFAULT moved to glass-correct. */
|
|
382
|
+
--dock-active-bg: var(--dock-control-active-bg);
|
|
383
|
+
--dock-active-color: var(--foreground);
|
|
384
|
+
--dock-active-scale: 1;
|
|
385
|
+
--dock-active-border: none;
|
|
386
|
+
--dock-active-shadow: none;
|
|
387
|
+
|
|
388
|
+
/* AZ.W-REGISTER-IOS — the iOS-26/27 SELECTED register, at the ROOT.
|
|
389
|
+
R3-6 retired the brand-red (`--viz-fourier`) interactive register
|
|
390
|
+
(hover/active/selected/pressed) in favour of the iOS-glassy luminance-lift:
|
|
391
|
+
a translucent material-lift plate (`--dock-control-active-bg`, already the
|
|
392
|
+
`--glass-bg-floating` tier — C4-INV-1, UNCHANGED) + a brighter-material
|
|
393
|
+
accent that lifts LUMINANCE, never a saturated brand hue.
|
|
394
|
+
|
|
395
|
+
`--dock-selected-accent` is the SINGLE retint knob for the selected
|
|
396
|
+
affordance: it defaults to a translucent foreground-over-transparent
|
|
397
|
+
"brighter material" lift, so it auto-FLIPS with `--foreground` (dark mode
|
|
398
|
+
resolves a light luminance-lift over the dark plate — the iOS read). The
|
|
399
|
+
rail leading-edge accent BAR (`dock-controls.css` `::before`) consumes it;
|
|
400
|
+
the selected GLYPH stays `--foreground` warm-ink (arm-a — the glyph never
|
|
401
|
+
carries the accent token, only the bar does). A consumer retints the whole
|
|
402
|
+
selected affordance through this ONE token (token-first); red survives only
|
|
403
|
+
as static brand INK (the ℱ wordmark / data-viz strokes / the gold-CTA
|
|
404
|
+
family), never as an interactive register. */
|
|
405
|
+
--dock-selected-accent: color-mix(in oklab, var(--foreground) 14%, transparent);
|
|
406
|
+
|
|
407
|
+
/* AZ.W-REGISTER-IOS — the iOS press-DARKEN. Press today scales only
|
|
408
|
+
(`--scale-press-dock`, C4-INV-4); iOS lands "darken + shrink". This token
|
|
409
|
+
is a tier BELOW resting — `--glass-bg-resting` mixed ~7% toward `--foreground`
|
|
410
|
+
— read on the dock control `:active` alongside the scale-press so a press
|
|
411
|
+
lands the brief glass-darken. Auto-flips with `--foreground`/`--glass-bg-resting`. */
|
|
412
|
+
--dock-control-press-bg: color-mix(
|
|
413
|
+
in oklab,
|
|
414
|
+
var(--glass-bg-resting),
|
|
415
|
+
var(--foreground) 7%
|
|
416
|
+
);
|
|
417
|
+
|
|
418
|
+
/* Q.W3 Lane G (Q-cos-13) — the O.W6 Lane D `--icon-tooltip-hit-area`
|
|
419
|
+
token retired here. IconTooltip no longer owns a wrap-span; the
|
|
420
|
+
slotted child carries its own WCAG 2.5.5 hit-area (interactive
|
|
421
|
+
children via their four-state contract, bare glyphs via a
|
|
422
|
+
`min-h-11 min-w-11` host). No orphaned token left behind. */
|
|
423
|
+
|
|
424
|
+
/* O.W6 Lane D — Dock touch-target floor. Mirrors the IconTooltip
|
|
425
|
+
hit-area but for the dock-control surface. The base value tracks
|
|
426
|
+
the desktop default (`--size-icon-btn`); the
|
|
427
|
+
`@media (pointer: coarse)` block at `dock.css` lifts it to the
|
|
428
|
+
WCAG 2.5.5 floor on touch devices. */
|
|
429
|
+
--dock-touch-target: 2.75rem; /* 44px */
|
|
430
|
+
|
|
431
|
+
/* AQ.W3 §7 — canonical WCAG 2.5.5 (44px) touch-target floor for the
|
|
432
|
+
NON-dock coarse-pointer surfaces (`Button size="icon"`,
|
|
433
|
+
ExpandableContainer triggers, SegmentedTabs responsive mobile trigger). One
|
|
434
|
+
named rung the `@media (pointer: coarse)` block in utilities.css reads,
|
|
435
|
+
retiring the per-consumer one-liner `min-h-[44px]` patches. Equals
|
|
436
|
+
`--dock-touch-target` numerically; kept as a distinct token so the
|
|
437
|
+
dock floor and the general floor can be retuned independently. */
|
|
438
|
+
--touch-target: 2.75rem; /* 44px */
|
|
439
|
+
|
|
440
|
+
/* MetricBadge — stacked variant geometry. The 2-row stacked layout
|
|
441
|
+
(label / value+unit) wants a taller floor than the inline pill so the
|
|
442
|
+
label has breathing room above the baseline pair. T.W2.T2 +
|
|
443
|
+
audit B-spec §3.2 vertical-rhythm table land 42px (2.625rem) as the
|
|
444
|
+
min-height with 6px (0.375rem) block padding. The inline ladder
|
|
445
|
+
keeps its tight defaults via `--metric-badge-min-height` /
|
|
446
|
+
`--metric-badge-padding-block` (declared inline at the
|
|
447
|
+
`.metric-badge` selector). */
|
|
448
|
+
--metric-badge-min-height-stacked: 2.625rem;
|
|
449
|
+
--metric-badge-padding-block-stacked: 0.375rem;
|
|
450
|
+
|
|
451
|
+
/* Configurator — N.W2 Lane A density axis (4 rungs).
|
|
452
|
+
The `comfortable` rung restates the pre-N.W2 baked recipe exactly
|
|
453
|
+
(`gap-1.5 py-2` = 0.375rem / 0.5rem) so unparameterised consumers
|
|
454
|
+
see no visual change. `mobile` halves the vertical breathing room
|
|
455
|
+
for narrow-viewport studios; `spacious` doubles it for settings-
|
|
456
|
+
page hosts. See `<ConfiguratorRow>` scoped CSS for the attribute-
|
|
457
|
+
selector binding. */
|
|
458
|
+
--configurator-row-gap-mobile: 0.25rem; /* 4px — tight */
|
|
459
|
+
--configurator-row-gap-compact: 0.3125rem; /* 5px — slightly tighter */
|
|
460
|
+
--configurator-row-gap-comfortable: 0.375rem; /* 6px — pre-N.W2 default */
|
|
461
|
+
--configurator-row-gap-spacious: 0.75rem; /* 12px — generous */
|
|
462
|
+
|
|
463
|
+
--configurator-row-py-mobile: 0.25rem; /* 4px — tight */
|
|
464
|
+
--configurator-row-py-compact: 0.375rem; /* 6px — slightly tighter */
|
|
465
|
+
--configurator-row-py-comfortable: 0.5rem; /* 8px — pre-N.W2 default */
|
|
466
|
+
--configurator-row-py-spacious: 0.875rem; /* 14px — generous */
|
|
467
|
+
|
|
468
|
+
/* Configurator HIERARCHY VOCABULARY (AZ.W-HIERARCHY — D6-3). The three
|
|
469
|
+
NAMED registers the studios (blob, aurora) inherit instead of a flat
|
|
470
|
+
undifferentiated stack. DISTINCT from the density ladder above (which is
|
|
471
|
+
the per-row CADENCE, not the section/label/preset register).
|
|
472
|
+
|
|
473
|
+
1. Section register — the <ConfiguratorLayer> label reads as a SECTION,
|
|
474
|
+
not a row: the √φ subheading rung at weight 600, lifting off the prior
|
|
475
|
+
flat `text-small font-semibold`. */
|
|
476
|
+
--configurator-section-size: var(--type-subheading); /* 20.4px — √φ section rung */
|
|
477
|
+
--configurator-section-weight: 600; /* the heading weight */
|
|
478
|
+
|
|
479
|
+
/* AZ.W-BLOB-REDRESS — the SINGLE-COLUMN stage-row FLOOR. Below `lg` the
|
|
480
|
+
Configurator stacks stage-over-aside; a percentage stage height against
|
|
481
|
+
an INDEFINITE auto-row resolves to 0 (the GooBlob hero painted 0×0 on a
|
|
482
|
+
phone). The single-column band's `grid-template-rows` floors the stage
|
|
483
|
+
row at this DEFINITE `minmax(…)` minimum so the percentage resolves;
|
|
484
|
+
the aside row takes the remainder and scrolls internally. */
|
|
485
|
+
--configurator-stage-min: 18rem; /* 288px — the mobile live-specimen stage floor */
|
|
486
|
+
|
|
487
|
+
/* 2. Preset-row PRIMARY-AFFORDANCE lift. The preset picker is the primary
|
|
488
|
+
interaction (C6-10); D6-3's defect is the preset row being spatially
|
|
489
|
+
CRAMPED. This token's binding SEMANTIC is the preset row's SPATIAL
|
|
490
|
+
rhythm — its block-padding / gap, NOT a font-weight — so the preset
|
|
491
|
+
row breathes ABOVE a body ConfiguratorRow. (The `-weight` name follows
|
|
492
|
+
the vocabulary's "register weight" framing; it lands on the padding/gap
|
|
493
|
+
slot of `.configurator-presets`, the heavier spatial cadence.) */
|
|
494
|
+
--configurator-preset-row-weight: 0.625rem; /* 10px — > a body row's 8px py-comfortable */
|
|
495
|
+
--configurator-preset-row-gap: 0.5rem; /* 8px — generous chip gap */
|
|
496
|
+
|
|
497
|
+
/* Component font override (consumers override locally) */
|
|
498
|
+
--select-font: inherit;
|
|
499
|
+
|
|
500
|
+
}
|