@mkbabb/glass-ui 4.0.0 → 4.1.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/README.md +3 -1
- package/dist/CardAction-8whJrLWt.js +268 -0
- package/dist/{CommandShortcut-DdtWXxOK.js → CommandShortcut-D3yxgHNn.js} +25 -14
- package/dist/ConfiguratorRow-CaP7U3ZA.js +143 -0
- package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
- package/dist/{ContextMenuSubContent-B0Vs6atR.js → ContextMenuSubContent-DDRID3qC.js} +28 -33
- package/dist/{DataTable-C464Zbqd.js → DataTable-Bc9kUtu_.js} +4 -4
- package/dist/{DialogContent-DDE6pQBU.js → DialogContent-6JtTB5x2.js} +11 -8
- package/dist/DialogFooter-9phqcRIS.js +80 -0
- package/dist/DialogScrollContent-TTuovQst.js +93 -0
- package/dist/{FadingScroll-DwNnvKMs.js → FadingScroll-DLRbH5Xr.js} +1 -1
- package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
- package/dist/{HoverPopover-Dpzwvc4t.js → HoverPopover-BcIxvyqZ.js} +2 -2
- package/dist/{IconChip-BDw1j5mu.js → IconChip-DhbdGdFQ.js} +2 -1
- package/dist/{IconTooltip-DSjasZIt.js → IconTooltip-B0zimd2H.js} +1 -1
- package/dist/Input-Cg9DF62r.js +57 -0
- package/dist/{MetricBadge-BpC0R_Ec.js → MetricBadge-RHdBP72w.js} +1 -1
- package/dist/Notification-CphK7AAm.js +43 -0
- package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
- package/dist/PagerDots-Cjx96la-.js +98 -0
- package/dist/{PopoverContent-BTorlp--.js → PopoverContent-DL7E6vJP.js} +4 -4
- package/dist/{Progress-hAT4gqGH.js → Progress-CnqB7gLm.js} +4 -4
- package/dist/{ScrollingText-CUVFTWk2.js → ScrollingText-CTZbA_cG.js} +2 -2
- package/dist/{SelectScrollDownButton-C1jb3b3K.js → SelectScrollDownButton-DAKCBEdW.js} +65 -61
- package/dist/{SelectSeparator-DK2y1Bun.js → SelectSeparator-C2UGOkXF.js} +1 -1
- package/dist/Separator-DQcwC2TR.js +44 -0
- package/dist/Switch-B8RscmRu.js +49 -0
- package/dist/Toaster-D9qIHjBI.js +274 -0
- package/dist/ToggleGroupItem-BLtr3TJq.js +170 -0
- package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +21 -33
- package/dist/api/types-extra.d.ts +37 -0
- package/dist/api.js +1 -1
- package/dist/aurora.js +1231 -260
- package/dist/badge.js +1 -1
- package/dist/border-progress.d.ts +1 -0
- package/dist/border-progress.js +98 -0
- package/dist/button-5dY1Dvhd.js +125 -0
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -3
- package/dist/card.js +2 -2
- package/dist/carousel.js +93 -110
- package/dist/collapsible.js +1 -1
- package/dist/color-Cs0-oxYL.js +116 -0
- package/dist/color.js +2 -2
- package/dist/command.js +1 -1
- package/dist/compile-nZ1xVYTp.js +19 -0
- package/dist/completion-seal.d.ts +1 -0
- package/dist/completion-seal.js +89 -0
- package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
- package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
- package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
- package/dist/components/custom/aurora/composables/color.d.ts +13 -0
- package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +31 -0
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +60 -0
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +37 -0
- package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +20 -2
- package/dist/components/custom/aurora/constants/renderMode.d.ts +77 -18
- package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
- package/dist/components/custom/aurora/index.d.ts +2 -1
- package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
- package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
- package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +18 -0
- package/dist/components/custom/border-progress/constants.d.ts +59 -0
- package/dist/components/custom/border-progress/index.d.ts +4 -0
- package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
- package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
- package/dist/components/custom/completion-seal/constants.d.ts +46 -0
- package/dist/components/custom/completion-seal/index.d.ts +4 -0
- package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +18 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +22 -0
- package/dist/components/custom/concentric/composables/ringField.d.ts +85 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +14 -0
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
- package/dist/components/custom/concentric/constants.d.ts +67 -0
- package/dist/components/custom/concentric/index.d.ts +5 -0
- package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
- package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
- package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
- package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
- package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
- package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
- package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
- package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
- package/dist/components/custom/constellation/constants.d.ts +33 -0
- package/dist/components/custom/constellation/constellationField.d.ts +31 -1
- package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
- package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
- package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
- package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
- package/dist/components/custom/constellation/index.d.ts +5 -5
- package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
- package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
- package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
- package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
- package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
- package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
- package/dist/components/custom/deck/constants.d.ts +14 -0
- package/dist/components/custom/deck/index.d.ts +8 -0
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +25 -4
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
- package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
- package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +155 -0
- package/dist/components/custom/dock/composables/index.d.ts +2 -0
- package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
- package/dist/components/custom/dock/constants.d.ts +18 -14
- package/dist/components/custom/dock/index.d.ts +5 -2
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +42 -0
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +83 -0
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +39 -0
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +35 -0
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +31 -0
- package/dist/components/custom/dot-flow-field/constants.d.ts +69 -0
- package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
- package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
- package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
- package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
- package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
- package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
- package/dist/components/custom/dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
- package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
- package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
- package/dist/components/custom/easing/composables/useEasingPicker.d.ts +80 -0
- package/dist/components/custom/easing/constants.d.ts +28 -0
- package/dist/components/custom/easing/index.d.ts +3 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +43 -40
- package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
- package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
- package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +42 -0
- package/dist/components/custom/fourier-field/constants.d.ts +64 -0
- package/dist/components/custom/fourier-field/index.d.ts +23 -18
- package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +13 -3
- package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +18 -11
- package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
- package/dist/components/custom/goo-blob/constants.d.ts +1 -1
- package/dist/components/custom/goo-blob/index.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/types.d.ts +36 -0
- package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
- package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
- package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
- package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
- package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
- package/dist/components/custom/handmark/HandMark.vue.d.ts +1 -1
- package/dist/components/custom/icon-chip/types.d.ts +11 -1
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +3 -1
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
- package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
- package/dist/components/custom/pager-dots/index.d.ts +2 -0
- package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
- package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
- package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
- package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
- package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
- package/dist/components/custom/paper-grid/constants.d.ts +57 -0
- package/dist/components/custom/paper-grid/index.d.ts +5 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
- package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
- package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
- package/dist/components/custom/search/index.d.ts +2 -0
- package/dist/components/custom/search/searchVariants.d.ts +19 -0
- package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
- package/dist/components/custom/selectable-chip/index.d.ts +2 -0
- package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
- package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
- package/dist/components/custom/spa-view/index.d.ts +2 -0
- package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
- package/dist/components/custom/split-chars/index.d.ts +1 -0
- package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +12 -0
- package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
- package/dist/components/custom/tabs/constants.d.ts +20 -2
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +30 -17
- package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
- package/dist/components/ui/_shared/index.d.ts +2 -0
- package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
- package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
- package/dist/components/ui/badge/index.d.ts +1 -1
- package/dist/components/ui/button/Button.vue.d.ts +5 -2
- package/dist/components/ui/button/index.d.ts +2 -2
- package/dist/components/ui/card/Card.vue.d.ts +79 -4
- package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
- package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
- package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
- package/dist/components/ui/card/index.d.ts +3 -1
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
- package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
- package/dist/components/ui/command/Command.vue.d.ts +1 -1
- package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
- package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
- package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
- package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts +7 -8
- package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
- package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
- package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
- package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
- package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
- package/dist/components/ui/drawer/constants.d.ts +45 -0
- package/dist/components/ui/drawer/index.d.ts +23 -15
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
- package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
- package/dist/components/ui/focus-scope/index.d.ts +2 -0
- package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/input/Input.vue.d.ts +3 -0
- package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
- package/dist/components/ui/select/SelectContent.vue.d.ts +4 -1
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
- package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
- package/dist/components/ui/toast/use-toast.d.ts +14 -0
- package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
- package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
- package/dist/composables/color/index.d.ts +2 -0
- package/dist/composables/color/useAccentTone.d.ts +34 -0
- package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
- package/dist/composables/glass/index.d.ts +5 -2
- package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
- package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
- package/dist/composables/glass/useVizChoreography.d.ts +123 -0
- package/dist/composables/glass/vSpecular.d.ts +2 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
- package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
- package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
- package/dist/composables/glass/webgpu/index.d.ts +2 -0
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +75 -0
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +85 -0
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
- package/dist/composables/motion/core/index.d.ts +4 -0
- package/dist/composables/motion/index.d.ts +4 -0
- package/dist/composables/motion/scrollReader.d.ts +25 -0
- package/dist/composables/motion/springPresets.d.ts +20 -1
- package/dist/composables/motion/useCharStagger.d.ts +44 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +84 -0
- package/dist/composables/motion/useDragMorph.d.ts +77 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
- package/dist/composables/motion/useLiquidPress.d.ts +71 -0
- package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
- package/dist/composables/motion/useNumericTransition.d.ts +3 -3
- package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
- package/dist/composables/motion/useScrollChrome.d.ts +58 -0
- package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
- package/dist/composables/motion/useSpringPress.d.ts +5 -5
- package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
- package/dist/composables/sidebar/index.d.ts +4 -1
- package/dist/composables/sidebar/types.d.ts +68 -3
- package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
- package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
- package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
- package/dist/composables/virtual/index.d.ts +4 -0
- package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
- package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
- package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
- package/dist/concentric.d.ts +1 -0
- package/dist/concentric.js +836 -0
- package/dist/configurator.js +3 -2
- package/dist/confirm-dialog.js +62 -49
- package/dist/constellation.js +635 -235
- package/dist/context-menu.js +3 -3
- package/dist/controls.js +2 -2
- package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck.d.ts +1 -0
- package/dist/deck.js +105 -0
- package/dist/dialog.js +4 -3
- package/dist/dock.js +819 -568
- package/dist/{dockContext-Bu1Avy-a.js → dockContext-BNfyPLe9.js} +1 -1
- package/dist/dom.js +5 -5
- package/dist/dot-flow-field.d.ts +1 -0
- package/dist/dot-flow-field.js +894 -0
- package/dist/dot-matrix.d.ts +1 -0
- package/dist/dot-matrix.js +630 -0
- package/dist/dotMatrixField-D_x9_1qq.js +48 -0
- package/dist/drawer.d.ts +1 -0
- package/dist/drawer.js +380 -0
- package/dist/{dropdown-menu-BJ7E9js_.js → dropdown-menu-aJmV5SqE.js} +82 -79
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.d.ts +1 -0
- package/dist/easing.js +475 -0
- package/dist/expandable-container.js +46 -21
- package/dist/fading-scroll.js +1 -1
- package/dist/flow.glsl-B2P7e0MT.js +4 -0
- package/dist/focus-scope.d.ts +1 -0
- package/dist/focus-scope.js +23 -0
- package/dist/forms.js +65 -63
- package/dist/fourier-field.js +831 -172
- package/dist/fourier-math.js +1 -1
- package/dist/glass-panel.js +2 -2
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +187 -338
- package/dist/goo-blob.js +241 -692
- package/dist/goo-dot-matrix.d.ts +1 -0
- package/dist/goo-dot-matrix.js +591 -0
- package/dist/handmark.js +2 -2
- 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.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +70 -60
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +1 -1
- package/dist/metric-stack.js +14 -9
- package/dist/motion-core.js +58 -36
- package/dist/motion-curves.js +11 -1
- package/dist/motion.js +90 -53
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +2 -91
- package/dist/paper-backdrop.js +1 -1
- package/dist/paper-grid.d.ts +1 -0
- package/dist/paper-grid.js +788 -0
- package/dist/popover.js +1 -1
- package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
- package/dist/{compile-EXXzEr1q.js → procedural-color.wgsl-m7Zgv35j.js} +2 -156
- package/dist/progress.js +1 -1
- package/dist/pulse.js +2 -2
- package/dist/reactive.js +1 -1
- package/dist/resolveCanvasColor-yPyIpJt9.js +93 -0
- package/dist/scrollReader-DI1NWxUw.js +42 -0
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +162 -308
- package/dist/select.js +3 -3
- package/dist/selectable-chip.d.ts +1 -0
- package/dist/selectable-chip.js +65 -0
- package/dist/separator.js +1 -1
- package/dist/{sheet-CquRYOAw.js → sheet-B2flBfLH.js} +5 -5
- package/dist/sheet.js +1 -1
- package/dist/sidebar.js +216 -114
- package/dist/{slider-DQ95MET2.js → slider-2A0rPn79.js} +3 -3
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +2 -2
- package/dist/spa-view.d.ts +1 -0
- package/dist/spa-view.js +46 -0
- package/dist/spectrum-walk-BVzA7Biz.js +33 -0
- package/dist/{springPresets-WXaLbu8u.js → springPresets-Ce7OYCm9.js} +12 -6
- package/dist/styles/animations.css +46 -12
- package/dist/styles/border-progress.css +109 -0
- package/dist/styles/cards.css +145 -0
- package/dist/styles/completion-seal.css +131 -0
- package/dist/styles/components.css +2 -3
- package/dist/styles/configurator.css +55 -0
- package/dist/styles/critical-partition.mjs +162 -0
- package/dist/styles/critical.css +12 -0
- package/dist/styles/deferred.css +33 -0
- package/dist/styles/dock/cta-seat.css +87 -0
- package/dist/styles/dock/density.css +198 -0
- package/dist/styles/dock/layers.css +101 -29
- package/dist/styles/dock/morph-bridge.css +54 -18
- package/dist/styles/dock/morph.css +132 -7
- package/dist/styles/dock/overflow.css +28 -2
- package/dist/styles/dock/search.css +68 -0
- package/dist/styles/dock/shape.css +124 -0
- package/dist/styles/dock/shell.css +77 -21
- package/dist/styles/dock/stack-rail.css +264 -0
- package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/dist/styles/dock-controls/icon-button.css +14 -0
- package/dist/styles/dock.css +43 -1
- package/dist/styles/drawer.css +81 -35
- package/dist/styles/glass/accent-tone.css +66 -0
- package/dist/styles/glass/control-surfaces.css +167 -0
- package/dist/styles/glass/deep.css +44 -0
- package/dist/styles/glass/ladder.css +147 -41
- package/dist/styles/glass/material.css +78 -15
- package/dist/styles/glass/reveal.css +136 -0
- package/dist/styles/glass/rim.css +110 -0
- package/dist/styles/glass/surfaces.css +148 -129
- package/dist/styles/glass-refract.css +96 -44
- package/dist/styles/glass-specular-track.css +7 -0
- package/dist/styles/glass.css +13 -0
- package/dist/styles/hover-popover.css +7 -6
- package/dist/styles/icon-chip.css +77 -15
- package/dist/styles/index.css +36 -9
- package/dist/styles/instrument-chassis.css +66 -3
- package/dist/styles/scroll-choreography.css +300 -0
- package/dist/styles/scroll-chrome.css +123 -0
- package/dist/styles/scroll-driven.css +38 -0
- package/dist/styles/segmented-tabs.css +81 -14
- package/dist/styles/theme/bridges.css +33 -0
- package/dist/styles/theme/literals.css +11 -2
- package/dist/styles/theme/radius.css +24 -2
- package/dist/styles/tokens/color-radius.css +13 -3
- package/dist/styles/tokens/dark-arm.css +137 -32
- package/dist/styles/tokens/glass-deep.css +100 -0
- package/dist/styles/tokens/glass-fx.css +376 -0
- package/dist/styles/tokens/glass.css +131 -351
- package/dist/styles/tokens/light-dark.css +16 -3
- package/dist/styles/tokens/offsets.css +143 -0
- package/dist/styles/tokens/on-glass-fg.css +39 -0
- package/dist/styles/tokens/property-regs.css +260 -0
- package/dist/styles/tokens/scale-paper.css +168 -96
- package/dist/styles/tokens/scheme-motion.css +114 -38
- package/dist/styles/tokens/scroll-tokens.css +123 -0
- package/dist/styles/tokens/sizing-config.css +110 -0
- package/{src/styles/tokens/offsets-sizing.css → dist/styles/tokens/sizing.css} +92 -204
- package/dist/styles/tokens.css +14 -3
- package/dist/styles/typography/semantic.css +26 -13
- package/dist/styles/typography/utilities.css +22 -7
- package/dist/styles/utilities/a11y-overrides.css +20 -5
- package/dist/styles/utilities/animate.css +27 -24
- package/dist/styles/utilities/base-misc.css +307 -0
- package/dist/styles/utilities/base.css +47 -261
- package/dist/styles/utilities/btn.css +17 -4
- package/dist/styles/utilities/components.css +31 -6
- package/dist/styles/utilities/metal.css +215 -0
- package/dist/styles/utilities.css +14 -7
- package/dist/switch.js +1 -1
- package/dist/tabs.js +220 -107
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +10 -10
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +2 -2
- package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
- package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-CLrxicG9.js} +1 -1
- package/dist/useConfiguratorState-4xblKfwd.js +162 -0
- package/dist/useControlSize-SH1UmJCi.js +9 -0
- package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
- package/dist/useDragMorph-BUgAC-zK.js +102 -0
- package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
- package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
- package/dist/useLiquidPress-BooG97RY.js +39 -0
- package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
- package/dist/useScrollChrome-D66AVP7C.js +258 -0
- package/dist/useSpring-C0jyvEJB.js +40 -0
- package/dist/useSpringMount-BWDnKIwh.js +71 -0
- package/dist/useSpringPress-B1-Czp-V.js +36 -0
- package/dist/{useTouchGate-28Tk2-t2.js → useTouchGate-CBZTD4SD.js} +1 -1
- package/dist/useViewTransition-CUI1nAgn.js +95 -0
- package/dist/vSpecular-EX7loENl.js +68 -0
- package/dist/vendor-B2qOlYY3.js +239 -0
- package/dist/virtual.d.ts +1 -0
- package/dist/virtual.js +225 -0
- package/dist/watercolor-dot.js +117 -74
- package/package.json +252 -28
- package/src/styles/animations.css +46 -12
- package/src/styles/border-progress.css +109 -0
- package/src/styles/cards.css +145 -0
- package/src/styles/completion-seal.css +131 -0
- package/src/styles/configurator.css +55 -0
- package/src/styles/critical-partition.mjs +162 -0
- package/src/styles/dock/cta-seat.css +87 -0
- package/src/styles/dock/density.css +198 -0
- package/src/styles/dock/layers.css +101 -29
- package/src/styles/dock/morph-bridge.css +54 -18
- package/src/styles/dock/morph.css +132 -7
- package/src/styles/dock/overflow.css +28 -2
- package/src/styles/dock/search.css +68 -0
- package/src/styles/dock/shape.css +124 -0
- package/src/styles/dock/shell.css +77 -21
- package/src/styles/dock/stack-rail.css +264 -0
- package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/src/styles/dock-controls/icon-button.css +14 -0
- package/src/styles/dock.css +43 -1
- package/src/styles/drawer.css +81 -35
- package/src/styles/glass/accent-tone.css +66 -0
- package/src/styles/glass/control-surfaces.css +167 -0
- package/src/styles/glass/deep.css +44 -0
- package/src/styles/glass/ladder.css +147 -41
- package/src/styles/glass/material.css +78 -15
- package/src/styles/glass/reveal.css +136 -0
- package/src/styles/glass/rim.css +110 -0
- package/src/styles/glass/surfaces.css +148 -129
- package/src/styles/glass-refract.css +96 -44
- package/src/styles/glass-specular-track.css +7 -0
- package/src/styles/glass.css +13 -0
- package/src/styles/hover-popover.css +7 -6
- package/src/styles/icon-chip.css +77 -15
- package/src/styles/index.css +27 -0
- package/src/styles/instrument-chassis.css +66 -3
- package/src/styles/scroll-choreography.css +300 -0
- package/src/styles/scroll-chrome.css +123 -0
- package/src/styles/scroll-driven.css +38 -0
- package/src/styles/segmented-tabs.css +81 -14
- package/src/styles/theme/bridges.css +33 -0
- package/src/styles/theme/literals.css +11 -2
- package/src/styles/theme/radius.css +24 -2
- package/src/styles/tokens/color-radius.css +13 -3
- package/src/styles/tokens/dark-arm.css +137 -32
- package/src/styles/tokens/glass-deep.css +100 -0
- package/src/styles/tokens/glass-fx.css +376 -0
- package/src/styles/tokens/glass.css +131 -351
- package/src/styles/tokens/light-dark.css +16 -3
- package/src/styles/tokens/offsets.css +143 -0
- package/src/styles/tokens/on-glass-fg.css +39 -0
- package/src/styles/tokens/property-regs.css +260 -0
- package/src/styles/tokens/scale-paper.css +168 -96
- package/src/styles/tokens/scheme-motion.css +114 -38
- package/src/styles/tokens/scroll-tokens.css +123 -0
- package/src/styles/tokens/sizing-config.css +110 -0
- package/{dist/styles/tokens/offsets-sizing.css → src/styles/tokens/sizing.css} +92 -204
- package/src/styles/tokens.css +14 -3
- package/src/styles/typography/semantic.css +26 -13
- package/src/styles/typography/utilities.css +22 -7
- package/src/styles/utilities/a11y-overrides.css +20 -5
- package/src/styles/utilities/animate.css +27 -24
- package/src/styles/utilities/base-misc.css +307 -0
- package/src/styles/utilities/base.css +47 -261
- package/src/styles/utilities/btn.css +17 -4
- package/src/styles/utilities/components.css +31 -6
- package/src/styles/utilities/metal.css +215 -0
- package/src/styles/utilities.css +14 -7
- package/dist/CardAction-XH4YBVEK.js +0 -158
- package/dist/ContextMenuContent-ON3x7cuk.js +0 -85
- package/dist/DialogFooter-8eZbdmPc.js +0 -165
- package/dist/HoverCardContent-DkMaQzH5.js +0 -83
- package/dist/Input-DVG_J0ne.js +0 -55
- package/dist/Notification-DKjKsQq8.js +0 -100
- package/dist/NumberFieldContent-1VtwDSgf.js +0 -145
- package/dist/Separator-BArl4OaB.js +0 -37
- package/dist/Switch-Dr--uLGH.js +0 -47
- package/dist/Toaster-Bm_HQSpc.js +0 -263
- package/dist/ToggleGroupItem-Dzk9hWsF.js +0 -157
- package/dist/TooltipProvider-B3MkB_8P.js +0 -104
- package/dist/button-BNDWhAZb.js +0 -81
- package/dist/check-njhk-vfu.js +0 -7
- package/dist/chevron-down-DKkxb4VV.js +0 -7
- package/dist/chevron-right-CPXbqQQz.js +0 -7
- package/dist/chevron-up-n_24SqI-.js +0 -7
- package/dist/color-DweYl7pE.js +0 -86
- package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
- package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
- package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
- package/dist/createLucideIcon-DydS2qgk.js +0 -43
- package/dist/minimize-2-BV31Ob_h.js +0 -38
- package/dist/resolveCanvasColor-BBiYfp8g.js +0 -11
- package/dist/search-BSGrf2Sk.js +0 -12
- package/dist/styles/dock/rail-extend.css +0 -397
- package/dist/useCanvas2D-ClrQuZtp.js +0 -96
- package/dist/useConfiguratorState-kiIlun8I.js +0 -303
- package/dist/useRAFLoop-CdwJ7284.js +0 -109
- package/dist/useSpecularTracking-Bo5su68i.js +0 -32
- package/dist/useSpringMount-CvopqiFr.js +0 -108
- package/dist/useViewTransition-COsPjQVZ.js +0 -47
- package/dist/x-BUwTKe50.js +0 -10
- package/src/styles/dock/rail-extend.css +0 -397
- /package/dist/{CollapsibleContent-C_s6fG7r.js → CollapsibleContent-68dEXIAl.js} +0 -0
- /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-CxsHSyMj.js} +0 -0
- /package/dist/{Label-Ck9SWEKM.js → Label-C2ejNWeC.js} +0 -0
- /package/dist/{ModalOverlay-CkPRRgl_.js → ModalOverlay-D1VrWyoi.js} +0 -0
- /package/dist/{PaperBackdrop-nBKe0vkB.js → PaperBackdrop-CqwjnfLv.js} +0 -0
- /package/dist/{SelectGroup-Dcczq44n.js → SelectGroup-BFiod7X2.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-CBt_VvXa.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
- /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
- /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
- /package/dist/{createContext-B2RaZ-b8.js → createContext-CpBNTRMI.js} +0 -0
- /package/dist/{math-DeuJwLFx.js → math-Eb0w3LqU.js} +0 -0
- /package/dist/{menuItemVariants-DWRQXBxJ.js → menuItemVariants-D8VNHq22.js} +0 -0
- /package/dist/{prng-Cg22zv8g.js → prng-B-d9eYX8.js} +0 -0
- /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
- /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
- /package/dist/{useLiquidFlex-C12hXwOZ.js → useLiquidFlex-UmA6LMZu.js} +0 -0
- /package/dist/{useResizeObserver-V6nq5gJb.js → useResizeObserver-Bpoi7tRE.js} +0 -0
- /package/dist/{useResolveTokenColor-NUG2zYAW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
- /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
- /package/dist/{useSurfaceAxis-CMnF2zHb.js → useSurfaceAxis-g0NloYEF.js} +0 -0
- /package/dist/{useTimer-B_PAasDL.js → useTimer-BHJOKr35.js} +0 -0
- /package/dist/{useUserInvalidAria-CDfJuakL.js → useUserInvalidAria-y5namzeE.js} +0 -0
- /package/dist/{useViewportReady-CvBcCYDf.js → useViewportReady-anbac3m6.js} +0 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
/* dock/stack-rail.css — BC.W-DOCK-STACK-RAIL — the macOS hover-expand STACK rail
|
|
2
|
+
* (the clean-break rebuild; the divider-carousel chip-strip RETIRED).
|
|
3
|
+
*
|
|
4
|
+
* THE KEPT CHASSIS (glass-dock-codebase.md §2.5 — "that part STAYS"). The `.glass-dock`
|
|
5
|
+
* root carries `contain: paint` + `backdrop-filter` + (on a vertical dock) `overflow` —
|
|
6
|
+
* all three hard-clip every descendant to the dock's border box, so an `#rail` rendered
|
|
7
|
+
* as a dock CHILD could never paint beyond the edge. The escape: GlassDock renders the
|
|
8
|
+
* `#rail` as a SIBLING of `.glass-dock` inside the `.glass-dock-frame` (a `display:contents`
|
|
9
|
+
* shell that becomes a NON-clipping positioning context only when `data-has-rail`). The
|
|
10
|
+
* `.dock-hairline-slot` is `position: absolute` relative to THAT shell — outside the dock's
|
|
11
|
+
* containment — so the stack VISIBLY extends beyond the dock edge into its own gutter. No
|
|
12
|
+
* `contain`, no `backdrop-filter`, no `overflow` on the shell → nothing clips it. This is
|
|
13
|
+
* the load-bearing chassis the rebuild reuses; the box stays INVIOLATE (the slot feeds NO
|
|
14
|
+
* size into the dock's intrinsic box).
|
|
15
|
+
*
|
|
16
|
+
* THE STACK (the verbatim spec — rail-spec-contradicted-divider-carousel). A `<DockStack>`
|
|
17
|
+
* is one stack: a CORE anchor item (the always-visible dock(1) glyph) + N members. On
|
|
18
|
+
* hover/focus of the core, the members FAN OUT next to the rail — a column (vertical dock)
|
|
19
|
+
* / row (horizontal dock) of FULLY-VISIBLE glass icons springing open beside the line,
|
|
20
|
+
* each a `--glass-bg-floating` glass icon (NEVER a shadowed half-tucked chip). The fan-out
|
|
21
|
+
* is compositor-only (scale/translate/opacity/filter — the `proof:no-layout-animation`
|
|
22
|
+
* floor, NO animated width/height/inset), staggered by `--dock-stack-stagger * var(--i)`.
|
|
23
|
+
*
|
|
24
|
+
* CLEARS CONTENT BY TOPOLOGY (THE HEADLINE — ba-dock-shell-gestalt-fail-revoked +
|
|
25
|
+
* ba-chip-graze). The stack lives BEYOND the dock edge in its own gutter (the
|
|
26
|
+
* `chipOverMain: false` topology), the fan extending AWAY from content, never over
|
|
27
|
+
* `<main>` / the `<h1>` / a form field at any y. The chip-graze that revoked the dock/shell
|
|
28
|
+
* PASS cannot recur.
|
|
29
|
+
*
|
|
30
|
+
* @import-ed by dock.css into the SAME `@layer components` as the other partials. */
|
|
31
|
+
@layer components {
|
|
32
|
+
:root {
|
|
33
|
+
/* The beyond-edge extent — how far the stack reaches into the gutter past the dock
|
|
34
|
+
edge. Rides `--dock-scale` so it tracks the coarse-pointer density thread. (KEPT
|
|
35
|
+
token, re-conceived from the divider-carousel's symmetric overrun to the stack's
|
|
36
|
+
one-way gutter reach.) */
|
|
37
|
+
--dock-rail-extend-length: calc(2.5rem * var(--dock-scale, 1));
|
|
38
|
+
/* The macOS-stack tuning tokens (re-expressed via @theme — Tailwind-first, NEVER a
|
|
39
|
+
raw macOS-dock CSS paste). */
|
|
40
|
+
--dock-stack-stagger: 28ms; /* the per-member fan delay (× var(--i)) */
|
|
41
|
+
--dock-stack-gap: calc(0.375rem * var(--dock-scale, 1));
|
|
42
|
+
--dock-stack-member-size: calc(2rem * var(--dock-scale, 1));
|
|
43
|
+
--dock-stack-fold: 0.4; /* the at-rest fold scale (the members tuck behind the core) */
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* The dock-frame wrapper — KEPT. DEFAULT (`display: contents`) is layout-transparent
|
|
47
|
+
(byte-identical no-rail path). When a `#rail` is authored it lifts to a real
|
|
48
|
+
NON-clipping positioning context so the abs-positioned slot anchors to the dock box
|
|
49
|
+
yet escapes the dock's clip. */
|
|
50
|
+
.glass-dock-frame {
|
|
51
|
+
display: contents;
|
|
52
|
+
}
|
|
53
|
+
.glass-dock-frame[data-has-rail] {
|
|
54
|
+
display: inline-flex;
|
|
55
|
+
position: relative;
|
|
56
|
+
/* No containment, no overflow, no blur — the WHOLE point: the stack must paint
|
|
57
|
+
beyond the dock box. The wrapper shrink-wraps the dock (inline-flex) so its box
|
|
58
|
+
== the dock box and the rail anchors to the true edge. */
|
|
59
|
+
}
|
|
60
|
+
.glass-dock-frame[data-has-rail].vertical {
|
|
61
|
+
flex-direction: column;
|
|
62
|
+
align-items: stretch;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* The chrome-slot wrapper — a `position: absolute` sibling of `.glass-dock`, anchored
|
|
66
|
+
to the dock-frame (NOT the dock box), so the dock's clip never reaches it. It paints
|
|
67
|
+
nothing itself; `<DockStack>` owns the core + fan. The slot seats at the dock EDGE
|
|
68
|
+
(the `position` start/end), NOT a `[data-rail-anchor]` divider seam (the seam-locator
|
|
69
|
+
RETIRED). It is pass-through; the controls re-arm pointer events. */
|
|
70
|
+
.dock-hairline-slot {
|
|
71
|
+
position: absolute;
|
|
72
|
+
display: flex;
|
|
73
|
+
align-items: center;
|
|
74
|
+
justify-content: center;
|
|
75
|
+
pointer-events: none;
|
|
76
|
+
z-index: 1;
|
|
77
|
+
}
|
|
78
|
+
.dock-hairline-slot > * {
|
|
79
|
+
pointer-events: auto;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* VERTICAL (column) dock — the stack hangs off the TRAILING (inline-end) edge in its
|
|
83
|
+
gutter, the core seated at the dock's block-end (the macOS-stack anchor: the
|
|
84
|
+
bottom-most member at the dock floor, the rest fanning up the rail). The slot starts
|
|
85
|
+
at the dock's trailing edge + the extend reach, clear of <main> (which is to the
|
|
86
|
+
inline-start). */
|
|
87
|
+
.glass-dock-frame[data-has-rail].vertical .dock-hairline-slot {
|
|
88
|
+
inset-inline-start: 100%;
|
|
89
|
+
inset-inline-end: auto;
|
|
90
|
+
inset-block-end: 0;
|
|
91
|
+
inset-block-start: auto;
|
|
92
|
+
inline-size: var(--dock-rail-extend-length);
|
|
93
|
+
block-size: 100%;
|
|
94
|
+
}
|
|
95
|
+
/* HORIZONTAL (row) dock — the stack rises off the TOP (block-start) edge in its gutter
|
|
96
|
+
(a viewport-bottom dock keeps the fan ON-SCREEN above the row), the core at the dock's
|
|
97
|
+
inline-end, the members fanning up. Clear of <main> (which is above the dock). */
|
|
98
|
+
.glass-dock-frame[data-has-rail]:not(.vertical) .dock-hairline-slot {
|
|
99
|
+
inset-block-end: 100%;
|
|
100
|
+
inset-block-start: auto;
|
|
101
|
+
inset-inline-end: 0;
|
|
102
|
+
inset-inline-start: auto;
|
|
103
|
+
block-size: var(--dock-rail-extend-length);
|
|
104
|
+
inline-size: 100%;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* ── The stack ────────────────────────────────────────────────────────────────── */
|
|
108
|
+
.dock-stack {
|
|
109
|
+
position: relative;
|
|
110
|
+
display: flex;
|
|
111
|
+
gap: var(--dock-stack-gap);
|
|
112
|
+
/* the core anchors at the gutter end nearest the dock; the fan extends AWAY into
|
|
113
|
+
the gutter (clear of content). */
|
|
114
|
+
}
|
|
115
|
+
/* Vertical dock — the stack is a ROW: core nearest the dock edge, members fanning out
|
|
116
|
+
(inline) into the trailing gutter. Anchored block-end (the bottom-most member at the
|
|
117
|
+
dock floor — the macOS-stack anchor topology). */
|
|
118
|
+
.dock-stack.vertical {
|
|
119
|
+
flex-direction: row;
|
|
120
|
+
align-items: flex-end;
|
|
121
|
+
}
|
|
122
|
+
/* Horizontal dock — the stack is a COLUMN: core nearest the dock edge (block-end),
|
|
123
|
+
members fanning UP into the gutter above the row. */
|
|
124
|
+
.dock-stack.horizontal {
|
|
125
|
+
flex-direction: column-reverse;
|
|
126
|
+
align-items: center;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/* The CORE anchor — the always-visible dock(1) glyph. A floating glass plate (it is
|
|
130
|
+
chrome OUTSIDE the dock substrate, so it carries its OWN glass register, not the
|
|
131
|
+
transparent in-dock recipe). */
|
|
132
|
+
.dock-stack-core {
|
|
133
|
+
flex: 0 0 auto;
|
|
134
|
+
z-index: 1;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* The fanned members — the FadingScroll port (the one scroll-fade port). The fan's
|
|
138
|
+
main-axis extent caps at `--dock-stack-visible` members; an >visibleCount stack
|
|
139
|
+
scrolls (the port feathers the overflow). */
|
|
140
|
+
.dock-stack-fan {
|
|
141
|
+
display: flex;
|
|
142
|
+
gap: var(--dock-stack-gap);
|
|
143
|
+
/* scoped main-axis budget — the fan shows `--dock-stack-visible` members then
|
|
144
|
+
scrolls (the n-stack reachable by scrolling the rail, not the dock box). */
|
|
145
|
+
}
|
|
146
|
+
.dock-stack.vertical .dock-stack-fan {
|
|
147
|
+
flex-direction: row;
|
|
148
|
+
align-items: flex-end;
|
|
149
|
+
max-inline-size: calc(
|
|
150
|
+
var(--dock-stack-visible, 3) * var(--dock-stack-member-size) +
|
|
151
|
+
(var(--dock-stack-visible, 3) - 1) * var(--dock-stack-gap)
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
.dock-stack.horizontal .dock-stack-fan {
|
|
155
|
+
flex-direction: column-reverse;
|
|
156
|
+
align-items: center;
|
|
157
|
+
max-block-size: calc(
|
|
158
|
+
var(--dock-stack-visible, 3) * var(--dock-stack-member-size) +
|
|
159
|
+
(var(--dock-stack-visible, 3) - 1) * var(--dock-stack-gap)
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/* Each member — a FULLY-VISIBLE glass icon (the `--glass-bg-floating` tier + the
|
|
164
|
+
catch-light rim), NEVER a shadowed half-tucked chip (the "NOT shadowed" verbatim
|
|
165
|
+
ask). It composes the `.dock-icon-button` base; the stack-scoped surface override
|
|
166
|
+
(0,2,0) beats the base `.dock-icon-button` (0,1,0) on source-order tie without
|
|
167
|
+
`!important`. */
|
|
168
|
+
.dock-stack-fan .dock-stack-member {
|
|
169
|
+
flex: 0 0 auto;
|
|
170
|
+
inline-size: var(--dock-stack-member-size);
|
|
171
|
+
block-size: var(--dock-stack-member-size);
|
|
172
|
+
background: var(--glass-bg-floating);
|
|
173
|
+
backdrop-filter: var(--glass-blur-floating);
|
|
174
|
+
-webkit-backdrop-filter: var(--glass-blur-floating);
|
|
175
|
+
box-shadow:
|
|
176
|
+
var(--glass-edge-light),
|
|
177
|
+
var(--glass-specular),
|
|
178
|
+
0 2px 6px -2px color-mix(in srgb, var(--shadow-color) 22%, transparent);
|
|
179
|
+
border-radius: var(--radius-pill);
|
|
180
|
+
color: color-mix(in srgb, var(--dock-fg-on-aurora, var(--foreground)) 88%, transparent);
|
|
181
|
+
/* THE FAN-OUT — compositor-only (scale/translate/opacity/filter), NO animated
|
|
182
|
+
width/height/inset (proof:no-layout-animation). At rest each member is folded
|
|
183
|
+
behind the core: scaled-down, translated toward the rail (the dock edge),
|
|
184
|
+
transparent, and a slight materialize blur. The hover-expand springs them OUT
|
|
185
|
+
staggered by `--dock-stack-stagger * var(--i)` in reading order. */
|
|
186
|
+
opacity: 0;
|
|
187
|
+
scale: var(--dock-stack-fold);
|
|
188
|
+
filter: blur(1px);
|
|
189
|
+
transition:
|
|
190
|
+
opacity var(--duration-fast) var(--ease-out)
|
|
191
|
+
calc(var(--dock-stack-stagger) * var(--i, 0)),
|
|
192
|
+
scale var(--duration-normal) var(--spring-dock, var(--ease-out))
|
|
193
|
+
calc(var(--dock-stack-stagger) * var(--i, 0)),
|
|
194
|
+
translate var(--duration-normal) var(--spring-dock, var(--ease-out))
|
|
195
|
+
calc(var(--dock-stack-stagger) * var(--i, 0)),
|
|
196
|
+
filter var(--duration-fast) var(--ease-out)
|
|
197
|
+
calc(var(--dock-stack-stagger) * var(--i, 0)),
|
|
198
|
+
background-color var(--duration-fast) var(--ease-standard),
|
|
199
|
+
box-shadow var(--duration-fast) var(--ease-standard);
|
|
200
|
+
}
|
|
201
|
+
/* Vertical dock — at rest the members tuck toward the dock edge (inline-start). */
|
|
202
|
+
.dock-stack.vertical .dock-stack-member {
|
|
203
|
+
translate: calc(-1 * var(--dock-rail-extend-length)) 0;
|
|
204
|
+
}
|
|
205
|
+
/* Horizontal dock — at rest the members tuck DOWN toward the dock edge (block-end). */
|
|
206
|
+
.dock-stack.horizontal .dock-stack-member {
|
|
207
|
+
translate: 0 var(--dock-rail-extend-length);
|
|
208
|
+
}
|
|
209
|
+
/* EXPANDED — the members spring OUT to their fanned positions (full scale, in place,
|
|
210
|
+
opaque, crisp). The stagger lives in the per-member transition-delay. */
|
|
211
|
+
.dock-stack.is-expanded .dock-stack-member {
|
|
212
|
+
opacity: 1;
|
|
213
|
+
scale: 1;
|
|
214
|
+
translate: 0 0;
|
|
215
|
+
filter: blur(0);
|
|
216
|
+
}
|
|
217
|
+
.dark .dock-stack-fan .dock-stack-member {
|
|
218
|
+
box-shadow:
|
|
219
|
+
var(--glass-edge-light-dark),
|
|
220
|
+
var(--glass-specular-dark),
|
|
221
|
+
0 2px 6px -2px color-mix(in srgb, var(--shadow-color) 30%, transparent);
|
|
222
|
+
}
|
|
223
|
+
/* The hover/active register — the floating plate firms, the glyph wakes (NOT a
|
|
224
|
+
saturated brand hue; the selected-reads-as-glass tier, W-REGISTER-IOS). */
|
|
225
|
+
.dock-stack-fan .dock-stack-member:hover {
|
|
226
|
+
background: var(--dock-control-hover-bg, var(--glass-bg-resting));
|
|
227
|
+
color: var(--dock-fg-on-aurora, var(--foreground));
|
|
228
|
+
}
|
|
229
|
+
.dock-stack-fan .dock-stack-member.is-active {
|
|
230
|
+
background: var(--dock-control-active-bg, var(--glass-bg-floating));
|
|
231
|
+
color: var(--dock-fg-on-aurora, var(--foreground));
|
|
232
|
+
box-shadow:
|
|
233
|
+
var(--glass-edge-light),
|
|
234
|
+
var(--glass-specular),
|
|
235
|
+
0 0 0 1px color-mix(in srgb, var(--foreground) 12%, transparent),
|
|
236
|
+
0 3px 8px -2px color-mix(in srgb, var(--shadow-color) 28%, transparent);
|
|
237
|
+
}
|
|
238
|
+
.dark .dock-stack-fan .dock-stack-member.is-active {
|
|
239
|
+
box-shadow:
|
|
240
|
+
var(--glass-edge-light-dark),
|
|
241
|
+
var(--glass-specular-dark),
|
|
242
|
+
0 0 0 1px color-mix(in srgb, var(--foreground) 18%, transparent),
|
|
243
|
+
0 3px 8px -2px color-mix(in srgb, var(--shadow-color) 36%, transparent);
|
|
244
|
+
}
|
|
245
|
+
.dock-stack-fan .dock-stack-member svg {
|
|
246
|
+
inline-size: 0.875rem;
|
|
247
|
+
block-size: 0.875rem;
|
|
248
|
+
flex-shrink: 0;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/* PRM — the fan SNAPS to terminal (the fade survives, the transform drops — P6 /
|
|
252
|
+
proof:no-layout-animation PRM carve). No spring travel, no stagger, no blur-settle. */
|
|
253
|
+
@media (prefers-reduced-motion: reduce) {
|
|
254
|
+
.dock-stack-fan .dock-stack-member {
|
|
255
|
+
transition:
|
|
256
|
+
opacity var(--duration-fast) linear,
|
|
257
|
+
background-color var(--duration-fast) var(--ease-standard),
|
|
258
|
+
box-shadow var(--duration-fast) var(--ease-standard);
|
|
259
|
+
scale: 1;
|
|
260
|
+
translate: 0 0;
|
|
261
|
+
filter: none;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
@@ -73,13 +73,26 @@
|
|
|
73
73
|
padding fell to `var(--dock-icon-padding, 0)` (the token is never defined →
|
|
74
74
|
0 pad → the glyph filled the whole 40px box edge-to-edge, ~2.5× the 16-20px
|
|
75
75
|
nav glyphs — the user's "too large" read). Pad the box by HALF the box↔glyph
|
|
76
|
-
difference so the `h-full` SVG lands at exactly `--dock-
|
|
77
|
-
`--dock-scale`-keyed size the nav icons
|
|
78
|
-
nav glyphs through the utility-win path,
|
|
76
|
+
difference so the `h-full` SVG lands at exactly `--dock-control-glyph-size`
|
|
77
|
+
(default `--dock-icon-glyph`, the `--dock-scale`-keyed size the nav icons
|
|
78
|
+
paint) — optically UNIFORM with the nav glyphs through the utility-win path,
|
|
79
|
+
not fighting it.
|
|
80
|
+
|
|
81
|
+
BC.W-DOCK-ENGINE move 3 (the Atlas A-9 fold) — the inset subtracts
|
|
82
|
+
`--dock-control-glyph-size`, the SAME ONE knob the SVG `width`/`height`
|
|
83
|
+
reads below, so the pad and the glyph stay LOCKED (a consumer retinting
|
|
84
|
+
`--dock-control-glyph-size` moves both in lockstep — no drift between the
|
|
85
|
+
box pad and the painted glyph). `--dock-control-size` AND
|
|
86
|
+
`--dock-control-glyph-size` both INHERIT from `.glass-dock[data-density]`,
|
|
87
|
+
where the coarse `--dock-scale` re-declare (overflow.css) re-resolves them
|
|
88
|
+
in lockstep — so the calc reads the coarse-scaled values on a coarse
|
|
89
|
+
pointer too (the AZ.R5-TOKENS substitution-vs-inheritance trap closed for
|
|
90
|
+
the toggle glyph: the var() resolves at the toggle button, reading the
|
|
91
|
+
coarse-re-resolved inherited tokens, never the frozen `:root` scale). */
|
|
79
92
|
--dark-mode-toggle-padding: calc(
|
|
80
93
|
(
|
|
81
94
|
var(--dock-control-size, var(--size-icon-btn)) -
|
|
82
|
-
var(--dock-icon-glyph, 1.25rem)
|
|
95
|
+
var(--dock-control-glyph-size, var(--dock-icon-glyph, 1.25rem))
|
|
83
96
|
) / 2
|
|
84
97
|
);
|
|
85
98
|
}
|
|
@@ -113,6 +113,20 @@
|
|
|
113
113
|
border: var(--dock-active-border);
|
|
114
114
|
box-shadow: var(--dock-active-shadow);
|
|
115
115
|
}
|
|
116
|
+
|
|
117
|
+
/* BC.W-DOCK-ENGINE cross-repo fold (fourier-M #10) — the `<DockIconButton
|
|
118
|
+
:active>` selectable register. The `data-active` hook the component stamps
|
|
119
|
+
reads the rail's "selected reads as glass" tier (`--dock-control-active-bg`,
|
|
120
|
+
default `--glass-bg-floating` — a GLASS tier ABOVE the rest fill, NEVER a
|
|
121
|
+
saturated brand hue, per W-REGISTER-IOS). Distinct from the consumer
|
|
122
|
+
`--dock-active-*` cohort above (a parent-scoped audacious override): this is
|
|
123
|
+
the library's default selected glass, ergonomic sugar over the shipped
|
|
124
|
+
register so a selectable dock control needs no hand-rolled active paint. The
|
|
125
|
+
glyph/label firm to the full warm-ink, mirroring the rail's `.is-active`. */
|
|
126
|
+
&[data-active] {
|
|
127
|
+
background: var(--dock-control-active-bg, var(--glass-bg-floating));
|
|
128
|
+
color: var(--dock-fg-on-aurora, var(--foreground));
|
|
129
|
+
}
|
|
116
130
|
}
|
|
117
131
|
|
|
118
132
|
/* focus-visible ring + disabled paint hoisted to the shared `:where()`
|
package/src/styles/dock.css
CHANGED
|
@@ -37,12 +37,22 @@
|
|
|
37
37
|
@import "./dock/shell.css";
|
|
38
38
|
@import "./dock/morph.css";
|
|
39
39
|
@import "./dock/density.css";
|
|
40
|
+
@import "./dock/shape.css";
|
|
40
41
|
@import "./dock/layers.css";
|
|
41
42
|
@import "./dock/layer-group.css";
|
|
42
43
|
@import "./dock/overflow.css";
|
|
43
|
-
@import "./dock/rail
|
|
44
|
+
@import "./dock/stack-rail.css";
|
|
44
45
|
@import "./dock/section.css";
|
|
45
46
|
@import "./dock/morph-bridge.css";
|
|
47
|
+
/* BC.W-AX-DOCK-CTA-SEAT — the [data-cta-pending] CTA-receive landing seat (the static
|
|
48
|
+
resting-geometry reserve + the plain transition:opacity FLIP reveal). Last in the
|
|
49
|
+
dock cascade — a net-new surface around the byte-untouched useDockCtaReceive morph. */
|
|
50
|
+
@import "./dock/cta-seat.css";
|
|
51
|
+
/* BC.W-DOCK-SEARCH — the dock-as-native-dynamic-search-bar field surface (the W55
|
|
52
|
+
active-field tint legibility seam + the `.glass-menu-row` result rows). A net-new
|
|
53
|
+
surface on a `[data-search]` dock around the byte-untouched morph-bridge metaball;
|
|
54
|
+
CONSUMES the W55 tint seam + the menu-row recipe, re-authors neither. */
|
|
55
|
+
@import "./dock/search.css";
|
|
46
56
|
|
|
47
57
|
/* AX.W01 — the SINGLE morph scalar. `useLayerTransition` writes it once per frame
|
|
48
58
|
to the `.glass-dock` root; EVERY morph axis (box size, padding, radius, scale,
|
|
@@ -67,6 +77,38 @@
|
|
|
67
77
|
initial-value: 0;
|
|
68
78
|
}
|
|
69
79
|
|
|
80
|
+
/* BB.W-DOCK-MORPH-FAMILY (e) — the `@property`-registered dock-scale axis. The
|
|
81
|
+
dock-scale cascade is `--dock-scale: calc(var(--ui-scale) * var(--dock-local-scale,
|
|
82
|
+
1))` (tokens/sizing.css). UNregistered, that `calc()` substitutes ONCE at `:root`
|
|
83
|
+
against the `:root` identity `--dock-local-scale: 1`, so a consumer-scope
|
|
84
|
+
`--dock-local-scale` override is INHERITED but never RE-EVALUATED — the dock keeps
|
|
85
|
+
`--dock-scale: calc(1 * 1)` and stays at the unscaled base (the 3rd recurrence of
|
|
86
|
+
the AX.W55 substitution-vs-inheritance trap; the documented-but-broken `:root`
|
|
87
|
+
preset). Registering `--dock-local-scale` as an INHERITING `@property <number>`
|
|
88
|
+
makes a registered inheriting custom property re-substitute PER-ELEMENT, so a
|
|
89
|
+
`--dock-local-scale` override on ANY dock scope re-evaluates the `calc()` at that
|
|
90
|
+
scope and threads the whole geometry cascade (box·pad·gap·tab·tile·glyph) down in
|
|
91
|
+
lockstep — the `:root` preset made real (the `@property --dock-morph-t` house
|
|
92
|
+
idiom above is the precedent). `--dock-scale` itself is ALSO registered (the
|
|
93
|
+
derived axis) so its `calc()` re-resolves per-element when `--dock-local-scale`
|
|
94
|
+
shifts. ADDITIVE ONLY: `initial-value: 1` is the identity, so at the default
|
|
95
|
+
`--dock-local-scale: 1` the resolved `--dock-scale` is byte-IDENTICAL to HEAD (no
|
|
96
|
+
rung re-tune); the `@media (pointer: coarse)` re-declare (overflow.css) STAYS the
|
|
97
|
+
`:root`-equivalent re-resolve, and this registration is the complementary
|
|
98
|
+
non-`:root`-scope thread. DOCK_SPRING is untouched (this is a token registration,
|
|
99
|
+
not a clock). */
|
|
100
|
+
@property --dock-local-scale {
|
|
101
|
+
syntax: "<number>";
|
|
102
|
+
inherits: true;
|
|
103
|
+
initial-value: 1;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@property --dock-scale {
|
|
107
|
+
syntax: "<number>";
|
|
108
|
+
inherits: true;
|
|
109
|
+
initial-value: 1;
|
|
110
|
+
}
|
|
111
|
+
|
|
70
112
|
@layer components {
|
|
71
113
|
:where(
|
|
72
114
|
.glass-dock,
|
package/src/styles/drawer.css
CHANGED
|
@@ -1,21 +1,35 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* drawer.css — Detented bottom-sheet grammar (AN.W3).
|
|
2
|
+
* drawer.css — Detented bottom-sheet grammar (AN.W3; BB.W-DRAWER-ABROGATE).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* the
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* THE HOUSE owns the snap math end-to-end now (vaul-vue ABROGATED). The Drawer
|
|
5
|
+
* family composes the reka `DialogRoot`/`DialogPortal`/`DialogContent` headless
|
|
6
|
+
* substrate (the SAME vueuse-free substrate every other compound wrapper binds),
|
|
7
|
+
* and the snap settle is driven by ONE house `SpringProgress` on the `DRAWER_SNAP`
|
|
8
|
+
* register (`useDrawerSnap.ts`, the §6 dock-morph `linear()` clock — NOT a bespoke
|
|
9
|
+
* `cubic-bezier(.32,.72,0,1)` transition; that was vaul's). The engine writes the
|
|
10
|
+
* `--glass-drawer-t` snap-fraction scalar (0 = closed/offscreen, 1 = the fullest
|
|
11
|
+
* detent) the content root reads as its translate; this file owns the LOOK: the
|
|
12
|
+
* glass sheet surface, the rounded peek handle, the snap-stop indicator rules, and
|
|
13
|
+
* the detent-fill geometry. This file is the substrate so a consumer mounting
|
|
14
|
+
* `<Drawer mode="live-behind">` does not re-author the three detents from scratch.
|
|
10
15
|
*
|
|
11
16
|
* Token-first — every visual axis reads a custom property. Consumers retune
|
|
12
17
|
* the sheet by overriding the rungs below, never by editing this file.
|
|
13
18
|
*/
|
|
14
19
|
|
|
20
|
+
/* The snap-fraction scalar the house `useDrawerSnap` engine writes per frame. The
|
|
21
|
+
* content root's inline `transform` reads it (DrawerContent.vue) — typed so the
|
|
22
|
+
* default (1 = fully open) keeps a no-snap content-sized sheet seated open. */
|
|
23
|
+
@property --glass-drawer-t {
|
|
24
|
+
syntax: "<number>";
|
|
25
|
+
inherits: false;
|
|
26
|
+
initial-value: 1;
|
|
27
|
+
}
|
|
28
|
+
|
|
15
29
|
:root {
|
|
16
30
|
/* Detent grammar knobs — overridable per-consumer */
|
|
17
31
|
--drawer-handle-w: 2.25rem;
|
|
18
|
-
--drawer-handle-h: 0.3125rem; /* 5px —
|
|
32
|
+
--drawer-handle-h: 0.3125rem; /* 5px — the iOS grip hit-target rhythm */
|
|
19
33
|
--drawer-handle-color: var(--muted-foreground);
|
|
20
34
|
--drawer-handle-opacity: 0.45;
|
|
21
35
|
--drawer-handle-opacity-active: 0.85;
|
|
@@ -23,14 +37,15 @@
|
|
|
23
37
|
}
|
|
24
38
|
|
|
25
39
|
/*
|
|
26
|
-
* The sheet surface.
|
|
27
|
-
* DrawerContent.vue so the glass tier + the snap transform feel live in one
|
|
40
|
+
* The sheet surface. The glass tier + the snap-translate feel live in one
|
|
28
41
|
* token-driven place. The fixed/inset/z-index layout stays here too.
|
|
29
42
|
*
|
|
30
|
-
* NOTE:
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
43
|
+
* NOTE: the snap motion is the house `useDrawerSnap` `SpringProgress` writing
|
|
44
|
+
* `--glass-drawer-t`, which the content root's inline `transform` reads (the §6
|
|
45
|
+
* doctrine — ONE motion vocabulary, no `transition: transform` curve injected on
|
|
46
|
+
* `[data-glass-drawer]`). `touch-action: none` on the handle keeps the drag gesture
|
|
47
|
+
* from scrolling the page. We layer border-radius + glass surface on top of the
|
|
48
|
+
* spring-driven translate.
|
|
34
49
|
*/
|
|
35
50
|
.glass-drawer {
|
|
36
51
|
position: fixed;
|
|
@@ -101,24 +116,26 @@
|
|
|
101
116
|
}
|
|
102
117
|
|
|
103
118
|
/*
|
|
104
|
-
* Detented (snap-point) sheets fill the viewport height.
|
|
105
|
-
* sheet by translating it
|
|
106
|
-
* so for a snap fraction to read as that
|
|
107
|
-
* top must sit at the viewport top when fully
|
|
108
|
-
*
|
|
109
|
-
*
|
|
119
|
+
* Detented (snap-point) sheets fill the viewport height. The house engine positions
|
|
120
|
+
* the sheet by translating it along its drag axis by `(1 - --glass-drawer-t) * 100%`
|
|
121
|
+
* (DrawerContent.vue's inline transform) — so for a snap fraction to read as that
|
|
122
|
+
* fraction OF THE VIEWPORT, the sheet's top must sit at the viewport top when fully
|
|
123
|
+
* open (translate 0). A `height: auto` content sheet would instead translate
|
|
124
|
+
* off-screen. The content root tags the multi-detent case via
|
|
125
|
+
* `[data-glass-drawer-snap-points=true]`; we fill height there and let the content
|
|
110
126
|
* scroll inside.
|
|
111
127
|
*/
|
|
112
|
-
.glass-drawer[data-
|
|
128
|
+
.glass-drawer[data-glass-drawer-snap-points="true"] {
|
|
113
129
|
height: 100%;
|
|
114
130
|
max-height: 100%;
|
|
115
131
|
margin-top: 0;
|
|
116
132
|
}
|
|
117
133
|
|
|
118
|
-
/*
|
|
119
|
-
Bottom is the default
|
|
120
|
-
so a top/side
|
|
121
|
-
|
|
134
|
+
/* Direction variants — the content root tags itself with the drag axis
|
|
135
|
+
(`data-glass-drawer-direction`). Bottom is the default; the others ride the same
|
|
136
|
+
surface so a top/side sheet inherits the grammar. The side-lens (left/right) is
|
|
137
|
+
the BB-2 full-slide axis — it pins to its edge + fills the cross axis. */
|
|
138
|
+
.glass-drawer[data-glass-drawer-direction="top"] {
|
|
122
139
|
bottom: auto;
|
|
123
140
|
top: 0;
|
|
124
141
|
margin-top: 0;
|
|
@@ -128,11 +145,35 @@
|
|
|
128
145
|
border-radius: 0 0 var(--radius-panel) var(--radius-panel);
|
|
129
146
|
}
|
|
130
147
|
|
|
148
|
+
.glass-drawer[data-glass-drawer-direction="left"],
|
|
149
|
+
.glass-drawer[data-glass-drawer-direction="right"] {
|
|
150
|
+
inset-inline: auto;
|
|
151
|
+
inset-block: 0;
|
|
152
|
+
height: 100%;
|
|
153
|
+
max-height: 100%;
|
|
154
|
+
width: min(24rem, 92vw);
|
|
155
|
+
margin: 0;
|
|
156
|
+
border: 1px solid var(--glass-border-overlay);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.glass-drawer[data-glass-drawer-direction="left"] {
|
|
160
|
+
left: 0;
|
|
161
|
+
border-left: 0;
|
|
162
|
+
border-radius: 0 var(--radius-panel) var(--radius-panel) 0;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.glass-drawer[data-glass-drawer-direction="right"] {
|
|
166
|
+
right: 0;
|
|
167
|
+
border-right: 0;
|
|
168
|
+
border-radius: var(--radius-panel) 0 0 var(--radius-panel);
|
|
169
|
+
}
|
|
170
|
+
|
|
131
171
|
/*
|
|
132
172
|
* Peek handle — the rounded grip at the top of the sheet. It is the visual
|
|
133
|
-
* affordance the user drags to cycle peek → half → full.
|
|
134
|
-
* the
|
|
135
|
-
*
|
|
173
|
+
* affordance the user drags to cycle peek → half → full. The house snap engine
|
|
174
|
+
* (`useDrawerSnap`) binds the pointer-drag gesture directly on this handle (the
|
|
175
|
+
* `[data-glass-drawer-handle]` element) and flags it `[data-dragging]` while a drag
|
|
176
|
+
* is in flight, so the grip intensifies "live" during the gesture.
|
|
136
177
|
*/
|
|
137
178
|
.glass-drawer-handle {
|
|
138
179
|
flex-shrink: 0;
|
|
@@ -154,10 +195,11 @@
|
|
|
154
195
|
width var(--duration-fast) var(--ease-out);
|
|
155
196
|
}
|
|
156
197
|
|
|
157
|
-
/* While the sheet is being dragged
|
|
158
|
-
so the affordance reads as "live".
|
|
159
|
-
|
|
160
|
-
|
|
198
|
+
/* While the sheet is being dragged the house engine flags the handle
|
|
199
|
+
`[data-dragging]`; intensify the grip so the affordance reads as "live".
|
|
200
|
+
`:active` covers the pointer-held case + `[data-dragging]` covers the captured
|
|
201
|
+
drag; the hover lift is the rest affordance. */
|
|
202
|
+
.glass-drawer-handle[data-dragging] .glass-drawer-grip,
|
|
161
203
|
.glass-drawer-handle:active .glass-drawer-grip,
|
|
162
204
|
.glass-drawer:hover .glass-drawer-grip {
|
|
163
205
|
opacity: var(--drawer-handle-opacity-active);
|
|
@@ -170,7 +212,8 @@
|
|
|
170
212
|
* `.glass-drawer-snap-rule` to a separator element inside the sheet; it reads as
|
|
171
213
|
* the detent boundary line without competing with the content. This is the
|
|
172
214
|
* "snap-stop visual indicator" the spec asks for, expressed as an opt-in class
|
|
173
|
-
* (the detents themselves are positional, owned by
|
|
215
|
+
* (the detents themselves are positional, owned by the house snap engine; the
|
|
216
|
+
* RULE is the look).
|
|
174
217
|
*/
|
|
175
218
|
.glass-drawer-snap-rule {
|
|
176
219
|
height: 1px;
|
|
@@ -179,8 +222,11 @@
|
|
|
179
222
|
background-color: var(--drawer-snap-rule-color);
|
|
180
223
|
}
|
|
181
224
|
|
|
182
|
-
/* Reduced-motion —
|
|
183
|
-
|
|
225
|
+
/* Reduced-motion — the house `SpringProgress` snaps the detent deterministically
|
|
226
|
+
under `prefers-reduced-motion: reduce` (its `respectReducedMotion` jumps the
|
|
227
|
+
`--glass-drawer-t` scalar to target in one frame, zero motion frames); here we
|
|
228
|
+
only suppress the grip's affordance animation so the handle does not pulse for
|
|
229
|
+
PRM users. */
|
|
184
230
|
@media (prefers-reduced-motion: reduce) {
|
|
185
231
|
.glass-drawer-grip {
|
|
186
232
|
transition: none;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/* glass/accent-tone.css
|
|
2
|
+
BC.W-ACCENT-TONE — the contrast-floored 3-channel tonal-accent register.
|
|
3
|
+
|
|
4
|
+
ONE `--tone` (a complete `<color>`, default `var(--primary)`) → a coherent,
|
|
5
|
+
contrast-SAFE four-channel tonal set:
|
|
6
|
+
|
|
7
|
+
--accent-fill idle FILL — faint but FLOORED (≥3:1 at rest, the load-bearing
|
|
8
|
+
new behavior fourier named: "not just hover/active").
|
|
9
|
+
--accent-band active BAND — the bolder selected fill.
|
|
10
|
+
--accent-edge active EDGE — the active rim hairline.
|
|
11
|
+
--accent-ink label INK — the contrast-SAFE label colour ON the band, written
|
|
12
|
+
by useAccentTone (the JS half) via value.js
|
|
13
|
+
safeAccentColor; the CSS fallback is the warm ink.
|
|
14
|
+
|
|
15
|
+
The mix space is `in oklab` (the perceptual glass-tint family, W55/W-NO-GRAY) —
|
|
16
|
+
NOT `in srgb` (the `--surface-tint-*` brand-overlay fence, AW.W26). This is the
|
|
17
|
+
CONTROL tonal-FILL register (the plate background + the contrast-safe ink), a
|
|
18
|
+
DISTINCT seam from the BB `--glass-accent` glass-RIM axis (decoration on a glass
|
|
19
|
+
plate) — the two COMPOSE on a chip that is both a glass surface and a tonal
|
|
20
|
+
control (the rim from `--glass-accent`, the fill from `--accent-tone`); they
|
|
21
|
+
never fork, never write each other's channels.
|
|
22
|
+
|
|
23
|
+
The strength MAGNITUDES are TOKENS a `:root`/scope override retunes (NOT props —
|
|
24
|
+
the no-over-prop fence, component-customizability §5): `--accent-fill-strength`
|
|
25
|
+
(idle, the ~6-8% fourier names) / `--accent-band-strength` (active) /
|
|
26
|
+
`--accent-edge-strength` (rim). The idle floor is the strength default — the
|
|
27
|
+
8% over the warm-cream `--card` clears ≥3:1; proof:accent-tone A4 measures the
|
|
28
|
+
resolved idle fill against the surface (a strength that drops it below 3:1 reds).
|
|
29
|
+
|
|
30
|
+
@import-ed by glass.css in cascade order IMMEDIATELY AFTER ladder.css (the same
|
|
31
|
+
@layer components; this is the SOLE writer of the `--accent-*` channels, read at
|
|
32
|
+
use-time on the chip elements, so the placement is cascade-order-invariant). */
|
|
33
|
+
@layer components {
|
|
34
|
+
.accent-tone {
|
|
35
|
+
/* `--surface` is an OPTIONAL consumer-retarget hook (NOT a declared HEAD
|
|
36
|
+
token) — a consumer sets it on the scope to point the accent at a
|
|
37
|
+
non-`--card` surface; it defaults to the declared `--card` so the recipe
|
|
38
|
+
resolves at HEAD with zero consumer wiring. */
|
|
39
|
+
--accent-fill-strength: 8%;
|
|
40
|
+
--accent-band-strength: 18%;
|
|
41
|
+
--accent-edge-strength: 55%;
|
|
42
|
+
|
|
43
|
+
/* idle: faint but FLOORED — the resting tint stays ≥3:1 by the strength
|
|
44
|
+
floor + the perceptual `in oklab` mix (the glass-tint family). */
|
|
45
|
+
--accent-fill: color-mix(
|
|
46
|
+
in oklab,
|
|
47
|
+
var(--surface, var(--card)),
|
|
48
|
+
var(--tone, var(--primary)) var(--accent-fill-strength)
|
|
49
|
+
);
|
|
50
|
+
--accent-band: color-mix(
|
|
51
|
+
in oklab,
|
|
52
|
+
var(--surface, var(--card)),
|
|
53
|
+
var(--tone, var(--primary)) var(--accent-band-strength)
|
|
54
|
+
);
|
|
55
|
+
--accent-edge: color-mix(
|
|
56
|
+
in oklab,
|
|
57
|
+
transparent,
|
|
58
|
+
var(--tone, var(--primary)) var(--accent-edge-strength)
|
|
59
|
+
);
|
|
60
|
+
/* ink is the contrast-SAFE label colour ON the active band — written by
|
|
61
|
+
useAccentTone (the JS half) via safeAccentColor onto
|
|
62
|
+
`--accent-ink-resolved`; the CSS fallback is the warm ink (CSS cannot
|
|
63
|
+
call value.js at the token tier). */
|
|
64
|
+
--accent-ink: var(--accent-ink-resolved, var(--foreground));
|
|
65
|
+
}
|
|
66
|
+
}
|