@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,19 @@
|
|
|
1
|
+
import { type ButtonHTMLAttributes, type HTMLAttributes } from "vue";
|
|
2
|
+
import { type PopoverTriggerProps } from "reka-ui";
|
|
3
|
+
type __VLS_Props = PopoverTriggerProps & {
|
|
4
|
+
type?: ButtonHTMLAttributes["type"];
|
|
5
|
+
class?: HTMLAttributes["class"];
|
|
6
|
+
};
|
|
7
|
+
declare var __VLS_8: {};
|
|
8
|
+
type __VLS_Slots = {} & {
|
|
9
|
+
default?: (props: typeof __VLS_8) => any;
|
|
10
|
+
};
|
|
11
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
12
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
16
|
+
new (): {
|
|
17
|
+
$slots: S;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { type Component } from "vue";
|
|
2
|
+
import type { DockStackItem } from "./constants";
|
|
3
|
+
/**
|
|
4
|
+
* <DockStack> — BC.W-DOCK-STACK-RAIL + BE.W-DOCK-RAIL-REALIZE. The ONE rail engine on
|
|
5
|
+
* the KEPT `.glass-dock-frame` non-clipping escape, with TWO render modes:
|
|
6
|
+
*
|
|
7
|
+
* • `mode="stack"` (DEFAULT — the BC byte-identical path). The macOS Dock
|
|
8
|
+
* hover-expand STACK: a `core` anchor glyph + N members that FAN OUT on hover/focus
|
|
9
|
+
* beside the rail, each a clear `--glass-bg-floating` glass icon.
|
|
10
|
+
*
|
|
11
|
+
* • `mode="facets"` (BE.W-DOCK-RAIL-REALIZE — the re-instated AZ context carousel).
|
|
12
|
+
* The members render as a CONTEXT CAROUSEL — a flex strip of facet-CHIPS that fans
|
|
13
|
+
* in the SAME gutter, each chip carrying its OWN `--glass-accent` hue (the
|
|
14
|
+
* per-instance chromatic-rim axis), the active facet lit on the selected-as-glass
|
|
15
|
+
* `--dock-control-active-bg` tier. Clicking a chip writes the consumer-owned
|
|
16
|
+
* `v-model:selected`. This is a RENDER MODE, NOT a second component — there is no
|
|
17
|
+
* `DockRail.vue`/`DockFacetRail.vue`; `<DockStack>` owns both modes.
|
|
18
|
+
*
|
|
19
|
+
* THE KEPT ESCAPE (both modes). It renders in `GlassDock`'s `#rail` slot, over the
|
|
20
|
+
* `.glass-dock-frame` shell — a `display:contents`-by-default wrapper that becomes a
|
|
21
|
+
* NON-clipping positioning context only on `data-has-rail`, so the rail extends BEYOND
|
|
22
|
+
* the dock edge into its own gutter WITHOUT touching the dock box (the box-INVIOLATE
|
|
23
|
+
* discipline — `deltaW = deltaH = 0`; the chips feed NO size into the dock's intrinsic
|
|
24
|
+
* box).
|
|
25
|
+
*
|
|
26
|
+
* 3 CONFIGURABLE, SCROLLABLE, N-STACK (both modes). `visibleCount` (default 3) members
|
|
27
|
+
* fan at rest; an >visibleCount set routes the fanned strip through `<FadingScroll>`
|
|
28
|
+
* (the one scroll-fade port) so the n-set is reachable by scrolling the rail, NOT by
|
|
29
|
+
* overflowing the dock box.
|
|
30
|
+
*
|
|
31
|
+
* THE HOVER-HYSTERESIS (REUSED, not re-forked — AZ.W-DOCK-FLICKER). The pointer-enter
|
|
32
|
+
* commits the open only after the `HOVER_INTENT_MS` intent-dwell. Focus opens
|
|
33
|
+
* immediately; blur/leave closes.
|
|
34
|
+
*
|
|
35
|
+
* ONE REGISTRY (R4 KEPT). The members write the consumer-owned `v-model:selected`; this
|
|
36
|
+
* primitive owns NO internal `ref()`/`reactive()` shadow of the active member. The hover
|
|
37
|
+
* `expanded` is a transient UI state (optionally `v-model:expanded` controlled), NOT a
|
|
38
|
+
* selection shadow.
|
|
39
|
+
*/
|
|
40
|
+
type __VLS_Props = {
|
|
41
|
+
/** The stack/facet members — the fan-out contents. */
|
|
42
|
+
items: readonly DockStackItem[];
|
|
43
|
+
/**
|
|
44
|
+
* The render mode. `"stack"` (default) = the macOS hover-expand glyph fan (the BC
|
|
45
|
+
* byte-identical path). `"facets"` = the re-instated AZ context carousel of
|
|
46
|
+
* accent-tinted facet chips (each chip writes its own `--glass-accent` hue).
|
|
47
|
+
*/
|
|
48
|
+
mode?: "stack" | "facets";
|
|
49
|
+
/** The core anchor glyph (the always-visible dock(1) item). Default: a layers glyph. */
|
|
50
|
+
core?: Component;
|
|
51
|
+
/** The core's accessible label (the stack's name). */
|
|
52
|
+
coreLabel?: string;
|
|
53
|
+
/** Members visible at rest before scrolling (the verbatim "3 configurable"). */
|
|
54
|
+
visibleCount?: number;
|
|
55
|
+
/** Which dock edge the stack anchors to. */
|
|
56
|
+
position?: "start" | "end";
|
|
57
|
+
};
|
|
58
|
+
type __VLS_ModelProps = {
|
|
59
|
+
"selected"?: string;
|
|
60
|
+
"expanded"?: boolean;
|
|
61
|
+
};
|
|
62
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
63
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
64
|
+
select: (id: string) => any;
|
|
65
|
+
"update:selected": (value: string | undefined) => any;
|
|
66
|
+
"update:expanded": (value: boolean) => any;
|
|
67
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
68
|
+
onSelect?: ((id: string) => any) | undefined;
|
|
69
|
+
"onUpdate:selected"?: ((value: string | undefined) => any) | undefined;
|
|
70
|
+
"onUpdate:expanded"?: ((value: boolean) => any) | undefined;
|
|
71
|
+
}>, {
|
|
72
|
+
position: "start" | "end";
|
|
73
|
+
mode: "stack" | "facets";
|
|
74
|
+
visibleCount: number;
|
|
75
|
+
coreLabel: string;
|
|
76
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
77
|
+
declare const _default: typeof __VLS_export;
|
|
78
|
+
export default _default;
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { type DockProps } from "./composables/useDockShellProps";
|
|
2
|
-
|
|
2
|
+
/** Imperative split/merge/toggle — re-measure pieces, then run the fission spring. */
|
|
3
|
+
declare function split(): void;
|
|
4
|
+
declare function merge(): void;
|
|
5
|
+
declare function toggleSplit(): void;
|
|
6
|
+
declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {}, __VLS_9: {
|
|
7
|
+
fissioned: boolean;
|
|
8
|
+
}, __VLS_11: {};
|
|
3
9
|
type __VLS_Slots = {} & {
|
|
4
10
|
persistent?: (props: typeof __VLS_1) => any;
|
|
5
11
|
} & {
|
|
@@ -7,7 +13,11 @@ type __VLS_Slots = {} & {
|
|
|
7
13
|
} & {
|
|
8
14
|
collapsed?: (props: typeof __VLS_5) => any;
|
|
9
15
|
} & {
|
|
10
|
-
|
|
16
|
+
search?: (props: typeof __VLS_7) => any;
|
|
17
|
+
} & {
|
|
18
|
+
split?: (props: typeof __VLS_9) => any;
|
|
19
|
+
} & {
|
|
20
|
+
rail?: (props: typeof __VLS_11) => any;
|
|
11
21
|
};
|
|
12
22
|
declare const __VLS_base: import("vue").DefineComponent<DockProps, {
|
|
13
23
|
expanded: import("vue").Ref<boolean, boolean>;
|
|
@@ -18,7 +28,15 @@ declare const __VLS_base: import("vue").DefineComponent<DockProps, {
|
|
|
18
28
|
collapse: () => void;
|
|
19
29
|
keepOpen: () => void;
|
|
20
30
|
release: () => void;
|
|
21
|
-
|
|
31
|
+
split: typeof split;
|
|
32
|
+
merge: typeof merge;
|
|
33
|
+
toggleSplit: typeof toggleSplit;
|
|
34
|
+
fissioned: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
35
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
36
|
+
"update:order": (from: number, to: number) => any;
|
|
37
|
+
}, string, import("vue").PublicProps, Readonly<DockProps> & Readonly<{
|
|
38
|
+
"onUpdate:order"?: ((from: number, to: number) => any) | undefined;
|
|
39
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
22
40
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
23
41
|
declare const _default: typeof __VLS_export;
|
|
24
42
|
export default _default;
|
|
@@ -3,37 +3,24 @@ import type { Ref } from "vue";
|
|
|
3
3
|
* AX.W02 — ONE morph orchestrator per dock. The dock is a single morph stack
|
|
4
4
|
* whose active "layer" is `(expandedState × activePane)`: the outer
|
|
5
5
|
* collapse↔expand swap and the inner `<DockLayerGroup>` pane swaps are
|
|
6
|
-
* transitions in the SAME group — ONE spring, ONE scalar (`--dock-morph-t
|
|
7
|
-
*
|
|
6
|
+
* transitions in the SAME group — ONE spring, ONE scalar (`--dock-morph-t`),
|
|
7
|
+
* ONE clock. No second engine.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* The orchestrator OWNS one `SpringProgress`. The OUTER collapse↔expand pair
|
|
20
|
-
* registers as a target; a NESTED `<DockLayerGroup>` registers a SECOND target
|
|
21
|
-
* instead of minting its own `useLayerTransition` engine. A re-toggle mid-flight
|
|
22
|
-
* re-bases the live solver onto the new span from its current velocity (the iOS
|
|
23
|
-
* interruptible-physics contract W01 keeps), so even an interrupted morph stays
|
|
24
|
-
* one continuous trajectory.
|
|
25
|
-
*
|
|
26
|
-
* This is the dock-flavored first instance of the general `MorphGroup` /
|
|
27
|
-
* `GlassEffectContainer` facility (the iOS-26 Liquid-Glass corpus, facet 26 —
|
|
28
|
-
* the `provideMorphGroup` two-part seam: a per-element driver + a provide/inject
|
|
29
|
-
* orchestrator). AX.W42 generalizes it; W02 establishes the seam it builds on.
|
|
9
|
+
* BD.W-DOCK-CORE (the size re-invent) — the orchestrator no longer MEASURES a
|
|
10
|
+
* per-swap `from/to` span. The visible size is a ratio-free convex blend of two
|
|
11
|
+
* endpoints measured ONCE per content change (`useDockExpandedSize` writes
|
|
12
|
+
* `--dock-expanded-px`/`--dock-collapsed-px`; layers.css blends them on
|
|
13
|
+
* `--dock-morph-t`). So this driver shrinks to its essence: on a layer swap it
|
|
14
|
+
* arms `[data-morphing]`, swaps the crossfade classes (the a11y-006 3-state
|
|
15
|
+
* hit-test contract, LOAD-BEARING — KEPT verbatim), and runs ONE `SpringProgress`
|
|
16
|
+
* gliding `--dock-morph-t` 0→1; on settle it clears the morph state. A re-toggle
|
|
17
|
+
* mid-flight re-bases the live solver onto a fresh spring CARRYING the prior
|
|
18
|
+
* velocity (the iOS interruptible-physics continuity).
|
|
30
19
|
*
|
|
31
20
|
* LIGHT-surface only: `SpringProgress` owns its own rAF via `.play(onFrame)` and
|
|
32
|
-
* carries no static value.js edge — never import `AnimationGroup` / `./engine
|
|
33
|
-
* (that pulls value.js into the dock bundle).
|
|
21
|
+
* carries no static value.js edge — never import `AnimationGroup` / `./engine`.
|
|
34
22
|
*
|
|
35
|
-
*
|
|
36
|
-
* `useLayerTransition` — it lives in `../constants` (the feature-dir constants home).
|
|
23
|
+
* `DOCK_SPRING` is byte-fenced — it lives in `../constants`.
|
|
37
24
|
*/
|
|
38
25
|
export interface DockMorphGroupRegistration {
|
|
39
26
|
/** The container element owning this group's grid-stacked panes. */
|
|
@@ -84,10 +71,9 @@ export interface UseDockMorphOrchestratorReturn {
|
|
|
84
71
|
onOuterTransitionEnd(e: TransitionEvent): void;
|
|
85
72
|
}
|
|
86
73
|
/**
|
|
87
|
-
* The ONE morph engine for a dock instance. Owns a single `SpringProgress
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
* single multi-target driver, so a nested dock runs ONE engine, not two.
|
|
74
|
+
* The ONE morph engine for a dock instance. Owns a single `SpringProgress` that
|
|
75
|
+
* glides the one `--dock-morph-t` scalar 0→1 on a layer swap; the size is a
|
|
76
|
+
* ratio-free blend of the measure-ONCE endpoints (layers.css). Crossfade classes
|
|
77
|
+
* (the 3-state a11y hit-test contract) swap on the swap; the spring is the clock.
|
|
92
78
|
*/
|
|
93
79
|
export declare function useDockMorphOrchestrator(options: UseDockMorphOrchestratorOptions): UseDockMorphOrchestratorReturn;
|
|
@@ -1,75 +1,86 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Ref } from "vue";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* `dockMorphContext.ts` to hold the no-god-module bound (the aurora→useAurora /
|
|
5
|
-
* goo-blob→useMetaballRenderer / fourier-field→useFourierField colocation pattern).
|
|
6
|
-
* The orchestrator stays the morph DRIVER (it owns the `SpringProgress`, the targets
|
|
7
|
-
* Set, the per-frame `--dock-morph-t` write); these are the PURE geometry + the
|
|
8
|
-
* reserved-footprint measure + the SYNCHRONOUS PRM seat it composes. `DOCK_SPRING` is
|
|
9
|
-
* byte-fenced — it lives in `../constants`, never touched here.
|
|
3
|
+
* BD.W-DOCK-CORE (the width-seizure cure) — the dock morph SIZE measure.
|
|
10
4
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
5
|
+
* THE BUG THIS RETIRES (the year-old seizure): the prior pipeline measured a
|
|
6
|
+
* per-swap `from/to` FLIP ratio and drove the visible size by
|
|
7
|
+
* `--dock-root-scale = max(ratio + (1−ratio)·t, 0.06)` — a FLOOR with NO CEILING.
|
|
8
|
+
* When the morph target measured small (a degenerate `to` racing the content
|
|
9
|
+
* layout), `ratio = from/max(to,1px)` ran to ~56 → `scaleX(56)` = a ~2451px
|
|
10
|
+
* detonation on collapse / an inversion at the spring overshoot peak. The
|
|
11
|
+
* `transform-origin: center` kept the centroid clean (`cxRange 0`), which is
|
|
12
|
+
* exactly why every prior judge measuring the centroid PASSED while the WIDTH
|
|
13
|
+
* detonated. The whole measure-and-arm FLIP machinery
|
|
14
|
+
* (`measureAndArmMorph`/`seatTargetSync`/`rebaseSiblingSpans`/
|
|
15
|
+
* `forceNestedMaxContent`/`nestedTargetsWithin`/`measureTo`/`armRootMorphSpan`/
|
|
16
|
+
* `clearRootMorphSpan`/`morphMinFloorPx`/the per-target generation gating) is
|
|
17
|
+
* DELETED — clean break, no legacy, no floor that masks a bad measurement.
|
|
18
|
+
*
|
|
19
|
+
* THE CURE — a ratio-FREE measure-ONCE convex blend. The dock measures its two
|
|
20
|
+
* KNOWN footprints ONCE per content change (a `ResizeObserver`, NOT a per-swap
|
|
21
|
+
* rAF race): `--dock-expanded-px` (the expanded content width, read behind the
|
|
22
|
+
* clip aperture) and `--dock-collapsed-px` (the collapsed summary box). The
|
|
23
|
+
* visible size is the convex blend `--dock-live = collapsed + (expanded −
|
|
24
|
+
* collapsed)·--dock-morph-t` and `--dock-size-scale = --dock-live / expanded`
|
|
25
|
+
* (layers.css). A convex blend of two POSITIVE endpoints can NEVER exceed the
|
|
26
|
+
* larger nor invert below the smaller — BOUNDED by construction, no ratio, no
|
|
27
|
+
* `scaleX` explosion, regardless of spring overshoot (the `clamp(0,t,1)` caps the
|
|
28
|
+
* size term; the >1 excursion routes to the orthogonal punch channel).
|
|
29
|
+
*
|
|
30
|
+
* THE FRESHNESS GUARD (challenge 3·R2): a measure-ONCE endpoint can still be read
|
|
31
|
+
* stale — before `fonts.ready`, before async icon SVGs lay out, on a
|
|
32
|
+
* `display:none`→0 route swap, or on a `content-visibility:auto` parent (the RO
|
|
33
|
+
* fires 0). A 0 expanded would give `collapsed/0 = ∞`. So FLOOR `--dock-expanded-px`
|
|
34
|
+
* at `max(measured, --dock-collapsed-px)` and re-measure on `fonts.ready` + the
|
|
35
|
+
* FIRST non-zero RO callback + visibility-enter. This is NOT the deleted magic
|
|
36
|
+
* floor (which masked a per-frame measurement); it is a one-shot endpoint
|
|
37
|
+
* sanity bound on a value that is otherwise stable across the whole morph.
|
|
38
|
+
*
|
|
39
|
+
* `DOCK_SPRING` is byte-fenced — it lives in `../constants`, never touched here.
|
|
14
40
|
*/
|
|
15
|
-
/** The minimal morph-target shape the measure/seat helpers read (the orchestrator's
|
|
16
|
-
* full `MorphTarget` structurally satisfies it). */
|
|
17
|
-
export interface MorphMeasureTarget {
|
|
18
|
-
containerEl: Ref<HTMLElement | null>;
|
|
19
|
-
axis: Ref<"horizontal" | "vertical">;
|
|
20
|
-
/** PER-TARGET swap generation — the seat gates its pipeline on its own id. */
|
|
21
|
-
txId: number;
|
|
22
|
-
}
|
|
23
41
|
export declare function dimOf(axis: "horizontal" | "vertical"): "width" | "height";
|
|
24
|
-
export declare function morphAxisProp(axis: "horizontal" | "vertical"): "inline-size" | "block-size";
|
|
25
42
|
export declare function getSize(el: HTMLElement, axis: "horizontal" | "vertical"): number;
|
|
26
|
-
export
|
|
27
|
-
/**
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
* path uses), composing the BA-VJS-1 nested-descendant `max-content` ordering so
|
|
48
|
-
* a nested group reads its TRUE intrinsic span (never `to:0`). The element is at
|
|
49
|
-
* the live painted geometry on entry; this forces+reads+restores the axis. PURE
|
|
50
|
-
* measure — no spring, no pin write.
|
|
51
|
-
*/
|
|
52
|
-
export declare function measureTo(t: MorphMeasureTarget, el: HTMLElement, targets: Iterable<MorphMeasureTarget>): number;
|
|
53
|
-
/** The orchestrator settle callbacks the synchronous seat composes (it clears the
|
|
54
|
-
* morph vars + nulls the leaving layer, then parks the root/spring once no target
|
|
55
|
-
* is morphing). */
|
|
56
|
-
export interface MorphSeatCallbacks {
|
|
57
|
-
/** Settle ONE target (clear its morph vars + null its leavingLayer). */
|
|
58
|
-
settleTarget(t: MorphMeasureTarget): void;
|
|
59
|
-
/** Park the shared scalar + spring once NO target is morphing. */
|
|
60
|
-
maybeSettleRoot(): void;
|
|
43
|
+
export interface UseDockExpandedSizeOptions {
|
|
44
|
+
/** The `.glass-dock` root the `--dock-expanded-px`/`--dock-collapsed-px` write to. */
|
|
45
|
+
rootEl: Ref<HTMLElement | null>;
|
|
46
|
+
/**
|
|
47
|
+
* The content element whose intrinsic morph-axis span is observed for size
|
|
48
|
+
* changes (the active full-pane container — `.dock-layers`). Its resizes are the
|
|
49
|
+
* RO trigger; the ENDPOINTS are read off the ROOT box (content + chrome), keyed
|
|
50
|
+
* by the dock's at-rest expanded/collapsed state.
|
|
51
|
+
*/
|
|
52
|
+
contentEl: Ref<HTMLElement | null>;
|
|
53
|
+
/**
|
|
54
|
+
* The morph axis (a horizontal dock blends width; a vertical dock blends height).
|
|
55
|
+
*/
|
|
56
|
+
axis: Ref<"horizontal" | "vertical">;
|
|
57
|
+
/**
|
|
58
|
+
* Whether the dock is currently in its EXPANDED visual state (a `Ref<boolean>`).
|
|
59
|
+
* The endpoint captured at rest is keyed off this: at rest expanded → the root
|
|
60
|
+
* box is the `--dock-expanded-px` endpoint; at rest collapsed → the
|
|
61
|
+
* `--dock-collapsed-px` endpoint. (A reactive read, so a state flip re-captures.)
|
|
62
|
+
*/
|
|
63
|
+
expanded: Ref<boolean>;
|
|
61
64
|
}
|
|
62
65
|
/**
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
66
|
+
* BD.W-DOCK-CORE — capture the two convex-blend endpoints ONCE PER STATE off the
|
|
67
|
+
* ROOT box.
|
|
68
|
+
*
|
|
69
|
+
* The visible morph scales the ROOT (chrome + content), so the two blend endpoints
|
|
70
|
+
* must be the ROOT's OWN expanded/collapsed footprints — NOT the bare content span
|
|
71
|
+
* (which omits the padding/min-width chrome). The endpoints are captured at REST
|
|
72
|
+
* (when `[data-morphing]` is OFF): the dock's settled root box in its current
|
|
73
|
+
* expanded/collapsed state IS that state's endpoint. A `ResizeObserver` on the
|
|
74
|
+
* content re-captures the CURRENT state's endpoint whenever the content reflows
|
|
75
|
+
* (more controls, a font swap), so the blend stays fresh — but it never reads the
|
|
76
|
+
* box MID-MORPH (the scaled box would feed back a degenerate endpoint, the seizure's
|
|
77
|
+
* cousin). The expanded endpoint is FLOORED at `max(captured, collapsed)` — the
|
|
78
|
+
* freshness guard against a 0/degenerate read giving `collapsed/0 = ∞`.
|
|
79
|
+
*
|
|
80
|
+
* The collapsed endpoint starts at the resolved `--dock-morph-min` icon-square floor
|
|
81
|
+
* and is refined to the real collapsed root box the first time the dock rests
|
|
82
|
+
* collapsed; the expanded endpoint is captured the first (and every) time it rests
|
|
83
|
+
* expanded. So the FIRST morph from a freshly-mounted expanded dock already has a
|
|
84
|
+
* real expanded endpoint + a sane collapsed floor — bounded by construction.
|
|
74
85
|
*/
|
|
75
|
-
export declare function
|
|
86
|
+
export declare function useDockExpandedSize(options: UseDockExpandedSizeOptions): void;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { useDockState } from "./useDockState";
|
|
2
2
|
export type { UseDockStateOptions, UseDockStateReturn, DockState } from "./useDockState";
|
|
3
|
+
export { useDockSearch } from "./useDockSearch";
|
|
4
|
+
export type { UseDockSearchOptions, UseDockSearchReturn } from "./useDockSearch";
|
|
3
5
|
export { useLayerTransition } from "./useLayerTransition";
|
|
4
6
|
export type { UseLayerTransitionOptions, UseLayerTransitionReturn } from "./useLayerTransition";
|
|
5
7
|
export { useDockHold } from "./useDockHold";
|
|
@@ -9,3 +11,4 @@ export { provideDockContext, useDockContext, useOptionalDockContext, DOCK_CONTEX
|
|
|
9
11
|
export { provideDockLayerGroupContext, useDockLayerGroupContext, useOptionalDockLayerGroupContext, DOCK_LAYER_GROUP_KEY, type DockLayerDescriptor, type DockLayerGroupContext, } from "./dockLayerContext";
|
|
10
12
|
export { useDockMorphOrchestrator, provideDockMorphContext, useOptionalDockMorphContext, DOCK_MORPH_KEY, type DockMorphContext, type DockMorphGroupRegistration, type DockMorphGroupHandle, type UseDockMorphOrchestratorOptions, type UseDockMorphOrchestratorReturn, } from "./dockMorphContext";
|
|
11
13
|
export { useDockOrientationMorph, type DockMorphOrientation, type UseDockOrientationMorphOptions, type UseDockOrientationMorphReturn, } from "./useDockOrientationMorph";
|
|
14
|
+
export { useDockFission, DOCK_SPLIT_SIGNATURES, type DockSplitContext, type DockSplitVector, type DockSplitSquishPeak, type DockSplitSignature, type DockFissionPieceRegistration, type DockFissionPieceHandle, type UseDockFissionOptions, type UseDockFissionReturn, } from "./useDockFission";
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** The signed shortest-arc offset on a wrap ring (the "negative-infinity modulus" — a
|
|
2
|
+
* naive `raw % N` breaks the backward wrap). Wraps to `[-N/2, N/2)`. */
|
|
3
|
+
export declare function ringOffset(raw: number, n: number): number;
|
|
4
|
+
/** The φ-tiered slot SPAN to a given absolute slot-distance — the chosen→neighbour gap
|
|
5
|
+
* is wider than the neighbour→far gap (the recession compresses as items recede, the
|
|
6
|
+
* depth read). The tier ratio is EXPRESSED in the accumulation, never a flat resolved
|
|
7
|
+
* rebake (the W-CARD-PAD φ-ladder fence). */
|
|
8
|
+
export declare function tieredSpan(adist: number, base: number, ratio: number): number;
|
|
9
|
+
/** The geometry knobs for the facet carousel — the φ-tier spacing + the fade model. */
|
|
10
|
+
export interface RailProjectionGeometry {
|
|
11
|
+
/** The active→neighbour base slot gap, in px (the tier-0 spacing). Default 44. */
|
|
12
|
+
slotSpacing?: number;
|
|
13
|
+
/** The φ tier ratio — each receding tier compresses by this. Default 1.618. */
|
|
14
|
+
tierRatio?: number;
|
|
15
|
+
/** The slot-distance at which the fade begins (active + immediate neighbour stay
|
|
16
|
+
* full). Default 0.5. */
|
|
17
|
+
fadeStart?: number;
|
|
18
|
+
/** The slot-span the fade runs over. Default 2.5. */
|
|
19
|
+
fadeRange?: number;
|
|
20
|
+
/** The far floor alpha. Default 0. */
|
|
21
|
+
fadeMinAlpha?: number;
|
|
22
|
+
/** The per-slot scale recession (the depth read). Default 0.06. */
|
|
23
|
+
scaleStep?: number;
|
|
24
|
+
/** The max slots the scale recession clamps at. Default 4. */
|
|
25
|
+
scaleClampSlots?: number;
|
|
26
|
+
}
|
|
27
|
+
/** One projected facet — the compositor-only transform tier for the ring item. */
|
|
28
|
+
export interface RailFacetProjection {
|
|
29
|
+
/** The stable ring index `0..count-1` (the `v-for` key). */
|
|
30
|
+
index: number;
|
|
31
|
+
/** The signed shortest-arc slot offset from the active facet. */
|
|
32
|
+
offset: number;
|
|
33
|
+
/** The px translate along the rail's main axis. */
|
|
34
|
+
translate: number;
|
|
35
|
+
/** The faded alpha (0..1). */
|
|
36
|
+
opacity: number;
|
|
37
|
+
/** The recession scale (≤1). */
|
|
38
|
+
scale: number;
|
|
39
|
+
/** Whether this is the active facet (offset 0). */
|
|
40
|
+
active: boolean;
|
|
41
|
+
}
|
|
42
|
+
/** Project the facet ring around the `active` index, fanned by `expand` (0 collapsed → 1
|
|
43
|
+
* fully fanned). Returns the virtualized WINDOW of `±ceil(fadeRange+1)` items, each with
|
|
44
|
+
* its compositor-only `{ translate, opacity, scale }`. PURE — no state, no measure. */
|
|
45
|
+
export declare function projectFacets(count: number, active: number, expand: number, geometry?: RailProjectionGeometry): RailFacetProjection[];
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { type MorphRect } from "@mkbabb/keyframes.js";
|
|
2
|
+
import { type Ref } from "vue";
|
|
3
|
+
import { type SpringPresetName } from "../../../../composables/motion/springPresets";
|
|
4
|
+
/** The dock orientation axis (the `dim`-idiom source — slot geometry derives from it). */
|
|
5
|
+
export type SilhouetteOrientation = "horizontal" | "vertical";
|
|
6
|
+
/** The four named silhouette kinds (the descriptor map's contract). */
|
|
7
|
+
export type DockSilhouetteKind = "bar" | "bar+pill" | "split" | "search";
|
|
8
|
+
/**
|
|
9
|
+
* The silhouette spring register — a subset of the named `SPRING_PRESETS` rows matching
|
|
10
|
+
* the `useDockCtaReceive`/`useLiquidReveal` register so every dock morph reads as ONE
|
|
11
|
+
* spring family. `dock` is the default (the dock's own settle clock).
|
|
12
|
+
*/
|
|
13
|
+
export type SilhouettePreset = Extract<SpringPresetName, "dock" | "snappy" | "bouncy">;
|
|
14
|
+
/**
|
|
15
|
+
* One named SLOT inside a silhouette — a position keyed by `controlId`. The geometry is
|
|
16
|
+
* ORIENTATION-DERIVED: `main` is the offset along the dock's main axis (the row position
|
|
17
|
+
* horizontal / the column position vertical), `cross` the cross-axis offset, `size` the
|
|
18
|
+
* control's extent. The orchestrator resolves these into a concrete `MorphRect` off the
|
|
19
|
+
* orientation + the dock's measured origin (the `dim`-idiom — never a hardcoded
|
|
20
|
+
* `inline-size`/`block-size` literal, so vertical is the SAME data with `orientation`
|
|
21
|
+
* flipped).
|
|
22
|
+
*/
|
|
23
|
+
export interface SilhouetteSlot {
|
|
24
|
+
/** The control this slot positions (the diff key — present-in-both → FLIP). */
|
|
25
|
+
controlId: string;
|
|
26
|
+
/** Offset along the dock's MAIN axis (px from the dock origin). */
|
|
27
|
+
main: number;
|
|
28
|
+
/** Offset along the CROSS axis (px from the dock origin). */
|
|
29
|
+
cross: number;
|
|
30
|
+
/** The control's main-axis extent (px). */
|
|
31
|
+
size: number;
|
|
32
|
+
/** The control's cross-axis extent (px; defaults to `size` for a square control). */
|
|
33
|
+
thickness?: number;
|
|
34
|
+
/**
|
|
35
|
+
* FUSION marker (the `bar+pill` headline): when true, this slot's `to`-rect is the
|
|
36
|
+
* bar's TOP CROWN and the orchestrator drives `--silhouette-fuse-t` so the slotted
|
|
37
|
+
* control (the now-playing pill) DOCKS DOWN and MELDS into the bar as ONE plate. A
|
|
38
|
+
* `bar+pill` descriptor with NO `fuse: true` slot is a pill-ABOVE-bar literal (the
|
|
39
|
+
* C3 anti-evasion — the gate reds it).
|
|
40
|
+
*/
|
|
41
|
+
fuse?: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* One declarative silhouette descriptor — a context's whole geometry as DATA (the
|
|
45
|
+
* `DockSectionDescriptor` precedent: data, not code paths). The orchestrator reads the
|
|
46
|
+
* MAP; there is NO per-context hardcoded silhouette literal (the gate's C1 anti-evasion
|
|
47
|
+
* floor).
|
|
48
|
+
*/
|
|
49
|
+
export interface DockSilhouetteDescriptor {
|
|
50
|
+
/** Stable identifier — the `setSilhouette` argument + the active-silhouette id. */
|
|
51
|
+
id: string;
|
|
52
|
+
/** Which of the four named kinds this context renders. */
|
|
53
|
+
kind: DockSilhouetteKind;
|
|
54
|
+
/** The named slots (control positions) this silhouette places. */
|
|
55
|
+
slots: readonly SilhouetteSlot[];
|
|
56
|
+
/** This silhouette's spring register (DATA, not an SFC ternary). Default `dock`. */
|
|
57
|
+
preset?: SilhouettePreset;
|
|
58
|
+
/**
|
|
59
|
+
* The neck-hold for any DETACH this transition drives (DATA — fed to `useDockFission`
|
|
60
|
+
* when a control is present-in-from-only). 0 = no hold (immediate release), 1 = full
|
|
61
|
+
* hold (the goo necks late then snaps).
|
|
62
|
+
*/
|
|
63
|
+
neckHold?: number;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The DETACH hand-off API the orchestrator drives (BE.W-DOCK-FISSION owns the engine).
|
|
67
|
+
* A control PRESENT-only-in-FROM detaches — the orchestrator registers it as a fission
|
|
68
|
+
* PIECE via `registerPiece` and the fission orchestrator buds it off the body. Defined
|
|
69
|
+
* here per the fission spec (`useDockFission` `registerPiece`); the sibling agent builds
|
|
70
|
+
* it, the orchestrator reconciles the import. The orchestrator never re-implements the
|
|
71
|
+
* detach physics — it CALLS this.
|
|
72
|
+
*/
|
|
73
|
+
export interface FissionPieceHandle {
|
|
74
|
+
/** Release the piece (drive its `--dock-split-t` 0→1 detach). */
|
|
75
|
+
detach: () => void;
|
|
76
|
+
/** Re-merge the piece (the bidirectional 1→0). */
|
|
77
|
+
remerge: () => void;
|
|
78
|
+
/** Unregister the piece (cleanup). */
|
|
79
|
+
release: () => void;
|
|
80
|
+
}
|
|
81
|
+
/** The fission registrar the orchestrator composes (BE.W-DOCK-FISSION's `registerPiece`). */
|
|
82
|
+
export type RegisterFissionPiece = (el: HTMLElement, spec: {
|
|
83
|
+
vector: {
|
|
84
|
+
dx: number;
|
|
85
|
+
dy: number;
|
|
86
|
+
};
|
|
87
|
+
rank: number;
|
|
88
|
+
neckHold: number;
|
|
89
|
+
}) => FissionPieceHandle;
|
|
90
|
+
/**
|
|
91
|
+
* The BLOOM-IN hand-off API the orchestrator drives (BE.W-BLOOM-UP owns the engine). A
|
|
92
|
+
* control PRESENT-only-in-TO blooms in — the inverse FLIP. Defined here per the bloom-up
|
|
93
|
+
* spec (`useBloomUp(sourceRef, destRef)`); the orchestrator CALLS it, never re-implements
|
|
94
|
+
* the bloom.
|
|
95
|
+
*/
|
|
96
|
+
export type BloomInPiece = (el: HTMLElement, fromRect: MorphRect, toRect: MorphRect) => void;
|
|
97
|
+
export interface UseDockContextSilhouetteOptions {
|
|
98
|
+
/** The declarative silhouette descriptor MAP (the four kinds; net-new DATA). */
|
|
99
|
+
silhouettes: readonly DockSilhouetteDescriptor[];
|
|
100
|
+
/** The id of the silhouette to seat at construction (defaults to the first). */
|
|
101
|
+
initial?: string;
|
|
102
|
+
/** The dock orientation (the `dim`-idiom source). Default `horizontal`. */
|
|
103
|
+
orientation?: SilhouetteOrientation | Ref<SilhouetteOrientation>;
|
|
104
|
+
/**
|
|
105
|
+
* Resolve a control's live element by `controlId` (the orchestrator measures its
|
|
106
|
+
* current rect for the FLIP). The consumer wires this off its slot refs.
|
|
107
|
+
*/
|
|
108
|
+
resolveControl: (controlId: string) => HTMLElement | null;
|
|
109
|
+
/**
|
|
110
|
+
* The dock ROOT element — the orchestrator measures its origin (to resolve a slot's
|
|
111
|
+
* orientation-derived `main`/`cross` into a viewport `MorphRect`) AND writes
|
|
112
|
+
* `--silhouette-fuse-t` onto it for the fusion meld. The fused glass plate is the
|
|
113
|
+
* dock body itself (C5 — the detach pieces paint in the non-clipping frame; the fused
|
|
114
|
+
* plate is the dock root).
|
|
115
|
+
*/
|
|
116
|
+
dockRoot: Ref<HTMLElement | null>;
|
|
117
|
+
/**
|
|
118
|
+
* The DETACH registrar (BE.W-DOCK-FISSION's `registerPiece`). When absent, a
|
|
119
|
+
* present-in-from-only control is simply removed from the FLIP set (no detach
|
|
120
|
+
* choreography — graceful until fission wires in).
|
|
121
|
+
*/
|
|
122
|
+
registerFissionPiece?: RegisterFissionPiece;
|
|
123
|
+
/**
|
|
124
|
+
* The BLOOM-IN driver (BE.W-BLOOM-UP). When absent, a present-in-to-only control
|
|
125
|
+
* snaps in (no bloom choreography — graceful until bloom-up wires in).
|
|
126
|
+
*/
|
|
127
|
+
bloomInPiece?: BloomInPiece;
|
|
128
|
+
/** Honor `prefers-reduced-motion: reduce` (seat synchronously). Default true. */
|
|
129
|
+
respectReducedMotion?: boolean;
|
|
130
|
+
/** Fired once when a silhouette transition has settled (the consumer hand-off). */
|
|
131
|
+
onSettled?: (toId: string) => void;
|
|
132
|
+
}
|
|
133
|
+
export interface UseDockContextSilhouetteReturn {
|
|
134
|
+
/** The active silhouette id (reactive — the consumer reads the SHAPE). */
|
|
135
|
+
active: Readonly<Ref<string>>;
|
|
136
|
+
/** The active descriptor (reactive). */
|
|
137
|
+
activeDescriptor: Readonly<Ref<DockSilhouetteDescriptor | null>>;
|
|
138
|
+
/** Whether a transition is in flight (the consumer guards re-entrancy / `[data-morphing]`). */
|
|
139
|
+
transitioning: Readonly<Ref<boolean>>;
|
|
140
|
+
/**
|
|
141
|
+
* Transition to the silhouette `toId` — DIFFs the slots by `controlId`, FLIPs the
|
|
142
|
+
* survivors, detaches the from-only, blooms in the to-only, and drives the fusion
|
|
143
|
+
* meld for a `bar+pill` target. A no-op if `toId` is unknown or already active.
|
|
144
|
+
*/
|
|
145
|
+
setSilhouette: (toId: string) => void;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* The declarative context→silhouette state machine. Reads a `DockSilhouetteDescriptor[]`
|
|
149
|
+
* MAP; on `setSilhouette` it DIFFs the slots by `controlId` and FLIPs/detaches/blooms via
|
|
150
|
+
* the SHIPPED `ElementMorph` + `springTimingFunction` substrate, ONE `DOCK_SPRING`. The
|
|
151
|
+
* `bar+pill` fusion docks the pill into the bar via `--silhouette-fuse-t`. Compositor-only
|
|
152
|
+
* + PRM-seats. See the module header for the REUSE + the orientation-derived slots + the
|
|
153
|
+
* fusion mechanism.
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```ts
|
|
157
|
+
* const sil = useDockContextSilhouette({
|
|
158
|
+
* silhouettes: [
|
|
159
|
+
* { id: "nav", kind: "bar", slots: [...] },
|
|
160
|
+
* { id: "media", kind: "bar+pill", slots: [{ controlId: "pill", main: 0, cross: -56, size: 240, fuse: true }, ...] },
|
|
161
|
+
* ],
|
|
162
|
+
* orientation,
|
|
163
|
+
* dockRoot,
|
|
164
|
+
* resolveControl: (id) => slotRefs.value[id] ?? null,
|
|
165
|
+
* })
|
|
166
|
+
* sil.setSilhouette("media") // the pill DOCKS DOWN + MELDS into the bar
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
export declare function useDockContextSilhouette(options: UseDockContextSilhouetteOptions): UseDockContextSilhouetteReturn;
|
|
170
|
+
/**
|
|
171
|
+
* Compute a detached control's DIRECTION-VECTOR off its slot + the orientation (the
|
|
172
|
+
* fission `vector` — the `dim`-idiom). A control peels along the CROSS axis (the
|
|
173
|
+
* `stack-rail.css` gutter direction the fission media=lateral signature reuses): the sign
|
|
174
|
+
* of `cross` chooses the side, the orientation chooses the axis. This is PURE (exported
|
|
175
|
+
* for the unit test — the slot-diff vector logic is testable without a DOM).
|
|
176
|
+
*/
|
|
177
|
+
export declare function detachVector(slot: SilhouetteSlot, orientation: SilhouetteOrientation): {
|
|
178
|
+
dx: number;
|
|
179
|
+
dy: number;
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* PURE slot-diff — exported for the unit test (the diff logic is testable without a DOM).
|
|
183
|
+
* Classifies each controlId across the from/to slot sets: `survivors` (present-in-both →
|
|
184
|
+
* FLIP), `bloomIns` (to-only → BLOOM), `detaches` (from-only → DETACH). This is the
|
|
185
|
+
* load-bearing classification `setSilhouette` runs; testing it directly proves the
|
|
186
|
+
* descriptor-driven state machine is correct without a browser.
|
|
187
|
+
*/
|
|
188
|
+
export declare function diffSilhouetteSlots(from: readonly SilhouetteSlot[], to: readonly SilhouetteSlot[]): {
|
|
189
|
+
survivors: string[];
|
|
190
|
+
bloomIns: string[];
|
|
191
|
+
detaches: string[];
|
|
192
|
+
};
|