@mkbabb/glass-ui 4.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/CardAction-8whJrLWt.js +268 -0
- package/dist/{CommandShortcut-DdtWXxOK.js → CommandShortcut-D3yxgHNn.js} +25 -14
- package/dist/ConfiguratorRow-CaP7U3ZA.js +143 -0
- package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
- package/dist/{ContextMenuSubContent-B0Vs6atR.js → ContextMenuSubContent-DDRID3qC.js} +28 -33
- package/dist/{DataTable-C464Zbqd.js → DataTable-Bc9kUtu_.js} +4 -4
- package/dist/{DialogContent-DDE6pQBU.js → DialogContent-6JtTB5x2.js} +11 -8
- package/dist/DialogFooter-9phqcRIS.js +80 -0
- package/dist/DialogScrollContent-TTuovQst.js +93 -0
- package/dist/{FadingScroll-DwNnvKMs.js → FadingScroll-DLRbH5Xr.js} +1 -1
- package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
- package/dist/{HoverPopover-Dpzwvc4t.js → HoverPopover-BcIxvyqZ.js} +2 -2
- package/dist/{IconChip-BDw1j5mu.js → IconChip-DhbdGdFQ.js} +2 -1
- package/dist/{IconTooltip-DSjasZIt.js → IconTooltip-B0zimd2H.js} +1 -1
- package/dist/Input-Cg9DF62r.js +57 -0
- package/dist/{MetricBadge-BpC0R_Ec.js → MetricBadge-RHdBP72w.js} +1 -1
- package/dist/Notification-CphK7AAm.js +43 -0
- package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
- package/dist/PagerDots-Cjx96la-.js +98 -0
- package/dist/{PopoverContent-BTorlp--.js → PopoverContent-DL7E6vJP.js} +4 -4
- package/dist/{Progress-hAT4gqGH.js → Progress-CnqB7gLm.js} +4 -4
- package/dist/{ScrollingText-CUVFTWk2.js → ScrollingText-CTZbA_cG.js} +2 -2
- package/dist/{SelectScrollDownButton-C1jb3b3K.js → SelectScrollDownButton-DAKCBEdW.js} +65 -61
- package/dist/{SelectSeparator-DK2y1Bun.js → SelectSeparator-C2UGOkXF.js} +1 -1
- package/dist/Separator-DQcwC2TR.js +44 -0
- package/dist/Switch-B8RscmRu.js +49 -0
- package/dist/Toaster-D9qIHjBI.js +274 -0
- package/dist/ToggleGroupItem-BLtr3TJq.js +170 -0
- package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +21 -33
- package/dist/api/types-extra.d.ts +37 -0
- package/dist/api.js +1 -1
- package/dist/aurora.js +1231 -260
- package/dist/badge.js +1 -1
- package/dist/border-progress.d.ts +1 -0
- package/dist/border-progress.js +98 -0
- package/dist/button-5dY1Dvhd.js +125 -0
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -3
- package/dist/card.js +2 -2
- package/dist/carousel.js +93 -110
- package/dist/collapsible.js +1 -1
- package/dist/color-Cs0-oxYL.js +116 -0
- package/dist/color.js +2 -2
- package/dist/command.js +1 -1
- package/dist/compile-nZ1xVYTp.js +19 -0
- package/dist/completion-seal.d.ts +1 -0
- package/dist/completion-seal.js +89 -0
- package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
- package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
- package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
- package/dist/components/custom/aurora/composables/color.d.ts +13 -0
- package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +31 -0
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +60 -0
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +37 -0
- package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +20 -2
- package/dist/components/custom/aurora/constants/renderMode.d.ts +77 -18
- package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
- package/dist/components/custom/aurora/index.d.ts +2 -1
- package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
- package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
- package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +18 -0
- package/dist/components/custom/border-progress/constants.d.ts +59 -0
- package/dist/components/custom/border-progress/index.d.ts +4 -0
- package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
- package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
- package/dist/components/custom/completion-seal/constants.d.ts +46 -0
- package/dist/components/custom/completion-seal/index.d.ts +4 -0
- package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +18 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +22 -0
- package/dist/components/custom/concentric/composables/ringField.d.ts +85 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +14 -0
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
- package/dist/components/custom/concentric/constants.d.ts +67 -0
- package/dist/components/custom/concentric/index.d.ts +5 -0
- package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
- package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
- package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
- package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
- package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
- package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
- package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
- package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
- package/dist/components/custom/constellation/constants.d.ts +33 -0
- package/dist/components/custom/constellation/constellationField.d.ts +31 -1
- package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
- package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
- package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
- package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
- package/dist/components/custom/constellation/index.d.ts +5 -5
- package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
- package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
- package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
- package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
- package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
- package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
- package/dist/components/custom/deck/constants.d.ts +14 -0
- package/dist/components/custom/deck/index.d.ts +8 -0
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +25 -4
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
- package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
- package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +155 -0
- package/dist/components/custom/dock/composables/index.d.ts +2 -0
- package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
- package/dist/components/custom/dock/constants.d.ts +18 -14
- package/dist/components/custom/dock/index.d.ts +5 -2
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +42 -0
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +83 -0
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +39 -0
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +35 -0
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +31 -0
- package/dist/components/custom/dot-flow-field/constants.d.ts +69 -0
- package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
- package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
- package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
- package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
- package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
- package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
- package/dist/components/custom/dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
- package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
- package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
- package/dist/components/custom/easing/composables/useEasingPicker.d.ts +80 -0
- package/dist/components/custom/easing/constants.d.ts +28 -0
- package/dist/components/custom/easing/index.d.ts +3 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +43 -40
- package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
- package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
- package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +42 -0
- package/dist/components/custom/fourier-field/constants.d.ts +64 -0
- package/dist/components/custom/fourier-field/index.d.ts +23 -18
- package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +13 -3
- package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +18 -11
- package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
- package/dist/components/custom/goo-blob/constants.d.ts +1 -1
- package/dist/components/custom/goo-blob/index.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/types.d.ts +36 -0
- package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
- package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
- package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
- package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
- package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
- package/dist/components/custom/handmark/HandMark.vue.d.ts +1 -1
- package/dist/components/custom/icon-chip/types.d.ts +11 -1
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +3 -1
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
- package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
- package/dist/components/custom/pager-dots/index.d.ts +2 -0
- package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
- package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
- package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
- package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
- package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
- package/dist/components/custom/paper-grid/constants.d.ts +57 -0
- package/dist/components/custom/paper-grid/index.d.ts +5 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
- package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
- package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
- package/dist/components/custom/search/index.d.ts +2 -0
- package/dist/components/custom/search/searchVariants.d.ts +19 -0
- package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
- package/dist/components/custom/selectable-chip/index.d.ts +2 -0
- package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
- package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
- package/dist/components/custom/spa-view/index.d.ts +2 -0
- package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
- package/dist/components/custom/split-chars/index.d.ts +1 -0
- package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +12 -0
- package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
- package/dist/components/custom/tabs/constants.d.ts +20 -2
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +30 -17
- package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
- package/dist/components/ui/_shared/index.d.ts +2 -0
- package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
- package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
- package/dist/components/ui/badge/index.d.ts +1 -1
- package/dist/components/ui/button/Button.vue.d.ts +5 -2
- package/dist/components/ui/button/index.d.ts +2 -2
- package/dist/components/ui/card/Card.vue.d.ts +79 -4
- package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
- package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
- package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
- package/dist/components/ui/card/index.d.ts +3 -1
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
- package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
- package/dist/components/ui/command/Command.vue.d.ts +1 -1
- package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
- package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
- package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
- package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts +7 -8
- package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
- package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
- package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
- package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
- package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
- package/dist/components/ui/drawer/constants.d.ts +45 -0
- package/dist/components/ui/drawer/index.d.ts +23 -15
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
- package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
- package/dist/components/ui/focus-scope/index.d.ts +2 -0
- package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/input/Input.vue.d.ts +3 -0
- package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
- package/dist/components/ui/select/SelectContent.vue.d.ts +4 -1
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
- package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
- package/dist/components/ui/toast/use-toast.d.ts +14 -0
- package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
- package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
- package/dist/composables/color/index.d.ts +2 -0
- package/dist/composables/color/useAccentTone.d.ts +34 -0
- package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
- package/dist/composables/glass/index.d.ts +5 -2
- package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
- package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
- package/dist/composables/glass/useVizChoreography.d.ts +123 -0
- package/dist/composables/glass/vSpecular.d.ts +2 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
- package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
- package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
- package/dist/composables/glass/webgpu/index.d.ts +2 -0
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +75 -0
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +85 -0
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
- package/dist/composables/motion/core/index.d.ts +4 -0
- package/dist/composables/motion/index.d.ts +4 -0
- package/dist/composables/motion/scrollReader.d.ts +25 -0
- package/dist/composables/motion/springPresets.d.ts +20 -1
- package/dist/composables/motion/useCharStagger.d.ts +44 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +84 -0
- package/dist/composables/motion/useDragMorph.d.ts +77 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
- package/dist/composables/motion/useLiquidPress.d.ts +71 -0
- package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
- package/dist/composables/motion/useNumericTransition.d.ts +3 -3
- package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
- package/dist/composables/motion/useScrollChrome.d.ts +58 -0
- package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
- package/dist/composables/motion/useSpringPress.d.ts +5 -5
- package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
- package/dist/composables/sidebar/index.d.ts +4 -1
- package/dist/composables/sidebar/types.d.ts +68 -3
- package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
- package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
- package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
- package/dist/composables/virtual/index.d.ts +4 -0
- package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
- package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
- package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
- package/dist/concentric.d.ts +1 -0
- package/dist/concentric.js +836 -0
- package/dist/configurator.js +3 -2
- package/dist/confirm-dialog.js +62 -49
- package/dist/constellation.js +635 -235
- package/dist/context-menu.js +3 -3
- package/dist/controls.js +2 -2
- package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck.d.ts +1 -0
- package/dist/deck.js +105 -0
- package/dist/dialog.js +4 -3
- package/dist/dock.js +819 -568
- package/dist/{dockContext-Bu1Avy-a.js → dockContext-BNfyPLe9.js} +1 -1
- package/dist/dom.js +5 -5
- package/dist/dot-flow-field.d.ts +1 -0
- package/dist/dot-flow-field.js +894 -0
- package/dist/dot-matrix.d.ts +1 -0
- package/dist/dot-matrix.js +630 -0
- package/dist/dotMatrixField-D_x9_1qq.js +48 -0
- package/dist/drawer.d.ts +1 -0
- package/dist/drawer.js +380 -0
- package/dist/{dropdown-menu-BJ7E9js_.js → dropdown-menu-aJmV5SqE.js} +82 -79
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.d.ts +1 -0
- package/dist/easing.js +475 -0
- package/dist/expandable-container.js +46 -21
- package/dist/fading-scroll.js +1 -1
- package/dist/flow.glsl-B2P7e0MT.js +4 -0
- package/dist/focus-scope.d.ts +1 -0
- package/dist/focus-scope.js +23 -0
- package/dist/forms.js +65 -63
- package/dist/fourier-field.js +831 -172
- package/dist/fourier-math.js +1 -1
- package/dist/glass-panel.js +2 -2
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +187 -338
- package/dist/goo-blob.js +241 -692
- package/dist/goo-dot-matrix.d.ts +1 -0
- package/dist/goo-dot-matrix.js +591 -0
- package/dist/handmark.js +2 -2
- package/dist/header-ribbon.js +1 -1
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-chip.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +70 -60
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +1 -1
- package/dist/metric-stack.js +14 -9
- package/dist/motion-core.js +58 -36
- package/dist/motion-curves.js +11 -1
- package/dist/motion.js +90 -53
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +2 -91
- package/dist/paper-backdrop.js +1 -1
- package/dist/paper-grid.d.ts +1 -0
- package/dist/paper-grid.js +788 -0
- package/dist/popover.js +1 -1
- package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
- package/dist/{compile-EXXzEr1q.js → procedural-color.wgsl-m7Zgv35j.js} +2 -156
- package/dist/progress.js +1 -1
- package/dist/pulse.js +2 -2
- package/dist/reactive.js +1 -1
- package/dist/resolveCanvasColor-yPyIpJt9.js +93 -0
- package/dist/scrollReader-DI1NWxUw.js +42 -0
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +162 -308
- package/dist/select.js +3 -3
- package/dist/selectable-chip.d.ts +1 -0
- package/dist/selectable-chip.js +65 -0
- package/dist/separator.js +1 -1
- package/dist/{sheet-CquRYOAw.js → sheet-B2flBfLH.js} +5 -5
- package/dist/sheet.js +1 -1
- package/dist/sidebar.js +216 -114
- package/dist/{slider-DQ95MET2.js → slider-2A0rPn79.js} +3 -3
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +2 -2
- package/dist/spa-view.d.ts +1 -0
- package/dist/spa-view.js +46 -0
- package/dist/spectrum-walk-BVzA7Biz.js +33 -0
- package/dist/{springPresets-WXaLbu8u.js → springPresets-Ce7OYCm9.js} +12 -6
- package/dist/styles/animations.css +46 -12
- package/dist/styles/border-progress.css +109 -0
- package/dist/styles/cards.css +145 -0
- package/dist/styles/completion-seal.css +131 -0
- package/dist/styles/components.css +2 -3
- package/dist/styles/configurator.css +55 -0
- package/dist/styles/critical-partition.mjs +162 -0
- package/dist/styles/critical.css +12 -0
- package/dist/styles/deferred.css +33 -0
- package/dist/styles/dock/cta-seat.css +87 -0
- package/dist/styles/dock/density.css +198 -0
- package/dist/styles/dock/layers.css +101 -29
- package/dist/styles/dock/morph-bridge.css +54 -18
- package/dist/styles/dock/morph.css +132 -7
- package/dist/styles/dock/overflow.css +28 -2
- package/dist/styles/dock/search.css +68 -0
- package/dist/styles/dock/shape.css +124 -0
- package/dist/styles/dock/shell.css +77 -21
- package/dist/styles/dock/stack-rail.css +264 -0
- package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/dist/styles/dock-controls/icon-button.css +14 -0
- package/dist/styles/dock.css +43 -1
- package/dist/styles/drawer.css +81 -35
- package/dist/styles/glass/accent-tone.css +66 -0
- package/dist/styles/glass/control-surfaces.css +167 -0
- package/dist/styles/glass/deep.css +44 -0
- package/dist/styles/glass/ladder.css +147 -41
- package/dist/styles/glass/material.css +78 -15
- package/dist/styles/glass/reveal.css +136 -0
- package/dist/styles/glass/rim.css +110 -0
- package/dist/styles/glass/surfaces.css +148 -129
- package/dist/styles/glass-refract.css +96 -44
- package/dist/styles/glass-specular-track.css +7 -0
- package/dist/styles/glass.css +13 -0
- package/dist/styles/hover-popover.css +7 -6
- package/dist/styles/icon-chip.css +77 -15
- package/dist/styles/index.css +36 -9
- package/dist/styles/instrument-chassis.css +66 -3
- package/dist/styles/scroll-choreography.css +300 -0
- package/dist/styles/scroll-chrome.css +123 -0
- package/dist/styles/scroll-driven.css +38 -0
- package/dist/styles/segmented-tabs.css +81 -14
- package/dist/styles/theme/bridges.css +33 -0
- package/dist/styles/theme/literals.css +11 -2
- package/dist/styles/theme/radius.css +24 -2
- package/dist/styles/tokens/color-radius.css +13 -3
- package/dist/styles/tokens/dark-arm.css +137 -32
- package/dist/styles/tokens/glass-deep.css +100 -0
- package/dist/styles/tokens/glass-fx.css +376 -0
- package/dist/styles/tokens/glass.css +131 -351
- package/dist/styles/tokens/light-dark.css +16 -3
- package/dist/styles/tokens/offsets.css +143 -0
- package/dist/styles/tokens/on-glass-fg.css +39 -0
- package/dist/styles/tokens/property-regs.css +260 -0
- package/dist/styles/tokens/scale-paper.css +168 -96
- package/dist/styles/tokens/scheme-motion.css +114 -38
- package/dist/styles/tokens/scroll-tokens.css +123 -0
- package/dist/styles/tokens/sizing-config.css +110 -0
- package/{src/styles/tokens/offsets-sizing.css → dist/styles/tokens/sizing.css} +92 -204
- package/dist/styles/tokens.css +14 -3
- package/dist/styles/typography/semantic.css +26 -13
- package/dist/styles/typography/utilities.css +22 -7
- package/dist/styles/utilities/a11y-overrides.css +20 -5
- package/dist/styles/utilities/animate.css +27 -24
- package/dist/styles/utilities/base-misc.css +307 -0
- package/dist/styles/utilities/base.css +47 -261
- package/dist/styles/utilities/btn.css +17 -4
- package/dist/styles/utilities/components.css +31 -6
- package/dist/styles/utilities/metal.css +215 -0
- package/dist/styles/utilities.css +14 -7
- package/dist/switch.js +1 -1
- package/dist/tabs.js +220 -107
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +10 -10
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +2 -2
- package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
- package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-CLrxicG9.js} +1 -1
- package/dist/useConfiguratorState-4xblKfwd.js +162 -0
- package/dist/useControlSize-SH1UmJCi.js +9 -0
- package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
- package/dist/useDragMorph-BUgAC-zK.js +102 -0
- package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
- package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
- package/dist/useLiquidPress-BooG97RY.js +39 -0
- package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
- package/dist/useScrollChrome-D66AVP7C.js +258 -0
- package/dist/useSpring-C0jyvEJB.js +40 -0
- package/dist/useSpringMount-BWDnKIwh.js +71 -0
- package/dist/useSpringPress-B1-Czp-V.js +36 -0
- package/dist/{useTouchGate-28Tk2-t2.js → useTouchGate-CBZTD4SD.js} +1 -1
- package/dist/useViewTransition-CUI1nAgn.js +95 -0
- package/dist/vSpecular-EX7loENl.js +68 -0
- package/dist/vendor-B2qOlYY3.js +239 -0
- package/dist/virtual.d.ts +1 -0
- package/dist/virtual.js +225 -0
- package/dist/watercolor-dot.js +117 -74
- package/package.json +252 -28
- package/src/styles/animations.css +46 -12
- package/src/styles/border-progress.css +109 -0
- package/src/styles/cards.css +145 -0
- package/src/styles/completion-seal.css +131 -0
- package/src/styles/configurator.css +55 -0
- package/src/styles/critical-partition.mjs +162 -0
- package/src/styles/dock/cta-seat.css +87 -0
- package/src/styles/dock/density.css +198 -0
- package/src/styles/dock/layers.css +101 -29
- package/src/styles/dock/morph-bridge.css +54 -18
- package/src/styles/dock/morph.css +132 -7
- package/src/styles/dock/overflow.css +28 -2
- package/src/styles/dock/search.css +68 -0
- package/src/styles/dock/shape.css +124 -0
- package/src/styles/dock/shell.css +77 -21
- package/src/styles/dock/stack-rail.css +264 -0
- package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/src/styles/dock-controls/icon-button.css +14 -0
- package/src/styles/dock.css +43 -1
- package/src/styles/drawer.css +81 -35
- package/src/styles/glass/accent-tone.css +66 -0
- package/src/styles/glass/control-surfaces.css +167 -0
- package/src/styles/glass/deep.css +44 -0
- package/src/styles/glass/ladder.css +147 -41
- package/src/styles/glass/material.css +78 -15
- package/src/styles/glass/reveal.css +136 -0
- package/src/styles/glass/rim.css +110 -0
- package/src/styles/glass/surfaces.css +148 -129
- package/src/styles/glass-refract.css +96 -44
- package/src/styles/glass-specular-track.css +7 -0
- package/src/styles/glass.css +13 -0
- package/src/styles/hover-popover.css +7 -6
- package/src/styles/icon-chip.css +77 -15
- package/src/styles/index.css +27 -0
- package/src/styles/instrument-chassis.css +66 -3
- package/src/styles/scroll-choreography.css +300 -0
- package/src/styles/scroll-chrome.css +123 -0
- package/src/styles/scroll-driven.css +38 -0
- package/src/styles/segmented-tabs.css +81 -14
- package/src/styles/theme/bridges.css +33 -0
- package/src/styles/theme/literals.css +11 -2
- package/src/styles/theme/radius.css +24 -2
- package/src/styles/tokens/color-radius.css +13 -3
- package/src/styles/tokens/dark-arm.css +137 -32
- package/src/styles/tokens/glass-deep.css +100 -0
- package/src/styles/tokens/glass-fx.css +376 -0
- package/src/styles/tokens/glass.css +131 -351
- package/src/styles/tokens/light-dark.css +16 -3
- package/src/styles/tokens/offsets.css +143 -0
- package/src/styles/tokens/on-glass-fg.css +39 -0
- package/src/styles/tokens/property-regs.css +260 -0
- package/src/styles/tokens/scale-paper.css +168 -96
- package/src/styles/tokens/scheme-motion.css +114 -38
- package/src/styles/tokens/scroll-tokens.css +123 -0
- package/src/styles/tokens/sizing-config.css +110 -0
- package/{dist/styles/tokens/offsets-sizing.css → src/styles/tokens/sizing.css} +92 -204
- package/src/styles/tokens.css +14 -3
- package/src/styles/typography/semantic.css +26 -13
- package/src/styles/typography/utilities.css +22 -7
- package/src/styles/utilities/a11y-overrides.css +20 -5
- package/src/styles/utilities/animate.css +27 -24
- package/src/styles/utilities/base-misc.css +307 -0
- package/src/styles/utilities/base.css +47 -261
- package/src/styles/utilities/btn.css +17 -4
- package/src/styles/utilities/components.css +31 -6
- package/src/styles/utilities/metal.css +215 -0
- package/src/styles/utilities.css +14 -7
- package/dist/CardAction-XH4YBVEK.js +0 -158
- package/dist/ContextMenuContent-ON3x7cuk.js +0 -85
- package/dist/DialogFooter-8eZbdmPc.js +0 -165
- package/dist/HoverCardContent-DkMaQzH5.js +0 -83
- package/dist/Input-DVG_J0ne.js +0 -55
- package/dist/Notification-DKjKsQq8.js +0 -100
- package/dist/NumberFieldContent-1VtwDSgf.js +0 -145
- package/dist/Separator-BArl4OaB.js +0 -37
- package/dist/Switch-Dr--uLGH.js +0 -47
- package/dist/Toaster-Bm_HQSpc.js +0 -263
- package/dist/ToggleGroupItem-Dzk9hWsF.js +0 -157
- package/dist/TooltipProvider-B3MkB_8P.js +0 -104
- package/dist/button-BNDWhAZb.js +0 -81
- package/dist/check-njhk-vfu.js +0 -7
- package/dist/chevron-down-DKkxb4VV.js +0 -7
- package/dist/chevron-right-CPXbqQQz.js +0 -7
- package/dist/chevron-up-n_24SqI-.js +0 -7
- package/dist/color-DweYl7pE.js +0 -86
- package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
- package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
- package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
- package/dist/createLucideIcon-DydS2qgk.js +0 -43
- package/dist/minimize-2-BV31Ob_h.js +0 -38
- package/dist/resolveCanvasColor-BBiYfp8g.js +0 -11
- package/dist/search-BSGrf2Sk.js +0 -12
- package/dist/styles/dock/rail-extend.css +0 -397
- package/dist/useCanvas2D-ClrQuZtp.js +0 -96
- package/dist/useConfiguratorState-kiIlun8I.js +0 -303
- package/dist/useRAFLoop-CdwJ7284.js +0 -109
- package/dist/useSpecularTracking-Bo5su68i.js +0 -32
- package/dist/useSpringMount-CvopqiFr.js +0 -108
- package/dist/useViewTransition-COsPjQVZ.js +0 -47
- package/dist/x-BUwTKe50.js +0 -10
- package/src/styles/dock/rail-extend.css +0 -397
- /package/dist/{CollapsibleContent-C_s6fG7r.js → CollapsibleContent-68dEXIAl.js} +0 -0
- /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-CxsHSyMj.js} +0 -0
- /package/dist/{Label-Ck9SWEKM.js → Label-C2ejNWeC.js} +0 -0
- /package/dist/{ModalOverlay-CkPRRgl_.js → ModalOverlay-D1VrWyoi.js} +0 -0
- /package/dist/{PaperBackdrop-nBKe0vkB.js → PaperBackdrop-CqwjnfLv.js} +0 -0
- /package/dist/{SelectGroup-Dcczq44n.js → SelectGroup-BFiod7X2.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-CBt_VvXa.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
- /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
- /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
- /package/dist/{createContext-B2RaZ-b8.js → createContext-CpBNTRMI.js} +0 -0
- /package/dist/{math-DeuJwLFx.js → math-Eb0w3LqU.js} +0 -0
- /package/dist/{menuItemVariants-DWRQXBxJ.js → menuItemVariants-D8VNHq22.js} +0 -0
- /package/dist/{prng-Cg22zv8g.js → prng-B-d9eYX8.js} +0 -0
- /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
- /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
- /package/dist/{useLiquidFlex-C12hXwOZ.js → useLiquidFlex-UmA6LMZu.js} +0 -0
- /package/dist/{useResizeObserver-V6nq5gJb.js → useResizeObserver-Bpoi7tRE.js} +0 -0
- /package/dist/{useResolveTokenColor-NUG2zYAW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
- /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
- /package/dist/{useSurfaceAxis-CMnF2zHb.js → useSurfaceAxis-g0NloYEF.js} +0 -0
- /package/dist/{useTimer-B_PAasDL.js → useTimer-BHJOKr35.js} +0 -0
- /package/dist/{useUserInvalidAria-CDfJuakL.js → useUserInvalidAria-y5namzeE.js} +0 -0
- /package/dist/{useViewportReady-CvBcCYDf.js → useViewportReady-anbac3m6.js} +0 -0
|
@@ -34,24 +34,52 @@
|
|
|
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
|
+
/* BC.W-DOCK-SHRINK-BLUR — the BB.W-LIQUID-REVEAL bloom-from-source decongest is a
|
|
66
|
+
TRANSIENT, not a resting state. HEAD keyed the bare `.glass-dock` self-blur off
|
|
67
|
+
`--dock-expand-t`, which AT REST resolves to the class endpoint → a PERMANENT 3px
|
|
68
|
+
self-blur on the resting collapsed dock, STACKED on the 9px backdrop (the "blurry
|
|
69
|
+
mess when shrunken", glass-dock-codebase §2.4). The FIX gates the self-blur (a
|
|
70
|
+
SURFACE `filter` arm on the dock's own pixels — NOT `backdrop-filter`, so the glass
|
|
71
|
+
plate blur is never clobbered; compositor-safe) to `[data-morphing]`: at REST the
|
|
72
|
+
dock is CRISP; ONLY mid-morph does the 3px bloom settle to 0 as the pill
|
|
73
|
+
materializes (the iOS-27 bloom, gesture-only). The backdrop blur (the glass
|
|
74
|
+
material) is UNTOUCHED. PRM zeroes it (the carve below). Clean break, no alias. */
|
|
75
|
+
.glass-dock {
|
|
76
|
+
--dock-reveal-blur: 0px; /* resting: CRISP — no own-pixel self-blur */
|
|
77
|
+
}
|
|
78
|
+
.glass-dock[data-morphing] {
|
|
79
|
+
--dock-reveal-blur: 3px; /* the transient decongest bloom — mid-morph only */
|
|
80
|
+
filter: blur(calc(var(--dock-reveal-blur) * (1 - var(--dock-expand-t, 1))));
|
|
81
|
+
}
|
|
82
|
+
|
|
55
83
|
/* The morphing root chrome — background / border-color interpolate between the
|
|
56
84
|
collapsed and expanded endpoints on the ONE `--dock-expand-t` scalar. Scoped
|
|
57
85
|
to the horizontal dock (`:not(.vertical)`) — the inline-axis aperture morph;
|
|
@@ -98,6 +126,43 @@
|
|
|
98
126
|
);
|
|
99
127
|
}
|
|
100
128
|
|
|
129
|
+
/* BB.W-DOCK-MORPH-FAMILY (f) — the VERTICAL chrome-interp un-gate (BB-1). The
|
|
130
|
+
bg/border interp is AXIS-INVARIANT (a color mix reads the scalar with no
|
|
131
|
+
axis), so the vertical dock interpolates its plate between the SAME
|
|
132
|
+
collapsed↔expanded endpoints on the SAME `--dock-expand-t` scalar the
|
|
133
|
+
horizontal block reads — the ONE `DOCK_SPRING` clock, no second clock, no
|
|
134
|
+
re-added CSS transition. This PARALLEL `.vertical` block (specificity 0,2,0,
|
|
135
|
+
source-order AFTER the shell.css static `.glass-dock.vertical` plate so it
|
|
136
|
+
wins at equal specificity) is the inverse-axis twin of the horizontal block
|
|
137
|
+
above — the box-size morph already rides `block-size` on `layers.css`'s
|
|
138
|
+
`--dock-morph-t`; this gives the plate chrome the matching directional blend
|
|
139
|
+
so the vertical collapse↔expand no longer SNAPS its bg/border discretely. At
|
|
140
|
+
the rest endpoints `--dock-expand-t` resolves to the class value (0 collapsed
|
|
141
|
+
/ 1 expanded), so the resting look is exact — byte-equivalent to the shell.css
|
|
142
|
+
static plate it supersedes during the morph. */
|
|
143
|
+
.glass-dock.vertical {
|
|
144
|
+
background: color-mix(
|
|
145
|
+
in srgb,
|
|
146
|
+
color-mix(
|
|
147
|
+
in oklab,
|
|
148
|
+
var(--glass-bg-dock, var(--glass-bg-wash)),
|
|
149
|
+
var(--glass-tint-source) var(--glass-tint-strength)
|
|
150
|
+
)
|
|
151
|
+
calc(var(--dock-expand-t, 1) * 100%),
|
|
152
|
+
color-mix(
|
|
153
|
+
in oklab,
|
|
154
|
+
var(--glass-bg-wash),
|
|
155
|
+
var(--glass-tint-source) var(--glass-tint-strength)
|
|
156
|
+
)
|
|
157
|
+
);
|
|
158
|
+
border-color: color-mix(
|
|
159
|
+
in srgb,
|
|
160
|
+
var(--glass-border-dock, var(--glass-border-wash))
|
|
161
|
+
calc(var(--dock-expand-t, 1) * 100%),
|
|
162
|
+
var(--glass-border-floating)
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
|
|
101
166
|
/* The padding morph is split out + scoped `:not(.dock-overflow-wrap)` so the
|
|
102
167
|
wrap variant's own padding rules (W04 territory — `.dock-overflow-wrap` +
|
|
103
168
|
its `@media` snap-back) are NOT clobbered by this higher-specificity longhand.
|
|
@@ -142,6 +207,35 @@
|
|
|
142
207
|
);
|
|
143
208
|
}
|
|
144
209
|
|
|
210
|
+
/* BB.W-DOCK-MORPH-FAMILY (f) — the VERTICAL padding interp is the AXIS-INVERSE
|
|
211
|
+
of the horizontal layout-isolation contract above. The vertical collapse↔
|
|
212
|
+
expand is a BLOCK-HEIGHT aperture (the box-size arm morphs `block-size`,
|
|
213
|
+
layers.css), so the CROSS (inline) axis MUST be invariant across the morph —
|
|
214
|
+
else the dock's outer WIDTH changes on collapse and reflows its horizontal
|
|
215
|
+
siblings (the §1 contract, mirrored onto the vertical axis). So `padding-
|
|
216
|
+
inline` is PINNED at the expanded inline value in BOTH states, and ONLY
|
|
217
|
+
`padding-block` morphs to tighten the collapsed pill on the morph axis. The
|
|
218
|
+
collapsed block-pad endpoint is the EXPANDED inline pad (max'd with the
|
|
219
|
+
consumer `--dock-collapsed-padding` handle) so the height-pinned-cross collapsed
|
|
220
|
+
pill is SYMMETRIC. Specificity 0,2,0 source-order after shell.css's static
|
|
221
|
+
`.glass-dock.vertical` padding so this wins at equal specificity; at the rest
|
|
222
|
+
endpoints `--dock-expand-t` is the class value so the look is exact. Scoped to
|
|
223
|
+
the NON-scroll/non-wrap vertical dock. */
|
|
224
|
+
.glass-dock.vertical:not(.dock-overflow-wrap) {
|
|
225
|
+
--dock-pad-collapsed: max(
|
|
226
|
+
var(--dock-padding-inline, 0.5rem),
|
|
227
|
+
var(--dock-collapsed-padding, 0px)
|
|
228
|
+
);
|
|
229
|
+
/* inline padding is INVARIANT — the cross axis, pinned both states so the
|
|
230
|
+
outer inline-size never changes → 0px horizontal sibling reflow. */
|
|
231
|
+
padding-inline: var(--dock-padding-inline, 0.5rem);
|
|
232
|
+
padding-block: calc(
|
|
233
|
+
var(--dock-pad-collapsed) +
|
|
234
|
+
(var(--dock-padding-block, 0.375rem) - var(--dock-pad-collapsed)) *
|
|
235
|
+
var(--dock-expand-t, 1)
|
|
236
|
+
);
|
|
237
|
+
}
|
|
238
|
+
|
|
145
239
|
/* AX.W01 — the collapsed padding / background / border-color are RETIRED here
|
|
146
240
|
(the `--dock-expand-t` morph block above is the single authority for those
|
|
147
241
|
three axes — they interpolate, never snap). `.collapsed` keeps only its
|
|
@@ -260,6 +354,7 @@
|
|
|
260
354
|
|
|
261
355
|
.glass-dock.collapsed:hover:not([data-morphing]) {
|
|
262
356
|
scale: var(--dock-collapsed-hover-scale);
|
|
357
|
+
will-change: transform; /* BC.W-DOCK-ENGINE move 2 — promote the armed-at-rest scale lift */
|
|
263
358
|
}
|
|
264
359
|
|
|
265
360
|
/* J.W5.C — held-state substrate response.
|
|
@@ -330,7 +425,23 @@
|
|
|
330
425
|
ink, which clears ~10:1). */
|
|
331
426
|
:where(.glass-dock) {
|
|
332
427
|
--glass-tint-source: var(--glass-tint-ink);
|
|
333
|
-
|
|
428
|
+
/* BC.W-ADAPTIVE-RECONCILE — the dock JOINS the continuous observer driver (the
|
|
429
|
+
literal G2 surface: "darken DYNAMICALLY like iOS 27"). The dock's own
|
|
430
|
+
`useGlassBackdropLuminance` observer samples the threaded `:background-canvas`
|
|
431
|
+
(aurora/blob) and WRITES `--glass-backdrop-luma`; this clamp READS it and lerps
|
|
432
|
+
the plate from the warm-cream floor toward the ≤24% AA ceiling as the field
|
|
433
|
+
brightens past the knee — deepening over a bright bleed, lifting translucent over
|
|
434
|
+
a dark trough (the SAME clamp the content/overlay tiers get — ONE axis/driver/
|
|
435
|
+
signal; the discrete `@container` bucket RETIRED). Calm (luma ≤ knee) → floor. */
|
|
436
|
+
--glass-tint-strength: clamp(
|
|
437
|
+
var(--glass-tint-strength-floor),
|
|
438
|
+
calc(
|
|
439
|
+
var(--glass-tint-strength-floor) +
|
|
440
|
+
(var(--glass-tint-strength-aa) - var(--glass-tint-strength-floor)) *
|
|
441
|
+
max(0, (var(--glass-backdrop-luma, 0) - var(--glass-backdrop-luma-knee, 0.6)) / (1 - var(--glass-backdrop-luma-knee, 0.6)))
|
|
442
|
+
),
|
|
443
|
+
var(--glass-tint-strength-aa)
|
|
444
|
+
);
|
|
334
445
|
--dock-fg-on-aurora: var(--glass-tint-ink);
|
|
335
446
|
--muted-foreground: var(--foreground);
|
|
336
447
|
}
|
|
@@ -372,3 +483,17 @@
|
|
|
372
483
|
}
|
|
373
484
|
}
|
|
374
485
|
}
|
|
486
|
+
|
|
487
|
+
/* BB.W-LIQUID-REVEAL — the dock-expand bloom beat's blur-settle is OFF under
|
|
488
|
+
`prefers-reduced-motion: reduce` (the vestibular floor): a reduced-motion dock reads
|
|
489
|
+
crisp at every state, no in-between blur frames.
|
|
490
|
+
BC.W-DOCK-SHRINK-BLUR — the self-blur is now gated to `[data-morphing]`, so the PRM
|
|
491
|
+
carve zeroes it on the ARMED scope too (specificity 0,2,0) — a PRM dock that briefly
|
|
492
|
+
arms `[data-morphing]` carries no 3px bloom; the resting `.glass-dock` is already
|
|
493
|
+
crisp by the re-gate. */
|
|
494
|
+
@media (prefers-reduced-motion: reduce) {
|
|
495
|
+
.glass-dock,
|
|
496
|
+
.glass-dock[data-morphing] {
|
|
497
|
+
--dock-reveal-blur: 0px;
|
|
498
|
+
}
|
|
499
|
+
}
|
|
@@ -246,8 +246,34 @@
|
|
|
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
|
+
);
|
|
265
|
+
/* BC.W-DOCK-ENGINE move 3 (the Atlas A-9 fold) — RE-DECLARE the in-dock
|
|
266
|
+
toggle glyph knob on coarse beside `--dock-icon-glyph`. Its `:root`
|
|
267
|
+
default tracks `--dock-icon-glyph`, but a `:root`-only default would
|
|
268
|
+
freeze at the `:root` `--dock-scale` (the identity 1) while the coarse
|
|
269
|
+
`--dock-icon-glyph` above lifts — the AZ.R5-TOKENS substitution-vs-
|
|
270
|
+
inheritance dead-knob (the SAME trap the dock-scale re-declare closed,
|
|
271
|
+
mirrored for the toggle glyph). Re-declaring it HERE, against the
|
|
272
|
+
coarse-re-resolved `--dock-icon-glyph`, keeps the in-dock dark-toggle
|
|
273
|
+
glyph optically uniform with the nav glyphs on coarse AND fine pointer.
|
|
274
|
+
The `--dark-mode-toggle-padding` clamp (dark-mode-toggle.css) subtracts
|
|
275
|
+
THIS knob, so the box pad re-resolves in lockstep too. */
|
|
276
|
+
--dock-control-glyph-size: var(--dock-icon-glyph);
|
|
251
277
|
--dock-collapsed-padding: calc(0.25rem * var(--dock-scale));
|
|
252
278
|
--dock-layer-tab-size: calc(1.75rem * var(--dock-scale));
|
|
253
279
|
/* --dock-collapsed-summary-min-size derives from --dock-layer-height (the
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/* dock/search.css — the dock-as-native-dynamic-search-bar field surface (BC.W-DOCK-SEARCH).
|
|
2
|
+
*
|
|
3
|
+
* The active dock-search field + its placeholder + the result rows read CLEARLY forward
|
|
4
|
+
* over whatever backdrop the dock floats on (≥4.5:1, the W55 darken seam) — never the
|
|
5
|
+
* pale-ghost-fading-into-content trap (the NN/g defect, WWDC §219 "buttons remain
|
|
6
|
+
* legible"). The field surface composes the W55 `--glass-tint-strength-aa` bright-bucket
|
|
7
|
+
* darken at the ELEMENT level (the `color-mix(in oklab, <rung>, var(--glass-tint-source)
|
|
8
|
+
* var(--glass-tint-strength))` seam glass/ladder.css + morph.css already compose) — NOT
|
|
9
|
+
* the RAW pre-substituted `--glass-bg-dock` token (the substitution-vs-inheritance trap
|
|
10
|
+
* the dock surfaces already hit: a surface reading the pre-baked `--glass-bg-dock` baked
|
|
11
|
+
* at `:root` 0% strength does NOT darken — the pale-fade). At the 0%/floor default the
|
|
12
|
+
* inner oklab mix is a no-op (byte-identical to the un-tinted rung); under the bright
|
|
13
|
+
* bucket it darkens-over-light (and lifts-over-dark per W-DARK-MATERIAL).
|
|
14
|
+
*
|
|
15
|
+
* The result rows ride `.glass-menu-row` (the glass-quiet hover-lift, BA.W-MENU-GLASS —
|
|
16
|
+
* CONSUMED here, the glassify is BC.W-SEARCH-CUSTOM's). The customization-surface axes
|
|
17
|
+
* (size/surface/variant) are BC.W-SEARCH-CUSTOM's — this partial only seats the field +
|
|
18
|
+
* the legibility seam. The morph itself is the dock's OWN `--dock-morph-t` + the
|
|
19
|
+
* byte-untouched `morph-bridge.css` metaball (READ-ONLY — bound, never edited). */
|
|
20
|
+
|
|
21
|
+
@layer components {
|
|
22
|
+
/* The search-field region inside the morph aperture. The consumer slots its
|
|
23
|
+
<SearchBar>/<FuzzySearch> here; this rule owns the legibility seam + the layout
|
|
24
|
+
inside the aperture (a column: the field over its dropdown). It is present ONLY on
|
|
25
|
+
a `[data-search]` dock (additive — a non-search dock never carries it). */
|
|
26
|
+
.glass-dock[data-search] .dock-search-field {
|
|
27
|
+
display: flex;
|
|
28
|
+
flex-direction: column;
|
|
29
|
+
inline-size: 100%;
|
|
30
|
+
min-inline-size: 0;
|
|
31
|
+
gap: var(--dock-search-field-gap, 0.375rem);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* The ACTIVE field surface — the W55 element-level oklab tint (NOT the raw
|
|
35
|
+
`--glass-bg-dock`). The field reads the floating rung darkened toward the warm-ink
|
|
36
|
+
at the bright-bucket strength, so it reads ≥4.5:1 over a busy backdrop. The
|
|
37
|
+
`--glass-tint-source`/`--glass-tint-strength` are the SAME element-level customs
|
|
38
|
+
the dock plate self-engages (morph.css's `:where(.glass-dock)` rule re-points them
|
|
39
|
+
under the bright bucket); this field rides that lockstep, never a field-local
|
|
40
|
+
recipe. The field TEXT is `--foreground` (the full warm ink); the
|
|
41
|
+
placeholder/muted caption is `--on-glass-muted` (5.76:1 vs the plate). */
|
|
42
|
+
.glass-dock[data-search] .dock-search-field .input-bar {
|
|
43
|
+
background: color-mix(
|
|
44
|
+
in oklab,
|
|
45
|
+
var(--glass-bg-floating),
|
|
46
|
+
var(--glass-tint-source) var(--glass-tint-strength)
|
|
47
|
+
);
|
|
48
|
+
color: var(--foreground);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* The placeholder + the autocomplete ghost-text + any muted caption inside the field
|
|
52
|
+
read the on-glass muted rung (NOT `--muted-foreground`, which is calibrated against
|
|
53
|
+
the opaque page and collapses on a translucent darkened plate). */
|
|
54
|
+
.glass-dock[data-search] .dock-search-field .input-bar-field::placeholder,
|
|
55
|
+
.glass-dock[data-search] .dock-search-field .dock-search-ghost,
|
|
56
|
+
.glass-dock[data-search] .dock-search-field .dock-search-result-meta {
|
|
57
|
+
color: var(--on-glass-muted);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* The dropdown result rows ride the shared `.glass-menu-row` glass-quiet hover-lift
|
|
61
|
+
(BA.W-MENU-GLASS — CONSUMED, not re-authored). The dock-search list applies
|
|
62
|
+
`.glass-menu-row` per row; this rule reaches the selected/highlighted row through
|
|
63
|
+
the SAME register the menu families use (no flat `bg-accent`/`bg-muted` fork). The
|
|
64
|
+
active result reads the data-highlighted state the menu recipe already paints. */
|
|
65
|
+
.glass-dock[data-search] .dock-search-field .dock-search-result {
|
|
66
|
+
color: var(--foreground);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/* dock/shape.css — BC.W-DOCK-ARBITRARY: the arbitrary-shape morph register.
|
|
2
|
+
*
|
|
3
|
+
* The dock is no longer locked to "a rectangle that grows wider/taller." Its SHAPE
|
|
4
|
+
* is a SCALAR PARAMETER on the ONE `--dock-morph-t` clock (the BC.W-DOCK-ENGINE
|
|
5
|
+
* buttery scalar): the corner profile LERPS between a `--dock-shape-from`/
|
|
6
|
+
* `--dock-shape-to` radius pair, an OPT-IN `clip-path` silhouette LERPS between a
|
|
7
|
+
* `--dock-shape-clip-from`/`--dock-shape-clip-to` pair, and a `useLiquidFlex`
|
|
8
|
+
* volume-preserving squish couples the deformation. So the dock FLOWS between
|
|
9
|
+
* arbitrary silhouettes — a circle, a pill, a wide bar, a tall rail, a teardrop —
|
|
10
|
+
* as one continuous liquid-glass surface (the iOS-27 control-center materialization,
|
|
11
|
+
* apple-ios27.md §3.1 "physically morphs from one shape to another").
|
|
12
|
+
*
|
|
13
|
+
* THE COMPOSITOR FLOOR (apple-ios27.md §3.1 + motion-canon P5): the shape morph
|
|
14
|
+
* animates ONLY `border-radius`/`clip-path`/`--*` — compositor/paint properties,
|
|
15
|
+
* ZERO per-frame layout. The footprint is reached by the reserved-`scale()` morph
|
|
16
|
+
* (layers.css, byte-untouched here), NEVER a per-frame size lerp. proof:dock-arbitrary
|
|
17
|
+
* + proof:no-layout-animation both hold.
|
|
18
|
+
*
|
|
19
|
+
* THE LIBRARY DEFAULT IS THE CIRCLE↔PILL IDENTITY (CLAUDE.md the collapsed-perfect-
|
|
20
|
+
* circle): `--dock-shape-from`/`--dock-shape-to` default to `--radius-dock` (9999px)
|
|
21
|
+
* on both endpoints — a no-op lerp byte-identical to the prior static
|
|
22
|
+
* `border-radius: var(--radius-dock)` — and the clip pair defaults `none`/`none`
|
|
23
|
+
* (the rectangle/pill common case needs no clip). The arbitrary teardrop/blob
|
|
24
|
+
* silhouette is OPT-IN: a consumer sets the shape tokens on the dock scope
|
|
25
|
+
* (presets-in-consumers). Clean break (MEMORY: no backwards compat) — the prior
|
|
26
|
+
* hardcoded circle/pill radius becomes the token DEFAULT, no `--dock-radius-legacy`.
|
|
27
|
+
*
|
|
28
|
+
* @import-ed by dock.css in cascade order, in the SAME `@layer components`. */
|
|
29
|
+
|
|
30
|
+
@layer components {
|
|
31
|
+
/* ── The corner-profile lerp (A1 — the shape is a scalar parameter) ───────────
|
|
32
|
+
The dock surface radius interpolates the `--dock-shape-from`/`--dock-shape-to`
|
|
33
|
+
token pair on the ONE `--dock-expand-t` scalar (the directional expanded-ness
|
|
34
|
+
the BC.W-DOCK-ENGINE chrome interp rides; at rest it resolves to the class
|
|
35
|
+
endpoint, 0 collapsed / 1 expanded, so the resting corner is exact). This
|
|
36
|
+
GENERALIZES the prior two hardcoded class endpoints into a consumer-targetable
|
|
37
|
+
parameter: `from` is the collapsed silhouette's corner (the perfect circle,
|
|
38
|
+
9999px), `to` is the expanded silhouette's corner (the pill / an arbitrary
|
|
39
|
+
profile). A consumer overrides either token on the dock scope to morph to an
|
|
40
|
+
arbitrary corner.
|
|
41
|
+
|
|
42
|
+
This is the SINGLE radius authority (shell.css's prior static `border-radius:
|
|
43
|
+
var(--radius-dock)` is GENERALIZED here — no dead static, no duplicate, clean
|
|
44
|
+
break). Both tokens default to `--radius-dock` (9999px) so the lerp is a NO-OP at
|
|
45
|
+
the library default — byte-identical to the prior static, the circle↔pill identity
|
|
46
|
+
preserved. The token-driven `border-radius` interp is a compositor/paint property
|
|
47
|
+
on the registered `--dock-expand-t` `<number>`, NOT a transition
|
|
48
|
+
(proof:no-layout-animation stays GREEN). shape.css is imported AFTER shell.css so
|
|
49
|
+
this rule is the cascade winner for the dock corner. */
|
|
50
|
+
.glass-dock {
|
|
51
|
+
border-radius: calc(
|
|
52
|
+
var(--dock-shape-from, var(--radius-dock)) +
|
|
53
|
+
(var(--dock-shape-to, var(--radius-dock)) -
|
|
54
|
+
var(--dock-shape-from, var(--radius-dock))) *
|
|
55
|
+
var(--dock-expand-t, 1)
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* ── The arbitrary silhouette — the OPT-IN `clip-path` lerp (A1) ──────────────
|
|
60
|
+
DEFAULT-OFF: at the library default `--dock-shape-clip-from`/`--dock-shape-clip-to`
|
|
61
|
+
are `none`, so this rule resolves `clip-path: none` (the rectangle/pill common
|
|
62
|
+
case needs no clip; the box-morph + corner lerp above is the whole shape). A
|
|
63
|
+
consumer opts into an arbitrary teardrop/blob silhouette by setting the clip
|
|
64
|
+
tokens to two compatible `inset()`/`path()`/`shape()` values; the silhouette then
|
|
65
|
+
LERPS between them on `--dock-morph-t` via the `from` * (1−t) + `to` * t weighting
|
|
66
|
+
below. `clip-path` is a compositor-friendly property — the silhouette morphs with
|
|
67
|
+
ZERO reflow (apple-ios27.md §3.1).
|
|
68
|
+
|
|
69
|
+
The lerp is expressed as a `clip-path` whose two endpoints carry per-endpoint
|
|
70
|
+
opacity-like weights via the scalar: the active silhouette is the `to`-clip once
|
|
71
|
+
the morph crosses, the `from`-clip before. The web platform cannot continuously
|
|
72
|
+
interpolate two arbitrary mismatched-topology `clip-path` functions, so the
|
|
73
|
+
opt-in consumer supplies TOPOLOGY-COMPATIBLE endpoints (two `inset()`s, or two
|
|
74
|
+
`path()`s with equal command counts) — the AX.W42 fold-7 topology limit is
|
|
75
|
+
RESPECTED (a mismatched-topology V↔H morph occludes its reflow in the goo-merge,
|
|
76
|
+
BC.W-LIQUID-MORPH, not a continuous clip morph THROUGH the change). The default
|
|
77
|
+
`none`/`none` opts the whole register off so the limit never bites the common
|
|
78
|
+
case. The custom property carries the consumer's interpolable pair; the engine
|
|
79
|
+
resolves it on the scalar only when set. */
|
|
80
|
+
.glass-dock {
|
|
81
|
+
--dock-shape-clip: var(--dock-shape-clip-to, none);
|
|
82
|
+
clip-path: var(--dock-shape-clip);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* While morphing, the opt-in silhouette LERPS: before the midpoint the `from`-clip
|
|
86
|
+
reads, after it the `to`-clip, so the silhouette flows from one to the other as
|
|
87
|
+
the box scales under it (the corner + footprint + silhouette all on the ONE
|
|
88
|
+
scalar). The `none`/`none` default makes this a no-op (`clip-path: none` both
|
|
89
|
+
sides), so the rectangle/pill morph never pays the clip cost; the arbitrary
|
|
90
|
+
register engages ONLY when a consumer sets the clip tokens. */
|
|
91
|
+
.glass-dock[data-morphing] {
|
|
92
|
+
--dock-shape-clip: var(--dock-shape-clip-from, none);
|
|
93
|
+
}
|
|
94
|
+
.glass-dock[data-morphing]:where(.expanded, .always-expanded) {
|
|
95
|
+
/* expanding (0→1): once past the midpoint the `to`-silhouette is the target */
|
|
96
|
+
--dock-shape-clip: var(--dock-shape-clip-to, none);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* ── The squish — the `useLiquidFlex` `--stretch` deformation (A4) ────────────
|
|
100
|
+
The shape morph couples the volume-preserving squish the tab-indicator +
|
|
101
|
+
useDockOrientationMorph already speak: `scale: var(--stretch) calc(1/var(--stretch))`
|
|
102
|
+
along the morph axis, capped LOW at `--dock-morph-max-stretch` (~1.08) by
|
|
103
|
+
useLiquidFlex itself (the ONE squish source — no forked deformation math). The
|
|
104
|
+
plate DEFORMS like liquid as it changes shape — a fast morph swells, a slow one
|
|
105
|
+
barely. The driver (useDockOrientationMorph) writes `--stretch` on the dock scope;
|
|
106
|
+
at rest `--stretch` is unset → 1/1 (no squish). The reciprocal pairing preserves
|
|
107
|
+
volume (stretch along travel, compress across). This is compositor-only (a
|
|
108
|
+
`scale` transform), composed WITH the reserved-footprint `scaleX/scaleY` morph
|
|
109
|
+
(layers.css) — the box scale rides `--dock-morph-scale`, the squish rides
|
|
110
|
+
`--stretch`, both transforms multiply on the compositor.
|
|
111
|
+
|
|
112
|
+
Scoped to `[data-morphing]` so the squish is a morph-transient (at rest the plate
|
|
113
|
+
is un-squished); the cross-axis is the morph axis's reciprocal. Horizontal docks
|
|
114
|
+
stretch X / compress Y; vertical stretch Y / compress X (the inverse-axis twin,
|
|
115
|
+
mirroring the bridge plates' per-orientation squish in morph-bridge.css). The
|
|
116
|
+
squish multiplies onto the dock's OWN transform box (the shell), distinct from the
|
|
117
|
+
inner `.dock-layers` reserved-scale box, so the two do not fight. */
|
|
118
|
+
.glass-dock[data-morphing]:not(.vertical) {
|
|
119
|
+
scale: var(--stretch, 1) calc(1 / var(--stretch, 1));
|
|
120
|
+
}
|
|
121
|
+
.glass-dock[data-morphing].vertical {
|
|
122
|
+
scale: calc(1 / var(--stretch, 1)) var(--stretch, 1);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -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.
|
|
@@ -110,7 +129,7 @@
|
|
|
110
129
|
host-constrained width it already has there. The default free-floating
|
|
111
130
|
dock shrink-wraps to its content (AV.W16 TW3 made this a default and
|
|
112
131
|
silently broke dock sizing for the common case). */
|
|
113
|
-
|
|
132
|
+
/* BC.W-DOCK-ARBITRARY — the base corner is the shape register's token lerp (dock/shape.css, the single radius authority generalizing the prior static). */
|
|
114
133
|
white-space: nowrap;
|
|
115
134
|
max-inline-size: var(--dock-max-inline-size);
|
|
116
135
|
padding: var(--dock-padding-block, 0.375rem) var(--dock-padding-inline, 0.5rem);
|
|
@@ -129,10 +148,13 @@
|
|
|
129
148
|
);
|
|
130
149
|
backdrop-filter: var(--dock-surface-blur);
|
|
131
150
|
border: 1.5px solid var(--glass-border-dock, var(--glass-border-resting));
|
|
132
|
-
/*
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
151
|
+
/* BC.W-BLACK-BAR D2 — the dock rim is the DIRECTIONAL pair (bright catch-light
|
|
152
|
+
on the TOP edge, faint warm under-shadow on the BOTTOM — glass-fx.css), the
|
|
153
|
+
leading inset layers of the dock shadow stack. RETIRES the omnidirectional
|
|
154
|
+
`--glass-edge-light` ring that fought the (now ≤4% α) `--glass-border-dock`
|
|
155
|
+
perimeter; the navigation band reads its rim from the SAME corrected token
|
|
156
|
+
source as cards/dialogs (no dock-local dark rim re-paste). */
|
|
157
|
+
box-shadow: var(--glass-rim-top), var(--glass-rim-bottom), var(--shadow-dock-override, var(--shadow-dock));
|
|
136
158
|
}
|
|
137
159
|
|
|
138
160
|
/* AW.W2 — the box IS the reveal aperture (clip-reveal one-clock morph).
|
|
@@ -273,22 +295,40 @@
|
|
|
273
295
|
shell above; the cross axis stays visible there. */
|
|
274
296
|
padding: var(--dock-padding-block, 0.375rem);
|
|
275
297
|
border-radius: var(--radius-dock);
|
|
276
|
-
/*
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
298
|
+
/* BB.W-DOCK-MORPH-FAMILY (f) — the stale "a vertical rail is ALWAYS-EXPANDED
|
|
299
|
+
(no collapse↔expand morph)" assumption is RETIRED (it was false since
|
|
300
|
+
vertical-collapse shipped: `alwaysExpanded` defaults FALSE, so a vertical
|
|
301
|
+
dock genuinely collapses its `block-size`). The vertical plate's
|
|
302
|
+
bg/border/padding/radius now MORPH on the SAME `--dock-expand-t` scalar
|
|
303
|
+
the horizontal chrome rides (the morph.css `.glass-dock.vertical` interp +
|
|
304
|
+
padding axis-inverse + the radius arm below) — the chrome follows the
|
|
305
|
+
box-size morph, no discrete snap. NO root CSS-transition on the morph-
|
|
306
|
+
chrome props is re-added (a `transition: padding/background/border-color`
|
|
307
|
+
arm is the second-clock smell the single-scalar rebuild forbids — the
|
|
308
|
+
`--dock-expand-t` interp is the single authority). KEPT: the DECORATIVE
|
|
309
|
+
hover-scale + press-squish (the individual `scale`/`transform`) and the
|
|
310
|
+
box-shadow fade — interaction polish on the rail, NOT the morph chrome. */
|
|
286
311
|
transition:
|
|
287
312
|
box-shadow var(--dock-motion-standard),
|
|
288
313
|
transform var(--dock-motion-resize),
|
|
289
314
|
scale var(--dock-motion-resize);
|
|
290
315
|
}
|
|
291
316
|
|
|
317
|
+
/* BC.W-DOCK-ENGINE move 2 — the rail polish transition is COMPOSITOR-PROMOTED
|
|
318
|
+
only while its hover/press/held state is ARMED (the transform/scale legs ride
|
|
319
|
+
the compositor channel; `will-change: transform` hints the layer for the
|
|
320
|
+
gesture). NEVER a resting `will-change` (a permanent promotion pins a wasted
|
|
321
|
+
compositor layer at rest — the motion-canon P5 no-resting-promotion floor):
|
|
322
|
+
the hint lives on the `:hover`/`:active`/`[data-held]` armed selectors and is
|
|
323
|
+
cleared the instant the state releases. PRM keeps no pinned layer either — the
|
|
324
|
+
universal a11y carve strips the spatial transform under reduce, and a
|
|
325
|
+
non-animating rail needs no promotion. */
|
|
326
|
+
.glass-dock.vertical:hover,
|
|
327
|
+
.glass-dock.vertical:active,
|
|
328
|
+
.glass-dock.vertical[data-held] {
|
|
329
|
+
will-change: transform;
|
|
330
|
+
}
|
|
331
|
+
|
|
292
332
|
/* AZ.W-DOCK-TAXONOMY — the vertical dock's surface plate (the prior
|
|
293
333
|
`.variant-rail` block; "rail-ness" is now `orientation="vertical"` + a
|
|
294
334
|
shape/density choice, not a variant). */
|
|
@@ -318,6 +358,22 @@
|
|
|
318
358
|
border-radius: var(--radius-xl);
|
|
319
359
|
}
|
|
320
360
|
|
|
361
|
+
/* BB.W-DOCK-MORPH-FAMILY (f) — the VERTICAL big-dock CARD radius MORPHS on the
|
|
362
|
+
SAME `--dock-expand-t` scalar the horizontal `.shape-card` rides (the radius
|
|
363
|
+
arm of the vertical chrome un-gate; it lives in shell.css beside the horizontal
|
|
364
|
+
arm, not morph.css). `--radius-pill` at expand-t 0 (collapsed), the finite
|
|
365
|
+
`--dock-card-radius` at expand-t 1 (expanded) — the radius follows the box-size
|
|
366
|
+
block morph, no discrete snap. The static `.shape-pill`/`.shape-rounded` rest
|
|
367
|
+
radii above are the rest endpoints for those shapes; this is the card shape's
|
|
368
|
+
interpolated radius (mirroring the horizontal `:not(.vertical).shape-card`). */
|
|
369
|
+
.glass-dock.vertical.shape-card {
|
|
370
|
+
border-radius: calc(
|
|
371
|
+
var(--radius-pill) +
|
|
372
|
+
(var(--dock-card-radius) - var(--radius-pill)) *
|
|
373
|
+
var(--dock-expand-t, 1)
|
|
374
|
+
);
|
|
375
|
+
}
|
|
376
|
+
|
|
321
377
|
/* AW.W3b — horizontal-root shape rules. The `shape-*` class once bound ONLY under
|
|
322
378
|
the vertical surface; on a horizontal dock the prop silently no-op'd (the root
|
|
323
379
|
hardwired `--radius-dock` = `--radius-pill`). These rules close that
|