@mkbabb/glass-ui 3.13.0 → 4.0.1
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-CW7a0m8M.js +253 -0
- package/dist/{CommandShortcut-RowNEO6i.js → CommandShortcut-DvZNQ_HF.js} +58 -53
- package/dist/ConfiguratorRow-BR4l-ixA.js +143 -0
- package/dist/{ContextMenuContent-CT3AS1WX.js → ContextMenuContent-uWnVxDab.js} +1 -1
- package/dist/{ContextMenuSubContent-BQmxTAdw.js → ContextMenuSubContent-xol4sD2q.js} +32 -37
- package/dist/{DataTable-BCddn3T3.js → DataTable-CuKwF7wr.js} +99 -97
- package/dist/DialogContent-DcKK8k9i.js +103 -0
- package/dist/{DialogFooter-Blu4t7tJ.js → DialogFooter-BZNX5aVr.js} +3 -3
- package/dist/FadingScroll-DI6hQhT9.js +76 -0
- package/dist/{HoverCardContent-Csywg3YF.js → HoverCardContent-b2uaAMRR.js} +1 -1
- package/dist/{HoverPopover-CISOJQuZ.js → HoverPopover-CbqbNwgU.js} +2 -2
- package/dist/IconChip-BTD-nay5.js +55 -0
- package/dist/{IconTooltip-DPzE09X9.js → IconTooltip-Bl8gFZ8d.js} +1 -1
- package/dist/{Input-DWQQIOC4.js → Input-h9v5LeXf.js} +1 -1
- package/dist/{MetricBadge-C9QMz1KT.js → MetricBadge-RHdBP72w.js} +1 -1
- package/dist/Notification-VUwexFUf.js +43 -0
- package/dist/NumberFieldContent-Cq7EzX-U.js +138 -0
- package/dist/PopoverContent-DL7E6vJP.js +127 -0
- package/dist/{Progress-DwlUKGbr.js → Progress-DctG61iZ.js} +98 -78
- package/dist/{ScrollingText-DfFrwSph.js → ScrollingText-yOpBzFYq.js} +2 -2
- package/dist/{SelectScrollDownButton-CiDUxfEj.js → SelectScrollDownButton-CrA8F0iV.js} +35 -20
- package/dist/{Switch-CsIuYP_e.js → Switch-CwYNf8bo.js} +1 -1
- package/dist/Toaster-Bw4xR8xV.js +274 -0
- package/dist/{ToggleGroupItem-D_AHlRw9.js → ToggleGroupItem-pEM9vIhs.js} +50 -37
- package/dist/{TooltipProvider-B3MkB_8P.js → TooltipProvider-rzvnXz60.js} +1 -1
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +16 -8
- package/dist/api/types-extra.d.ts +6 -0
- package/dist/api.js +2 -2
- package/dist/aurora.js +888 -230
- package/dist/badge.js +1 -1
- package/dist/border-progress.d.ts +1 -0
- package/dist/border-progress.js +106 -0
- package/dist/button-DYCUa-tH.js +126 -0
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -2
- package/dist/card.js +2 -2
- package/dist/carousel.d.ts +1 -1
- package/dist/carousel.js +90 -151
- package/dist/collapsible.js +1 -1
- package/dist/color-swatch.d.ts +1 -0
- package/dist/color-swatch.js +47 -0
- package/dist/color.js +1 -1
- package/dist/command.js +1 -1
- package/dist/compile-CQEFRTmx.js +19 -0
- 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/runtime.d.ts +19 -0
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +51 -0
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +29 -0
- package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +30 -2
- package/dist/components/custom/aurora/constants/renderMode.d.ts +63 -10
- 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 +3 -2
- package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
- package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +22 -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/color-swatch/ColorSwatch.vue.d.ts +22 -0
- package/dist/components/custom/color-swatch/index.d.ts +1 -0
- package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +11 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
- package/dist/components/custom/concentric/composables/ringField.d.ts +44 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +13 -0
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
- package/dist/components/custom/concentric/constants.d.ts +43 -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/configurator/Configurator.vue.d.ts +19 -8
- package/dist/components/custom/constellation/Constellation.vue.d.ts +18 -206
- package/dist/components/custom/constellation/composables/useConstellation.d.ts +26 -0
- package/dist/components/custom/constellation/constellationField.d.ts +2 -369
- package/dist/components/custom/constellation/constellationTypes.d.ts +369 -0
- package/dist/components/custom/constellation/index.d.ts +1 -1
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +13 -4
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
- package/dist/components/custom/dock/DockRail.vue.d.ts +17 -16
- package/dist/components/custom/dock/DockSection.vue.d.ts +69 -0
- package/dist/components/custom/dock/DockSeparator.vue.d.ts +49 -1
- package/dist/components/custom/dock/DockTabButton.vue.d.ts +5 -5
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +75 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
- package/dist/components/custom/dock/constants.d.ts +35 -0
- package/dist/components/custom/dock/index.d.ts +2 -0
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +38 -0
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +41 -0
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +24 -0
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +34 -0
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -0
- package/dist/components/custom/dot-flow-field/constants.d.ts +48 -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 +20 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.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 +75 -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 +10 -0
- package/dist/components/custom/fading-scroll/FadingScroll.vue.d.ts +25 -0
- package/dist/components/custom/fading-scroll/composables/useFadingScroll.d.ts +31 -0
- package/dist/components/custom/fading-scroll/constants.d.ts +19 -0
- package/dist/components/custom/fading-scroll/index.d.ts +2 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +19 -2
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +39 -0
- package/dist/components/custom/fourier-field/constants.d.ts +7 -0
- package/dist/components/custom/fourier-field/index.d.ts +1 -1
- package/dist/components/custom/fourier-field/math.d.ts +17 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +9 -1
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +4 -2
- package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +29 -12
- package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
- package/dist/components/custom/goo-blob/constants.d.ts +6 -1
- package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
- package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
- package/dist/components/custom/handmark/brush.d.ts +269 -0
- package/dist/components/custom/handmark/composables/useHandMark.d.ts +89 -0
- package/dist/components/custom/handmark/constants.d.ts +39 -0
- package/dist/components/custom/handmark/freehand.d.ts +69 -0
- package/dist/components/custom/handmark/geometry.d.ts +52 -0
- package/dist/components/custom/handmark/index.d.ts +27 -0
- package/dist/components/custom/handmark/ink.d.ts +11 -0
- package/dist/components/custom/handmark/texture.d.ts +39 -0
- package/dist/components/custom/handmark/types.d.ts +62 -0
- package/dist/components/custom/icon-chip/IconChip.vue.d.ts +4 -0
- package/dist/components/custom/icon-chip/index.d.ts +2 -0
- package/dist/components/custom/icon-chip/types.d.ts +82 -0
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +17 -2
- package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +39 -0
- package/dist/components/custom/pager-dots/index.d.ts +2 -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/tabs/SegmentedTabs.vue.d.ts +29 -24
- package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
- package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +30 -21
- package/dist/components/custom/tabs/constants.d.ts +9 -3
- package/dist/components/custom/tabs/index.d.ts +1 -1
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +15 -1
- package/dist/components/ui/_shared/index.d.ts +2 -0
- package/dist/components/ui/_shared/menuItemVariants.d.ts +19 -0
- package/dist/components/ui/_shared/useSurfaceAxis.d.ts +41 -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 +34 -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 +2 -0
- 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/carousel/index.d.ts +0 -1
- package/dist/components/ui/command/Command.vue.d.ts +4 -1
- package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -3
- package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts +12 -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/focus-scope/FocusScope.vue.d.ts +20 -0
- package/dist/components/ui/focus-scope/index.d.ts +2 -0
- package/dist/components/ui/index.d.ts +1 -1
- package/dist/components/ui/popover/PopoverContent.vue.d.ts +3 -0
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
- package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +14 -3
- package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
- package/dist/components/ui/select/SelectTrigger.vue.d.ts +27 -4
- package/dist/components/ui/sheet/SheetContent.vue.d.ts +6 -0
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/skeleton/Skeleton.vue.d.ts +3 -0
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
- 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/composables/dark/index.d.ts +1 -1
- package/dist/composables/dark/useGlobalDark.d.ts +23 -1
- 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/vSpecular.d.ts +2 -0
- package/dist/composables/glass/webgl/shaders/flow.glsl.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 +54 -0
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +84 -0
- package/dist/composables/motion/core/index.d.ts +1 -0
- package/dist/composables/motion/index.d.ts +4 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +59 -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/useViewTransition.d.ts +36 -1
- package/dist/concentric.d.ts +1 -0
- package/dist/concentric.js +562 -0
- package/dist/configurator.js +3 -2
- package/dist/confirm-dialog.js +22 -24
- package/dist/constellation.js +93 -95
- package/dist/context-menu.js +3 -3
- package/dist/controls.js +10 -4
- package/dist/createCanvasLifecycle-CHD5XrDW.js +82 -0
- package/dist/dark.d.ts +1 -1
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/dialog.js +2 -2
- package/dist/dock.js +738 -442
- package/dist/{dockContext-BegmJVmx.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 +604 -0
- package/dist/drawer.d.ts +1 -0
- package/dist/drawer.js +380 -0
- package/dist/{dropdown-menu-DzkkyBwX.js → dropdown-menu-CofSZuk8.js} +14 -15
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.d.ts +1 -0
- package/dist/easing.js +463 -0
- package/dist/expandable-container.js +45 -38
- package/dist/fading-scroll.d.ts +1 -0
- package/dist/fading-scroll.js +2 -0
- package/dist/focus-scope.d.ts +1 -0
- package/dist/focus-scope.js +23 -0
- package/dist/forms.js +7 -7
- package/dist/fourier-field.js +135 -122
- package/dist/fourier-math.js +2 -2
- package/dist/glass-panel.js +39 -36
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +154 -362
- package/dist/goo-blob.js +838 -227
- package/dist/handmark.d.ts +1 -0
- package/dist/handmark.js +707 -0
- 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.d.ts +1 -0
- package/dist/icon-chip.js +2 -0
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +6 -6
- package/dist/{math-U6-RrLmV.js → math-BINYmg5z.js} +11 -3
- package/dist/{menuItemVariants-DPiEarb0.js → menuItemVariants-D8VNHq22.js} +10 -4
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +25 -22
- package/dist/metric-stack.js +4 -8
- package/dist/motion-core.js +36 -35
- package/dist/motion-curves.js +1 -1
- package/dist/motion.js +157 -55
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.d.ts +1 -0
- package/dist/pager-dots.js +91 -0
- package/dist/paper-backdrop.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/{presets-BKVyQfbt.js → presets-BW2b-fr1.js} +14 -1
- package/dist/{compile-B7NGOBcP.js → procedural-color.glsl-CIFsJhwI.js} +1 -155
- package/dist/procedural-color.wgsl-CToRHugY.js +224 -0
- package/dist/progress.js +1 -1
- package/dist/pulse.js +1 -1
- package/dist/reactive.js +2 -2
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +10 -12
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/sheet-tZMg0E0w.js +218 -0
- package/dist/sheet.js +1 -1
- package/dist/{slider-B-JP2JlI.js → slider-DVb4HXU-.js} +7 -7
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +3 -3
- package/dist/spa-view.d.ts +1 -0
- package/dist/spa-view.js +46 -0
- package/dist/styles/animations.css +40 -31
- package/dist/styles/border-progress.css +109 -0
- package/dist/styles/cards.css +76 -0
- package/dist/styles/components.css +1 -1
- package/dist/styles/configurator.css +35 -0
- package/dist/styles/critical-partition.mjs +140 -0
- package/dist/styles/critical.css +12 -0
- package/dist/styles/deferred.css +31 -0
- package/dist/styles/dock/density.css +64 -0
- package/dist/styles/dock/layers.css +54 -30
- package/dist/styles/dock/morph.css +124 -7
- package/dist/styles/dock/overflow.css +31 -2
- package/dist/styles/dock/rail-extend.css +168 -71
- package/dist/styles/dock/section.css +59 -0
- package/dist/styles/dock/shell.css +83 -16
- package/dist/styles/dock-controls/icon-button.css +11 -1
- package/dist/styles/dock-controls/tab-button.css +24 -83
- package/dist/styles/dock-controls/triggers.css +7 -0
- package/dist/styles/dock.css +38 -3
- package/dist/styles/drawer.css +127 -35
- package/dist/styles/feedback-tone.css +104 -0
- package/dist/styles/glass/deep.css +44 -0
- package/dist/styles/glass/ladder.css +154 -52
- package/dist/styles/glass/material.css +78 -15
- package/dist/styles/glass/reveal.css +136 -0
- package/dist/styles/glass/rim.css +100 -0
- package/dist/styles/glass/surface-axis.css +113 -0
- package/dist/styles/glass/surfaces.css +189 -15
- package/dist/styles/glass-refract.css +96 -44
- package/dist/styles/glass-specular-track.css +7 -0
- package/dist/styles/glass.css +8 -2
- package/dist/styles/hover-popover.css +7 -6
- package/dist/styles/icon-chip.css +211 -0
- package/dist/styles/index.css +78 -4
- package/dist/styles/instrument-chassis.css +107 -2
- package/dist/styles/menu.css +127 -0
- package/dist/styles/scroll-choreography.css +300 -0
- package/dist/styles/segmented-tabs.css +188 -86
- package/dist/styles/select.css +50 -0
- package/dist/styles/theme/bridges.css +22 -1
- package/dist/styles/theme/literals.css +11 -2
- package/dist/styles/theme/radius.css +6 -1
- package/dist/styles/tokens/color-radius.css +40 -13
- package/dist/styles/tokens/dark-arm.css +200 -20
- package/dist/styles/tokens/glass-deep.css +75 -0
- package/dist/styles/tokens/glass-fx.css +333 -0
- package/dist/styles/tokens/glass.css +95 -315
- package/dist/styles/tokens/light-dark.css +64 -22
- package/dist/styles/tokens/offsets.css +116 -0
- package/dist/styles/tokens/on-glass-fg.css +39 -0
- package/dist/styles/tokens/property-regs.css +130 -10
- package/dist/styles/tokens/scale-paper.css +155 -84
- package/dist/styles/tokens/scheme-motion.css +102 -46
- package/dist/styles/tokens/scroll-tokens.css +123 -0
- package/dist/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
- package/dist/styles/tokens.css +9 -3
- package/dist/styles/transitions.css +7 -7
- package/dist/styles/typography/scale.css +153 -0
- package/dist/styles/typography/semantic.css +220 -0
- package/dist/styles/typography/utilities.css +174 -0
- package/dist/styles/typography.css +23 -507
- package/dist/styles/utilities/a11y-overrides.css +33 -4
- package/dist/styles/utilities/animate.css +27 -24
- package/dist/styles/utilities/base-misc.css +255 -0
- package/dist/styles/utilities/base.css +100 -138
- package/dist/styles/utilities/btn.css +21 -202
- package/dist/styles/utilities/metal.css +189 -0
- package/dist/styles/utilities.css +14 -7
- package/dist/styles/view-transition.css +4 -1
- package/dist/switch.js +1 -1
- package/dist/tabs.js +275 -191
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +3 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{useAnimatedNumber-C5I3wWd8.js → useAnimatedNumber-BfUq2bUM.js} +1 -1
- package/dist/useCanvas2D-B8w_E3Rr.js +83 -0
- package/dist/useConfiguratorState-DNlOh6c8.js +161 -0
- package/dist/useDragMorph-DgxnsVJz.js +102 -0
- package/dist/{useGlobalDark-yhL4Wp-s.js → useGlobalDark-C28t0VWJ.js} +22 -3
- package/dist/useLiquidPress-kfb4KX79.js +39 -0
- package/dist/usePointerVelocityField-JbRd5CrM.js +137 -0
- package/dist/{useRAFLoop-Bxv0o6L5.js → useRAFLoop-UYa4zoiN.js} +1 -1
- package/dist/useSpring-C0jyvEJB.js +40 -0
- package/dist/useSpringMount-q1amq1SJ.js +71 -0
- package/dist/useSpringPress-BsqPr7FJ.js +34 -0
- package/dist/useSurfaceAxis-g0NloYEF.js +7 -0
- package/dist/{useTouchGate-Dg7MQI1G.js → useTouchGate-CBZTD4SD.js} +1 -1
- package/dist/vReveal-Czsb7zQC.js +10 -0
- package/dist/vSpecular-CQFmLNzA.js +68 -0
- package/dist/vendor-CKmzio-i.js +226 -0
- package/dist/watercolor-dot.js +12 -5
- package/package.json +193 -25
- package/src/styles/animations.css +40 -31
- package/src/styles/border-progress.css +109 -0
- package/src/styles/cards.css +76 -0
- package/src/styles/configurator.css +35 -0
- package/src/styles/critical-partition.mjs +140 -0
- package/src/styles/dock/density.css +64 -0
- package/src/styles/dock/layers.css +54 -30
- package/src/styles/dock/morph.css +124 -7
- package/src/styles/dock/overflow.css +31 -2
- package/src/styles/dock/rail-extend.css +168 -71
- package/src/styles/dock/section.css +59 -0
- package/src/styles/dock/shell.css +83 -16
- package/src/styles/dock-controls/icon-button.css +11 -1
- package/src/styles/dock-controls/tab-button.css +24 -83
- package/src/styles/dock-controls/triggers.css +7 -0
- package/src/styles/dock.css +38 -3
- package/src/styles/drawer.css +123 -35
- package/src/styles/feedback-tone.css +104 -0
- package/src/styles/glass/deep.css +44 -0
- package/src/styles/glass/ladder.css +154 -52
- package/src/styles/glass/material.css +78 -15
- package/src/styles/glass/reveal.css +136 -0
- package/src/styles/glass/rim.css +100 -0
- package/src/styles/glass/surface-axis.css +113 -0
- package/src/styles/glass/surfaces.css +189 -15
- package/src/styles/glass-refract.css +96 -44
- package/src/styles/glass-specular-track.css +7 -0
- package/src/styles/glass.css +8 -2
- package/src/styles/hover-popover.css +7 -6
- package/src/styles/icon-chip.css +211 -0
- package/src/styles/index.css +78 -4
- package/src/styles/instrument-chassis.css +107 -2
- package/src/styles/menu.css +127 -0
- package/src/styles/scroll-choreography.css +300 -0
- package/src/styles/segmented-tabs.css +184 -84
- package/src/styles/select.css +50 -0
- package/src/styles/theme/bridges.css +22 -1
- package/src/styles/theme/literals.css +11 -2
- package/src/styles/theme/radius.css +6 -1
- package/src/styles/tokens/color-radius.css +40 -13
- package/src/styles/tokens/dark-arm.css +200 -20
- package/src/styles/tokens/glass-deep.css +75 -0
- package/src/styles/tokens/glass-fx.css +333 -0
- package/src/styles/tokens/glass.css +95 -315
- package/src/styles/tokens/light-dark.css +64 -22
- package/src/styles/tokens/offsets.css +116 -0
- package/src/styles/tokens/on-glass-fg.css +39 -0
- package/src/styles/tokens/property-regs.css +130 -10
- package/src/styles/tokens/scale-paper.css +155 -84
- package/src/styles/tokens/scheme-motion.css +102 -46
- package/src/styles/tokens/scroll-tokens.css +123 -0
- package/src/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
- package/src/styles/tokens.css +9 -3
- package/src/styles/transitions.css +7 -7
- package/src/styles/typography/scale.css +153 -0
- package/src/styles/typography/semantic.css +220 -0
- package/src/styles/typography/utilities.css +174 -0
- package/src/styles/typography.css +23 -507
- package/src/styles/utilities/a11y-overrides.css +33 -4
- package/src/styles/utilities/animate.css +27 -24
- package/src/styles/utilities/base-misc.css +255 -0
- package/src/styles/utilities/base.css +100 -138
- package/src/styles/utilities/btn.css +21 -202
- package/src/styles/utilities/metal.css +189 -0
- package/src/styles/utilities.css +14 -7
- package/src/styles/view-transition.css +4 -1
- package/dist/CardAction-Cj2eycQ2.js +0 -157
- package/dist/DialogContent-Dl9WkAoS.js +0 -100
- package/dist/Notification-DdwNxIrI.js +0 -100
- package/dist/NumberFieldContent-CqaN-SvN.js +0 -145
- package/dist/PopoverContent-BYwt2-4x.js +0 -121
- package/dist/TabsList-Dttss653.js +0 -105
- package/dist/Toaster-D6q4HtXu.js +0 -263
- package/dist/button-ChXMfsud.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/components/custom/underline/GlassUnderline.vue.d.ts +0 -84
- package/dist/components/custom/underline/index.d.ts +0 -2
- package/dist/components/custom/underline/types.d.ts +0 -56
- package/dist/components/ui/carousel/CarouselDots.vue.d.ts +0 -4
- package/dist/createLucideIcon-DydS2qgk.js +0 -43
- package/dist/minimize-2-BV31Ob_h.js +0 -38
- package/dist/search-BSGrf2Sk.js +0 -12
- package/dist/sheet-1fChZjtw.js +0 -214
- package/dist/underline.d.ts +0 -1
- package/dist/underline.js +0 -85
- package/dist/useCanvas2D-ClrQuZtp.js +0 -96
- package/dist/useConfiguratorState-DAoeHVue.js +0 -287
- package/dist/useSpecularTracking-Bo5su68i.js +0 -32
- package/dist/useSpringMount-CI2jOstM.js +0 -108
- package/dist/vReveal-CqaCz_mC.js +0 -44
- package/dist/x-BUwTKe50.js +0 -10
- /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-68dEXIAl.js} +0 -0
- /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-Bx0F_q5g.js} +0 -0
- /package/dist/{Label-r3WzWrsj.js → Label-C2ejNWeC.js} +0 -0
- /package/dist/{ModalOverlay-DVLI2VRr.js → ModalOverlay-D1VrWyoi.js} +0 -0
- /package/dist/{PaperBackdrop-DIXTtVq6.js → PaperBackdrop-Vf3tlpvd.js} +0 -0
- /package/dist/{SelectGroup-aumMgWLs.js → SelectGroup-DwwjicPY.js} +0 -0
- /package/dist/{SelectSeparator-BQ_1Fcbp.js → SelectSeparator-DXswVdRz.js} +0 -0
- /package/dist/{Separator-0JE6LtNu.js → Separator-pKF0oA4M.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
- /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
- /package/dist/{color-CUYeFbgd.js → color-DweYl7pE.js} +0 -0
- /package/dist/{constants-CS75AWHG.js → constants-BPOqYJAm.js} +0 -0
- /package/dist/{createContext-BM46COQ-.js → createContext-CpBNTRMI.js} +0 -0
- /package/dist/{prng-D27-B3tK.js → prng-Za0Rmgag.js} +0 -0
- /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CUyHr5Uu.js} +0 -0
- /package/dist/{springPresets--YdWTHtm.js → springPresets-CFQGQfdl.js} +0 -0
- /package/dist/{useIntersectionPause-Cc-H9ees.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
- /package/dist/{useInterval-iHludrxk.js → useInterval-CvK1mL92.js} +0 -0
- /package/dist/{useKeyboardShortcuts-Be3w_Rwk.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
- /package/dist/{useLiquidFlex-BL0lLLN2.js → useLiquidFlex-mZPMiNXh.js} +0 -0
- /package/dist/{useResizeObserver-BhgdhOIj.js → useResizeObserver-Bpoi7tRE.js} +0 -0
- /package/dist/{useResolveTokenColor-Dvn2RZJW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
- /package/dist/{useScrollProgress-Dlvx-L3v.js → useScrollProgress-D7bYU2RK.js} +0 -0
- /package/dist/{useSortable-muI29agz.js → useSortable-DHjtZSEd.js} +0 -0
- /package/dist/{useTextHighlight-DmRYkOBx.js → useTextHighlight-CWEi25hf.js} +0 -0
- /package/dist/{useTimer-Dzarvzuk.js → useTimer-BHJOKr35.js} +0 -0
- /package/dist/{useUserInvalidAria-B2h6jAM_.js → useUserInvalidAria-y5namzeE.js} +0 -0
- /package/dist/{useViewportReady-B40FK4Pa.js → useViewportReady-anbac3m6.js} +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type FocusScopeProps } from 'reka-ui';
|
|
2
|
+
declare var __VLS_8: {};
|
|
3
|
+
type __VLS_Slots = {} & {
|
|
4
|
+
default?: (props: typeof __VLS_8) => any;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_base: import("vue").DefineComponent<FocusScopeProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
7
|
+
mountAutoFocus: (event: Event) => any;
|
|
8
|
+
unmountAutoFocus: (event: Event) => any;
|
|
9
|
+
}, string, import("vue").PublicProps, Readonly<FocusScopeProps> & Readonly<{
|
|
10
|
+
onMountAutoFocus?: ((event: Event) => any) | undefined;
|
|
11
|
+
onUnmountAutoFocus?: ((event: Event) => any) | undefined;
|
|
12
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
14
|
+
declare const _default: typeof __VLS_export;
|
|
15
|
+
export default _default;
|
|
16
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
17
|
+
new (): {
|
|
18
|
+
$slots: S;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -14,6 +14,7 @@ export * from "./data-table";
|
|
|
14
14
|
export * from "./dialog";
|
|
15
15
|
export * from "./drawer";
|
|
16
16
|
export * from "./dropdown-menu";
|
|
17
|
+
export * from "./focus-scope";
|
|
17
18
|
export * from "./hover-card";
|
|
18
19
|
export * from "./input";
|
|
19
20
|
export * from "./label";
|
|
@@ -32,7 +33,6 @@ export * from "./skeleton";
|
|
|
32
33
|
export * from "./slider";
|
|
33
34
|
export * from "./switch";
|
|
34
35
|
export * from "./table";
|
|
35
|
-
export * from "./tabs";
|
|
36
36
|
export * from "./tags-input";
|
|
37
37
|
export * from "./textarea";
|
|
38
38
|
export * from "./toast";
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { type HTMLAttributes } from 'vue';
|
|
2
2
|
import { type PopoverContentProps } from 'reka-ui';
|
|
3
|
+
import { type Surface } from '../_shared/useSurfaceAxis';
|
|
3
4
|
type __VLS_Props = PopoverContentProps & {
|
|
4
5
|
class?: HTMLAttributes['class'];
|
|
5
6
|
portal?: boolean;
|
|
7
|
+
surface?: Surface;
|
|
6
8
|
};
|
|
7
9
|
declare var __VLS_14: {}, __VLS_23: {};
|
|
8
10
|
type __VLS_Slots = {} & {
|
|
@@ -26,6 +28,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
26
28
|
onCloseAutoFocus?: ((event: Event) => any) | undefined;
|
|
27
29
|
}>, {
|
|
28
30
|
align: "start" | "center" | "end";
|
|
31
|
+
surface: Surface;
|
|
29
32
|
sideOffset: number;
|
|
30
33
|
portal: boolean;
|
|
31
34
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -7,8 +7,9 @@ import { type ProgressRootProps } from "reka-ui";
|
|
|
7
7
|
* dispatcher routes here for `variant="default"`.
|
|
8
8
|
*
|
|
9
9
|
* Token-read parity with the `gradient` variant (AX.W24 F1): the rail/indicator
|
|
10
|
-
* colour read `--progress-track`/`--progress-fill` (fallbacks
|
|
11
|
-
* `var(--primary)`) as Tailwind arbitrary
|
|
10
|
+
* colour read `--progress-track`/`--progress-fill` (fallbacks
|
|
11
|
+
* `var(--progress-track-on-glass)`/`var(--primary)`) as Tailwind arbitrary
|
|
12
|
+
* properties — `bg-[var(--token,…)]` /
|
|
12
13
|
* `[background:var(--token,…)]` — NOT the `bg-secondary`/`bg-primary` utility
|
|
13
14
|
* classes. A `bg-primary` utility lives in `@layer utilities`, which ALWAYS
|
|
14
15
|
* outranks the `@layer components` `.glass-progress-rail` recipe regardless of
|
|
@@ -2,9 +2,20 @@ import { type HTMLAttributes } from "vue";
|
|
|
2
2
|
import { type ProgressRootProps } from "reka-ui";
|
|
3
3
|
import { type ProgressSegment } from "./useProgressGeometry";
|
|
4
4
|
/**
|
|
5
|
-
* Sectioned progress variant — the phase-bus (AB.W3.T2
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Sectioned progress variant — the phase-bus (AB.W3.T2; rebuilt on a SINGLE-FILL
|
|
6
|
+
* gradient paint model at BA.W-PROGRESS-GRADIENT). The bar reads as ONE continuous
|
|
7
|
+
* blended liquid filling a frosted recessed glass channel: segment colours hold
|
|
8
|
+
* their identity across their span and blend over short transition zones at the
|
|
9
|
+
* boundaries, the active front carries the single pill cap + catch-light, and
|
|
10
|
+
* pending phases keep their real hue as a faint ghost on the track.
|
|
11
|
+
*
|
|
12
|
+
* The paint is NOT per-cell rectangles. ONE `.progress-sectioned-flow` element
|
|
13
|
+
* spans the cumulative filled extent (`filledExtentPct`, derived off the same
|
|
14
|
+
* `useProgressGeometry` cells[]) and paints ONE `linear-gradient` whose stops are
|
|
15
|
+
* the segment colours (hard stop-pairs hold each hue crisp; short soft zones at
|
|
16
|
+
* the boundaries give the blend). No screen-seam band, no internal pill caps, no
|
|
17
|
+
* dead notch. The pending remainder of the recessed track carries a faint
|
|
18
|
+
* phase-tinted ghost gradient built from the pending cells' own colours.
|
|
8
19
|
*
|
|
9
20
|
* The single `modelValue` is NOT the truth here — the per-cell state map is. The
|
|
10
21
|
* underlying `[role="progressbar"]` reports a numeric `aria-valuenow` derived from
|
|
@@ -18,7 +18,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
18
18
|
}>, {
|
|
19
19
|
position: "item-aligned" | "popper";
|
|
20
20
|
align: "start" | "center" | "end";
|
|
21
|
-
collisionPadding: number | Partial<Record<"
|
|
21
|
+
collisionPadding: number | Partial<Record<"bottom" | "left" | "right" | "top", number>>;
|
|
22
22
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
23
23
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
24
24
|
declare const _default: typeof __VLS_export;
|
|
@@ -2,17 +2,40 @@ import { type HTMLAttributes } from 'vue';
|
|
|
2
2
|
import { type SelectTriggerProps } from 'reka-ui';
|
|
3
3
|
type __VLS_Props = SelectTriggerProps & {
|
|
4
4
|
class?: HTMLAttributes['class'];
|
|
5
|
-
/** 'default' =
|
|
5
|
+
/** 'default' = the shared control REST surface (BA.W-SURFACE-AXIS scope 7 —
|
|
6
|
+
* the `.control-surface` register every form control reads at rest, off the
|
|
7
|
+
* prior `glass-wash` gray fork); 'ghost' = transparent, no border/shadow */
|
|
6
8
|
variant?: 'default' | 'ghost';
|
|
7
|
-
/**
|
|
8
|
-
|
|
9
|
+
/**
|
|
10
|
+
* The trigger register — a TWO-RANGE axis (BA.W-MENU-GLASS / BA-VJS-4 WO-3):
|
|
11
|
+
* • HEIGHT tiers (`sm` | `default`) ride the `--control-h-*` comfort cohort
|
|
12
|
+
* (h-9 / h-10), byte-identical to today.
|
|
13
|
+
* • FONT-RUNG tiers (`display` | `audacious`) WRITE the shared picker-family
|
|
14
|
+
* `--dropdown-text` token on the Select SCOPE (inline style), so the
|
|
15
|
+
* trigger, the SelectValue, AND the item rows re-resolve at ONE scale off
|
|
16
|
+
* the ONE documented lever (`offsets-sizing.css` — the items read
|
|
17
|
+
* `--dropdown-text` via `menuItemVariants`' `text-dropdown` base). This is
|
|
18
|
+
* the fix for the value.js trigger-only `text-display` desync (a 1.59×
|
|
19
|
+
* trigger/items break): a consumer scaling the picker font reaches for the
|
|
20
|
+
* PROP, which sets the FAMILY token, NOT a trigger-local `text-*` class that
|
|
21
|
+
* leaves the items behind. The font rung carries a height too so the box
|
|
22
|
+
* grows with the type. The height tiers stay; the font rung is ADDITIVE
|
|
23
|
+
* (a consumer who never sets it keeps today's resolved sizes).
|
|
24
|
+
*
|
|
25
|
+
* NOTE on the portal: `<SelectContent>` PORTALS to body, so the inline
|
|
26
|
+
* `--dropdown-text` on the trigger reaches the trigger/value/chevron directly;
|
|
27
|
+
* the items re-resolve when the consumer also threads the rung on the shared
|
|
28
|
+
* Select scope (the documented family lever). For a single self-scaling
|
|
29
|
+
* trigger the rung scales the visible trigger silhouette.
|
|
30
|
+
*/
|
|
31
|
+
size?: 'sm' | 'default' | 'display' | 'audacious';
|
|
9
32
|
};
|
|
10
33
|
declare var __VLS_8: {};
|
|
11
34
|
type __VLS_Slots = {} & {
|
|
12
35
|
default?: (props: typeof __VLS_8) => any;
|
|
13
36
|
};
|
|
14
37
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
15
|
-
size: "sm" | "default";
|
|
38
|
+
size: "sm" | "default" | "display" | "audacious";
|
|
16
39
|
variant: "default" | "ghost";
|
|
17
40
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
41
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -2,9 +2,15 @@ import { type HTMLAttributes } from 'vue';
|
|
|
2
2
|
import { type DialogContentProps } from 'reka-ui';
|
|
3
3
|
import { type SheetVariants } from '.';
|
|
4
4
|
import { type SpringPreset } from '../../../composables/motion/useSpringMount';
|
|
5
|
+
import { type Surface } from '../_shared/useSurfaceAxis';
|
|
5
6
|
interface SheetContentProps extends DialogContentProps {
|
|
6
7
|
class?: HTMLAttributes['class'];
|
|
7
8
|
side?: SheetVariants['side'];
|
|
9
|
+
/** Surface decoration register (BA.W-SURFACE-AXIS) — the SHARED
|
|
10
|
+
* {glass·veil·opaque} axis. `glass` (default) renders the floating glass tier
|
|
11
|
+
* sheetVariants already bakes; `veil` overlays the borderless text-legibility
|
|
12
|
+
* plate; `opaque` sets `--glass-level:0` (the solid-card escape). */
|
|
13
|
+
surface?: Surface;
|
|
8
14
|
/**
|
|
9
15
|
* Opt into iOS spring-physics entrance via `useSpringMount` (W13). When
|
|
10
16
|
* truthy, the sheet slides from off-edge via a `useSpring`-driven
|
|
@@ -8,6 +8,6 @@ export { default as SheetTitle } from './SheetTitle.vue';
|
|
|
8
8
|
export { default as SheetDescription } from './SheetDescription.vue';
|
|
9
9
|
export { default as SheetFooter } from './SheetFooter.vue';
|
|
10
10
|
export declare const sheetVariants: (props?: ({
|
|
11
|
-
side?: "
|
|
11
|
+
side?: "bottom" | "left" | "right" | "top" | null | undefined;
|
|
12
12
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
13
13
|
export type SheetVariants = VariantProps<typeof sheetVariants>;
|
|
@@ -21,12 +21,15 @@ import type { HTMLAttributes } from 'vue';
|
|
|
21
21
|
* (opacity-min) — the surface still reads but no longer cycles.
|
|
22
22
|
*/
|
|
23
23
|
type SkeletonVariant = 'pulse' | 'shimmer' | 'breath';
|
|
24
|
+
type SkeletonSurface = 'glass' | 'opaque';
|
|
24
25
|
type __VLS_Props = {
|
|
25
26
|
variant?: SkeletonVariant;
|
|
27
|
+
surface?: SkeletonSurface;
|
|
26
28
|
class?: HTMLAttributes['class'];
|
|
27
29
|
};
|
|
28
30
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
29
31
|
variant: SkeletonVariant;
|
|
32
|
+
surface: SkeletonSurface;
|
|
30
33
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
31
34
|
declare const _default: typeof __VLS_export;
|
|
32
35
|
export default _default;
|
|
@@ -8,13 +8,13 @@ type __VLS_Slots = {} & {
|
|
|
8
8
|
default?: (props: typeof __VLS_8) => any;
|
|
9
9
|
};
|
|
10
10
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
11
|
-
"update:modelValue": (payload: import("reka-ui").AcceptableInputValue[]) => any;
|
|
12
11
|
invalid: (payload: import("reka-ui").AcceptableInputValue) => any;
|
|
12
|
+
"update:modelValue": (payload: import("reka-ui").AcceptableInputValue[]) => any;
|
|
13
13
|
addTag: (payload: import("reka-ui").AcceptableInputValue) => any;
|
|
14
14
|
removeTag: (payload: import("reka-ui").AcceptableInputValue) => any;
|
|
15
15
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
16
|
-
"onUpdate:modelValue"?: ((payload: import("reka-ui").AcceptableInputValue[]) => any) | undefined;
|
|
17
16
|
onInvalid?: ((payload: import("reka-ui").AcceptableInputValue) => any) | undefined;
|
|
17
|
+
"onUpdate:modelValue"?: ((payload: import("reka-ui").AcceptableInputValue[]) => any) | undefined;
|
|
18
18
|
onAddTag?: ((payload: import("reka-ui").AcceptableInputValue) => any) | undefined;
|
|
19
19
|
onRemoveTag?: ((payload: import("reka-ui").AcceptableInputValue) => any) | undefined;
|
|
20
20
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { type HTMLAttributes } from 'vue';
|
|
2
2
|
import { type ToastRootProps } from 'reka-ui';
|
|
3
|
+
import { type Surface } from '../_shared/useSurfaceAxis';
|
|
3
4
|
import type { ToastVariant } from './use-toast';
|
|
4
5
|
interface ToastProps extends ToastRootProps {
|
|
5
6
|
class?: HTMLAttributes['class'];
|
|
6
7
|
variant?: ToastVariant;
|
|
8
|
+
surface?: Surface;
|
|
7
9
|
}
|
|
8
10
|
declare var __VLS_8: {};
|
|
9
11
|
type __VLS_Slots = {} & {
|
|
10
12
|
default?: (props: typeof __VLS_8) => any;
|
|
11
13
|
};
|
|
12
14
|
declare const __VLS_base: import("vue").DefineComponent<ToastProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
15
|
+
pause: () => any;
|
|
13
16
|
"update:open": (value: boolean) => any;
|
|
14
17
|
escapeKeyDown: (event: KeyboardEvent) => any;
|
|
15
|
-
pause: () => any;
|
|
16
18
|
resume: () => any;
|
|
17
19
|
swipeStart: (event: {
|
|
18
20
|
currentTarget: EventTarget & HTMLElement;
|
|
@@ -51,9 +53,9 @@ declare const __VLS_base: import("vue").DefineComponent<ToastProps, {}, {}, {},
|
|
|
51
53
|
};
|
|
52
54
|
}>, "currentTarget">) => any;
|
|
53
55
|
}, string, import("vue").PublicProps, Readonly<ToastProps> & Readonly<{
|
|
56
|
+
onPause?: (() => any) | undefined;
|
|
54
57
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
55
58
|
onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
|
|
56
|
-
onPause?: (() => any) | undefined;
|
|
57
59
|
onResume?: (() => any) | undefined;
|
|
58
60
|
onSwipeStart?: ((event: {
|
|
59
61
|
currentTarget: EventTarget & HTMLElement;
|
|
@@ -93,6 +95,7 @@ declare const __VLS_base: import("vue").DefineComponent<ToastProps, {}, {}, {},
|
|
|
93
95
|
}>, "currentTarget">) => any) | undefined;
|
|
94
96
|
}>, {
|
|
95
97
|
variant: ToastVariant;
|
|
98
|
+
surface: Surface;
|
|
96
99
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
97
100
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
98
101
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Component, VNode } from 'vue';
|
|
2
|
+
import type { Surface } from '../_shared/useSurfaceAxis';
|
|
2
3
|
export type ToastVariant = 'default' | 'destructive' | 'success' | 'warning' | 'info';
|
|
3
4
|
export interface Toast {
|
|
4
5
|
id: string;
|
|
@@ -6,6 +7,12 @@ export interface Toast {
|
|
|
6
7
|
description?: string;
|
|
7
8
|
action?: Component | VNode;
|
|
8
9
|
variant?: ToastVariant;
|
|
10
|
+
/**
|
|
11
|
+
* BB.W-SURFACE-AXIS-COMPLETE — the shared {glass·veil·opaque} surface-decoration
|
|
12
|
+
* axis on a queued toast (default `glass`). Forwarded through `Toaster.vue`'s
|
|
13
|
+
* per-toast `v-bind` exactly like `variant`; orthogonal to the tone arm.
|
|
14
|
+
*/
|
|
15
|
+
surface?: Surface;
|
|
9
16
|
/**
|
|
10
17
|
* Auto-dismiss delay in ms, forwarded to reka-ui's `ToastRoot`. Omit to
|
|
11
18
|
* inherit the `ToastProvider` default; `Number.POSITIVE_INFINITY` keeps the
|
|
@@ -152,6 +159,13 @@ declare function useToast(): {
|
|
|
152
159
|
__name?: string | undefined;
|
|
153
160
|
} | undefined;
|
|
154
161
|
variant?: ToastVariant
|
|
162
|
+
/**
|
|
163
|
+
* BB.W-SURFACE-AXIS-COMPLETE — the shared {glass·veil·opaque} surface-decoration
|
|
164
|
+
* axis on a queued toast (default `glass`). Forwarded through `Toaster.vue`'s
|
|
165
|
+
* per-toast `v-bind` exactly like `variant`; orthogonal to the tone arm.
|
|
166
|
+
*/
|
|
167
|
+
| undefined;
|
|
168
|
+
surface?: Surface
|
|
155
169
|
/**
|
|
156
170
|
* Auto-dismiss delay in ms, forwarded to reka-ui's `ToastRoot`. Omit to
|
|
157
171
|
* inherit the `ToastProvider` default; `Number.POSITIVE_INFINITY` keeps the
|
|
@@ -16,8 +16,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
16
16
|
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
17
17
|
}>, {
|
|
18
18
|
size: "default" | "sm" | "lg" | null;
|
|
19
|
-
variant: "default" | "outline" | "card" | null;
|
|
20
19
|
disabled: boolean;
|
|
20
|
+
variant: "default" | "outline" | "card" | null;
|
|
21
21
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
22
22
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
23
23
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { useGlobalDark } from "./useGlobalDark";
|
|
2
|
-
export type { UseGlobalDarkOptions } from "./useGlobalDark";
|
|
2
|
+
export type { UseGlobalDarkOptions, UseGlobalDarkReturn, DarkFlipSettledCallback, } from "./useGlobalDark";
|
|
3
3
|
export { installDarkModeSync } from "./installDarkModeSync";
|
|
4
4
|
export { darkModeSyncScript, DARK_MODE_STORAGE_KEY } from "./darkModeSyncScript";
|
|
5
5
|
export type { DarkModeSyncScriptOptions } from "./darkModeSyncScript";
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import type { BasicColorSchema } from "@vueuse/core";
|
|
2
2
|
import { type Ref, type WritableComputedRef } from "vue";
|
|
3
|
+
/**
|
|
4
|
+
* A post-flip settle callback. Receives the dark-mode flag's NEW value. Runs in
|
|
5
|
+
* the single coalesced post-flip task (see `onFlipSettled`).
|
|
6
|
+
*/
|
|
7
|
+
export type DarkFlipSettledCallback = (isDark: boolean) => void;
|
|
3
8
|
/**
|
|
4
9
|
* The `useGlobalDark` return shape (AW.W15 — named `Use<Name>Return`). The
|
|
5
10
|
* single shared dark-mode instance: the reactive `isDark` flag, a `toggleDark`
|
|
6
|
-
* that optionally suppresses transitions,
|
|
11
|
+
* that optionally suppresses transitions, the transition-suppression switch, and
|
|
12
|
+
* the post-flip settle hook (BA.W-ATLAS-RECONCILE A-1 — d6 9467bd16 adopt).
|
|
7
13
|
*/
|
|
8
14
|
export interface UseGlobalDarkReturn {
|
|
9
15
|
/** Reactive dark-mode flag (vueuse `useDark` ref — writable). */
|
|
@@ -14,6 +20,22 @@ export interface UseGlobalDarkReturn {
|
|
|
14
20
|
disableTransitions: Ref<boolean>;
|
|
15
21
|
/** Configure transition suppression during the dark-mode toggle. */
|
|
16
22
|
setDisableTransitions: (value: boolean) => void;
|
|
23
|
+
/**
|
|
24
|
+
* BA.W-ATLAS-RECONCILE A-1 — the post-flip SETTLE hook. Register a callback
|
|
25
|
+
* that runs in ONE coalesced task AFTER each dark↔light flip's instant chrome
|
|
26
|
+
* paint, so consumers BATCH N expensive re-theme operations (e.g. the atlas's
|
|
27
|
+
* palette memo + N-chart `merge-setOption` palette tween + aurora
|
|
28
|
+
* re-derivation) into a single beat instead of N watchers firing in N
|
|
29
|
+
* sequential storms on the critical frame. The class toggle is synchronous
|
|
30
|
+
* (chrome flips instantly); the batch drains one frame later via a single
|
|
31
|
+
* `requestAnimationFrame` (an SSR/no-rAF env falls back to a macrotask).
|
|
32
|
+
* EVERY registered callback shares that ONE task — no per-subscriber
|
|
33
|
+
* scheduling. No View Transition is involved anywhere in this path (PRM-safe
|
|
34
|
+
* by construction — a flip is a CSS-class swap, not a DOM mutation to
|
|
35
|
+
* snapshot). Returns an unsubscribe function. Idempotent re-registration of
|
|
36
|
+
* the same callback is a no-op.
|
|
37
|
+
*/
|
|
38
|
+
onFlipSettled: (callback: DarkFlipSettledCallback) => () => void;
|
|
17
39
|
}
|
|
18
40
|
export interface UseGlobalDarkOptions {
|
|
19
41
|
/**
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { type MaybeRefOrGetter } from "vue";
|
|
2
|
-
/**
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* The suspend reasons that gate the loop. Twins the WebGL substrate's union
|
|
4
|
+
* (`createCanvasLifecycle.CanvasSuspendReason`): the AX.W16 F6 `"off-screen-io"`
|
|
5
|
+
* key is the IntersectionObserver fallback's OWN reason, distinct from the
|
|
6
|
+
* content-visibility path's `"off-screen"`, so the two offscreen detectors never
|
|
7
|
+
* cross-lift each other's suspend.
|
|
8
|
+
*/
|
|
9
|
+
export type Canvas2DSuspendReason = "tab-hidden" | "off-screen" | "off-screen-io" | "manual";
|
|
4
10
|
/** The per-frame hooks a consumer's `setup(ctx)` returns. */
|
|
5
11
|
export interface Canvas2DFrame {
|
|
6
12
|
/**
|
|
@@ -47,10 +53,11 @@ export interface Canvas2DHandle {
|
|
|
47
53
|
}
|
|
48
54
|
/**
|
|
49
55
|
* The Canvas2D lifecycle substrate — the park/freeze/dispose twin of
|
|
50
|
-
* `useWebGLCanvas
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
56
|
+
* `useWebGLCanvas`, a thin Canvas2D backend over the shared
|
|
57
|
+
* `createCanvasLifecycle` core. Returns an imperative {@link Canvas2DHandle} (the
|
|
58
|
+
* same handle idiom the WebGL twin uses — an imperative canvas seam is NOT a
|
|
59
|
+
* ref-bundle). `useCanvasLifecycle` is the alias-of-record for the lifecycle-only
|
|
60
|
+
* framing; both name the same factory.
|
|
54
61
|
*/
|
|
55
62
|
export declare function useCanvas2D(options: Canvas2DOptions): Canvas2DHandle;
|
|
56
63
|
/**
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
export { useSpecularTracking } from "./useSpecularTracking";
|
|
2
|
-
export type { UseSpecularTracking } from "./useSpecularTracking";
|
|
1
|
+
export { useSpecularTracking, createSpecularWriter, } from "./useSpecularTracking";
|
|
2
|
+
export type { UseSpecularTracking, SpecularWriter, } from "./useSpecularTracking";
|
|
3
|
+
export { vSpecular } from "./vSpecular";
|
|
4
|
+
export { useSpecularPointer } from "./useSpecularPointer";
|
|
5
|
+
export type { UseSpecularPointer } from "./useSpecularPointer";
|
|
3
6
|
export { useCanvas2D, useCanvasLifecycle, resolveCanvasColor } from "./canvas2d";
|
|
4
7
|
export type { Canvas2DFrame, Canvas2DHandle, Canvas2DOptions, Canvas2DSuspendReason, } from "./canvas2d";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ref, type CSSProperties } from "vue";
|
|
2
|
+
/**
|
|
3
|
+
* `useSpecularPointer` — the EVOLUTION of `useSpecularTracking` (BB.W-LENSING). It
|
|
4
|
+
* writes the catch-light POSITION (`--mouse-x`/`--mouse-y`, as today) PLUS the
|
|
5
|
+
* `--specular-angle` channel — the pointer's angle-from-center the EDGE-glint conic
|
|
6
|
+
* sweep reads (the `.glass-material::before` recipe, material.css). The angle feed is
|
|
7
|
+
* what turns the centered disc into a motion-reactive RIM glint (the glass-THICKNESS
|
|
8
|
+
* read); the leaf is the ONE shared specular source the hover/button waves consume.
|
|
9
|
+
*
|
|
10
|
+
* SINGLE-SOURCE (the W-LIQUIDHOVER reconcile, EXTENDED here — NOT a fork). There is
|
|
11
|
+
* exactly ONE position-write core: `createSpecularWriter` (useSpecularTracking.ts) —
|
|
12
|
+
* the rAF-coalesced, cached-PRM, scope-dispose seam. This composable WRAPS that core;
|
|
13
|
+
* the angle is DERIVED in the sink from the SAME `(x, y)` percentage the core already
|
|
14
|
+
* computes (`angle = atan2(y - 50, x - 50)`), so there is NO duplicate
|
|
15
|
+
* `getBoundingClientRect` / `--mouse-x` write — the core owns the layout read + the
|
|
16
|
+
* coordinate math, this leaf only adds the angle derivation onto the existing sink.
|
|
17
|
+
* `useSpecularTracking` (the position-only delivery) STAYS for the bare-position call
|
|
18
|
+
* sites; `useSpecularPointer` is the angle-adding delivery for an edge-glint consumer.
|
|
19
|
+
* Both wrap the ONE core — never two copies of the rAF/PRM/coordinate logic.
|
|
20
|
+
*
|
|
21
|
+
* PRM-aware by construction (the wrapped core skips the write under
|
|
22
|
+
* `prefers-reduced-motion: reduce` — the CSS bracket pins `--specular-x/y` to the
|
|
23
|
+
* centred 50% and `--specular-angle` to its `0deg` static rest). The composable
|
|
24
|
+
* disposes the core (cancel the pending rAF + drop the cached PRM listener) on scope
|
|
25
|
+
* teardown.
|
|
26
|
+
*/
|
|
27
|
+
export interface UseSpecularPointer {
|
|
28
|
+
/** Bind to the host element's `:style`. Carries `--mouse-x/--mouse-y` + `--specular-angle`. */
|
|
29
|
+
specularStyle: ReturnType<typeof ref<CSSProperties>>;
|
|
30
|
+
/** Bind to the host's `@pointermove`. Schedules the rAF-coalesced position+angle write (PRM-gated). */
|
|
31
|
+
onPointerMove: (event: PointerEvent) => void;
|
|
32
|
+
}
|
|
33
|
+
export declare function useSpecularPointer(): UseSpecularPointer;
|
|
@@ -32,6 +32,13 @@ import { ref, type CSSProperties } from "vue";
|
|
|
32
32
|
* W54 maximal-glass every blurred-surface repaint is amortized to the frame, not the
|
|
33
33
|
* event). The composable cancels the pending rAF + removes the matchMedia listener on
|
|
34
34
|
* scope dispose (cleanup discipline).
|
|
35
|
+
*
|
|
36
|
+
* BB.W-LIQUIDHOVER — the rAF-coalesce + cached-PRM + cleanup LOGIC is extracted to
|
|
37
|
+
* `createSpecularWriter()`, the SINGLE position-write core. The composable below wraps
|
|
38
|
+
* it for the Vue `:style`-ref case (Card's prop-gated `specular` opt-in); the
|
|
39
|
+
* tier-root auto-arm (`vSpecular`) wraps the SAME core to write directly on the
|
|
40
|
+
* directive host's `el.style` (the zero-wiring delivery). ONE position-write source,
|
|
41
|
+
* TWO deliveries — never a re-pasted handler.
|
|
35
42
|
*/
|
|
36
43
|
export interface UseSpecularTracking {
|
|
37
44
|
/** Bind to the host element's `:style`. Carries the `--mouse-x/--mouse-y` write. */
|
|
@@ -39,4 +46,17 @@ export interface UseSpecularTracking {
|
|
|
39
46
|
/** Bind to the host's `@pointermove`. Schedules the rAF-coalesced position write (PRM-gated). */
|
|
40
47
|
onPointerMove: (event: PointerEvent) => void;
|
|
41
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* The SINGLE position-write core (BB.W-LIQUIDHOVER) — the rAF-coalesced,
|
|
51
|
+
* PRM-aware `--mouse-x/y` write seam, sink-agnostic. `sink(x, y)` receives the
|
|
52
|
+
* percentage position once per animation frame; the composable sinks into its
|
|
53
|
+
* `specularStyle` ref, the `vSpecular` directive sinks into `el.style.setProperty`.
|
|
54
|
+
* Returns the event handler + a `dispose` (cancel the pending rAF + drop the cached
|
|
55
|
+
* PRM listener) so BOTH deliveries share ONE cleanup discipline.
|
|
56
|
+
*/
|
|
57
|
+
export interface SpecularWriter {
|
|
58
|
+
onPointerMove: (event: PointerEvent) => void;
|
|
59
|
+
dispose: () => void;
|
|
60
|
+
}
|
|
61
|
+
export declare function createSpecularWriter(sink: (xPct: number, yPct: number) => void): SpecularWriter;
|
|
42
62
|
export declare function useSpecularTracking(): UseSpecularTracking;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CURL_FBM_GLSL = "\nconst float CURL_EPS = 0.012;\n\n// Scalar fbm potential psi \u2014 the host's noise basis, wrapped so the curl operator is\n// basis-agnostic. A host carrying its own fbm defines this as: return fbm(p);\nfloat potentialFBM(vec2 p);\n\n// \u2207\u00D7\u03C8 in 2D \u2014 the divergence-free flow direction. Central finite differences of the\n// scalar potential give the partials; the cross-pairing (\u2202y, \u2212\u2202x) is the 2D curl.\nvec2 curlFBM(vec2 p) {\n float dx = potentialFBM(p + vec2(CURL_EPS, 0.0)) - potentialFBM(p - vec2(CURL_EPS, 0.0));\n float dy = potentialFBM(p + vec2(0.0, CURL_EPS)) - potentialFBM(p - vec2(0.0, CURL_EPS));\n // \u03C8-gradient is (dx, dy)/(2\u00B7eps); the curl rotates it 90\u00B0: (\u2202\u03C8/\u2202y, \u2212\u2202\u03C8/\u2202x).\n vec2 g = vec2(dx, dy) / (2.0 * CURL_EPS);\n return vec2(g.y, -g.x);\n}\n";
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ONE `getContext("webgl2")` capability probe (BB.W-CI-GREEN — the
|
|
3
|
+
* single-bootstrap rule). A throwaway WebGL2 context is created here, in the
|
|
4
|
+
* substrate (the sole webgl2-creating module per `proof:webgl-substrate-single`),
|
|
5
|
+
* so a consumer feature-detecting WebGL2 / reading the unmasked renderer string
|
|
6
|
+
* NEVER creates a second context of its own. The probe canvas is detached, its
|
|
7
|
+
* context released via `WEBGL_lose_context` under the per-page context cap; the
|
|
8
|
+
* read is one-shot (a mount-time device-tier decision, not a reactive one).
|
|
9
|
+
*
|
|
10
|
+
* Returns the lower-cased `UNMASKED_RENDERER_WEBGL` string (e.g.
|
|
11
|
+
* `"google swiftshader"`), or `null` when WebGL2 / the debug-renderer extension
|
|
12
|
+
* is unavailable or the probe throws — the caller treats `null` as "cannot prove"
|
|
13
|
+
* (the conservative-but-lossy fall-back). SSR-safe (returns `null` with no
|
|
14
|
+
* `document`).
|
|
15
|
+
*/
|
|
16
|
+
export declare function probeWebGL2Renderer(): string | null;
|
|
1
17
|
export type WebGLSuspendReason = "tab-hidden" | "off-screen" | "off-screen-io" | "manual";
|
|
2
18
|
/** The per-frame hooks a consumer's `setup(gl)` returns. */
|
|
3
19
|
export interface WebGLCanvasFrame {
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { createWebGPUCanvas, supportsWebGPU, type WebGPUCanvasFrame, type WebGPUCanvasHandle, type WebGPUCanvasOptions, type WebGPUSuspendReason, } from "./useWebGPUCanvas";
|
|
2
|
+
export { createGpuSubstrate, type GpuBackend, type GpuSubstrateHandle, type GpuSubstrateOptions, } from "./useGpuSubstrate";
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type WebGLCanvasFrame, type WebGLCanvasOptions } from "../webgl/useWebGLCanvas";
|
|
2
|
+
import { supportsWebGPU, type WebGPUCanvasFrame, type WebGPUCanvasOptions } from "./useWebGPUCanvas";
|
|
3
|
+
export { supportsWebGPU };
|
|
4
|
+
/** Which backend the picker resolved. */
|
|
5
|
+
export type GpuBackend = "webgpu" | "webgl2";
|
|
6
|
+
export interface GpuSubstrateOptions {
|
|
7
|
+
/** `"capture"` → renderAt-only (no auto-loop). Default `"live"`. */
|
|
8
|
+
mode?: "live" | "capture";
|
|
9
|
+
/** Honor `prefers-reduced-motion: reduce` (one static frame then park). Default `true`. */
|
|
10
|
+
respectReducedMotion?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* The WGSL pipeline builder (the WebGPU primary path). Omitting it forces the
|
|
13
|
+
* WebGL2 fallback even where WebGPU is supported (a viz with no WGSL path yet).
|
|
14
|
+
*/
|
|
15
|
+
setupWGPU?: WebGPUCanvasOptions["setup"];
|
|
16
|
+
/** The GLSL program builder (the WebGL2 fallback path — always required). */
|
|
17
|
+
setupGL: WebGLCanvasOptions["setup"];
|
|
18
|
+
/** WebGPU `context.configure` alpha mode (default `"premultiplied"`). */
|
|
19
|
+
alphaMode?: WebGPUCanvasOptions["alphaMode"];
|
|
20
|
+
/** WebGPU adapter/device request options. */
|
|
21
|
+
adapterOptions?: WebGPUCanvasOptions["adapterOptions"];
|
|
22
|
+
deviceDescriptor?: WebGPUCanvasOptions["deviceDescriptor"];
|
|
23
|
+
/** WebGL2 `getContext("webgl2", …)` attributes. */
|
|
24
|
+
contextAttrs?: WebGLCanvasOptions["contextAttrs"];
|
|
25
|
+
/** Surface a device-init / validation failure (the WebGPU path). */
|
|
26
|
+
onInitError?: WebGPUCanvasOptions["onInitError"];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The uniform substrate handle. A viz consumer wires its lifecycle (offscreen pause,
|
|
30
|
+
* pause/resume, pointer-`wake`, capture-`renderAt`) against THIS — identical across the
|
|
31
|
+
* WebGPU and WebGL2 backends. `armAsync` is the start seam (the WebGPU path awaits the
|
|
32
|
+
* device; the WebGL2 path resolves immediately); `arm` is the synchronous twin.
|
|
33
|
+
*/
|
|
34
|
+
export interface GpuSubstrateHandle {
|
|
35
|
+
/** The resolved backend (`"webgpu"` where supported + a WGSL path is provided, else `"webgl2"`). */
|
|
36
|
+
readonly backend: GpuBackend;
|
|
37
|
+
/** Acquire the device/context + `setup` + arm the loop. Resolves once armed. */
|
|
38
|
+
armAsync: () => Promise<void>;
|
|
39
|
+
/** Synchronous arm (the WebGL2 path arms immediately; the WebGPU path is a no-op until the device resolves). */
|
|
40
|
+
arm: () => void;
|
|
41
|
+
suspend: (reason?: "tab-hidden" | "off-screen" | "off-screen-io" | "manual") => void;
|
|
42
|
+
resume: (reason?: "tab-hidden" | "off-screen" | "off-screen-io" | "manual") => void;
|
|
43
|
+
wake: () => void;
|
|
44
|
+
renderAt: (timeSec: number) => void;
|
|
45
|
+
dispose: () => void;
|
|
46
|
+
readonly reducedMotion: boolean;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Pick the backend + return the uniform handle. WebGPU-first (`supportsWebGPU()` AND a
|
|
50
|
+
* `setupWGPU` callback is provided); otherwise the WebGL2 fallback. The decision is
|
|
51
|
+
* made ONCE at construction (a mount-time device-tier choice, not a reactive one).
|
|
52
|
+
*/
|
|
53
|
+
export declare function createGpuSubstrate(canvas: HTMLCanvasElement, options: GpuSubstrateOptions): GpuSubstrateHandle;
|
|
54
|
+
export type { WebGPUCanvasFrame, WebGLCanvasFrame };
|