@mkbabb/glass-ui 4.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/CardAction-8whJrLWt.js +268 -0
- package/dist/{CommandShortcut-DdtWXxOK.js → CommandShortcut-D3yxgHNn.js} +25 -14
- package/dist/ConfiguratorRow-CaP7U3ZA.js +143 -0
- package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
- package/dist/{ContextMenuSubContent-B0Vs6atR.js → ContextMenuSubContent-DDRID3qC.js} +28 -33
- package/dist/{DataTable-C464Zbqd.js → DataTable-Bc9kUtu_.js} +4 -4
- package/dist/{DialogContent-DDE6pQBU.js → DialogContent-6JtTB5x2.js} +11 -8
- package/dist/DialogFooter-9phqcRIS.js +80 -0
- package/dist/DialogScrollContent-TTuovQst.js +93 -0
- package/dist/{FadingScroll-DwNnvKMs.js → FadingScroll-DLRbH5Xr.js} +1 -1
- package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
- package/dist/{HoverPopover-Dpzwvc4t.js → HoverPopover-BcIxvyqZ.js} +2 -2
- package/dist/{IconChip-BDw1j5mu.js → IconChip-DhbdGdFQ.js} +2 -1
- package/dist/{IconTooltip-DSjasZIt.js → IconTooltip-B0zimd2H.js} +1 -1
- package/dist/Input-Cg9DF62r.js +57 -0
- package/dist/{MetricBadge-BpC0R_Ec.js → MetricBadge-RHdBP72w.js} +1 -1
- package/dist/Notification-CphK7AAm.js +43 -0
- package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
- package/dist/PagerDots-Cjx96la-.js +98 -0
- package/dist/{PopoverContent-BTorlp--.js → PopoverContent-DL7E6vJP.js} +4 -4
- package/dist/{Progress-hAT4gqGH.js → Progress-CnqB7gLm.js} +4 -4
- package/dist/{ScrollingText-CUVFTWk2.js → ScrollingText-CTZbA_cG.js} +2 -2
- package/dist/{SelectScrollDownButton-C1jb3b3K.js → SelectScrollDownButton-DAKCBEdW.js} +65 -61
- package/dist/{SelectSeparator-DK2y1Bun.js → SelectSeparator-C2UGOkXF.js} +1 -1
- package/dist/Separator-DQcwC2TR.js +44 -0
- package/dist/Switch-B8RscmRu.js +49 -0
- package/dist/Toaster-D9qIHjBI.js +274 -0
- package/dist/ToggleGroupItem-BLtr3TJq.js +170 -0
- package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +21 -33
- package/dist/api/types-extra.d.ts +37 -0
- package/dist/api.js +1 -1
- package/dist/aurora.js +1231 -260
- package/dist/badge.js +1 -1
- package/dist/border-progress.d.ts +1 -0
- package/dist/border-progress.js +98 -0
- package/dist/button-5dY1Dvhd.js +125 -0
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -3
- package/dist/card.js +2 -2
- package/dist/carousel.js +93 -110
- package/dist/collapsible.js +1 -1
- package/dist/color-Cs0-oxYL.js +116 -0
- package/dist/color.js +2 -2
- package/dist/command.js +1 -1
- package/dist/compile-nZ1xVYTp.js +19 -0
- package/dist/completion-seal.d.ts +1 -0
- package/dist/completion-seal.js +89 -0
- package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
- package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
- package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
- package/dist/components/custom/aurora/composables/color.d.ts +13 -0
- package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +31 -0
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +60 -0
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +37 -0
- package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +20 -2
- package/dist/components/custom/aurora/constants/renderMode.d.ts +77 -18
- package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
- package/dist/components/custom/aurora/index.d.ts +2 -1
- package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
- package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
- package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +18 -0
- package/dist/components/custom/border-progress/constants.d.ts +59 -0
- package/dist/components/custom/border-progress/index.d.ts +4 -0
- package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
- package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
- package/dist/components/custom/completion-seal/constants.d.ts +46 -0
- package/dist/components/custom/completion-seal/index.d.ts +4 -0
- package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +18 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +22 -0
- package/dist/components/custom/concentric/composables/ringField.d.ts +85 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +14 -0
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
- package/dist/components/custom/concentric/constants.d.ts +67 -0
- package/dist/components/custom/concentric/index.d.ts +5 -0
- package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
- package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
- package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
- package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
- package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
- package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
- package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
- package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
- package/dist/components/custom/constellation/constants.d.ts +33 -0
- package/dist/components/custom/constellation/constellationField.d.ts +31 -1
- package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
- package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
- package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
- package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
- package/dist/components/custom/constellation/index.d.ts +5 -5
- package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
- package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
- package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
- package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
- package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
- package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
- package/dist/components/custom/deck/constants.d.ts +14 -0
- package/dist/components/custom/deck/index.d.ts +8 -0
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +25 -4
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
- package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
- package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +155 -0
- package/dist/components/custom/dock/composables/index.d.ts +2 -0
- package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
- package/dist/components/custom/dock/constants.d.ts +18 -14
- package/dist/components/custom/dock/index.d.ts +5 -2
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +42 -0
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +83 -0
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +39 -0
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +35 -0
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +31 -0
- package/dist/components/custom/dot-flow-field/constants.d.ts +69 -0
- package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
- package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
- package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
- package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
- package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
- package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
- package/dist/components/custom/dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
- package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
- package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
- package/dist/components/custom/easing/composables/useEasingPicker.d.ts +80 -0
- package/dist/components/custom/easing/constants.d.ts +28 -0
- package/dist/components/custom/easing/index.d.ts +3 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +43 -40
- package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
- package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
- package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +42 -0
- package/dist/components/custom/fourier-field/constants.d.ts +64 -0
- package/dist/components/custom/fourier-field/index.d.ts +23 -18
- package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +13 -3
- package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +18 -11
- package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
- package/dist/components/custom/goo-blob/constants.d.ts +1 -1
- package/dist/components/custom/goo-blob/index.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/types.d.ts +36 -0
- package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
- package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
- package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
- package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
- package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
- package/dist/components/custom/handmark/HandMark.vue.d.ts +1 -1
- package/dist/components/custom/icon-chip/types.d.ts +11 -1
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +3 -1
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
- package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
- package/dist/components/custom/pager-dots/index.d.ts +2 -0
- package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
- package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
- package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
- package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
- package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
- package/dist/components/custom/paper-grid/constants.d.ts +57 -0
- package/dist/components/custom/paper-grid/index.d.ts +5 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
- package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
- package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
- package/dist/components/custom/search/index.d.ts +2 -0
- package/dist/components/custom/search/searchVariants.d.ts +19 -0
- package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
- package/dist/components/custom/selectable-chip/index.d.ts +2 -0
- package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
- package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
- package/dist/components/custom/spa-view/index.d.ts +2 -0
- package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
- package/dist/components/custom/split-chars/index.d.ts +1 -0
- package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +12 -0
- package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
- package/dist/components/custom/tabs/constants.d.ts +20 -2
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +30 -17
- package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
- package/dist/components/ui/_shared/index.d.ts +2 -0
- package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
- package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
- package/dist/components/ui/badge/index.d.ts +1 -1
- package/dist/components/ui/button/Button.vue.d.ts +5 -2
- package/dist/components/ui/button/index.d.ts +2 -2
- package/dist/components/ui/card/Card.vue.d.ts +79 -4
- package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
- package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
- package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
- package/dist/components/ui/card/index.d.ts +3 -1
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
- package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
- package/dist/components/ui/command/Command.vue.d.ts +1 -1
- package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
- package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
- package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
- package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts +7 -8
- package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
- package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
- package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
- package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
- package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
- package/dist/components/ui/drawer/constants.d.ts +45 -0
- package/dist/components/ui/drawer/index.d.ts +23 -15
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
- package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
- package/dist/components/ui/focus-scope/index.d.ts +2 -0
- package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/input/Input.vue.d.ts +3 -0
- package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
- package/dist/components/ui/select/SelectContent.vue.d.ts +4 -1
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
- package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
- package/dist/components/ui/toast/use-toast.d.ts +14 -0
- package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
- package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
- package/dist/composables/color/index.d.ts +2 -0
- package/dist/composables/color/useAccentTone.d.ts +34 -0
- package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
- package/dist/composables/glass/index.d.ts +5 -2
- package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
- package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
- package/dist/composables/glass/useVizChoreography.d.ts +123 -0
- package/dist/composables/glass/vSpecular.d.ts +2 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
- package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
- package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
- package/dist/composables/glass/webgpu/index.d.ts +2 -0
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +75 -0
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +85 -0
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
- package/dist/composables/motion/core/index.d.ts +4 -0
- package/dist/composables/motion/index.d.ts +4 -0
- package/dist/composables/motion/scrollReader.d.ts +25 -0
- package/dist/composables/motion/springPresets.d.ts +20 -1
- package/dist/composables/motion/useCharStagger.d.ts +44 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +84 -0
- package/dist/composables/motion/useDragMorph.d.ts +77 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
- package/dist/composables/motion/useLiquidPress.d.ts +71 -0
- package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
- package/dist/composables/motion/useNumericTransition.d.ts +3 -3
- package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
- package/dist/composables/motion/useScrollChrome.d.ts +58 -0
- package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
- package/dist/composables/motion/useSpringPress.d.ts +5 -5
- package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
- package/dist/composables/sidebar/index.d.ts +4 -1
- package/dist/composables/sidebar/types.d.ts +68 -3
- package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
- package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
- package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
- package/dist/composables/virtual/index.d.ts +4 -0
- package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
- package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
- package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
- package/dist/concentric.d.ts +1 -0
- package/dist/concentric.js +836 -0
- package/dist/configurator.js +3 -2
- package/dist/confirm-dialog.js +62 -49
- package/dist/constellation.js +635 -235
- package/dist/context-menu.js +3 -3
- package/dist/controls.js +2 -2
- package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck.d.ts +1 -0
- package/dist/deck.js +105 -0
- package/dist/dialog.js +4 -3
- package/dist/dock.js +819 -568
- package/dist/{dockContext-Bu1Avy-a.js → dockContext-BNfyPLe9.js} +1 -1
- package/dist/dom.js +5 -5
- package/dist/dot-flow-field.d.ts +1 -0
- package/dist/dot-flow-field.js +894 -0
- package/dist/dot-matrix.d.ts +1 -0
- package/dist/dot-matrix.js +630 -0
- package/dist/dotMatrixField-D_x9_1qq.js +48 -0
- package/dist/drawer.d.ts +1 -0
- package/dist/drawer.js +380 -0
- package/dist/{dropdown-menu-BJ7E9js_.js → dropdown-menu-aJmV5SqE.js} +82 -79
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.d.ts +1 -0
- package/dist/easing.js +475 -0
- package/dist/expandable-container.js +46 -21
- package/dist/fading-scroll.js +1 -1
- package/dist/flow.glsl-B2P7e0MT.js +4 -0
- package/dist/focus-scope.d.ts +1 -0
- package/dist/focus-scope.js +23 -0
- package/dist/forms.js +65 -63
- package/dist/fourier-field.js +831 -172
- package/dist/fourier-math.js +1 -1
- package/dist/glass-panel.js +2 -2
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +187 -338
- package/dist/goo-blob.js +241 -692
- package/dist/goo-dot-matrix.d.ts +1 -0
- package/dist/goo-dot-matrix.js +591 -0
- package/dist/handmark.js +2 -2
- package/dist/header-ribbon.js +1 -1
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-chip.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +70 -60
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +1 -1
- package/dist/metric-stack.js +14 -9
- package/dist/motion-core.js +58 -36
- package/dist/motion-curves.js +11 -1
- package/dist/motion.js +90 -53
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +2 -91
- package/dist/paper-backdrop.js +1 -1
- package/dist/paper-grid.d.ts +1 -0
- package/dist/paper-grid.js +788 -0
- package/dist/popover.js +1 -1
- package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
- package/dist/{compile-EXXzEr1q.js → procedural-color.wgsl-m7Zgv35j.js} +2 -156
- package/dist/progress.js +1 -1
- package/dist/pulse.js +2 -2
- package/dist/reactive.js +1 -1
- package/dist/resolveCanvasColor-yPyIpJt9.js +93 -0
- package/dist/scrollReader-DI1NWxUw.js +42 -0
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +162 -308
- package/dist/select.js +3 -3
- package/dist/selectable-chip.d.ts +1 -0
- package/dist/selectable-chip.js +65 -0
- package/dist/separator.js +1 -1
- package/dist/{sheet-CquRYOAw.js → sheet-B2flBfLH.js} +5 -5
- package/dist/sheet.js +1 -1
- package/dist/sidebar.js +216 -114
- package/dist/{slider-DQ95MET2.js → slider-2A0rPn79.js} +3 -3
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +2 -2
- package/dist/spa-view.d.ts +1 -0
- package/dist/spa-view.js +46 -0
- package/dist/spectrum-walk-BVzA7Biz.js +33 -0
- package/dist/{springPresets-WXaLbu8u.js → springPresets-Ce7OYCm9.js} +12 -6
- package/dist/styles/animations.css +46 -12
- package/dist/styles/border-progress.css +109 -0
- package/dist/styles/cards.css +145 -0
- package/dist/styles/completion-seal.css +131 -0
- package/dist/styles/components.css +2 -3
- package/dist/styles/configurator.css +55 -0
- package/dist/styles/critical-partition.mjs +162 -0
- package/dist/styles/critical.css +12 -0
- package/dist/styles/deferred.css +33 -0
- package/dist/styles/dock/cta-seat.css +87 -0
- package/dist/styles/dock/density.css +198 -0
- package/dist/styles/dock/layers.css +101 -29
- package/dist/styles/dock/morph-bridge.css +54 -18
- package/dist/styles/dock/morph.css +132 -7
- package/dist/styles/dock/overflow.css +28 -2
- package/dist/styles/dock/search.css +68 -0
- package/dist/styles/dock/shape.css +124 -0
- package/dist/styles/dock/shell.css +77 -21
- package/dist/styles/dock/stack-rail.css +264 -0
- package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/dist/styles/dock-controls/icon-button.css +14 -0
- package/dist/styles/dock.css +43 -1
- package/dist/styles/drawer.css +81 -35
- package/dist/styles/glass/accent-tone.css +66 -0
- package/dist/styles/glass/control-surfaces.css +167 -0
- package/dist/styles/glass/deep.css +44 -0
- package/dist/styles/glass/ladder.css +147 -41
- package/dist/styles/glass/material.css +78 -15
- package/dist/styles/glass/reveal.css +136 -0
- package/dist/styles/glass/rim.css +110 -0
- package/dist/styles/glass/surfaces.css +148 -129
- package/dist/styles/glass-refract.css +96 -44
- package/dist/styles/glass-specular-track.css +7 -0
- package/dist/styles/glass.css +13 -0
- package/dist/styles/hover-popover.css +7 -6
- package/dist/styles/icon-chip.css +77 -15
- package/dist/styles/index.css +36 -9
- package/dist/styles/instrument-chassis.css +66 -3
- package/dist/styles/scroll-choreography.css +300 -0
- package/dist/styles/scroll-chrome.css +123 -0
- package/dist/styles/scroll-driven.css +38 -0
- package/dist/styles/segmented-tabs.css +81 -14
- package/dist/styles/theme/bridges.css +33 -0
- package/dist/styles/theme/literals.css +11 -2
- package/dist/styles/theme/radius.css +24 -2
- package/dist/styles/tokens/color-radius.css +13 -3
- package/dist/styles/tokens/dark-arm.css +137 -32
- package/dist/styles/tokens/glass-deep.css +100 -0
- package/dist/styles/tokens/glass-fx.css +376 -0
- package/dist/styles/tokens/glass.css +131 -351
- package/dist/styles/tokens/light-dark.css +16 -3
- package/dist/styles/tokens/offsets.css +143 -0
- package/dist/styles/tokens/on-glass-fg.css +39 -0
- package/dist/styles/tokens/property-regs.css +260 -0
- package/dist/styles/tokens/scale-paper.css +168 -96
- package/dist/styles/tokens/scheme-motion.css +114 -38
- package/dist/styles/tokens/scroll-tokens.css +123 -0
- package/dist/styles/tokens/sizing-config.css +110 -0
- package/{src/styles/tokens/offsets-sizing.css → dist/styles/tokens/sizing.css} +92 -204
- package/dist/styles/tokens.css +14 -3
- package/dist/styles/typography/semantic.css +26 -13
- package/dist/styles/typography/utilities.css +22 -7
- package/dist/styles/utilities/a11y-overrides.css +20 -5
- package/dist/styles/utilities/animate.css +27 -24
- package/dist/styles/utilities/base-misc.css +307 -0
- package/dist/styles/utilities/base.css +47 -261
- package/dist/styles/utilities/btn.css +17 -4
- package/dist/styles/utilities/components.css +31 -6
- package/dist/styles/utilities/metal.css +215 -0
- package/dist/styles/utilities.css +14 -7
- package/dist/switch.js +1 -1
- package/dist/tabs.js +220 -107
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +10 -10
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +2 -2
- package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
- package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-CLrxicG9.js} +1 -1
- package/dist/useConfiguratorState-4xblKfwd.js +162 -0
- package/dist/useControlSize-SH1UmJCi.js +9 -0
- package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
- package/dist/useDragMorph-BUgAC-zK.js +102 -0
- package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
- package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
- package/dist/useLiquidPress-BooG97RY.js +39 -0
- package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
- package/dist/useScrollChrome-D66AVP7C.js +258 -0
- package/dist/useSpring-C0jyvEJB.js +40 -0
- package/dist/useSpringMount-BWDnKIwh.js +71 -0
- package/dist/useSpringPress-B1-Czp-V.js +36 -0
- package/dist/{useTouchGate-28Tk2-t2.js → useTouchGate-CBZTD4SD.js} +1 -1
- package/dist/useViewTransition-CUI1nAgn.js +95 -0
- package/dist/vSpecular-EX7loENl.js +68 -0
- package/dist/vendor-B2qOlYY3.js +239 -0
- package/dist/virtual.d.ts +1 -0
- package/dist/virtual.js +225 -0
- package/dist/watercolor-dot.js +117 -74
- package/package.json +252 -28
- package/src/styles/animations.css +46 -12
- package/src/styles/border-progress.css +109 -0
- package/src/styles/cards.css +145 -0
- package/src/styles/completion-seal.css +131 -0
- package/src/styles/configurator.css +55 -0
- package/src/styles/critical-partition.mjs +162 -0
- package/src/styles/dock/cta-seat.css +87 -0
- package/src/styles/dock/density.css +198 -0
- package/src/styles/dock/layers.css +101 -29
- package/src/styles/dock/morph-bridge.css +54 -18
- package/src/styles/dock/morph.css +132 -7
- package/src/styles/dock/overflow.css +28 -2
- package/src/styles/dock/search.css +68 -0
- package/src/styles/dock/shape.css +124 -0
- package/src/styles/dock/shell.css +77 -21
- package/src/styles/dock/stack-rail.css +264 -0
- package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/src/styles/dock-controls/icon-button.css +14 -0
- package/src/styles/dock.css +43 -1
- package/src/styles/drawer.css +81 -35
- package/src/styles/glass/accent-tone.css +66 -0
- package/src/styles/glass/control-surfaces.css +167 -0
- package/src/styles/glass/deep.css +44 -0
- package/src/styles/glass/ladder.css +147 -41
- package/src/styles/glass/material.css +78 -15
- package/src/styles/glass/reveal.css +136 -0
- package/src/styles/glass/rim.css +110 -0
- package/src/styles/glass/surfaces.css +148 -129
- package/src/styles/glass-refract.css +96 -44
- package/src/styles/glass-specular-track.css +7 -0
- package/src/styles/glass.css +13 -0
- package/src/styles/hover-popover.css +7 -6
- package/src/styles/icon-chip.css +77 -15
- package/src/styles/index.css +27 -0
- package/src/styles/instrument-chassis.css +66 -3
- package/src/styles/scroll-choreography.css +300 -0
- package/src/styles/scroll-chrome.css +123 -0
- package/src/styles/scroll-driven.css +38 -0
- package/src/styles/segmented-tabs.css +81 -14
- package/src/styles/theme/bridges.css +33 -0
- package/src/styles/theme/literals.css +11 -2
- package/src/styles/theme/radius.css +24 -2
- package/src/styles/tokens/color-radius.css +13 -3
- package/src/styles/tokens/dark-arm.css +137 -32
- package/src/styles/tokens/glass-deep.css +100 -0
- package/src/styles/tokens/glass-fx.css +376 -0
- package/src/styles/tokens/glass.css +131 -351
- package/src/styles/tokens/light-dark.css +16 -3
- package/src/styles/tokens/offsets.css +143 -0
- package/src/styles/tokens/on-glass-fg.css +39 -0
- package/src/styles/tokens/property-regs.css +260 -0
- package/src/styles/tokens/scale-paper.css +168 -96
- package/src/styles/tokens/scheme-motion.css +114 -38
- package/src/styles/tokens/scroll-tokens.css +123 -0
- package/src/styles/tokens/sizing-config.css +110 -0
- package/{dist/styles/tokens/offsets-sizing.css → src/styles/tokens/sizing.css} +92 -204
- package/src/styles/tokens.css +14 -3
- package/src/styles/typography/semantic.css +26 -13
- package/src/styles/typography/utilities.css +22 -7
- package/src/styles/utilities/a11y-overrides.css +20 -5
- package/src/styles/utilities/animate.css +27 -24
- package/src/styles/utilities/base-misc.css +307 -0
- package/src/styles/utilities/base.css +47 -261
- package/src/styles/utilities/btn.css +17 -4
- package/src/styles/utilities/components.css +31 -6
- package/src/styles/utilities/metal.css +215 -0
- package/src/styles/utilities.css +14 -7
- package/dist/CardAction-XH4YBVEK.js +0 -158
- package/dist/ContextMenuContent-ON3x7cuk.js +0 -85
- package/dist/DialogFooter-8eZbdmPc.js +0 -165
- package/dist/HoverCardContent-DkMaQzH5.js +0 -83
- package/dist/Input-DVG_J0ne.js +0 -55
- package/dist/Notification-DKjKsQq8.js +0 -100
- package/dist/NumberFieldContent-1VtwDSgf.js +0 -145
- package/dist/Separator-BArl4OaB.js +0 -37
- package/dist/Switch-Dr--uLGH.js +0 -47
- package/dist/Toaster-Bm_HQSpc.js +0 -263
- package/dist/ToggleGroupItem-Dzk9hWsF.js +0 -157
- package/dist/TooltipProvider-B3MkB_8P.js +0 -104
- package/dist/button-BNDWhAZb.js +0 -81
- package/dist/check-njhk-vfu.js +0 -7
- package/dist/chevron-down-DKkxb4VV.js +0 -7
- package/dist/chevron-right-CPXbqQQz.js +0 -7
- package/dist/chevron-up-n_24SqI-.js +0 -7
- package/dist/color-DweYl7pE.js +0 -86
- package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
- package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
- package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
- package/dist/createLucideIcon-DydS2qgk.js +0 -43
- package/dist/minimize-2-BV31Ob_h.js +0 -38
- package/dist/resolveCanvasColor-BBiYfp8g.js +0 -11
- package/dist/search-BSGrf2Sk.js +0 -12
- package/dist/styles/dock/rail-extend.css +0 -397
- package/dist/useCanvas2D-ClrQuZtp.js +0 -96
- package/dist/useConfiguratorState-kiIlun8I.js +0 -303
- package/dist/useRAFLoop-CdwJ7284.js +0 -109
- package/dist/useSpecularTracking-Bo5su68i.js +0 -32
- package/dist/useSpringMount-CvopqiFr.js +0 -108
- package/dist/useViewTransition-COsPjQVZ.js +0 -47
- package/dist/x-BUwTKe50.js +0 -10
- package/src/styles/dock/rail-extend.css +0 -397
- /package/dist/{CollapsibleContent-C_s6fG7r.js → CollapsibleContent-68dEXIAl.js} +0 -0
- /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-CxsHSyMj.js} +0 -0
- /package/dist/{Label-Ck9SWEKM.js → Label-C2ejNWeC.js} +0 -0
- /package/dist/{ModalOverlay-CkPRRgl_.js → ModalOverlay-D1VrWyoi.js} +0 -0
- /package/dist/{PaperBackdrop-nBKe0vkB.js → PaperBackdrop-CqwjnfLv.js} +0 -0
- /package/dist/{SelectGroup-Dcczq44n.js → SelectGroup-BFiod7X2.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-CBt_VvXa.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
- /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
- /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
- /package/dist/{createContext-B2RaZ-b8.js → createContext-CpBNTRMI.js} +0 -0
- /package/dist/{math-DeuJwLFx.js → math-Eb0w3LqU.js} +0 -0
- /package/dist/{menuItemVariants-DWRQXBxJ.js → menuItemVariants-D8VNHq22.js} +0 -0
- /package/dist/{prng-Cg22zv8g.js → prng-B-d9eYX8.js} +0 -0
- /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
- /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
- /package/dist/{useLiquidFlex-C12hXwOZ.js → useLiquidFlex-UmA6LMZu.js} +0 -0
- /package/dist/{useResizeObserver-V6nq5gJb.js → useResizeObserver-Bpoi7tRE.js} +0 -0
- /package/dist/{useResolveTokenColor-NUG2zYAW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
- /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
- /package/dist/{useSurfaceAxis-CMnF2zHb.js → useSurfaceAxis-g0NloYEF.js} +0 -0
- /package/dist/{useTimer-B_PAasDL.js → useTimer-BHJOKr35.js} +0 -0
- /package/dist/{useUserInvalidAria-CDfJuakL.js → useUserInvalidAria-y5namzeE.js} +0 -0
- /package/dist/{useViewportReady-CvBcCYDf.js → useViewportReady-anbac3m6.js} +0 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { computed as e, toValue as t } from "vue";
|
|
2
|
+
import { OKLCHColor as n, colorUnit2 as r, gamutMapOKLab as i, interpolateHue as a, isInSRGBGamut as o, oklabToLinearSRGB as s, oklabToRgb255 as c, parseCSSColor as l, rawOklabToOklch as u, rawOklchToOklab as d, safeAccentColor as f, srgbToOKLab as p } from "@mkbabb/value.js";
|
|
3
|
+
//#region src/composables/color/useAccentTone.ts
|
|
4
|
+
var m = "hsl(36 48% 97%)", h = 4.5, g = .18;
|
|
5
|
+
function _(e, t, n) {
|
|
6
|
+
let [r] = d(e.L, e.C, e.h), [i] = d(t.L, t.C, t.h);
|
|
7
|
+
return r * (1 - n) + i * n;
|
|
8
|
+
}
|
|
9
|
+
function v(r, i = {}) {
|
|
10
|
+
let a = e(() => {
|
|
11
|
+
let e = t(r) || "var(--primary)";
|
|
12
|
+
if (/var\(/.test(e)) return "";
|
|
13
|
+
i.fillStrength;
|
|
14
|
+
let a = i.bandStrength ?? g, o = i.inkContrast ?? h, s = i.surface || m, c, l;
|
|
15
|
+
try {
|
|
16
|
+
c = S(e), l = S(s);
|
|
17
|
+
} catch {
|
|
18
|
+
return "";
|
|
19
|
+
}
|
|
20
|
+
let u = _(l, c, a);
|
|
21
|
+
return f(new n(c.L, c.C, c.h), u, o * .1).toString();
|
|
22
|
+
});
|
|
23
|
+
return {
|
|
24
|
+
toneStyle: e(() => {
|
|
25
|
+
let e = { "--tone": t(r) || "var(--primary)" }, n = a.value;
|
|
26
|
+
return n && (e["--accent-ink-resolved"] = n), e;
|
|
27
|
+
}),
|
|
28
|
+
ink: a
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region src/composables/color/index.ts
|
|
33
|
+
function y(e) {
|
|
34
|
+
let [t, n, r] = d(e.L, e.C, e.h), [i, a, o] = s(t, n, r);
|
|
35
|
+
return [
|
|
36
|
+
Math.max(0, i),
|
|
37
|
+
Math.max(0, a),
|
|
38
|
+
Math.max(0, o)
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
function b(e, t, n) {
|
|
42
|
+
if (!Number.isFinite(e) || !Number.isFinite(t) || !Number.isFinite(n)) throw Error(`warmCatchLight: non-finite OKLCh anchor (L=${e}, C=${t}, h=${n})`);
|
|
43
|
+
return y({
|
|
44
|
+
L: e,
|
|
45
|
+
C: t,
|
|
46
|
+
h: n
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function x(e) {
|
|
50
|
+
let [t, n, r] = d(e.L, e.C, e.h), [i, a, o] = c(t, n, r), s = (e) => Math.min(1, Math.max(0, e / 255));
|
|
51
|
+
return [
|
|
52
|
+
s(i),
|
|
53
|
+
s(a),
|
|
54
|
+
s(o)
|
|
55
|
+
];
|
|
56
|
+
}
|
|
57
|
+
function S(e) {
|
|
58
|
+
let t = r(l(e), "rgb").value, [n, i, a] = p(Number(t.r), Number(t.g), Number(t.b)), [o, s, c] = u(n, i, a);
|
|
59
|
+
return {
|
|
60
|
+
L: o,
|
|
61
|
+
C: s,
|
|
62
|
+
h: c
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function C(e) {
|
|
66
|
+
let [t, n, r] = d(e.L, e.C, e.h), [i, a, o] = c(t, n, r), s = (e) => Math.round(e).toString(16).padStart(2, "0");
|
|
67
|
+
return `#${s(i)}${s(a)}${s(o)}`;
|
|
68
|
+
}
|
|
69
|
+
var w = (e) => x(S(e)), T = {
|
|
70
|
+
complementary: "longer",
|
|
71
|
+
"split-complementary": "longer",
|
|
72
|
+
analogous: "shorter",
|
|
73
|
+
monochrome: "shorter",
|
|
74
|
+
triad: "increasing",
|
|
75
|
+
tetradic: "increasing"
|
|
76
|
+
}, E = (e) => (e % 360 + 360) % 360;
|
|
77
|
+
function D(e, t, n, r) {
|
|
78
|
+
let i = T[t], o = (e, t) => E(a(E(e) / 360, E(t) / 360, r, i) * 360);
|
|
79
|
+
switch (t) {
|
|
80
|
+
case "monochrome": return E(e);
|
|
81
|
+
case "complementary": return o(e, e + 180);
|
|
82
|
+
case "split-complementary": return o(e + 150, e + 210);
|
|
83
|
+
case "triad": return o(e, e + 240);
|
|
84
|
+
case "tetradic": return o(e, e + 270);
|
|
85
|
+
default: return o(e - n, e + n);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function O(e) {
|
|
89
|
+
let [t, n, r] = d(e.L, e.C, e.h), [a, c, l] = i(t, n, r), [f, p, m] = u(a, c, l), h = p;
|
|
90
|
+
for (let e = 0; e < 6; e++) {
|
|
91
|
+
let [e, t, n] = d(f, h, m), [r, i, a] = s(e, t, n);
|
|
92
|
+
if (o(r, i, a)) break;
|
|
93
|
+
h *= .999;
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
L: f,
|
|
97
|
+
C: h,
|
|
98
|
+
h: m
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function k(e, t = {}) {
|
|
102
|
+
let n = typeof e == "string" ? S(e) : e, { stopCount: r = 3, harmony: i = "analogous", lightnessSpread: a = .18, hueSpread: o = 24, chromaBump: s = .03, chromaCeiling: c } = t, l = Math.max(2, Math.min(4, Math.round(r))), u = [];
|
|
103
|
+
for (let e = 0; e < l; e++) {
|
|
104
|
+
let t = l === 1 ? 0 : e / (l - 1), r = n.L - a / 2 + a * t, d = Math.max(0, n.C + s * Math.sin(Math.PI * t));
|
|
105
|
+
c !== void 0 && (d = Math.min(d, c));
|
|
106
|
+
let f = D(n.h, i, o, t);
|
|
107
|
+
u.push(O({
|
|
108
|
+
L: Math.min(.98, Math.max(.05, r)),
|
|
109
|
+
C: d,
|
|
110
|
+
h: f
|
|
111
|
+
}));
|
|
112
|
+
}
|
|
113
|
+
return u;
|
|
114
|
+
}
|
|
115
|
+
//#endregion
|
|
116
|
+
export { O as a, y as c, D as i, b as l, w as n, C as o, k as r, x as s, S as t, v as u };
|
package/dist/color.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./color-
|
|
2
|
-
export { c as cssToOklch, i as defaultBlobColorResolver, o as deriveBlobPalette, n as deriveHue, e as gamutMapStop, a as oklchStopToHex, s as oklchToGammaRgb, t as oklchToLinear, r as warmCatchLight };
|
|
1
|
+
import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c, u as l } from "./color-Cs0-oxYL.js";
|
|
2
|
+
export { c as cssToOklch, i as defaultBlobColorResolver, o as deriveBlobPalette, n as deriveHue, e as gamutMapStop, a as oklchStopToHex, s as oklchToGammaRgb, t as oklchToLinear, l as useAccentTone, r as warmCatchLight };
|
package/dist/command.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./CommandShortcut-
|
|
1
|
+
import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./CommandShortcut-D3yxgHNn.js";
|
|
2
2
|
export { r as Command, t as CommandDialog, s as CommandEmpty, a as CommandGroup, e as CommandInput, n as CommandItem, o as CommandList, i as CommandSeparator, c as CommandShortcut };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/composables/glass/webgl/compile.ts
|
|
2
|
+
function e(e, t, n, r = "[glass-ui:webgl]") {
|
|
3
|
+
let i = e.createShader(t);
|
|
4
|
+
if (e.shaderSource(i, n), e.compileShader(i), !e.getShaderParameter(i, e.COMPILE_STATUS)) {
|
|
5
|
+
let t = e.getShaderInfoLog(i) ?? "unknown";
|
|
6
|
+
throw e.deleteShader(i), Error(`${r} shader compile failed:\n${t}`);
|
|
7
|
+
}
|
|
8
|
+
return i;
|
|
9
|
+
}
|
|
10
|
+
function t(e, t, n, r = "[glass-ui:webgl]") {
|
|
11
|
+
let i = e.createProgram();
|
|
12
|
+
if (e.attachShader(i, t), e.attachShader(i, n), e.linkProgram(i), !e.getProgramParameter(i, e.LINK_STATUS)) {
|
|
13
|
+
let t = e.getProgramInfoLog(i) ?? "unknown";
|
|
14
|
+
throw e.deleteProgram(i), Error(`${r} program link failed:\n${t}`);
|
|
15
|
+
}
|
|
16
|
+
return i;
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { t as n, e as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./components/custom/completion-seal";
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { t as e } from "./cn-DJXf4yaB.js";
|
|
2
|
+
import { computed as t, createCommentVNode as n, createElementBlock as r, defineComponent as i, normalizeClass as a, onMounted as o, openBlock as s, readonly as c, ref as l, toDisplayString as u, toRef as d, unref as f, watch as p } from "vue";
|
|
3
|
+
//#region src/components/custom/completion-seal/composables/useCompletionSeal.ts
|
|
4
|
+
function m() {
|
|
5
|
+
return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
6
|
+
}
|
|
7
|
+
function h(e) {
|
|
8
|
+
if (e != null) return typeof e == "function" ? e() : e.value;
|
|
9
|
+
}
|
|
10
|
+
function g(e = {}) {
|
|
11
|
+
let { play: n, respectReducedMotion: r = !0 } = e, i = l(!1), a = l(!1), s = t(() => r && m());
|
|
12
|
+
function u() {
|
|
13
|
+
if (s.value) {
|
|
14
|
+
i.value = !1, a.value = !0;
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
i.value = !1, typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => {
|
|
18
|
+
i.value = !0, a.value = !0;
|
|
19
|
+
}) : (i.value = !0, a.value = !0);
|
|
20
|
+
}
|
|
21
|
+
return n == null ? o(u) : (o(() => {
|
|
22
|
+
h(n) && u();
|
|
23
|
+
}), p(() => h(n), (e, t) => {
|
|
24
|
+
e && !t && u();
|
|
25
|
+
})), {
|
|
26
|
+
playing: c(i),
|
|
27
|
+
drawn: c(a),
|
|
28
|
+
reduced: c(s),
|
|
29
|
+
draw: u
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
var _ = "0 0 64 64", v = {
|
|
33
|
+
check: "M16 33 L28 45 L48 19",
|
|
34
|
+
wordmark: "M14 30 L26 42 L50 16 M14 50 L50 50"
|
|
35
|
+
}, y = {
|
|
36
|
+
cx: 32,
|
|
37
|
+
cy: 32,
|
|
38
|
+
r: 24
|
|
39
|
+
}, b = [
|
|
40
|
+
"data-shape",
|
|
41
|
+
"data-play",
|
|
42
|
+
"data-drawn"
|
|
43
|
+
], x = ["viewBox"], S = [
|
|
44
|
+
"cx",
|
|
45
|
+
"cy",
|
|
46
|
+
"r"
|
|
47
|
+
], C = ["d"], w = {
|
|
48
|
+
key: 0,
|
|
49
|
+
class: "sr-only"
|
|
50
|
+
}, T = /* @__PURE__ */ i({
|
|
51
|
+
name: "CompletionSeal",
|
|
52
|
+
__name: "CompletionSeal",
|
|
53
|
+
props: {
|
|
54
|
+
shape: {},
|
|
55
|
+
label: {},
|
|
56
|
+
play: { type: Boolean },
|
|
57
|
+
class: {}
|
|
58
|
+
},
|
|
59
|
+
setup(i) {
|
|
60
|
+
let o = i, c = t(() => o.shape ?? "check"), l = t(() => c.value === "wordmark" ? v.wordmark : v.check), { playing: p, drawn: m } = g({ play: o.play === void 0 ? void 0 : d(o, "play") });
|
|
61
|
+
return (t, i) => (s(), r("div", {
|
|
62
|
+
class: a(["completion-seal", f(e)(o.class)]),
|
|
63
|
+
"data-shape": c.value,
|
|
64
|
+
"data-play": f(p) ? "" : void 0,
|
|
65
|
+
"data-drawn": f(m) ? "" : void 0,
|
|
66
|
+
role: "status",
|
|
67
|
+
"aria-live": "polite"
|
|
68
|
+
}, [(s(), r("svg", {
|
|
69
|
+
class: "completion-seal__svg",
|
|
70
|
+
viewBox: f(_),
|
|
71
|
+
"aria-hidden": "true",
|
|
72
|
+
focusable: "false"
|
|
73
|
+
}, [c.value === "ring" ? (s(), r("circle", {
|
|
74
|
+
key: 0,
|
|
75
|
+
class: "completion-seal__mark",
|
|
76
|
+
cx: f(y).cx,
|
|
77
|
+
cy: f(y).cy,
|
|
78
|
+
r: f(y).r,
|
|
79
|
+
pathLength: "100"
|
|
80
|
+
}, null, 8, S)) : (s(), r("path", {
|
|
81
|
+
key: 1,
|
|
82
|
+
class: "completion-seal__mark",
|
|
83
|
+
d: l.value,
|
|
84
|
+
pathLength: "100"
|
|
85
|
+
}, null, 8, C))], 8, x)), o.label ? (s(), r("span", w, u(o.label), 1)) : n("", !0)], 10, b));
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
//#endregion
|
|
89
|
+
export { T as CompletionSeal, g as useCompletionSeal };
|
|
@@ -52,11 +52,16 @@ type __VLS_Props = {
|
|
|
52
52
|
* - `"css"` — never arm WebGL; the `paletteToCssGradient` placeholder
|
|
53
53
|
* stays the permanent surface (the warm wash composites, it just
|
|
54
54
|
* does not animate).
|
|
55
|
-
* - `"auto"` (default) —
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* `"
|
|
59
|
-
*
|
|
55
|
+
* - `"auto"` (default) — resolves to `"webgl"` on every device EXCEPT a
|
|
56
|
+
* detected SOFTWARE renderer (SwiftShader / llvmpipe / MS Basic Render),
|
|
57
|
+
* which falls to `"css"` (the page-wedging-software-raster guard, the only
|
|
58
|
+
* surviving `"css"` signal). BC.W-VIZ-AURORA (T1) RETIRED the dead-static
|
|
59
|
+
* `hardwareConcurrency <= 4` / `saveData` / `reduced-motion` falls: a
|
|
60
|
+
* 2026-capable low-core / throttled tab no longer gets a frozen gradient
|
|
61
|
+
* (the "renders SLOW" defect root), and reduced-motion is handled SOLELY by
|
|
62
|
+
* the substrate's live `matchMedia` freeze (one static frame then park,
|
|
63
|
+
* re-arms on un-reduce). Resolved once at setup; SSR / missing-API safe
|
|
64
|
+
* (assumes capable → `"webgl"` when the probes are unavailable).
|
|
60
65
|
*/
|
|
61
66
|
renderMode?: AuroraRenderMode;
|
|
62
67
|
/**
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type AuroraConfig, type AuroraMedium } from "../constants/presets";
|
|
2
|
+
import type { AuroraMotionAtom } from "./atoms";
|
|
3
|
+
/** Linear interpolation over a co-varying axis (the continuous curve, not a LUT). */
|
|
4
|
+
export declare function lerp(a: number, b: number, t: number): number;
|
|
5
|
+
/** The motion atom → the three motion fields. */
|
|
6
|
+
export interface MotionFields {
|
|
7
|
+
nucleiDrift: number;
|
|
8
|
+
paletteDrift: number;
|
|
9
|
+
warpDrift: number;
|
|
10
|
+
breathDepth: number;
|
|
11
|
+
}
|
|
12
|
+
/** The calm↔vivid poles for each co-varying COLOR-energy axis. */
|
|
13
|
+
export declare const COLOR_ENERGY: {
|
|
14
|
+
readonly saturation: {
|
|
15
|
+
readonly calm: 0.85;
|
|
16
|
+
readonly vivid: 1.2;
|
|
17
|
+
};
|
|
18
|
+
readonly valueVariance: {
|
|
19
|
+
readonly calm: 0.04;
|
|
20
|
+
readonly vivid: 0.14;
|
|
21
|
+
};
|
|
22
|
+
readonly breathDepth: {
|
|
23
|
+
readonly calm: 0.03;
|
|
24
|
+
readonly vivid: 0.08;
|
|
25
|
+
};
|
|
26
|
+
readonly temperatureShift: {
|
|
27
|
+
readonly calm: 0.15;
|
|
28
|
+
readonly vivid: 0.5;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export declare const MOTION_FIELDS: Record<AuroraMotionAtom, MotionFields>;
|
|
32
|
+
/** The textured medium → its dominant texture knob. Only reached for a textured medium. */
|
|
33
|
+
export declare function applyTexture(cfg: AuroraConfig, medium: Exclude<AuroraMedium, "smooth">, amount: number): void;
|
|
34
|
+
/** Read back the textured medium's dominant texture amount (the applyTexture inverse). */
|
|
35
|
+
export declare function textureAmountFor(cfg: AuroraConfig, kind: Exclude<AuroraMedium, "smooth">): number;
|
|
36
|
+
/** Classify the motion atom from the config's drift fields (the resolveAtoms forward map). */
|
|
37
|
+
export declare function motionFor(cfg: AuroraConfig): AuroraMotionAtom;
|
|
38
|
+
/** Invert a clamped lerp(calm, vivid, t) back to t∈[0,1] (the energy/noise inverses). */
|
|
39
|
+
export declare function unlerp(value: number, lo: number, hi: number): number;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aurora luminance-faithful fallback ground (BB.W-AURORA-SWRASTER).
|
|
3
|
+
*
|
|
4
|
+
* The headless / software-raster substrate cannot run the live WebGL field, but
|
|
5
|
+
* speedtest's CI/witness harness must still certify text-on-aurora AA contrast
|
|
6
|
+
* floors HEADLESS (no `--use-gl=angle`). The flat `paletteToCssGradient`
|
|
7
|
+
* placeholder (`color.ts`) is a deliberate "visually-adjacent approximation" — a
|
|
8
|
+
* gamma-sRGB-stop `linear-gradient(135deg, …)` band whose MEAN luminance and
|
|
9
|
+
* SPATIAL distribution both diverge from the shader's nuclei-field composite, so a
|
|
10
|
+
* contrast capture against it certifies the WRONG floor. This module REPLACES it,
|
|
11
|
+
* in the software-raster / capture substrate, with a FIELD-SAMPLED ground derived
|
|
12
|
+
* from the SAME inputs the shader uploads (the palette stops + the nuclei field),
|
|
13
|
+
* matching the composite's mean + per-quadrant luminance within the certify band.
|
|
14
|
+
*
|
|
15
|
+
* THE FIELD MATH IS MIRRORED CPU-SIDE, NOT RE-INVENTED. `sampleAuroraField`
|
|
16
|
+
* reproduces the shader's STATIC (t=0) composite — `composition.glsl.ts`'s
|
|
17
|
+
* `nucleiField` (the softmax-Gaussian over the nuclei → paletteId + valueMod) +
|
|
18
|
+
* `samplePalette` (the linear-sRGB LUT lerp of the CPU-baked endpoints) + the
|
|
19
|
+
* `valueVariance` modulation + the Khronos PBR-Neutral tonemap (`tonemap.glsl.ts`'s
|
|
20
|
+
* `aces()`) + the mandatory `linearToSrgb` OETF (`proof:aurora-space-gamma`). The
|
|
21
|
+
* palette LUT is `oklchToLinear` (the SAME value.js Ottosson bake `flattenPalette`
|
|
22
|
+
* feeds the GPU) — ONE color source, no re-implemented OKLCh math. The
|
|
23
|
+
* between-endpoint interpolation runs in LINEAR (the linear-baked endpoints the
|
|
24
|
+
* shader's LUT also reads); the shader's OKLCh between-stop refinement is a
|
|
25
|
+
* sub-perceptual luminance delta on adjacent stops, well inside the certify band.
|
|
26
|
+
*
|
|
27
|
+
* THE GROUND IS A ONE-SHOT 2D-CANVAS RASTER (the "CSS/2D fallback" the brief names
|
|
28
|
+
* verbatim — option b, the higher-faithfulness path). A low-res `<canvas>` 2D
|
|
29
|
+
* context paints the downsampled nuclei-field raster (each texel its `sampleAuroraField`
|
|
30
|
+
* color), exported ONCE as a `data:` URI and CSS-upscaled (`image-rendering` smooth →
|
|
31
|
+
* bilinear, which preserves the per-quadrant MEAN luminance) — so the painted ground
|
|
32
|
+
* reproduces the composite's SPATIAL luminance, not a partial-alpha approximation. It
|
|
33
|
+
* paints once at mount and parks (no rAF, zero ongoing GPU). When no `document` is
|
|
34
|
+
* available (SSR / happy-dom) it degrades to a deterministic pure-CSS layered
|
|
35
|
+
* `radial-gradient` stack (zero canvas) — the same field samples, the SSR-safe form.
|
|
36
|
+
* The luminance metrics (mean + the 4-quadrant relative luminance) are returned
|
|
37
|
+
* alongside so the gate / π can MEASURE the faithfulness claim rather than assert it.
|
|
38
|
+
*/
|
|
39
|
+
import type { AuroraConfig, AuroraNucleus } from "../constants/presets";
|
|
40
|
+
/** A linear-sRGB triple in [0,1]. */
|
|
41
|
+
type Lin = [number, number, number];
|
|
42
|
+
/** Linear-sRGB relative luminance (Rec.709 / WCAG), the contrast-floor metric. */
|
|
43
|
+
export declare function relativeLuminance([r, g, b]: Lin): number;
|
|
44
|
+
/**
|
|
45
|
+
* The static (t=0) nuclei field at normalized `(x, y)` — mirrors
|
|
46
|
+
* `composition.glsl.ts`'s `nucleiField`. At t=0 the drift orbit term vanishes
|
|
47
|
+
* (cos 0 / sin 0 → the nucleus sits at its authored position), so the field is a
|
|
48
|
+
* pure softmax-Gaussian over the static nuclei: `w_i = exp(-β·d2_i/r_i²)`,
|
|
49
|
+
* `paletteId = Σ(w_i·bias_i)/Σw_i`, `valueMod = Σ(w_i·vbias_i)/Σw_i`. The
|
|
50
|
+
* anisotropic-ellipse local-frame rotation (elongation + angle) is reproduced.
|
|
51
|
+
*
|
|
52
|
+
* NOTE the Y convention: the shader flips Y at the uniform boundary
|
|
53
|
+
* (`uniformBridge.flipY`) so a CSS-top-origin `nucleus.y` becomes a shader
|
|
54
|
+
* bottom-origin position, AND the fragment samples `vUv` (bottom-origin). Sampling
|
|
55
|
+
* here in CSS-top-origin against the AUTHORED (un-flipped) positions reproduces the
|
|
56
|
+
* same field in the SAME visual frame — the two Y flips cancel, so the emitted CSS
|
|
57
|
+
* ground (top-origin) matches the rendered surface visually.
|
|
58
|
+
*/
|
|
59
|
+
export declare function nucleiFieldStatic(nuclei: readonly AuroraNucleus[], softmaxBeta: number, x: number, y: number): {
|
|
60
|
+
paletteId: number;
|
|
61
|
+
valueMod: number;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Sample the aurora's STATIC composite at normalized `(x, y)` → a gamma-sRGB
|
|
65
|
+
* `[r,g,b]` in [0,1]. The full CPU mirror of the shader main() output transfer:
|
|
66
|
+
* field → linear palette LUT → valueVariance modulation → PBR-Neutral tonemap →
|
|
67
|
+
* the `clamp(col*0.985 + 0.008)` toe → the `linearToSrgb` OETF. The drift / breath
|
|
68
|
+
* / cursor / medium-texture terms are STATIC (t=0, no cursor, the atmospheric
|
|
69
|
+
* smooth pole) — the luminance ground the certify reads, not the live animation.
|
|
70
|
+
*/
|
|
71
|
+
export declare function sampleAuroraField(config: AuroraConfig, x: number, y: number): Lin;
|
|
72
|
+
/** The luminance metrics the gate / π MEASURES the faithfulness against. */
|
|
73
|
+
export interface AuroraGroundMetrics {
|
|
74
|
+
/** Mean relative luminance over the sample grid (gamma → relative-luminance). */
|
|
75
|
+
mean: number;
|
|
76
|
+
/** The 4-quadrant mean relative luminance, [topLeft, topRight, bottomLeft, bottomRight]. */
|
|
77
|
+
quadrants: [number, number, number, number];
|
|
78
|
+
}
|
|
79
|
+
export interface AuroraFallbackGroundOptions {
|
|
80
|
+
/** Field-sample grid resolution per axis (default 8 → an 8×8 = 64-sample ground). */
|
|
81
|
+
grid?: number;
|
|
82
|
+
}
|
|
83
|
+
export interface AuroraFallbackGround {
|
|
84
|
+
/** The CSS `background-image` value — a layered radial-gradient nuclei-glow field. */
|
|
85
|
+
backgroundImage: string;
|
|
86
|
+
/** The CSS `background-color` base fill (the field-mean color — the luminance anchor). */
|
|
87
|
+
backgroundColor: string;
|
|
88
|
+
/** The measured luminance metrics (mean + per-quadrant) for the certify band. */
|
|
89
|
+
metrics: AuroraGroundMetrics;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Build the luminance-faithful CSS fallback ground for an aurora config.
|
|
93
|
+
*
|
|
94
|
+
* Samples the static field at a `grid × grid` lattice (the SAME `sampleAuroraField`
|
|
95
|
+
* the gate / π measures), emits a stack of soft `radial-gradient` layers — one per
|
|
96
|
+
* sample cell, centred on the cell, fading to transparent at ~the cell radius — over
|
|
97
|
+
* a base fill at the FIELD-MEAN color. The base fill anchors the global luminance;
|
|
98
|
+
* the radial layers paint the spatial nuclei-glow distribution, so the ground reads
|
|
99
|
+
* as the same atmosphere the composite paints, not a flat diagonal band. Pure CSS,
|
|
100
|
+
* zero canvas, deterministic from the config (palette + nuclei) — a re-run with the
|
|
101
|
+
* same config reproduces it byte-for-byte.
|
|
102
|
+
*
|
|
103
|
+
* The returned `metrics` are computed over the SAME sample lattice the layers paint,
|
|
104
|
+
* so the gate's certify-band assertion measures the ground the consumer actually
|
|
105
|
+
* sees (not a separate idealization).
|
|
106
|
+
*/
|
|
107
|
+
export declare function auroraFallbackGround(config: AuroraConfig, options?: AuroraFallbackGroundOptions): AuroraFallbackGround;
|
|
108
|
+
export {};
|
|
@@ -60,6 +60,19 @@ export interface DeriveAuroraOptions {
|
|
|
60
60
|
* fold that makes the oil/oil-pastel mediums read as mixed paint. Default 0.
|
|
61
61
|
*/
|
|
62
62
|
temperatureShift?: number;
|
|
63
|
+
/**
|
|
64
|
+
* BC.W-VIZ-AURORA (A7) — the additive DERIVE-path hue-EXCLUSION axis (the
|
|
65
|
+
* speedtest-AX cross-repo fold). Named OKLCh hue bands (each `[startDeg, endDeg]`,
|
|
66
|
+
* wrap-around supported via `start > end`) that EVERY derived stop's hue must fall
|
|
67
|
+
* OUTSIDE. The mechanism that makes "teal-on-navy is GONE" enforceable in the DERIVE
|
|
68
|
+
* path, not just the static default — a consumer deriving a palette FROM any seed
|
|
69
|
+
* can never re-introduce a purged band (e.g. `avoidHues: [[170, 200]]` excludes the
|
|
70
|
+
* teal arc by construction). The exclusion RE-ROUTES the walked hue to the nearest
|
|
71
|
+
* band EDGE (preserving L/C — no chroma flatten); it is NOT a post-hoc desaturate.
|
|
72
|
+
* Additive + default-unset → byte-identical derive (the `WarpMode`-additive-widen
|
|
73
|
+
* precedent: `proof:aurora-atoms-roundtrip` stays GREEN by construction).
|
|
74
|
+
*/
|
|
75
|
+
avoidHues?: readonly (readonly [number, number])[];
|
|
63
76
|
}
|
|
64
77
|
/**
|
|
65
78
|
* Seed ONE color into a harmonious, gamut-safe N-stop aurora palette.
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import type { UniformLocations } from "./glSetup";
|
|
12
12
|
import { type CursorState } from "./cursorModel";
|
|
13
13
|
import type { AuroraConfig } from "../constants/presets";
|
|
14
|
+
import type { UsePointerVelocityField } from "../../../../composables/motion/usePointerVelocityField";
|
|
14
15
|
export interface FrameLoopDeps {
|
|
15
16
|
gl: WebGL2RenderingContext;
|
|
16
17
|
prog: WebGLProgram;
|
|
@@ -20,6 +21,14 @@ export interface FrameLoopDeps {
|
|
|
20
21
|
getConfig: () => AuroraConfig;
|
|
21
22
|
/** Reduced-motion intent — parks the loop after one static frame. */
|
|
22
23
|
getReducedMotion: () => boolean;
|
|
24
|
+
/**
|
|
25
|
+
* BC.W-VIZ-AURORA (T5) — the shared viz-pointer-physics field (BB.B4). FED
|
|
26
|
+
* `tick(deltaMs)` from THIS frame callback (the one-loop discipline — the field owns
|
|
27
|
+
* NO own rAF); the renderer reads `acceleration` for the iOS-27 gel snap-back. The
|
|
28
|
+
* existing cursorModel velocity/burst stays the byte-faithful baseline; the accel
|
|
29
|
+
* term is the additive fold.
|
|
30
|
+
*/
|
|
31
|
+
pointerField: UsePointerVelocityField;
|
|
23
32
|
}
|
|
24
33
|
export interface FrameLoop {
|
|
25
34
|
/** Advance the cursor easing THEN draw — the per-frame step. */
|
|
@@ -70,8 +70,27 @@ export interface AuroraRuntimeOptions {
|
|
|
70
70
|
* NOTE: this is the `useAurora` Vue-wrapper contract surface. The imperative
|
|
71
71
|
* `createAurora(...)` runtime throws on eager init failure and — for
|
|
72
72
|
* `instance.arm()` on the deferred path — rethrows from `arm()`.
|
|
73
|
+
*
|
|
74
|
+
* BB.W-AURORA-SWRASTER — a SOFTWARE-RASTER fall is NOT a contract violation:
|
|
75
|
+
* it never reaches `onInitError`. The wedge catch (see {@link createAurora})
|
|
76
|
+
* recognizes the software-raster signal at arm time, leaves the canvas
|
|
77
|
+
* un-armed (the placeholder stays the surface), and returns CLEANLY — so a
|
|
78
|
+
* consumer who pins `mode:"capture"`/`mode:"webgl"` under SwiftShader never
|
|
79
|
+
* has to wire `onInitError` to avoid the hang. The handler is preserved for
|
|
80
|
+
* GENUINE violations (a malformed shader, an OOM, a real link failure).
|
|
73
81
|
*/
|
|
74
82
|
onInitError?: (err: Error) => void;
|
|
83
|
+
/**
|
|
84
|
+
* BB.W-AURORA-SWRASTER — opt OUT of the runtime software-raster wedge catch.
|
|
85
|
+
* Default `false`: the wedge catch is the safe default — `createAurora`
|
|
86
|
+
* recognizes a software renderer at arm time and falls cleanly to the
|
|
87
|
+
* placeholder rather than arming the page-wedging live GL layer. `true` (the
|
|
88
|
+
* named, recorded escape for a deterministic test that ACCEPTS the cost)
|
|
89
|
+
* arms WebGL even under a detected software renderer. Mirrors the
|
|
90
|
+
* `resolveRenderMode` escape of the same name — ONE consumer-facing flag,
|
|
91
|
+
* threaded through both seams.
|
|
92
|
+
*/
|
|
93
|
+
forceWebGLUnderSoftwareRaster?: boolean;
|
|
75
94
|
}
|
|
76
95
|
/**
|
|
77
96
|
* The concrete `createAurora` return shape. It IS an {@link AuroraInstance}
|
|
@@ -83,6 +102,18 @@ export interface AuroraRuntimeOptions {
|
|
|
83
102
|
export interface AuroraRuntime extends Omit<AuroraInstance, "pause" | "resume"> {
|
|
84
103
|
pause(reason?: SuspendReason): void;
|
|
85
104
|
resume(reason?: SuspendReason): void;
|
|
105
|
+
/**
|
|
106
|
+
* BC.W-VIZ-AURORA (T2) — the device-resolved arm PROMISE. On the WebGPU
|
|
107
|
+
* backend `renderAt`/`arm` are NO-OPS until `armAsync()` resolves the async
|
|
108
|
+
* adapter→device→configure→setup prelude (`useGpuSubstrate.armAsync` tries
|
|
109
|
+
* WebGPU then falls to the WebGL2 net). A CAPTURE consumer (`renderAt(t)` +
|
|
110
|
+
* `toDataURL`) MUST `await armAsync()` before the first `renderAt` — the
|
|
111
|
+
* synchronous `arm()` cannot guarantee the WebGPU device is present, so a
|
|
112
|
+
* synchronous `renderAt` right after `createAurora(…,{mode:"capture"})` paints
|
|
113
|
+
* a BLANK frame (the dead-preview defect). Resolves once the backend is armed;
|
|
114
|
+
* the WebGL2 fallback resolves immediately. Idempotent + safe post-dispose.
|
|
115
|
+
*/
|
|
116
|
+
armAsync(): Promise<void>;
|
|
86
117
|
/**
|
|
87
118
|
* AW.W8.1 — feed a pointer delta into the velocity-reactive flow (a fast flick →
|
|
88
119
|
* a transient swirl-burst). The PRM early-out lives here: the injection is
|
|
@@ -27,6 +27,7 @@ export declare const MEDIUM_ID: {
|
|
|
27
27
|
readonly crayon: 4;
|
|
28
28
|
readonly vangogh: 5;
|
|
29
29
|
readonly "oil-pastel": 6;
|
|
30
|
+
readonly kuwahara: 7;
|
|
30
31
|
};
|
|
31
32
|
export declare const HUE_PATH_ID: {
|
|
32
33
|
readonly shorter: 0;
|
|
@@ -50,6 +51,7 @@ export declare const WARP_ID: {
|
|
|
50
51
|
readonly fbm: 0;
|
|
51
52
|
readonly cellular: 1;
|
|
52
53
|
readonly hybrid: 2;
|
|
54
|
+
readonly curl: 3;
|
|
53
55
|
};
|
|
54
56
|
export declare const STROKE_MODE_ID: {
|
|
55
57
|
readonly oil: 0;
|
|
@@ -81,7 +83,9 @@ export declare function resolveStrokeModeId(cfg: AuroraConfig): number;
|
|
|
81
83
|
* `oil-pastel`, `crayon`) FORCE the structure-tensor orientation regardless of the
|
|
82
84
|
* config's `strokeOrient` field — their marks must hug the color zones (the
|
|
83
85
|
* congruent-to-real-works contract). Every other medium honors the config's
|
|
84
|
-
* `strokeOrient` (default `"flow"`).
|
|
86
|
+
* `strokeOrient` (default `"flow"`). BB.W-AUR-KUWAHARA — `kuwahara` ALSO forces
|
|
87
|
+
* tensor: the anisotropic Kuwahara kernel is squeezed along the structure-tensor
|
|
88
|
+
* minor eigenvector, so the orientation source must be the tensor field.
|
|
85
89
|
*/
|
|
86
90
|
export declare function resolveStrokeOrientId(cfg: AuroraConfig): number;
|
|
87
91
|
/**
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aurora WGSL uniform bridge — the typed-struct SOURCE OF TRUTH for the WebGPU primary.
|
|
3
|
+
*
|
|
4
|
+
* The WGSL `Uniforms` struct (`aurora.wgsl.ts`) and the JS `ArrayBuffer` write offsets
|
|
5
|
+
* are generated from the SAME layout table here, so a std140-vs-WGSL alignment mismatch
|
|
6
|
+
* (the parity-ΔE-blowout trap the wave's §Triumvirate names) is structurally impossible:
|
|
7
|
+
* the field order + the byte offsets are ONE declaration.
|
|
8
|
+
*
|
|
9
|
+
* The struct packs every scalar into a vec4 lane + every per-nucleus row / palette stop
|
|
10
|
+
* into a vec4 so the array stride is the natural 16 bytes (no std140 16-byte-array-stride
|
|
11
|
+
* surprise). The byte layout (all offsets in bytes, std140-compatible — vec4 align 16):
|
|
12
|
+
*
|
|
13
|
+
* scalars0 : vec4<f32> off 0 (uTime, uSoftmaxBeta, uValueVariance, uWarpAmount)
|
|
14
|
+
* scalars1 : vec4<f32> off 16 (uWarpScale, uWarpDrift, uSaturation, uPaperGrain)
|
|
15
|
+
* scalars2 : vec4<f32> off 32 (uAlpha, uNucleiDrift, uPaletteDrift, uBreathDepth)
|
|
16
|
+
* scalars3 : vec4<f32> off 48 (uBreathPeriod, uCursorStrength, uCursorRadius, _)
|
|
17
|
+
* cursor : vec4<f32> off 64 (uCursor.x, uCursor.y, _, _)
|
|
18
|
+
* ints0 : vec4<i32> off 80 (uStopCount, uNucleiCount, uWarpMode, uNoiseOctaves)
|
|
19
|
+
* ints1 : vec4<i32> off 96 (uMedium, uHuePath, _, _)
|
|
20
|
+
* palette : array<vec4<f32>, 8> off 112 (rgb linear-sRGB stop + pad)
|
|
21
|
+
* nuc0 : array<vec4<f32>, 6> off 240 (pos.x, pos.y, radius, paletteBias)
|
|
22
|
+
* nuc1 : array<vec4<f32>, 6> off 336 (valueBias, driftRadius, driftPhase, elong)
|
|
23
|
+
* nuc2 : array<vec4<f32>, 6> off 432 (angle, _, _, _)
|
|
24
|
+
* scalars4 : vec4<f32> off 528 (uStrokeAmount, uStrokeScale, uStrokeAnisotropy, uCanvasGrain)
|
|
25
|
+
* scalars5 : vec4<f32> off 544 (uWetEdge, uGranulation, uBrokenColor, uKuwaharaQ)
|
|
26
|
+
* kuwahara : vec4<f32> off 560 (uKuwaharaRadius, uKuwaharaSectors, _, _)
|
|
27
|
+
* total : 576 bytes (16-aligned)
|
|
28
|
+
*
|
|
29
|
+
* BC.W-VIZ-AURORA (T4) — the painterly-medium scalar lanes (scalars4/scalars5/kuwahara)
|
|
30
|
+
* are APPENDED after the arrays, so EVERY pre-existing offset is byte-identical and the
|
|
31
|
+
* smooth-default parity capture is byte-equivalent (these lanes pack 0 on a smooth config).
|
|
32
|
+
* The WGSL `Uniforms` struct (`aurora.wgsl.ts`) carries the SAME three trailing lanes —
|
|
33
|
+
* the typed-struct lockstep: a one-sided add reds the parity-ΔE.
|
|
34
|
+
*
|
|
35
|
+
* Y-origin: config authoring is CSS-top-origin (0 = top); the bridge flips Y at the
|
|
36
|
+
* uniform boundary (`flipY`), exactly as the GLSL `uniformBridge` does.
|
|
37
|
+
*/
|
|
38
|
+
import { type AuroraConfig } from "../constants/presets";
|
|
39
|
+
import type { CursorState } from "./cursorModel";
|
|
40
|
+
/** The total uniform-buffer byte size (16-aligned). */
|
|
41
|
+
export declare const AURORA_WGPU_UNIFORM_BYTES = 576;
|
|
42
|
+
/**
|
|
43
|
+
* The packed scratch buffer + the dual ArrayBuffer views. A slider drag refills this
|
|
44
|
+
* in place (no per-frame allocation) — mirroring the GLSL bridge's pre-allocated
|
|
45
|
+
* upload buffers. The Float32 view writes the float lanes; the Int32 view writes the
|
|
46
|
+
* two int lanes (a WGSL `i32` shares the buffer at the 16-byte-aligned offsets).
|
|
47
|
+
*/
|
|
48
|
+
export interface AuroraWGPUUniformScratch {
|
|
49
|
+
buffer: ArrayBuffer;
|
|
50
|
+
f32: Float32Array;
|
|
51
|
+
i32: Int32Array;
|
|
52
|
+
paletteScratch: Float32Array;
|
|
53
|
+
}
|
|
54
|
+
export declare function createAuroraWGPUUniformScratch(): AuroraWGPUUniformScratch;
|
|
55
|
+
/**
|
|
56
|
+
* Pack an {@link AuroraConfig} + the live cursor + the frame time into the uniform
|
|
57
|
+
* scratch buffer. The byte layout mirrors the WGSL `Uniforms` struct EXACTLY. Returns
|
|
58
|
+
* the same scratch (the caller `queue.writeBuffer`s `scratch.buffer`).
|
|
59
|
+
*/
|
|
60
|
+
export declare function packAuroraWGPUUniforms(scratch: AuroraWGPUUniformScratch, cfg: AuroraConfig, cursor: CursorState, timeSec: number): AuroraWGPUUniformScratch;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aurora WGSL setup seam — the WebGPU twin of `glSetup` + `frameLoop`.
|
|
3
|
+
*
|
|
4
|
+
* `createAuroraWGPUSetup` returns a `setupWGPU(device, context, format)` callback the
|
|
5
|
+
* `useGpuSubstrate` picker invokes on the async arm (AND on every device-restore). It
|
|
6
|
+
* builds the render pipeline (the `aurora.wgsl` full-screen-triangle pass), the uniform
|
|
7
|
+
* buffer (the `uniformBridgeWGPU` typed-struct source-of-truth), and the bind group, then
|
|
8
|
+
* returns the substrate's per-frame hooks (`frame`/`shouldContinue`/`resize`/`time`/
|
|
9
|
+
* `teardown`).
|
|
10
|
+
*
|
|
11
|
+
* The render-demand gate + the cursor-advance + the DPR resize mirror the WebGL2
|
|
12
|
+
* `frameLoop`/`runtime.resize` exactly — the loop is substrate-AGNOSTIC, so the same
|
|
13
|
+
* `getConfig`/`getReducedMotion`/`cursor` closures drive both backends.
|
|
14
|
+
*/
|
|
15
|
+
import type { WebGPUCanvasFrame } from "../../../../composables/glass/webgpu/useWebGPUCanvas";
|
|
16
|
+
import { type CursorState } from "./cursorModel";
|
|
17
|
+
import type { AuroraConfig } from "../constants/presets";
|
|
18
|
+
import type { UsePointerVelocityField } from "../../../../composables/motion/usePointerVelocityField";
|
|
19
|
+
export interface AuroraWGPUSetupDeps {
|
|
20
|
+
canvas: HTMLCanvasElement;
|
|
21
|
+
cursor: CursorState;
|
|
22
|
+
getConfig: () => AuroraConfig;
|
|
23
|
+
getReducedMotion: () => boolean;
|
|
24
|
+
/**
|
|
25
|
+
* BC.W-VIZ-AURORA (T5) — the shared viz-pointer-physics field (BB.B4). FED
|
|
26
|
+
* `tick(deltaMs)` from the WGPU frame callback (the SAME field instance the WebGL2
|
|
27
|
+
* loop feeds — one source, no own rAF); the renderer reads `acceleration` for the
|
|
28
|
+
* iOS-27 gel snap-back.
|
|
29
|
+
*/
|
|
30
|
+
pointerField: UsePointerVelocityField;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Build the aurora `setupWGPU(device, context, format)` callback. Closes over the
|
|
34
|
+
* aurora-specific state (cursor/config/reduced-motion) the runtime owns — identical to
|
|
35
|
+
* the closures the WebGL2 `setup` threads.
|
|
36
|
+
*/
|
|
37
|
+
export declare function createAuroraWGPUSetup(deps: AuroraWGPUSetupDeps): (device: GPUDevice, context: GPUCanvasContext, format: GPUTextureFormat) => WebGPUCanvasFrame;
|