@mkbabb/glass-ui 4.0.1 → 4.2.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/dist/{CardAction-CW7a0m8M.js → CardAction-DlVP2evz.js} +72 -53
- package/dist/{CommandShortcut-DvZNQ_HF.js → CommandShortcut-By-VQcLO.js} +25 -14
- package/dist/{ConfiguratorRow-BR4l-ixA.js → ConfiguratorRow-YMXdINHx.js} +14 -14
- package/dist/ContextMenuContent-CMWn6huB.js +90 -0
- package/dist/{ContextMenuSubContent-xol4sD2q.js → ContextMenuSubContent-DvwWCUc0.js} +16 -16
- package/dist/{DataTable-CuKwF7wr.js → DataTable-C4tG3eIJ.js} +4 -4
- package/dist/DialogContent-D8U9ZfWS.js +121 -0
- package/dist/DialogFooter-DoLy0ewI.js +80 -0
- package/dist/DialogScrollContent-BMekN7gq.js +93 -0
- package/dist/{FadingScroll-DI6hQhT9.js → FadingScroll-P8B30rAD.js} +1 -1
- package/dist/HoverCardContent-DAmGYglo.js +88 -0
- package/dist/{HoverPopover-CbqbNwgU.js → HoverPopover-DYpBOzzF.js} +1 -1
- package/dist/{IconChip-BTD-nay5.js → IconChip-CQa7XZYc.js} +7 -5
- package/dist/{IconTooltip-Bl8gFZ8d.js → IconTooltip-_df8M3xm.js} +1 -1
- package/dist/Input-CyU4_hIC.js +57 -0
- package/dist/{MetricBadge-RHdBP72w.js → MetricBadge-DQt_dGah.js} +1 -1
- package/dist/{Notification-VUwexFUf.js → Notification-BlSPJhtZ.js} +4 -4
- package/dist/NumberFieldContent-Z3VxGu_6.js +140 -0
- package/dist/PagerDots-CYlqVFd4.js +196 -0
- package/dist/PaperBackdrop-DYWgrnh8.js +42 -0
- package/dist/{PopoverContent-DL7E6vJP.js → PopoverContent-BuKyHZSz.js} +2 -2
- package/dist/{Progress-DctG61iZ.js → Progress-C9SsdwIZ.js} +1 -1
- package/dist/{ScrollingText-yOpBzFYq.js → ScrollingText-DY3W1Jfh.js} +2 -2
- package/dist/SelectScrollDownButton-3mFHX_R-.js +260 -0
- package/dist/{SelectSeparator-DXswVdRz.js → SelectSeparator-CNRGG7Ew.js} +1 -1
- package/dist/Separator-Cf9-JFgi.js +44 -0
- package/dist/Switch-uf-UKPA2.js +49 -0
- package/dist/{Toaster-Bw4xR8xV.js → Toaster-ozrsR4mP.js} +2 -2
- package/dist/{ToggleGroupItem-pEM9vIhs.js → ToggleGroupItem-BpzaVzNm.js} +6 -6
- package/dist/TooltipProvider-QQVM_80r.js +109 -0
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +16 -32
- package/dist/api/types-extra.d.ts +33 -0
- package/dist/api.js +2 -2
- package/dist/aurora.js +629 -269
- package/dist/badge-Bt14yURi.js +72 -0
- package/dist/badge.js +1 -1
- package/dist/border-progress.js +49 -57
- package/dist/button-D1W9PrzI.js +130 -0
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -3
- package/dist/card.js +1 -1
- package/dist/carousel.js +235 -106
- package/dist/chipVariants-BJQ0I2kB.js +18 -0
- package/dist/collapsible.js +1 -1
- package/dist/color-B9jZdhJX.js +116 -0
- package/dist/color.js +2 -2
- package/dist/command.js +1 -1
- 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/color.d.ts +13 -0
- package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
- package/dist/components/custom/aurora/composables/glSetup.d.ts +1 -1
- package/dist/components/custom/aurora/composables/runtime.d.ts +12 -0
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +12 -3
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +8 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +47 -0
- package/dist/components/custom/aurora/constants/renderMode.d.ts +16 -8
- 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 -1
- package/dist/components/custom/aurora/index.d.ts +1 -1
- package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
- package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +14 -18
- package/dist/components/custom/border-progress/index.d.ts +1 -1
- 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 +15 -12
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +12 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
- package/dist/components/custom/concentric/composables/levelField.d.ts +50 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +7 -3
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +3 -3
- package/dist/components/custom/concentric/constants.d.ts +69 -24
- package/dist/components/custom/concentric/index.d.ts +2 -2
- package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +2 -2
- package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -1
- package/dist/components/custom/configurator/Configurator.vue.d.ts +23 -2
- package/dist/components/custom/configurator/index.d.ts +1 -1
- 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/DockDropdownTrigger.vue.d.ts +4 -3
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +22 -0
- package/dist/components/custom/dock/DockPopoverTrigger.vue.d.ts +19 -0
- package/dist/components/custom/dock/DockStack.vue.d.ts +78 -0
- package/dist/components/custom/dock/GlassDock.vue.d.ts +21 -3
- package/dist/components/custom/dock/composables/dockMorphContext.d.ts +18 -32
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +78 -67
- package/dist/components/custom/dock/composables/index.d.ts +3 -0
- package/dist/components/custom/dock/composables/railProjection.d.ts +45 -0
- package/dist/components/custom/dock/composables/useDockContextSilhouette.d.ts +192 -0
- package/dist/components/custom/dock/composables/useDockFission.d.ts +158 -0
- package/dist/components/custom/dock/composables/useDockItemDrag.d.ts +18 -0
- package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +49 -0
- package/dist/components/custom/dock/constants.d.ts +32 -17
- package/dist/components/custom/dock/index.d.ts +8 -2
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +15 -11
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +69 -6
- package/dist/components/custom/dot-flow-field/composables/flowGLProgram.d.ts +8 -0
- package/dist/components/custom/dot-flow-field/composables/flowSetupGL.d.ts +9 -0
- package/dist/components/custom/dot-flow-field/composables/flowSetupGLFlow.d.ts +12 -0
- package/dist/components/custom/dot-flow-field/composables/flowSetupWGPU.d.ts +7 -0
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +50 -9
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +6 -5
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +23 -9
- package/dist/components/custom/dot-flow-field/constants.d.ts +92 -20
- package/dist/components/custom/dot-flow-field/index.d.ts +2 -2
- package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -1
- package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +31 -18
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +2 -1
- 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 +61 -0
- package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
- package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +34 -0
- package/dist/components/custom/dot-matrix/constants.d.ts +72 -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/EasingPicker.vue.d.ts +2 -2
- package/dist/components/custom/easing/composables/useEasingPicker.d.ts +5 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +44 -47
- package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +24 -0
- package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +31 -0
- package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +56 -0
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +61 -37
- package/dist/components/custom/fourier-field/constants.d.ts +114 -4
- 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/goo-blob/GooBlob.vue.d.ts +9 -1
- package/dist/components/custom/goo-blob/composables/easing.d.ts +1 -0
- package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +1 -0
- package/dist/components/custom/goo-blob/constants.d.ts +26 -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 -1
- package/dist/components/custom/goo-blob/types.d.ts +86 -1
- 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 +79 -0
- package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +45 -0
- package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
- package/dist/components/custom/goo-dot-matrix/constants.d.ts +115 -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 +13 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +4 -0
- package/dist/components/custom/goo-filter/GooFilter.vue.d.ts +22 -0
- package/dist/components/custom/goo-filter/index.d.ts +1 -0
- package/dist/components/custom/handmark/brush.d.ts +17 -17
- package/dist/components/custom/handmark/constants.d.ts +28 -8
- package/dist/components/custom/handmark/geometry.d.ts +34 -1
- package/dist/components/custom/handmark/index.d.ts +1 -1
- package/dist/components/custom/icon-chip/types.d.ts +10 -0
- 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/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-backdrop/PaperBackdrop.vue.d.ts +18 -0
- package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
- package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +105 -0
- package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +18 -0
- package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +21 -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 +95 -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/chipVariants.d.ts +39 -0
- package/dist/components/custom/selectable-chip/index.d.ts +2 -0
- package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +15 -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 +8 -6
- package/dist/components/custom/tabs/constants.d.ts +28 -2
- package/dist/components/custom/timeline/ScrubberTimeline.vue.d.ts +16 -0
- package/dist/components/custom/timeline/geometry.d.ts +0 -8
- package/dist/components/custom/toggle-chip/index.d.ts +15 -4
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +32 -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/useControlSize.d.ts +46 -0
- package/dist/components/ui/_shared/useSurfaceAxis.d.ts +17 -3
- package/dist/components/ui/badge/Badge.vue.d.ts +14 -0
- package/dist/components/ui/badge/index.d.ts +1 -0
- package/dist/components/ui/button/Button.vue.d.ts +1 -0
- package/dist/components/ui/button/index.d.ts +1 -1
- package/dist/components/ui/card/Card.vue.d.ts +46 -1
- package/dist/components/ui/card/ScrollCard.vue.d.ts +1 -1
- package/dist/components/ui/card/index.d.ts +1 -1
- package/dist/components/ui/carousel/CarouselContent.vue.d.ts +2 -4
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
- package/dist/components/ui/carousel/CarouselPrevious.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/dialog/DialogContent.vue.d.ts +9 -0
- package/dist/components/ui/drawer/Drawer.vue.d.ts +33 -14
- package/dist/components/ui/drawer/constants.d.ts +8 -6
- package/dist/components/ui/drawer/index.d.ts +12 -2
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
- package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -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/select/SelectContent.vue.d.ts +12 -0
- package/dist/components/ui/slider/Slider.vue.d.ts +9 -0
- package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
- package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
- 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/dom/index.d.ts +1 -0
- package/dist/composables/dom/useDragVelocity.d.ts +46 -0
- package/dist/composables/glass/useVizChoreography.d.ts +123 -0
- package/dist/composables/glass/wave/index.d.ts +4 -0
- package/dist/composables/glass/wave/waveField.d.ts +115 -0
- package/dist/composables/glass/wave/waveField.glsl.d.ts +1 -0
- package/dist/composables/glass/wave/waveField.wgsl.d.ts +1 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +105 -2
- package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +40 -2
- package/dist/composables/glass/webgpu/index.d.ts +2 -1
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +65 -7
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +50 -2
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
- package/dist/composables/motion/core/index.d.ts +7 -0
- package/dist/composables/motion/core/useHaptic.d.ts +48 -0
- package/dist/composables/motion/core/writeVelocityWeight.d.ts +31 -0
- package/dist/composables/motion/index.d.ts +2 -0
- package/dist/composables/motion/scrollReader.d.ts +25 -0
- package/dist/composables/motion/springPresets.d.ts +19 -1
- package/dist/composables/motion/suite.d.ts +2 -2
- package/dist/composables/motion/useBloomUp.d.ts +97 -0
- package/dist/composables/motion/useCelebrationBurst.d.ts +50 -0
- package/dist/composables/motion/useCharStagger.d.ts +44 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +29 -22
- package/dist/composables/motion/useGooMorph.d.ts +72 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +18 -0
- package/dist/composables/motion/useLiquidMorph.d.ts +108 -0
- package/dist/composables/motion/useLiquidPress.d.ts +12 -0
- package/dist/composables/motion/useLiquidReveal.d.ts +7 -4
- package/dist/composables/motion/useMorphField.d.ts +157 -0
- package/dist/composables/motion/useScrollChrome.d.ts +58 -0
- package/dist/composables/motion/useScrollPin.d.ts +49 -0
- package/dist/composables/motion/useScrollScene.d.ts +67 -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.js +552 -309
- package/dist/configurator.js +2 -2
- package/dist/confirm-dialog.js +62 -47
- package/dist/constellation.js +635 -235
- package/dist/context-menu.js +2 -2
- package/dist/controls.js +2 -2
- package/dist/createCanvasLifecycle-CuCrGRfq.js +173 -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 +1320 -631
- package/dist/dockContext-gFVS2gMg.js +18 -0
- package/dist/dom.js +7 -6
- package/dist/dot-flow-field.js +1268 -387
- package/dist/dot-matrix.d.ts +1 -0
- package/dist/dot-matrix.js +774 -0
- package/dist/dotMatrixField-CRO0ZFk4.js +48 -0
- package/dist/drawer.js +106 -96
- package/dist/{dropdown-menu-CofSZuk8.js → dropdown-menu-CCfcCQ68.js} +83 -79
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.js +188 -176
- package/dist/expandable-container.js +43 -21
- package/dist/fading-scroll.js +1 -1
- package/dist/flow.glsl-DqEGRpl4.js +4 -0
- package/dist/forms.js +64 -62
- package/dist/fourier-field.js +1069 -178
- 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 +164 -119
- package/dist/goo-blob.js +175 -1230
- package/dist/goo-dot-matrix.d.ts +1 -0
- package/dist/goo-dot-matrix.js +811 -0
- package/dist/handmark.js +137 -94
- 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 +5 -0
- 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 +12 -3
- package/dist/motion-core.js +59 -34
- package/dist/motion-curves.js +30 -14
- package/dist/motion.js +231 -96
- 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 +761 -0
- package/dist/paperGrid-CXCSMbZ1.js +191 -0
- package/dist/popover.js +1 -1
- package/dist/{presets-BW2b-fr1.js → presets-QvYgnFIZ.js} +14 -13
- package/dist/{procedural-color.glsl-CIFsJhwI.js → procedural-color.wgsl-C1Y5PkM6.js} +2 -2
- package/dist/progress.js +1 -1
- package/dist/pulse.js +2 -2
- package/dist/reactive.js +2 -2
- package/dist/{useCanvas2D-B8w_E3Rr.js → resolveCanvasColor-DsSJk06I.js} +16 -6
- package/dist/scrollReader-rc3Ns_NM.js +42 -0
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +162 -306
- package/dist/select.js +3 -3
- package/dist/selectable-chip.d.ts +1 -0
- package/dist/selectable-chip.js +48 -0
- package/dist/separator.js +1 -1
- package/dist/{sheet-tZMg0E0w.js → sheet-DUCIoOe0.js} +4 -4
- package/dist/sheet.js +1 -1
- package/dist/sidebar.js +216 -114
- package/dist/slider-CcICPe3u.js +149 -0
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +3 -3
- package/dist/spectrum-walk-cBNSx_zm.js +33 -0
- package/dist/springPresets-DfoQ6XRY.js +64 -0
- package/dist/stacked-icons.js +54 -39
- package/dist/styles/animations.css +13 -3
- package/dist/styles/cards.css +271 -2
- package/dist/styles/completion-seal.css +131 -0
- package/dist/styles/components.css +1 -4
- package/dist/styles/configurator.css +221 -1
- package/dist/styles/critical-partition.mjs +66 -11
- package/dist/styles/deferred.css +4 -0
- package/dist/styles/dock/adaptive-legibility.css +119 -0
- package/dist/styles/dock/cta-seat.css +87 -0
- package/dist/styles/dock/density.css +167 -6
- package/dist/styles/dock/fission-bridge.css +552 -0
- package/dist/styles/dock/layers.css +90 -78
- package/dist/styles/dock/morph-bridge.css +67 -18
- package/dist/styles/dock/morph.css +57 -118
- package/dist/styles/dock/overflow.css +12 -0
- package/dist/styles/dock/search.css +68 -0
- package/dist/styles/dock/shape.css +250 -0
- package/dist/styles/dock/shell.css +24 -8
- package/dist/styles/dock/stack-rail.css +352 -0
- package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/dist/styles/dock-controls/icon-button.css +46 -0
- package/dist/styles/dock-controls/triggers.css +23 -1
- package/dist/styles/dock-controls.css +18 -0
- package/dist/styles/dock.css +27 -2
- package/dist/styles/drawer.css +166 -0
- package/dist/styles/glass/accent-tone.css +66 -0
- package/dist/styles/glass/control-surfaces.css +167 -0
- package/dist/styles/glass/glass-atom.css +244 -0
- package/dist/styles/glass/glass-capsule.css +143 -0
- package/dist/styles/glass/glass-chip.css +215 -0
- package/dist/styles/glass/ladder.css +67 -17
- package/dist/styles/glass/liquid-enter.css +252 -0
- package/dist/styles/glass/liquid-morph.css +850 -0
- package/dist/styles/glass/material.css +70 -1
- package/dist/styles/glass/reveal.css +22 -2
- package/dist/styles/glass/rim.css +31 -9
- package/dist/styles/glass/surfaces.css +81 -150
- package/dist/styles/glass.css +21 -0
- package/dist/styles/icon-chip.css +45 -0
- package/dist/styles/index.css +26 -0
- package/dist/styles/jubilance.css +65 -0
- package/dist/styles/motion/morph-field.css +229 -0
- package/dist/styles/paper.css +230 -14
- package/dist/styles/scroll-choreography.css +135 -78
- package/dist/styles/scroll-chrome.css +123 -0
- package/dist/styles/scroll-driven.css +38 -0
- package/dist/styles/segmented-tabs.css +110 -40
- package/dist/styles/select.css +151 -0
- package/dist/styles/theme/bridges.css +22 -0
- package/dist/styles/theme/radius.css +18 -1
- package/dist/styles/tokens/color-radius.css +14 -4
- package/dist/styles/tokens/dark-arm.css +94 -12
- package/dist/styles/tokens/glass-deep.css +33 -4
- package/dist/styles/tokens/glass-fx.css +122 -1
- package/dist/styles/tokens/glass.css +226 -34
- package/dist/styles/tokens/light-dark.css +3 -3
- package/dist/styles/tokens/offsets.css +27 -0
- package/dist/styles/tokens/property-regs.css +277 -0
- package/dist/styles/tokens/scale-paper.css +86 -30
- package/dist/styles/tokens/scheme-motion.css +106 -133
- package/dist/styles/tokens/scheme-spring.css +239 -0
- package/dist/styles/tokens/scroll-tokens.css +15 -15
- package/dist/styles/tokens/shadow.css +73 -13
- package/dist/styles/tokens/sizing-config.css +110 -0
- package/dist/styles/tokens/sizing.css +55 -104
- package/dist/styles/tokens.css +14 -2
- package/dist/styles/typography/semantic.css +18 -5
- package/dist/styles/utilities/a11y-overrides.css +20 -5
- package/dist/styles/utilities/base-misc.css +52 -0
- package/dist/styles/utilities/btn.css +84 -3
- package/dist/styles/utilities/components.css +31 -6
- package/dist/styles/utilities/metal.css +26 -0
- package/dist/switch.js +1 -1
- package/dist/tabs.js +199 -182
- package/dist/timeline.js +241 -206
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +14 -41
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +2 -2
- package/dist/uniformBridgeWGPU-BCse1SHU.js +1268 -0
- package/dist/{useAnimatedNumber-BfUq2bUM.js → useAnimatedNumber-BntskVdQ.js} +1 -1
- package/dist/{useConfiguratorState-DNlOh6c8.js → useConfiguratorState-22BcULzF.js} +41 -38
- package/dist/useControlSize-DAZ062x7.js +9 -0
- package/dist/useDockCtaReceive-DX7RDb6_.js +88 -0
- package/dist/{useDragMorph-DgxnsVJz.js → useDragMorph-DGLSewwB.js} +4 -4
- package/dist/useDragVelocity-CjcfX3dA.js +57 -0
- package/dist/useFuzzySearch-0fTYOhS4.js +177 -0
- package/dist/useGooMorph-Cs13NgYL.js +104 -0
- package/dist/useGpuSubstrate-Ceet70xq.js +347 -0
- package/dist/useHaptic-CPz5BT9I.js +134 -0
- package/dist/{useLiquidFlex-mZPMiNXh.js → useLiquidFlex-Cc6PjVJD.js} +8 -3
- package/dist/useLiquidPress-CtOQ8Z0_.js +43 -0
- package/dist/useMorphField-ogBM7ubT.js +141 -0
- package/dist/usePointerVelocityField-BrkqZFhj.js +91 -0
- package/dist/useScrollChrome-JuImi1DM.js +258 -0
- package/dist/{useSpringMount-q1amq1SJ.js → useSpringMount-DFxtzmkR.js} +1 -1
- package/dist/useSpringPress-VM9RgVq3.js +36 -0
- package/dist/{useSurfaceAxis-g0NloYEF.js → useSurfaceAxis-Ci7Dnaw2.js} +1 -1
- package/dist/{useTouchGate-CBZTD4SD.js → useTouchGate-B1Lf9XqN.js} +1 -1
- package/dist/{vendor-CKmzio-i.js → vendor-B2qOlYY3.js} +24 -11
- package/dist/virtual.d.ts +1 -0
- package/dist/virtual.js +225 -0
- package/dist/watercolor-dot.js +107 -74
- package/dist/writeVelocityWeight-Bh83xZfs.js +19 -0
- package/package.json +140 -9
- package/src/styles/animations.css +13 -3
- package/src/styles/cards.css +271 -2
- package/src/styles/completion-seal.css +131 -0
- package/src/styles/configurator.css +221 -1
- package/src/styles/critical-partition.mjs +66 -11
- package/src/styles/dock/adaptive-legibility.css +119 -0
- package/src/styles/dock/cta-seat.css +87 -0
- package/src/styles/dock/density.css +167 -6
- package/src/styles/dock/fission-bridge.css +552 -0
- package/src/styles/dock/layers.css +90 -78
- package/src/styles/dock/morph-bridge.css +67 -18
- package/src/styles/dock/morph.css +57 -118
- package/src/styles/dock/overflow.css +12 -0
- package/src/styles/dock/search.css +68 -0
- package/src/styles/dock/shape.css +250 -0
- package/src/styles/dock/shell.css +24 -8
- package/src/styles/dock/stack-rail.css +352 -0
- package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/src/styles/dock-controls/icon-button.css +46 -0
- package/src/styles/dock-controls/triggers.css +23 -1
- package/src/styles/dock-controls.css +18 -0
- package/src/styles/dock.css +27 -2
- package/src/styles/drawer.css +164 -0
- package/src/styles/glass/accent-tone.css +66 -0
- package/src/styles/glass/control-surfaces.css +167 -0
- package/src/styles/glass/glass-atom.css +244 -0
- package/src/styles/glass/glass-capsule.css +143 -0
- package/src/styles/glass/glass-chip.css +215 -0
- package/src/styles/glass/ladder.css +67 -17
- package/src/styles/glass/liquid-enter.css +252 -0
- package/src/styles/glass/liquid-morph.css +850 -0
- package/src/styles/glass/material.css +70 -1
- package/src/styles/glass/reveal.css +22 -2
- package/src/styles/glass/rim.css +31 -9
- package/src/styles/glass/surfaces.css +81 -150
- package/src/styles/glass.css +21 -0
- package/src/styles/icon-chip.css +45 -0
- package/src/styles/index.css +26 -0
- package/src/styles/jubilance.css +65 -0
- package/src/styles/motion/morph-field.css +229 -0
- package/src/styles/paper.css +230 -14
- package/src/styles/scroll-choreography.css +135 -78
- package/src/styles/scroll-chrome.css +123 -0
- package/src/styles/scroll-driven.css +38 -0
- package/src/styles/segmented-tabs.css +110 -36
- package/src/styles/select.css +151 -0
- package/src/styles/theme/bridges.css +22 -0
- package/src/styles/theme/radius.css +18 -1
- package/src/styles/tokens/color-radius.css +14 -4
- package/src/styles/tokens/dark-arm.css +94 -12
- package/src/styles/tokens/glass-deep.css +33 -4
- package/src/styles/tokens/glass-fx.css +122 -1
- package/src/styles/tokens/glass.css +226 -34
- package/src/styles/tokens/light-dark.css +3 -3
- package/src/styles/tokens/offsets.css +27 -0
- package/src/styles/tokens/property-regs.css +277 -0
- package/src/styles/tokens/scale-paper.css +86 -30
- package/src/styles/tokens/scheme-motion.css +106 -133
- package/src/styles/tokens/scheme-spring.css +239 -0
- package/src/styles/tokens/scroll-tokens.css +15 -15
- package/src/styles/tokens/shadow.css +73 -13
- package/src/styles/tokens/sizing-config.css +110 -0
- package/src/styles/tokens/sizing.css +55 -104
- package/src/styles/tokens.css +14 -2
- package/src/styles/typography/semantic.css +18 -5
- package/src/styles/utilities/a11y-overrides.css +20 -5
- package/src/styles/utilities/base-misc.css +52 -0
- package/src/styles/utilities/btn.css +84 -3
- package/src/styles/utilities/components.css +31 -6
- package/src/styles/utilities/metal.css +26 -0
- package/dist/ContextMenuContent-uWnVxDab.js +0 -85
- package/dist/DialogContent-DcKK8k9i.js +0 -103
- package/dist/DialogFooter-BZNX5aVr.js +0 -165
- package/dist/HoverCardContent-b2uaAMRR.js +0 -83
- package/dist/Input-h9v5LeXf.js +0 -55
- package/dist/NumberFieldContent-Cq7EzX-U.js +0 -138
- package/dist/PaperBackdrop-Vf3tlpvd.js +0 -31
- package/dist/SelectScrollDownButton-CrA8F0iV.js +0 -252
- package/dist/Separator-pKF0oA4M.js +0 -37
- package/dist/Switch-CwYNf8bo.js +0 -47
- package/dist/TooltipProvider-rzvnXz60.js +0 -104
- package/dist/badge-D9XWW4GT.js +0 -53
- package/dist/button-DYCUa-tH.js +0 -126
- package/dist/color-DweYl7pE.js +0 -86
- package/dist/components/custom/concentric/composables/ringField.d.ts +0 -44
- 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/createCanvasLifecycle-CHD5XrDW.js +0 -82
- package/dist/dockContext-BNfyPLe9.js +0 -17
- package/dist/procedural-color.wgsl-CToRHugY.js +0 -224
- package/dist/resolveCanvasColor-CUyHr5Uu.js +0 -11
- package/dist/slider-DVb4HXU-.js +0 -142
- package/dist/springPresets-CFQGQfdl.js +0 -40
- package/dist/styles/dock/rail-extend.css +0 -397
- package/dist/useLiquidPress-kfb4KX79.js +0 -39
- package/dist/usePointerVelocityField-JbRd5CrM.js +0 -137
- package/dist/useRAFLoop-UYa4zoiN.js +0 -109
- package/dist/useSpringPress-BsqPr7FJ.js +0 -34
- package/src/styles/dock/rail-extend.css +0 -397
- /package/dist/{CollapsibleContent-68dEXIAl.js → CollapsibleContent-D7UNsXQr.js} +0 -0
- /package/dist/{InstrumentChassis-Bx0F_q5g.js → InstrumentChassis-UUJX0-mW.js} +0 -0
- /package/dist/{Label-C2ejNWeC.js → Label-B_HPqi_q.js} +0 -0
- /package/dist/{ModalOverlay-D1VrWyoi.js → ModalOverlay-DfAf7o15.js} +0 -0
- /package/dist/{SelectGroup-DwwjicPY.js → SelectGroup-Dcczq44n.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-C1je1s0u.js → _plugin-vue_export-helper-gLzyemvl.js} +0 -0
- /package/dist/{compile-CQEFRTmx.js → compile-INR_tPk_.js} +0 -0
- /package/dist/{constants-BPOqYJAm.js → constants-BWj7DkMn.js} +0 -0
- /package/dist/{createContext-CpBNTRMI.js → createContext-Cd23P9j0.js} +0 -0
- /package/dist/{math-BINYmg5z.js → math-5RcIgCB4.js} +0 -0
- /package/dist/{menuItemVariants-D8VNHq22.js → menuItemVariants-DAXquKja.js} +0 -0
- /package/dist/{prng-Za0Rmgag.js → prng-B5tIXTtj.js} +0 -0
- /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-B4HO9LXG.js} +0 -0
- /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-DO8Vl4gs.js} +0 -0
- /package/dist/{useInterval-CvK1mL92.js → useInterval-BVUI-sez.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BEut54Tk.js} +0 -0
- /package/dist/{useResizeObserver-Bpoi7tRE.js → useResizeObserver-DdEn3v2f.js} +0 -0
- /package/dist/{useResolveTokenColor-vAylyR0x.js → useResolveTokenColor-ChOnCckA.js} +0 -0
- /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-A0M6qRl7.js} +0 -0
- /package/dist/{useSortable-DHjtZSEd.js → useSortable-DQV_UNDw.js} +0 -0
- /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-Bma3UlKA.js} +0 -0
- /package/dist/{useTimer-BHJOKr35.js → useTimer-BBLGPXR8.js} +0 -0
- /package/dist/{useUserInvalidAria-y5namzeE.js → useUserInvalidAria-EmmwWPOl.js} +0 -0
- /package/dist/{useViewportReady-anbac3m6.js → useViewportReady-C9pYnn7K.js} +0 -0
- /package/dist/{vReveal-Czsb7zQC.js → vReveal-CT1KtwZA.js} +0 -0
- /package/dist/{vSpecular-CQFmLNzA.js → vSpecular-EX7loENl.js} +0 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { type Ref } from "vue";
|
|
2
|
+
/** The three named fission CONTEXTS — each maps to a goo signature (F3). */
|
|
3
|
+
export type DockSplitContext = "search" | "media" | "nav";
|
|
4
|
+
/** The detach vector family a context selects. */
|
|
5
|
+
export type DockSplitVector = "radial" | "lateral" | "inward-merge";
|
|
6
|
+
/**
|
|
7
|
+
* BD.W-DOCK-CORE (II.2 — F-1 the headline fix). The placement axis the detached
|
|
8
|
+
* pieces TRAVEL ALONG to form the sibling island dock. The prior build let each
|
|
9
|
+
* piece scatter on its own radial center → it read as inline jitter inside the one
|
|
10
|
+
* pill, NOT a detach. A single COHERENT placement vector flies the whole piece
|
|
11
|
+
* cluster off the source plate so a second dock visibly materializes beside/above/
|
|
12
|
+
* below (the iOS-27 split read).
|
|
13
|
+
*/
|
|
14
|
+
export type DockSplitPlacement = "beside" | "above" | "below";
|
|
15
|
+
/** The unit placement vector each `splitPlacement` flies the cluster along. */
|
|
16
|
+
export declare const PLACEMENT_VECTOR: Readonly<Record<DockSplitPlacement, {
|
|
17
|
+
dx: number;
|
|
18
|
+
dy: number;
|
|
19
|
+
}>>;
|
|
20
|
+
/** The squish-peak register — WHEN the `useLiquidFlex` swell peaks in the travel. */
|
|
21
|
+
export type DockSplitSquishPeak = "late" | "long" | "coalesce";
|
|
22
|
+
/**
|
|
23
|
+
* The per-context goo-SIGNATURE descriptor (F3 — the FLOOR, DATA not three code paths).
|
|
24
|
+
* The orchestrator reads this to compute each piece's vector + stagger + neck phase; the
|
|
25
|
+
* ONE `fission-bridge.css` recipe paints whatever the pieces carry.
|
|
26
|
+
*/
|
|
27
|
+
export interface DockSplitSignature {
|
|
28
|
+
/** The context this signature serves. */
|
|
29
|
+
context: DockSplitContext;
|
|
30
|
+
/** The detach-vector family. */
|
|
31
|
+
vector: DockSplitVector;
|
|
32
|
+
/**
|
|
33
|
+
* How long the goo neck HOLDS before it snaps (0..1 of `--split-t`). High = the
|
|
34
|
+
* tense radial pop (neck holds to ~0.55 then snaps); the neck-break offset.
|
|
35
|
+
*/
|
|
36
|
+
neckHold: number;
|
|
37
|
+
/**
|
|
38
|
+
* The per-piece stagger-rank resolver — returns piece `i`'s ordinal in the break
|
|
39
|
+
* SEQUENCE (innermost-first for radial, outside-in for lateral). The orchestrator
|
|
40
|
+
* phase-shifts each piece's `--neck-t` by `staggerStep * rank` so the N necks break
|
|
41
|
+
* in sequence, never simultaneously (the `--split-stagger * rank(i)` idiom).
|
|
42
|
+
*/
|
|
43
|
+
staggerRank: (i: number, count: number) => number;
|
|
44
|
+
/** WHEN the `useLiquidFlex` squish swell peaks across the travel. */
|
|
45
|
+
squishPeak: DockSplitSquishPeak;
|
|
46
|
+
}
|
|
47
|
+
/** The canonical per-context signature MAP (F3 — search/media/nav, descriptor-driven). */
|
|
48
|
+
export declare const DOCK_SPLIT_SIGNATURES: Readonly<Record<DockSplitContext, DockSplitSignature>>;
|
|
49
|
+
/** The per-piece DIRECTION-VECTOR + rank a control registers (the MorphTarget twin). */
|
|
50
|
+
export interface DockFissionPieceRegistration {
|
|
51
|
+
/** The detaching control element (its `--split-*`/`--neck-t` vars are written here). */
|
|
52
|
+
el: Ref<HTMLElement | null>;
|
|
53
|
+
/**
|
|
54
|
+
* The detach DIRECTION as a unit-ish vector in dock-local space (the bloom/peel
|
|
55
|
+
* direction). `radial` blooms `(cx_i − cx_dock)`-ward; `lateral` peels cross-axis;
|
|
56
|
+
* `inward-merge` is the negative radial. May be a getter so a live re-measure
|
|
57
|
+
* (the FLIP-measured center) re-resolves per read.
|
|
58
|
+
*/
|
|
59
|
+
vector: {
|
|
60
|
+
dx: number;
|
|
61
|
+
dy: number;
|
|
62
|
+
} | (() => {
|
|
63
|
+
dx: number;
|
|
64
|
+
dy: number;
|
|
65
|
+
});
|
|
66
|
+
/**
|
|
67
|
+
* The piece's ordinal in the registration order (the `--i` the bridge reads + the
|
|
68
|
+
* input to the signature's `staggerRank`). Stable per piece.
|
|
69
|
+
*/
|
|
70
|
+
rank: number;
|
|
71
|
+
}
|
|
72
|
+
/** The handle a registered piece holds (detach on unmount). */
|
|
73
|
+
export interface DockFissionPieceHandle {
|
|
74
|
+
/** Detach this piece from the orchestrator (on the control's unmount). */
|
|
75
|
+
release(): void;
|
|
76
|
+
}
|
|
77
|
+
export interface UseDockFissionOptions {
|
|
78
|
+
/** The `.glass-dock` root (or the fission scope) the shared `--dock-split-t` writes to. */
|
|
79
|
+
rootEl: Ref<HTMLElement | null>;
|
|
80
|
+
/**
|
|
81
|
+
* The active signature (the context the dock is fissioning under). A `Ref` so a
|
|
82
|
+
* consumer can swap contexts; the orchestrator reads `.value` at split time.
|
|
83
|
+
*/
|
|
84
|
+
signature: Ref<DockSplitSignature>;
|
|
85
|
+
/**
|
|
86
|
+
* BD.W-DOCK-CORE (II.2 — F-1). The placement the detached pieces fly to form the
|
|
87
|
+
* sibling island. A `Ref` so a consumer can swap placement. The orchestrator writes
|
|
88
|
+
* the per-piece travel along this ONE coherent vector (not per-piece radial scatter)
|
|
89
|
+
* so the cluster reads as a real detach into a second dock beside/above/below.
|
|
90
|
+
* Defaults to `"beside"`.
|
|
91
|
+
*/
|
|
92
|
+
placement?: Ref<DockSplitPlacement>;
|
|
93
|
+
/**
|
|
94
|
+
* The LOW squish cap the `useLiquidFlex` recoil saturates at (≤1.08 — the anti-taffy
|
|
95
|
+
* fence). May be a getter so a live `--*-max-stretch` cascade override re-resolves.
|
|
96
|
+
* Defaults to 1.08 (the `useLiquidFlex` register).
|
|
97
|
+
*/
|
|
98
|
+
maxStretch?: number | (() => number);
|
|
99
|
+
/**
|
|
100
|
+
* The seam-tension cap (F4 — kept LOW ≈0.12, the `useLiquidFlex` maxStretch
|
|
101
|
+
* register). A fast pull THINS the neck via the existing `clip-path` channel up to
|
|
102
|
+
* this cap, saturating — never a taffy-pull.
|
|
103
|
+
*/
|
|
104
|
+
seamTensionCap?: number;
|
|
105
|
+
/**
|
|
106
|
+
* The seam-tension velocity gain `k` — `--seam-tension = clamp(0, speed·k, cap)`.
|
|
107
|
+
* Defaults to 0.6 (a calm gain over the normalized-host velocity).
|
|
108
|
+
*/
|
|
109
|
+
seamTensionGain?: number;
|
|
110
|
+
/**
|
|
111
|
+
* The per-rank stagger STEP — the `--neck-t` phase shift per stagger-rank so the N
|
|
112
|
+
* necks break in sequence (the `--split-stagger * rank` idiom). Defaults to 0.08.
|
|
113
|
+
*/
|
|
114
|
+
staggerStep?: number;
|
|
115
|
+
/** Honor `prefers-reduced-motion: reduce` → instant sync-seat (F5). Default true. */
|
|
116
|
+
respectReducedMotion?: boolean;
|
|
117
|
+
}
|
|
118
|
+
export interface UseDockFissionReturn {
|
|
119
|
+
/** The live split scalar (0 rest → 1 fissioned), the last value the spring wrote. */
|
|
120
|
+
readonly t: Readonly<Ref<number>>;
|
|
121
|
+
/** True while the dock is fissioned (or mid-fission past the threshold). */
|
|
122
|
+
readonly fissioned: Readonly<Ref<boolean>>;
|
|
123
|
+
/**
|
|
124
|
+
* Register a surviving control as a fission PIECE (the `Set<MorphTarget>` pattern).
|
|
125
|
+
* The piece carries its DIRECTION-VECTOR + rank; the orchestrator writes its
|
|
126
|
+
* `--split-dx`/`--split-dy`/`--i`/`--neck-t` off the active signature.
|
|
127
|
+
*/
|
|
128
|
+
registerPiece(reg: DockFissionPieceRegistration): DockFissionPieceHandle;
|
|
129
|
+
/** SPLIT — run the scalar 0→1 (carve the pill into the N pieces). */
|
|
130
|
+
split(): void;
|
|
131
|
+
/** RE-MERGE — run the scalar 1→0 (the SAME loop, target flipped — F2 bidirectional). */
|
|
132
|
+
merge(): void;
|
|
133
|
+
/** Toggle split↔merge from the current state. */
|
|
134
|
+
toggle(): void;
|
|
135
|
+
/**
|
|
136
|
+
* The `@pointermove` handler the consumer binds on the dock host — feeds the raw
|
|
137
|
+
* pointer to the velocity field (the field is ticked from INSIDE the driver loop).
|
|
138
|
+
* PRM-gated by the field itself.
|
|
139
|
+
*/
|
|
140
|
+
onPointerMove(event: PointerEvent): void;
|
|
141
|
+
/** Tear down the spring + the field listener (auto-run on scope dispose). */
|
|
142
|
+
dispose(): void;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* The n-ary detach orchestrator. ONE `SpringProgress` on `DOCK_SPRING` writing
|
|
146
|
+
* `--dock-split-t` + per-piece `--split-dx`/`--split-dy`/`--i`/`--neck-t` off the active
|
|
147
|
+
* `DockSplitSignature`, the snap-recoil on `useLiquidFlex`, the seam-tension on
|
|
148
|
+
* `usePointerVelocityField` (fed from inside the ONE loop), PRM sync-seated. See the
|
|
149
|
+
* module header for the load-bearing-reuse + box-inviolate rationale.
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```ts
|
|
153
|
+
* const fission = useDockFission({ rootEl, signature })
|
|
154
|
+
* const h = fission.registerPiece({ el: searchIconRef, vector: { dx: -1, dy: 0 }, rank: 0 })
|
|
155
|
+
* fission.split() // the pill carves into the pieces along the signature
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
export declare function useDockFission(options: UseDockFissionOptions): UseDockFissionReturn;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type Ref } from "vue";
|
|
2
|
+
export interface UseDockItemDragParams {
|
|
3
|
+
/** The dock root element (the items live in its active layer). */
|
|
4
|
+
rootEl: Ref<HTMLElement | null>;
|
|
5
|
+
/** Whether the axis is armed (the `:draggable-items` prop). May be a getter. */
|
|
6
|
+
enabled: () => boolean;
|
|
7
|
+
/** The morph axis (`"x"` horizontal · `"y"` vertical). A getter (orientation flips). */
|
|
8
|
+
axis: () => "x" | "y";
|
|
9
|
+
/** Fired once on settle with the committed (from, to) item indices. */
|
|
10
|
+
onReorder?: (from: number, to: number) => void;
|
|
11
|
+
}
|
|
12
|
+
export interface UseDockItemDragReturn {
|
|
13
|
+
/** True while a dock item is being dragged. */
|
|
14
|
+
dragging: Readonly<Ref<boolean>>;
|
|
15
|
+
/** Tear down the gesture + listeners. */
|
|
16
|
+
detach: () => void;
|
|
17
|
+
}
|
|
18
|
+
export declare function useDockItemDrag(params: UseDockItemDragParams): UseDockItemDragReturn;
|
|
@@ -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,55 @@ 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;
|
|
157
|
+
/**
|
|
158
|
+
* BD.W-DOCK-CORE (A13 / II.2) — arm the SHIPPED fission seam (additive, default
|
|
159
|
+
* `false`). When true the dock composes `useDockFission` (the n-ary detach
|
|
160
|
+
* orchestrator on the SAME `DOCK_SPRING` clock, BESIDE the morph engine — box-
|
|
161
|
+
* INVIOLATE, never editing `dockMorphContext`), auto-registers every child marked
|
|
162
|
+
* `data-dock-splittable` as a fission PIECE (its detach vector derived from its
|
|
163
|
+
* FLIP-measured center relative to the dock center), feeds the seam-tension on
|
|
164
|
+
* `@pointermove`, and exposes `split()`/`merge()`/`toggle()` via `defineExpose`. A
|
|
165
|
+
* non-splittable dock is byte-identical to HEAD. The ONE `<GooFilter>` mount must be mounted
|
|
166
|
+
* once at the app root (the goo `<filter>` the necks reference).
|
|
167
|
+
*/
|
|
168
|
+
splittable?: boolean;
|
|
169
|
+
/**
|
|
170
|
+
* BD.W-DOCK-CORE (A13) — the fission CONTEXT (the `DOCK_SPLIT_SIGNATURES` row): the
|
|
171
|
+
* detach-vector family + neck stagger. `"nav"` (default) is inward-merge; `"search"`
|
|
172
|
+
* is a radial bloom; `"media"` is a lateral peel.
|
|
173
|
+
*/
|
|
174
|
+
splitContext?: "search" | "media" | "nav";
|
|
175
|
+
/**
|
|
176
|
+
* BD.W-DOCK-CORE (A13) — where the detached sibling dock lands (reads the split
|
|
177
|
+
* vector). `"beside"` (default) is the radial/lateral lateral landing; `"above"`/
|
|
178
|
+
* `"below"` are the V-axis landings.
|
|
179
|
+
*/
|
|
180
|
+
splitPlacement?: "beside" | "above" | "below";
|
|
181
|
+
/**
|
|
182
|
+
* BD.W-DOCK-CORE (A12) — arm the draggable-ITEMS axis (additive, default `false`).
|
|
183
|
+
* When true every child marked `data-dock-draggable` (or, lacking marks, every
|
|
184
|
+
* `.dock-icon-button` in the active layer) becomes GRABBABLE: a pointer-capture grab
|
|
185
|
+
* lets the user pull a dock item and the gesture follows ~1:1 with a volume-preserving
|
|
186
|
+
* gel-squish (the SHIPPED `useDragMorph` composing kf `Draggable` + `useLiquidFlex`
|
|
187
|
+
* "tanh" velocity-squish — NO second drag engine), then flings velocity-continuously to
|
|
188
|
+
* the nearest slot, committing a REORDER via `update:order`. Compositor-only
|
|
189
|
+
* (`transform: translate` — never a layout property); PRM-safe (the gesture still
|
|
190
|
+
* functions, the squish off, the release an instant nearest-snap); the roving-tabindex
|
|
191
|
+
* keyboard contract on the dock controls is preserved (a draggable strip that is
|
|
192
|
+
* keyboard-dead is the worse failure). A non-draggable dock is byte-identical to HEAD.
|
|
193
|
+
*/
|
|
194
|
+
draggableItems?: boolean;
|
|
146
195
|
}
|
|
147
196
|
/** The resolved shell-prop computeds the GlassDock SFC binds. */
|
|
148
197
|
export interface DockShellProps {
|
|
@@ -1,18 +1,33 @@
|
|
|
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;
|
|
20
|
+
/**
|
|
21
|
+
* BE.W-DOCK-RAIL-REALIZE — the per-FACET accent hue (the `mode="facets"` context
|
|
22
|
+
* carousel only — IGNORED by the macOS `mode="stack"` glyph fan). A complete
|
|
23
|
+
* `<color>` (a consumer DATA/context hue) written to the chip's `--glass-accent`
|
|
24
|
+
* (the BB.W-GLASS-ACCENT per-instance chromatic-rim axis, `rim.css`/`material.css`),
|
|
25
|
+
* so each context facet carries its OWN rim+glint hue — the AZ context-carousel
|
|
26
|
+
* identity. Unset ⇒ the neutral warm-cream rim (the `--glass-accent: transparent`
|
|
27
|
+
* no-op floor). NOT a plate-background fill (the accent rides the THIN rim/glint;
|
|
28
|
+
* presets-in-consumers — no consumer hue enters a library token).
|
|
29
|
+
*/
|
|
30
|
+
accent?: string;
|
|
16
31
|
}
|
|
17
32
|
/**
|
|
18
33
|
* BA.W-DOCK-SECTIONS — the three named zone kinds the declarative `<DockSection>`
|
|
@@ -42,12 +57,12 @@ export interface DockSectionDescriptor {
|
|
|
42
57
|
/** Optional accessible label for the grouped zone. */
|
|
43
58
|
label?: string;
|
|
44
59
|
/**
|
|
45
|
-
* For a `section` kind: the
|
|
46
|
-
* (length > 1) the
|
|
47
|
-
* the dock
|
|
48
|
-
*
|
|
60
|
+
* For a `section` kind: the stack members this section carries. When present
|
|
61
|
+
* (length > 1) the members ride the dock's `#rail` stack (the macOS hover-expand
|
|
62
|
+
* stack, OUTSIDE the dock box — never re-inflating it). The descriptor names them;
|
|
63
|
+
* `<DockStack :items>` fans them out.
|
|
49
64
|
*/
|
|
50
|
-
layers?: readonly
|
|
65
|
+
layers?: readonly DockStackItem[];
|
|
51
66
|
}
|
|
52
67
|
/**
|
|
53
68
|
* The ONE dock-morph spring authority — the iOS-26 interruptible-physics tuning the
|
|
@@ -57,8 +72,8 @@ export interface DockSectionDescriptor {
|
|
|
57
72
|
* prior copies were a DRY hazard — a re-tune had to touch both).
|
|
58
73
|
*/
|
|
59
74
|
export declare const DOCK_SPRING: {
|
|
60
|
-
readonly response:
|
|
61
|
-
readonly dampingFraction:
|
|
75
|
+
readonly response: number;
|
|
76
|
+
readonly dampingFraction: number;
|
|
62
77
|
};
|
|
63
78
|
/**
|
|
64
79
|
* The CSS properties whose `transitionend` the dock-morph window watches to know a
|
|
@@ -80,4 +95,4 @@ export declare const DOCK_MORPH_LABEL = "glass-ui:dock-morph-context";
|
|
|
80
95
|
* edge sweeping past the cursor, not a real exit. */
|
|
81
96
|
export declare const HOVER_INTENT_MS = 60;
|
|
82
97
|
export declare const EDGE_BAND_PX = 24;
|
|
83
|
-
export declare const MORPH_SETTLE_MS =
|
|
98
|
+
export declare const MORPH_SETTLE_MS = 840;
|
|
@@ -6,9 +6,10 @@ export { default as DockBackgroundToggle } from "./DockBackgroundToggle.vue";
|
|
|
6
6
|
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
|
+
export { default as DockPopoverTrigger } from "./DockPopoverTrigger.vue";
|
|
9
10
|
export { default as DockSeparator } from "./DockSeparator.vue";
|
|
10
|
-
export { default as
|
|
11
|
-
export type {
|
|
11
|
+
export { default as DockStack } from "./DockStack.vue";
|
|
12
|
+
export type { DockStackItem } from "./constants";
|
|
12
13
|
export { default as DockSection } from "./DockSection.vue";
|
|
13
14
|
export type { DockSectionDescriptor, DockSectionKind } from "./constants";
|
|
14
15
|
export type { UseDockStateOptions, UseDockStateReturn, DockState } from "./composables";
|
|
@@ -16,3 +17,8 @@ export { useLayerTransition } from "./composables";
|
|
|
16
17
|
export type { UseLayerTransitionOptions, UseLayerTransitionReturn, } from "./composables";
|
|
17
18
|
export { DOCK_CONTEXT_KEY, useDockContext, useOptionalDockContext, provideDockContext, type DockContext, type DockOrientation, type DockLayout, } from "./composables/dockContext";
|
|
18
19
|
export { useDockOrientationMorph, type DockMorphOrientation, type UseDockOrientationMorphOptions, type UseDockOrientationMorphReturn, } from "./composables/useDockOrientationMorph";
|
|
20
|
+
export { useDockCtaReceive, type UseDockCtaReceiveOptions, type UseDockCtaReceiveReturn, type DockCtaReceivePreset, } from "../../../composables/motion/useDockCtaReceive";
|
|
21
|
+
export { useDockSearch } from "./composables";
|
|
22
|
+
export type { UseDockSearchOptions, UseDockSearchReturn } from "./composables";
|
|
23
|
+
export { GooFilter } from "../goo-filter";
|
|
24
|
+
export { useDockFission, DOCK_SPLIT_SIGNATURES, type DockSplitContext, type DockSplitVector, type DockSplitSquishPeak, type DockSplitSignature, type DockFissionPieceRegistration, type DockFissionPieceHandle, type UseDockFissionOptions, type UseDockFissionReturn, } from "./composables/useDockFission";
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import type { FlowFieldConfig } from "./constants";
|
|
2
2
|
/**
|
|
3
|
-
* DotFlowField —
|
|
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).
|
|
4
5
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
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.
|
|
13
16
|
*
|
|
14
|
-
* The DEFAULT palette is the warm-cream library identity; the
|
|
15
|
-
*
|
|
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).
|
|
16
20
|
*/
|
|
17
21
|
type __VLS_Props = {
|
|
18
22
|
/** The full author schema (the studio's `useConfiguratorState` model). */
|
|
@@ -29,13 +29,76 @@ export declare function curlFBM(p: Vec2): Vec2;
|
|
|
29
29
|
/**
|
|
30
30
|
* The COMPOSITE flow velocity v(p,t): the Gerstner sum-of-sines analytic ∇⊥h PLUS the
|
|
31
31
|
* `curlStrength`-weighted fbm curl-noise braiding term. The SINGLE math source the WGSL
|
|
32
|
-
* compute kernel transcribes; `proof:
|
|
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.
|
|
33
39
|
*/
|
|
34
40
|
export declare function sampleVelocity(p: Vec2, timeSec: number, waves: readonly WaveComponent[], windSpeed: number, curlStrength: number): Vec2;
|
|
41
|
+
/** The cursor-vortex lever set (the √φ-laddered radius + the spin/drag/burst gains). */
|
|
42
|
+
export interface VortexParams {
|
|
43
|
+
cursor: Vec2;
|
|
44
|
+
/** Pointer velocity (domain units / sec). */
|
|
45
|
+
pointerVel: Vec2;
|
|
46
|
+
/** Flick-burst impulse 0..1. */
|
|
47
|
+
burst: number;
|
|
48
|
+
/** Pointer active? (inert when false — the vortex is off). */
|
|
49
|
+
active: boolean;
|
|
50
|
+
radius: number;
|
|
51
|
+
spin: number;
|
|
52
|
+
dragGain: number;
|
|
53
|
+
burstShove: number;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The velocity the cursor injects at `p` — the perturbation `cs_flow` adds to the curl
|
|
57
|
+
* current. A true tangential vortex (∇⊥ of the radial), plus a drag-along (the streamlines
|
|
58
|
+
* follow the gesture) and a radial flick shove (the shockwave), all gaussian-falling off the
|
|
59
|
+
* vortex radius. Returns the un-normalized perturbation in domain/sec.
|
|
60
|
+
*/
|
|
61
|
+
export declare function pointerVortex(p: Vec2, v: VortexParams): Vec2;
|
|
62
|
+
/** The shipped domain half-extent (the lattice is laid out over [-half, half]²). */
|
|
63
|
+
export declare const FLOW_DOMAIN_HALF = 0.85;
|
|
64
|
+
/**
|
|
65
|
+
* The deterministic lattice origin for a particle index — the WGSL `instance_index →
|
|
66
|
+
* origin` mapping matches this EXACTLY (the F3 round-trip anchor). `cols` columns, square
|
|
67
|
+
* pitch in DOMAIN units; the grid is centered on the origin so the field reads symmetric.
|
|
68
|
+
* Index `i` walks row-major (`col = i % cols`, `row = floor(i / cols)`).
|
|
69
|
+
*/
|
|
70
|
+
export declare function gridOrigin(index: number, cols: number, pitch: number): Vec2;
|
|
71
|
+
/**
|
|
72
|
+
* The scalar Gerstner HEIGHT at an origin — the brightness driver (the moving bright
|
|
73
|
+
* stripe the lattice paints). `h(o,t) = Σ_i A_i·sin(k_i·(D_i·o) − ω_i·t + φ_i)`, the SAME
|
|
74
|
+
* sum the velocity derives from (no second wave table). The brightness field reads at the
|
|
75
|
+
* ANCHOR (`o`), not the live position, so the sweep is stable + low-frequency.
|
|
76
|
+
*/
|
|
77
|
+
export declare function sampleHeight(o: Vec2, timeSec: number, waves: readonly WaveComponent[], windSpeed: number): number;
|
|
78
|
+
/**
|
|
79
|
+
* The sub-cell DISPLACEMENT for an origin — the divergence-free ∇⊥h (the Gerstner perp-
|
|
80
|
+
* gradient) PLUS a faint coarse curl break. The dot eases toward `o + disp·displaceAmp`
|
|
81
|
+
* (the restoring spring lives in the kernel); this is the target offset, NOT an advection
|
|
82
|
+
* step. Capped LOW by `displaceAmp` so the dot never leaves its cell by > ~0.5 pitch.
|
|
83
|
+
*/
|
|
84
|
+
export declare function sampleDisplacement(o: Vec2, timeSec: number, waves: readonly WaveComponent[], windSpeed: number, curlStrength: number): Vec2;
|
|
85
|
+
/**
|
|
86
|
+
* The sweeping bright-stripe band: a `smoothstep` band centered `center` width `width`
|
|
87
|
+
* over the normalized height — the moving iso-band that lights the dots it passes. The
|
|
88
|
+
* band is symmetric about the center (a soft ridge crossing the lattice as `h` sweeps).
|
|
89
|
+
*/
|
|
90
|
+
export declare function waveBand(h: number, center: number, width: number): number;
|
|
35
91
|
/**
|
|
36
|
-
* Build the
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
92
|
+
* Build the wave ladder about a dominant wind direction. BC.W-VIZ-DOTFLOW REGIME
|
|
93
|
+
* INVERSION (research/viz/dot-flow-field.md §3.2): the LOW-frequency coherent regime — a
|
|
94
|
+
* LARGE base wavelength (≈½–1 period across the view → ONE dominant sweeping wave), 2-3
|
|
95
|
+
* octaves (no fine chatter), a steep amplitude persistence (×0.38 → the base wave
|
|
96
|
+
* dominates, detail a whisper), the λ falloff floored so the finest λ ≥ ~⅓ view. The
|
|
97
|
+
* directions spread MODESTLY about `windDirection` (the sweep reads as ONE coherent form,
|
|
98
|
+
* not a braided delta).
|
|
99
|
+
*
|
|
100
|
+
* `lambda0Mul` is λ₀ as a MULTIPLE of the domain extent (default 2.5 — the §1 target);
|
|
101
|
+
* `octaves` is 2-3 (the coherent band). Amplitudes follow the Phillips falloff × the
|
|
102
|
+
* per-octave persistence so the field stays energy-realistic.
|
|
40
103
|
*/
|
|
41
|
-
export declare function buildWaveLadder(windDirection: number, octaves?: number): WaveComponent[];
|
|
104
|
+
export declare function buildWaveLadder(windDirection: number, octaves?: number, lambda0Mul?: number): WaveComponent[];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function compileGL(gl: WebGL2RenderingContext, type: number, src: string): WebGLShader;
|
|
2
|
+
export declare function linkGL(gl: WebGL2RenderingContext, vsSrc: string, fsSrc: string): WebGLProgram;
|
|
3
|
+
/** Probe whether an internal format is color-renderable as a float FBO target (R-A). */
|
|
4
|
+
export declare function probeRenderable(gl: WebGL2RenderingContext, internal: number, type: number): boolean;
|
|
5
|
+
/** Pack a Float32Array to half-float (RGBA16F upload) — the RGBA32F-absent fallback (R-A). */
|
|
6
|
+
export declare function float32ToHalf(src: Float32Array): Uint16Array;
|
|
7
|
+
/** IEEE-754 float32 → float16 bits (the standard round-to-nearest packing). */
|
|
8
|
+
export declare function f32ToF16(val: number): number;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { WebGLCanvasFrame } from "../../../../composables/glass/webgl/useWebGLCanvas";
|
|
2
|
+
import { type FlowSetupDeps } from "./useFlowParticles";
|
|
3
|
+
/**
|
|
4
|
+
* Build the `setupGL(gl)` callback the picker invokes on the WebGL2 path (the LIVE path).
|
|
5
|
+
* `field` is the kept fullscreen-fragment dot-lattice; `flow` routes to the state-texture
|
|
6
|
+
* GPGPU + two-FBO trail + point-sprite motes + present composite (flowSetupGLFlow) — the SAME
|
|
7
|
+
* advected-population gestalt as the WGPU compute path (the ONE math source via the GLSL chunk).
|
|
8
|
+
*/
|
|
9
|
+
export declare function createFlowGLSetup(deps: FlowSetupDeps): (gl: WebGL2RenderingContext) => WebGLCanvasFrame;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { WebGLCanvasFrame } from "../../../../composables/glass/webgl/useWebGLCanvas";
|
|
2
|
+
import { type FlowSetupDeps } from "./useFlowParticles";
|
|
3
|
+
/**
|
|
4
|
+
* The `flow` WebGL2 channel — the AURORA CURRENT, made real + measurable + equal-gestalt:
|
|
5
|
+
* 1. STATE-TEXTURE GPGPU advect pass (one texel per mote; pos/speed/life ping-pong),
|
|
6
|
+
* 2. TRAIL decay-blit (prev → cur at the derived α) on a two-FBO RGBA16F ping-pong,
|
|
7
|
+
* 3. MOTE point-sprite draw (additive into the trail; speed→hue/brightness),
|
|
8
|
+
* 4. PRESENT composite (trail over the warm floor + corner-bloom → the swapchain).
|
|
9
|
+
* The float state/trail RTs fall RGBA32F→RGBA16F where the render extension is absent (R-A);
|
|
10
|
+
* the trail is pinned NEAREST (no half-float-linear extension dependency).
|
|
11
|
+
*/
|
|
12
|
+
export declare function createFlowGLFlow(deps: FlowSetupDeps): (gl: WebGL2RenderingContext) => WebGLCanvasFrame;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WebGPUCanvasFrame } from "../../../../composables/glass/webgpu/useWebGPUCanvas";
|
|
2
|
+
import { type FlowSetupDeps } from "./useFlowParticles";
|
|
3
|
+
/**
|
|
4
|
+
* Build the dot-flow-field `setupWGPU(device, context, format)` callback. Closes over the
|
|
5
|
+
* config/palette getters + the renderer's demand gate + the pointer `onFrame`/`getPointer`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function createFlowWGPUSetup(deps: FlowSetupDeps): (device: GPUDevice, context: GPUCanvasContext, format: GPUTextureFormat) => WebGPUCanvasFrame;
|