@mkbabb/glass-ui 4.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/CardAction-8whJrLWt.js +268 -0
- package/dist/{CommandShortcut-DdtWXxOK.js → CommandShortcut-D3yxgHNn.js} +25 -14
- package/dist/ConfiguratorRow-CaP7U3ZA.js +143 -0
- package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
- package/dist/{ContextMenuSubContent-B0Vs6atR.js → ContextMenuSubContent-DDRID3qC.js} +28 -33
- package/dist/{DataTable-C464Zbqd.js → DataTable-Bc9kUtu_.js} +4 -4
- package/dist/{DialogContent-DDE6pQBU.js → DialogContent-6JtTB5x2.js} +11 -8
- package/dist/DialogFooter-9phqcRIS.js +80 -0
- package/dist/DialogScrollContent-TTuovQst.js +93 -0
- package/dist/{FadingScroll-DwNnvKMs.js → FadingScroll-DLRbH5Xr.js} +1 -1
- package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
- package/dist/{HoverPopover-Dpzwvc4t.js → HoverPopover-BcIxvyqZ.js} +2 -2
- package/dist/{IconChip-BDw1j5mu.js → IconChip-DhbdGdFQ.js} +2 -1
- package/dist/{IconTooltip-DSjasZIt.js → IconTooltip-B0zimd2H.js} +1 -1
- package/dist/Input-Cg9DF62r.js +57 -0
- package/dist/{MetricBadge-BpC0R_Ec.js → MetricBadge-RHdBP72w.js} +1 -1
- package/dist/Notification-CphK7AAm.js +43 -0
- package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
- package/dist/PagerDots-Cjx96la-.js +98 -0
- package/dist/{PopoverContent-BTorlp--.js → PopoverContent-DL7E6vJP.js} +4 -4
- package/dist/{Progress-hAT4gqGH.js → Progress-CnqB7gLm.js} +4 -4
- package/dist/{ScrollingText-CUVFTWk2.js → ScrollingText-CTZbA_cG.js} +2 -2
- package/dist/{SelectScrollDownButton-C1jb3b3K.js → SelectScrollDownButton-DAKCBEdW.js} +65 -61
- package/dist/{SelectSeparator-DK2y1Bun.js → SelectSeparator-C2UGOkXF.js} +1 -1
- package/dist/Separator-DQcwC2TR.js +44 -0
- package/dist/Switch-B8RscmRu.js +49 -0
- package/dist/Toaster-D9qIHjBI.js +274 -0
- package/dist/ToggleGroupItem-BLtr3TJq.js +170 -0
- package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +21 -33
- package/dist/api/types-extra.d.ts +37 -0
- package/dist/api.js +1 -1
- package/dist/aurora.js +1231 -260
- package/dist/badge.js +1 -1
- package/dist/border-progress.d.ts +1 -0
- package/dist/border-progress.js +98 -0
- package/dist/button-5dY1Dvhd.js +125 -0
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -3
- package/dist/card.js +2 -2
- package/dist/carousel.js +93 -110
- package/dist/collapsible.js +1 -1
- package/dist/color-Cs0-oxYL.js +116 -0
- package/dist/color.js +2 -2
- package/dist/command.js +1 -1
- package/dist/compile-nZ1xVYTp.js +19 -0
- package/dist/completion-seal.d.ts +1 -0
- package/dist/completion-seal.js +89 -0
- package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
- package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
- package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
- package/dist/components/custom/aurora/composables/color.d.ts +13 -0
- package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +31 -0
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +60 -0
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +37 -0
- package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +20 -2
- package/dist/components/custom/aurora/constants/renderMode.d.ts +77 -18
- package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
- package/dist/components/custom/aurora/index.d.ts +2 -1
- package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
- package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
- package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +18 -0
- package/dist/components/custom/border-progress/constants.d.ts +59 -0
- package/dist/components/custom/border-progress/index.d.ts +4 -0
- package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
- package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
- package/dist/components/custom/completion-seal/constants.d.ts +46 -0
- package/dist/components/custom/completion-seal/index.d.ts +4 -0
- package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +18 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +22 -0
- package/dist/components/custom/concentric/composables/ringField.d.ts +85 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +14 -0
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
- package/dist/components/custom/concentric/constants.d.ts +67 -0
- package/dist/components/custom/concentric/index.d.ts +5 -0
- package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
- package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
- package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
- package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
- package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
- package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
- package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
- package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
- package/dist/components/custom/constellation/constants.d.ts +33 -0
- package/dist/components/custom/constellation/constellationField.d.ts +31 -1
- package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
- package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
- package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
- package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
- package/dist/components/custom/constellation/index.d.ts +5 -5
- package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
- package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
- package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
- package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
- package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
- package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
- package/dist/components/custom/deck/constants.d.ts +14 -0
- package/dist/components/custom/deck/index.d.ts +8 -0
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +25 -4
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
- package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
- package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +155 -0
- package/dist/components/custom/dock/composables/index.d.ts +2 -0
- package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
- package/dist/components/custom/dock/constants.d.ts +18 -14
- package/dist/components/custom/dock/index.d.ts +5 -2
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +42 -0
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +83 -0
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +39 -0
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +35 -0
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +31 -0
- package/dist/components/custom/dot-flow-field/constants.d.ts +69 -0
- package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
- package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
- package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
- package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
- package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
- package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
- package/dist/components/custom/dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
- package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
- package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
- package/dist/components/custom/easing/composables/useEasingPicker.d.ts +80 -0
- package/dist/components/custom/easing/constants.d.ts +28 -0
- package/dist/components/custom/easing/index.d.ts +3 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +43 -40
- package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
- package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
- package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +42 -0
- package/dist/components/custom/fourier-field/constants.d.ts +64 -0
- package/dist/components/custom/fourier-field/index.d.ts +23 -18
- package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +13 -3
- package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +18 -11
- package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
- package/dist/components/custom/goo-blob/constants.d.ts +1 -1
- package/dist/components/custom/goo-blob/index.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/types.d.ts +36 -0
- package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
- package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
- package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
- package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
- package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
- package/dist/components/custom/handmark/HandMark.vue.d.ts +1 -1
- package/dist/components/custom/icon-chip/types.d.ts +11 -1
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +3 -1
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
- package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
- package/dist/components/custom/pager-dots/index.d.ts +2 -0
- package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
- package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
- package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
- package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
- package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
- package/dist/components/custom/paper-grid/constants.d.ts +57 -0
- package/dist/components/custom/paper-grid/index.d.ts +5 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
- package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
- package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
- package/dist/components/custom/search/index.d.ts +2 -0
- package/dist/components/custom/search/searchVariants.d.ts +19 -0
- package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
- package/dist/components/custom/selectable-chip/index.d.ts +2 -0
- package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
- package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
- package/dist/components/custom/spa-view/index.d.ts +2 -0
- package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
- package/dist/components/custom/split-chars/index.d.ts +1 -0
- package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +12 -0
- package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
- package/dist/components/custom/tabs/constants.d.ts +20 -2
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +30 -17
- package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
- package/dist/components/ui/_shared/index.d.ts +2 -0
- package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
- package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
- package/dist/components/ui/badge/index.d.ts +1 -1
- package/dist/components/ui/button/Button.vue.d.ts +5 -2
- package/dist/components/ui/button/index.d.ts +2 -2
- package/dist/components/ui/card/Card.vue.d.ts +79 -4
- package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
- package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
- package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
- package/dist/components/ui/card/index.d.ts +3 -1
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
- package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
- package/dist/components/ui/command/Command.vue.d.ts +1 -1
- package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
- package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
- package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
- package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts +7 -8
- package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
- package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
- package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
- package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
- package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
- package/dist/components/ui/drawer/constants.d.ts +45 -0
- package/dist/components/ui/drawer/index.d.ts +23 -15
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
- package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
- package/dist/components/ui/focus-scope/index.d.ts +2 -0
- package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/input/Input.vue.d.ts +3 -0
- package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
- package/dist/components/ui/select/SelectContent.vue.d.ts +4 -1
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
- package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
- package/dist/components/ui/toast/use-toast.d.ts +14 -0
- package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
- package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
- package/dist/composables/color/index.d.ts +2 -0
- package/dist/composables/color/useAccentTone.d.ts +34 -0
- package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
- package/dist/composables/glass/index.d.ts +5 -2
- package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
- package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
- package/dist/composables/glass/useVizChoreography.d.ts +123 -0
- package/dist/composables/glass/vSpecular.d.ts +2 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
- package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
- package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
- package/dist/composables/glass/webgpu/index.d.ts +2 -0
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +75 -0
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +85 -0
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
- package/dist/composables/motion/core/index.d.ts +4 -0
- package/dist/composables/motion/index.d.ts +4 -0
- package/dist/composables/motion/scrollReader.d.ts +25 -0
- package/dist/composables/motion/springPresets.d.ts +20 -1
- package/dist/composables/motion/useCharStagger.d.ts +44 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +84 -0
- package/dist/composables/motion/useDragMorph.d.ts +77 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
- package/dist/composables/motion/useLiquidPress.d.ts +71 -0
- package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
- package/dist/composables/motion/useNumericTransition.d.ts +3 -3
- package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
- package/dist/composables/motion/useScrollChrome.d.ts +58 -0
- package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
- package/dist/composables/motion/useSpringPress.d.ts +5 -5
- package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
- package/dist/composables/sidebar/index.d.ts +4 -1
- package/dist/composables/sidebar/types.d.ts +68 -3
- package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
- package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
- package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
- package/dist/composables/virtual/index.d.ts +4 -0
- package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
- package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
- package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
- package/dist/concentric.d.ts +1 -0
- package/dist/concentric.js +836 -0
- package/dist/configurator.js +3 -2
- package/dist/confirm-dialog.js +62 -49
- package/dist/constellation.js +635 -235
- package/dist/context-menu.js +3 -3
- package/dist/controls.js +2 -2
- package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck.d.ts +1 -0
- package/dist/deck.js +105 -0
- package/dist/dialog.js +4 -3
- package/dist/dock.js +819 -568
- package/dist/{dockContext-Bu1Avy-a.js → dockContext-BNfyPLe9.js} +1 -1
- package/dist/dom.js +5 -5
- package/dist/dot-flow-field.d.ts +1 -0
- package/dist/dot-flow-field.js +894 -0
- package/dist/dot-matrix.d.ts +1 -0
- package/dist/dot-matrix.js +630 -0
- package/dist/dotMatrixField-D_x9_1qq.js +48 -0
- package/dist/drawer.d.ts +1 -0
- package/dist/drawer.js +380 -0
- package/dist/{dropdown-menu-BJ7E9js_.js → dropdown-menu-aJmV5SqE.js} +82 -79
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.d.ts +1 -0
- package/dist/easing.js +475 -0
- package/dist/expandable-container.js +46 -21
- package/dist/fading-scroll.js +1 -1
- package/dist/flow.glsl-B2P7e0MT.js +4 -0
- package/dist/focus-scope.d.ts +1 -0
- package/dist/focus-scope.js +23 -0
- package/dist/forms.js +65 -63
- package/dist/fourier-field.js +831 -172
- package/dist/fourier-math.js +1 -1
- package/dist/glass-panel.js +2 -2
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +187 -338
- package/dist/goo-blob.js +241 -692
- package/dist/goo-dot-matrix.d.ts +1 -0
- package/dist/goo-dot-matrix.js +591 -0
- package/dist/handmark.js +2 -2
- package/dist/header-ribbon.js +1 -1
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-chip.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +70 -60
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +1 -1
- package/dist/metric-stack.js +14 -9
- package/dist/motion-core.js +58 -36
- package/dist/motion-curves.js +11 -1
- package/dist/motion.js +90 -53
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +2 -91
- package/dist/paper-backdrop.js +1 -1
- package/dist/paper-grid.d.ts +1 -0
- package/dist/paper-grid.js +788 -0
- package/dist/popover.js +1 -1
- package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
- package/dist/{compile-EXXzEr1q.js → procedural-color.wgsl-m7Zgv35j.js} +2 -156
- package/dist/progress.js +1 -1
- package/dist/pulse.js +2 -2
- package/dist/reactive.js +1 -1
- package/dist/resolveCanvasColor-yPyIpJt9.js +93 -0
- package/dist/scrollReader-DI1NWxUw.js +42 -0
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +162 -308
- package/dist/select.js +3 -3
- package/dist/selectable-chip.d.ts +1 -0
- package/dist/selectable-chip.js +65 -0
- package/dist/separator.js +1 -1
- package/dist/{sheet-CquRYOAw.js → sheet-B2flBfLH.js} +5 -5
- package/dist/sheet.js +1 -1
- package/dist/sidebar.js +216 -114
- package/dist/{slider-DQ95MET2.js → slider-2A0rPn79.js} +3 -3
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +2 -2
- package/dist/spa-view.d.ts +1 -0
- package/dist/spa-view.js +46 -0
- package/dist/spectrum-walk-BVzA7Biz.js +33 -0
- package/dist/{springPresets-WXaLbu8u.js → springPresets-Ce7OYCm9.js} +12 -6
- package/dist/styles/animations.css +46 -12
- package/dist/styles/border-progress.css +109 -0
- package/dist/styles/cards.css +145 -0
- package/dist/styles/completion-seal.css +131 -0
- package/dist/styles/components.css +2 -3
- package/dist/styles/configurator.css +55 -0
- package/dist/styles/critical-partition.mjs +162 -0
- package/dist/styles/critical.css +12 -0
- package/dist/styles/deferred.css +33 -0
- package/dist/styles/dock/cta-seat.css +87 -0
- package/dist/styles/dock/density.css +198 -0
- package/dist/styles/dock/layers.css +101 -29
- package/dist/styles/dock/morph-bridge.css +54 -18
- package/dist/styles/dock/morph.css +132 -7
- package/dist/styles/dock/overflow.css +28 -2
- package/dist/styles/dock/search.css +68 -0
- package/dist/styles/dock/shape.css +124 -0
- package/dist/styles/dock/shell.css +77 -21
- package/dist/styles/dock/stack-rail.css +264 -0
- package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/dist/styles/dock-controls/icon-button.css +14 -0
- package/dist/styles/dock.css +43 -1
- package/dist/styles/drawer.css +81 -35
- package/dist/styles/glass/accent-tone.css +66 -0
- package/dist/styles/glass/control-surfaces.css +167 -0
- package/dist/styles/glass/deep.css +44 -0
- package/dist/styles/glass/ladder.css +147 -41
- package/dist/styles/glass/material.css +78 -15
- package/dist/styles/glass/reveal.css +136 -0
- package/dist/styles/glass/rim.css +110 -0
- package/dist/styles/glass/surfaces.css +148 -129
- package/dist/styles/glass-refract.css +96 -44
- package/dist/styles/glass-specular-track.css +7 -0
- package/dist/styles/glass.css +13 -0
- package/dist/styles/hover-popover.css +7 -6
- package/dist/styles/icon-chip.css +77 -15
- package/dist/styles/index.css +36 -9
- package/dist/styles/instrument-chassis.css +66 -3
- package/dist/styles/scroll-choreography.css +300 -0
- package/dist/styles/scroll-chrome.css +123 -0
- package/dist/styles/scroll-driven.css +38 -0
- package/dist/styles/segmented-tabs.css +81 -14
- package/dist/styles/theme/bridges.css +33 -0
- package/dist/styles/theme/literals.css +11 -2
- package/dist/styles/theme/radius.css +24 -2
- package/dist/styles/tokens/color-radius.css +13 -3
- package/dist/styles/tokens/dark-arm.css +137 -32
- package/dist/styles/tokens/glass-deep.css +100 -0
- package/dist/styles/tokens/glass-fx.css +376 -0
- package/dist/styles/tokens/glass.css +131 -351
- package/dist/styles/tokens/light-dark.css +16 -3
- package/dist/styles/tokens/offsets.css +143 -0
- package/dist/styles/tokens/on-glass-fg.css +39 -0
- package/dist/styles/tokens/property-regs.css +260 -0
- package/dist/styles/tokens/scale-paper.css +168 -96
- package/dist/styles/tokens/scheme-motion.css +114 -38
- package/dist/styles/tokens/scroll-tokens.css +123 -0
- package/dist/styles/tokens/sizing-config.css +110 -0
- package/{src/styles/tokens/offsets-sizing.css → dist/styles/tokens/sizing.css} +92 -204
- package/dist/styles/tokens.css +14 -3
- package/dist/styles/typography/semantic.css +26 -13
- package/dist/styles/typography/utilities.css +22 -7
- package/dist/styles/utilities/a11y-overrides.css +20 -5
- package/dist/styles/utilities/animate.css +27 -24
- package/dist/styles/utilities/base-misc.css +307 -0
- package/dist/styles/utilities/base.css +47 -261
- package/dist/styles/utilities/btn.css +17 -4
- package/dist/styles/utilities/components.css +31 -6
- package/dist/styles/utilities/metal.css +215 -0
- package/dist/styles/utilities.css +14 -7
- package/dist/switch.js +1 -1
- package/dist/tabs.js +220 -107
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +10 -10
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +2 -2
- package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
- package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-CLrxicG9.js} +1 -1
- package/dist/useConfiguratorState-4xblKfwd.js +162 -0
- package/dist/useControlSize-SH1UmJCi.js +9 -0
- package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
- package/dist/useDragMorph-BUgAC-zK.js +102 -0
- package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
- package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
- package/dist/useLiquidPress-BooG97RY.js +39 -0
- package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
- package/dist/useScrollChrome-D66AVP7C.js +258 -0
- package/dist/useSpring-C0jyvEJB.js +40 -0
- package/dist/useSpringMount-BWDnKIwh.js +71 -0
- package/dist/useSpringPress-B1-Czp-V.js +36 -0
- package/dist/{useTouchGate-28Tk2-t2.js → useTouchGate-CBZTD4SD.js} +1 -1
- package/dist/useViewTransition-CUI1nAgn.js +95 -0
- package/dist/vSpecular-EX7loENl.js +68 -0
- package/dist/vendor-B2qOlYY3.js +239 -0
- package/dist/virtual.d.ts +1 -0
- package/dist/virtual.js +225 -0
- package/dist/watercolor-dot.js +117 -74
- package/package.json +252 -28
- package/src/styles/animations.css +46 -12
- package/src/styles/border-progress.css +109 -0
- package/src/styles/cards.css +145 -0
- package/src/styles/completion-seal.css +131 -0
- package/src/styles/configurator.css +55 -0
- package/src/styles/critical-partition.mjs +162 -0
- package/src/styles/dock/cta-seat.css +87 -0
- package/src/styles/dock/density.css +198 -0
- package/src/styles/dock/layers.css +101 -29
- package/src/styles/dock/morph-bridge.css +54 -18
- package/src/styles/dock/morph.css +132 -7
- package/src/styles/dock/overflow.css +28 -2
- package/src/styles/dock/search.css +68 -0
- package/src/styles/dock/shape.css +124 -0
- package/src/styles/dock/shell.css +77 -21
- package/src/styles/dock/stack-rail.css +264 -0
- package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/src/styles/dock-controls/icon-button.css +14 -0
- package/src/styles/dock.css +43 -1
- package/src/styles/drawer.css +81 -35
- package/src/styles/glass/accent-tone.css +66 -0
- package/src/styles/glass/control-surfaces.css +167 -0
- package/src/styles/glass/deep.css +44 -0
- package/src/styles/glass/ladder.css +147 -41
- package/src/styles/glass/material.css +78 -15
- package/src/styles/glass/reveal.css +136 -0
- package/src/styles/glass/rim.css +110 -0
- package/src/styles/glass/surfaces.css +148 -129
- package/src/styles/glass-refract.css +96 -44
- package/src/styles/glass-specular-track.css +7 -0
- package/src/styles/glass.css +13 -0
- package/src/styles/hover-popover.css +7 -6
- package/src/styles/icon-chip.css +77 -15
- package/src/styles/index.css +27 -0
- package/src/styles/instrument-chassis.css +66 -3
- package/src/styles/scroll-choreography.css +300 -0
- package/src/styles/scroll-chrome.css +123 -0
- package/src/styles/scroll-driven.css +38 -0
- package/src/styles/segmented-tabs.css +81 -14
- package/src/styles/theme/bridges.css +33 -0
- package/src/styles/theme/literals.css +11 -2
- package/src/styles/theme/radius.css +24 -2
- package/src/styles/tokens/color-radius.css +13 -3
- package/src/styles/tokens/dark-arm.css +137 -32
- package/src/styles/tokens/glass-deep.css +100 -0
- package/src/styles/tokens/glass-fx.css +376 -0
- package/src/styles/tokens/glass.css +131 -351
- package/src/styles/tokens/light-dark.css +16 -3
- package/src/styles/tokens/offsets.css +143 -0
- package/src/styles/tokens/on-glass-fg.css +39 -0
- package/src/styles/tokens/property-regs.css +260 -0
- package/src/styles/tokens/scale-paper.css +168 -96
- package/src/styles/tokens/scheme-motion.css +114 -38
- package/src/styles/tokens/scroll-tokens.css +123 -0
- package/src/styles/tokens/sizing-config.css +110 -0
- package/{dist/styles/tokens/offsets-sizing.css → src/styles/tokens/sizing.css} +92 -204
- package/src/styles/tokens.css +14 -3
- package/src/styles/typography/semantic.css +26 -13
- package/src/styles/typography/utilities.css +22 -7
- package/src/styles/utilities/a11y-overrides.css +20 -5
- package/src/styles/utilities/animate.css +27 -24
- package/src/styles/utilities/base-misc.css +307 -0
- package/src/styles/utilities/base.css +47 -261
- package/src/styles/utilities/btn.css +17 -4
- package/src/styles/utilities/components.css +31 -6
- package/src/styles/utilities/metal.css +215 -0
- package/src/styles/utilities.css +14 -7
- package/dist/CardAction-XH4YBVEK.js +0 -158
- package/dist/ContextMenuContent-ON3x7cuk.js +0 -85
- package/dist/DialogFooter-8eZbdmPc.js +0 -165
- package/dist/HoverCardContent-DkMaQzH5.js +0 -83
- package/dist/Input-DVG_J0ne.js +0 -55
- package/dist/Notification-DKjKsQq8.js +0 -100
- package/dist/NumberFieldContent-1VtwDSgf.js +0 -145
- package/dist/Separator-BArl4OaB.js +0 -37
- package/dist/Switch-Dr--uLGH.js +0 -47
- package/dist/Toaster-Bm_HQSpc.js +0 -263
- package/dist/ToggleGroupItem-Dzk9hWsF.js +0 -157
- package/dist/TooltipProvider-B3MkB_8P.js +0 -104
- package/dist/button-BNDWhAZb.js +0 -81
- package/dist/check-njhk-vfu.js +0 -7
- package/dist/chevron-down-DKkxb4VV.js +0 -7
- package/dist/chevron-right-CPXbqQQz.js +0 -7
- package/dist/chevron-up-n_24SqI-.js +0 -7
- package/dist/color-DweYl7pE.js +0 -86
- package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
- package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
- package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
- package/dist/createLucideIcon-DydS2qgk.js +0 -43
- package/dist/minimize-2-BV31Ob_h.js +0 -38
- package/dist/resolveCanvasColor-BBiYfp8g.js +0 -11
- package/dist/search-BSGrf2Sk.js +0 -12
- package/dist/styles/dock/rail-extend.css +0 -397
- package/dist/useCanvas2D-ClrQuZtp.js +0 -96
- package/dist/useConfiguratorState-kiIlun8I.js +0 -303
- package/dist/useRAFLoop-CdwJ7284.js +0 -109
- package/dist/useSpecularTracking-Bo5su68i.js +0 -32
- package/dist/useSpringMount-CvopqiFr.js +0 -108
- package/dist/useViewTransition-COsPjQVZ.js +0 -47
- package/dist/x-BUwTKe50.js +0 -10
- package/src/styles/dock/rail-extend.css +0 -397
- /package/dist/{CollapsibleContent-C_s6fG7r.js → CollapsibleContent-68dEXIAl.js} +0 -0
- /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-CxsHSyMj.js} +0 -0
- /package/dist/{Label-Ck9SWEKM.js → Label-C2ejNWeC.js} +0 -0
- /package/dist/{ModalOverlay-CkPRRgl_.js → ModalOverlay-D1VrWyoi.js} +0 -0
- /package/dist/{PaperBackdrop-nBKe0vkB.js → PaperBackdrop-CqwjnfLv.js} +0 -0
- /package/dist/{SelectGroup-Dcczq44n.js → SelectGroup-BFiod7X2.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-CBt_VvXa.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
- /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
- /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
- /package/dist/{createContext-B2RaZ-b8.js → createContext-CpBNTRMI.js} +0 -0
- /package/dist/{math-DeuJwLFx.js → math-Eb0w3LqU.js} +0 -0
- /package/dist/{menuItemVariants-DWRQXBxJ.js → menuItemVariants-D8VNHq22.js} +0 -0
- /package/dist/{prng-Cg22zv8g.js → prng-B-d9eYX8.js} +0 -0
- /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
- /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
- /package/dist/{useLiquidFlex-C12hXwOZ.js → useLiquidFlex-UmA6LMZu.js} +0 -0
- /package/dist/{useResizeObserver-V6nq5gJb.js → useResizeObserver-Bpoi7tRE.js} +0 -0
- /package/dist/{useResolveTokenColor-NUG2zYAW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
- /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
- /package/dist/{useSurfaceAxis-CMnF2zHb.js → useSurfaceAxis-g0NloYEF.js} +0 -0
- /package/dist/{useTimer-B_PAasDL.js → useTimer-BHJOKr35.js} +0 -0
- /package/dist/{useUserInvalidAria-CDfJuakL.js → useUserInvalidAria-y5namzeE.js} +0 -0
- /package/dist/{useViewportReady-CvBcCYDf.js → useViewportReady-anbac3m6.js} +0 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import type { Ref } from "vue";
|
|
2
|
+
/**
|
|
3
|
+
* BB.W-CARVE4 — the dock morph MEASURE/SEAT helpers, carved out of
|
|
4
|
+
* `dockMorphContext.ts` to hold the no-god-module bound (the aurora→useAurora /
|
|
5
|
+
* goo-blob→useMetaballRenderer / fourier-field→useFourierField colocation pattern).
|
|
6
|
+
* The orchestrator stays the morph DRIVER (it owns the `SpringProgress`, the targets
|
|
7
|
+
* Set, the per-frame `--dock-morph-t` write); these are the PURE geometry + the
|
|
8
|
+
* reserved-footprint measure + the SYNCHRONOUS PRM seat it composes. `DOCK_SPRING` is
|
|
9
|
+
* byte-fenced — it lives in `../constants`, never touched here.
|
|
10
|
+
*
|
|
11
|
+
* The functions take their element/axis/target dependencies as explicit params (the
|
|
12
|
+
* orchestrator's closures collapse onto this seam) — no module-level state, so the
|
|
13
|
+
* extraction is behaviour-identical to the prior inline closures.
|
|
14
|
+
*/
|
|
15
|
+
/** The minimal morph-target shape the measure/seat helpers read (the orchestrator's
|
|
16
|
+
* full `MorphTarget` structurally satisfies it). */
|
|
17
|
+
export interface MorphMeasureTarget {
|
|
18
|
+
containerEl: Ref<HTMLElement | null>;
|
|
19
|
+
axis: Ref<"horizontal" | "vertical">;
|
|
20
|
+
/** PER-TARGET swap generation — the seat gates its pipeline on its own id. */
|
|
21
|
+
txId: number;
|
|
22
|
+
}
|
|
23
|
+
export declare function dimOf(axis: "horizontal" | "vertical"): "width" | "height";
|
|
24
|
+
export declare function morphAxisProp(axis: "horizontal" | "vertical"): "inline-size" | "block-size";
|
|
25
|
+
export declare function getSize(el: HTMLElement, axis: "horizontal" | "vertical"): number;
|
|
26
|
+
export declare function clearMorphVars(el: HTMLElement): void;
|
|
27
|
+
/**
|
|
28
|
+
* BC.W-LIQUID-MORPH (M3) — the reserve-floor in px (the measure-failure floor). The
|
|
29
|
+
* CSS reserve floors the box at `max(var(--dock-morph-to), var(--dock-morph-min))`
|
|
30
|
+
* (layers.css), but the SCALAR ratio still runs toward `--dock-morph-to`, so a
|
|
31
|
+
* `to:0` mis-measure would interpolate toward a degenerate target. The orchestrator's
|
|
32
|
+
* measure-failure guard seats the measured `to` at THIS px so the morph interpolates
|
|
33
|
+
* toward a visible footprint, never 0 — "visible at the floor," never "white." Reads
|
|
34
|
+
* the element's RESOLVED `--dock-morph-min` (density-scaled), falling back to the WCAG
|
|
35
|
+
* ~44px touch floor when the token is unset / unresolvable. Pure read — no write.
|
|
36
|
+
*/
|
|
37
|
+
export declare function morphMinFloorPx(el: HTMLElement | null): number;
|
|
38
|
+
/**
|
|
39
|
+
* BA-VJS-1 (valuejs-fold A-1) — the OTHER registered targets whose container is a
|
|
40
|
+
* DOM DESCENDANT of `outerEl` (a nested `<DockLayerGroup>` stack inside the outer
|
|
41
|
+
* `.dock-layers`). These are the pinned inner spans the outer measure must see at
|
|
42
|
+
* their OWN intrinsic `max-content`, not their collapsed pin, or the outer
|
|
43
|
+
* shrink-wraps to ~0.
|
|
44
|
+
*/
|
|
45
|
+
export declare function nestedTargetsWithin(outer: MorphMeasureTarget, outerEl: HTMLElement, targets: Iterable<MorphMeasureTarget>): MorphMeasureTarget[];
|
|
46
|
+
/**
|
|
47
|
+
* BA-VJS-1 — force ONE nested target to its own-axis `max-content` (clearing its
|
|
48
|
+
* reserved `--dock-morph-to` footprint so it sizes to content), and return a closure
|
|
49
|
+
* that RESTORES its exact prior inline state. The restore re-writes the precise
|
|
50
|
+
* prior `inline-size`/`block-size` inline value (or removes it if there was none),
|
|
51
|
+
* so the inner's in-flight pin is byte-identical after the outer's measurement —
|
|
52
|
+
* the inner target's own spring/pin pipeline is never disturbed.
|
|
53
|
+
*/
|
|
54
|
+
export declare function forceNestedMaxContent(n: MorphMeasureTarget): () => void;
|
|
55
|
+
/**
|
|
56
|
+
* BB.W-DOCK-MORPH-FAMILY (c) — measure the true `to` for ONE target with the
|
|
57
|
+
* morph axis forced to `max-content` (the same circular-measure escape the rAF
|
|
58
|
+
* path uses), composing the BA-VJS-1 nested-descendant `max-content` ordering so
|
|
59
|
+
* a nested group reads its TRUE intrinsic span (never `to:0`). The element is at
|
|
60
|
+
* the live painted geometry on entry; this forces+reads+restores the axis. PURE
|
|
61
|
+
* measure — no spring, no pin write.
|
|
62
|
+
*/
|
|
63
|
+
export declare function measureTo(t: MorphMeasureTarget, el: HTMLElement, targets: Iterable<MorphMeasureTarget>): number;
|
|
64
|
+
/** The orchestrator settle callbacks the synchronous seat composes (it clears the
|
|
65
|
+
* morph vars + nulls the leaving layer, then parks the root/spring once no target
|
|
66
|
+
* is morphing). */
|
|
67
|
+
export interface MorphSeatCallbacks {
|
|
68
|
+
/** Settle ONE target (clear its morph vars + null its leavingLayer). */
|
|
69
|
+
settleTarget(t: MorphMeasureTarget): void;
|
|
70
|
+
/** Park the shared scalar + spring once NO target is morphing. */
|
|
71
|
+
maybeSettleRoot(): void;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* BB.W-DOCK-MORPH-FAMILY (c) — the SYNCHRONOUS PRM seat. Under
|
|
75
|
+
* `prefers-reduced-motion: reduce` there is NO morph to play, so the geometry +
|
|
76
|
+
* the scalar seat at the target in ONE step (the `useDockOrientationMorph.pin()`
|
|
77
|
+
* precedent transplanted onto the collapse/expand path): measure the true `to`
|
|
78
|
+
* (composing the BA-VJS-1 nested ordering), write the box at `to` (the
|
|
79
|
+
* reserved-footprint reads at scale 1), and set `--dock-morph-t` to the endpoint
|
|
80
|
+
* for THIS swap — then clear the morph state immediately (no rAF measure-defer,
|
|
81
|
+
* no spring, no morph window). The box NEVER paints the collapsed `from` sliver
|
|
82
|
+
* with the scalar at 1 (the P0 terminal failure). Endpoint is the per-swap
|
|
83
|
+
* incoming-ness `1` (the new pane is fully in; the directional `--dock-expand-t`
|
|
84
|
+
* resolves to the class endpoint with `[data-morphing]` cleared).
|
|
85
|
+
*/
|
|
86
|
+
export declare function seatTargetSync(t: MorphMeasureTarget, id: number, root: HTMLElement | null, targets: Iterable<MorphMeasureTarget>, cb: MorphSeatCallbacks): void;
|
|
87
|
+
/**
|
|
88
|
+
* The swap-while-morphing sibling re-base. The shared scalar resets to 0 for the
|
|
89
|
+
* new span; if SIBLING targets are mid-morph, re-base their `from` to their CURRENT
|
|
90
|
+
* painted px first, so resetting the scalar keeps them visually continuous (they
|
|
91
|
+
* interpolate fresh from where they are, toward their unchanged `to`) rather than
|
|
92
|
+
* snapping back to their old `from`. PURE over the swapping target + the target set.
|
|
93
|
+
*/
|
|
94
|
+
export declare function rebaseSiblingSpans(swapping: MorphMeasureTarget, targets: Iterable<MorphMeasureTarget>): void;
|
|
95
|
+
/**
|
|
96
|
+
* BC.W-DOCK-ROOT-MORPH — clear the ROOT box's own morph span (the `inline-size` =
|
|
97
|
+
* f(scalar) recipe in layers.css reads `--dock-root-morph-from/to`; clearing them
|
|
98
|
+
* hands the box back to the at-rest shrink-wrap once the morph settles). PURE on
|
|
99
|
+
* the root element — no orchestrator closure.
|
|
100
|
+
*/
|
|
101
|
+
export declare function clearRootMorphSpan(root: HTMLElement | null): void;
|
|
102
|
+
/**
|
|
103
|
+
* BC.W-DOCK-ROOT-MORPH — pin the ROOT box's own from→to span on the dock root.
|
|
104
|
+
*
|
|
105
|
+
* THE SNAP ROOT CAUSE: the inner `.dock-layers` reserves its SETTLED `to`
|
|
106
|
+
* footprint (`inline-size: var(--dock-morph-to)`, layers.css — the E4-frozen
|
|
107
|
+
* CDP-Layout-flat mechanism) and morphs VISUALLY via `transform: scaleX()`. A
|
|
108
|
+
* `transform` is paint-only — a parent does NOT shrink-wrap to a scaled child —
|
|
109
|
+
* so the root `.glass-dock` (display:inline-flex) shrink-wraps to the inner's
|
|
110
|
+
* RESERVED full `to` width and SNAPS to full on frame 0, while the inner's scaled
|
|
111
|
+
* box rides the spring smoothly. The gate (and the page) measure the ROOT box, so
|
|
112
|
+
* the root must ALSO ramp. The layers.css recipe reads
|
|
113
|
+
* `inline-size: calc(from + (to−from)·--dock-morph-t)` (the SAME scalar the spring
|
|
114
|
+
* glides, NO CSS transition — proof:no-layout-animation stays GREEN; a `calc()`
|
|
115
|
+
* over the registered `--dock-morph-t` is not a transition). PURE on the root.
|
|
116
|
+
*/
|
|
117
|
+
export declare function armRootMorphSpan(root: HTMLElement | null, rootFrom: number, rootTo: number): void;
|
|
118
|
+
/** The orchestrator callbacks the rAF measure-and-arm window composes — the arm
|
|
119
|
+
* step re-pins the per-target + root spans on the shared scalar. */
|
|
120
|
+
export interface MorphMeasureArmCallbacks {
|
|
121
|
+
/** Arm the per-target `--dock-morph-from/to` span + ensure the shared spring. */
|
|
122
|
+
armTarget(t: MorphMeasureTarget, id: number, fromSize: number, toSize: number): void;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* BC.W-DOCK-ROOT-MORPH / BA-VJS-1 / BC.W-LIQUID-MORPH (M3) — the rAF measure-and-arm
|
|
126
|
+
* window: ONE rAF (post-flush) later, lift the pin for a single synchronous
|
|
127
|
+
* measurement of the now-correct shrink-wrapped to-size, then re-pin + start the
|
|
128
|
+
* spring IN THE SAME FRAME. The measurement + arm are gated on THIS target's own
|
|
129
|
+
* `txId`, so a sibling target swapping in the same tick does NOT clobber it.
|
|
130
|
+
*
|
|
131
|
+
* BA-VJS-1 — the nested-`DockLayerGroup` measure-ORDERING fix: force every OTHER
|
|
132
|
+
* registered target whose container is a DOM descendant of this outer's container
|
|
133
|
+
* to its own-axis `max-content` (clearing its pinned calc span) for the single
|
|
134
|
+
* synchronous measurement, then RESTORE its exact prior inline state, so the outer
|
|
135
|
+
* shrink-wraps around the inner's TRUE intrinsic content, not its pinned collapse.
|
|
136
|
+
*
|
|
137
|
+
* BC.W-DOCK-ROOT-MORPH — for the OUTER target, LIFT the root's own pinned span for
|
|
138
|
+
* the duration of this synchronous measure (clearing `--dock-root-morph-from/to`,
|
|
139
|
+
* which the layers.css recipe constrains the root by) so the root shrink-wraps to
|
|
140
|
+
* its TRUE expanded width, read it DIRECTLY (sidestepping the chrome-offset
|
|
141
|
+
* arithmetic + the empty-summary `inner-to:0` trap), then RESTORE the pin and
|
|
142
|
+
* arm the root from→to span so its `inline-size` ramps on the SAME scalar.
|
|
143
|
+
*
|
|
144
|
+
* BC.W-LIQUID-MORPH (M3) — the measure-failure guard: a `to:0` mis-measure (a
|
|
145
|
+
* mid-morph re-grab, a nested collapsible still pinned, a race the ordering fix
|
|
146
|
+
* missed) seats the measured `to` at the resolved floor (`--dock-morph-min`,
|
|
147
|
+
* density-scaled, WCAG ~44px fallback) so the morph interpolates toward a visible
|
|
148
|
+
* footprint, never toward 0 — "visible at the floor," never "white." Inert on a
|
|
149
|
+
* healthy measurement.
|
|
150
|
+
*
|
|
151
|
+
* PURE over its explicit deps (the orchestrator passes the live element/targets/
|
|
152
|
+
* outer identity + the `armTarget` re-pin callback) — no module-level state, so the
|
|
153
|
+
* extraction is behaviour-identical to the prior inline rAF closure.
|
|
154
|
+
*/
|
|
155
|
+
export declare function measureAndArmMorph(t: MorphMeasureTarget, id: number, axis: "horizontal" | "vertical", fromSize: number, rootFromSize: number, isOuter: boolean, rootEl: HTMLElement | null, targets: Iterable<MorphMeasureTarget>, cb: MorphMeasureArmCallbacks): void;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { useDockState } from "./useDockState";
|
|
2
2
|
export type { UseDockStateOptions, UseDockStateReturn, DockState } from "./useDockState";
|
|
3
|
+
export { useDockSearch } from "./useDockSearch";
|
|
4
|
+
export type { UseDockSearchOptions, UseDockSearchReturn } from "./useDockSearch";
|
|
3
5
|
export { useLayerTransition } from "./useLayerTransition";
|
|
4
6
|
export type { UseLayerTransitionOptions, UseLayerTransitionReturn } from "./useLayerTransition";
|
|
5
7
|
export { useDockHold } from "./useDockHold";
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { type MaybeRefOrGetter, type Ref } from "vue";
|
|
2
|
+
import type { UseDockStateReturn } from "./useDockState";
|
|
3
|
+
import { type FuzzySearchState, type SearchableItem, type SearchResult } from "../../search/composables";
|
|
4
|
+
import { type UseScrollChromeReturn } from "../../../../composables/motion/useScrollChrome";
|
|
5
|
+
export interface UseDockSearchOptions<T extends SearchableItem = SearchableItem> {
|
|
6
|
+
/** Composes the existing dock state machine (no fork) — `armSearch`/`disarmSearch`
|
|
7
|
+
ride its `onClickCollapsed`/`keepOpen`/`release`. */
|
|
8
|
+
dockState: UseDockStateReturn;
|
|
9
|
+
/**
|
|
10
|
+
* The search items (sync) — a static array or a getter. Drives the composed
|
|
11
|
+
* `useFuzzySearch` matcher. MUTUALLY EXCLUSIVE with `onSearch` (sync XOR async).
|
|
12
|
+
*/
|
|
13
|
+
items?: T[] | (() => T[]);
|
|
14
|
+
/**
|
|
15
|
+
* The pluggable async data source (the words network case). The consumer owns the
|
|
16
|
+
* abort/network race-guard; the dock owns the gesture/shrink/dropdown. When set, the
|
|
17
|
+
* dock awaits the source on each query, cancelling the prior request's
|
|
18
|
+
* `AbortController` (the generic thin abort). MUTUALLY EXCLUSIVE with `items`.
|
|
19
|
+
*/
|
|
20
|
+
onSearch?: (query: string, signal: AbortSignal) => Promise<T[]>;
|
|
21
|
+
/** Debounce delay in ms forwarded to the matcher / the async source. Default 120. */
|
|
22
|
+
debounceMs?: number;
|
|
23
|
+
/** Maximum results forwarded to the matcher. Default 30. */
|
|
24
|
+
maxResults?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Opt-in collapse-on-scroll — composes `useScrollChrome` (persistent-default, the
|
|
27
|
+
* iOS-27 lesson). DEFAULT FALSE: the dock is PERSISTENT; the morph fires on user
|
|
28
|
+
* intent (tap/focus), never a passive scroll. When true the chrome shrinks+fades on
|
|
29
|
+
* scroll-down + expands on scroll-up (the transform-only `--chrome-collapse-t` ramp).
|
|
30
|
+
*/
|
|
31
|
+
collapseOnScroll?: boolean;
|
|
32
|
+
/** The scroll source for the optional collapse-on-scroll (a container or window). */
|
|
33
|
+
scrollContainer?: MaybeRefOrGetter<HTMLElement | Window | null>;
|
|
34
|
+
/** The dock element the collapse-on-scroll writes `--chrome-collapse-t` onto. */
|
|
35
|
+
chromeRef?: MaybeRefOrGetter<HTMLElement | null>;
|
|
36
|
+
/**
|
|
37
|
+
* Result-select hook — wires the ToC subsume: `ensureTargetWindow(id)` (warm the
|
|
38
|
+
* window so the target renders) + `scrollTo(id)` (the rAF-retry scroll-to-and-land).
|
|
39
|
+
* The dock owns the gesture; the consumer passes the two leaves' bound functions.
|
|
40
|
+
*/
|
|
41
|
+
onResultSelect?: (result: SearchResult<T>) => void;
|
|
42
|
+
/**
|
|
43
|
+
* The virtual-window warm step (composed `useVirtualSectionWindow.ensureTargetWindow`).
|
|
44
|
+
* Called BEFORE `scrollTo` on a result-select so the windowed target is rendered.
|
|
45
|
+
*/
|
|
46
|
+
ensureTargetWindow?: (id: string) => void;
|
|
47
|
+
/**
|
|
48
|
+
* The ToC scroll-to (composed `useScrollTo.scrollTo`) — the rAF-retry scroll-to-id.
|
|
49
|
+
* Called AFTER the warm step on a result-select.
|
|
50
|
+
*/
|
|
51
|
+
scrollTo?: (id: string) => void;
|
|
52
|
+
}
|
|
53
|
+
export interface UseDockSearchReturn<T extends SearchableItem = SearchableItem> {
|
|
54
|
+
/** The composed `useFuzzySearch` handle (query/results/selectedIndex/onKeydown/…). */
|
|
55
|
+
fuzzy: FuzzySearchState<T>;
|
|
56
|
+
/** The ghost-text top-match completion (the unmatched suffix of `results[0].label`). */
|
|
57
|
+
autocompleteText: Ref<string>;
|
|
58
|
+
/** The optional collapse-on-scroll machine (null when `collapseOnScroll` is false). */
|
|
59
|
+
scrollChrome: UseScrollChromeReturn | null;
|
|
60
|
+
/** Tap/focus → expand + hold (composes `onClickCollapsed` + `keepOpen`). */
|
|
61
|
+
armSearch: () => void;
|
|
62
|
+
/** Close → release the hold (composes `release`) + close the fuzzy surface. */
|
|
63
|
+
disarmSearch: () => void;
|
|
64
|
+
/** Tab/Space/ArrowRight → fill the ghost-text into the query. */
|
|
65
|
+
acceptAutocomplete: () => void;
|
|
66
|
+
/** True while the search field is the armed/morphed surface. */
|
|
67
|
+
isSearchArmed: Ref<boolean>;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The dock-search seam — composes `useDockState` + `useFuzzySearch` (+ optional
|
|
71
|
+
* `useScrollChrome`); the `armSearch`/`disarmSearch`/`autocompleteText`/
|
|
72
|
+
* `acceptAutocomplete` surface; the async `onSearch` adapter; the `onResultSelect` →
|
|
73
|
+
* `ensureTargetWindow` + `scrollTo` wire. Does NOT edit the morph engine
|
|
74
|
+
* (`dockMorphContext`/`DOCK_SPRING` byte-untouched — the box-inviolate fence); the
|
|
75
|
+
* pill→field morph is the dock's OWN `--dock-morph-t` glide + the `morph-bridge.css`
|
|
76
|
+
* metaball.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* const dockState = useDockState({ rootEl });
|
|
81
|
+
* const search = useDockSearch({ dockState, items: () => sections.value });
|
|
82
|
+
* // armSearch() on tap → the pill morphs into the field; type → fuzzy dropdown ranks.
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export declare function useDockSearch<T extends SearchableItem = SearchableItem>(options: UseDockSearchOptions<T>): UseDockSearchReturn<T>;
|
|
@@ -143,6 +143,17 @@ export interface DockProps {
|
|
|
143
143
|
* case); absent, it stack-walks the painted page background (the static case).
|
|
144
144
|
*/
|
|
145
145
|
backgroundCanvas?: HTMLCanvasElement | (() => HTMLCanvasElement | null) | string | null;
|
|
146
|
+
/**
|
|
147
|
+
* BC.W-DOCK-SEARCH — the dock-as-native-dynamic-search-bar MODE (additive,
|
|
148
|
+
* default `false`). When true the dock stamps `[data-search]` (the CSS hook the
|
|
149
|
+
* `dock/search.css` active-field tint seam + the `.glass-menu-row` result rows
|
|
150
|
+
* target) and renders the `#search` slot INSIDE the existing morph aperture — the
|
|
151
|
+
* consumer composes `useDockSearch` (the gesture/shrink/dropdown seam) and slots
|
|
152
|
+
* its search field + fuzzy dropdown there. The pill→field morph is the dock's OWN
|
|
153
|
+
* `--dock-morph-t` glide (box-inviolate — no second engine). A non-search dock is
|
|
154
|
+
* byte-identical to HEAD (the slot + the data-attr are present only when authored).
|
|
155
|
+
*/
|
|
156
|
+
search?: boolean;
|
|
146
157
|
}
|
|
147
158
|
/** The resolved shell-prop computeds the GlassDock SFC binds. */
|
|
148
159
|
export interface DockShellProps {
|
|
@@ -68,6 +68,19 @@ export interface UseLayerTransitionReturn {
|
|
|
68
68
|
currentLayer: Ref<string>;
|
|
69
69
|
/** The layer id currently fading out, or null. */
|
|
70
70
|
leavingLayer: Ref<string | null>;
|
|
71
|
+
/**
|
|
72
|
+
* BB.W-PERF-PRODUCER A′-4 — `true` while the size morph is in flight (the
|
|
73
|
+
* reactive twin of the `data-morphing` attr). A floating dock consumer reads
|
|
74
|
+
* this to hold a reka Popper re-position off the morph's critical frames.
|
|
75
|
+
*/
|
|
76
|
+
morphing: Ref<boolean>;
|
|
77
|
+
/**
|
|
78
|
+
* BB.W-PERF-PRODUCER A′-4 — schedule a reka Popper re-position OFF the
|
|
79
|
+
* synchronous morph flush. Queued while a morph is live (flushed ONCE on
|
|
80
|
+
* settle, against the final box), else run on the next rAF. Defers the floating
|
|
81
|
+
* re-position only — NOT the FLIP measure.
|
|
82
|
+
*/
|
|
83
|
+
deferReposition(cb: () => void): void;
|
|
71
84
|
}
|
|
72
85
|
/**
|
|
73
86
|
* Coordinates the size morph + crossfade between grid-stacked dock layer panes.
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import type { Component } from "vue";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* re-export a named type through the `export { default }`
|
|
6
|
-
* descriptor lives here (the colocated types home) and the SFC imports
|
|
7
|
-
* barrel re-exports it for consumers typing their `items` array.
|
|
3
|
+
* BC.W-DOCK-STACK-RAIL — one `<DockStack>` member descriptor: a stack member that fans
|
|
4
|
+
* OUT of the macOS hover-expand stack (id + label + glyph + optional select handler).
|
|
5
|
+
* A `<script setup>` SFC cannot re-export a named type through the `export { default }`
|
|
6
|
+
* barrel, so the descriptor lives here (the colocated types home) and the SFC imports
|
|
7
|
+
* it; the barrel re-exports it for consumers typing their `items` array. This is the
|
|
8
|
+
* stack's MEMBER, not a facet chip — the divider-carousel `DockRailItem` is RETIRED
|
|
9
|
+
* (clean break, no alias).
|
|
8
10
|
*/
|
|
9
|
-
export interface
|
|
10
|
-
/**
|
|
11
|
+
export interface DockStackItem {
|
|
12
|
+
/** Stable identifier — the `v-for` key + the selected-member id. */
|
|
11
13
|
id: string;
|
|
12
|
-
/** The
|
|
14
|
+
/** The member's accessible label (the `aria-label` + tooltip). */
|
|
13
15
|
label: string;
|
|
14
|
-
/** The
|
|
16
|
+
/** The member glyph (a `@lucide/vue` icon or any component). */
|
|
15
17
|
icon?: Component;
|
|
18
|
+
/** Optional per-member select handler (fired alongside the model write). */
|
|
19
|
+
onSelect?: () => void;
|
|
16
20
|
}
|
|
17
21
|
/**
|
|
18
22
|
* BA.W-DOCK-SECTIONS — the three named zone kinds the declarative `<DockSection>`
|
|
@@ -42,12 +46,12 @@ export interface DockSectionDescriptor {
|
|
|
42
46
|
/** Optional accessible label for the grouped zone. */
|
|
43
47
|
label?: string;
|
|
44
48
|
/**
|
|
45
|
-
* For a `section` kind: the
|
|
46
|
-
* (length > 1) the
|
|
47
|
-
* the dock
|
|
48
|
-
*
|
|
49
|
+
* For a `section` kind: the stack members this section carries. When present
|
|
50
|
+
* (length > 1) the members ride the dock's `#rail` stack (the macOS hover-expand
|
|
51
|
+
* stack, OUTSIDE the dock box — never re-inflating it). The descriptor names them;
|
|
52
|
+
* `<DockStack :items>` fans them out.
|
|
49
53
|
*/
|
|
50
|
-
layers?: readonly
|
|
54
|
+
layers?: readonly DockStackItem[];
|
|
51
55
|
}
|
|
52
56
|
/**
|
|
53
57
|
* The ONE dock-morph spring authority — the iOS-26 interruptible-physics tuning the
|
|
@@ -7,8 +7,8 @@ export { default as DockTabButton } from "./DockTabButton.vue";
|
|
|
7
7
|
export { default as DockSelectTrigger } from "./DockSelectTrigger.vue";
|
|
8
8
|
export { default as DockDropdownTrigger } from "./DockDropdownTrigger.vue";
|
|
9
9
|
export { default as DockSeparator } from "./DockSeparator.vue";
|
|
10
|
-
export { default as
|
|
11
|
-
export type {
|
|
10
|
+
export { default as DockStack } from "./DockStack.vue";
|
|
11
|
+
export type { DockStackItem } from "./constants";
|
|
12
12
|
export { default as DockSection } from "./DockSection.vue";
|
|
13
13
|
export type { DockSectionDescriptor, DockSectionKind } from "./constants";
|
|
14
14
|
export type { UseDockStateOptions, UseDockStateReturn, DockState } from "./composables";
|
|
@@ -16,3 +16,6 @@ export { useLayerTransition } from "./composables";
|
|
|
16
16
|
export type { UseLayerTransitionOptions, UseLayerTransitionReturn, } from "./composables";
|
|
17
17
|
export { DOCK_CONTEXT_KEY, useDockContext, useOptionalDockContext, provideDockContext, type DockContext, type DockOrientation, type DockLayout, } from "./composables/dockContext";
|
|
18
18
|
export { useDockOrientationMorph, type DockMorphOrientation, type UseDockOrientationMorphOptions, type UseDockOrientationMorphReturn, } from "./composables/useDockOrientationMorph";
|
|
19
|
+
export { useDockCtaReceive, type UseDockCtaReceiveOptions, type UseDockCtaReceiveReturn, type DockCtaReceivePreset, } from "../../../composables/motion/useDockCtaReceive";
|
|
20
|
+
export { useDockSearch } from "./composables";
|
|
21
|
+
export type { UseDockSearchOptions, UseDockSearchReturn } from "./composables";
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { FlowFieldConfig } from "./constants";
|
|
2
|
+
/**
|
|
3
|
+
* DotFlowField — a calm anchored dot-matrix a slow LARGE wave sweeps through
|
|
4
|
+
* (BC.W-VIZ-DOTFLOW retopology — NOT the BB free-advecting particle cloud).
|
|
5
|
+
*
|
|
6
|
+
* Each dot is anchored to a deterministic lattice cell and eases toward its sub-cell
|
|
7
|
+
* displacement target with a restoring spring (no advection, no re-seed); a broad
|
|
8
|
+
* bright iso-band sweeps the lattice, lighting the dots it passes — the low-frequency
|
|
9
|
+
* Gerstner/Tessendorf sum-of-sines height (`composables/flowField.ts`). WebGPU-FIRST:
|
|
10
|
+
* the compute pass pulls the lattice to its target, the render pass draws instanced
|
|
11
|
+
* billboard quads lit by the sweeping band; a pure WebGL2 FRAGMENT fallback evaluates
|
|
12
|
+
* the SAME field where WebGPU is absent (no Canvas2D — the §E "no canvas" mandate). It
|
|
13
|
+
* composes `useDotFlowField` → the `createGpuSubstrate` picker over the ONE canvas
|
|
14
|
+
* lifecycle leaf (offscreen-pause, live-PRM freeze, the shared pointer field) — it never
|
|
15
|
+
* bootstraps its own context.
|
|
16
|
+
*
|
|
17
|
+
* The DEFAULT palette is the warm-cream library identity; the mono-dim-on-near-black
|
|
18
|
+
* reference + the globe mask are DEMO presets (presets-in-consumers — never a library
|
|
19
|
+
* token). The teal-on-navy is GONE entirely (clean break).
|
|
20
|
+
*/
|
|
21
|
+
type __VLS_Props = {
|
|
22
|
+
/** The full author schema (the studio's `useConfiguratorState` model). */
|
|
23
|
+
config?: FlowFieldConfig;
|
|
24
|
+
/**
|
|
25
|
+
* The declarative WCAG-2.2.2 pause seam. `v-model:paused` parks the render loop
|
|
26
|
+
* (the substrate's `manual` suspend) when `true`. Wire `<DockBackgroundToggle>`'s
|
|
27
|
+
* `@update:paused` to this `v-model`.
|
|
28
|
+
*/
|
|
29
|
+
paused?: boolean;
|
|
30
|
+
};
|
|
31
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
32
|
+
pause: () => void;
|
|
33
|
+
resume: () => void;
|
|
34
|
+
wake: () => void;
|
|
35
|
+
renderAt: (timeSec: number) => void;
|
|
36
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
37
|
+
"update:paused": (value: boolean) => any;
|
|
38
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
39
|
+
"onUpdate:paused"?: ((value: boolean) => any) | undefined;
|
|
40
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
41
|
+
declare const _default: typeof __VLS_export;
|
|
42
|
+
export default _default;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/** A 2-vector. */
|
|
2
|
+
export interface Vec2 {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* One Gerstner / Tessendorf wave component. `amplitude` A_i, `wavelength` λ_i (so
|
|
8
|
+
* k_i = 2π/λ_i), `direction` in DEGREES (the unit travel direction), `phase` φ_i.
|
|
9
|
+
* `ω_i = √(g·k_i)` is derived from the dispersion relation, not stored.
|
|
10
|
+
*/
|
|
11
|
+
export interface WaveComponent {
|
|
12
|
+
amplitude: number;
|
|
13
|
+
wavelength: number;
|
|
14
|
+
/** Travel direction in degrees (0 = +x). */
|
|
15
|
+
direction: number;
|
|
16
|
+
phase: number;
|
|
17
|
+
}
|
|
18
|
+
/** Deep-water gravity constant (normalized; scales the dispersion ω). */
|
|
19
|
+
export declare const FLOW_GRAVITY = 9.81;
|
|
20
|
+
/**
|
|
21
|
+
* The Gerstner-sum velocity v(p,t) = ∇⊥h = (∂h/∂y, −∂h/∂x), ANALYTIC. The single
|
|
22
|
+
* math source the WGSL kernel transcribes. `windSpeed` scales the dispersion ω;
|
|
23
|
+
* `windDirection` (deg) is folded into each component's direction by the caller (the
|
|
24
|
+
* components carry their own absolute direction). Returns the un-normalized flow vector.
|
|
25
|
+
*/
|
|
26
|
+
export declare function gerstnerVelocity(p: Vec2, timeSec: number, waves: readonly WaveComponent[], windSpeed: number): Vec2;
|
|
27
|
+
/** The 2D curl of the scalar fbm potential (the JS twin of `curlFBM`). */
|
|
28
|
+
export declare function curlFBM(p: Vec2): Vec2;
|
|
29
|
+
/**
|
|
30
|
+
* The COMPOSITE flow velocity v(p,t): the Gerstner sum-of-sines analytic ∇⊥h PLUS the
|
|
31
|
+
* `curlStrength`-weighted fbm curl-noise braiding term. The SINGLE math source the WGSL
|
|
32
|
+
* compute kernel transcribes; `proof:viz-dotflow` clause F3 round-trips the two paths.
|
|
33
|
+
*
|
|
34
|
+
* RETOPOLOGY (BC.W-VIZ-DOTFLOW). The curl domain-scale dropped 1.7→0.55 (coarse braiding,
|
|
35
|
+
* not fine chatter) per the §3.2 regime inversion. The velocity is no longer an advection
|
|
36
|
+
* integrand (the lattice does not advect) — it is the DISPLACEMENT field's perp-gradient
|
|
37
|
+
* source. `sampleDisplacement` is the per-frame sub-cell offset; `sampleVelocity` stays as
|
|
38
|
+
* the round-trip anchor + the analytic ∇⊥h the displacement reads.
|
|
39
|
+
*/
|
|
40
|
+
export declare function sampleVelocity(p: Vec2, timeSec: number, waves: readonly WaveComponent[], windSpeed: number, curlStrength: number): Vec2;
|
|
41
|
+
/** The shipped domain half-extent (the lattice is laid out over [-half, half]²). */
|
|
42
|
+
export declare const FLOW_DOMAIN_HALF = 0.85;
|
|
43
|
+
/**
|
|
44
|
+
* The deterministic lattice origin for a particle index — the WGSL `instance_index →
|
|
45
|
+
* origin` mapping matches this EXACTLY (the F3 round-trip anchor). `cols` columns, square
|
|
46
|
+
* pitch in DOMAIN units; the grid is centered on the origin so the field reads symmetric.
|
|
47
|
+
* Index `i` walks row-major (`col = i % cols`, `row = floor(i / cols)`).
|
|
48
|
+
*/
|
|
49
|
+
export declare function gridOrigin(index: number, cols: number, pitch: number): Vec2;
|
|
50
|
+
/**
|
|
51
|
+
* The scalar Gerstner HEIGHT at an origin — the brightness driver (the moving bright
|
|
52
|
+
* stripe the lattice paints). `h(o,t) = Σ_i A_i·sin(k_i·(D_i·o) − ω_i·t + φ_i)`, the SAME
|
|
53
|
+
* sum the velocity derives from (no second wave table). The brightness field reads at the
|
|
54
|
+
* ANCHOR (`o`), not the live position, so the sweep is stable + low-frequency.
|
|
55
|
+
*/
|
|
56
|
+
export declare function sampleHeight(o: Vec2, timeSec: number, waves: readonly WaveComponent[], windSpeed: number): number;
|
|
57
|
+
/**
|
|
58
|
+
* The sub-cell DISPLACEMENT for an origin — the divergence-free ∇⊥h (the Gerstner perp-
|
|
59
|
+
* gradient) PLUS a faint coarse curl break. The dot eases toward `o + disp·displaceAmp`
|
|
60
|
+
* (the restoring spring lives in the kernel); this is the target offset, NOT an advection
|
|
61
|
+
* step. Capped LOW by `displaceAmp` so the dot never leaves its cell by > ~0.5 pitch.
|
|
62
|
+
*/
|
|
63
|
+
export declare function sampleDisplacement(o: Vec2, timeSec: number, waves: readonly WaveComponent[], windSpeed: number, curlStrength: number): Vec2;
|
|
64
|
+
/**
|
|
65
|
+
* The sweeping bright-stripe band: a `smoothstep` band centered `center` width `width`
|
|
66
|
+
* over the normalized height — the moving iso-band that lights the dots it passes. The
|
|
67
|
+
* band is symmetric about the center (a soft ridge crossing the lattice as `h` sweeps).
|
|
68
|
+
*/
|
|
69
|
+
export declare function waveBand(h: number, center: number, width: number): number;
|
|
70
|
+
/**
|
|
71
|
+
* Build the wave ladder about a dominant wind direction. BC.W-VIZ-DOTFLOW REGIME
|
|
72
|
+
* INVERSION (research/viz/dot-flow-field.md §3.2): the LOW-frequency coherent regime — a
|
|
73
|
+
* LARGE base wavelength (≈½–1 period across the view → ONE dominant sweeping wave), 2-3
|
|
74
|
+
* octaves (no fine chatter), a steep amplitude persistence (×0.38 → the base wave
|
|
75
|
+
* dominates, detail a whisper), the λ falloff floored so the finest λ ≥ ~⅓ view. The
|
|
76
|
+
* directions spread MODESTLY about `windDirection` (the sweep reads as ONE coherent form,
|
|
77
|
+
* not a braided delta).
|
|
78
|
+
*
|
|
79
|
+
* `lambda0Mul` is λ₀ as a MULTIPLE of the domain extent (default 2.5 — the §1 target);
|
|
80
|
+
* `octaves` is 2-3 (the coherent band). Amplitudes follow the Phillips falloff × the
|
|
81
|
+
* per-octave persistence so the field stays energy-realistic.
|
|
82
|
+
*/
|
|
83
|
+
export declare function buildWaveLadder(windDirection: number, octaves?: number, lambda0Mul?: number): WaveComponent[];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { OklchStop } from "../../../../composables/color";
|
|
2
|
+
import { type FlowFieldConfig } from "../constants";
|
|
3
|
+
/** The domain half-extent (the lattice spans [-half, half]²; mirrors flowField.ts). */
|
|
4
|
+
export declare const FLOW_DOMAIN_HALF = 0.85;
|
|
5
|
+
export interface FlowGridGeometry {
|
|
6
|
+
cols: number;
|
|
7
|
+
count: number;
|
|
8
|
+
/** The lattice pitch in DOMAIN units (the px pitch mapped to the domain). */
|
|
9
|
+
pitchDomain: number;
|
|
10
|
+
}
|
|
11
|
+
/** Compile-time lattice cap (mirrors the WGSL storage-buffer array bound). */
|
|
12
|
+
export declare const FLOW_MAX_LATTICE = 16384;
|
|
13
|
+
export declare function flowGridGeometry(gridPitchPx: number, canvasCssMin: number): FlowGridGeometry;
|
|
14
|
+
export declare const FLOW_COMPUTE_UNIFORM_BYTES: number;
|
|
15
|
+
export interface FlowUniformScratch {
|
|
16
|
+
buffer: ArrayBuffer;
|
|
17
|
+
f32: Float32Array;
|
|
18
|
+
i32: Int32Array;
|
|
19
|
+
}
|
|
20
|
+
export declare function createFlowComputeScratch(): FlowUniformScratch;
|
|
21
|
+
/** Pack the compute uniforms in place. */
|
|
22
|
+
export declare function packFlowComputeUniforms(scratch: FlowUniformScratch, config: FlowFieldConfig, timeSec: number, dt: number, geometry: FlowGridGeometry): FlowUniformScratch;
|
|
23
|
+
export declare const FLOW_RENDER_UNIFORM_BYTES: number;
|
|
24
|
+
export declare function createFlowRenderScratch(): FlowUniformScratch;
|
|
25
|
+
/** The base resting brightness (the calm-lattice floor before the band lights a dot). */
|
|
26
|
+
export declare const FLOW_BASE_BRIGHT = 0.22;
|
|
27
|
+
/** The drift-driven size pulse (a subtle breathing; never a re-seed). */
|
|
28
|
+
export declare const FLOW_SIZE_PULSE = 0.4;
|
|
29
|
+
/** Pack the render uniforms in place. */
|
|
30
|
+
export declare function packFlowRenderUniforms(scratch: FlowUniformScratch, config: FlowFieldConfig, timeSec: number, aspect: number, canvasCssMin: number, geometry: FlowGridGeometry, palette: OklchStop[]): FlowUniformScratch;
|
|
31
|
+
/** The byte size of one lattice dot in the storage buffer (vec4<f32>). */
|
|
32
|
+
export declare const FLOW_PARTICLE_BYTES = 16;
|
|
33
|
+
/**
|
|
34
|
+
* Seed the lattice storage buffer: each dot starts AT its anchor origin (the restoring
|
|
35
|
+
* spring needs no initial offset). `(pos.x, pos.y, height=0, |disp|=0)` per index — the
|
|
36
|
+
* compute kernel re-derives the origin from `gridOrigin(index, cols, pitch)` each frame,
|
|
37
|
+
* so the seed only needs the starting position (the lattice settles on the first frames).
|
|
38
|
+
*/
|
|
39
|
+
export declare function seedLatticeBuffer(geometry: FlowGridGeometry): Float32Array;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type Ref } from "vue";
|
|
2
|
+
import { type GpuBackend } from "../../../../composables/glass/webgpu/useGpuSubstrate";
|
|
3
|
+
import type { OklchStop } from "../../../../composables/color";
|
|
4
|
+
import type { FlowFieldConfig } from "../constants";
|
|
5
|
+
export interface UseDotFlowFieldOptions {
|
|
6
|
+
config: FlowFieldConfig;
|
|
7
|
+
/** Resolve the dot-color palette as OKLCh (the demo themes it; default warm-identity). */
|
|
8
|
+
getPalette: () => OklchStop[];
|
|
9
|
+
/** `"capture"` → renderAt-only (the deterministic π capture path). Default `"live"`. */
|
|
10
|
+
mode?: "live" | "capture";
|
|
11
|
+
}
|
|
12
|
+
/** The uniform handle a consumer wires its lifecycle against (backend-agnostic). */
|
|
13
|
+
export interface DotFlowFieldHandle {
|
|
14
|
+
/** The resolved backend (`"webgpu"` where supported, else the WebGL2 fragment fallback). */
|
|
15
|
+
readonly backend: GpuBackend;
|
|
16
|
+
/** Park the loop (the WCAG-2.2.2 pause seam — `DockBackgroundToggle` wires this). */
|
|
17
|
+
pause: () => void;
|
|
18
|
+
/** Re-arm the loop. */
|
|
19
|
+
resume: () => void;
|
|
20
|
+
/** Re-arm a parked loop on demand (a pointer/setter that re-introduced motion). */
|
|
21
|
+
wake: () => void;
|
|
22
|
+
/** Draw one frame out-of-loop (capture / thumbnail). */
|
|
23
|
+
renderAt: (timeSec: number) => void;
|
|
24
|
+
/** The live `prefers-reduced-motion: reduce` state. */
|
|
25
|
+
readonly reducedMotion: boolean;
|
|
26
|
+
/** Tear down the renderer + release GPU/GL resources. */
|
|
27
|
+
dispose: () => void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Mount the dot-flow-field renderer on `canvasRef`. The WebGPU primary runs the
|
|
31
|
+
* compute+render two-pass over the anchored lattice; the WebGL2 fallback evaluates the SAME
|
|
32
|
+
* `flowField.ts` field as a fullscreen fragment pass (the ONE math source). Returns the
|
|
33
|
+
* uniform lifecycle handle.
|
|
34
|
+
*/
|
|
35
|
+
export declare function useDotFlowField(canvasRef: Ref<HTMLCanvasElement | null>, options: UseDotFlowFieldOptions): DotFlowFieldHandle;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { WebGPUCanvasFrame } from "../../../../composables/glass/webgpu/useWebGPUCanvas";
|
|
2
|
+
import type { WebGLCanvasFrame } from "../../../../composables/glass/webgl/useWebGLCanvas";
|
|
3
|
+
import type { OklchStop } from "../../../../composables/color";
|
|
4
|
+
import type { FlowFieldConfig } from "../constants";
|
|
5
|
+
export interface FlowSetupDeps {
|
|
6
|
+
canvas: HTMLCanvasElement;
|
|
7
|
+
config: FlowFieldConfig;
|
|
8
|
+
/** The resolved (ColorResolver) palette stops as OKLCh — re-read each frame so a live palette edit reaches the buffer. */
|
|
9
|
+
getPalette: () => OklchStop[];
|
|
10
|
+
/** Demand-gate (the renderer's quiescence layer — substrate-agnostic). */
|
|
11
|
+
shouldContinue: () => boolean;
|
|
12
|
+
/**
|
|
13
|
+
* The per-frame pointer hook — useDotFlowField advances the shared
|
|
14
|
+
* `usePointerVelocityField` here (the no-own-rAF discipline; the renderer's loop feeds
|
|
15
|
+
* the push-API tick). ZERO own rAF.
|
|
16
|
+
*/
|
|
17
|
+
onFrame?: (timeSec: number) => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Build the dot-flow-field `setupWGPU(device, context, format)` callback. Closes over the
|
|
21
|
+
* config/palette getters + the renderer's demand gate + the pointer `onFrame` hook.
|
|
22
|
+
*/
|
|
23
|
+
export declare function createFlowWGPUSetup(deps: FlowSetupDeps): (device: GPUDevice, context: GPUCanvasContext, format: GPUTextureFormat) => WebGPUCanvasFrame;
|
|
24
|
+
/**
|
|
25
|
+
* Build the `setupGL(gl)` callback the `createGpuSubstrate` WebGL2 path invokes — a clean
|
|
26
|
+
* aurora-class fullscreen fragment pass (the retopology made the dot-lattice + brightness
|
|
27
|
+
* model fragment-friendly; the Canvas2D point-cloud is GONE, clean break). It evaluates
|
|
28
|
+
* the SAME `flowField.ts` height/displacement field the WGSL primary does, splicing the
|
|
29
|
+
* SHARED GLSL color chunk (the ONE color source → no drift between the two backends).
|
|
30
|
+
*/
|
|
31
|
+
export declare function createFlowGLSetup(deps: FlowSetupDeps): (gl: WebGL2RenderingContext) => WebGLCanvasFrame;
|