@mkbabb/glass-ui 3.2.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CardFooter-3-VGho1J.js → CardFooter-C390imy7.js} +2 -2
- package/dist/{CollapsibleContent-wlmlDujU.js → CollapsibleContent-cauTbZEM.js} +1 -1
- package/dist/{CommandShortcut-C6lsz3pG.js → CommandShortcut-BiVyqipe.js} +5 -4
- package/dist/DataTable-FfkaAg2z.js +465 -0
- package/dist/DialogContent-IQ8_BRrC.js +100 -0
- package/dist/{DiscoGlyph-B7YooI2-.js → DiscoGlyph-BaZ8OawK.js} +1 -1
- package/dist/{GlyphFace-Bvk6OIas.js → GlyphFace-B_7vOmYn.js} +1 -1
- package/dist/HoverPopover-DTSYkJtw.js +96 -0
- package/dist/{IconTooltip-DXveGjx7.js → IconTooltip-BTyYn4mr.js} +1 -1
- package/dist/Input-CU9CNKmo.js +52 -0
- package/dist/{MetricBadge-J_GBCb8e.js → MetricBadge-BlrdbOGN.js} +1 -1
- package/dist/{NumberFieldContent-B6L6YrQz.js → NumberFieldContent-iOTQ5rGO.js} +8 -4
- package/dist/{PopoverContent-CxEEUL7Y.js → PopoverContent-B8WtJECb.js} +1 -1
- package/dist/Progress-DjM86vfb.js +254 -0
- package/dist/{ScrollingText-1Qjnwz6H.js → ScrollingText-P9o_DuMn.js} +1 -1
- package/dist/{SelectScrollDownButton-BvvvAbuh.js → SelectScrollDownButton-BGn3rjs9.js} +9 -8
- package/dist/TabsIndicator-DA0x9gPr.js +97 -0
- package/dist/{ToggleGroupItem-Cy7xHFEo.js → ToggleGroupItem-gyXj998A.js} +37 -40
- package/dist/UnderlineTabs-Cq_AD03t.js +39 -0
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +2 -0
- package/dist/api.js +1 -1
- package/dist/aurora.js +454 -271
- package/dist/{button-DS3ULf5i.js → button-Ckn3eDfB.js} +27 -22
- package/dist/button.js +1 -1
- package/dist/card.js +1 -1
- package/dist/carousel.js +2 -2
- package/dist/collapsible.js +1 -1
- package/dist/color-rkK4RMx2.js +33 -0
- package/dist/color.d.ts +1 -0
- package/dist/color.js +2 -0
- package/dist/command.js +1 -1
- package/dist/compile-DVgAxagk.js +106 -0
- package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +7 -7
- package/dist/components/custom/aurora/Aurora.vue.d.ts +3 -3
- package/dist/components/custom/aurora/composables/color.d.ts +3 -25
- package/dist/components/custom/aurora/composables/cursorModel.d.ts +45 -0
- package/dist/components/custom/aurora/composables/frameLoop.d.ts +30 -0
- package/dist/components/custom/aurora/composables/glSetup.d.ts +29 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +45 -35
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +67 -0
- package/dist/components/custom/aurora/composables/useAurora.d.ts +14 -1
- package/dist/components/custom/aurora/composables/useCursorInteraction.d.ts +1 -1
- package/dist/components/custom/aurora/constants/budget.d.ts +50 -0
- package/dist/components/custom/aurora/{presets.d.ts → constants/presets.d.ts} +2 -5
- package/dist/components/custom/aurora/constants/shaders/aurora.frag.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/brush.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/composition.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/flow.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +2 -0
- package/dist/components/custom/aurora/constants/shaders/tonemap.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/index.d.ts +2 -2
- package/dist/components/custom/configurator/ConfiguratorLayer.vue.d.ts +14 -7
- package/dist/components/custom/configurator/density.d.ts +3 -8
- package/dist/components/custom/dock/DockBackgroundToggle.vue.d.ts +46 -0
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +3 -3
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +2 -2
- package/dist/components/custom/dock/GlassDock.vue.d.ts +22 -18
- package/dist/components/custom/dock/composables/dockContext.d.ts +4 -4
- package/dist/components/custom/dock/composables/dockLayerContext.d.ts +13 -6
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +32 -8
- package/dist/components/custom/dock/index.d.ts +1 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +10 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
- package/dist/components/custom/glyph-face/keys.d.ts +3 -29
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +48 -0
- package/dist/components/custom/goo-blob/composables/easing.d.ts +6 -0
- package/dist/components/custom/goo-blob/composables/useBlobMood.d.ts +14 -0
- package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +18 -0
- package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +13 -0
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +42 -0
- package/dist/components/custom/goo-blob/index.d.ts +7 -0
- package/dist/components/custom/goo-blob/shaders/metaball.frag.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball.vert.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/oklch-perturb.glsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/sdf-body.glsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/watercolor-edges.glsl.d.ts +2 -0
- package/dist/components/custom/goo-blob/types.d.ts +77 -0
- package/dist/components/custom/hover-popover/HoverPopover.vue.d.ts +48 -9
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +2 -0
- package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +2 -2
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +2 -2
- package/dist/components/custom/responsive-tabs/ResponsiveTabs.vue.d.ts +13 -7
- package/dist/components/custom/search/FuzzySearch.vue.d.ts +1 -1
- package/dist/components/custom/search/SearchBar.vue.d.ts +1 -1
- package/dist/components/custom/sortable-list/SortableHandle.vue.d.ts +7 -1
- package/dist/components/custom/sortable-list/context.d.ts +2 -3
- package/dist/components/custom/tabs/BouncyTabs.vue.d.ts +6 -3
- package/dist/components/custom/tabs/BouncyToggle.vue.d.ts +7 -3
- package/dist/components/custom/tabs/UnderlineTabs.vue.d.ts +6 -3
- package/dist/components/custom/tabs/composables/useBouncySlider.d.ts +39 -0
- package/dist/components/custom/timeline/ContinuousMarkers.vue.d.ts +49 -0
- package/dist/components/custom/timeline/ContinuousRail.vue.d.ts +26 -0
- package/dist/components/custom/timeline/ContinuousTimeline.vue.d.ts +4 -4
- package/dist/components/custom/typewriter/TypewriterText.vue.d.ts +2 -2
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +45 -0
- package/dist/components/custom/watercolor-dot/index.d.ts +3 -0
- package/dist/components/custom/watercolor-dot/prng.d.ts +5 -0
- package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +24 -0
- package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
- package/dist/components/ui/avatar/Avatar.vue.d.ts +1 -1
- package/dist/components/ui/avatar/AvatarImage.vue.d.ts +5 -1
- package/dist/components/ui/avatar/index.d.ts +1 -1
- package/dist/components/ui/badge/index.d.ts +2 -2
- package/dist/components/ui/button/Button.vue.d.ts +3 -1
- package/dist/components/ui/button/index.d.ts +2 -2
- 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/combobox/Combobox.vue.d.ts +2 -2
- package/dist/components/ui/combobox/ComboboxInput.vue.d.ts +2 -1
- package/dist/components/ui/command/Command.vue.d.ts +3 -3
- package/dist/components/ui/command/CommandInput.vue.d.ts +2 -1
- package/dist/components/ui/data-table/DataTable.vue.d.ts +5 -4
- package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -0
- package/dist/components/ui/drawer/Drawer.vue.d.ts +4 -4
- package/dist/components/ui/input/Input.vue.d.ts +19 -1
- package/dist/components/ui/multi-select/MultiSelect.vue.d.ts +8 -4
- package/dist/components/ui/progress/Progress.vue.d.ts +26 -88
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +14 -0
- package/dist/components/ui/progress/ProgressGradient.vue.d.ts +25 -0
- package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +36 -0
- package/dist/components/ui/progress/index.d.ts +5 -2
- package/dist/components/ui/progress/useProgressGeometry.d.ts +60 -0
- package/dist/components/ui/select/Select.vue.d.ts +2 -2
- package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
- package/dist/components/ui/select/SelectTrigger.vue.d.ts +3 -0
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/slider/index.d.ts +12 -11
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/ui/textarea/Textarea.vue.d.ts +5 -1
- package/dist/components/ui/toast/Toast.vue.d.ts +4 -4
- package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
- package/dist/components/ui/toggle/index.d.ts +1 -1
- package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +2 -3
- package/dist/composables/color/index.d.ts +49 -0
- package/dist/composables/context/createContext.d.ts +56 -0
- package/dist/composables/context/index.d.ts +1 -0
- package/dist/composables/dark/darkModeSyncScript.d.ts +23 -0
- package/dist/composables/dark/index.d.ts +3 -0
- package/dist/composables/dark/useGlobalDark.d.ts +19 -2
- package/dist/composables/dom/index.d.ts +0 -3
- package/dist/composables/dom/useClipboard.d.ts +35 -12
- package/dist/composables/dom/useDocumentVisibility.d.ts +20 -0
- package/dist/composables/glass/webgl/compile.d.ts +15 -0
- package/dist/composables/glass/webgl/shaders/procedural-color.glsl.d.ts +3 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +55 -0
- package/dist/composables/motion/core/index.d.ts +1 -1
- package/dist/composables/motion/index.d.ts +1 -1
- package/dist/composables/motion/useCountup.d.ts +29 -0
- package/dist/composables/motion/useNumericTransition.d.ts +14 -3
- package/dist/composables/motion/vReveal.d.ts +2 -0
- package/dist/composables/sidebar/useSidebarState.d.ts +2 -2
- package/dist/composables/sortable/dragController.d.ts +44 -0
- package/dist/composables/sortable/dropResolver.d.ts +34 -0
- package/dist/composables/sortable/ghostRenderer.d.ts +44 -0
- package/dist/composables/sortable/index.d.ts +1 -1
- package/dist/composables/sortable/touchGate.d.ts +26 -0
- package/dist/composables/sortable/transitionTiming.d.ts +50 -0
- package/dist/composables/sortable/types.d.ts +133 -0
- package/dist/composables/sortable/useSortable.d.ts +25 -153
- package/dist/configurator.js +1 -1
- package/dist/confirm-dialog.js +1 -1
- package/dist/controls.js +4 -4
- package/dist/createContext-DBMGRlx4.js +25 -0
- package/dist/dark.d.ts +2 -1
- package/dist/dark.js +9 -2
- package/dist/data-table.js +1 -1
- package/dist/dialog.js +1 -1
- package/dist/disco-glyph.js +1 -1
- package/dist/dock.js +400 -261
- package/dist/dockContext-spUj_-E5.js +9 -0
- package/dist/dom.js +6 -6
- package/dist/{dropdown-menu-naE0skDg.js → dropdown-menu-EFjl5iKo.js} +1 -1
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +26 -20
- package/dist/fonts/README.md +21 -0
- package/dist/fonts/fraunces/fraunces-latin.woff2 +0 -0
- package/dist/forms.js +68 -59
- package/dist/glass-panel.js +1 -1
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +226 -328
- package/dist/glyph-face.js +2 -2
- package/dist/goo-blob.d.ts +1 -0
- package/dist/goo-blob.js +538 -0
- package/dist/header-ribbon.js +2 -2
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/instrument-chassis.js +1 -1
- package/dist/instrument-rail.js +1 -1
- package/dist/keys-BFoma9vm.js +9 -0
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +57 -39
- package/dist/metric-badge.js +1 -1
- package/dist/motion-core.js +82 -123
- package/dist/motion.js +62 -14
- package/dist/number-field.js +1 -1
- package/dist/paper-backdrop.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/{presets-BpTf63Hp.js → presets-1OhFpaIC.js} +1 -1
- package/dist/prng-Bz_1Tydc.js +15 -0
- package/dist/progress.js +2 -2
- package/dist/reactive.js +2 -2
- package/dist/responsive-tabs.js +38 -32
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +8 -8
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-wx8ifVFB.js → slider-BOh8ycfZ.js} +7 -11
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +36 -38
- package/dist/stacked-icons.js +2 -2
- package/dist/styles/animations.css +1 -1
- package/dist/styles/cards.css +1 -1
- package/dist/styles/components.css +1 -1
- package/dist/styles/dock-controls.css +486 -0
- package/dist/styles/dock.css +284 -450
- package/dist/styles/fonts.css +25 -0
- package/dist/styles/glass-specular-track.css +154 -0
- package/dist/styles/glass.css +74 -2
- package/dist/styles/index.css +21 -2
- package/dist/styles/instrument-chassis.css +11 -4
- package/dist/styles/theme.css +73 -21
- package/dist/styles/tokens.css +271 -140
- package/dist/styles/typography.css +14 -8
- package/dist/styles/utilities.css +36 -8
- package/dist/styles/view-transition.css +10 -4
- package/dist/switch.js +1 -1
- package/dist/tabs.js +139 -112
- package/dist/timeline.js +219 -158
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tokens.d.ts +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{useAnimatedNumber-BOxrS3a6.js → useAnimatedNumber-BF6r64lA.js} +1 -1
- package/dist/useClipboard-D8vFyRCa.js +97 -0
- package/dist/{useConfiguratorState-Dq2gNv4A.js → useConfiguratorState-DUtC1jxr.js} +82 -86
- package/dist/useGlobalDark-CWiaCoEw.js +34 -0
- package/dist/useIntersectionPause-DAdVPVp4.js +53 -0
- package/dist/useSortable-DnyGXKKY.js +246 -0
- package/dist/{useTouchGate-XX8gHfay.js → useTouchGate-CS5Csc2h.js} +1 -1
- package/dist/utils/prng.d.ts +4 -0
- package/dist/vReveal-u2wSG2El.js +35 -0
- package/dist/watercolor-dot.d.ts +1 -0
- package/dist/watercolor-dot.js +129 -0
- package/package.json +101 -16
- package/src/fonts/README.md +21 -0
- package/src/fonts/fraunces/fraunces-latin.woff2 +0 -0
- package/src/styles/animations.css +1 -1
- package/src/styles/cards.css +1 -1
- package/src/styles/dock-controls.css +486 -0
- package/src/styles/dock.css +284 -450
- package/src/styles/fonts.css +25 -0
- package/src/styles/glass-specular-track.css +154 -0
- package/src/styles/glass.css +74 -2
- package/src/styles/index.css +21 -2
- package/src/styles/instrument-chassis.css +11 -4
- package/src/styles/theme.css +73 -21
- package/src/styles/tokens.css +271 -140
- package/src/styles/typography.css +14 -8
- package/src/styles/utilities.css +36 -8
- package/src/styles/view-transition.css +10 -4
- package/dist/DataTable-BsrDYdoE.js +0 -460
- package/dist/DialogContent-B61rP8lj.js +0 -93
- package/dist/HoverPopover-BlEwqG7S.js +0 -96
- package/dist/Input-IFsIzId2.js +0 -30
- package/dist/Progress-Bs44qWEM.js +0 -126
- package/dist/UnderlineTabs-B4FV2zi_.js +0 -37
- package/dist/components/custom/aurora/shaders/aurora.frag.d.ts +0 -1
- package/dist/composables/dom/useBreakpoint.d.ts +0 -38
- package/dist/composables/dom/useIdleReady.d.ts +0 -63
- package/dist/composables/dom/useViewportReady.d.ts +0 -87
- package/dist/composables/glass/webgl/frostShader.d.ts +0 -27
- package/dist/composables/motion/useAnimatedNumberMap.d.ts +0 -29
- package/dist/composables/motion/useStagger.d.ts +0 -50
- package/dist/dockContext-DM58L1Jt.js +0 -16
- package/dist/keys-SIKQYNx1.js +0 -11
- package/dist/supportsCssTimeline-IQY3gfKD.js +0 -12
- package/dist/useGlobalDark-BUUTZvkU.js +0 -24
- package/dist/useIdleReady-sLhGo6CL.js +0 -162
- package/dist/useIntersectionPause-CUmANkoc.js +0 -39
- package/dist/useSortable-DLK9kwZp.js +0 -189
- /package/dist/{HoverCardContent-DGUhpRVt.js → HoverCardContent-ICfIMZX1.js} +0 -0
- /package/dist/{InstrumentChassis-CqKPBNqp.js → InstrumentChassis-DaHIZCqy.js} +0 -0
- /package/dist/{InstrumentRail-CCjvKkpB.js → InstrumentRail-B0qqLFN0.js} +0 -0
- /package/dist/{Label-D53EOwLE.js → Label-CZk-3nTc.js} +0 -0
- /package/dist/{PaperBackdrop-Ds-wDsKf.js → PaperBackdrop-D_YZW47j.js} +0 -0
- /package/dist/{SelectGroup-DAgcsfFw.js → SelectGroup-CMdoCjRE.js} +0 -0
- /package/dist/{SelectSeparator-DN1jzLaI.js → SelectSeparator-CaJnPF3_.js} +0 -0
- /package/dist/{Separator-DXxac0j8.js → Separator-C2XtAXRp.js} +0 -0
- /package/dist/{Switch-imA0Hdjs.js → Switch-x8n6husW.js} +0 -0
- /package/dist/{Toaster-Brs6QjBU.js → Toaster-DdhMKfus.js} +0 -0
- /package/dist/{TooltipProvider-MZFRxOvT.js → TooltipProvider-D-JrSqDu.js} +0 -0
- /package/dist/components/custom/aurora/{renderMode.d.ts → constants/renderMode.d.ts} +0 -0
- /package/dist/components/custom/aurora/{shaders → constants/shaders}/aurora.vert.d.ts +0 -0
- /package/dist/{constants-DfWPi8kh.js → constants-DsCdlK9I.js} +0 -0
- /package/dist/{sheet-BnvZRXPq.js → sheet-CQYYrkr9.js} +0 -0
- /package/dist/{useGlassRenderer-C98tZnJ7.js → useGlassRenderer-Dn3WpfG-.js} +0 -0
- /package/dist/{useInterval-B58LmYth.js → useInterval-CHVYFpXV.js} +0 -0
- /package/dist/{useResizeObserver-C_7GjpRn.js → useResizeObserver-DX-STszm.js} +0 -0
- /package/dist/{useTextHighlight-CLST6an0.js → useTextHighlight-Dmtofpk2.js} +0 -0
- /package/dist/{useTimer-6FoosoDY.js → useTimer-DGgoxTXL.js} +0 -0
- /package/dist/{useUserInvalidAria-BW5iyqWR.js → useUserInvalidAria-DmvZ_6Dx.js} +0 -0
- /package/dist/{useViewTransition-CUJM7fXT.js → useViewTransition-D4ssvnXZ.js} +0 -0
|
@@ -1,102 +1,41 @@
|
|
|
1
|
-
import { type HTMLAttributes } from
|
|
2
|
-
import {
|
|
3
|
-
type
|
|
1
|
+
import { type HTMLAttributes } from "vue";
|
|
2
|
+
import type { ProgressRootProps } from "reka-ui";
|
|
3
|
+
import type { ProgressSegment } from "./useProgressGeometry";
|
|
4
|
+
type ProgressVariant = "default" | "gradient" | "sectioned";
|
|
4
5
|
/**
|
|
5
|
-
*
|
|
6
|
-
* `
|
|
7
|
-
*
|
|
8
|
-
* phase-bus
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
6
|
+
* Progress — the thin variant dispatcher over three orthogonal designs:
|
|
7
|
+
* - `default` → ProgressDefault (plain rail + translateX intake-pulse)
|
|
8
|
+
* - `gradient` → ProgressGradient (lifecycle motion grammar + indeterminate)
|
|
9
|
+
* - `sectioned` → ProgressSectioned (phase-bus cells + spring active fill)
|
|
10
|
+
*
|
|
11
|
+
* The dispatcher carries an EXPLICIT prop-boundary contract: incompatible prop
|
|
12
|
+
* combinations are refused OUT LOUD (a dev throw) rather than silently producing
|
|
13
|
+
* a wrong paint. The historical break this closes: a consumer passing
|
|
14
|
+
* `:model-value` to the sectioned variant had it SILENTLY overridden by the
|
|
15
|
+
* cumulative cell-fill aggregate, so the bar ignored the value the consumer
|
|
16
|
+
* thought drove it. The contract below makes that misuse a loud error — the
|
|
17
|
+
* sectioned variant derives its own a11y value from the cells; `modelValue` is
|
|
18
|
+
* not its truth.
|
|
14
19
|
*/
|
|
15
|
-
export interface ProgressSegment {
|
|
16
|
-
/** Stable identifier — matched against `currentSegmentKey`. */
|
|
17
|
-
key: string;
|
|
18
|
-
/** Display label (currently unused visually; surfaced for a11y/title). */
|
|
19
|
-
label?: string;
|
|
20
|
-
/**
|
|
21
|
-
* CSS colour expression (hex, oklch, color-mix, `var(--token)`).
|
|
22
|
-
* Drives the cell fill, the gradient stops between siblings, and
|
|
23
|
-
* the active-fill spring overlay.
|
|
24
|
-
*/
|
|
25
|
-
color: string;
|
|
26
|
-
/** Lifecycle state. Drives saturation + sweep. Defaults to "pending". */
|
|
27
|
-
state?: 'pending' | 'active' | 'completed';
|
|
28
|
-
/**
|
|
29
|
-
* Relative width weight. Per-cell widths = `weight / sum(weights)`.
|
|
30
|
-
* Default `1` (equal share — the speedtest pings/jitter/dl/ul case).
|
|
31
|
-
*/
|
|
32
|
-
weight?: number;
|
|
33
|
-
}
|
|
34
20
|
type __VLS_Props = ProgressRootProps & {
|
|
35
|
-
class?: HTMLAttributes[
|
|
21
|
+
class?: HTMLAttributes["class"];
|
|
36
22
|
/**
|
|
37
|
-
* 'default'
|
|
38
|
-
* 'gradient'
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* cell carries a spring fill driven by
|
|
44
|
-
* `activeProgress` and a living catch-light sweep.
|
|
45
|
-
* The single `modelValue` is ignored in favour of
|
|
46
|
-
* the per-cell state map. Consumers wire:
|
|
47
|
-
* - `segments` (the cells)
|
|
48
|
-
* - `currentSegmentKey` (which cell is active)
|
|
49
|
-
* - `activeProgress` (0..1 fill of the active cell)
|
|
23
|
+
* 'default' = bg-secondary rail + bg-primary indicator.
|
|
24
|
+
* 'gradient' = rail respects --progress-track; indicator respects
|
|
25
|
+
* --progress-fill; the W4 lifecycle motion grammar layers on.
|
|
26
|
+
* 'sectioned' = phase-bus (AB.W3.T2). N colour-coded cells with gradient
|
|
27
|
+
* seams; the active cell carries a spring fill. The per-cell
|
|
28
|
+
* state map is the truth — NOT `modelValue`.
|
|
50
29
|
*/
|
|
51
30
|
variant?: ProgressVariant;
|
|
52
31
|
/** Sectioned only — ordered segment list. */
|
|
53
32
|
segments?: ProgressSegment[];
|
|
54
33
|
/** Sectioned only — key of the currently active segment. */
|
|
55
34
|
currentSegmentKey?: string | null;
|
|
56
|
-
/**
|
|
57
|
-
* Sectioned only — 0..1 fill of the active segment. Drives the
|
|
58
|
-
* spring overlay inside the active cell. Pre-active cells fill
|
|
59
|
-
* 0; post-active cells render at full saturation as "completed".
|
|
60
|
-
*/
|
|
35
|
+
/** Sectioned only — 0..1 fill of the active segment. */
|
|
61
36
|
activeProgress?: number;
|
|
62
|
-
/**
|
|
63
|
-
* AI.W4-M.1 — indeterminate sweep. When true, the gradient
|
|
64
|
-
* variant's rail runs a slow left-to-right gradient pan
|
|
65
|
-
* (`--motion-duration-progress-indeterminate`, 4s default) and
|
|
66
|
-
* the indicator hides. Reka's ProgressRoot already supports the
|
|
67
|
-
* indeterminate shape via a null modelValue; the prop here is
|
|
68
|
-
* an explicit opt-in for consumers that want the sweep without
|
|
69
|
-
* managing the modelValue lifecycle. PRM retires the sweep to
|
|
70
|
-
* a static rail.
|
|
71
|
-
*/
|
|
37
|
+
/** Gradient only — indeterminate sweep opt-in. */
|
|
72
38
|
indeterminate?: boolean;
|
|
73
|
-
/**
|
|
74
|
-
* AJ-W4-ε — opt out of the publisher-side crescendo overlay. The
|
|
75
|
-
* gradient variant's lifecycle paints a screen-blended white cap
|
|
76
|
-
* on the leading edge past 85% modelValue (the typed
|
|
77
|
-
* `--progress-crescendo` percentage interpolates the cap alpha).
|
|
78
|
-
* Consumers that bake their own leading-edge brightening into
|
|
79
|
-
* `--progress-fill` (e.g. speedtest's under-meter bar, whose
|
|
80
|
-
* gradient stops at 80%/100% paint a `color-mix` white tail
|
|
81
|
-
* directly into the fill) would otherwise double-brighten the
|
|
82
|
-
* same edge.
|
|
83
|
-
*
|
|
84
|
-
* The pre-W4-ε migration shape was a consumer-side typed-property
|
|
85
|
-
* override (`--progress-crescendo: 0%` in the consumer's scoped
|
|
86
|
-
* CSS) — correct in behaviour but visually noisier than a
|
|
87
|
-
* declarative prop. `:disable-crescendo="true"` collapses the
|
|
88
|
-
* publisher overlay cleanly: the crescendo rule keys off
|
|
89
|
-
* `data-crescendo="disabled"` so the screen-blended cap layer
|
|
90
|
-
* never paints, and the typed style binding pins
|
|
91
|
-
* `--progress-crescendo: 0%` so any downstream rule that
|
|
92
|
-
* `var()`s the typed property reads the floor.
|
|
93
|
-
*
|
|
94
|
-
* The intake-pulse + discharge-flash still fire — those are
|
|
95
|
-
* temporal envelopes on the rail / indicator (not gradient
|
|
96
|
-
* overlays), so a consumer that wants the lifecycle envelopes
|
|
97
|
-
* but not the crescendo cap can opt into this surgically.
|
|
98
|
-
*/
|
|
99
|
-
disableCrescendo?: boolean;
|
|
100
39
|
};
|
|
101
40
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
102
41
|
variant: ProgressVariant;
|
|
@@ -105,7 +44,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
105
44
|
segments: ProgressSegment[];
|
|
106
45
|
currentSegmentKey: string | null;
|
|
107
46
|
activeProgress: number;
|
|
108
|
-
disableCrescendo: boolean;
|
|
109
47
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
110
48
|
declare const _default: typeof __VLS_export;
|
|
111
49
|
export default _default;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type HTMLAttributes } from "vue";
|
|
2
|
+
import { type ProgressRootProps } from "reka-ui";
|
|
3
|
+
/**
|
|
4
|
+
* Default progress variant — `bg-secondary` rail + `bg-primary` indicator with a
|
|
5
|
+
* `translateX(-%)` intake-pulse. The plainest rung; no lifecycle motion grammar
|
|
6
|
+
* (that lives on the gradient variant). The thin `Progress` dispatcher routes
|
|
7
|
+
* here for `variant="default"`.
|
|
8
|
+
*/
|
|
9
|
+
type __VLS_Props = ProgressRootProps & {
|
|
10
|
+
class?: HTMLAttributes["class"];
|
|
11
|
+
};
|
|
12
|
+
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>;
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type HTMLAttributes } from "vue";
|
|
2
|
+
import { type ProgressRootProps } from "reka-ui";
|
|
3
|
+
/**
|
|
4
|
+
* Gradient progress variant — the rail respects `--progress-track`, the indicator
|
|
5
|
+
* respects `--progress-fill` (free-form CSS, including gradients), and the W4
|
|
6
|
+
* lifecycle motion grammar layers on top: an intake pulse on the rising edge, a
|
|
7
|
+
* leading-edge crescendo past 85%, a discharge glow at 100%, and an optional
|
|
8
|
+
* indeterminate sweep. The thin `Progress` dispatcher routes here for
|
|
9
|
+
* `variant="gradient"`.
|
|
10
|
+
*/
|
|
11
|
+
type __VLS_Props = ProgressRootProps & {
|
|
12
|
+
class?: HTMLAttributes["class"];
|
|
13
|
+
/**
|
|
14
|
+
* AI.W4-M.1 — indeterminate sweep. When true, the rail runs a slow
|
|
15
|
+
* left-to-right gradient pan (`--motion-duration-progress-indeterminate`, 4s
|
|
16
|
+
* default) and the indicator hides. Reka's ProgressRoot already supports the
|
|
17
|
+
* indeterminate shape via a null modelValue; the prop here is an explicit
|
|
18
|
+
* opt-in for consumers that want the sweep without managing the modelValue
|
|
19
|
+
* lifecycle. PRM retires the sweep to a static rail.
|
|
20
|
+
*/
|
|
21
|
+
indeterminate?: boolean;
|
|
22
|
+
};
|
|
23
|
+
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
|
+
declare const _default: typeof __VLS_export;
|
|
25
|
+
export default _default;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type HTMLAttributes } from "vue";
|
|
2
|
+
import { type ProgressRootProps } from "reka-ui";
|
|
3
|
+
import { type ProgressSegment } from "./useProgressGeometry";
|
|
4
|
+
/**
|
|
5
|
+
* Sectioned progress variant — the phase-bus (AB.W3.T2). Renders N colour-coded
|
|
6
|
+
* cells with gradient seams between siblings; the active cell carries a spring
|
|
7
|
+
* fill driven by `activeProgress` and a living catch-light sweep.
|
|
8
|
+
*
|
|
9
|
+
* The single `modelValue` is NOT the truth here — the per-cell state map is. The
|
|
10
|
+
* underlying `[role="progressbar"]` reports a numeric `aria-valuenow` derived from
|
|
11
|
+
* the cumulative cell fill (`useProgressGeometry.aggregateValue`), which is the
|
|
12
|
+
* sectioned variant's OWN value, not a silent override of any consumer-supplied
|
|
13
|
+
* modelValue (the `Progress` dispatcher refuses a modelValue-as-truth misuse out
|
|
14
|
+
* loud — see the prop-boundary contract there). The thin dispatcher routes here
|
|
15
|
+
* for `variant="sectioned"`.
|
|
16
|
+
*/
|
|
17
|
+
type __VLS_Props = Omit<ProgressRootProps, "modelValue"> & {
|
|
18
|
+
class?: HTMLAttributes["class"];
|
|
19
|
+
/** Ordered segment list — the cells. */
|
|
20
|
+
segments?: ProgressSegment[];
|
|
21
|
+
/** Key of the currently active segment. */
|
|
22
|
+
currentSegmentKey?: string | null;
|
|
23
|
+
/**
|
|
24
|
+
* 0..1 fill of the active segment. Drives the spring overlay inside the
|
|
25
|
+
* active cell. Pre-active cells fill 0; post-active cells render at full
|
|
26
|
+
* saturation as "completed".
|
|
27
|
+
*/
|
|
28
|
+
activeProgress?: number;
|
|
29
|
+
};
|
|
30
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
31
|
+
segments: ProgressSegment[];
|
|
32
|
+
currentSegmentKey: string | null;
|
|
33
|
+
activeProgress: number;
|
|
34
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
35
|
+
declare const _default: typeof __VLS_export;
|
|
36
|
+
export default _default;
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
export { default as Progress } from
|
|
2
|
-
export
|
|
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 ProgressSectioned } from "./ProgressSectioned.vue";
|
|
5
|
+
export { useProgressGeometry, type ProgressSegment, type SectionedCell, } from "./useProgressGeometry";
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type ComputedRef, type Ref } from "vue";
|
|
2
|
+
/**
|
|
3
|
+
* Segment shape consumed by `variant="sectioned"`. Mirrors `TimelineSegment`
|
|
4
|
+
* (`@mkbabb/glass-ui/timeline`) deliberately so a consumer can pass the same
|
|
5
|
+
* array to both the timeline rail and the phase-bus progress without re-shaping.
|
|
6
|
+
* Optional fields default sensibly:
|
|
7
|
+
* - `state` → "pending"
|
|
8
|
+
* - `weight` → 1 (equal share)
|
|
9
|
+
* - `color` → consumer-controlled CSS (`var(--chart-{key})` etc.); the
|
|
10
|
+
* sectioned variant requires it for the colour cells.
|
|
11
|
+
*/
|
|
12
|
+
export interface ProgressSegment {
|
|
13
|
+
/** Stable identifier — matched against `currentSegmentKey`. */
|
|
14
|
+
key: string;
|
|
15
|
+
/** Display label (currently unused visually; surfaced for a11y/title). */
|
|
16
|
+
label?: string;
|
|
17
|
+
/**
|
|
18
|
+
* CSS colour expression (hex, oklch, color-mix, `var(--token)`). Drives the
|
|
19
|
+
* cell fill, the gradient stops between siblings, and the active-fill spring
|
|
20
|
+
* overlay.
|
|
21
|
+
*/
|
|
22
|
+
color: string;
|
|
23
|
+
/** Lifecycle state. Drives saturation + sweep. Defaults to "pending". */
|
|
24
|
+
state?: "pending" | "active" | "completed";
|
|
25
|
+
/**
|
|
26
|
+
* Relative width weight. Per-cell widths = `weight / sum(weights)`. Default
|
|
27
|
+
* `1` (equal share — the speedtest pings/jitter/dl/ul case).
|
|
28
|
+
*/
|
|
29
|
+
weight?: number;
|
|
30
|
+
}
|
|
31
|
+
/** A resolved sectioned cell — per-cell geometry + lifecycle + fill fraction. */
|
|
32
|
+
export interface SectionedCell extends ProgressSegment {
|
|
33
|
+
startPct: number;
|
|
34
|
+
endPct: number;
|
|
35
|
+
widthPct: number;
|
|
36
|
+
resolvedState: "pending" | "active" | "completed";
|
|
37
|
+
/** 0..1 — how much of THIS cell paints saturated. */
|
|
38
|
+
fill: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Derive per-cell width/start/end/state/fill from the `segments` array.
|
|
42
|
+
*
|
|
43
|
+
* Widths come from the weight distribution; states resolve from each segment's
|
|
44
|
+
* explicit `state` (wins) or are inferred from `currentSegmentKey` order (cells
|
|
45
|
+
* before current = completed, current = active, after = pending). The active
|
|
46
|
+
* cell's fill follows `activeProgress`; completed cells fill 1; pending fill 0.
|
|
47
|
+
*/
|
|
48
|
+
export declare function useProgressGeometry(args: {
|
|
49
|
+
segments: Ref<ProgressSegment[]> | ComputedRef<ProgressSegment[]>;
|
|
50
|
+
currentSegmentKey: Ref<string | null> | ComputedRef<string | null>;
|
|
51
|
+
activeProgress: Ref<number> | ComputedRef<number>;
|
|
52
|
+
}): {
|
|
53
|
+
cells: ComputedRef<SectionedCell[]>;
|
|
54
|
+
/**
|
|
55
|
+
* The cumulative-fill aggregate (0..100) — the meaningful numeric the
|
|
56
|
+
* underlying `[role="progressbar"]` reports as `aria-valuenow`. Derived from
|
|
57
|
+
* the per-cell state map, NOT from any `modelValue`.
|
|
58
|
+
*/
|
|
59
|
+
aggregateValue: ComputedRef<number>;
|
|
60
|
+
};
|
|
@@ -5,11 +5,11 @@ type __VLS_Slots = {} & {
|
|
|
5
5
|
default?: (props: typeof __VLS_8) => any;
|
|
6
6
|
};
|
|
7
7
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
8
|
-
"update:open": (value: boolean) => any;
|
|
9
8
|
"update:modelValue": (value: import("reka-ui").AcceptableValue) => any;
|
|
9
|
+
"update:open": (value: boolean) => any;
|
|
10
10
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
11
|
-
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
12
11
|
"onUpdate:modelValue"?: ((value: import("reka-ui").AcceptableValue) => any) | undefined;
|
|
12
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
13
13
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
14
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
15
15
|
declare const _default: typeof __VLS_export;
|
|
@@ -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<"top" | "right" | "bottom" | "left", 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;
|
|
@@ -4,12 +4,15 @@ type __VLS_Props = SelectTriggerProps & {
|
|
|
4
4
|
class?: HTMLAttributes['class'];
|
|
5
5
|
/** 'default' = glass bg; 'ghost' = transparent, no border/shadow */
|
|
6
6
|
variant?: 'default' | 'ghost';
|
|
7
|
+
/** Height register: 'default' = h-10 (byte-identical), 'sm' = h-9 (compact controls) */
|
|
8
|
+
size?: 'sm' | 'default';
|
|
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<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
15
|
+
size: "sm" | "default";
|
|
13
16
|
variant: "default" | "ghost";
|
|
14
17
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
18
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -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?: "top" | "right" | "bottom" | "left" | null | undefined;
|
|
12
12
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
13
13
|
export type SheetVariants = VariantProps<typeof sheetVariants>;
|
|
@@ -9,15 +9,16 @@ export { default as Slider } from './Slider.vue';
|
|
|
9
9
|
* `.slider-thumb` paint. The size axis lifts pure geometry via CSS vars
|
|
10
10
|
* (`--slider-track-height`, `--slider-thumb-size`) the SFC defaults read.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
* standard
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
12
|
+
* Exactly two canonical recipes ship:
|
|
13
|
+
* standard — the continuous rounded iOS knob: a fully-circular, borderless
|
|
14
|
+
* thumb that sits in the track and reads as a swelling of the
|
|
15
|
+
* capsule, with halo-on-state and the iOS press spring. This is
|
|
16
|
+
* the general-purpose glass-scrubber knob and the default.
|
|
17
|
+
* spectrum — the gradient-track color slider: a tall capsule whose
|
|
18
|
+
* background is a consumer-supplied `--slider-track-bg`
|
|
19
|
+
* linear-gradient (the LCH/hue ramp), a transparent range, and a
|
|
20
|
+
* small ringed knob that reads against any track hue. This is the
|
|
21
|
+
* aurora/blob color-picking surface.
|
|
21
22
|
*
|
|
22
23
|
* Sizes:
|
|
23
24
|
* sm — 4px track / 12px thumb
|
|
@@ -25,7 +26,7 @@ export { default as Slider } from './Slider.vue';
|
|
|
25
26
|
* lg — 12px track / 24px thumb
|
|
26
27
|
*/
|
|
27
28
|
export declare const sliderVariants: (props?: ({
|
|
28
|
-
variant?: "standard" | "spectrum" |
|
|
29
|
-
size?: "
|
|
29
|
+
variant?: "standard" | "spectrum" | null | undefined;
|
|
30
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
30
31
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
31
32
|
export type SliderVariants = VariantProps<typeof sliderVariants>;
|
|
@@ -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
|
-
invalid: (payload: import("reka-ui").AcceptableInputValue) => any;
|
|
12
11
|
"update:modelValue": (payload: import("reka-ui").AcceptableInputValue[]) => any;
|
|
12
|
+
invalid: (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
|
-
onInvalid?: ((payload: import("reka-ui").AcceptableInputValue) => any) | undefined;
|
|
17
16
|
"onUpdate:modelValue"?: ((payload: import("reka-ui").AcceptableInputValue[]) => any) | undefined;
|
|
17
|
+
onInvalid?: ((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,10 +1,12 @@
|
|
|
1
|
-
import type { HTMLAttributes } from 'vue';
|
|
1
|
+
import type { HTMLAttributes, TextareaHTMLAttributes } from 'vue';
|
|
2
2
|
declare const _default: typeof __VLS_export;
|
|
3
3
|
export default _default;
|
|
4
4
|
declare const __VLS_export: import("vue").DefineComponent<{
|
|
5
5
|
class?: HTMLAttributes["class"];
|
|
6
6
|
defaultValue?: string | number;
|
|
7
7
|
modelValue?: string | number;
|
|
8
|
+
placeholder?: TextareaHTMLAttributes["placeholder"];
|
|
9
|
+
disabled?: TextareaHTMLAttributes["disabled"];
|
|
8
10
|
/**
|
|
9
11
|
* AQ.W4 §W4.3 — opt into `field-sizing: content` auto-grow. When `true`,
|
|
10
12
|
* the textarea grows vertically with its content between a 3-line floor
|
|
@@ -27,6 +29,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
27
29
|
class?: HTMLAttributes["class"];
|
|
28
30
|
defaultValue?: string | number;
|
|
29
31
|
modelValue?: string | number;
|
|
32
|
+
placeholder?: TextareaHTMLAttributes["placeholder"];
|
|
33
|
+
disabled?: TextareaHTMLAttributes["disabled"];
|
|
30
34
|
/**
|
|
31
35
|
* AQ.W4 §W4.3 — opt into `field-sizing: content` auto-grow. When `true`,
|
|
32
36
|
* the textarea grows vertically with its content between a 3-line floor
|
|
@@ -10,10 +10,10 @@ type __VLS_Slots = {} & {
|
|
|
10
10
|
default?: (props: typeof __VLS_21) => any;
|
|
11
11
|
};
|
|
12
12
|
declare const __VLS_base: import("vue").DefineComponent<ToastProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
|
-
pause: () => any;
|
|
14
|
-
resume: () => any;
|
|
15
13
|
"update:open": (value: boolean) => any;
|
|
16
14
|
escapeKeyDown: (event: KeyboardEvent) => any;
|
|
15
|
+
pause: () => any;
|
|
16
|
+
resume: () => any;
|
|
17
17
|
swipeStart: (event: {
|
|
18
18
|
currentTarget: EventTarget & HTMLElement;
|
|
19
19
|
} & Omit<CustomEvent<{
|
|
@@ -51,10 +51,10 @@ declare const __VLS_base: import("vue").DefineComponent<ToastProps, {}, {}, {},
|
|
|
51
51
|
};
|
|
52
52
|
}>, "currentTarget">) => any;
|
|
53
53
|
}, string, import("vue").PublicProps, Readonly<ToastProps> & Readonly<{
|
|
54
|
-
onPause?: (() => any) | undefined;
|
|
55
|
-
onResume?: (() => any) | undefined;
|
|
56
54
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
57
55
|
onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
|
|
56
|
+
onPause?: (() => any) | undefined;
|
|
57
|
+
onResume?: (() => any) | undefined;
|
|
58
58
|
onSwipeStart?: ((event: {
|
|
59
59
|
currentTarget: EventTarget & HTMLElement;
|
|
60
60
|
} & Omit<CustomEvent<{
|
|
@@ -15,7 +15,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
15
15
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
16
16
|
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
17
17
|
}>, {
|
|
18
|
-
size: "default" | "
|
|
18
|
+
size: "default" | "sm" | "lg" | null;
|
|
19
19
|
variant: "default" | "outline" | "card" | null;
|
|
20
20
|
disabled: boolean;
|
|
21
21
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -21,6 +21,6 @@ export { default as Toggle } from './Toggle.vue';
|
|
|
21
21
|
*/
|
|
22
22
|
export declare const toggleVariants: (props?: ({
|
|
23
23
|
variant?: "default" | "outline" | "card" | null | undefined;
|
|
24
|
-
size?: "default" | "
|
|
24
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
25
25
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
26
26
|
export type ToggleVariants = VariantProps<typeof toggleVariants>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { type InjectionKey } from "vue";
|
|
2
1
|
import type { VariantProps } from "class-variance-authority";
|
|
3
2
|
import type { toggleVariants } from "../toggle";
|
|
4
3
|
/**
|
|
@@ -15,7 +14,7 @@ export interface ToggleGroupContext {
|
|
|
15
14
|
variant: ToggleGroupVariants["variant"];
|
|
16
15
|
size: ToggleGroupVariants["size"];
|
|
17
16
|
}
|
|
18
|
-
export declare const TOGGLE_GROUP_KEY: InjectionKey<ToggleGroupContext>;
|
|
17
|
+
export declare const TOGGLE_GROUP_KEY: import("vue").InjectionKey<ToggleGroupContext>;
|
|
19
18
|
export declare function provideToggleGroupContext(context: ToggleGroupContext): void;
|
|
20
19
|
/** Befitting silent default — `<ToggleGroupItem>` can also render bare. */
|
|
21
|
-
export declare
|
|
20
|
+
export declare const useOptionalToggleGroupContext: () => ToggleGroupContext | null;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** An OKLCh color stop. `L` 0..1, `C` 0..~0.4, `h` 0..360. */
|
|
2
|
+
export interface OklchStop {
|
|
3
|
+
L: number;
|
|
4
|
+
C: number;
|
|
5
|
+
h: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The injected color seam (DEC-AT-2, consumed by the AU.W7 blob). Resolves a CSS
|
|
9
|
+
* color string to a GAMMA-sRGB triple in [0,1]. `defaultBlobColorResolver` is the
|
|
10
|
+
* opt-in default; a consumer (value.js) may inject its own.
|
|
11
|
+
*/
|
|
12
|
+
export type ColorResolver = (css: string) => [number, number, number];
|
|
13
|
+
/**
|
|
14
|
+
* OKLCh stop → LINEAR-sRGB in [0,1] — aurora's bundle-canonical bake target (the
|
|
15
|
+
* shader ACES-tonemaps in linear, so the LUT stays linear).
|
|
16
|
+
*
|
|
17
|
+
* value.js's canonical Ottosson path (`rawOklchToOklab → oklabToLinearSRGB`,
|
|
18
|
+
* inv-K-2). The `Math.max(0,·)` wrap is the ACES-in-linear contract — value.js
|
|
19
|
+
* does not clamp negative linear (an out-of-gamut stop yields negatives; the wrap
|
|
20
|
+
* keeps them off the GPU). The equivalence canary asserts the COMPOSED path.
|
|
21
|
+
*/
|
|
22
|
+
export declare function oklchToLinear(stop: OklchStop): [number, number, number];
|
|
23
|
+
/**
|
|
24
|
+
* OKLCh stop → GAMMA-sRGB in [0,1] — the blob's faithful-lift exit (DEC-AT-7's W7
|
|
25
|
+
* GAMMA space). value.js's `oklabToRgb255` returns gamma-encoded 0..255 (HSV/sRGB,
|
|
26
|
+
* no extra OETF); divide to [0,1]. The blob's default resolver returns THIS space
|
|
27
|
+
* so the W7 lift paints at parity (the LINEAR shader-quality flip + `linearToSrgb`
|
|
28
|
+
* is the AU.W7 stage). Channels are clamped to [0,1] (an out-of-gamut stop is
|
|
29
|
+
* already gamut-mapped upstream; this is the float-edge guard).
|
|
30
|
+
*/
|
|
31
|
+
export declare function oklchToGammaRgb(stop: OklchStop): [number, number, number];
|
|
32
|
+
/**
|
|
33
|
+
* Resolve any CSS color string to an OKLCh stop via value.js's parser — the single
|
|
34
|
+
* canonical core (inv-K-2). DOM-free (SSR / happy-dom safe — no 1×1-canvas).
|
|
35
|
+
*
|
|
36
|
+
* Semantics: an INVALID string THROWS; ALPHA is dropped (OklchStop has no alpha);
|
|
37
|
+
* out-of-gamut inputs are NOT byte-clamped. Callers feeding user / possibly-
|
|
38
|
+
* transparent strings should wrap in try/catch and decide an alpha policy.
|
|
39
|
+
*/
|
|
40
|
+
export declare function cssToOklch(css: string): OklchStop;
|
|
41
|
+
/** OKLCh stop → `#rrggbb` gamma hex (value.js `oklabToRgb255`). */
|
|
42
|
+
export declare function oklchStopToHex(s: OklchStop): string;
|
|
43
|
+
/**
|
|
44
|
+
* The OPT-IN default `ColorResolver` — `(css) => gamma [r,g,b]` via
|
|
45
|
+
* `cssToOklch → oklchToGammaRgb`. The AU.W7 goo-blob requires an INJECTED resolver
|
|
46
|
+
* and throws by THIS name on a no-resolver mount (the loud failure, not a silent
|
|
47
|
+
* gray default); value.js supplies its own, the demo story uses this one.
|
|
48
|
+
*/
|
|
49
|
+
export declare const defaultBlobColorResolver: ColorResolver;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type InjectionKey } from "vue";
|
|
2
|
+
/**
|
|
3
|
+
* Domain-neutral provide/inject DI factory pair — the single source the dock,
|
|
4
|
+
* dock-layer-group, toggle-group, sortable-list, glyph-face, and configurator
|
|
5
|
+
* contexts collapse onto (AV.W14). Generalizes the four hand-rolled
|
|
6
|
+
* provide/inject/throw triplets into ONE typed factory so a `*_KEY:
|
|
7
|
+
* InjectionKey<T>` declaration + its `provide`/`use`/throw boilerplate is never
|
|
8
|
+
* re-rolled per call site — each site keeps only its distinct `interface`,
|
|
9
|
+
* label, and (strict) error message.
|
|
10
|
+
*
|
|
11
|
+
* Two shapes, chosen per the strict-vs-optional matrix (PROGRESS.md):
|
|
12
|
+
* - `createStrictContext<T>(label, outsideError)` — a `use()` that THROWS
|
|
13
|
+
* `outsideError` when injected outside its provider (the consumer is
|
|
14
|
+
* meaningless without the parent). It ALSO exposes `useOptional()` over the
|
|
15
|
+
* SAME key, so a context that is strict for its primary consumer yet must
|
|
16
|
+
* read null-safe elsewhere (the dock: `<Slider>` may sit outside) shares one
|
|
17
|
+
* key across both `use` shapes — no second symbol, no `any` leak.
|
|
18
|
+
* - `createOptionalContext<T>(label)` — a `use()` that returns `T | null`
|
|
19
|
+
* (befitting-silent; the consumer renders bare when no provider is present).
|
|
20
|
+
* No strict counterpart is minted — a strict throw would be dead code at
|
|
21
|
+
* these sites (invariant 25's "per intent" clause).
|
|
22
|
+
*
|
|
23
|
+
* The returned `KEY` is exported by each call site so an external provider can
|
|
24
|
+
* `provide(KEY, …)` directly (the goo-blob `BLOB_CONFIG_KEY` external-provide
|
|
25
|
+
* pattern stays a bare `inject(KEY, default)` and is NOT minted here — it is not
|
|
26
|
+
* a strict-or-optional triplet).
|
|
27
|
+
*/
|
|
28
|
+
export interface StrictContext<T> {
|
|
29
|
+
/** The typed injection key — exported so an external provider can target it. */
|
|
30
|
+
readonly KEY: InjectionKey<T>;
|
|
31
|
+
/** Provide the context to descendants. */
|
|
32
|
+
provide: (ctx: T) => void;
|
|
33
|
+
/** Strict — throws `outsideError` when used outside the provider. */
|
|
34
|
+
use: () => T;
|
|
35
|
+
/** Befitting-silent over the SAME key — returns `null` outside the provider. */
|
|
36
|
+
useOptional: () => T | null;
|
|
37
|
+
}
|
|
38
|
+
export interface OptionalContext<T> {
|
|
39
|
+
/** The typed injection key — exported so an external provider can target it. */
|
|
40
|
+
readonly KEY: InjectionKey<T>;
|
|
41
|
+
/** Provide the context to descendants. */
|
|
42
|
+
provide: (ctx: T) => void;
|
|
43
|
+
/** Befitting-silent — returns `null` when used outside the provider. */
|
|
44
|
+
use: () => T | null;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Strict context factory. `use()` throws `outsideError` outside the provider;
|
|
48
|
+
* `useOptional()` returns `null` over the same key for the null-safe-elsewhere
|
|
49
|
+
* case.
|
|
50
|
+
*/
|
|
51
|
+
export declare function createStrictContext<T>(label: string, outsideError: string): StrictContext<T>;
|
|
52
|
+
/**
|
|
53
|
+
* Optional context factory. `use()` returns `T | null` (befitting-silent); no
|
|
54
|
+
* strict counterpart is minted.
|
|
55
|
+
*/
|
|
56
|
+
export declare function createOptionalContext<T>(label: string): OptionalContext<T>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { createStrictContext, createOptionalContext, type StrictContext, type OptionalContext, } from "./createContext";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** The localStorage key vueuse `useColorMode`/`useDark` defaults to. The
|
|
2
|
+
* `useGlobalDark` factory passes no `storageKey`, so this default is canonical. */
|
|
3
|
+
export declare const DARK_MODE_STORAGE_KEY = "vueuse-color-scheme";
|
|
4
|
+
export interface DarkModeSyncScriptOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Override the localStorage key the emitted script reads. Defaults to
|
|
7
|
+
* `vueuse-color-scheme` — the key `useGlobalDark`'s underlying `useDark`
|
|
8
|
+
* uses. Override ONLY if a consumer reconfigured the vueuse storage key.
|
|
9
|
+
*/
|
|
10
|
+
storageKey?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Return the inline `<head>` script STRING that resolves dark/light at parse
|
|
14
|
+
* time and stamps `<html>` before first paint. Inject it as the FIRST blocking
|
|
15
|
+
* script in `<head>` (or into an SSR head):
|
|
16
|
+
*
|
|
17
|
+
* ```html
|
|
18
|
+
* <script>${darkModeSyncScript()}</script>
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* The function has no DOM side-effect itself — it only builds a string.
|
|
22
|
+
*/
|
|
23
|
+
export declare function darkModeSyncScript(options?: DarkModeSyncScriptOptions): string;
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
export { useGlobalDark } from "./useGlobalDark";
|
|
2
|
+
export type { UseGlobalDarkOptions } from "./useGlobalDark";
|
|
2
3
|
export { installDarkModeSync } from "./installDarkModeSync";
|
|
4
|
+
export { darkModeSyncScript, DARK_MODE_STORAGE_KEY } from "./darkModeSyncScript";
|
|
5
|
+
export type { DarkModeSyncScriptOptions } from "./darkModeSyncScript";
|