@mkbabb/glass-ui 5.0.0 → 6.0.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 +30 -27
- package/dist/DropdownMenuTrigger-BzQtd9lt.js +65 -0
- package/dist/{FadingScroll-BSRLqQCx.js → FadingScroll-C1ZWEjmG.js} +32 -25
- package/dist/{Input-DKf-XwUM.js → Input-B4WQ_CMc.js} +1 -1
- package/dist/{PagerDots-BP6jh7z4.js → PagerDots-BoTQ7g5l.js} +123 -95
- package/dist/{accent-tone-solve-CBw3L0cy.js → accent-tone-solve-Dii9ePhK.js} +1 -1
- package/dist/animated-digit.js +1 -1
- package/dist/aurora.js +324 -314
- package/dist/blob-config.d.ts +0 -4
- package/dist/blob-config.js +1 -1
- package/dist/blob.js +280 -261
- package/dist/{button-BXzhydVB.js → button-32mg6xA8.js} +63 -56
- package/dist/button.js +1 -1
- package/dist/canvas.js +1 -1
- package/dist/{CardAction-2uUvjMQK.js → card-16xmzIr3.js} +29 -11
- package/dist/card.js +1 -1
- package/dist/carousel.d.ts +1 -2
- package/dist/carousel.js +26 -95
- package/dist/chip.d.ts +0 -9
- package/dist/chip.js +1 -1
- package/dist/collapsible.js +1 -1
- package/dist/color-swatch.js +1 -0
- package/dist/color.js +87 -3
- package/dist/{CommandShortcut-fmdbsEJL.js → command-BjPjUU9z.js} +56 -51
- package/dist/command.js +1 -1
- package/dist/completion-seal.js +64 -55
- package/dist/components/_shared/ModalOverlay.vue.d.ts +5 -52
- package/dist/components/_shared/field-surfaces.css +1 -0
- package/dist/components/_shared/menuItemVariants.d.ts +2 -2
- package/dist/components/_shared/useMotionAxis.d.ts +2 -2
- package/dist/components/_shared/valueDomain.d.ts +6 -0
- package/dist/components/alert/index.d.ts +1 -1
- package/dist/components/animated-digit/AnimatedDigit.vue.d.ts +1 -1
- package/dist/components/aurora/Aurora.vue.d.ts +7 -1
- package/dist/components/aurora/composables/runtime.d.ts +5 -3
- package/dist/components/aurora/composables/useAurora.d.ts +4 -2
- package/dist/components/avatar/AvatarImage.vue.d.ts +3 -1
- package/dist/components/badge/index.d.ts +2 -2
- package/dist/components/blob/Blob.vue.d.ts +11 -0
- package/dist/components/blob/composables/useMetaballRenderer.d.ts +2 -0
- package/dist/components/button/Button.vue.d.ts +4 -2
- package/dist/components/button/index.d.ts +2 -2
- package/dist/components/card/Card.vue.d.ts +4 -4
- package/dist/components/card/ScrollCard.vue.d.ts +1 -1
- package/dist/components/card/styles.css +1 -0
- package/dist/components/carousel/Carousel.vue.d.ts +2 -2
- package/dist/components/carousel/CarouselNext.vue.d.ts +1 -1
- package/dist/components/carousel/CarouselPrevious.vue.d.ts +1 -1
- package/dist/components/carousel/index.d.ts +0 -1
- package/dist/components/carousel/useCarousel.d.ts +2 -2
- package/dist/components/combobox/ComboboxList.vue.d.ts +1 -1
- package/dist/components/combobox/index.d.ts +1 -3
- package/dist/components/command/Command.vue.d.ts +1 -1
- package/dist/components/command/CommandDialog.vue.d.ts +9 -6
- package/dist/components/completion-seal/styles.css +1 -0
- package/dist/components/constellation/Constellation.vue.d.ts +6 -1
- package/dist/components/constellation/composables/useConstellation.d.ts +3 -16
- package/dist/components/constellation/constants.d.ts +6 -16
- package/dist/components/constellation/constellationField.d.ts +3 -5
- package/dist/components/constellation/constellationInteraction.d.ts +1 -1
- package/dist/components/constellation/constellationRender.d.ts +11 -21
- package/dist/components/constellation/constellationTypes.d.ts +12 -9
- package/dist/components/constellation/index.d.ts +1 -1
- package/dist/components/controls/DarkModeToggle.vue.d.ts +0 -2
- package/dist/components/data-table/DataTable.vue.d.ts +14 -2
- package/dist/components/data-table/index.d.ts +1 -2
- package/dist/components/data-table/types.d.ts +26 -1
- package/dist/components/deck/constants.d.ts +0 -10
- package/dist/components/deck/index.d.ts +0 -1
- package/dist/components/dialog/DialogContent.vue.d.ts +7 -1
- package/dist/components/dialog/index.d.ts +0 -1
- package/dist/components/dock/DockControl.vue.d.ts +4 -4
- package/dist/components/dock/DockStack.vue.d.ts +2 -2
- package/dist/components/dock/GlassDock.vue.d.ts +1 -0
- package/dist/components/dock/composables/dockMorphContext.d.ts +2 -0
- package/dist/components/dock/composables/dockMorphMeasure.d.ts +11 -1
- package/dist/components/dock/composables/useDockClickIntegrity.d.ts +4 -0
- package/dist/components/dock/composables/useDockOverflowFit.d.ts +3 -3
- package/dist/components/dock/composables/useDockPopover.d.ts +2 -0
- package/dist/components/dock/composables/useDockShellProps.d.ts +7 -0
- package/dist/components/dock/composables/useDockState.d.ts +2 -2
- package/dist/components/dock/constants.d.ts +0 -12
- package/dist/components/dock/index.d.ts +1 -0
- package/dist/components/dock/styles/adaptive-legibility.css +1 -0
- package/dist/components/dock/styles/controls/icon-button.css +1 -0
- package/dist/{styles/dock-controls → components/dock/styles/controls}/touch-floor.css +1 -1
- package/dist/components/dock/styles/controls.css +1 -0
- package/dist/{styles/dock → components/dock/styles}/density.css +1 -1
- package/dist/components/dock/styles/dock.css +1 -0
- package/dist/components/dock/styles/index.css +1 -0
- package/dist/components/dock/styles/layer-group.css +1 -0
- package/dist/components/dock/styles/layers.css +1 -0
- package/dist/components/dock/styles/overflow.css +1 -0
- package/dist/components/dock/styles/popover.css +1 -0
- package/dist/components/dock/styles/shape.css +1 -0
- package/dist/components/dock/styles/shell.css +1 -0
- package/dist/components/drawer/Drawer.vue.d.ts +3 -3
- package/dist/components/drawer/composables/drawerSnapContext.d.ts +3 -1
- package/dist/components/drawer/constants.d.ts +6 -6
- package/dist/components/drawer/index.d.ts +4 -6
- package/dist/components/drawer/styles.css +1 -0
- package/dist/components/dropdown-menu/DropdownMenuContent.vue.d.ts +1 -1
- package/dist/components/dropdown-menu/DropdownMenuTrigger.vue.d.ts +9 -3
- package/dist/components/dropdown-menu/index.d.ts +0 -1
- package/dist/components/easing/EasingConfigurator.vue.d.ts +1 -1
- package/dist/components/easing/EasingPicker.vue.d.ts +2 -2
- package/dist/components/easing/composables/useEasingPicker.d.ts +4 -0
- package/dist/components/easing/constants.d.ts +2 -0
- package/dist/components/fading-scroll/composables/useFadingScroll.d.ts +3 -3
- package/dist/components/fourier-field/FourierField.vue.d.ts +7 -1
- package/dist/components/fourier-field/composables/useFourierField.d.ts +2 -1
- package/dist/components/handmark/HandMark.vue.d.ts +1 -1
- package/dist/components/handmark/geometry.d.ts +1 -1
- package/dist/components/handmark/index.d.ts +4 -6
- package/dist/components/icon-chip/styles.css +1 -0
- package/dist/components/index.d.ts +0 -1
- package/dist/components/infinite-scroll/index.d.ts +1 -0
- package/dist/components/instrument-chassis/styles.css +1 -0
- package/dist/components/labeled-field/LabeledField.vue.d.ts +12 -2
- package/dist/components/labeled-field/LabeledInput.vue.d.ts +10 -3
- package/dist/components/liquid-grid/LiquidGrid.vue.d.ts +4 -0
- package/dist/components/liquid-grid/composables/useLiquidGrid.d.ts +2 -1
- package/dist/components/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/pager-dots/PagerDots.vue.d.ts +1 -1
- package/dist/components/popover/PopoverContent.vue.d.ts +1 -1
- package/dist/components/progress/Progress.vue.d.ts +5 -40
- package/dist/components/progress/ProgressDefault.vue.d.ts +1 -17
- package/dist/components/progress/ProgressGradient.vue.d.ts +1 -0
- package/dist/components/progress/ProgressLiquid.vue.d.ts +1 -0
- package/dist/components/progress/index.d.ts +0 -5
- package/dist/components/progress/valueMarks.css +1 -0
- package/dist/components/pulse/Pulse.vue.d.ts +2 -2
- package/dist/components/scroll-progress-rim/styles.css +1 -0
- package/dist/components/search/FuzzySearch.vue.d.ts +4 -2
- package/dist/components/search/SearchBar.vue.d.ts +2 -2
- package/dist/components/search/searchVariants.d.ts +1 -1
- package/dist/components/select/SelectContent.vue.d.ts +1 -1
- package/dist/components/select/index.d.ts +0 -2
- package/dist/components/skeleton/Skeleton.vue.d.ts +1 -1
- package/dist/components/slider/Slider.vue.d.ts +2 -0
- package/dist/components/split-chars/SplitChars.vue.d.ts +1 -1
- package/dist/components/surface/Surface.vue.d.ts +1 -1
- package/dist/components/table/Table.vue.d.ts +4 -0
- package/dist/components/tabs/SegmentedTabs.vue.d.ts +10 -0
- package/dist/components/tabs/index.d.ts +1 -1
- package/dist/components/tabs/styles/drag.css +1 -0
- package/dist/components/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/timeline/ContinuousTimeline.vue.d.ts +1 -1
- package/dist/components/timeline/GlassTimeline.vue.d.ts +4 -4
- package/dist/components/toast/Toast.vue.d.ts +3 -3
- package/dist/components/toast/use-toast.d.ts +4 -4
- package/dist/components/typewriter/TypewriterText.vue.d.ts +1 -4
- package/dist/components/typewriter/composables/useTypewriter.d.ts +0 -1
- package/dist/components/typewriter/utils/graphemes.d.ts +1 -0
- package/dist/components/watercolor-dot/WatercolorDot.vue.d.ts +2 -2
- package/dist/composables/glass/useGlassBackdropLuminance.d.ts +31 -0
- package/dist/composables/glass/webgpu/rendererStatus.d.ts +13 -0
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +3 -0
- package/dist/composables/glass/webgpu/webgpuCanvasTypes.d.ts +2 -0
- package/dist/composables/motion/springProjection.d.ts +16 -0
- package/dist/composables/motion/useAnimatedNumber.d.ts +1 -6
- package/dist/composables/motion/useCountup.d.ts +1 -6
- package/dist/composables/motion/useDockCtaReceive.d.ts +55 -0
- package/dist/composables/motion/useElementMorph.d.ts +8 -0
- package/dist/composables/motion/useLiquidPress.d.ts +12 -4
- package/dist/composables/motion/useNumericTransition.d.ts +2 -0
- package/dist/composables/motion/useTextHighlight.d.ts +2 -1
- package/dist/configurator-CSENXXSy.js +311 -0
- package/dist/configurator.js +2 -3
- package/dist/constellation.js +235 -571
- package/dist/controls.js +55 -63
- package/dist/{createCanvasLifecycle-DlrcvWbb.js → createCanvasLifecycle-hsFkQVdl.js} +32 -32
- package/dist/dark-DIH-blY1.js +70 -0
- package/dist/dark.d.ts +1 -2
- package/dist/dark.js +2 -20
- package/dist/{DataTable-Bxya8nBn.js → data-table-DveMdgBM.js} +231 -120
- package/dist/data-table.js +2 -2
- package/dist/deck.js +10 -21
- package/dist/dialog-BzQxKrUr.js +281 -0
- package/dist/dialog.js +2 -3
- package/dist/dock.js +561 -428
- package/dist/{dockContext-d-WpJN2Z.js → dockContext-4S9qP0Z4.js} +1 -1
- package/dist/dom.js +196 -7
- package/dist/drawer.js +111 -66
- package/dist/dropdown-menu-DORIA52F.js +378 -0
- package/dist/dropdown-menu.js +3 -2
- package/dist/easing.d.ts +0 -9
- package/dist/easing.js +334 -187
- package/dist/expandable-container.js +12 -4
- package/dist/fading-scroll.js +1 -1
- package/dist/focus-scope.js +1 -1
- package/dist/forms.js +37 -78
- package/dist/fourier-field.js +273 -263
- package/dist/fourier-math.d.ts +0 -6
- package/dist/fourier-math.js +112 -2
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +131 -195
- package/dist/handmark.d.ts +0 -2
- package/dist/handmark.js +82 -82
- package/dist/header-ribbon.js +41 -30
- package/dist/{IconChip-CwLmBJ_K.js → icon-chip-BWuxz1-u.js} +1 -1
- package/dist/icon-chip.js +1 -1
- package/dist/{IconTooltip-D9sbK-Mk.js → icon-tooltip-CO6rw0dZ.js} +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/infinite-scroll.d.ts +0 -1
- package/dist/infinite-scroll.js +17 -15
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +104 -2
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +95 -69
- package/dist/liquid-grid.js +173 -162
- package/dist/metric-badge.js +3 -3
- package/dist/metric-cell.js +2 -2
- package/dist/metric-stack.js +1 -1
- package/dist/motion-core.js +15 -16
- package/dist/motion-curves.d.ts +0 -20
- package/dist/motion.js +59 -58
- package/dist/{Notification-DQv2cOh9.js → notification-DVs7ODMg.js} +17 -8
- package/dist/notification.js +1 -1
- package/dist/{NumberFieldContent-BkE7xPS9.js → number-field-PvkGedHk.js} +2 -2
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +1 -1
- package/dist/paper-backdrop.js +31 -2
- package/dist/{PopoverContent-DOtszFWK.js → popover-WMgyRSyN.js} +7 -2
- package/dist/popover.js +1 -1
- package/dist/procedural-color.wgsl-B9mLK7v0.js +377 -0
- package/dist/progress-C-HHuFZy.js +192 -0
- package/dist/progress.js +2 -2
- package/dist/pulse.js +3 -1
- package/dist/reactive.js +19 -3
- package/dist/rendererStatus-C2-zC2Q-.js +40 -0
- package/dist/{resolveCanvasColor-B3L-akX0.js → resolveCanvasColor-yarP5bdk.js} +1 -1
- package/dist/scroll-progress-rim.js +1 -1
- package/dist/search.js +187 -146
- package/dist/{SelectScrollDownButton-CDtwaWkZ.js → select-BIv4R3Ir.js} +109 -44
- package/dist/select.js +2 -4
- package/dist/separator-CBU94kTM.js +62 -0
- package/dist/separator.js +1 -1
- package/dist/sidebar.js +1 -1
- package/dist/slider-Cc_qw6GA.js +166 -0
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +43 -43
- package/dist/styles/accessibility.css +1 -0
- package/dist/styles/components.css +1 -1
- package/dist/styles/glass/control-surfaces.css +1 -1
- package/dist/styles/glass/glass-capsule.css +1 -1
- package/dist/styles/glass/ladder.css +1 -1
- package/dist/styles/glass/liquid-fill.css +1 -1
- package/dist/styles/glass/material-roles.css +1 -0
- package/dist/styles/glass/material.css +1 -1
- package/dist/styles/glass/surface-axis.css +1 -1
- package/dist/styles/glass/surfaces-pager.css +1 -1
- package/dist/styles/glass/surfaces.css +1 -1
- package/dist/styles/glass.css +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/styles/theme/bridges.css +1 -1
- package/dist/styles/tokens/glass-fx.css +1 -1
- package/dist/styles/tokens/glass.css +1 -1
- package/dist/styles/tokens/offsets.css +1 -1
- package/dist/styles/tokens/scale-paper.css +1 -1
- package/dist/styles/tokens/scheme-spring.css +1 -1
- package/dist/styles/tokens/shadow.css +1 -1
- package/dist/styles/tokens.d.ts +53 -0
- package/dist/styles/tokens.ts +58 -0
- package/dist/styles/typography/scale.css +1 -1
- package/dist/styles/typography/semantic.css +1 -1
- package/dist/styles/typography/utilities.css +1 -1
- package/dist/styles/utilities/base.css +1 -1
- package/dist/styles/utilities/btn.css +1 -1
- package/dist/styles/utilities/components.css +1 -1
- package/dist/styles/utilities.css +1 -1
- package/dist/{Switch-BPBfhMU3.js → switch-Boj4Ucn5.js} +1 -1
- package/dist/switch.js +1 -1
- package/dist/tabs.js +51 -45
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/{ToggleGroupItem-DNWx2aSW.js → toggle-group-BPchFsns.js} +10 -7
- package/dist/toggle-group.js +1 -1
- package/dist/tokens.d.ts +1 -53
- package/dist/tokens.js +1 -1
- package/dist/{TooltipProvider-GtfYdSVf.js → tooltip-BmOQJzh0.js} +1 -0
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +151 -166
- package/dist/{useAccentTone-D25DxviG.js → useAccentTone-C-p6WdPe.js} +1 -1
- package/dist/{useAnimatedNumber-2XC4aRB6.js → useAnimatedNumber-BRVVaFFc.js} +1 -1
- package/dist/useDockCtaReceive-CK-RLASa.js +257 -0
- package/dist/{useGooMorph-CU1pwuC6.js → useGooMorph-D1F6QJlH.js} +140 -59
- package/dist/{useIntersectionPause-Cmt5Tnv9.js → useIntersectionPause-B-dbxl9w.js} +1 -1
- package/dist/useLiquidPress-BYcwwGQV.js +68 -0
- package/dist/{useRAFLoop-CvOo_kgb.js → useRAFLoop-BtwQ9DyY.js} +1 -1
- package/dist/{useScrollProgress-C-yImzhU.js → useScrollProgress-DZI4nf4v.js} +1 -1
- package/dist/{useSelectionGroup-Btpf24aY.js → useSelectionGroup-LDzBdR1Y.js} +3 -3
- package/dist/{useTabRovingFocus-CG1H1k1J.js → useTabRovingFocus-DkLYwo4L.js} +1 -1
- package/dist/{useTouchGate-BlegwvwL.js → useTouchGate-Cj5fOkTv.js} +1 -1
- package/dist/valueDomain-B8L04u3U.js +13 -0
- package/dist/watercolor-dot.js +5 -3
- package/package.json +5 -12
- package/src/styles/accessibility.css +48 -0
- package/src/styles/glass/glass-capsule.css +2 -2
- package/src/styles/glass/ladder.css +1 -1
- package/src/styles/glass/material-roles.css +18 -0
- package/src/styles/glass/material.css +18 -12
- package/src/styles/glass.css +5 -5
- package/src/styles/index.css +38 -30
- package/src/styles/theme/bridges.css +0 -6
- package/src/styles/tokens/glass-fx.css +1 -5
- package/src/styles/tokens/glass.css +1 -2
- package/src/styles/tokens/offsets.css +0 -1
- package/src/styles/tokens/property-regs.css +11 -10
- package/src/styles/tokens/scale-paper.css +0 -1
- package/src/styles/tokens/scheme-motion.css +3 -0
- package/src/styles/tokens/scheme-spring.css +0 -10
- package/src/styles/tokens/shadow.css +3 -29
- package/src/styles/tokens.ts +58 -0
- package/src/styles/typography/scale.css +5 -2
- package/src/styles/typography/semantic.css +5 -5
- package/src/styles/typography/utilities.css +5 -5
- package/src/styles/utilities/base.css +5 -5
- package/src/styles/utilities/btn.css +6 -27
- package/src/styles/utilities.css +4 -6
- package/dist/ConfiguratorRow-BV6zPjTM.js +0 -151
- package/dist/DialogContent-Bl4v10AC.js +0 -192
- package/dist/DialogFooter-C0v4Hz2F.js +0 -168
- package/dist/PaperBackdrop-BYwE8_kg.js +0 -31
- package/dist/Progress-uWLyXE7J.js +0 -308
- package/dist/SelectGroup-BuEptUsa.js +0 -31
- package/dist/SelectSeparator-4QGephvr.js +0 -49
- package/dist/Separator-DqJ6PfOd.js +0 -44
- package/dist/color-Bp5jmv4Z.js +0 -86
- package/dist/components/carousel/GlassCarouselPager.vue.d.ts +0 -50
- package/dist/components/combobox/ComboboxSeparator.vue.d.ts +0 -18
- package/dist/components/combobox/ComboboxViewport.vue.d.ts +0 -18
- package/dist/components/constellation/composables/constellationGLSetup.d.ts +0 -10
- package/dist/components/constellation/composables/constellationWGPUSetup.d.ts +0 -19
- package/dist/components/constellation/composables/uniformBridgeWGPU.d.ts +0 -66
- package/dist/components/constellation/shaders/constellation-lines.glsl.d.ts +0 -2
- package/dist/components/constellation/shaders/constellation-lines.wgsl.d.ts +0 -1
- package/dist/components/constellation/shaders/constellation-points.glsl.d.ts +0 -2
- package/dist/components/constellation/shaders/constellation-points.wgsl.d.ts +0 -1
- package/dist/components/deck/composables/useDeckSpring.d.ts +0 -22
- package/dist/components/dialog/DialogScrollContent.vue.d.ts +0 -33
- package/dist/components/progress/ProgressSectioned.vue.d.ts +0 -47
- package/dist/components/progress/useProgressGeometry.d.ts +0 -60
- package/dist/components/section/Section.vue.d.ts +0 -73
- package/dist/components/section/index.d.ts +0 -1
- package/dist/components/stacked-icons/StackedIconGroup.vue.d.ts +0 -30
- package/dist/components/stacked-icons/index.d.ts +0 -2
- package/dist/components/stacked-icons/types.d.ts +0 -19
- package/dist/dropdown-menu-DaGlVdp9.js +0 -421
- package/dist/math-CIEcwsYi.js +0 -112
- package/dist/procedural-color.wgsl-ByduxnzV.js +0 -4
- package/dist/slider-Cxuj_W_H.js +0 -151
- package/dist/stacked-icons.d.ts +0 -1
- package/dist/stacked-icons.js +0 -98
- package/dist/styles/cards.css +0 -1
- package/dist/styles/completion-seal.css +0 -1
- package/dist/styles/dock/adaptive-legibility.css +0 -1
- package/dist/styles/dock/dock.css +0 -1
- package/dist/styles/dock/layer-group.css +0 -1
- package/dist/styles/dock/layers.css +0 -1
- package/dist/styles/dock/overflow.css +0 -1
- package/dist/styles/dock/popover.css +0 -1
- package/dist/styles/dock/shape.css +0 -1
- package/dist/styles/dock/shell.css +0 -1
- package/dist/styles/dock-controls/icon-button.css +0 -1
- package/dist/styles/dock-controls.css +0 -1
- package/dist/styles/dock.css +0 -1
- package/dist/styles/drawer.css +0 -1
- package/dist/styles/icon-chip.css +0 -1
- package/dist/styles/instrument-chassis.css +0 -1
- package/dist/styles/scroll-progress-rim.css +0 -1
- package/dist/styles/select.css +0 -1
- package/dist/styles/tabs/segmented-tabs-drag.css +0 -1
- package/dist/styles/utilities/animate.css +0 -0
- package/dist/useConfiguratorState-Dq35N_7t.js +0 -167
- package/dist/useDockCtaReceive-BgMmeINo.js +0 -161
- package/dist/useGlobalDark-DjKMEQE2.js +0 -53
- package/dist/useGpuSubstrate-DcY584kE.js +0 -347
- package/dist/useInterval-ZATRi-1T.js +0 -18
- package/dist/useKeyboardShortcuts-ynVmNFo3.js +0 -104
- package/dist/useLiquidPress-BXNHydZh.js +0 -40
- package/dist/useTextHighlight-C46Le9u_.js +0 -72
- package/dist/useViewportReady-c0isoKL8.js +0 -191
- package/src/styles/card-scroll.css +0 -189
- package/src/styles/cards.css +0 -485
- package/src/styles/completion-seal.css +0 -205
- package/src/styles/configurator.css +0 -359
- package/src/styles/dialog-placement.css +0 -68
- package/src/styles/dock/adaptive-legibility.css +0 -119
- package/src/styles/dock/crossfade.css +0 -139
- package/src/styles/dock/cta-seat.css +0 -87
- package/src/styles/dock/density.css +0 -458
- package/src/styles/dock/dock.css +0 -199
- package/src/styles/dock/fisheye.css +0 -81
- package/src/styles/dock/layer-group.css +0 -329
- package/src/styles/dock/layers.css +0 -438
- package/src/styles/dock/morph.css +0 -455
- package/src/styles/dock/overflow.css +0 -332
- package/src/styles/dock/popover.css +0 -249
- package/src/styles/dock/search.css +0 -68
- package/src/styles/dock/section.css +0 -59
- package/src/styles/dock/shape.css +0 -188
- package/src/styles/dock/shell-regions.css +0 -73
- package/src/styles/dock/shell.css +0 -500
- package/src/styles/dock-controls/dark-mode-toggle.css +0 -123
- package/src/styles/dock-controls/icon-button.css +0 -221
- package/src/styles/dock-controls/tab-button.css +0 -143
- package/src/styles/dock-controls/touch-floor.css +0 -119
- package/src/styles/dock-controls/triggers.css +0 -157
- package/src/styles/dock-controls.css +0 -92
- package/src/styles/dock.css +0 -219
- package/src/styles/drawer.css +0 -434
- package/src/styles/feedback-tone.css +0 -104
- package/src/styles/icon-chip.css +0 -256
- package/src/styles/instrument-chassis.css +0 -449
- package/src/styles/menu.css +0 -187
- package/src/styles/scroll-progress-rim.css +0 -87
- package/src/styles/segmented-tabs.css +0 -424
- package/src/styles/select.css +0 -201
- package/src/styles/tabs/segmented-tabs-drag.css +0 -200
- package/src/styles/utilities/animate.css +0 -29
- /package/dist/{coalesce-metric-B8o7zT9u.js → coalesce-metric-znAcLzkB.js} +0 -0
- /package/dist/{CollapsibleContent-DiHcB_HH.js → collapsible-bPzS1aQk.js} +0 -0
- /package/dist/{compile-C55K3P9g.js → compile-DK3Fri1B.js} +0 -0
- /package/dist/{styles → components/_shared}/feedback-tone.css +0 -0
- /package/dist/{styles → components/_shared}/menu.css +0 -0
- /package/dist/{styles → components/card}/card-scroll.css +0 -0
- /package/dist/{styles/configurator.css → components/configurator/styles.css} +0 -0
- /package/dist/{styles/dock-controls → components/controls}/dark-mode-toggle.css +0 -0
- /package/dist/{styles/dialog-placement.css → components/dialog/placement.css} +0 -0
- /package/dist/{styles/dock-controls → components/dock/styles/controls}/tab-button.css +0 -0
- /package/dist/{styles/dock-controls → components/dock/styles/controls}/triggers.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/crossfade.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/cta-seat.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/fisheye.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/morph.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/search.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/section.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/shell-regions.css +0 -0
- /package/dist/{styles/segmented-tabs.css → components/tabs/styles/segmented.css} +0 -0
- /package/dist/{constants-D8lSMkOz.js → constants-DRZmNIY-.js} +0 -0
- /package/dist/{createContext-BQ1Gy_LB.js → createContext-FU0n5MGK.js} +0 -0
- /package/dist/{flow.glsl-CVqPSj8_.js → flow.glsl-DEGFGE11.js} +0 -0
- /package/dist/{FocusScope-BzKwhsBn.js → focus-scope-DUTKveod.js} +0 -0
- /package/dist/{InstrumentChassis-Dss5Tjcm.js → instrument-chassis-Cvstg4_U.js} +0 -0
- /package/dist/{Label-C84TaQiw.js → label-Cj38tJKG.js} +0 -0
- /package/dist/{menuItemVariants-DbO-Fr74.js → menuItemVariants-D6AOzzND.js} +0 -0
- /package/dist/{pointerFieldMappings-4VtmkOWv.js → pointerFieldMappings-CZojkgKj.js} +0 -0
- /package/dist/{presets-B07HzyKd.js → presets-CxeNvxuO.js} +0 -0
- /package/dist/{prng-B0PLRmR6.js → prng-Dz2_9RJu.js} +0 -0
- /package/dist/{scrollReader-DzYqPQ6V.js → scrollReader-C2oK9Hb8.js} +0 -0
- /package/dist/{supportsCssTimeline-Ie4xJFbD.js → supportsCssTimeline-Dz-GVxXM.js} +0 -0
- /package/dist/{Toaster-C_-WeU9W.js → toast-kAbchIN2.js} +0 -0
- /package/dist/{useControlSize-DJwe-7ZQ.js → useControlSize-CFfOk8I-.js} +0 -0
- /package/dist/{useDocumentVisibility-CpJGUgcJ.js → useDocumentVisibility-YeBDGqtI.js} +0 -0
- /package/dist/{useDragMorph-65ihHePq.js → useDragMorph-7ygF9O0m.js} +0 -0
- /package/dist/{useDragVelocity-BWcNMCux.js → useDragVelocity-CbMZEBaC.js} +0 -0
- /package/dist/{useFuzzySearch-KslRxiJY.js → useFuzzySearch-BOgep7RE.js} +0 -0
- /package/dist/{useLeadTrail-DOH4XkL1.js → useLeadTrail-BYu8dq4G.js} +0 -0
- /package/dist/{usePointerVelocityField-CwXyeW0Z.js → usePointerVelocityField-BdvnO0py.js} +0 -0
- /package/dist/{useResizeObserver-DDuoBeBo.js → useResizeObserver-BcUTquV7.js} +0 -0
- /package/dist/{useResolveTokenColor-DVT5kwv6.js → useResolveTokenColor-C07e-qaT.js} +0 -0
- /package/dist/{useRoutePointer-DL7I0gY4.js → useRoutePointer-BDNMFN73.js} +0 -0
- /package/dist/{useSpringMount-CNvvgGiC.js → useSpringMount-C6-DBx4e.js} +0 -0
- /package/dist/{useTimer-CkDV8SC2.js → useTimer-D8koDvJS.js} +0 -0
- /package/dist/{useUserInvalidAria-Bkruei7M.js → useUserInvalidAria-Cr4nR3tu.js} +0 -0
- /package/dist/{vReveal-DUmiEkX_.js → vReveal-DZfWl9XI.js} +0 -0
- /package/dist/{vSpecular-DlYN0UZy.js → vSpecular-CQFmLNzA.js} +0 -0
- /package/dist/{writeVelocityWeight-D1rvdxJu.js → writeVelocityWeight-D_AcvTsE.js} +0 -0
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { DialogTrigger as DrawerTrigger, DialogClose as DrawerClose, } from "reka-ui";
|
|
2
2
|
/**
|
|
3
3
|
* Drawer drag/slide direction (BB.W-DRAWER-ABROGATE). `bottom` (default) + `top`
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* a full-slide (no detents).
|
|
4
|
+
* can carry peek/half/full detents; `left`/`right` are the side-lens full-slide
|
|
5
|
+
* axes. Only `mode="live-behind"` resolves a default ladder (bottom/top →
|
|
6
|
+
* `[0.12, 0.5, 1]`); ordinary modal drawers without `snapPoints` rest fully open.
|
|
8
7
|
*/
|
|
9
8
|
export type DrawerDirection = "top" | "bottom" | "left" | "right";
|
|
10
9
|
/**
|
|
@@ -27,7 +26,6 @@ export type DrawerMode = "modal" | "live-behind";
|
|
|
27
26
|
*/
|
|
28
27
|
export type DrawerStage = "none" | "dim" | "scale" | "immersive";
|
|
29
28
|
export { default as Drawer } from "./Drawer.vue";
|
|
30
|
-
export { default as DrawerOverlay } from "./DrawerOverlay.vue";
|
|
31
29
|
export { default as DrawerContent } from "./DrawerContent.vue";
|
|
32
30
|
export { default as DrawerHeader } from "./DrawerHeader.vue";
|
|
33
31
|
export { default as DrawerFooter } from "./DrawerFooter.vue";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@property --glass-drawer-t { syntax: "<number>"; inherits: false; initial-value: 0; } @property --stage-t { syntax: "<number>"; inherits: false; initial-value: 0; } [data-stage-scrim][data-stage-flip], [data-stage-wrapper][data-stage-flip] { transition: --stage-t var(--spring-snappy-duration, 0.4s) var(--spring-snappy, ease); } :root { --drawer-inset-block-end: 0px; --drawer-handle-w: 2.25rem; --drawer-handle-h: 0.3125rem; --drawer-handle-color: var(--muted-foreground); --drawer-handle-opacity: 0.45; --drawer-handle-opacity-active: 0.85; --drawer-snap-rule-color: color-mix(in srgb, var(--border) 60%, transparent); } .glass-drawer { position: fixed; inset-inline: 0; bottom: 0; z-index: var(--z-modal); display: flex; flex-direction: column; height: auto; max-height: 97vh; margin-top: 6rem; border-bottom: 0; border-start-start-radius: var(--radius-panel); border-start-end-radius: var(--radius-panel); } .glass-drawer[data-mode="live-behind"] { z-index: calc(var(--z-dock) - 1); } .glass-drawer[data-surface="veil"] { --veil-bg: color-mix( in oklab, var(--glass-bg-quiet), var(--glass-tint-source) var(--glass-tint-strength) ); --veil-blur: var(--glass-blur-quiet); background: var(--veil-bg); -webkit-backdrop-filter: var(--veil-blur); backdrop-filter: var(--veil-blur); -webkit-backdrop-filter: var(--veil-blur); border: none; box-shadow: none; } .glass-drawer[data-surface="opaque"] { --glass-level: 0; --glass-tint-strength: 0%; background: color-mix(in srgb, var(--card), transparent 0%); -webkit-backdrop-filter: none; backdrop-filter: none; -webkit-backdrop-filter: none; } .glass-drawer[data-glass-drawer-snap-points="true"] { height: 100%; max-height: 100%; margin-top: 0; } .glass-drawer[data-glass-drawer-snap-points="true"][data-glass-drawer-direction="bottom"] { bottom: var(--drawer-inset-block-end); height: calc(100% - var(--drawer-inset-block-end)); max-height: calc(100% - var(--drawer-inset-block-end)); } .glass-drawer[data-glass-drawer-snap-points="true"] { --sheet-descent: clamp(0, calc(var(--stage-t) / 0.85), 1); --sheet-freeze: clamp(0, calc((var(--stage-t) - 0.85) / 0.15), 1); --sheet-crown: color-mix( in oklab, color-mix( in oklab, var(--glass-bg-overlay), var(--glass-tint-source) var(--glass-tint-strength) ), var(--glass-bg-sheet) calc(var(--sheet-descent) * 100%) ); --sheet-solid: color-mix( in oklab, var(--card), var(--glass-capsule-warm) var(--glass-capsule-warm-floor, 16%) ); background: color-mix( in oklab, var(--sheet-crown), var(--sheet-solid) calc(var(--sheet-freeze) * 100%) ); --glass-blur-engage-t: calc( clamp(0, calc(var(--glass-drawer-t) / var(--glass-blur-engage-knee, 0.35)), 1) * (1 - var(--sheet-freeze)) ); -webkit-backdrop-filter: blur( calc(var(--glass-blur-overlay-radius, 20px) * var(--glass-blur-engage-t)) ) saturate(1.6); backdrop-filter: blur( calc(var(--glass-blur-overlay-radius, 20px) * var(--glass-blur-engage-t)) ) saturate(1.6); } .glass-drawer[data-glass-drawer-snap-points="true"][data-surface="opaque"] { background: color-mix(in srgb, var(--card), transparent 0%); -webkit-backdrop-filter: none; backdrop-filter: none; -webkit-backdrop-filter: none; } .glass-drawer[data-glass-drawer-direction="top"] { bottom: auto; top: 0; margin-top: 0; margin-bottom: 6rem; border-top: 0; border-bottom: 1px solid var(--glass-border-overlay); border-radius: 0 0 var(--radius-panel) var(--radius-panel); } .glass-drawer[data-glass-drawer-direction="left"], .glass-drawer[data-glass-drawer-direction="right"] { inset-inline: auto; inset-block: 0; height: 100%; max-height: 100%; width: min(24rem, 92vw); margin: 0; border: 1px solid var(--glass-border-overlay); } .glass-drawer[data-glass-drawer-direction="left"] { left: 0; border-left: 0; border-radius: 0 var(--radius-panel) var(--radius-panel) 0; } .glass-drawer[data-glass-drawer-direction="right"] { right: 0; border-right: 0; border-radius: var(--radius-panel) 0 0 var(--radius-panel); } .glass-drawer-handle { flex-shrink: 0; display: flex; align-items: center; justify-content: center; min-block-size: var(--touch-target, 2.75rem); padding-block: 0.75rem 0.5rem; touch-action: none; cursor: grab; } .glass-drawer-handle:focus-visible { outline: none; } .glass-drawer-handle:focus-visible .glass-drawer-grip { opacity: var(--drawer-handle-opacity-active); box-shadow: 0 0 0 3px var(--focus-ring-color); } .glass-drawer-grip { display: block; width: var(--drawer-handle-w); height: var(--drawer-handle-h); border-radius: var(--radius-pill); background-color: var(--drawer-handle-color); opacity: var(--drawer-handle-opacity); transition: opacity var(--duration-fast) var(--ease-out), width var(--duration-fast) var(--ease-out); } .glass-drawer-handle[data-dragging] .glass-drawer-grip, .glass-drawer-handle:active .glass-drawer-grip, .glass-drawer:hover .glass-drawer-grip { opacity: var(--drawer-handle-opacity-active); width: calc(var(--drawer-handle-w) * 1.15); } .glass-drawer-snap-rule { height: 1px; margin-inline: calc(var(--radius-panel) * -0.5); border: 0; background-color: var(--drawer-snap-rule-color); } [data-stage-scrim] { background: color-mix( in srgb, var(--overlay-scrim-ink) calc((0.28 + clamp(0, var(--stage-t), 1) * 0.44) * 100%), transparent ); } [data-stage-wrapper][data-stage-scale] { scale: calc(1 - 0.05 * clamp(0, var(--stage-t), 1)); border-radius: calc(var(--radius-panel) * clamp(0, var(--stage-t), 1)); transform-origin: 50% 0; overflow: clip; } [data-stage-scrim][data-stage-immersive] { -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); } @media (prefers-reduced-motion: reduce) { .glass-drawer-grip { transition: none; } }
|
|
@@ -22,9 +22,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
22
22
|
onInteractOutside?: ((event: import("reka-ui").PointerDownOutsideEvent | import("reka-ui").FocusOutsideEvent) => any) | undefined;
|
|
23
23
|
onCloseAutoFocus?: ((event: Event) => any) | undefined;
|
|
24
24
|
}>, {
|
|
25
|
-
align: "center" | "start" | "end";
|
|
26
25
|
surface: Surface;
|
|
27
26
|
sideOffset: number;
|
|
27
|
+
align: "end" | "start" | "center";
|
|
28
28
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
29
29
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
30
30
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { type DropdownMenuTriggerProps } from 'reka-ui';
|
|
2
|
-
|
|
2
|
+
export type DropdownMenuTriggerAction = 'click' | 'pointerdown';
|
|
3
|
+
type __VLS_Props = DropdownMenuTriggerProps & {
|
|
4
|
+
action?: DropdownMenuTriggerAction;
|
|
5
|
+
};
|
|
6
|
+
declare var __VLS_12: {};
|
|
3
7
|
type __VLS_Slots = {} & {
|
|
4
|
-
default?: (props: typeof
|
|
8
|
+
default?: (props: typeof __VLS_12) => any;
|
|
5
9
|
};
|
|
6
|
-
declare const __VLS_base: import("vue").DefineComponent<
|
|
10
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
11
|
+
action: DropdownMenuTriggerAction;
|
|
12
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
13
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
8
14
|
declare const _default: typeof __VLS_export;
|
|
9
15
|
export default _default;
|
|
@@ -22,8 +22,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
22
22
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
23
23
|
"onUpdate:modelValue"?: ((value: EasingPickerValue | undefined) => any) | undefined;
|
|
24
24
|
}>, {
|
|
25
|
-
label: string;
|
|
26
25
|
name: string;
|
|
26
|
+
label: string;
|
|
27
27
|
mode: EasingPickerMode;
|
|
28
28
|
steps: number;
|
|
29
29
|
preset: string;
|
|
@@ -20,11 +20,11 @@ type __VLS_ModelProps = {
|
|
|
20
20
|
modelValue?: EasingPickerValue;
|
|
21
21
|
};
|
|
22
22
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
23
|
-
declare var
|
|
23
|
+
declare var __VLS_122: {
|
|
24
24
|
value: EasingPickerValue;
|
|
25
25
|
};
|
|
26
26
|
type __VLS_Slots = {} & {
|
|
27
|
-
footer?: (props: typeof
|
|
27
|
+
footer?: (props: typeof __VLS_122) => any;
|
|
28
28
|
};
|
|
29
29
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
30
30
|
"update:modelValue": (value: EasingPickerValue | undefined) => any;
|
|
@@ -69,7 +69,11 @@ export interface UseEasingPickerReturn {
|
|
|
69
69
|
height: number;
|
|
70
70
|
}>;
|
|
71
71
|
progress: Ref<number>;
|
|
72
|
+
playing: Ref<boolean>;
|
|
73
|
+
playbackState: ComputedRef<"idle" | "playing" | "complete">;
|
|
74
|
+
reducedMotion: Ref<boolean>;
|
|
72
75
|
playTravel: () => void;
|
|
76
|
+
cancelTravel: () => void;
|
|
73
77
|
stopTravel: () => void;
|
|
74
78
|
}
|
|
75
79
|
/**
|
|
@@ -26,3 +26,5 @@ export declare const VIEWBOX_FIT_SAMPLES = 16;
|
|
|
26
26
|
export declare const TRAVEL_DURATION_MS = 1200;
|
|
27
27
|
/** The copy-feedback dwell (ms). */
|
|
28
28
|
export declare const COPY_FEEDBACK_MS = 1400;
|
|
29
|
+
/** Maximum wait for a Clipboard write before offering manual selection (ms). */
|
|
30
|
+
export declare const COPY_ATTEMPT_TIMEOUT_MS = 2000;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { MaybeRef, Ref } from "vue";
|
|
2
2
|
export interface UseFadingScrollOptions {
|
|
3
3
|
/** Scroll axis. `"x"` reads scrollLeft/Width; `"y"` reads scrollTop/Height. Default `"x"`. */
|
|
4
|
-
axis?: "x" | "y"
|
|
4
|
+
axis?: MaybeRef<"x" | "y">;
|
|
5
5
|
/** Feather the start edge once scrolled past the start. Default `true`. */
|
|
6
|
-
fadeStart?: boolean
|
|
6
|
+
fadeStart?: MaybeRef<boolean>;
|
|
7
7
|
/** Feather the end edge while trailing overflow remains. Default `true`. */
|
|
8
|
-
fadeEnd?: boolean
|
|
8
|
+
fadeEnd?: MaybeRef<boolean>;
|
|
9
9
|
}
|
|
10
10
|
export interface UseFadingScrollControls {
|
|
11
11
|
/** True when this composable is the ACTIVE writer (the native timeline is absent). */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ColorResolver, OklchStop } from "../../composables/color";
|
|
2
2
|
import { type BasisComponent } from "./math";
|
|
3
3
|
import type { FourierFieldConfig } from "./constants";
|
|
4
|
+
import type { RendererStatus } from "../../composables/glass/webgpu/rendererStatus";
|
|
4
5
|
/**
|
|
5
6
|
* FourierField — a Fourier epicycle field on the GPU substrate (BC.W-VIZ-FOURIER), a
|
|
6
7
|
* sibling primitive to Aurora, GooBlob, and DotFlowField. A chain of rotating circles
|
|
@@ -46,7 +47,12 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
|
46
47
|
wake: () => void;
|
|
47
48
|
renderAt: (timeSec: number) => void;
|
|
48
49
|
setHeadT: (t: number) => void;
|
|
49
|
-
|
|
50
|
+
rendererStatus: Readonly<import("vue").Ref<RendererStatus, RendererStatus>>;
|
|
51
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
52
|
+
rendererStatus: (status: RendererStatus) => any;
|
|
53
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
54
|
+
onRendererStatus?: ((status: RendererStatus) => any) | undefined;
|
|
55
|
+
}>, {
|
|
50
56
|
seed: string;
|
|
51
57
|
freeze: boolean;
|
|
52
58
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Ref } from "vue";
|
|
2
|
-
import { type GpuBackend } from "../../../composables/glass/webgpu/useGpuSubstrate";
|
|
2
|
+
import { type GpuBackend, type RendererStatus } from "../../../composables/glass/webgpu/useGpuSubstrate";
|
|
3
3
|
import type { OklchStop } from "../../../composables/color";
|
|
4
4
|
import type { FourierFieldConfig } from "../constants";
|
|
5
5
|
import type { BasisComponent } from "../math";
|
|
@@ -47,6 +47,7 @@ export interface FourierFieldHandle {
|
|
|
47
47
|
readonly reducedMotion: boolean;
|
|
48
48
|
/** The current loop parameter `head_t ∈ [0,1)` (the scrubber reads/writes it). */
|
|
49
49
|
readonly headT: number;
|
|
50
|
+
readonly rendererStatus: Readonly<Ref<RendererStatus>>;
|
|
50
51
|
/** Scrub the clock directly (the transport scrubber / a pointer drag). */
|
|
51
52
|
setHeadT: (t: number) => void;
|
|
52
53
|
/** Tear down the renderer + release GPU/GL resources. */
|
|
@@ -8,9 +8,9 @@ declare const __VLS_base: import("vue").DefineComponent<HandMarkProps, {
|
|
|
8
8
|
play: typeof play;
|
|
9
9
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<HandMarkProps> & Readonly<{}>, {
|
|
10
10
|
color: string;
|
|
11
|
-
animation: import("./types").HandAnimation;
|
|
12
11
|
seed: number;
|
|
13
12
|
shape: import("./types").HandShape;
|
|
13
|
+
animation: import("./types").HandAnimation;
|
|
14
14
|
appear: "mount" | "visible" | "manual";
|
|
15
15
|
jagged: boolean;
|
|
16
16
|
brush: import("./brush").BrushName | Partial<import("./brush").Brush>;
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - text mode (box == null): use the full viewBox (single-line underline/strike)
|
|
13
13
|
* - positioned mode (box = {x,y,w,h}): map an explicit rect (circle a datum)
|
|
14
14
|
*
|
|
15
|
-
* The circle arm rides pencil-boil
|
|
15
|
+
* The circle arm rides pencil-boil's `ellipsePoints` (the hand-circle
|
|
16
16
|
* overshoot ring — the sole upstream geometry delta this component required).
|
|
17
17
|
*
|
|
18
18
|
* THE SEED RECONCILE (BA.W-HANDMARK [S2]): the wobble centerlines are seeded from
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* handmark — the ./handmark barrel (SPEC §11).
|
|
3
3
|
* ─────────────────────────────────────────────────────────────────────────────
|
|
4
|
-
* `HandMark` is the
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* slides decks, D3 charts (call `shapeGeom`/`ellipsePoints` to ink a path), even
|
|
8
|
-
* canvas.
|
|
4
|
+
* `HandMark` is the sole public component name. The pure L1–L3 functions ship
|
|
5
|
+
* too — they are framework-free, directly usable in slides decks, D3 charts
|
|
6
|
+
* (call `shapeGeom`/`ellipsePoints` to ink a path), even canvas.
|
|
9
7
|
*
|
|
10
8
|
* The DEFAULT is `pen` (clean ink, grain:0 ⇒ no filter, zero extra dep). The
|
|
11
9
|
* `@mkbabb/pencil-boil` geometry + `perfect-freehand` body are OPTIONAL PEERS;
|
|
@@ -17,7 +15,7 @@
|
|
|
17
15
|
* editorial draw-on underline is `<HandMark shape="underline" animation="draw-on">`;
|
|
18
16
|
* the natural pencil-boil morphology is the `boil` brush.
|
|
19
17
|
*/
|
|
20
|
-
export { default as HandMark
|
|
18
|
+
export { default as HandMark } from "./HandMark.vue";
|
|
21
19
|
export { BRUSHES, resolveBrush, lerpBrush, type Brush, type BrushName, type BlendMode, type TaperSpec, type StampFn, type InkPath, } from "./brush";
|
|
22
20
|
export { shapeGeom, serialize, boilLines, naturalUnderlinePoints, VB_W, VB_H, UNDERLINE_GAP, type ShapeGeom, } from "./geometry";
|
|
23
21
|
export { ink, type SVGFragment } from "./ink";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "../../styles/glass/glass-atom.css"; @import "../../styles/glass/glass-chip.css"; :root { --icon-chip-glyph-ratio: 2.18; --icon-chip-duotone-fill: 18%; --icon-chip-plate-strength: 25%; --icon-chip-bloom-mix: 35%; --icon-chip-bloom-glow: 28%; --icon-chip-reveal-step: 60ms; } .icon-chip { --_icon-chip-floor: calc( var(--icon-chip-glyph-size, 22px) * var(--icon-chip-glyph-ratio) ); inline-size: max(var(--icon-chip-size, 48px), var(--_icon-chip-floor)); block-size: max(var(--icon-chip-size, 48px), var(--_icon-chip-floor)); display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-pill, 9999px); background-color: color-mix( in srgb, var(--icon-chip-plate-color, var(--muted)) var(--icon-chip-plate-strength), transparent ); color: var(--icon-chip-event-color, var(--muted-foreground)); transition: background-color var(--duration-fast, 150ms) var(--ease-standard), box-shadow var(--duration-fast, 150ms) var(--ease-standard), transform var(--duration-fast, 150ms) var(--ease-out); } .icon-chip__glyph { display: block; flex-shrink: 0; } .icon-chip--bare { inline-size: auto; block-size: auto; background-color: transparent; border-radius: 0; } .icon-chip--saturated { --icon-chip-plate-strength: 40%; } .icon-chip--glass { background-color: transparent; } @media (hover: hover) { .icon-chip--glass.icon-chip--bloom:hover { background-color: transparent; } } .icon-chip--duotone[data-duotone] svg, .icon-chip[data-duotone] .icon-chip__glyph { fill: color-mix( in srgb, var(--icon-chip-event-color, var(--muted-foreground)) var(--icon-chip-duotone-fill), transparent ); } @media (hover: hover) { .icon-chip--bloom:hover { background-color: color-mix( in srgb, var(--icon-chip-plate-color, var(--muted)) var(--icon-chip-bloom-mix), transparent ); box-shadow: 0 0 0 0.25rem color-mix( in srgb, var(--icon-chip-event-color, var(--muted-foreground)) var(--icon-chip-bloom-glow), transparent ); transform: scale(var(--icon-chip-bloom-scale, 1.06)); transition: background-color var(--duration-fast, 150ms) var(--ease-standard), box-shadow var(--duration-fast, 150ms) var(--ease-standard), transform var(--spring-smooth-duration) var(--spring-smooth); } .icon-chip--bloom:hover .icon-chip__glyph { stroke-width: 2; } } @media (prefers-reduced-motion: no-preference) { .icon-chip--reveal[data-reveal] { animation: icon-chip-reveal var(--spring-snappy-duration) var(--spring-snappy) both; animation-delay: calc(var(--d, 0) * var(--icon-chip-reveal-step)); } } @keyframes icon-chip-reveal { from { opacity: 0; transform: scale(0.85) translateY(0.25rem); } to { opacity: 1; transform: none; } } @media (prefers-reduced-motion: reduce) { .icon-chip--bloom:hover { transform: none; } .icon-chip--bloom:hover .icon-chip__glyph { stroke-width: inherit; } .icon-chip--reveal[data-reveal] { animation: none; } }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer components { .instrument-chassis { position: relative; display: flex; flex-direction: column; background: var(--glass-curvature-overlay, none), color-mix( in oklab, var(--glass-bg-chassis), var(--phase-color, var(--muted-foreground)) var(--phase-tint-amount, 0%) ); transition: --phase-tint-amount var(--motion-duration-phase-handoff, 600ms) var(--motion-ease-standard); -webkit-backdrop-filter: var(--glass-blur-quiet); backdrop-filter: var(--glass-blur-quiet); border: 1px solid var(--glass-border-wash); border-radius: var(--radius-card); box-shadow: var(--glass-shadow-quiet), inset 0 -0.5px 0 0 rgb(0 0 0 / 0.06); overflow: hidden; --phase-color: var(--muted-foreground); --phase-color-label: var(--muted-foreground); --phase-complete-color: var(--color-gold); --phase-complete-color-label: var(--color-gold-dark, var(--color-gold)); container: chassis / inline-size; } .dark .instrument-chassis { background: var(--glass-curvature-overlay-dark, var(--glass-curvature-overlay, none)), color-mix( in oklab, var(--glass-bg-chassis), var(--phase-color, var(--muted-foreground)) var(--phase-tint-amount, 0%) ); } .instrument-chassis::before { content: ""; position: absolute; inset: 0.5px; border-radius: calc(var(--radius-card) - 0.5px); border: 1px solid var(--surface-tint-4); pointer-events: none; z-index: 1; } .dark .instrument-chassis::before { border-color: var(--surface-tint-6); } .instrument-chassis[data-variant="spine"] { background: var(--glass-spine-vignette); -webkit-backdrop-filter: none; backdrop-filter: none; border: 1px solid var(--glass-spine-border); box-shadow: var(--glass-under-shadow-spine); margin: clamp(0.5rem, 2vw, 1.25rem); } .instrument-chassis[data-variant="spine"]::before { display: none; } .instrument-chassis[data-variant="structure"] { border-color: color-mix(in oklab, var(--color-silver-dark) 55%, transparent); } .instrument-chassis[data-variant="structure"]::before { border-color: color-mix(in oklab, var(--color-silver-light) 60%, transparent); } .dark .instrument-chassis[data-variant="structure"]::before { border-color: color-mix(in oklab, var(--color-silver) 40%, transparent); } .instrument-chassis[data-variant="structure"] { --twin-line-catch: color-mix( in oklab, var(--color-silver-light) 50%, transparent ); --twin-line-shadow: color-mix( in oklab, var(--color-silver-dark) 40%, transparent ); } .instrument-chassis[data-phase="ping"] { --phase-color: var(--chart-ping, var(--viz-chebyshev)); --phase-color-label: var( --chart-ping-label, var(--chart-ping, var(--viz-chebyshev)) ); --phase-tint-amount: var(--phase-tint-peak); } .instrument-chassis[data-phase="download"] { --phase-color: var(--chart-download, var(--viz-fourier)); --phase-color-label: var( --chart-download-label, var(--chart-download, var(--viz-fourier)) ); --phase-tint-amount: var(--phase-tint-peak); } .instrument-chassis[data-phase="upload"] { --phase-color: var(--chart-upload, var(--viz-amber)); --phase-color-label: var( --chart-upload-label, var(--chart-upload, var(--viz-amber)) ); --phase-tint-amount: var(--phase-tint-peak); } .instrument-chassis[data-phase="jitter"] { --phase-color: var(--chart-jitter, var(--viz-legendre)); --phase-color-label: var( --chart-jitter-label, var(--chart-jitter, var(--viz-legendre)) ); --phase-tint-amount: var(--phase-tint-peak); } .instrument-chassis[data-phase="complete"] { --phase-color: var(--phase-complete-color); --phase-color-label: var(--phase-complete-color-label); --phase-tint-amount: var(--phase-tint-peak); } @media (prefers-reduced-motion: reduce) { .instrument-chassis { transition: none; } } .instrument-strip { position: relative; display: flex; align-items: center; gap: var(--instrument-strip-gap, 0.75rem); padding: var(--instrument-strip-padding-block, 0.875rem) var(--instrument-strip-padding-inline, 1.25rem); z-index: 2; } .instrument-dial { position: relative; display: grid; grid-template-columns: var( --instrument-dial-columns, minmax(0, 1.2fr) 1px minmax(0, 1fr) ); align-items: center; gap: var(--instrument-dial-gap, 1.5rem); padding: var(--instrument-dial-padding-block, 1.5rem) var(--instrument-dial-padding-inline, 1.5rem); z-index: 2; } .instrument-control { position: relative; display: flex; align-items: center; gap: var(--instrument-control-gap, 0.5rem); padding: var(--instrument-control-padding-block, 0.875rem) var(--instrument-control-padding-inline, 1.25rem); z-index: 2; } .chassis-divider { @apply twin-line-divider; flex-shrink: 0; position: relative; background: transparent; z-index: 2; pointer-events: none; } .chassis-divider--horizontal { display: flex; flex-direction: column; height: 2px; width: 100%; } .chassis-divider--vertical { display: flex; flex-direction: row; width: 2px; height: var(--chassis-divider-vertical-height, 70%); align-self: center; justify-self: center; } .bezel-line { display: block; flex-shrink: 0; } .chassis-divider--horizontal .bezel-line { height: 1px; width: 100%; } .chassis-divider--vertical .bezel-line { width: 1px; height: 100%; } .bezel-line.top { background: var(--twin-line-catch); } .bezel-line.bottom { background: var(--twin-line-shadow); } .instrument-chassis .dial-divider { align-self: stretch; } @container chassis (max-width: 44.9375rem) { .instrument-chassis .instrument-dial { grid-template-columns: 1fr; grid-template-rows: var(--instrument-dial-meter-reserve-mobile, minmax(0, 1fr)) auto auto; min-height: var(--instrument-dial-min-height-mobile, 24rem); gap: var(--instrument-dial-gap-mobile, 1.5rem); } .instrument-chassis .instrument-dial .dial-divider, .instrument-chassis .instrument-dial .chassis-divider--vertical { flex-direction: column; width: 70%; height: 2px; margin-inline: auto; } .instrument-chassis .instrument-dial .dial-divider .bezel-line, .instrument-chassis .instrument-dial .chassis-divider--vertical .bezel-line { width: 100%; height: 1px; } } @container chassis (min-width: 45rem) { .instrument-chassis .instrument-dial { min-block-size: var( --instrument-dial-min-block-size-desktop, var(--chassis-max-block-size) ); } } }
|
|
@@ -36,7 +36,9 @@ import { type HTMLAttributes } from "vue";
|
|
|
36
36
|
* so the message is announced when shown. The region's id is exposed as the
|
|
37
37
|
* default slot's `errorId` slot-prop so the slotted control can bind
|
|
38
38
|
* `aria-errormessage="errorId"` (the four wrappers auto-wire it; a raw
|
|
39
|
-
* `<LabeledField>` slot binds it manually).
|
|
39
|
+
* `<LabeledField>` slot binds it manually). It is polite by default; a form
|
|
40
|
+
* with one summary live region can set `errorLive="off"` to avoid duplicate
|
|
41
|
+
* submit announcements.
|
|
40
42
|
*
|
|
41
43
|
* # LabeledField vs ConfiguratorRow — recorded divergence (AZ.W-METRIC-UNIFY §B)
|
|
42
44
|
*
|
|
@@ -59,6 +61,12 @@ type __VLS_Props = {
|
|
|
59
61
|
tooltip?: string;
|
|
60
62
|
labelClass?: HTMLAttributes["class"];
|
|
61
63
|
required?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Controls whether this field's error announces itself. A form-level
|
|
66
|
+
* summary can set this to `off` so one submit does not create competing
|
|
67
|
+
* live-region announcements.
|
|
68
|
+
*/
|
|
69
|
+
errorLive?: "off" | "polite" | "assertive";
|
|
62
70
|
/**
|
|
63
71
|
* AZ.W-BLOB-REDRESS — render the field's own label `sr-only` (kept in the
|
|
64
72
|
* DOM for the control↔label a11y association) instead of visibly. Use when
|
|
@@ -97,7 +105,9 @@ type __VLS_Slots = {} & {
|
|
|
97
105
|
} & {
|
|
98
106
|
error?: (props: typeof __VLS_13) => any;
|
|
99
107
|
};
|
|
100
|
-
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
108
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
109
|
+
errorLive: "off" | "polite" | "assertive";
|
|
110
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
101
111
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
102
112
|
declare const _default: typeof __VLS_export;
|
|
103
113
|
export default _default;
|
|
@@ -1,25 +1,32 @@
|
|
|
1
|
+
import { type InputHTMLAttributes } from "vue";
|
|
1
2
|
type __VLS_Props = {
|
|
2
3
|
modelValue: string | number;
|
|
3
4
|
label: string;
|
|
4
|
-
tooltip
|
|
5
|
+
tooltip?: string;
|
|
5
6
|
labelClass?: string;
|
|
6
7
|
inputClass?: string;
|
|
7
8
|
type?: string;
|
|
9
|
+
autocomplete?: InputHTMLAttributes["autocomplete"];
|
|
10
|
+
inputmode?: InputHTMLAttributes["inputmode"];
|
|
11
|
+
enterkeyhint?: InputHTMLAttributes["enterkeyhint"];
|
|
12
|
+
pattern?: InputHTMLAttributes["pattern"];
|
|
13
|
+
placeholder?: InputHTMLAttributes["placeholder"];
|
|
8
14
|
/**
|
|
9
15
|
* AQ.W4 §W4.5 — mark the field required. Threads the `aria-hidden`
|
|
10
16
|
* asterisk onto the label AND sets the native `required` attribute on the
|
|
11
17
|
* inner `<Input>` (the semantic carrier that drives `:user-invalid`).
|
|
12
18
|
*/
|
|
13
19
|
required?: boolean;
|
|
20
|
+
errorLive?: "off" | "polite" | "assertive";
|
|
14
21
|
};
|
|
15
22
|
declare var __VLS_17: {};
|
|
16
23
|
type __VLS_Slots = {} & {
|
|
17
24
|
error?: (props: typeof __VLS_17) => any;
|
|
18
25
|
};
|
|
19
26
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
20
|
-
"update:modelValue": (value: string) => any;
|
|
27
|
+
"update:modelValue": (value: string | number) => any;
|
|
21
28
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
22
|
-
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
29
|
+
"onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
|
|
23
30
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
24
31
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
25
32
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { LiquidGridConfig } from "./constants";
|
|
2
|
+
import type { RendererStatus } from "../../composables/glass/webgpu/rendererStatus";
|
|
2
3
|
/**
|
|
3
4
|
* LiquidGrid — a liquid AA-grid: evenly-spaced LARGER lines on a slowly breathing
|
|
4
5
|
* curl-flow sheet.
|
|
@@ -33,9 +34,12 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
|
33
34
|
resume: () => void;
|
|
34
35
|
wake: () => void;
|
|
35
36
|
renderAt: (timeSec: number) => void;
|
|
37
|
+
rendererStatus: Readonly<import("vue").Ref<RendererStatus, RendererStatus>>;
|
|
36
38
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
39
|
+
rendererStatus: (status: RendererStatus) => any;
|
|
37
40
|
"update:paused": (value: boolean) => any;
|
|
38
41
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
42
|
+
onRendererStatus?: ((status: RendererStatus) => any) | undefined;
|
|
39
43
|
"onUpdate:paused"?: ((value: boolean) => any) | undefined;
|
|
40
44
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
41
45
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Ref } from "vue";
|
|
2
|
-
import { type GpuBackend } from "../../../composables/glass/webgpu/useGpuSubstrate";
|
|
2
|
+
import { type GpuBackend, type RendererStatus } from "../../../composables/glass/webgpu/useGpuSubstrate";
|
|
3
3
|
import type { LiquidGridConfig } from "../constants";
|
|
4
4
|
export interface UseLiquidGridOptions {
|
|
5
5
|
config: LiquidGridConfig;
|
|
@@ -20,6 +20,7 @@ export interface LiquidGridHandle {
|
|
|
20
20
|
renderAt: (timeSec: number) => void;
|
|
21
21
|
/** The live `prefers-reduced-motion: reduce` state. */
|
|
22
22
|
readonly reducedMotion: boolean;
|
|
23
|
+
readonly rendererStatus: Readonly<Ref<RendererStatus>>;
|
|
23
24
|
/** Tear down the renderer + release GPU/GL resources. */
|
|
24
25
|
dispose: () => void;
|
|
25
26
|
}
|
|
@@ -77,8 +77,8 @@ type __VLS_Slots = {} & {
|
|
|
77
77
|
default?: (props: typeof __VLS_8) => any;
|
|
78
78
|
};
|
|
79
79
|
declare const __VLS_base: import("vue").DefineComponent<MetricStackProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MetricStackProps> & Readonly<{}>, {
|
|
80
|
-
containerName: string;
|
|
81
80
|
as: string | Component;
|
|
81
|
+
containerName: string;
|
|
82
82
|
rows: number;
|
|
83
83
|
register: "audacious" | "result";
|
|
84
84
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -39,8 +39,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
39
39
|
onSelect?: ((index: number) => any) | undefined;
|
|
40
40
|
"onUpdate:active"?: ((value: number) => any) | undefined;
|
|
41
41
|
}>, {
|
|
42
|
-
orientation: "horizontal" | "vertical";
|
|
43
42
|
pattern: "tabs" | "group";
|
|
43
|
+
orientation: "horizontal" | "vertical";
|
|
44
44
|
ariaLabel: string;
|
|
45
45
|
ring: boolean;
|
|
46
46
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -38,9 +38,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
38
38
|
onOpenAutoFocus?: ((event: Event) => any) | undefined;
|
|
39
39
|
onCloseAutoFocus?: ((event: Event) => any) | undefined;
|
|
40
40
|
}>, {
|
|
41
|
-
align: "center" | "start" | "end";
|
|
42
41
|
surface: Surface;
|
|
43
42
|
sideOffset: number;
|
|
43
|
+
align: "end" | "start" | "center";
|
|
44
44
|
portal: boolean;
|
|
45
45
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
46
46
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1,54 +1,19 @@
|
|
|
1
1
|
import { type HTMLAttributes } from "vue";
|
|
2
2
|
import type { ProgressRootProps } from "reka-ui";
|
|
3
|
-
|
|
4
|
-
type ProgressVariant = "default" | "gradient" | "liquid" | "sectioned";
|
|
5
|
-
/**
|
|
6
|
-
* Progress — the thin variant dispatcher over four orthogonal designs:
|
|
7
|
-
* - `default` → ProgressDefault (plain rail + translateX intake-pulse)
|
|
8
|
-
* - `gradient` → ProgressGradient (lifecycle motion grammar + indeterminate)
|
|
9
|
-
* - `liquid` → ProgressLiquid (the shared .glass-liquid-fill glass cylinder;
|
|
10
|
-
* the phase-colour meter — BG.W-LIQUID-FILL)
|
|
11
|
-
* - `sectioned` → ProgressSectioned (phase-bus cells + spring active fill)
|
|
12
|
-
*
|
|
13
|
-
* The dispatcher carries an EXPLICIT prop-boundary contract: incompatible prop
|
|
14
|
-
* combinations are refused OUT LOUD (a dev throw) rather than silently producing
|
|
15
|
-
* a wrong paint. The historical break this closes: a consumer passing
|
|
16
|
-
* `:model-value` to the sectioned variant had it SILENTLY overridden by the
|
|
17
|
-
* cumulative cell-fill aggregate, so the bar ignored the value the consumer
|
|
18
|
-
* thought drove it. The contract below makes that misuse a loud error — the
|
|
19
|
-
* sectioned variant derives its own a11y value from the cells; `modelValue` is
|
|
20
|
-
* not its truth.
|
|
21
|
-
*/
|
|
3
|
+
type ProgressVariant = "default" | "gradient" | "liquid";
|
|
22
4
|
type __VLS_Props = ProgressRootProps & {
|
|
23
5
|
class?: HTMLAttributes["class"];
|
|
24
|
-
/**
|
|
25
|
-
* 'default' = bg-secondary rail + bg-primary indicator.
|
|
26
|
-
* 'gradient' = rail respects --progress-track; indicator respects
|
|
27
|
-
* --progress-fill; the W4 lifecycle motion grammar layers on.
|
|
28
|
-
* 'liquid' = the shared .glass-liquid-fill glass-cylinder meter
|
|
29
|
-
* (BG.W-LIQUID-FILL) — the fill tints off --progress-fill
|
|
30
|
-
* (or --liquid-fill-tint) with zero per-site glass knowledge.
|
|
31
|
-
* 'sectioned' = phase-bus (AB.W3.T2). N colour-coded cells with gradient
|
|
32
|
-
* seams; the active cell carries a spring fill. The per-cell
|
|
33
|
-
* state map is the truth — NOT `modelValue`.
|
|
34
|
-
*/
|
|
35
6
|
variant?: ProgressVariant;
|
|
36
|
-
/**
|
|
37
|
-
|
|
38
|
-
/** Sectioned only — key of the currently active segment. */
|
|
39
|
-
currentSegmentKey?: string | null;
|
|
40
|
-
/** Sectioned only — 0..1 fill of the active segment. */
|
|
41
|
-
activeProgress?: number;
|
|
7
|
+
/** Decorative checkpoints in the same 0..max domain as modelValue. */
|
|
8
|
+
marks?: readonly number[];
|
|
42
9
|
/** Gradient only — indeterminate sweep opt-in. */
|
|
43
10
|
indeterminate?: boolean;
|
|
44
11
|
};
|
|
45
12
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
46
|
-
variant: ProgressVariant;
|
|
47
13
|
modelValue: number | null;
|
|
14
|
+
variant: ProgressVariant;
|
|
48
15
|
indeterminate: boolean;
|
|
49
|
-
|
|
50
|
-
currentSegmentKey: string | null;
|
|
51
|
-
activeProgress: number;
|
|
16
|
+
marks: readonly number[];
|
|
52
17
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
53
18
|
declare const _default: typeof __VLS_export;
|
|
54
19
|
export default _default;
|
|
@@ -1,24 +1,8 @@
|
|
|
1
1
|
import { type HTMLAttributes } from "vue";
|
|
2
2
|
import { type ProgressRootProps } from "reka-ui";
|
|
3
|
-
/**
|
|
4
|
-
* Default progress variant — a `--progress-track` rail + a `--progress-fill`
|
|
5
|
-
* indicator with a `translateX(-%)` intake-pulse. The plainest rung; no lifecycle
|
|
6
|
-
* motion grammar (that lives on the gradient variant). The thin `Progress`
|
|
7
|
-
* dispatcher routes here for `variant="default"`.
|
|
8
|
-
*
|
|
9
|
-
* Token-read parity with the `gradient` variant (AX.W24 F1): the rail/indicator
|
|
10
|
-
* colour read `--progress-track`/`--progress-fill` (fallbacks
|
|
11
|
-
* `var(--progress-track-on-glass)`/`var(--primary)`) as Tailwind arbitrary
|
|
12
|
-
* properties — `bg-[var(--token,…)]` /
|
|
13
|
-
* `[background:var(--token,…)]` — NOT the `bg-secondary`/`bg-primary` utility
|
|
14
|
-
* classes. A `bg-primary` utility lives in `@layer utilities`, which ALWAYS
|
|
15
|
-
* outranks the `@layer components` `.glass-progress-rail` recipe regardless of
|
|
16
|
-
* source order, so a `:root { --progress-fill }` (or `.glass-progress-rail`'s
|
|
17
|
-
* token-set) override was a silent no-op on the default variant. Reading the token
|
|
18
|
-
* at source makes the `default` variant token-retintable for EVERY consumer.
|
|
19
|
-
*/
|
|
20
3
|
type __VLS_Props = ProgressRootProps & {
|
|
21
4
|
class?: HTMLAttributes["class"];
|
|
5
|
+
marks?: readonly number[];
|
|
22
6
|
};
|
|
23
7
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
24
8
|
declare const _default: typeof __VLS_export;
|
|
@@ -10,6 +10,7 @@ import { type ProgressRootProps } from "reka-ui";
|
|
|
10
10
|
*/
|
|
11
11
|
type __VLS_Props = ProgressRootProps & {
|
|
12
12
|
class?: HTMLAttributes["class"];
|
|
13
|
+
marks?: readonly number[];
|
|
13
14
|
/**
|
|
14
15
|
* AI.W4-M.1 — indeterminate sweep. When true, the rail runs a slow
|
|
15
16
|
* left-to-right gradient pan (`--motion-duration-progress-indeterminate`, 4s
|
|
@@ -15,6 +15,7 @@ import { type ProgressRootProps } from "reka-ui";
|
|
|
15
15
|
*/
|
|
16
16
|
type __VLS_Props = ProgressRootProps & {
|
|
17
17
|
class?: HTMLAttributes["class"];
|
|
18
|
+
marks?: readonly number[];
|
|
18
19
|
};
|
|
19
20
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
20
21
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,6 +1 @@
|
|
|
1
1
|
export { default as Progress } from "./Progress.vue";
|
|
2
|
-
export { default as ProgressDefault } from "./ProgressDefault.vue";
|
|
3
|
-
export { default as ProgressGradient } from "./ProgressGradient.vue";
|
|
4
|
-
export { default as ProgressLiquid } from "./ProgressLiquid.vue";
|
|
5
|
-
export { default as ProgressSectioned } from "./ProgressSectioned.vue";
|
|
6
|
-
export { useProgressGeometry, type ProgressSegment, type SectionedCell, } from "./useProgressGeometry";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.progress-value-marks { position: absolute; inset: 0; pointer-events: none; } .progress-value-mark { position: absolute; inset-block-start: 50%; inset-inline-start: var(--value-mark-position); width: var(--value-mark-size, 0.375rem); aspect-ratio: 1; border-radius: 50%; background: var( --value-mark-color, color-mix(in srgb, var(--foreground) 34%, transparent) ); transform: translate(-50%, -50%); } [dir="rtl"] .progress-value-mark { transform: translate(50%, -50%); } .progress-value-fill { position: relative; z-index: 1; transform: translateX(calc(-100% + var(--progress-value-percent))); } [dir="rtl"] .progress-value-fill { transform: translateX(calc(100% - var(--progress-value-percent))); }
|
|
@@ -43,11 +43,11 @@ type __VLS_Props = {
|
|
|
43
43
|
class?: HTMLAttributes['class'];
|
|
44
44
|
};
|
|
45
45
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
46
|
-
variant: PulseVariant;
|
|
47
46
|
speed: PulseSpeed;
|
|
47
|
+
variant: PulseVariant;
|
|
48
48
|
count: number;
|
|
49
|
-
once: boolean;
|
|
50
49
|
intensity: PulseIntensity;
|
|
50
|
+
once: boolean;
|
|
51
51
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
52
52
|
declare const _default: typeof __VLS_export;
|
|
53
53
|
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.scroll-progress-rim { --scroll-progress-rim-inset: 1px; position: absolute; inset: var(--scroll-progress-rim-inset); z-index: 0; isolation: isolate; border-radius: var(--scroll-progress-rim-radius, inherit); pointer-events: none; } .scroll-progress-rim__track { position: absolute; inset: 0; border: var(--scroll-progress-rim-width, 4px) solid transparent; border-radius: inherit; background: conic-gradient( from 0deg, var(--scroll-progress-rim-spectrum, var(--section-color-7)), transparent var(--scroll-progress-rim-fill, 0%), transparent 100% ), color-mix(in srgb, var(--foreground) 14%, transparent); -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box; -webkit-mask-composite: xor; mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box; mask-composite: exclude; } .scroll-progress-rim[data-coverage="bottom-edge"] .scroll-progress-rim__track { background: linear-gradient( to right, var(--scroll-progress-rim-spectrum, var(--section-color-7)), transparent var(--scroll-progress-rim-fill, 0%), transparent 100% ), color-mix(in srgb, var(--foreground) 14%, transparent); clip-path: inset(calc(100% - var(--scroll-progress-rim-width, 4px)) 0 0); } .scroll-progress-rim[data-coverage="inline-end-edge"] .scroll-progress-rim__track { background: linear-gradient( to bottom, var(--scroll-progress-rim-spectrum, var(--section-color-7)), transparent var(--scroll-progress-rim-fill, 0%), transparent 100% ), color-mix(in srgb, var(--foreground) 14%, transparent); clip-path: inset(0 0 0 calc(100% - var(--scroll-progress-rim-width, 4px))); } .scroll-progress-rim[data-coverage="inline-end-edge"]:dir(rtl) .scroll-progress-rim__track { clip-path: inset(0 calc(100% - var(--scroll-progress-rim-width, 4px)) 0 0); }
|
|
@@ -7,6 +7,7 @@ type __VLS_Props = {
|
|
|
7
7
|
size?: ControlSize;
|
|
8
8
|
surface?: Surface;
|
|
9
9
|
placeholder?: string;
|
|
10
|
+
ariaLabel?: string;
|
|
10
11
|
typeLabel?: (item: SearchableItem) => string;
|
|
11
12
|
};
|
|
12
13
|
declare function focus(): void;
|
|
@@ -14,9 +15,10 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
|
14
15
|
focus: typeof focus;
|
|
15
16
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
16
17
|
size: ControlSize;
|
|
17
|
-
variant: SearchVariant;
|
|
18
|
-
surface: Surface;
|
|
19
18
|
placeholder: string;
|
|
19
|
+
surface: Surface;
|
|
20
|
+
variant: SearchVariant;
|
|
21
|
+
ariaLabel: string;
|
|
20
22
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
21
23
|
declare const _default: typeof __VLS_export;
|
|
22
24
|
export default _default;
|
|
@@ -22,10 +22,10 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
|
|
|
22
22
|
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
23
23
|
}>, {
|
|
24
24
|
size: ControlSize;
|
|
25
|
-
variant: SearchVariant;
|
|
26
|
-
surface: Surface;
|
|
27
25
|
modelValue: string;
|
|
28
26
|
placeholder: string;
|
|
27
|
+
surface: Surface;
|
|
28
|
+
variant: SearchVariant;
|
|
29
29
|
tag: string;
|
|
30
30
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
31
31
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -9,7 +9,7 @@ import { type ControlSize, controlSizeClass } from "../_shared/useControlSize";
|
|
|
9
9
|
* searchFieldVariants({ variant: "bare" }) → "border-none bg-transparent p-0 rounded-none"
|
|
10
10
|
*/
|
|
11
11
|
export declare const searchFieldVariants: (props?: ({
|
|
12
|
-
variant?: "
|
|
12
|
+
variant?: "inline" | "floating" | "bare" | null | undefined;
|
|
13
13
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
14
14
|
export type SearchVariant = NonNullable<VariantProps<typeof searchFieldVariants>["variant"]>;
|
|
15
15
|
/** The CVA's variant-prop shape — the `/api` discovery surface (the SFCs cannot
|
|
@@ -28,8 +28,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
28
28
|
onCloseAutoFocus?: ((event: Event) => any) | undefined;
|
|
29
29
|
}>, {
|
|
30
30
|
position: "item-aligned" | "popper";
|
|
31
|
-
align: "center" | "start" | "end";
|
|
32
31
|
surface: Surface;
|
|
32
|
+
align: "end" | "start" | "center";
|
|
33
33
|
collisionPadding: number | Partial<Record<"top" | "right" | "bottom" | "left", number>>;
|
|
34
34
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
35
35
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -6,5 +6,3 @@ export { default as SelectGroup } from './SelectGroup.vue';
|
|
|
6
6
|
export { default as SelectItem } from './SelectItem.vue';
|
|
7
7
|
export { default as SelectLabel } from './SelectLabel.vue';
|
|
8
8
|
export { default as SelectSeparator } from './SelectSeparator.vue';
|
|
9
|
-
export { default as SelectScrollUpButton } from './SelectScrollUpButton.vue';
|
|
10
|
-
export { default as SelectScrollDownButton } from './SelectScrollDownButton.vue';
|