@mkbabb/glass-ui 4.0.0 → 4.0.1
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-CW7a0m8M.js +253 -0
- package/dist/{CommandShortcut-DdtWXxOK.js → CommandShortcut-DvZNQ_HF.js} +4 -4
- package/dist/ConfiguratorRow-BR4l-ixA.js +143 -0
- package/dist/{ContextMenuContent-ON3x7cuk.js → ContextMenuContent-uWnVxDab.js} +1 -1
- package/dist/{ContextMenuSubContent-B0Vs6atR.js → ContextMenuSubContent-xol4sD2q.js} +32 -37
- package/dist/{DataTable-C464Zbqd.js → DataTable-CuKwF7wr.js} +4 -4
- package/dist/{DialogContent-DDE6pQBU.js → DialogContent-DcKK8k9i.js} +5 -5
- package/dist/{DialogFooter-8eZbdmPc.js → DialogFooter-BZNX5aVr.js} +3 -3
- package/dist/{FadingScroll-DwNnvKMs.js → FadingScroll-DI6hQhT9.js} +1 -1
- package/dist/{HoverCardContent-DkMaQzH5.js → HoverCardContent-b2uaAMRR.js} +1 -1
- package/dist/{HoverPopover-Dpzwvc4t.js → HoverPopover-CbqbNwgU.js} +2 -2
- package/dist/{IconChip-BDw1j5mu.js → IconChip-BTD-nay5.js} +3 -2
- package/dist/{IconTooltip-DSjasZIt.js → IconTooltip-Bl8gFZ8d.js} +1 -1
- package/dist/{Input-DVG_J0ne.js → Input-h9v5LeXf.js} +1 -1
- package/dist/{MetricBadge-BpC0R_Ec.js → MetricBadge-RHdBP72w.js} +1 -1
- package/dist/Notification-VUwexFUf.js +43 -0
- package/dist/NumberFieldContent-Cq7EzX-U.js +138 -0
- package/dist/{PopoverContent-BTorlp--.js → PopoverContent-DL7E6vJP.js} +4 -4
- package/dist/{Progress-hAT4gqGH.js → Progress-DctG61iZ.js} +4 -4
- package/dist/{ScrollingText-CUVFTWk2.js → ScrollingText-yOpBzFYq.js} +2 -2
- package/dist/{SelectScrollDownButton-C1jb3b3K.js → SelectScrollDownButton-CrA8F0iV.js} +18 -19
- package/dist/Toaster-Bw4xR8xV.js +274 -0
- package/dist/{ToggleGroupItem-Dzk9hWsF.js → ToggleGroupItem-pEM9vIhs.js} +50 -37
- package/dist/{TooltipProvider-B3MkB_8P.js → TooltipProvider-rzvnXz60.js} +1 -1
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +8 -3
- package/dist/api/types-extra.d.ts +6 -0
- package/dist/aurora.js +885 -242
- package/dist/badge.js +1 -1
- package/dist/border-progress.d.ts +1 -0
- package/dist/border-progress.js +106 -0
- package/dist/{button-BNDWhAZb.js → button-DYCUa-tH.js} +71 -26
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -2
- package/dist/card.js +2 -2
- package/dist/carousel.js +93 -110
- package/dist/collapsible.js +1 -1
- package/dist/command.js +1 -1
- package/dist/compile-CQEFRTmx.js +19 -0
- 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/runtime.d.ts +19 -0
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +51 -0
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +29 -0
- package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +2 -2
- package/dist/components/custom/aurora/constants/renderMode.d.ts +63 -12
- 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/useBorderSpectrum.d.ts +22 -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/concentric/Concentric.vue.d.ts +39 -0
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +11 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
- package/dist/components/custom/concentric/composables/ringField.d.ts +44 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +13 -0
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
- package/dist/components/custom/concentric/constants.d.ts +43 -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/dock/DockIconButton.vue.d.ts +13 -4
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +75 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +38 -0
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +41 -0
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +24 -0
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +34 -0
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -0
- package/dist/components/custom/dot-flow-field/constants.d.ts +48 -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 +20 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.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 +75 -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/fourier-field/FourierField.vue.d.ts +12 -2
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +39 -0
- package/dist/components/custom/fourier-field/constants.d.ts +7 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +4 -2
- 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/shaders/metaball.wgsl.d.ts +1 -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/metric-stack/MetricStack.vue.d.ts +1 -1
- 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/tabs/SegmentedTabs.vue.d.ts +10 -0
- package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +1 -1
- package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
- 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 +34 -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 +2 -0
- 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/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/focus-scope/FocusScope.vue.d.ts +20 -0
- package/dist/components/ui/focus-scope/index.d.ts +2 -0
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
- package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
- 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/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/vSpecular.d.ts +2 -0
- package/dist/composables/glass/webgl/shaders/flow.glsl.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 +54 -0
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +84 -0
- package/dist/composables/motion/core/index.d.ts +1 -0
- package/dist/composables/motion/index.d.ts +4 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +59 -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/concentric.d.ts +1 -0
- package/dist/concentric.js +562 -0
- package/dist/configurator.js +3 -2
- package/dist/confirm-dialog.js +22 -24
- package/dist/constellation.js +11 -11
- package/dist/context-menu.js +3 -3
- package/dist/controls.js +1 -1
- package/dist/createCanvasLifecycle-CHD5XrDW.js +82 -0
- package/dist/data-table.js +1 -1
- package/dist/dialog.js +2 -2
- package/dist/dock.js +564 -457
- 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 +604 -0
- package/dist/drawer.d.ts +1 -0
- package/dist/drawer.js +380 -0
- package/dist/{dropdown-menu-BJ7E9js_.js → dropdown-menu-CofSZuk8.js} +14 -15
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.d.ts +1 -0
- package/dist/easing.js +463 -0
- package/dist/expandable-container.js +7 -4
- package/dist/fading-scroll.js +1 -1
- package/dist/focus-scope.d.ts +1 -0
- package/dist/focus-scope.js +23 -0
- package/dist/forms.js +7 -7
- package/dist/fourier-field.js +128 -116
- 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 +149 -341
- package/dist/goo-blob.js +830 -224
- 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 +1 -1
- package/dist/instrument-chassis.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +6 -6
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +1 -1
- package/dist/metric-stack.js +4 -8
- package/dist/motion-core.js +36 -36
- package/dist/motion-curves.js +1 -1
- package/dist/motion.js +157 -55
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +1 -1
- package/dist/paper-backdrop.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/{compile-EXXzEr1q.js → procedural-color.glsl-CIFsJhwI.js} +1 -155
- package/dist/procedural-color.wgsl-CToRHugY.js +224 -0
- package/dist/progress.js +1 -1
- package/dist/pulse.js +1 -1
- package/dist/reactive.js +2 -2
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +9 -11
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/{sheet-CquRYOAw.js → sheet-tZMg0E0w.js} +5 -5
- package/dist/sheet.js +1 -1
- package/dist/{slider-DQ95MET2.js → slider-DVb4HXU-.js} +3 -3
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +3 -3
- package/dist/spa-view.d.ts +1 -0
- package/dist/spa-view.js +46 -0
- package/dist/styles/animations.css +33 -9
- package/dist/styles/border-progress.css +109 -0
- package/dist/styles/cards.css +76 -0
- package/dist/styles/components.css +1 -1
- package/dist/styles/critical-partition.mjs +140 -0
- package/dist/styles/critical.css +12 -0
- package/dist/styles/deferred.css +31 -0
- package/dist/styles/dock/density.css +45 -0
- package/dist/styles/dock/layers.css +54 -30
- package/dist/styles/dock/morph.css +124 -7
- package/dist/styles/dock/overflow.css +16 -2
- package/dist/styles/dock/shell.css +54 -16
- package/dist/styles/dock.css +32 -0
- package/dist/styles/drawer.css +81 -35
- package/dist/styles/glass/deep.css +44 -0
- package/dist/styles/glass/ladder.css +87 -31
- package/dist/styles/glass/material.css +78 -15
- package/dist/styles/glass/reveal.css +136 -0
- package/dist/styles/glass/rim.css +100 -0
- package/dist/styles/glass/surfaces.css +101 -3
- package/dist/styles/glass-refract.css +96 -44
- package/dist/styles/glass-specular-track.css +7 -0
- package/dist/styles/glass.css +3 -0
- package/dist/styles/hover-popover.css +7 -6
- package/dist/styles/icon-chip.css +77 -15
- package/dist/styles/index.css +21 -9
- package/dist/styles/instrument-chassis.css +66 -3
- package/dist/styles/scroll-choreography.css +300 -0
- package/dist/styles/segmented-tabs.css +31 -0
- package/dist/styles/theme/bridges.css +11 -0
- package/dist/styles/theme/literals.css +11 -2
- package/dist/styles/theme/radius.css +6 -1
- package/dist/styles/tokens/dark-arm.css +98 -26
- package/dist/styles/tokens/glass-deep.css +75 -0
- package/dist/styles/tokens/glass-fx.css +333 -0
- package/dist/styles/tokens/glass.css +39 -319
- package/dist/styles/tokens/light-dark.css +15 -2
- package/dist/styles/tokens/offsets.css +116 -0
- package/dist/styles/tokens/on-glass-fg.css +39 -0
- package/dist/styles/tokens/property-regs.css +127 -0
- package/dist/styles/tokens/scale-paper.css +117 -89
- package/dist/styles/tokens/scheme-motion.css +70 -32
- package/dist/styles/tokens/scroll-tokens.css +123 -0
- package/dist/styles/tokens/{offsets-sizing.css → sizing.css} +37 -100
- package/dist/styles/tokens.css +9 -3
- package/dist/styles/typography/semantic.css +8 -8
- package/dist/styles/typography/utilities.css +22 -7
- package/dist/styles/utilities/animate.css +27 -24
- package/dist/styles/utilities/base-misc.css +255 -0
- package/dist/styles/utilities/base.css +47 -261
- package/dist/styles/utilities/btn.css +3 -1
- package/dist/styles/utilities/metal.css +189 -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-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/useCanvas2D-B8w_E3Rr.js +83 -0
- package/dist/useConfiguratorState-DNlOh6c8.js +161 -0
- package/dist/useDragMorph-DgxnsVJz.js +102 -0
- package/dist/useLiquidPress-kfb4KX79.js +39 -0
- package/dist/usePointerVelocityField-JbRd5CrM.js +137 -0
- package/dist/useSpring-C0jyvEJB.js +40 -0
- package/dist/useSpringMount-q1amq1SJ.js +71 -0
- package/dist/useSpringPress-BsqPr7FJ.js +34 -0
- package/dist/{useTouchGate-28Tk2-t2.js → useTouchGate-CBZTD4SD.js} +1 -1
- package/dist/vSpecular-CQFmLNzA.js +68 -0
- package/dist/vendor-CKmzio-i.js +226 -0
- package/dist/watercolor-dot.js +2 -2
- package/package.json +126 -22
- package/src/styles/animations.css +33 -9
- package/src/styles/border-progress.css +109 -0
- package/src/styles/cards.css +76 -0
- package/src/styles/critical-partition.mjs +140 -0
- package/src/styles/dock/density.css +45 -0
- package/src/styles/dock/layers.css +54 -30
- package/src/styles/dock/morph.css +124 -7
- package/src/styles/dock/overflow.css +16 -2
- package/src/styles/dock/shell.css +54 -16
- package/src/styles/dock.css +32 -0
- package/src/styles/drawer.css +81 -35
- package/src/styles/glass/deep.css +44 -0
- package/src/styles/glass/ladder.css +87 -31
- package/src/styles/glass/material.css +78 -15
- package/src/styles/glass/reveal.css +136 -0
- package/src/styles/glass/rim.css +100 -0
- package/src/styles/glass/surfaces.css +101 -3
- package/src/styles/glass-refract.css +96 -44
- package/src/styles/glass-specular-track.css +7 -0
- package/src/styles/glass.css +3 -0
- package/src/styles/hover-popover.css +7 -6
- package/src/styles/icon-chip.css +77 -15
- package/src/styles/index.css +12 -0
- package/src/styles/instrument-chassis.css +66 -3
- package/src/styles/scroll-choreography.css +300 -0
- package/src/styles/segmented-tabs.css +31 -0
- package/src/styles/theme/bridges.css +11 -0
- package/src/styles/theme/literals.css +11 -2
- package/src/styles/theme/radius.css +6 -1
- package/src/styles/tokens/dark-arm.css +98 -26
- package/src/styles/tokens/glass-deep.css +75 -0
- package/src/styles/tokens/glass-fx.css +333 -0
- package/src/styles/tokens/glass.css +39 -319
- package/src/styles/tokens/light-dark.css +15 -2
- package/src/styles/tokens/offsets.css +116 -0
- package/src/styles/tokens/on-glass-fg.css +39 -0
- package/src/styles/tokens/property-regs.css +127 -0
- package/src/styles/tokens/scale-paper.css +117 -89
- package/src/styles/tokens/scheme-motion.css +70 -32
- package/src/styles/tokens/scroll-tokens.css +123 -0
- package/src/styles/tokens/{offsets-sizing.css → sizing.css} +37 -100
- package/src/styles/tokens.css +9 -3
- package/src/styles/typography/semantic.css +8 -8
- package/src/styles/typography/utilities.css +22 -7
- package/src/styles/utilities/animate.css +27 -24
- package/src/styles/utilities/base-misc.css +255 -0
- package/src/styles/utilities/base.css +47 -261
- package/src/styles/utilities/btn.css +3 -1
- package/src/styles/utilities/metal.css +189 -0
- package/src/styles/utilities.css +14 -7
- package/dist/CardAction-XH4YBVEK.js +0 -158
- package/dist/Notification-DKjKsQq8.js +0 -100
- package/dist/NumberFieldContent-1VtwDSgf.js +0 -145
- package/dist/Toaster-Bm_HQSpc.js +0 -263
- 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/createLucideIcon-DydS2qgk.js +0 -43
- package/dist/minimize-2-BV31Ob_h.js +0 -38
- package/dist/search-BSGrf2Sk.js +0 -12
- package/dist/useCanvas2D-ClrQuZtp.js +0 -96
- package/dist/useConfiguratorState-kiIlun8I.js +0 -303
- 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/dist/{CollapsibleContent-C_s6fG7r.js → CollapsibleContent-68dEXIAl.js} +0 -0
- /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-Bx0F_q5g.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-Vf3tlpvd.js} +0 -0
- /package/dist/{SelectGroup-Dcczq44n.js → SelectGroup-DwwjicPY.js} +0 -0
- /package/dist/{SelectSeparator-DK2y1Bun.js → SelectSeparator-DXswVdRz.js} +0 -0
- /package/dist/{Separator-BArl4OaB.js → Separator-pKF0oA4M.js} +0 -0
- /package/dist/{Switch-Dr--uLGH.js → Switch-CwYNf8bo.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/{createContext-B2RaZ-b8.js → createContext-CpBNTRMI.js} +0 -0
- /package/dist/{math-DeuJwLFx.js → math-BINYmg5z.js} +0 -0
- /package/dist/{menuItemVariants-DWRQXBxJ.js → menuItemVariants-D8VNHq22.js} +0 -0
- /package/dist/{prng-Cg22zv8g.js → prng-Za0Rmgag.js} +0 -0
- /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CUyHr5Uu.js} +0 -0
- /package/dist/{springPresets-WXaLbu8u.js → springPresets-CFQGQfdl.js} +0 -0
- /package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-BfUq2bUM.js} +0 -0
- /package/dist/{useInterval-CNdua40W.js → useInterval-CvK1mL92.js} +0 -0
- /package/dist/{useLiquidFlex-C12hXwOZ.js → useLiquidFlex-mZPMiNXh.js} +0 -0
- /package/dist/{useRAFLoop-CdwJ7284.js → useRAFLoop-UYa4zoiN.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/{useSortable-BVqlJRBR.js → useSortable-DHjtZSEd.js} +0 -0
- /package/dist/{useSurfaceAxis-CMnF2zHb.js → useSurfaceAxis-g0NloYEF.js} +0 -0
- /package/dist/{useTextHighlight-NmBM5V_4.js → useTextHighlight-CWEi25hf.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
- /package/dist/{vReveal-D9k0jADx.js → vReveal-Czsb7zQC.js} +0 -0
|
@@ -34,24 +34,55 @@
|
|
|
34
34
|
during the morph, so the read resolves the correct in-flight blend (collapse
|
|
35
35
|
1→0 via `1 - t`; expand 0→1 via `t`); on settle `[data-morphing]` clears and
|
|
36
36
|
expand-t snaps to the exact class endpoint. */
|
|
37
|
-
.
|
|
38
|
-
|
|
37
|
+
/* BB.W-DOCK-MORPH-FAMILY (f) — the `--dock-expand-t` directional derivation is
|
|
38
|
+
ORIENTATION-AGNOSTIC. The derivation reads the per-swap morph scalar + the
|
|
39
|
+
synchronously-set `.expanded`/`.collapsed` class — there is NO axis in this
|
|
40
|
+
blend (a `t`-vs-`1-t` directional read), so the `:not(.vertical)` qualifier is
|
|
41
|
+
DROPPED here. A collapsing VERTICAL dock now derives the same in-flight
|
|
42
|
+
expand-t (the box-size arm `layers.css` already morphs `block-size` on
|
|
43
|
+
`--dock-morph-t`; this gives the chrome the matching directional scalar). The
|
|
44
|
+
earlier "a vertical rail is ALWAYS-EXPANDED" assumption is retired since
|
|
45
|
+
vertical-collapse shipped — `alwaysExpanded` defaults false (GlassDock.vue),
|
|
46
|
+
so a genuinely-collapsing vertical dock gets its chrome on the ONE clock. */
|
|
47
|
+
.glass-dock.expanded,
|
|
48
|
+
.glass-dock.always-expanded {
|
|
39
49
|
--dock-expand-t: 1;
|
|
40
50
|
}
|
|
41
51
|
|
|
42
|
-
.glass-dock
|
|
52
|
+
.glass-dock.collapsed {
|
|
43
53
|
--dock-expand-t: 0;
|
|
44
54
|
}
|
|
45
55
|
|
|
46
|
-
.glass-dock
|
|
47
|
-
.glass-dock
|
|
56
|
+
.glass-dock.expanded[data-morphing],
|
|
57
|
+
.glass-dock.always-expanded[data-morphing] {
|
|
48
58
|
--dock-expand-t: var(--dock-morph-t);
|
|
49
59
|
}
|
|
50
60
|
|
|
51
|
-
.glass-dock
|
|
61
|
+
.glass-dock.collapsed[data-morphing] {
|
|
52
62
|
--dock-expand-t: calc(1 - var(--dock-morph-t));
|
|
53
63
|
}
|
|
54
64
|
|
|
65
|
+
/* BB.W-LIQUID-REVEAL — the dock-expand LIQUID-OPEN bloom beat (DOCK-EXPAND-CONSUMER).
|
|
66
|
+
The dock pill BLOOMS open from its collapsed circle: a coupled `filter` blur-
|
|
67
|
+
settle decongest reading the SAME `--dock-expand-t` directional scalar the chrome
|
|
68
|
+
interp rides (the W-DOCK-MORPH-FAMILY morph mechanism is UNTOUCHED — this is a
|
|
69
|
+
SURFACE arm, NOT a morph-axis layout edit). Collapsed (`--dock-expand-t` 0) the
|
|
70
|
+
dock content reads a faint `blur(--dock-reveal-blur)` decongest; as it expands
|
|
71
|
+
(`--dock-expand-t` → 1) the blur SETTLES to 0 so the chrome clarifies AS the pill
|
|
72
|
+
blooms — the iOS "light-bending modulation" arrival on the dock's own pixels
|
|
73
|
+
(`filter`, NOT `backdrop-filter`, so the resting glass-tier plate blur the dock
|
|
74
|
+
carries is never clobbered). Compositor-safe (a `filter` radius interp, never a
|
|
75
|
+
layout property — the proof:no-layout-animation floor). The beat rides the ONE
|
|
76
|
+
`--dock-expand-t` scalar, so it tracks the `DOCK_SPRING` clock with NO second
|
|
77
|
+
clock + NO re-added CSS transition (the morph already animates `--dock-morph-t`).
|
|
78
|
+
PRM: the `--dock-reveal-blur` knob is zeroed under reduce (the carve below). */
|
|
79
|
+
.glass-dock {
|
|
80
|
+
--dock-reveal-blur: 3px;
|
|
81
|
+
filter: blur(
|
|
82
|
+
calc(var(--dock-reveal-blur) * (1 - var(--dock-expand-t, 1)))
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
|
|
55
86
|
/* The morphing root chrome — background / border-color interpolate between the
|
|
56
87
|
collapsed and expanded endpoints on the ONE `--dock-expand-t` scalar. Scoped
|
|
57
88
|
to the horizontal dock (`:not(.vertical)`) — the inline-axis aperture morph;
|
|
@@ -98,6 +129,43 @@
|
|
|
98
129
|
);
|
|
99
130
|
}
|
|
100
131
|
|
|
132
|
+
/* BB.W-DOCK-MORPH-FAMILY (f) — the VERTICAL chrome-interp un-gate (BB-1). The
|
|
133
|
+
bg/border interp is AXIS-INVARIANT (a color mix reads the scalar with no
|
|
134
|
+
axis), so the vertical dock interpolates its plate between the SAME
|
|
135
|
+
collapsed↔expanded endpoints on the SAME `--dock-expand-t` scalar the
|
|
136
|
+
horizontal block reads — the ONE `DOCK_SPRING` clock, no second clock, no
|
|
137
|
+
re-added CSS transition. This PARALLEL `.vertical` block (specificity 0,2,0,
|
|
138
|
+
source-order AFTER the shell.css static `.glass-dock.vertical` plate so it
|
|
139
|
+
wins at equal specificity) is the inverse-axis twin of the horizontal block
|
|
140
|
+
above — the box-size morph already rides `block-size` on `layers.css`'s
|
|
141
|
+
`--dock-morph-t`; this gives the plate chrome the matching directional blend
|
|
142
|
+
so the vertical collapse↔expand no longer SNAPS its bg/border discretely. At
|
|
143
|
+
the rest endpoints `--dock-expand-t` resolves to the class value (0 collapsed
|
|
144
|
+
/ 1 expanded), so the resting look is exact — byte-equivalent to the shell.css
|
|
145
|
+
static plate it supersedes during the morph. */
|
|
146
|
+
.glass-dock.vertical {
|
|
147
|
+
background: color-mix(
|
|
148
|
+
in srgb,
|
|
149
|
+
color-mix(
|
|
150
|
+
in oklab,
|
|
151
|
+
var(--glass-bg-dock, var(--glass-bg-wash)),
|
|
152
|
+
var(--glass-tint-source) var(--glass-tint-strength)
|
|
153
|
+
)
|
|
154
|
+
calc(var(--dock-expand-t, 1) * 100%),
|
|
155
|
+
color-mix(
|
|
156
|
+
in oklab,
|
|
157
|
+
var(--glass-bg-wash),
|
|
158
|
+
var(--glass-tint-source) var(--glass-tint-strength)
|
|
159
|
+
)
|
|
160
|
+
);
|
|
161
|
+
border-color: color-mix(
|
|
162
|
+
in srgb,
|
|
163
|
+
var(--glass-border-dock, var(--glass-border-wash))
|
|
164
|
+
calc(var(--dock-expand-t, 1) * 100%),
|
|
165
|
+
var(--glass-border-floating)
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
|
|
101
169
|
/* The padding morph is split out + scoped `:not(.dock-overflow-wrap)` so the
|
|
102
170
|
wrap variant's own padding rules (W04 territory — `.dock-overflow-wrap` +
|
|
103
171
|
its `@media` snap-back) are NOT clobbered by this higher-specificity longhand.
|
|
@@ -142,6 +210,35 @@
|
|
|
142
210
|
);
|
|
143
211
|
}
|
|
144
212
|
|
|
213
|
+
/* BB.W-DOCK-MORPH-FAMILY (f) — the VERTICAL padding interp is the AXIS-INVERSE
|
|
214
|
+
of the horizontal layout-isolation contract above. The vertical collapse↔
|
|
215
|
+
expand is a BLOCK-HEIGHT aperture (the box-size arm morphs `block-size`,
|
|
216
|
+
layers.css), so the CROSS (inline) axis MUST be invariant across the morph —
|
|
217
|
+
else the dock's outer WIDTH changes on collapse and reflows its horizontal
|
|
218
|
+
siblings (the §1 contract, mirrored onto the vertical axis). So `padding-
|
|
219
|
+
inline` is PINNED at the expanded inline value in BOTH states, and ONLY
|
|
220
|
+
`padding-block` morphs to tighten the collapsed pill on the morph axis. The
|
|
221
|
+
collapsed block-pad endpoint is the EXPANDED inline pad (max'd with the
|
|
222
|
+
consumer `--dock-collapsed-padding` handle) so the height-pinned-cross collapsed
|
|
223
|
+
pill is SYMMETRIC. Specificity 0,2,0 source-order after shell.css's static
|
|
224
|
+
`.glass-dock.vertical` padding so this wins at equal specificity; at the rest
|
|
225
|
+
endpoints `--dock-expand-t` is the class value so the look is exact. Scoped to
|
|
226
|
+
the NON-scroll/non-wrap vertical dock. */
|
|
227
|
+
.glass-dock.vertical:not(.dock-overflow-wrap) {
|
|
228
|
+
--dock-pad-collapsed: max(
|
|
229
|
+
var(--dock-padding-inline, 0.5rem),
|
|
230
|
+
var(--dock-collapsed-padding, 0px)
|
|
231
|
+
);
|
|
232
|
+
/* inline padding is INVARIANT — the cross axis, pinned both states so the
|
|
233
|
+
outer inline-size never changes → 0px horizontal sibling reflow. */
|
|
234
|
+
padding-inline: var(--dock-padding-inline, 0.5rem);
|
|
235
|
+
padding-block: calc(
|
|
236
|
+
var(--dock-pad-collapsed) +
|
|
237
|
+
(var(--dock-padding-block, 0.375rem) - var(--dock-pad-collapsed)) *
|
|
238
|
+
var(--dock-expand-t, 1)
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
|
|
145
242
|
/* AX.W01 — the collapsed padding / background / border-color are RETIRED here
|
|
146
243
|
(the `--dock-expand-t` morph block above is the single authority for those
|
|
147
244
|
three axes — they interpolate, never snap). `.collapsed` keeps only its
|
|
@@ -330,7 +427,15 @@
|
|
|
330
427
|
ink, which clears ~10:1). */
|
|
331
428
|
:where(.glass-dock) {
|
|
332
429
|
--glass-tint-source: var(--glass-tint-ink);
|
|
333
|
-
|
|
430
|
+
/* BC.W-AUDIT — the scope-7 completion: the dock JOINS the content-tier
|
|
431
|
+
sub-perceptual FLOOR by default (translucent warm liquid glass, NOT a grey
|
|
432
|
+
slab), and the FULL AA darken engages ONLY under the genuine bright signal —
|
|
433
|
+
the `@container --glass-backdrop: light` bucket below, written by the dock's
|
|
434
|
+
own sampled-luminance observer over a bright backdrop (aurora/DockStage) OR a
|
|
435
|
+
consumer's explicit bucket. The prior unconditional AA (20% ink-ward) darkened
|
|
436
|
+
the dock to grey over EVERY calm light page — the iOS-27 dynamic model done
|
|
437
|
+
wrong (darken-always vs darken-when-bright). The full glass rebuild is BC. */
|
|
438
|
+
--glass-tint-strength: var(--glass-tint-strength-floor);
|
|
334
439
|
--dock-fg-on-aurora: var(--glass-tint-ink);
|
|
335
440
|
--muted-foreground: var(--foreground);
|
|
336
441
|
}
|
|
@@ -372,3 +477,15 @@
|
|
|
372
477
|
}
|
|
373
478
|
}
|
|
374
479
|
}
|
|
480
|
+
|
|
481
|
+
/* BB.W-LIQUID-REVEAL — the dock-expand bloom beat's blur-settle is OFF under
|
|
482
|
+
`prefers-reduced-motion: reduce` (the vestibular floor). The morph itself snaps
|
|
483
|
+
instantly under PRM (the `DOCK_SPRING` `respectReducedMotion` in
|
|
484
|
+
dockMorphContext.ts), and zeroing `--dock-reveal-blur` here removes the resting
|
|
485
|
+
collapsed-pill decongest blur too — a reduced-motion dock reads crisp at every
|
|
486
|
+
state, no in-between blur frames. */
|
|
487
|
+
@media (prefers-reduced-motion: reduce) {
|
|
488
|
+
.glass-dock {
|
|
489
|
+
--dock-reveal-blur: 0px;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
@@ -246,8 +246,22 @@
|
|
|
246
246
|
--dock-collapsed-padding / --dock-layer-tab-size paint at the global 1.5×
|
|
247
247
|
while the density box paints at 1.17× — a desync the R5-2 register would
|
|
248
248
|
introduce). The formulas are IDENTICAL to their :root definitions; only
|
|
249
|
-
the resolution element moves so the lifted --dock-scale flows in.
|
|
250
|
-
|
|
249
|
+
the resolution element moves so the lifted --dock-scale flows in.
|
|
250
|
+
BB.W-PERF-PRODUCER A′-6 — --dock-icon-glyph is now a RATIO of the
|
|
251
|
+
density-painted --dock-layer-height (offsets-sizing.css + the density.css
|
|
252
|
+
[data-density] re-resolve). This coarse block @imports AFTER density.css
|
|
253
|
+
in the SAME @layer at the SAME specificity, so its --dock-icon-glyph
|
|
254
|
+
source-order-WINS on coarse pointers — it MUST carry the density-aware
|
|
255
|
+
formula too (the flat `1.25rem * --dock-scale` here would re-freeze the
|
|
256
|
+
glyph at the flat rem on touch, re-introducing the D5-1 defect the wave
|
|
257
|
+
fixes). --dock-layer-height re-resolves transitively at the lifted
|
|
258
|
+
--dock-scale (re-declared above), so the glyph tracks both the density
|
|
259
|
+
box AND the coarse register. Formula identical to the :root + density
|
|
260
|
+
re-resolve; only the resolution element moves. */
|
|
261
|
+
--dock-icon-glyph: max(
|
|
262
|
+
calc(var(--dock-layer-height, calc(2.5rem * var(--dock-scale))) * var(--dock-icon-glyph-ratio)),
|
|
263
|
+
var(--dock-icon-glyph-floor)
|
|
264
|
+
);
|
|
251
265
|
--dock-collapsed-padding: calc(0.25rem * var(--dock-scale));
|
|
252
266
|
--dock-layer-tab-size: calc(1.75rem * var(--dock-scale));
|
|
253
267
|
/* --dock-collapsed-summary-min-size derives from --dock-layer-height (the
|
|
@@ -87,13 +87,32 @@
|
|
|
87
87
|
centered in its cell (≥1px slack/side at hover), the cell sits flush at the
|
|
88
88
|
dock content edge, and the `--dock-padding-block` (≈6px) padding holds the
|
|
89
89
|
plate ≥7px clear of the `contain: paint` border-box edge on the block axis.
|
|
90
|
-
So `
|
|
90
|
+
So the `paint` clip axis is the NON-proximate second clip box (the lane's
|
|
91
91
|
`probe-bottomdock-nocontain.png` forced-root probe proved the inner
|
|
92
|
-
scroll-port box was proximate, not this) and
|
|
93
|
-
inset + freed cross axis suffice, no containment
|
|
94
|
-
band.
|
|
95
|
-
|
|
96
|
-
|
|
92
|
+
scroll-port box was proximate, not this) and the `paint` axis is RETAINED
|
|
93
|
+
here — the inset + freed cross axis suffice, no containment LIFT on the
|
|
94
|
+
control-plate band. (BB.W-PERF-PRODUCER A′-4 widens the value to
|
|
95
|
+
`contain: layout style paint` — the restyle-scope axes ALONGSIDE the paint
|
|
96
|
+
clip box, see below — but never lifts `paint`.) The π readback
|
|
97
|
+
(W-DOCK-GEOMETRY-DELTA.md) records the live plate-inside-padding margin
|
|
98
|
+
number that binds this verdict. */
|
|
99
|
+
/* BB.W-PERF-PRODUCER A′-4 — the `--dock-morph-t` restyle-scope narrowing.
|
|
100
|
+
The per-frame morph scalar write recomputes the inheriting `calc()` group
|
|
101
|
+
across the dock subtree (dock.css's 10-selector `:where()` consumers); add
|
|
102
|
+
the `layout` + `style` containment axes so a scalar write recomputes
|
|
103
|
+
layout/style WITHIN the dock subtree, not up the document (the value.js A′-4
|
|
104
|
+
~13fps restyle-cost trace). RECONCILED with the existing axes: `paint`
|
|
105
|
+
(above, the BA.W-DOCK-GEOMETRY clip box) composes — `contain: layout style
|
|
106
|
+
paint` is the union, NEVER `size` (which `container-type: inline-size` carries
|
|
107
|
+
as `inline-size` ONLY on the OPT-IN `containerName` host below; the default
|
|
108
|
+
free-floating dock must stay shrink-to-fit, so `size`/`inline-size` is
|
|
109
|
+
DELIBERATELY excluded here — adding it would re-introduce the 3.3.0 sliver
|
|
110
|
+
regression the §99 comment documents). The morph-axis `overflow: clip`
|
|
111
|
+
(the reveal aperture) + the `.glass-dock-frame` rail-escape are UNAFFECTED:
|
|
112
|
+
`layout`/`style` containment scopes RECALC, it does not establish a paint
|
|
113
|
+
clip beyond the already-present `paint` axis. The `DOCK_SPRING` clock is
|
|
114
|
+
byte-fenced (the value.js letter) — this is restyle COST, not a re-tune. */
|
|
115
|
+
contain: layout style paint;
|
|
97
116
|
display: inline-flex;
|
|
98
117
|
align-items: center;
|
|
99
118
|
/* AW.W1 — the dock does NOT establish a default inline-size container.
|
|
@@ -273,16 +292,19 @@
|
|
|
273
292
|
shell above; the cross axis stays visible there. */
|
|
274
293
|
padding: var(--dock-padding-block, 0.375rem);
|
|
275
294
|
border-radius: var(--radius-dock);
|
|
276
|
-
/*
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
295
|
+
/* BB.W-DOCK-MORPH-FAMILY (f) — the stale "a vertical rail is ALWAYS-EXPANDED
|
|
296
|
+
(no collapse↔expand morph)" assumption is RETIRED (it was false since
|
|
297
|
+
vertical-collapse shipped: `alwaysExpanded` defaults FALSE, so a vertical
|
|
298
|
+
dock genuinely collapses its `block-size`). The vertical plate's
|
|
299
|
+
bg/border/padding/radius now MORPH on the SAME `--dock-expand-t` scalar
|
|
300
|
+
the horizontal chrome rides (the morph.css `.glass-dock.vertical` interp +
|
|
301
|
+
padding axis-inverse + the radius arm below) — the chrome follows the
|
|
302
|
+
box-size morph, no discrete snap. NO root CSS-transition on the morph-
|
|
303
|
+
chrome props is re-added (a `transition: padding/background/border-color`
|
|
304
|
+
arm is the second-clock smell the single-scalar rebuild forbids — the
|
|
305
|
+
`--dock-expand-t` interp is the single authority). KEPT: the DECORATIVE
|
|
306
|
+
hover-scale + press-squish (the individual `scale`/`transform`) and the
|
|
307
|
+
box-shadow fade — interaction polish on the rail, NOT the morph chrome. */
|
|
286
308
|
transition:
|
|
287
309
|
box-shadow var(--dock-motion-standard),
|
|
288
310
|
transform var(--dock-motion-resize),
|
|
@@ -318,6 +340,22 @@
|
|
|
318
340
|
border-radius: var(--radius-xl);
|
|
319
341
|
}
|
|
320
342
|
|
|
343
|
+
/* BB.W-DOCK-MORPH-FAMILY (f) — the VERTICAL big-dock CARD radius MORPHS on the
|
|
344
|
+
SAME `--dock-expand-t` scalar the horizontal `.shape-card` rides (the radius
|
|
345
|
+
arm of the vertical chrome un-gate; it lives in shell.css beside the horizontal
|
|
346
|
+
arm, not morph.css). `--radius-pill` at expand-t 0 (collapsed), the finite
|
|
347
|
+
`--dock-card-radius` at expand-t 1 (expanded) — the radius follows the box-size
|
|
348
|
+
block morph, no discrete snap. The static `.shape-pill`/`.shape-rounded` rest
|
|
349
|
+
radii above are the rest endpoints for those shapes; this is the card shape's
|
|
350
|
+
interpolated radius (mirroring the horizontal `:not(.vertical).shape-card`). */
|
|
351
|
+
.glass-dock.vertical.shape-card {
|
|
352
|
+
border-radius: calc(
|
|
353
|
+
var(--radius-pill) +
|
|
354
|
+
(var(--dock-card-radius) - var(--radius-pill)) *
|
|
355
|
+
var(--dock-expand-t, 1)
|
|
356
|
+
);
|
|
357
|
+
}
|
|
358
|
+
|
|
321
359
|
/* AW.W3b — horizontal-root shape rules. The `shape-*` class once bound ONLY under
|
|
322
360
|
the vertical surface; on a horizontal dock the prop silently no-op'd (the root
|
|
323
361
|
hardwired `--radius-dock` = `--radius-pill`). These rules close that
|
package/src/styles/dock.css
CHANGED
|
@@ -67,6 +67,38 @@
|
|
|
67
67
|
initial-value: 0;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
+
/* BB.W-DOCK-MORPH-FAMILY (e) — the `@property`-registered dock-scale axis. The
|
|
71
|
+
dock-scale cascade is `--dock-scale: calc(var(--ui-scale) * var(--dock-local-scale,
|
|
72
|
+
1))` (tokens/sizing.css). UNregistered, that `calc()` substitutes ONCE at `:root`
|
|
73
|
+
against the `:root` identity `--dock-local-scale: 1`, so a consumer-scope
|
|
74
|
+
`--dock-local-scale` override is INHERITED but never RE-EVALUATED — the dock keeps
|
|
75
|
+
`--dock-scale: calc(1 * 1)` and stays at the unscaled base (the 3rd recurrence of
|
|
76
|
+
the AX.W55 substitution-vs-inheritance trap; the documented-but-broken `:root`
|
|
77
|
+
preset). Registering `--dock-local-scale` as an INHERITING `@property <number>`
|
|
78
|
+
makes a registered inheriting custom property re-substitute PER-ELEMENT, so a
|
|
79
|
+
`--dock-local-scale` override on ANY dock scope re-evaluates the `calc()` at that
|
|
80
|
+
scope and threads the whole geometry cascade (box·pad·gap·tab·tile·glyph) down in
|
|
81
|
+
lockstep — the `:root` preset made real (the `@property --dock-morph-t` house
|
|
82
|
+
idiom above is the precedent). `--dock-scale` itself is ALSO registered (the
|
|
83
|
+
derived axis) so its `calc()` re-resolves per-element when `--dock-local-scale`
|
|
84
|
+
shifts. ADDITIVE ONLY: `initial-value: 1` is the identity, so at the default
|
|
85
|
+
`--dock-local-scale: 1` the resolved `--dock-scale` is byte-IDENTICAL to HEAD (no
|
|
86
|
+
rung re-tune); the `@media (pointer: coarse)` re-declare (overflow.css) STAYS the
|
|
87
|
+
`:root`-equivalent re-resolve, and this registration is the complementary
|
|
88
|
+
non-`:root`-scope thread. DOCK_SPRING is untouched (this is a token registration,
|
|
89
|
+
not a clock). */
|
|
90
|
+
@property --dock-local-scale {
|
|
91
|
+
syntax: "<number>";
|
|
92
|
+
inherits: true;
|
|
93
|
+
initial-value: 1;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@property --dock-scale {
|
|
97
|
+
syntax: "<number>";
|
|
98
|
+
inherits: true;
|
|
99
|
+
initial-value: 1;
|
|
100
|
+
}
|
|
101
|
+
|
|
70
102
|
@layer components {
|
|
71
103
|
:where(
|
|
72
104
|
.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,44 @@
|
|
|
1
|
+
/* glass/deep.css — BB.W-DEEP-GLASS — the OPT-IN `.glass-deep` decoration.
|
|
2
|
+
*
|
|
3
|
+
* The deep-glass register: the maximal iOS-27 Liquid-Glass tier ABOVE the
|
|
4
|
+
* W-GLASS-CAL calm default (the Apple `saturate(1.8) blur(20px)` family, landed
|
|
5
|
+
* at the budget-clearing 16px / saturate 1.5; tokens/glass-deep.css). `.glass-deep`
|
|
6
|
+
* is the OPT-IN surface — a consumer adds it to a glass surface that wants the
|
|
7
|
+
* thick refractive liquid read (the hero glass, the dock, the CTA); the bare
|
|
8
|
+
* content default is UNCHANGED (the calm default is the user's call).
|
|
9
|
+
*
|
|
10
|
+
* ── The token-substitution model (the `.glass-opaque` precedent) ───────────
|
|
11
|
+
* `.glass-deep` is a DECORATION ON a base `.glass-*` rung, NOT a parallel solid/
|
|
12
|
+
* blur recipe. It mirrors `.glass-opaque` (ladder.css §opaque-escape — which only
|
|
13
|
+
* sets `--glass-level: 0`, a token re-point, never a competing `backdrop-filter`):
|
|
14
|
+
* `.glass-deep` re-points the floating-rung blur token to the deep family
|
|
15
|
+
* (`--glass-blur-floating: var(--glass-blur-deep)`), so the base `.glass-floating`
|
|
16
|
+
* rule's `backdrop-filter: var(--glass-blur-floating)` resolves to the DEEP blur —
|
|
17
|
+
* NO cascade fight, NO base-rule edit, the glass edge/rim/under-shadow + the W55
|
|
18
|
+
* tint axis + the a11y brackets all compose unchanged. The deep tier rides a base
|
|
19
|
+
* rung exactly as `.glass-opaque` does (the CardTier map is `deep →
|
|
20
|
+
* 'glass-floating glass-deep'`).
|
|
21
|
+
*
|
|
22
|
+
* Because the deep blur (glass-deep.css) COMPOSES `var(--glass-level)`, the a11y
|
|
23
|
+
* brackets (`prefers-reduced-transparency: reduce` / `prefers-contrast: more` set
|
|
24
|
+
* `--glass-level: 0` / 0.3 at :root, a11y-fallback.css) reach the deep plate for
|
|
25
|
+
* FREE — the deep blur collapses to blur(0) under reduced-transparency through the
|
|
26
|
+
* SAME level path (the opaque escape). The W55 bright-bucket darken reaches the
|
|
27
|
+
* deep surface by construction too: `.glass-deep` is composed WITH `.glass-floating`,
|
|
28
|
+
* which is already in the W55 `@container style(--glass-backdrop: light)` material
|
|
29
|
+
* group (ladder.css) AND self-engages the overlay-band darken — the deep tier
|
|
30
|
+
* inherits the legibility tint with no selector-list edit.
|
|
31
|
+
*
|
|
32
|
+
* @import-ed in glass.css AFTER ladder.css/surfaces.css (the same @layer components,
|
|
33
|
+
* source-order-after so the token re-point lands beside the rung it rides) and
|
|
34
|
+
* BEFORE the a11y @media brackets (which still win by the :root level re-point).
|
|
35
|
+
*/
|
|
36
|
+
@layer components {
|
|
37
|
+
/* The deep decoration: re-point the floating rung's blur token to the deep
|
|
38
|
+
family. The base `.glass-floating` rule (`backdrop-filter:
|
|
39
|
+
var(--glass-blur-floating)`) then paints the deep `blur(16px) saturate(1.5)`
|
|
40
|
+
at `--glass-depth: 1` — the Apple-deep register, opt-in. */
|
|
41
|
+
.glass-deep {
|
|
42
|
+
--glass-blur-floating: var(--glass-blur-deep);
|
|
43
|
+
}
|
|
44
|
+
}
|