@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
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* critical-partition.mjs — the CRITICAL_PARTITION boundary manifest
|
|
3
|
+
* (BB.W-CSS-CRITICAL — the render-blocking `/styles` split).
|
|
4
|
+
*
|
|
5
|
+
* The SINGLE source of the critical/deferred partition of the resolved
|
|
6
|
+
* `@mkbabb/glass-ui/styles` draw. The build (vite.style-assets.ts
|
|
7
|
+
* publishStyleAssets) reads it to emit `dist/styles/critical.css` +
|
|
8
|
+
* `dist/styles/deferred.css`; the gate (scripts/proof-css-critical.mjs) reads
|
|
9
|
+
* it to assert the partition is byte-complete + manifest-driven. There is NO
|
|
10
|
+
* second hand-extracted critical block (W4 — the manifest is the sole source).
|
|
11
|
+
*
|
|
12
|
+
* The partition is drawn at the EXISTING thin-root-over-partials cascade
|
|
13
|
+
* boundary (AY.W-CSS1) — whole `src/styles/index.css` @import partials are
|
|
14
|
+
* bucketed, never a partial-content re-author (the partial CONTENTS are
|
|
15
|
+
* untouched; a cross-partial rule move is a triumvirate trigger, see the wave
|
|
16
|
+
* spec §Triumvirate). The two emitted files each @import their bucket's
|
|
17
|
+
* partials in the SAME cascade order the monolith index.css declares (load
|
|
18
|
+
* order is load-bearing), and CRITICAL loads BEFORE DEFERRED in the consumer
|
|
19
|
+
* so the deferred component recipes still cascade-correctly over the critical
|
|
20
|
+
* glass ladder.
|
|
21
|
+
*
|
|
22
|
+
* CRITICAL (./styles/critical) — the above-the-fold paint surface a consumer's
|
|
23
|
+
* FIRST PAINT requires: the whole token cascade (every visual axis is a custom
|
|
24
|
+
* property the chrome reads), the √φ typography scale + semantic type classes,
|
|
25
|
+
* the @theme aliases + the `.dark` variant selector, and the 5-rung glass
|
|
26
|
+
* ladder + specular/refract. Small (the token + ladder + type surface, not the
|
|
27
|
+
* component recipes) — under the recorded gzip ceiling (W3).
|
|
28
|
+
*
|
|
29
|
+
* DEFERRED (./styles/deferred) — the below-the-fold + late-mount tail: every
|
|
30
|
+
* component recipe + the transitions/animations/scroll-driven/view-transition
|
|
31
|
+
* grammar + utilities + the menu/configurator/instrument-chassis/hover-popover/
|
|
32
|
+
* drawer/segmented-tabs/select/icon-chip component partials, PLUS the folded SFC
|
|
33
|
+
* `<style scoped>` payload (`../glass-ui.css`) and the emitted Tailwind
|
|
34
|
+
* component-utility surface (`components.css`). These decorate components that
|
|
35
|
+
* mount after first paint or sit below the fold; their late arrival shifts no
|
|
36
|
+
* above-the-fold pixel (the FOUC-safe floor, W5).
|
|
37
|
+
*
|
|
38
|
+
* The `paper.css` partial is bucketed DEFERRED — the paper underpaint/grain
|
|
39
|
+
* utilities pair with glass for paper-on-glass compositions that mount with the
|
|
40
|
+
* content surfaces (below-the-fold), not the chrome's first paint.
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* The two non-fold buckets — each entry is a `src/styles/*.css` partial that the
|
|
45
|
+
* monolith `src/styles/index.css` @imports at the top level (lines 149-182).
|
|
46
|
+
* The order within each list mirrors the monolith's declared cascade order.
|
|
47
|
+
*/
|
|
48
|
+
export const CRITICAL_PARTIALS = Object.freeze([
|
|
49
|
+
"tokens.css",
|
|
50
|
+
"typography.css",
|
|
51
|
+
"theme.css",
|
|
52
|
+
"glass.css",
|
|
53
|
+
"glass-specular-track.css",
|
|
54
|
+
"glass-refract.css",
|
|
55
|
+
]);
|
|
56
|
+
|
|
57
|
+
export const DEFERRED_PARTIALS = Object.freeze([
|
|
58
|
+
"paper.css",
|
|
59
|
+
"dock.css",
|
|
60
|
+
"dock-controls.css",
|
|
61
|
+
"cards.css",
|
|
62
|
+
"feedback-tone.css",
|
|
63
|
+
"floating-panel.css",
|
|
64
|
+
"transitions.css",
|
|
65
|
+
"animations.css",
|
|
66
|
+
"scroll-driven.css",
|
|
67
|
+
"scroll-choreography.css",
|
|
68
|
+
"view-transition.css",
|
|
69
|
+
"utilities.css",
|
|
70
|
+
"menu.css",
|
|
71
|
+
"configurator.css",
|
|
72
|
+
"instrument-chassis.css",
|
|
73
|
+
"hover-popover.css",
|
|
74
|
+
"drawer.css",
|
|
75
|
+
"segmented-tabs.css",
|
|
76
|
+
"select.css",
|
|
77
|
+
"icon-chip.css",
|
|
78
|
+
"border-progress.css",
|
|
79
|
+
]);
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* The build-time folds that land in DEFERRED (NOT a `src/styles/*.css` partial;
|
|
83
|
+
* the publishStyleAssets folds appended to the dist copy of index.css). The SFC
|
|
84
|
+
* scoped payload (`../glass-ui.css`) + the Tailwind component-utility surface
|
|
85
|
+
* (`./components.css`) are below-the-fold component decoration — they MUST NOT
|
|
86
|
+
* leak into critical (the W2 byte-complete-in-one-bucket + W3 ceiling bite).
|
|
87
|
+
* Relative to `dist/styles/` (where critical.css/deferred.css are emitted).
|
|
88
|
+
*/
|
|
89
|
+
export const DEFERRED_FOLDS = Object.freeze([
|
|
90
|
+
"../glass-ui.css",
|
|
91
|
+
"./components.css",
|
|
92
|
+
]);
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* The `@source` build-scan backstop directive (the consumer-JIT content-scan
|
|
96
|
+
* reach for glass-ui's own component utilities — a backstop for the
|
|
97
|
+
* components.css self-emit). It backstops the DEFERRED component utilities, so
|
|
98
|
+
* it rides DEFERRED. The value is the exact directive the monolith index.css
|
|
99
|
+
* carries (re-grounded at HEAD: `@source "../*.js";`).
|
|
100
|
+
*/
|
|
101
|
+
export const DEFERRED_SOURCE_DIRECTIVE = '@source "../*.js";';
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* The recorded critical-subset gzip ceiling (bytes), measured on the FULLY
|
|
105
|
+
* RESOLVED consumer draw (the critical partials' @import roots resolved
|
|
106
|
+
* RECURSIVELY through their nested tokens/* + glass/* sub-partials — the real
|
|
107
|
+
* first-paint byte a consumer's bundler emits, NOT the one-level approximation
|
|
108
|
+
* profile-bundle uses for the monolith budget). The committed, reviewed
|
|
109
|
+
* baseline (the profile-bundle read-baseline discipline): a regression that
|
|
110
|
+
* folds a component recipe back into critical climbs the emitted critical.css
|
|
111
|
+
* resolved gzip over this → RED (W3). Re-base via the gate's `--rebaseline`
|
|
112
|
+
* flag with a recorded rationale, never silently.
|
|
113
|
+
*
|
|
114
|
+
* Measured at this authoring (HEAD bdbcd479, post-build): the critical subset
|
|
115
|
+
* resolved to raw 347266 / gzip 105460 — the token cascade (tokens.css gzip
|
|
116
|
+
* ~62KiB) + the 5-rung glass ladder (glass.css gzip ~27KiB) + typography +
|
|
117
|
+
* theme + specular/refract. It is roughly half the monolith's fully-resolved
|
|
118
|
+
* gzip (~230KiB), so the deferred tail (component recipes + SFC scoped payload
|
|
119
|
+
* + components.css utility surface, ~125KiB gzip) loads NON-blocking after
|
|
120
|
+
* first paint — the render-block win. The ceiling carries ~4% headroom over
|
|
121
|
+
* the measured baseline (the profile-bundle re-base convention). If the
|
|
122
|
+
* re-measured render-block under W-LIGHTHOUSE shows this critical subset is
|
|
123
|
+
* STILL over the mobile-ms floor, the inline-critical-head-block path routes to
|
|
124
|
+
* the named BB.W-CSS-CRITICAL-INLINE successor (a triumvirate trigger, NOT a
|
|
125
|
+
* token-value edit here).
|
|
126
|
+
*
|
|
127
|
+
* RE-BASE (BB liquid-glass band): the critical subset grew to raw 427015 / gzip
|
|
128
|
+
* 131469 — NOT a component-recipe leak (the critical bucket is still the 6
|
|
129
|
+
* documented token+glass+type partials; w2 partials-disjoint + w4 hold), but the
|
|
130
|
+
* legitimate GROWTH of the critical token cascade + glass ladder by the BB
|
|
131
|
+
* liquid-glass band: the deep-glass token family (tokens/glass-deep.css), the
|
|
132
|
+
* --glass-accent rim axis, the W-LENSING refract evolution, the W-DARK-MATERIAL
|
|
133
|
+
* dark-arm + the on-glass-fg / surface-axis registers — all of which live in the
|
|
134
|
+
* critical tokens/* + glass/* sub-partials by construction. Ceiling lifted
|
|
135
|
+
* 110000 → 137000 (~4.2% headroom over the measured 131469, the profile-bundle
|
|
136
|
+
* re-base convention) to carry the BB glass-band critical surface. The
|
|
137
|
+
* render-block FLOOR stays W-LIGHTHOUSE's W3-arm-1 mobile-ms gate (the binding
|
|
138
|
+
* perf truth); this ceiling guards against a recipe revert-toward-monolith.
|
|
139
|
+
*/
|
|
140
|
+
export const CRITICAL_GZIP_CEILING = 137000;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/* BB.W-CSS-CRITICAL — the CRITICAL /styles subset (off
|
|
2
|
+
src/styles/critical-partition.mjs CRITICAL_PARTITION; do not
|
|
3
|
+
hand-edit — the manifest is the SOLE partition source). Each
|
|
4
|
+
@import is a whole cascade partial in the monolith's declared
|
|
5
|
+
load order; critical ∪ deferred is byte-complete. */
|
|
6
|
+
|
|
7
|
+
@import "./tokens.css";
|
|
8
|
+
@import "./typography.css";
|
|
9
|
+
@import "./theme.css";
|
|
10
|
+
@import "./glass.css";
|
|
11
|
+
@import "./glass-specular-track.css";
|
|
12
|
+
@import "./glass-refract.css";
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/* BB.W-CSS-CRITICAL — the DEFERRED /styles subset (off
|
|
2
|
+
src/styles/critical-partition.mjs CRITICAL_PARTITION; do not
|
|
3
|
+
hand-edit — the manifest is the SOLE partition source). Each
|
|
4
|
+
@import is a whole cascade partial in the monolith's declared
|
|
5
|
+
load order; critical ∪ deferred is byte-complete. */
|
|
6
|
+
|
|
7
|
+
@import "./paper.css";
|
|
8
|
+
@import "./dock.css";
|
|
9
|
+
@import "./dock-controls.css";
|
|
10
|
+
@import "./cards.css";
|
|
11
|
+
@import "./feedback-tone.css";
|
|
12
|
+
@import "./floating-panel.css";
|
|
13
|
+
@import "./transitions.css";
|
|
14
|
+
@import "./animations.css";
|
|
15
|
+
@import "./scroll-driven.css";
|
|
16
|
+
@import "./scroll-choreography.css";
|
|
17
|
+
@import "./view-transition.css";
|
|
18
|
+
@import "./utilities.css";
|
|
19
|
+
@import "./menu.css";
|
|
20
|
+
@import "./configurator.css";
|
|
21
|
+
@import "./instrument-chassis.css";
|
|
22
|
+
@import "./hover-popover.css";
|
|
23
|
+
@import "./drawer.css";
|
|
24
|
+
@import "./segmented-tabs.css";
|
|
25
|
+
@import "./select.css";
|
|
26
|
+
@import "./icon-chip.css";
|
|
27
|
+
@import "./border-progress.css";
|
|
28
|
+
@import "../glass-ui.css";
|
|
29
|
+
@import "./components.css";
|
|
30
|
+
|
|
31
|
+
@source "../*.js";
|
|
@@ -11,6 +11,30 @@
|
|
|
11
11
|
* @import-ed by dock.css in cascade order, in the SAME `@layer components` — the
|
|
12
12
|
* carve is isomorphic (same layer, same source order → ZERO visual delta). */
|
|
13
13
|
|
|
14
|
+
/* ── BB.W-HIERARCHY2 — the CONTENT-side anti-collision gutter ───────────────────
|
|
15
|
+
`--dock-content-safe-inset` is the structural CONTENT-side counterpart to the
|
|
16
|
+
dock-collision SEAT fix (W-CHIP-GRAZE + W-DOCK-RAIL-SEAT-FINAL own the chip-fan
|
|
17
|
+
SEAT — the chips fan off-canvas into the rail's dead gutter, chipOverMain:false on
|
|
18
|
+
EVERY route by topology). This token reserves a guaranteed safe-inset gutter on the
|
|
19
|
+
CONTENT column so the page-title band is structurally clear of any chip reach even
|
|
20
|
+
on a route added WITHOUT a per-route audit (the anti-gameability the gestalt gate
|
|
21
|
+
wants). It is keyed to the dock reach (`--dock-rail-extend-length`, the rail's
|
|
22
|
+
beyond-edge overrun) so the content gutter tracks the dock geometry in lockstep,
|
|
23
|
+
and it rides `--dock-scale` transitively through that reach token.
|
|
24
|
+
|
|
25
|
+
THE DE-OVERLOAD IS BINDING (distinct geometry concerns, distinct tokens):
|
|
26
|
+
`--dock-control-safe-inset` (per-density, below) is the dock CONTROL plate-clearance
|
|
27
|
+
inset (the painted plate floors a notch below its track cell — BA.W-DOCK-GEOMETRY,
|
|
28
|
+
owned by proof:dock-plate-clearance); `--dock-content-safe-inset` is the CONTENT-band
|
|
29
|
+
gutter (the content column reserves dead inline space the chips can never share).
|
|
30
|
+
The two close the collision from BOTH sides — the chip seat (the SEAT waves) AND the
|
|
31
|
+
content gutter (this token) — coordinated on the SAME dead inline gutter: the content
|
|
32
|
+
gutter is the RESERVE, the gutter-fan lands the chips in it (ONE gutter, two
|
|
33
|
+
consumers). NEVER re-point this AT --dock-control-safe-inset (the de-overload). */
|
|
34
|
+
:root {
|
|
35
|
+
--dock-content-safe-inset: var(--dock-rail-extend-length, 2.5rem);
|
|
36
|
+
}
|
|
37
|
+
|
|
14
38
|
@layer components {
|
|
15
39
|
/* AX.W45 — the density cascade is threaded by the ONE `--dock-scale`
|
|
16
40
|
multiplier (default 1, lifted to `--dock-mobile-scale` on coarse pointers).
|
|
@@ -222,6 +246,27 @@
|
|
|
222
246
|
);
|
|
223
247
|
}
|
|
224
248
|
|
|
249
|
+
/* BB.W-PERF-PRODUCER A′-6 — RE-RESOLVE the glyph token inside the density-painted
|
|
250
|
+
scope. `--dock-icon-glyph` (offsets-sizing.css) is a RATIO of
|
|
251
|
+
`--dock-layer-height`, but density.css paints `--dock-layer-height` ONLY on
|
|
252
|
+
`.glass-dock[data-density]` — the `:root` `--dock-icon-glyph` definition reads
|
|
253
|
+
`--dock-layer-height` at `:root` (the inline fallback ladder), so it would
|
|
254
|
+
FREEZE at the fallback rather than track the per-rung painted height (the SAME
|
|
255
|
+
substitution-vs-inheritance trap the R5-1 sweep fixed for
|
|
256
|
+
`--dock-collapsed-summary-min-size` in overflow.css). Re-resolving it HERE, on
|
|
257
|
+
the element that paints `--dock-layer-height`, lets the per-density height flow
|
|
258
|
+
into the glyph so a `spacious` dock's glyph grows in lockstep with the shelf
|
|
259
|
+
(the value.js D5-1 defect). The formula is IDENTICAL to the `:root` definition;
|
|
260
|
+
only the resolution element moves. The WCAG floor + the `--dock-icon-glyph-ratio`
|
|
261
|
+
knob ride through unchanged; the `.dark-mode-toggle-button > svg` mirror reads
|
|
262
|
+
the same re-resolved token so both glyphs track the density axis. */
|
|
263
|
+
.glass-dock[data-density] {
|
|
264
|
+
--dock-icon-glyph: max(
|
|
265
|
+
calc(var(--dock-layer-height, calc(2.5rem * var(--dock-scale))) * var(--dock-icon-glyph-ratio)),
|
|
266
|
+
var(--dock-icon-glyph-floor)
|
|
267
|
+
);
|
|
268
|
+
}
|
|
269
|
+
|
|
225
270
|
/* Density-audacious narrow-box carve (AV.W16 TW3) — when the dock's OWN
|
|
226
271
|
box is narrow the audacious-dock label glyphs compress so the chrome
|
|
227
272
|
doesn't overflow its host (≤14px below 30rem, 15px 30–45rem). Keyed off
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Carved from the dock.css god-module (slice 25). This partial owns the dock's
|
|
5
5
|
* layer model: the `.dock-layers` grid container + the FLIP-driven box-size morph
|
|
6
|
-
* (
|
|
6
|
+
* (BB.W-DOCK-MORPH-FAMILY — a `transform: scale()` over a reserved settled `to`
|
|
7
|
+
* footprint, the live `--dock-morph-scale` derived off the ONE `--dock-morph-t`
|
|
8
|
+
* scalar; NO per-frame layout-axis lerp), the unified
|
|
7
9
|
* `.is-active` / `.is-leaving` 3-state crossfade + hit-test contract (the
|
|
8
10
|
* a11y-006 anchor), the per-child reveal stagger (the `--dock-stagger-*` ramp),
|
|
9
11
|
* and the `layout="grid"` 2D tile-grid arrangement. The `.dock-layer-group` /
|
|
@@ -37,46 +39,66 @@
|
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
|
|
40
|
-
/*
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
on the
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
`
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
42
|
+
/* BB.W-DOCK-MORPH-FAMILY (a)/(b) — the box morph is now a COMPOSITOR TRANSFORM
|
|
43
|
+
over a RESERVED SETTLED footprint, NOT a per-frame `inline-size` lerp (the C3
|
|
44
|
+
"too slow and laggy" relayout-every-frame defect). `useLayerTransition` /
|
|
45
|
+
the orchestrator still measure the from→to size ONCE per swap (the allowed
|
|
46
|
+
one-time FLIP measurement) and write `--dock-morph-from`/`--dock-morph-to` px
|
|
47
|
+
on the morphing element — but the layout axis is set to the SETTLED `to`
|
|
48
|
+
value (ONE layout solve, the box reserves its end footprint from frame 0), and
|
|
49
|
+
the live `--dock-morph-t` scalar drives a `transform: scale()` between the
|
|
50
|
+
from/to RATIO and 1. The content lays out COMPLETE at `to` behind the
|
|
51
|
+
`overflow: clip` aperture (shell.css), and the scaled-down box reads as the
|
|
52
|
+
smaller in-flight footprint (the clip uncovers the scaled box, never a
|
|
53
|
+
half-painted growing layout — the reveal-seat (b) fix). `--dock-morph-ratio`
|
|
54
|
+
is `from/to` (guarded: `to:0` → ratio 0); `--dock-morph-scale` runs
|
|
55
|
+
`ratio → 1` as `t: 0 → 1`. `transform-origin` anchors the pinned edge
|
|
56
|
+
(inline-start for the horizontal aperture) so the box grows from the correct
|
|
57
|
+
side. NO `inline-size`/`block-size` reads the live scalar — the CDP Layout
|
|
58
|
+
track stays FLAT through the morph (the F1 compositor-bound floor). */
|
|
53
59
|
.glass-dock[data-morphing] .dock-layers,
|
|
54
60
|
.glass-dock[data-morphing] .dock-layer-stack {
|
|
55
|
-
--dock-morph-
|
|
56
|
-
var(--dock-morph-from, 0px)
|
|
57
|
-
(var(--dock-morph-to, 0px) - var(--dock-morph-from, 0px)) *
|
|
58
|
-
var(--dock-morph-t, 0)
|
|
61
|
+
--dock-morph-ratio: calc(
|
|
62
|
+
var(--dock-morph-from, 0px) / max(var(--dock-morph-to, 1px), 1px)
|
|
59
63
|
);
|
|
60
|
-
|
|
64
|
+
--dock-morph-scale: calc(
|
|
65
|
+
var(--dock-morph-ratio) +
|
|
66
|
+
(1 - var(--dock-morph-ratio)) * var(--dock-morph-t, 0)
|
|
67
|
+
);
|
|
68
|
+
/* The box RESERVES its settled `to` footprint — a single layout solve, NOT
|
|
69
|
+
the live scalar calc. The transform composites over it. */
|
|
70
|
+
inline-size: var(--dock-morph-to);
|
|
71
|
+
transform: scaleX(var(--dock-morph-scale));
|
|
72
|
+
transform-origin: left center;
|
|
73
|
+
will-change: transform;
|
|
61
74
|
}
|
|
62
75
|
|
|
63
76
|
/* AZ.W-DOCK-TAXONOMY (move 2) — a VERTICAL dock's outer `.dock-layers` morphs the
|
|
64
77
|
BLOCK axis (its collapse↔expand shrinks `height`, not `width`). The orchestrator
|
|
65
78
|
measures/writes the same `--dock-morph-from/to` span on the block axis
|
|
66
79
|
(`outerLayerAxis` is now the resolved orientation; `morphAxisProp` maps
|
|
67
|
-
vertical→`block-size`)
|
|
68
|
-
|
|
69
|
-
|
|
80
|
+
vertical→`block-size`).
|
|
81
|
+
BB.W-DOCK-MORPH-FAMILY (a)/(b) — the vertical box reserves its settled `to`
|
|
82
|
+
BLOCK footprint + composites a `scaleY()` over it on the SAME `--dock-morph-t`
|
|
83
|
+
scalar (the inverse axis of the horizontal `scaleX`), `transform-origin` at the
|
|
84
|
+
block-start pinned edge. NO live-scalar `block-size` calc → no per-frame
|
|
85
|
+
relayout on the vertical axis either. */
|
|
70
86
|
.glass-dock.vertical[data-morphing] .dock-layers {
|
|
71
87
|
inline-size: auto;
|
|
72
|
-
block-size: var(--dock-morph-
|
|
88
|
+
block-size: var(--dock-morph-to);
|
|
89
|
+
transform: scaleY(var(--dock-morph-scale));
|
|
90
|
+
transform-origin: center top;
|
|
91
|
+
will-change: transform;
|
|
73
92
|
}
|
|
74
93
|
|
|
75
|
-
/* A vertical inner group morphs the BLOCK axis — the same
|
|
76
|
-
|
|
94
|
+
/* A vertical inner group morphs the BLOCK axis — the same settled-footprint
|
|
95
|
+
reserve + `scaleY()` composite over it. */
|
|
77
96
|
.glass-dock[data-morphing] .dock-layer-group.vertical .dock-layer-stack {
|
|
78
97
|
inline-size: auto;
|
|
79
|
-
block-size: var(--dock-morph-
|
|
98
|
+
block-size: var(--dock-morph-to);
|
|
99
|
+
transform: scaleY(var(--dock-morph-scale));
|
|
100
|
+
transform-origin: center top;
|
|
101
|
+
will-change: transform;
|
|
80
102
|
}
|
|
81
103
|
|
|
82
104
|
/* The inner DockLayerGroup stack has no collapsed/expanded class, so its
|
|
@@ -311,10 +333,12 @@
|
|
|
311
333
|
from these state rules; they keep only their non-overflow concerns.
|
|
312
334
|
|
|
313
335
|
AX.W01 — `:not([data-morphing])` gate: at REST expanded the layers fill the
|
|
314
|
-
box (`width:100%`), but DURING the morph the
|
|
315
|
-
|
|
316
|
-
here would win on specificity and
|
|
317
|
-
hands the
|
|
336
|
+
box (`width:100%`), but DURING the morph the reserved `to`-footprint +
|
|
337
|
+
`transform: scale()` (BB.W-DOCK-MORPH-FAMILY, above) is the SOLE size
|
|
338
|
+
authority — a `width:100%` here would win on specificity and fight the
|
|
339
|
+
reserved footprint. The gate hands the box to the transform for the morph and
|
|
340
|
+
back to 100% on settle (the transform/reserve vanish when `[data-morphing]`
|
|
341
|
+
clears). */
|
|
318
342
|
.glass-dock.expanded:not(.fit-content):not([data-morphing]) .dock-layers {
|
|
319
343
|
width: 100%;
|
|
320
344
|
}
|
|
@@ -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
|