@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
|
@@ -9,11 +9,11 @@ type __VLS_ModelProps = {
|
|
|
9
9
|
"open"?: boolean;
|
|
10
10
|
};
|
|
11
11
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
12
|
-
declare var
|
|
12
|
+
declare var __VLS_35: {}, __VLS_64: {};
|
|
13
13
|
type __VLS_Slots = {} & {
|
|
14
|
-
default?: (props: typeof
|
|
14
|
+
default?: (props: typeof __VLS_35) => any;
|
|
15
15
|
} & {
|
|
16
|
-
action?: (props: typeof
|
|
16
|
+
action?: (props: typeof __VLS_64) => any;
|
|
17
17
|
};
|
|
18
18
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
19
19
|
"update:open": (value: boolean) => any;
|
|
@@ -4,8 +4,13 @@ declare const __VLS_export: import("vue").DefineComponent<ConstellationProps, im
|
|
|
4
4
|
speed: number;
|
|
5
5
|
count: number;
|
|
6
6
|
opacityCeiling: number;
|
|
7
|
+
parallax: number;
|
|
7
8
|
pointerReactive: boolean;
|
|
8
9
|
warpOnClick: boolean;
|
|
10
|
+
wander: boolean | {
|
|
11
|
+
minIdle?: number;
|
|
12
|
+
jitter?: number;
|
|
13
|
+
};
|
|
9
14
|
gravityWell: boolean | {
|
|
10
15
|
holdMs?: number;
|
|
11
16
|
gain?: number;
|
|
@@ -14,10 +19,6 @@ declare const __VLS_export: import("vue").DefineComponent<ConstellationProps, im
|
|
|
14
19
|
maxSpeed?: number;
|
|
15
20
|
soften?: number;
|
|
16
21
|
};
|
|
17
|
-
wander: boolean | {
|
|
18
|
-
minIdle?: number;
|
|
19
|
-
jitter?: number;
|
|
20
|
-
};
|
|
21
22
|
pinned: boolean | number;
|
|
22
23
|
accentEdges: boolean;
|
|
23
24
|
pinnedDrift: boolean | {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { WebGLCanvasFrame } from "../../../../composables/glass/webgl/useWebGLCanvas";
|
|
2
|
+
import type { ConstellationRenderState } from "./constellationWGPUSetup";
|
|
3
|
+
export interface ConstellationGLSetupDeps {
|
|
4
|
+
canvas: HTMLCanvasElement;
|
|
5
|
+
resolveFrame: (timeSec: number) => ConstellationRenderState | null;
|
|
6
|
+
onResize?: (w: number, h: number) => void;
|
|
7
|
+
shouldContinue: () => boolean;
|
|
8
|
+
}
|
|
9
|
+
/** Build the `setupGL(gl)` callback the `createGpuSubstrate` WebGL2 path invokes. */
|
|
10
|
+
export declare function createConstellationGLSetup(deps: ConstellationGLSetupDeps): (gl: WebGL2RenderingContext) => WebGLCanvasFrame;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { WebGPUCanvasFrame } from "../../../../composables/glass/webgpu/useWebGPUCanvas";
|
|
2
|
+
import { type ConstellationUniformValues, type PackedNode, type PackedEdge } from "./uniformBridgeWGPU";
|
|
3
|
+
/** The per-frame render state the renderer resolves (the stepped field → packed rows). */
|
|
4
|
+
export interface ConstellationRenderState {
|
|
5
|
+
nodes: PackedNode[];
|
|
6
|
+
edges: PackedEdge[];
|
|
7
|
+
uniforms: ConstellationUniformValues;
|
|
8
|
+
}
|
|
9
|
+
export interface ConstellationWGPUSetupDeps {
|
|
10
|
+
canvas: HTMLCanvasElement;
|
|
11
|
+
/** Advance the field + the shared pointer field one renderer frame, return the packed render state. */
|
|
12
|
+
resolveFrame: (timeSec: number) => ConstellationRenderState | null;
|
|
13
|
+
/** Size the canvas backing store (returns the resolved backing-store [w,h] in device px). */
|
|
14
|
+
onResize?: (w: number, h: number) => void;
|
|
15
|
+
/** Demand-gate (the renderer's quiescence layer — substrate-agnostic). */
|
|
16
|
+
shouldContinue: () => boolean;
|
|
17
|
+
}
|
|
18
|
+
/** Build the constellation `setupWGPU(device, context, format)` callback. */
|
|
19
|
+
export declare function createConstellationWGPUSetup(deps: ConstellationWGPUSetupDeps): (device: GPUDevice, context: GPUCanvasContext, format: GPUTextureFormat) => WebGPUCanvasFrame;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/** Floats per node row (one vec4). */
|
|
2
|
+
export declare const NODE_FLOATS = 4;
|
|
3
|
+
/** Bytes per node row. */
|
|
4
|
+
export declare const NODE_BYTES: number;
|
|
5
|
+
/** The pre-sized node storage buffer byte length. */
|
|
6
|
+
export declare const NODES_BUFFER_BYTES: number;
|
|
7
|
+
/** Floats per edge row (2 vec4s). */
|
|
8
|
+
export declare const EDGE_FLOATS = 8;
|
|
9
|
+
/** Bytes per edge row. */
|
|
10
|
+
export declare const EDGE_BYTES: number;
|
|
11
|
+
/** The pre-sized edge storage buffer byte length. */
|
|
12
|
+
export declare const EDGES_BUFFER_BYTES: number;
|
|
13
|
+
export declare const CONSTELLATION_UNIFORM_BYTES = 112;
|
|
14
|
+
export interface ConstellationUniformScratch {
|
|
15
|
+
buffer: ArrayBuffer;
|
|
16
|
+
f32: Float32Array;
|
|
17
|
+
}
|
|
18
|
+
export declare function createConstellationScratch(): ConstellationUniformScratch;
|
|
19
|
+
/** The per-frame uniform values the render reads (resolved JS-side). */
|
|
20
|
+
export interface ConstellationUniformValues {
|
|
21
|
+
resolutionX: number;
|
|
22
|
+
resolutionY: number;
|
|
23
|
+
dpr: number;
|
|
24
|
+
kVis: number;
|
|
25
|
+
time: number;
|
|
26
|
+
lineWidth: number;
|
|
27
|
+
opacityCeiling: number;
|
|
28
|
+
/** The field-yields-to-type `--constellation-alpha` global dimmer. */
|
|
29
|
+
alpha: number;
|
|
30
|
+
edgeAlpha: number;
|
|
31
|
+
edgeFocusAlpha: number;
|
|
32
|
+
edgeAccentAlpha: number;
|
|
33
|
+
edgeFloor: number;
|
|
34
|
+
/** Premultiplied-ready RGBA (`[0,1]`) — `node`/`nodeDim`/`line`/`accent`. */
|
|
35
|
+
node: [number, number, number, number];
|
|
36
|
+
nodeDim: [number, number, number, number];
|
|
37
|
+
line: [number, number, number, number];
|
|
38
|
+
accent: [number, number, number, number];
|
|
39
|
+
}
|
|
40
|
+
/** Pack the constellation uniforms in place. */
|
|
41
|
+
export declare function packConstellationUniforms(scratch: ConstellationUniformScratch, v: ConstellationUniformValues): ConstellationUniformScratch;
|
|
42
|
+
/** A pre-sized node scratch (`MAX_NODES` rows × NODE_FLOATS). */
|
|
43
|
+
export declare function createNodeScratch(): Float32Array;
|
|
44
|
+
/** A pre-sized edge scratch (`E_MAX` rows × EDGE_FLOATS). */
|
|
45
|
+
export declare function createEdgeScratch(): Float32Array;
|
|
46
|
+
/** A packed node row in screen-px: `(x, y, radius, dim)`. */
|
|
47
|
+
export interface PackedNode {
|
|
48
|
+
x: number;
|
|
49
|
+
y: number;
|
|
50
|
+
r: number;
|
|
51
|
+
dim: number;
|
|
52
|
+
}
|
|
53
|
+
/** Pack `count` node rows into the scratch (clamped to MAX_NODES). Returns the count packed. */
|
|
54
|
+
export declare function packNodes(scratch: Float32Array, nodes: readonly PackedNode[]): number;
|
|
55
|
+
/** A packed edge row: `(ax, ay, bx, by, alpha, accent, focus)`. */
|
|
56
|
+
export interface PackedEdge {
|
|
57
|
+
ax: number;
|
|
58
|
+
ay: number;
|
|
59
|
+
bx: number;
|
|
60
|
+
by: number;
|
|
61
|
+
alpha: number;
|
|
62
|
+
accent: number;
|
|
63
|
+
focus: number;
|
|
64
|
+
}
|
|
65
|
+
/** Pack `count` edge rows into the scratch (clamped to E_MAX). Returns the count packed. */
|
|
66
|
+
export declare function packEdges(scratch: Float32Array, edges: readonly PackedEdge[]): number;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { type Ref } from "vue";
|
|
2
|
+
import { type GpuBackend } from "../../../../composables/glass/webgpu/useGpuSubstrate";
|
|
2
3
|
import { type ConstellationField, type ConstellationProps } from "../constellationField";
|
|
3
4
|
/** The imperative seam the SFC re-exposes via `defineExpose`. */
|
|
4
5
|
export interface ConstellationExpose {
|
|
5
6
|
field: ConstellationField;
|
|
6
7
|
isFrozen: Ref<boolean>;
|
|
8
|
+
/** The resolved backend (`"webgpu"` where supported, else the WebGL2 instanced twin). */
|
|
9
|
+
backend: () => GpuBackend;
|
|
7
10
|
warpTo(a: {
|
|
8
11
|
x: number;
|
|
9
12
|
y: number;
|
|
@@ -13,14 +16,4 @@ export interface ConstellationExpose {
|
|
|
13
16
|
warpSettled(): boolean;
|
|
14
17
|
pinNode(idx: number): void;
|
|
15
18
|
}
|
|
16
|
-
/**
|
|
17
|
-
* Drive a `<Constellation>` instance. `props` is the REACTIVE (defaulted) prop
|
|
18
|
-
* surface — the per-frame live-read props (`pointerReactive`/`opacityCeiling`/
|
|
19
|
-
* `accentEdges`/`drawOverlay`) are read off `props.x` INSIDE the render loop so a
|
|
20
|
-
* bound `:opacity-ceiling` updates without a remount (the Vue 3.5 reactive-prop
|
|
21
|
-
* read; the SFC `defineProps` destructure transform does not reach a composable
|
|
22
|
-
* argument, so the live reads stay on `props`). `hostRef`/`canvasRef` are the SFC
|
|
23
|
-
* template refs. Returns the imperative expose object the SFC spreads into
|
|
24
|
-
* `defineExpose`.
|
|
25
|
-
*/
|
|
26
19
|
export declare function useConstellation(props: ConstellationProps, hostRef: Ref<HTMLElement | null>, canvasRef: Ref<HTMLCanvasElement | null>): ConstellationExpose;
|
|
@@ -59,3 +59,36 @@ export declare const DEFAULT_PINNED_DRIFT_JITTER = 8000;
|
|
|
59
59
|
* ≥ ~0.72·BASE_WIDTH ≈ 922px (incl. the 1280 export frame — byte-identical
|
|
60
60
|
* there by construction); below it the marks stop crushing sub-pixel. */
|
|
61
61
|
export declare const DEFAULT_K_FLOOR = 0.72;
|
|
62
|
+
/**
|
|
63
|
+
* The maximum node count the points/edges buffers pre-size for (the slider cap — a count
|
|
64
|
+
* above this is clamped at upload). ≫ this BOOKS the compute neighbor-bin path.
|
|
65
|
+
*/
|
|
66
|
+
export declare const MAX_NODES = 256;
|
|
67
|
+
/**
|
|
68
|
+
* The per-node max degree budget — the edge buffer is pre-sized at `MAX_NODES · MAX_DEGREE`
|
|
69
|
+
* so the CPU all-pairs scan never overflows it (a denser-than-degree neighborhood drops the
|
|
70
|
+
* weakest edges, never re-allocates). 12 is a generous incident-edge ceiling for a
|
|
71
|
+
* distance-threshold ε-proximity graph at the default link/count.
|
|
72
|
+
*/
|
|
73
|
+
export declare const MAX_DEGREE = 12;
|
|
74
|
+
/** The pre-sized edge instance budget (`MAX_NODES · MAX_DEGREE`). */
|
|
75
|
+
export declare const E_MAX: number;
|
|
76
|
+
/**
|
|
77
|
+
* The pointer-parallax depth default (§6). Each node carries a seeded depth `z ∈ [0,1]`;
|
|
78
|
+
* the pointer offsets node screen positions by `parallax · z · (pointer − center)` — a
|
|
79
|
+
* cheap pointer-parallax giving the flat lattice apparent depth (the Awwwards "living
|
|
80
|
+
* network" register). Additive default-on at a SUB-PERCEPTUAL 0.08 (a hair of depth, not a
|
|
81
|
+
* behavior break). 0 = the flat lattice (no parallax).
|
|
82
|
+
*/
|
|
83
|
+
export declare const DEFAULT_PARALLAX = 0.08;
|
|
84
|
+
/**
|
|
85
|
+
* The base node radius band (CSS px) the DPR-aware SDF circle sizes within (the §1 "Node
|
|
86
|
+
* size" config axis). `seedField` rolls each node's radius in `[NODE_R_MIN, NODE_R_MIN +
|
|
87
|
+
* NODE_R_SPREAD)` (the prior `1.6 + rng()*1.6` band, named); the WGSL/GLSL fragment SDF
|
|
88
|
+
* sizes `half = radius · uKVis · uDpr / uResolution` so the disc samples at full device
|
|
89
|
+
* resolution and is AA'd by the pixel-footprint derivative — crisp at ANY DPR.
|
|
90
|
+
*/
|
|
91
|
+
export declare const NODE_R_MIN = 1.6;
|
|
92
|
+
export declare const NODE_R_SPREAD = 1.6;
|
|
93
|
+
/** The hairline edge half-width (CSS px) the instanced segment-quad fragment AAs. */
|
|
94
|
+
export declare const DEFAULT_LINE_WIDTH = 1;
|
|
@@ -39,4 +39,34 @@ export declare function refitField(field: ConstellationField, prevW: number, pre
|
|
|
39
39
|
* `setWarpTarget` to a random node when it elapses AND the spring has settled
|
|
40
40
|
* (a click-warp in flight pre-empts the cadence — `warpSettled` reports false).
|
|
41
41
|
*/
|
|
42
|
-
export declare function stepField(field: ConstellationField, k: number, speed: number, pointer: ConstellationPointer | null, dt?: number, now?: number, rng?: () => number): void;
|
|
42
|
+
export declare function stepField(field: ConstellationField, k: number, speed: number, pointer: ConstellationPointer | null, dt?: number, now?: number, rng?: () => number, pointerVel?: ConstellationPointer | null): void;
|
|
43
|
+
import type { ConstellationEdge } from "./constellationTypes";
|
|
44
|
+
/**
|
|
45
|
+
* Scan the proximity graph and return its edge SET (the `1 − d²/reach²` distance-falloff
|
|
46
|
+
* weight per pair within `reach = link·k`). `accentIndex ≥ 0` marks the edges incident on
|
|
47
|
+
* that node (the flagged-node tether). Pure + node-testable; the render loop calls it each
|
|
48
|
+
* frame and uploads the result to the instanced-lines storage buffer.
|
|
49
|
+
*
|
|
50
|
+
* `eMax` caps the result (the pre-sized buffer budget). When the scan would exceed it, the
|
|
51
|
+
* WEAKEST overflow edges are dropped (a denser-than-budget neighborhood keeps its strongest
|
|
52
|
+
* links — never re-allocates the GPU buffer mid-frame).
|
|
53
|
+
*/
|
|
54
|
+
export declare function buildEdges(field: ConstellationField, link: number, accentIndex?: number, eMax?: number): ConstellationEdge[];
|
|
55
|
+
/**
|
|
56
|
+
* Append the POINTER-WEB tether edges to an existing edge set (the `drawPointerWeb` math
|
|
57
|
+
* relocated): the cursor is a "virtual node" whose incident edges (to every node within
|
|
58
|
+
* `reach`) carry `focus = 1` (the render strokes them at the focus alpha). No-op when the
|
|
59
|
+
* pointer is inactive (`x < 0`). The `eMax` budget is shared with the ambient set.
|
|
60
|
+
*/
|
|
61
|
+
export declare function appendPointerWeb(edges: ConstellationEdge[], field: ConstellationField, link: number, pointer: ConstellationPointer | null, eMax?: number): void;
|
|
62
|
+
/**
|
|
63
|
+
* The parallax-offset SCREEN position for a node (§6). Offsets the node by
|
|
64
|
+
* `parallax · z · (pointer − center)` — a cheap pointer-parallax giving the flat lattice
|
|
65
|
+
* apparent depth (deeper nodes — higher `z` — shift more, the Awwwards "living network"
|
|
66
|
+
* register). When the pointer is inactive the offset is 0 (the flat lattice). Pure; the
|
|
67
|
+
* render loop maps each node's `(x,y)` through this before writing the GPU position buffer.
|
|
68
|
+
*/
|
|
69
|
+
export declare function parallaxNodePos(node: ConstellationNode, pointer: ConstellationPointer | null, w: number, h: number, parallax: number): {
|
|
70
|
+
x: number;
|
|
71
|
+
y: number;
|
|
72
|
+
};
|
|
@@ -19,20 +19,7 @@ export declare function readInteractionConfig(canvas: HTMLCanvasElement): {
|
|
|
19
19
|
jitter: number;
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
|
-
|
|
23
|
-
* Advance the gravity-well one `dt` (AY.W-CON2). A transient held-pointer force
|
|
24
|
-
* composed inside `stepField` (NO new rAF): ease `well.strength` toward
|
|
25
|
-
* `well.target` (1 held / 0 released) at `cfg.ramp`/s; while active, add an
|
|
26
|
-
* inverse-square pull toward the held point onto each node within `cfg.reach`
|
|
27
|
-
* (the `max(d, soften)` no-singularity floor + the `cfg.maxSpeed` no-slingshot
|
|
28
|
-
* clamp); ALWAYS ease every node's |v| back toward `speed` (the field-cools
|
|
29
|
-
* invariant — so a released well re-settles). No-ops (entirely skipped) when
|
|
30
|
-
* `field.well` is undefined → the default render is byte-identical to HEAD.
|
|
31
|
-
*
|
|
32
|
-
* `dt` is clamped to {@link WARP_DT_CLAMP} (the same park-resume guard the warp
|
|
33
|
-
* uses) so a tab-throttle gap cannot slingshot the field in one giant step.
|
|
34
|
-
*/
|
|
35
|
-
export declare function stepWell(field: ConstellationField, k: number, speed: number, dt: number): void;
|
|
22
|
+
export { stepWell } from "./constellationWell";
|
|
36
23
|
/**
|
|
37
24
|
* The nearest DRIFTING node to `(px, py)` in canvas-local px — a linear O(count)
|
|
38
25
|
* min-d² scan (count 64 default — negligible; matches the O(count²) edge pass).
|
|
@@ -130,3 +117,25 @@ export declare function makePinnedDrift(override?: {
|
|
|
130
117
|
* rests at the leg's end, the next leg arming after `minIdle + rng()*jitter`.
|
|
131
118
|
*/
|
|
132
119
|
export declare function stepPinnedDrift(field: ConstellationField, now: number, rng: () => number): void;
|
|
120
|
+
/** The flick-burst threshold (the shared usePointerVelocityField `burst` 0..1) above which
|
|
121
|
+
* a fast flick fires the focal warp + a transient ripple (a slow drag never fires). */
|
|
122
|
+
export declare const BURST_FIRE_THRESHOLD = 0.45;
|
|
123
|
+
/**
|
|
124
|
+
* Fire a focal BURST off a flick (the §E "reads velocity AND acceleration" mandate). A high
|
|
125
|
+
* `burst` (from the shared `usePointerVelocityField`, the eased flick impulse) warps the
|
|
126
|
+
* focal node toward the cursor (the warp spring snaps it) AND drops an expanding ripple at
|
|
127
|
+
* the focal — the lattice "snaps the focal toward the cursor and drops an expanding ring"
|
|
128
|
+
* (the WGSL ripple instance / the accent-ring overlay). A slow drag (`burst` below the
|
|
129
|
+
* threshold) never fires (a steady hover is the gentle gather, not a snap). Returns true
|
|
130
|
+
* when a burst fired. Composes the EXISTING `warpTo` + the ripple list — no new mechanic,
|
|
131
|
+
* no second rAF (the warp rides the substrate's ONE clock); PRM is enforced by the CALLER
|
|
132
|
+
* (the shared field's `tick(0)` zeroes `burst` under reduce, so this never fires).
|
|
133
|
+
*/
|
|
134
|
+
export declare function fireBurst(field: ConstellationField, pointer: {
|
|
135
|
+
x: number;
|
|
136
|
+
y: number;
|
|
137
|
+
}, burst: number, ripples: {
|
|
138
|
+
x: number;
|
|
139
|
+
y: number;
|
|
140
|
+
start: number;
|
|
141
|
+
}[]): boolean;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ConstellationField, ConstellationPalette } from "./constellationField";
|
|
2
|
+
import { DEFAULT_PALETTE } from "./constants";
|
|
3
|
+
/** R5-8 — the visual-SIZE draw scale: `max(k, kFloor)`. The instanced disc/segment
|
|
4
|
+
* geometry sizes on this; positions/reach stay on TRUE `field.k`. Exported so a
|
|
5
|
+
* consumer skin floors its own marks on the same axis. */
|
|
6
|
+
export declare function kVisOf(field: ConstellationField): number;
|
|
7
|
+
export { DEFAULT_PALETTE };
|
|
8
|
+
/**
|
|
9
|
+
* Resolve the FULL neutral palette + legibility weights off a canvas's resolved custom
|
|
10
|
+
* properties (the `--constellation-*` set). The colors AND the alpha multipliers route
|
|
11
|
+
* through the same `getComputedStyle` probe, so a dark-mode flip re-resolves BOTH the
|
|
12
|
+
* `:root`/`.dark` color arms AND the per-mode alpha defaults in one read. SSR-safe
|
|
13
|
+
* (returns the warm-cream defaults with no `window`).
|
|
14
|
+
*/
|
|
15
|
+
export declare function readPalette(canvas: HTMLCanvasElement): ConstellationPalette;
|
|
16
|
+
/**
|
|
17
|
+
* Parse a CSS color string (the `--constellation-*` hsl/hex literals the palette carries)
|
|
18
|
+
* into a linear-ish premultiplied-ready RGBA in `[0,1]` for the GPU uniform write. A small
|
|
19
|
+
* sRGB parser: it reads `#rgb`/`#rrggbb`/`#rrggbbaa`, `rgb()/rgba()`, and `hsl()/hsla()` —
|
|
20
|
+
* the forms the `--constellation-*` token authoring uses (PLAIN-hsl per arm). The shader
|
|
21
|
+
* outputs premultiplied alpha over the transparent clear, so the render loop multiplies the
|
|
22
|
+
* `a` into the uniform color at upload (kept here so there is ONE color parse seam). Falls
|
|
23
|
+
* back to opaque warm-ink on an unparseable value (never a NaN garbage write).
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseColorRGBA(input: string): [number, number, number, number];
|
|
@@ -5,6 +5,35 @@ export interface ConstellationNode {
|
|
|
5
5
|
vy: number;
|
|
6
6
|
r: number;
|
|
7
7
|
dim: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* BC.W-VIZ-CONSTELLATION — the seeded parallax DEPTH (`z ∈ [0,1]`, §6). The pointer
|
|
10
|
+
* offsets the node's SCREEN position by `parallax · z · (pointer − center)` so the flat
|
|
11
|
+
* lattice reads as having depth (the Awwwards "living network" register). Seeded in
|
|
12
|
+
* `seedField`; perturbs the GPU node-position write only (never a layout property). A
|
|
13
|
+
* field literal that omits it is treated as `z = 0.5` (the mid-plane, no parallax bias).
|
|
14
|
+
*/
|
|
15
|
+
z?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* BC.W-VIZ-CONSTELLATION — ONE edge of the proximity graph, the row the CPU all-pairs scan
|
|
19
|
+
* (`buildEdges`) writes each frame into the instanced-lines storage buffer. `a`/`b` are the
|
|
20
|
+
* two endpoint positions in canvas-local CSS px; `alpha` is the distance-falloff weight
|
|
21
|
+
* (`1 − d²/reach²`, the `drawEdges` math) the segment-quad fragment multiplies; `accent`
|
|
22
|
+
* (0/1) flags the accented-node tether (the flagged-node edge tint); `focus` (0/1) flags
|
|
23
|
+
* the pointer-web tether (the cursor's incident edges). The WGSL/GLSL render transcribes
|
|
24
|
+
* the SHAPE, never re-derives the scan (the ONE math source stays JS).
|
|
25
|
+
*/
|
|
26
|
+
export interface ConstellationEdge {
|
|
27
|
+
ax: number;
|
|
28
|
+
ay: number;
|
|
29
|
+
bx: number;
|
|
30
|
+
by: number;
|
|
31
|
+
/** The distance-falloff weight `1 − d²/reach²` (the drawEdges math). */
|
|
32
|
+
alpha: number;
|
|
33
|
+
/** 1 when the edge is incident on the accented node (the tether tint), else 0. */
|
|
34
|
+
accent: number;
|
|
35
|
+
/** 1 when the edge is a pointer-web tether (the cursor's incident edge), else 0. */
|
|
36
|
+
focus: number;
|
|
8
37
|
}
|
|
9
38
|
export interface ConstellationRipple {
|
|
10
39
|
x: number;
|
|
@@ -274,6 +303,15 @@ export interface ConstellationProps {
|
|
|
274
303
|
link?: number;
|
|
275
304
|
/** Drift speed. Default 0.16. */
|
|
276
305
|
speed?: number;
|
|
306
|
+
/**
|
|
307
|
+
* BC.W-VIZ-CONSTELLATION (§6) — the pointer-PARALLAX depth. Each node carries a seeded
|
|
308
|
+
* depth `z ∈ [0,1]`; the pointer offsets node screen positions by `parallax · z ·
|
|
309
|
+
* (pointer − center)` so the flat lattice reads as having depth (the Awwwards "living
|
|
310
|
+
* network" register). Additive default-on at a SUB-PERCEPTUAL 0.08 (a hair of depth, not
|
|
311
|
+
* a behavior break); 0 = the flat lattice. GPU-only (perturbs the node-position write,
|
|
312
|
+
* never a layout property). Frozen under reduced-motion / `freeze`.
|
|
313
|
+
*/
|
|
314
|
+
parallax?: number;
|
|
277
315
|
/**
|
|
278
316
|
* AY.W-COHERE E3 — the per-instance outer-envelope RECESSION knob (the aurora
|
|
279
317
|
* `opacityCeiling` / fourier `intensity` sibling — ONE recession vocabulary
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ConstellationField } from "./constellationField";
|
|
2
|
+
/**
|
|
3
|
+
* Advance the gravity-well one `dt` (AY.W-CON2). A transient held-pointer force
|
|
4
|
+
* composed inside `stepField` (NO new rAF): ease `well.strength` toward
|
|
5
|
+
* `well.target` (1 held / 0 released) at `cfg.ramp`/s; while active, add an
|
|
6
|
+
* inverse-square pull toward the held point onto each node within `cfg.reach`
|
|
7
|
+
* (the `max(d, soften)` no-singularity floor + the `cfg.maxSpeed` no-slingshot
|
|
8
|
+
* clamp); ALWAYS ease every node's |v| back toward `speed` (the field-cools
|
|
9
|
+
* invariant — so a released well re-settles). No-ops (entirely skipped) when
|
|
10
|
+
* `field.well` is undefined → the default render is byte-identical to HEAD.
|
|
11
|
+
*
|
|
12
|
+
* `dt` is clamped to {@link WELL_DT_CLAMP} (the same park-resume guard the warp
|
|
13
|
+
* uses) so a tab-throttle gap cannot slingshot the field in one giant step.
|
|
14
|
+
*/
|
|
15
|
+
export declare function stepWell(field: ConstellationField, k: number, speed: number, dt: number): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { default as Constellation } from "./Constellation.vue";
|
|
2
|
-
export { seedField, stepField, refitField, BASE_WIDTH, } from "./constellationField";
|
|
3
|
-
export { DEFAULT_K_FLOOR } from "./constants";
|
|
4
|
-
export { stepWell, nearestNode, readInteractionConfig, warpStep, warpTo, setWarpTarget, warpSettled, pickWanderTarget, stepPinnedDrift, makePinnedDrift, DEFAULT_WELL_CONFIG, DEFAULT_WANDER_IDLE, DEFAULT_WANDER_JITTER, DEFAULT_PINNED_DRIFT_FRAC, DEFAULT_PINNED_DRIFT_DUR, DEFAULT_PINNED_DRIFT_IDLE, DEFAULT_PINNED_DRIFT_JITTER, WARP_RESPONSE, WARP_ZETA, } from "./constellationInteraction";
|
|
5
|
-
export { kVisOf, readPalette,
|
|
6
|
-
export type { ConstellationNode, ConstellationRipple, ConstellationPointer, ConstellationPalette, ConstellationField, ConstellationWarp, ConstellationWarpConfig, ConstellationWander, ConstellationWell, ConstellationWellConfig, ConstellationPinnedDrift, ConstellationProps, } from "./constellationTypes";
|
|
2
|
+
export { seedField, stepField, refitField, buildEdges, appendPointerWeb, parallaxNodePos, BASE_WIDTH, } from "./constellationField";
|
|
3
|
+
export { DEFAULT_K_FLOOR, DEFAULT_PARALLAX, MAX_NODES, MAX_DEGREE, E_MAX, } from "./constants";
|
|
4
|
+
export { stepWell, nearestNode, readInteractionConfig, warpStep, warpTo, setWarpTarget, warpSettled, pickWanderTarget, stepPinnedDrift, makePinnedDrift, DEFAULT_WELL_CONFIG, DEFAULT_WANDER_IDLE, DEFAULT_WANDER_JITTER, DEFAULT_PINNED_DRIFT_FRAC, DEFAULT_PINNED_DRIFT_DUR, DEFAULT_PINNED_DRIFT_IDLE, DEFAULT_PINNED_DRIFT_JITTER, WARP_RESPONSE, WARP_ZETA, fireBurst, BURST_FIRE_THRESHOLD, } from "./constellationInteraction";
|
|
5
|
+
export { kVisOf, readPalette, parseColorRGBA, DEFAULT_PALETTE, } from "./constellationRender";
|
|
6
|
+
export type { ConstellationNode, ConstellationEdge, ConstellationRipple, ConstellationPointer, ConstellationPalette, ConstellationField, ConstellationWarp, ConstellationWarpConfig, ConstellationWander, ConstellationWell, ConstellationWellConfig, ConstellationPinnedDrift, ConstellationProps, } from "./constellationTypes";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const CONSTELLATION_LINES_VERT_GLSL = "#version 300 es\nprecision highp float;\n\n// per-instance edge rows \u2014 vertexAttribDivisor(1).\nlayout(location = 0) in vec4 aAB; // (a.x, a.y, b.x, b.y)\nlayout(location = 1) in vec4 aW; // (alpha, accent, focus, _pad)\n\nuniform vec2 uResolution;\nuniform float uDpr;\nuniform float uKVis;\nuniform float uLineWidth;\n\nout float vLineCoord;\nout float vAlpha;\nout float vAccent;\nout float vFocus;\n\nvoid main() {\n vec2 quad[6] = vec2[6](\n vec2(-1.0, -1.0), vec2(1.0, -1.0), vec2(-1.0, 1.0),\n vec2(-1.0, 1.0), vec2(1.0, -1.0), vec2(1.0, 1.0)\n );\n vec2 alongQuad = quad[gl_VertexID];\n\n vec2 a = aAB.xy;\n vec2 b = aAB.zw;\n vec2 dir = normalize(b - a + vec2(1e-6, 0.0));\n vec2 ortho = vec2(-dir.y, dir.x);\n // accent tether reads a touch heavier (1.1\u00D7).\n float halfWPx = uLineWidth * uKVis * uDpr * 0.5 * mix(1.0, 1.1, aW.y);\n vec2 p = mix(a, b, alongQuad.x * 0.5 + 0.5) + ortho * alongQuad.y * halfWPx;\n\n vec2 ndc = vec2(\n p.x / max(uResolution.x, 1.0) * 2.0 - 1.0,\n 1.0 - p.y / max(uResolution.y, 1.0) * 2.0\n );\n\n gl_Position = vec4(ndc, 0.0, 1.0);\n vLineCoord = alongQuad.y;\n vAlpha = aW.x;\n vAccent = aW.y;\n vFocus = aW.z;\n}\n";
|
|
2
|
+
export declare const CONSTELLATION_LINES_FRAG_GLSL = "#version 300 es\nprecision highp float;\n\nuniform vec4 uLine; // premultiplied-ready rgba\nuniform vec4 uAccent;\nuniform float uAlphaGlobal; // --constellation-alpha\nuniform float uOpacityCeiling;\nuniform float uEdgeAlpha;\nuniform float uEdgeFocusAlpha;\nuniform float uEdgeAccentAlpha;\nuniform float uEdgeFloor;\n\nin float vLineCoord;\nin float vAlpha;\nin float vAccent;\nin float vFocus;\nout vec4 fragColor;\n\nvoid main() {\n float aaBand = 0.6;\n float cross = 1.0 - smoothstep(1.0 - aaBand, 1.0, abs(vLineCoord));\n if (cross <= 0.0) { discard; }\n\n float dim = uAlphaGlobal * uOpacityCeiling;\n vec4 col = uLine;\n float weight = (uEdgeAlpha * vAlpha + uEdgeFloor) * dim;\n if (vAccent > 0.5) {\n col = uAccent;\n weight = uEdgeAccentAlpha * vAlpha * dim;\n } else if (vFocus > 0.5) {\n col = uLine;\n weight = uEdgeFocusAlpha * uAlphaGlobal * uOpacityCeiling * vAlpha;\n }\n\n float a = col.a * weight * cross;\n if (a <= 0.0) { discard; }\n fragColor = vec4(col.rgb * a, a);\n}\n";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CONSTELLATION_LINES_WGSL = "\nstruct Edge {\n // vec4 0: (a.x, a.y, b.x, b.y)\n ab: vec4<f32>,\n // vec4 1: (alpha, accent, focus, _pad)\n w: vec4<f32>,\n};\n\nstruct ConstellationUniforms {\n // u0: (resolution.x, resolution.y, dpr, kVis)\n u0: vec4<f32>,\n // u1: (time, lineWidth, opacityCeiling, alpha)\n u1: vec4<f32>,\n // uEdge: (edgeAlpha, edgeFocusAlpha, edgeAccentAlpha, edgeFloor)\n uEdge: vec4<f32>,\n uNode: vec4<f32>,\n uNodeDim: vec4<f32>,\n uLine: vec4<f32>,\n uAccent: vec4<f32>,\n};\n\n@group(0) @binding(0) var<uniform> u: ConstellationUniforms;\n@group(0) @binding(1) var<storage, read> edges: array<Edge>;\n\nstruct VSOut {\n @builtin(position) pos: vec4<f32>,\n @location(0) lineCoord: f32, // [-1,1] cross-line \u2192 fragment AA\n @location(1) alpha: f32, // distance-falloff weight\n @location(2) accent: f32, // accent flag (the flagged-node tether tint)\n @location(3) focus: f32, // focus flag (the pointer-web tether)\n};\n\n@vertex\nfn vs_main(\n @builtin(vertex_index) vIdx: u32,\n @builtin(instance_index) iIdx: u32,\n) -> VSOut {\n var QUAD = array<vec2<f32>, 6>(\n vec2<f32>(-1.0, -1.0), vec2<f32>(1.0, -1.0), vec2<f32>(-1.0, 1.0),\n vec2<f32>(-1.0, 1.0), vec2<f32>(1.0, -1.0), vec2<f32>(1.0, 1.0),\n );\n let alongQuad = QUAD[vIdx];\n\n let e = edges[iIdx];\n let a = e.ab.xy;\n let b = e.ab.zw;\n let res = u.u0.xy;\n let dpr = u.u0.z;\n let kVis = u.u0.w;\n let lineW = u.u1.y;\n\n // Screen-space segment direction + orthogonal (the half-width offset axis).\n let dir = normalize(b - a + vec2<f32>(1e-6, 0.0));\n let ortho = vec2<f32>(-dir.y, dir.x);\n // Lerp along the segment (alongQuad.x \u2208 [-1,1] \u2192 [0,1]); offset by ortho \u00D7 half-width.\n // The accent tether reads a touch heavier (1.1\u00D7 the neutral width).\n let halfWPx = lineW * kVis * dpr * 0.5 * mix(1.0, 1.1, e.w.y);\n let p = mix(a, b, alongQuad.x * 0.5 + 0.5) + ortho * (alongQuad.y) * halfWPx;\n\n // px (y-down) \u2192 clip (y-up).\n let ndc = vec2<f32>(\n p.x / max(res.x, 1.0) * 2.0 - 1.0,\n 1.0 - p.y / max(res.y, 1.0) * 2.0,\n );\n\n var out: VSOut;\n out.pos = vec4<f32>(ndc, 0.0, 1.0);\n out.lineCoord = alongQuad.y;\n out.alpha = e.w.x;\n out.accent = e.w.y;\n out.focus = e.w.z;\n return out;\n}\n\n@fragment\nfn fs_main(in: VSOut) -> @location(0) vec4<f32> {\n // Cross-line AA \u2014 a smoothstep on |lineCoord| so the hairline edge is crisp.\n let aaBand = 0.6;\n let cross = 1.0 - smoothstep(1.0 - aaBand, 1.0, abs(in.lineCoord));\n if (cross <= 0.0) { discard; }\n\n let dim = u.u1.w * u.u1.z; // alpha \u00B7 opacityCeiling\n // Resolve the edge class: accent tether \u00B7 focus pointer-web \u00B7 neutral ambient.\n var col = u.uLine;\n var weight = (u.uEdge.x * in.alpha + u.uEdge.w) * dim; // edgeAlpha\u00B7falloff + edgeFloor\n if (in.accent > 0.5) {\n col = u.uAccent;\n weight = u.uEdge.z * in.alpha * dim; // edgeAccentAlpha\n } else if (in.focus > 0.5) {\n col = u.uLine;\n weight = u.uEdge.y * u.u1.w * u.u1.z * in.alpha; // edgeFocusAlpha \u00B7 alpha \u00B7 ceiling\n }\n\n let a = col.a * weight * cross;\n if (a <= 0.0) { discard; }\n return vec4<f32>(col.rgb * a, a);\n}\n";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const CONSTELLATION_POINTS_VERT_GLSL = "#version 300 es\nprecision highp float;\n\n// per-instance node row (x, y, radius, dim) \u2014 vertexAttribDivisor(1).\nlayout(location = 0) in vec4 aNode;\n\nuniform vec2 uResolution;\nuniform float uDpr;\nuniform float uKVis;\n\nout vec2 vUv; // [-1,1] billboard-local \u2192 fragment SDF coord\nout float vDim;\n\nvoid main() {\n // Two-triangle quad corners (the SAME order as the WGSL QUAD).\n vec2 quad[6] = vec2[6](\n vec2(-1.0, -1.0), vec2(1.0, -1.0), vec2(-1.0, 1.0),\n vec2(-1.0, 1.0), vec2(1.0, -1.0), vec2(1.0, 1.0)\n );\n vec2 corner = quad[gl_VertexID];\n\n vec2 centerPx = aNode.xy;\n // px (y-down) \u2192 clip (y-up).\n vec2 centerNdc = vec2(\n centerPx.x / max(uResolution.x, 1.0) * 2.0 - 1.0,\n 1.0 - centerPx.y / max(uResolution.y, 1.0) * 2.0\n );\n // half-extent: radius\u00B7kVis CSS px \u2192 backing-store px (\u00B7dpr) \u2192 NDC half (\u00B72/res).\n // (half is a GLSL reserved word \u2014 name it halfExt.)\n float radPx = aNode.z * uKVis * uDpr;\n vec2 halfExt = vec2(\n radPx / max(uResolution.x, 1.0) * 2.0,\n radPx / max(uResolution.y, 1.0) * 2.0\n );\n\n gl_Position = vec4(centerNdc + corner * halfExt, 0.0, 1.0);\n vUv = corner;\n vDim = aNode.w;\n}\n";
|
|
2
|
+
export declare const CONSTELLATION_POINTS_FRAG_GLSL = "#version 300 es\nprecision highp float;\n\nuniform vec4 uNode; // premultiplied-ready rgba\nuniform vec4 uNodeDim;\nuniform float uOpacityCeiling;\n\nin vec2 vUv;\nin float vDim;\nout vec4 fragColor;\n\nvoid main() {\n // SDF: distance to the unit-circle edge (0 at the rim, neg inside).\n float d = length(vUv) - 1.0;\n // fwidth(d) \u2014 the pixel footprint, the resolution-independent AA width.\n float aa = max(fwidth(d), 1e-4);\n float coverage = 1.0 - smoothstep(-aa, aa, d);\n if (coverage <= 0.0) { discard; }\n vec4 col = mix(uNode, uNodeDim, vDim);\n float a = col.a * coverage * uOpacityCeiling;\n fragColor = vec4(col.rgb * a, a); // premultiplied\n}\n";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CONSTELLATION_POINTS_WGSL = "\n// \u2500\u2500 Node storage row + uniforms (the typed-struct source-of-truth \u2014 uniformBridgeWGPU.ts) \u2500\u2500\nstruct Node {\n // (pos.x, pos.y, radius, dim)\n data: vec4<f32>,\n};\n\nstruct ConstellationUniforms {\n // u0: (resolution.x, resolution.y, dpr, kVis)\n u0: vec4<f32>,\n // u1: (time, lineWidth, opacityCeiling, alpha)\n u1: vec4<f32>,\n // uEdge: (edgeAlpha, edgeFocusAlpha, edgeAccentAlpha, edgeFloor)\n uEdge: vec4<f32>,\n // colours (premultiplied-ready rgba)\n uNode: vec4<f32>,\n uNodeDim: vec4<f32>,\n uLine: vec4<f32>,\n uAccent: vec4<f32>,\n};\n\n@group(0) @binding(0) var<uniform> u: ConstellationUniforms;\n@group(0) @binding(1) var<storage, read> nodes: array<Node>;\n\nstruct VSOut {\n @builtin(position) pos: vec4<f32>,\n @location(0) uv: vec2<f32>, // [-1,1] billboard-local \u2192 fragment SDF coord\n @location(1) dim: f32, // 0 = full node, 1 = dim node\n};\n\n@vertex\nfn vs_main(\n @builtin(vertex_index) vIdx: u32,\n @builtin(instance_index) iIdx: u32,\n) -> VSOut {\n // Two-triangle quad corners in billboard-local space.\n var QUAD = array<vec2<f32>, 6>(\n vec2<f32>(-1.0, -1.0), vec2<f32>(1.0, -1.0), vec2<f32>(-1.0, 1.0),\n vec2<f32>(-1.0, 1.0), vec2<f32>(1.0, -1.0), vec2<f32>(1.0, 1.0),\n );\n let corner = QUAD[vIdx];\n\n let node = nodes[iIdx].data;\n let res = u.u0.xy;\n let dpr = u.u0.z;\n let kVis = u.u0.w;\n\n // center: node px \u2192 clip space (y-flip \u2014 px is y-down, clip is y-up).\n let centerPx = node.xy;\n let centerNdc = vec2<f32>(\n centerPx.x / max(res.x, 1.0) * 2.0 - 1.0,\n 1.0 - centerPx.y / max(res.y, 1.0) * 2.0,\n );\n // half-extent: radius\u00B7kVis in CSS px \u2192 backing-store px (\u00B7dpr) \u2192 NDC half (\u00B72/res).\n // (the DPR-aware crispness leg \u2014 the disc samples at device resolution.)\n // (half is a WGSL reserved keyword \u2014 name it halfExt.)\n let radPx = node.z * kVis * dpr;\n let halfExt = vec2<f32>(radPx / max(res.x, 1.0) * 2.0, radPx / max(res.y, 1.0) * 2.0);\n\n var out: VSOut;\n out.pos = vec4<f32>(centerNdc + corner * halfExt, 0.0, 1.0);\n out.uv = corner;\n out.dim = node.w;\n return out;\n}\n\n@fragment\nfn fs_main(in: VSOut) -> @location(0) vec4<f32> {\n // SDF: distance to the unit-circle edge in billboard-local space (0 at the rim, neg inside).\n let d = length(in.uv) - 1.0;\n // fwidth(d) = |dpdx(d)| + |dpdy(d)| \u2014 the pixel footprint of the SDF, the resolution-\n // independent AA width (~1px band at ANY DPR/zoom/size).\n let aa = max(fwidth(d), 1e-4);\n let coverage = 1.0 - smoothstep(-aa, aa, d);\n if (coverage <= 0.0) { discard; }\n let col = mix(u.uNode, u.uNodeDim, in.dim);\n let a = col.a * coverage * u.u1.z; // \u00B7opacityCeiling\n // premultiplied-alpha output.\n return vec4<f32>(col.rgb * a, a);\n}\n";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
/** Total slide count. */
|
|
3
|
+
total: number;
|
|
4
|
+
/** Window to `fit` dots centered on the active dot. Off → show every dot. */
|
|
5
|
+
windowFit?: number;
|
|
6
|
+
/** Encapsulate the rail in the glass pager pill chassis. Default false —
|
|
7
|
+
a deck owns its own ambient glass host, so the dots sit FLUSH on it. */
|
|
8
|
+
ring?: boolean;
|
|
9
|
+
/** Accessible name for the rail group. */
|
|
10
|
+
ariaLabel?: string;
|
|
11
|
+
};
|
|
12
|
+
type __VLS_ModelProps = {
|
|
13
|
+
/** v-model:index — the active 0-based slide index. */
|
|
14
|
+
"index"?: number;
|
|
15
|
+
};
|
|
16
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
17
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
18
|
+
"update:index": (value: number) => any;
|
|
19
|
+
} & {
|
|
20
|
+
select: (index: number) => any;
|
|
21
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
22
|
+
onSelect?: ((index: number) => any) | undefined;
|
|
23
|
+
"onUpdate:index"?: ((value: number) => any) | undefined;
|
|
24
|
+
}>, {
|
|
25
|
+
ariaLabel: string;
|
|
26
|
+
ring: boolean;
|
|
27
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
28
|
+
declare const _default: typeof __VLS_export;
|
|
29
|
+
export default _default;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ComputedRef, type Ref } from "vue";
|
|
2
|
+
export interface DeckCore {
|
|
3
|
+
/** The 0-based active slide index (clamped to [0, total-1]). */
|
|
4
|
+
index: Ref<number>;
|
|
5
|
+
/** The total slide count. */
|
|
6
|
+
total: number;
|
|
7
|
+
/** 1-based completion as a percentage (slide 1 of N → 100/N), for a bar. */
|
|
8
|
+
progress: ComputedRef<number>;
|
|
9
|
+
/** The accessible "Slide N of M" announcement off the live index (§3 — the
|
|
10
|
+
portable aria-live seam; surface it in an `sr-only` polite region). */
|
|
11
|
+
liveMessage: ComputedRef<string>;
|
|
12
|
+
go: (i: number) => void;
|
|
13
|
+
next: () => void;
|
|
14
|
+
prev: () => void;
|
|
15
|
+
first: () => void;
|
|
16
|
+
last: () => void;
|
|
17
|
+
}
|
|
18
|
+
export interface UseDeckOptions {
|
|
19
|
+
/** The initial 0-based index (clamped). Default 0. */
|
|
20
|
+
initial?: number;
|
|
21
|
+
/** Fired AFTER a navigation commits, with the new + previous index. */
|
|
22
|
+
onChange?: (to: number, from: number) => void;
|
|
23
|
+
/** Resolve a per-slide accessible name for the live announcement (e.g. the
|
|
24
|
+
manifest title). When set, `liveMessage` reads "Slide N of M: <name>". */
|
|
25
|
+
label?: (index: number) => string;
|
|
26
|
+
}
|
|
27
|
+
export declare function useDeck(total: number, opts?: UseDeckOptions): DeckCore;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type MaybeRefOrGetter } from "vue";
|
|
2
|
+
/** The minimal move surface the handler drives (a structural subset of DeckCore,
|
|
3
|
+
so the consumer can pass its `DeckCore` directly). */
|
|
4
|
+
export interface DeckMoves {
|
|
5
|
+
next(): void;
|
|
6
|
+
prev(): void;
|
|
7
|
+
first(): void;
|
|
8
|
+
last(): void;
|
|
9
|
+
go(i: number): void;
|
|
10
|
+
}
|
|
11
|
+
export interface DeckKeyOptions {
|
|
12
|
+
/** Override the focused-control test (defaults to `target.closest(controls)`). */
|
|
13
|
+
isControl?: (target: EventTarget | null) => boolean;
|
|
14
|
+
}
|
|
15
|
+
/** Handle ONE keydown against the deck. Returns true if it navigated (and called
|
|
16
|
+
`preventDefault`), false if the key was left for the page/control. */
|
|
17
|
+
export declare function handleDeckKey(e: KeyboardEvent, deck: DeckMoves, opts?: DeckKeyOptions): boolean;
|
|
18
|
+
export interface UseDeckKeyboardOptions extends DeckKeyOptions {
|
|
19
|
+
/** The element the listener binds to. Default `window` (deck-global paging). */
|
|
20
|
+
target?: MaybeRefOrGetter<EventTarget | null | undefined>;
|
|
21
|
+
}
|
|
22
|
+
/** Bind the focus-guarded deck keyboard contract to a target (default `window`)
|
|
23
|
+
for the component lifetime. The `target` may be a ref/getter so a not-yet-mounted
|
|
24
|
+
element resolves at `onMounted`. */
|
|
25
|
+
export declare function useDeckKeyboard(deck: DeckMoves, opts?: UseDeckKeyboardOptions): void;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** The deck spring preset, re-exported from the colocated constants for consumers
|
|
2
|
+
sampling the same `(response, ζ)` row. */
|
|
3
|
+
export { DECK_SPRING } from "../constants";
|
|
4
|
+
/**
|
|
5
|
+
* Count-up easing. Defaults to a monotone cubic-out so a still render (or a failed
|
|
6
|
+
* engine chunk) is always faithful; replaced in-place with the engine's
|
|
7
|
+
* `springTimingFunction(.smooth)` once keyframes.js resolves. Callers read
|
|
8
|
+
* `deckEase.fn` each frame, so the swap is picked up live with no re-wiring.
|
|
9
|
+
*/
|
|
10
|
+
export declare const deckEase: {
|
|
11
|
+
fn: (t: number) => number;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Swap `deckEase.fn` to the engine's matching JS easing once keyframes.js resolves.
|
|
15
|
+
* Idempotent. No-op off-DOM (SSR / export tooling) and a silent no-op if the engine
|
|
16
|
+
* chunk fails — the count-up keeps its monotone cubic fallback.
|
|
17
|
+
*
|
|
18
|
+
* The slide transition needs no JS write: `--spring-deck: var(--spring-smooth)`
|
|
19
|
+
* (glass-ui's `.smooth` `linear()` token) resolves the declarative half at first
|
|
20
|
+
* paint.
|
|
21
|
+
*/
|
|
22
|
+
export declare function installDeckSpring(): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** SwiftUI `.smooth` — the deck's slide-transition + count-up curve: a calm settle
|
|
2
|
+
with a barely-there micro-overshoot, the right cadence for a content deck (the
|
|
3
|
+
page change reads as a settle, not a bounce). It is the SAME family the
|
|
4
|
+
`--spring-smooth` token derives from (`springLinearStops()` output), so the deck
|
|
5
|
+
inherits the constellation's iOS curve instead of forking a third easing
|
|
6
|
+
vocabulary — `--spring-deck: var(--spring-smooth)`. */
|
|
7
|
+
export declare const DECK_SPRING: {
|
|
8
|
+
readonly response: 0.5;
|
|
9
|
+
readonly dampingFraction: 0.85;
|
|
10
|
+
};
|
|
11
|
+
/** The focused-control selector the keyboard handler tests: when a control (button
|
|
12
|
+
/ link / field) is focused, Space + digit jumps reach that control's native
|
|
13
|
+
activation instead of being stolen for navigation (the C6 correctness fix). */
|
|
14
|
+
export declare const CONTROL_SELECTOR = "button, a, input, textarea, select, [role=button]";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { useDeck } from "./composables/useDeck";
|
|
2
|
+
export type { DeckCore, UseDeckOptions } from "./composables/useDeck";
|
|
3
|
+
export { useDeckKeyboard, handleDeckKey } from "./composables/useDeckKeyboard";
|
|
4
|
+
export type { DeckMoves, DeckKeyOptions, UseDeckKeyboardOptions, } from "./composables/useDeckKeyboard";
|
|
5
|
+
export { installDeckSpring, deckEase, DECK_SPRING, } from "./composables/useDeckSpring";
|
|
6
|
+
export { default as DeckPager } from "./DeckPager.vue";
|
|
7
|
+
export { CONTROL_SELECTOR } from "./constants";
|
|
8
|
+
export type { PagerWindow } from "../pager-dots/pagerWindow";
|
|
@@ -3,9 +3,10 @@ import { type DropdownMenuTriggerProps } from "reka-ui";
|
|
|
3
3
|
/**
|
|
4
4
|
* <DockDropdownTrigger> — variable-width DropdownMenu trigger for use inside GlassDock.
|
|
5
5
|
*
|
|
6
|
-
* Emits the dock
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* Emits the SHARED `.dock-trigger` recipe (BD.W-DOCK-CORE A8 — the unified dock
|
|
7
|
+
* overlay-trigger family: select/dropdown/popover are byte-identical geometry + style +
|
|
8
|
+
* baseline alignment). Interactive styling is owned by dock-controls/triggers.css; the
|
|
9
|
+
* hover-scale is OFF across the family so portaled content anchors smoothly.
|
|
9
10
|
*
|
|
10
11
|
* Consumers provide the button content (icon + text + optional chevron)
|
|
11
12
|
* via the default slot.
|
|
@@ -22,8 +22,28 @@ import { type ButtonHTMLAttributes, type Component, type HTMLAttributes } from "
|
|
|
22
22
|
type __VLS_Props = {
|
|
23
23
|
/** Compact variant: auto-sized instead of fixed 2.5rem square. */
|
|
24
24
|
compact?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Selected/toggled state (BC.W-DOCK-ENGINE cross-repo fold — fourier-M #10).
|
|
27
|
+
* The icon button is otherwise STATELESS (hover/press only); a consumer
|
|
28
|
+
* building a selectable dock control (a filter toggle, a mode picker) had to
|
|
29
|
+
* hand-roll the active register. Setting `active` stamps `aria-pressed` (the
|
|
30
|
+
* load-bearing AT-selectable semantic) + `data-active` (the CSS hook reading
|
|
31
|
+
* the existing `--dock-control-active-bg` "selected reads as glass" tier —
|
|
32
|
+
* NEVER a saturated brand hue, per W-REGISTER-IOS). Ergonomic sugar over the
|
|
33
|
+
* shipped register; no new token, no new paint.
|
|
34
|
+
*/
|
|
35
|
+
active?: boolean;
|
|
25
36
|
/** Button type attribute (default: "button" to prevent form submission). */
|
|
26
37
|
type?: ButtonHTMLAttributes["type"];
|
|
38
|
+
/**
|
|
39
|
+
* Disabled state (the four-state contract). A boundary nav control (a
|
|
40
|
+
* prev/next at the first/last item) stays PRESENT but disabled so the row
|
|
41
|
+
* geometry holds, never DOM-absent (the "flaky" read). On a <button> host it
|
|
42
|
+
* lands the native `disabled` attribute + `aria-disabled`; the CSS reads the
|
|
43
|
+
* `:disabled` register (the shared `.dock-icon-button:disabled` dim + the
|
|
44
|
+
* `pointer-events:none` press-suppress).
|
|
45
|
+
*/
|
|
46
|
+
disabled?: boolean;
|
|
27
47
|
/** Host tag/component (reka-ui Primitive `as`; default "button"). */
|
|
28
48
|
as?: string | Component;
|
|
29
49
|
/** Merge props onto a slotted child instead of rendering a host tag. */
|
|
@@ -35,8 +55,10 @@ type __VLS_Slots = {} & {
|
|
|
35
55
|
default?: (props: typeof __VLS_8) => any;
|
|
36
56
|
};
|
|
37
57
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
58
|
+
active: boolean;
|
|
38
59
|
type: "button" | "reset" | "submit";
|
|
39
60
|
compact: boolean;
|
|
61
|
+
disabled: boolean;
|
|
40
62
|
asChild: boolean;
|
|
41
63
|
as: string | Component;
|
|
42
64
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|