@mkbabb/glass-ui 3.1.1 → 3.3.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-CSGcJkqa.js → CardFooter-C390imy7.js} +3 -3
- package/dist/{CollapsibleContent-CVMOcYlV.js → CollapsibleContent-cauTbZEM.js} +1 -1
- package/dist/{CommandShortcut-DWT19a2Y.js → CommandShortcut-BiVyqipe.js} +7 -6
- package/dist/{ContextMenuSubContent-gAFxJ-qi.js → ContextMenuSubContent-DrWkXKQP.js} +4 -4
- package/dist/DataTable-FfkaAg2z.js +465 -0
- package/dist/DialogContent-IQ8_BRrC.js +100 -0
- package/dist/{DialogFooter-ClrNEOVU.js → DialogFooter-Er0wA3K6.js} +2 -2
- package/dist/{DiscoGlyph-C3JfMnRV.js → DiscoGlyph-BaZ8OawK.js} +1 -1
- package/dist/{GlyphFace-BRS8vUb7.js → GlyphFace-B_7vOmYn.js} +1 -1
- package/dist/HoverPopover-DTSYkJtw.js +96 -0
- package/dist/{IconTooltip-BkaA7tZ2.js → IconTooltip-BTyYn4mr.js} +1 -1
- package/dist/Input-CU9CNKmo.js +52 -0
- package/dist/{MetricBadge-DmAihkXd.js → MetricBadge-BlrdbOGN.js} +2 -2
- package/dist/{Notification-OqIpADml.js → Notification-DP_ApJLo.js} +3 -3
- package/dist/{NumberFieldContent-DTH9gb_N.js → NumberFieldContent-iOTQ5rGO.js} +9 -5
- package/dist/{PopoverContent-EiklFrna.js → PopoverContent-B8WtJECb.js} +1 -1
- package/dist/Progress-DjM86vfb.js +254 -0
- package/dist/{ScrollingText-BFd0i2zJ.js → ScrollingText-P9o_DuMn.js} +2 -2
- package/dist/{SelectScrollDownButton-Dth8-wXQ.js → SelectScrollDownButton-BGn3rjs9.js} +12 -11
- package/dist/TabsIndicator-DA0x9gPr.js +97 -0
- package/dist/{Toaster-Bjlunvq4.js → Toaster-DdhMKfus.js} +1 -1
- package/dist/{ToggleGroupItem-OesUouE7.js → ToggleGroupItem-gyXj998A.js} +37 -40
- package/dist/UnderlineTabs-Cq_AD03t.js +39 -0
- package/dist/animated-digit.js +3 -3
- package/dist/api/index.d.ts +2 -0
- package/dist/api.js +1 -1
- package/dist/aurora.js +471 -320
- package/dist/badge.js +1 -1
- package/dist/{button-C0aHmBbt.js → button-Ckn3eDfB.js} +27 -22
- package/dist/button.js +1 -1
- package/dist/card.js +1 -1
- package/dist/carousel.js +6 -6
- package/dist/{check-dwgetki8.js → check-CdkxGxXJ.js} +1 -1
- package/dist/{chevron-down-DILQA1t6.js → chevron-down-pBY8sYfV.js} +1 -1
- package/dist/{chevron-right-fS7fal2t.js → chevron-right-BjeKC22V.js} +1 -1
- package/dist/{chevron-up-BtYjYQOS.js → chevron-up-DBeNHUm1.js} +1 -1
- 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 +42 -16
- 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} +3 -6
- 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 +4 -3
- package/dist/components/custom/configurator/Configurator.vue.d.ts +26 -0
- 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/configurator/index.d.ts +1 -1
- package/dist/components/custom/dock/DockBackgroundToggle.vue.d.ts +46 -0
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +15 -4
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +2 -2
- package/dist/components/custom/dock/GlassDock.vue.d.ts +34 -13
- 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 +1 -3
- package/dist/composables/dom/useClipboard.d.ts +35 -12
- package/dist/composables/dom/useDocumentVisibility.d.ts +20 -0
- package/dist/composables/dom/useTextHighlight.d.ts +40 -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 +2 -1
- package/dist/composables/motion/index.d.ts +1 -1
- package/dist/composables/motion/useCountup.d.ts +29 -0
- package/dist/composables/motion/usePrioritizedTask.d.ts +41 -0
- 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 -140
- package/dist/configurator.js +1 -1
- package/dist/confirm-dialog.js +3 -3
- package/dist/context-menu.js +2 -2
- package/dist/controls.js +5 -5
- 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 +2 -2
- package/dist/disco-glyph.js +1 -1
- package/dist/dock.js +410 -254
- package/dist/dockContext-spUj_-E5.js +9 -0
- package/dist/dom.js +6 -5
- package/dist/{dropdown-menu-BvRUamNs.js → dropdown-menu-EFjl5iKo.js} +4 -4
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +28 -22
- package/dist/fonts/README.md +21 -0
- package/dist/fonts/fraunces/fraunces-latin.woff2 +0 -0
- package/dist/forms.js +70 -61
- package/dist/glass-carousel.js +59 -52
- package/dist/glass-panel.js +2 -2
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +159 -254
- 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 +3 -3
- 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/keyboard.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/metric-stack.js +1 -1
- package/dist/{minimize-2-LsCJ_eNt.js → minimize-2-BP27-qBY.js} +1 -1
- package/dist/motion-core.js +154 -135
- package/dist/motion.js +63 -15
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/paper-backdrop.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/{presets-a-D93K1S.js → presets-1OhFpaIC.js} +5 -5
- package/dist/prng-Bz_1Tydc.js +15 -0
- package/dist/progress.js +2 -2
- package/dist/pulse.js +1 -1
- package/dist/reactive.js +2 -2
- package/dist/responsive-tabs.js +38 -32
- package/dist/scrolling-text.js +1 -1
- package/dist/{search-DBAiUABx.js → search-DBG8qaRs.js} +1 -1
- package/dist/search.js +153 -149
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/{sheet-CukNDezz.js → sheet-CQYYrkr9.js} +3 -3
- package/dist/sheet.js +1 -1
- package/dist/{slider-DJvHkTRe.js → slider-BOh8ycfZ.js} +8 -12
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +37 -39
- 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 +45 -0
- package/dist/styles/dock-controls.css +486 -0
- package/dist/styles/dock.css +325 -431
- 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 +25 -2
- package/dist/styles/instrument-chassis.css +11 -4
- package/dist/styles/theme.css +73 -21
- package/dist/styles/tokens.css +282 -140
- package/dist/styles/typography.css +14 -8
- package/dist/styles/utilities.css +92 -8
- package/dist/styles/view-transition.css +10 -4
- package/dist/switch.js +1 -1
- package/dist/tabs.js +148 -106
- package/dist/timeline.js +220 -159
- 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/typewriter.js +1 -1
- package/dist/{useAnimatedNumber-DKQYVB7s.js → useAnimatedNumber-BF6r64lA.js} +1 -1
- package/dist/useClipboard-D8vFyRCa.js +97 -0
- package/dist/useConfiguratorState-DUtC1jxr.js +276 -0
- package/dist/useGlobalDark-CWiaCoEw.js +34 -0
- package/dist/useIntersectionPause-DAdVPVp4.js +53 -0
- package/dist/useSortable-DnyGXKKY.js +246 -0
- package/dist/useTextHighlight-Dmtofpk2.js +72 -0
- package/dist/{useTouchGate-D9Zvrzyc.js → useTouchGate-CS5Csc2h.js} +1 -1
- package/dist/{useViewTransition-DYIK6Gzb.js → useViewTransition-D4ssvnXZ.js} +5 -3
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/platformSupport.d.ts +8 -0
- 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/dist/{x-q7pJa83X.js → x-C4pz9nbD.js} +1 -1
- package/package.json +110 -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 +325 -431
- 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 +282 -140
- package/src/styles/typography.css +14 -8
- package/src/styles/utilities.css +92 -8
- package/src/styles/view-transition.css +10 -4
- package/dist/DataTable-R8-Zidms.js +0 -460
- package/dist/DialogContent-2fALDSvc.js +0 -93
- package/dist/HoverPopover-CWFCfLx3.js +0 -96
- package/dist/Input-DDpFn568.js +0 -30
- package/dist/Progress-FApA9fm_.js +0 -126
- package/dist/UnderlineTabs-DAWMLmJG.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-D5NZCWJs.js +0 -16
- package/dist/keys-CaTQS-vx.js +0 -11
- package/dist/useConfiguratorState-CtRBE0m_.js +0 -268
- package/dist/useGlobalDark-B0WvLJE3.js +0 -24
- package/dist/useIdleReady-Cmkhm03v.js +0 -162
- package/dist/useIntersectionPause-IY2CwPQb.js +0 -39
- package/dist/useSortable-Cq2Y1JLO.js +0 -175
- /package/dist/{ContextMenuContent-otjFIu8v.js → ContextMenuContent-De01_83g.js} +0 -0
- /package/dist/{HoverCardContent-DaGrgJBO.js → HoverCardContent-ICfIMZX1.js} +0 -0
- /package/dist/{InstrumentChassis-CnHTMxds.js → InstrumentChassis-DaHIZCqy.js} +0 -0
- /package/dist/{InstrumentRail-C6dEbi8E.js → InstrumentRail-B0qqLFN0.js} +0 -0
- /package/dist/{Label-DJty89bp.js → Label-CZk-3nTc.js} +0 -0
- /package/dist/{ModalOverlay-iWiAgbYH.js → ModalOverlay-B_CBtqcE.js} +0 -0
- /package/dist/{PaperBackdrop-CeZ-w0R0.js → PaperBackdrop-D_YZW47j.js} +0 -0
- /package/dist/{SelectGroup-DdR4tdDY.js → SelectGroup-CMdoCjRE.js} +0 -0
- /package/dist/{SelectSeparator-CXm_hlqA.js → SelectSeparator-CaJnPF3_.js} +0 -0
- /package/dist/{Separator-D8AUMhxY.js → Separator-C2XtAXRp.js} +0 -0
- /package/dist/{Switch-Cr1t_F_U.js → Switch-x8n6husW.js} +0 -0
- /package/dist/{TooltipProvider-DE78vbEP.js → TooltipProvider-D-JrSqDu.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-Dq1MygBL.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
- /package/dist/{badge-x46my_Fo.js → badge-Cl6JZ1B7.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-DwBwnG8N.js → constants-DsCdlK9I.js} +0 -0
- /package/dist/{createLucideIcon-Bn9a1b70.js → createLucideIcon-DuDoe_ra.js} +0 -0
- /package/dist/{menuItemVariants-BsbGNq9C.js → menuItemVariants-C2QlXqT3.js} +0 -0
- /package/dist/{useGlassRenderer-Ds-nmrGz.js → useGlassRenderer-Dn3WpfG-.js} +0 -0
- /package/dist/{useInterval-DVgGUf_y.js → useInterval-CHVYFpXV.js} +0 -0
- /package/dist/{useKeyboardShortcuts-Dpw_RUcB.js → useKeyboardShortcuts-BQfnAHHW.js} +0 -0
- /package/dist/{useResizeObserver-Cg9npuM3.js → useResizeObserver-DX-STszm.js} +0 -0
- /package/dist/{useSpringMount-Cfk1XK1R.js → useSpringMount-CnizvZGm.js} +0 -0
- /package/dist/{useTimer-NAaj9zNq.js → useTimer-DGgoxTXL.js} +0 -0
- /package/dist/{useUserInvalidAria-DVu1eTXG.js → useUserInvalidAria-DmvZ_6Dx.js} +0 -0
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WebGL frost/refraction fragment shader for glass-ui.
|
|
3
|
-
*
|
|
4
|
-
* Features:
|
|
5
|
-
* - Frosted glass blur (Gaussian kernel with spatial variation)
|
|
6
|
-
* - Snell's law refraction displacement
|
|
7
|
-
* - Fresnel-based specular highlights
|
|
8
|
-
* - Chromatic aberration at glass edges
|
|
9
|
-
*/
|
|
10
|
-
/** Vertex shader — full-screen quad */
|
|
11
|
-
export declare const VERTEX_SHADER = "#version 300 es\nprecision highp float;\n\nin vec2 a_position;\nin vec2 a_texCoord;\n\nout vec2 v_texCoord;\n\nvoid main() {\n gl_Position = vec4(a_position, 0.0, 1.0);\n v_texCoord = a_texCoord;\n}\n";
|
|
12
|
-
/** Fragment shader — frosted glass with refraction and chromatic aberration */
|
|
13
|
-
export declare const FRAGMENT_SHADER = "#version 300 es\nprecision highp float;\n\nuniform sampler2D u_background; // Captured page content behind glass\nuniform vec2 u_resolution; // Canvas resolution (px)\nuniform vec4 u_glassBounds; // Glass panel rect (x, y, w, h) in UV space\nuniform float u_blurRadius; // Base blur radius (0-40)\nuniform float u_refractionStrength; // Refraction displacement (0-1)\nuniform float u_chromaticAberration; // Edge chromatic aberration (0-1)\nuniform vec2 u_lightPos; // Light source position (UV, 0-1)\nuniform float u_time; // Animation time (seconds)\n\nin vec2 v_texCoord;\nout vec4 fragColor;\n\n// Gaussian weight for blur kernel\nfloat gaussian(float x, float sigma) {\n return exp(-(x * x) / (2.0 * sigma * sigma));\n}\n\n// Distance from point to nearest edge of glass panel (in UV space)\nfloat edgeDistance(vec2 uv) {\n vec2 glassMin = u_glassBounds.xy;\n vec2 glassMax = u_glassBounds.xy + u_glassBounds.zw;\n vec2 d = min(uv - glassMin, glassMax - uv);\n return min(d.x, d.y);\n}\n\n// Fresnel approximation (Schlick)\nfloat fresnel(vec3 viewDir, vec3 normal, float ior) {\n float r0 = pow((1.0 - ior) / (1.0 + ior), 2.0);\n return r0 + (1.0 - r0) * pow(1.0 - max(dot(viewDir, normal), 0.0), 5.0);\n}\n\nvoid main() {\n vec2 uv = v_texCoord;\n vec2 pixelSize = 1.0 / u_resolution;\n\n // Check if fragment is inside the glass panel\n vec2 glassMin = u_glassBounds.xy;\n vec2 glassMax = u_glassBounds.xy + u_glassBounds.zw;\n\n if (uv.x < glassMin.x || uv.x > glassMax.x ||\n uv.y < glassMin.y || uv.y > glassMax.y) {\n fragColor = texture(u_background, uv);\n return;\n }\n\n // Progressive blur \u2014 stronger at center, weaker at edges\n float edgeDist = edgeDistance(uv);\n float maxEdgeDist = min(u_glassBounds.z, u_glassBounds.w) * 0.5;\n float blurFactor = smoothstep(0.0, maxEdgeDist * 0.3, edgeDist);\n float effectiveBlur = u_blurRadius * (0.4 + 0.6 * blurFactor);\n\n // Refraction displacement (Snell's law approximation)\n vec2 center = u_glassBounds.xy + u_glassBounds.zw * 0.5;\n vec2 fromCenter = uv - center;\n vec2 refractionOffset = fromCenter * u_refractionStrength * 0.02;\n\n // Gaussian blur with refraction offset\n vec3 blurColor = vec3(0.0);\n float totalWeight = 0.0;\n\n int samples = int(min(effectiveBlur * 2.0, 20.0));\n float sigma = max(effectiveBlur * 0.5, 0.1);\n\n for (int x = -10; x <= 10; x++) {\n for (int y = -10; y <= 10; y++) {\n if (abs(x) > samples || abs(y) > samples) continue;\n\n vec2 offset = vec2(float(x), float(y)) * pixelSize * effectiveBlur * 0.1;\n float weight = gaussian(float(x), sigma) * gaussian(float(y), sigma);\n\n vec2 sampleUV = uv + offset + refractionOffset;\n blurColor += texture(u_background, sampleUV).rgb * weight;\n totalWeight += weight;\n }\n }\n blurColor /= totalWeight;\n\n // Chromatic aberration at edges\n if (u_chromaticAberration > 0.0) {\n float edgeStrength = 1.0 - smoothstep(0.0, maxEdgeDist * 0.15, edgeDist);\n vec2 aberrationDir = normalize(fromCenter) * edgeStrength * u_chromaticAberration * 0.003;\n\n float r = texture(u_background, uv + refractionOffset + aberrationDir).r;\n float b = texture(u_background, uv + refractionOffset - aberrationDir).b;\n blurColor.r = mix(blurColor.r, r, edgeStrength * 0.5);\n blurColor.b = mix(blurColor.b, b, edgeStrength * 0.5);\n }\n\n // Specular highlight (Fresnel)\n vec3 viewDir = vec3(0.0, 0.0, 1.0);\n vec2 normalXY = fromCenter / (u_glassBounds.zw * 0.5);\n vec3 normal = normalize(vec3(normalXY * 0.3, 1.0));\n float spec = fresnel(viewDir, normal, 1.5);\n\n // Light-source-aware specular\n vec2 lightDir = normalize(u_lightPos - uv);\n float lightDot = max(dot(normalXY, lightDir), 0.0);\n spec *= 0.3 + 0.7 * lightDot;\n\n // Combine: frosted blur + specular + slight tint\n vec3 tint = vec3(1.0, 1.0, 1.0); // neutral tint\n vec3 result = blurColor * tint + vec3(spec * 0.15);\n\n // Glass opacity with frosted appearance\n float alpha = 0.85 + spec * 0.1;\n fragColor = vec4(result, alpha);\n}\n";
|
|
14
|
-
/** Shader program setup — compiles and links vertex + fragment shaders */
|
|
15
|
-
export declare function createFrostProgram(gl: WebGL2RenderingContext | WebGLRenderingContext): WebGLProgram | null;
|
|
16
|
-
/** Uniform locations cache for the frost program */
|
|
17
|
-
export interface FrostUniforms {
|
|
18
|
-
u_background: WebGLUniformLocation | null;
|
|
19
|
-
u_resolution: WebGLUniformLocation | null;
|
|
20
|
-
u_glassBounds: WebGLUniformLocation | null;
|
|
21
|
-
u_blurRadius: WebGLUniformLocation | null;
|
|
22
|
-
u_refractionStrength: WebGLUniformLocation | null;
|
|
23
|
-
u_chromaticAberration: WebGLUniformLocation | null;
|
|
24
|
-
u_lightPos: WebGLUniformLocation | null;
|
|
25
|
-
u_time: WebGLUniformLocation | null;
|
|
26
|
-
}
|
|
27
|
-
export declare function getFrostUniforms(gl: WebGL2RenderingContext | WebGLRenderingContext, program: WebGLProgram): FrostUniforms;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { type ComputedRef } from "vue";
|
|
2
|
-
import { type UseAnimatedNumberOptions } from "./useAnimatedNumber";
|
|
3
|
-
export interface UseAnimatedNumberMapOptions extends UseAnimatedNumberOptions {
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* Fan out N independent `useAnimatedNumber` instances into a `Record<K, ...>`.
|
|
7
|
-
*
|
|
8
|
-
* Each key gets one rAF-smoothed `ComputedRef<number | null>`. The smoothing
|
|
9
|
-
* options apply identically across the set; consumers that need per-key
|
|
10
|
-
* options should call `useAnimatedNumber` per key directly.
|
|
11
|
-
*
|
|
12
|
-
* The `null` propagation is preserved: when `source(key)` resolves to `null`,
|
|
13
|
-
* the corresponding ref returns `null` rather than freezing on the last
|
|
14
|
-
* smoothed sample. This matches the per-metric `raw → smoothed` contract.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* const keys = ["ping", "jitter", "download", "upload"] as const;
|
|
18
|
-
* const smoothed = useAnimatedNumberMap({
|
|
19
|
-
* keys,
|
|
20
|
-
* source: (k) => computed(() => store.resultFor(k).value ?? null),
|
|
21
|
-
* damping: DAMPING.domPill,
|
|
22
|
-
* snapThreshold: SNAP_THRESHOLD.dom,
|
|
23
|
-
* });
|
|
24
|
-
* // smoothed.ping.value, smoothed.jitter.value, ...
|
|
25
|
-
*/
|
|
26
|
-
export declare function useAnimatedNumberMap<K extends string>(options: {
|
|
27
|
-
keys: readonly K[];
|
|
28
|
-
source: (key: K) => ComputedRef<number | null>;
|
|
29
|
-
} & UseAnimatedNumberMapOptions): Record<K, ComputedRef<number | null>>;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { type Ref } from "vue";
|
|
2
|
-
export interface UseStaggerOptions {
|
|
3
|
-
/** Count of staggered slots. Each slot maps to one boolean in `revealed`. */
|
|
4
|
-
items: number;
|
|
5
|
-
/**
|
|
6
|
-
* Delay between consecutive reveals.
|
|
7
|
-
*
|
|
8
|
-
* Default 80ms — mirrors the `--motion-stagger-default` token in
|
|
9
|
-
* `tokens.css` (AJ-W4-κ canon). Consumers driving per-row CSS
|
|
10
|
-
* `animation-delay` cascades on the same surface should also read
|
|
11
|
-
* `--motion-stagger-default` so the JS-driven cascade (this composable)
|
|
12
|
-
* and the CSS-driven cascade stay in lockstep.
|
|
13
|
-
*
|
|
14
|
-
* The two adjacent canon tiers are:
|
|
15
|
-
* - `--motion-stagger-tight: 40ms` — dense row cascades
|
|
16
|
-
* - `--motion-stagger-relaxed: 120ms` — wide series cascades
|
|
17
|
-
*/
|
|
18
|
-
delayMs?: number;
|
|
19
|
-
/** Delay before the first reveal fires. Default 0. */
|
|
20
|
-
initialDelayMs?: number;
|
|
21
|
-
/** Auto-start on creation. Default true. */
|
|
22
|
-
immediate?: boolean;
|
|
23
|
-
/**
|
|
24
|
-
* When true, honour `prefers-reduced-motion: reduce` by flipping every
|
|
25
|
-
* slot true synchronously instead of cascading the timeline. Mirrors
|
|
26
|
-
* the canonical opt-in on `useAnimatedNumber` and the global
|
|
27
|
-
* `transitions.css` / `utilities.css` reduced-motion brackets. SSR
|
|
28
|
-
* environments (no `window.matchMedia`) treat the option as a no-op.
|
|
29
|
-
* Default true.
|
|
30
|
-
*/
|
|
31
|
-
respectReducedMotion?: boolean;
|
|
32
|
-
}
|
|
33
|
-
export interface UseStaggerControls {
|
|
34
|
-
/** Per-slot reveal state. `revealed.value[i]` flips true at `initialDelayMs + i * delayMs`. */
|
|
35
|
-
revealed: Ref<boolean[]>;
|
|
36
|
-
/** Re-arm the cascade. Resets `revealed` to all-false then fires the timeline. */
|
|
37
|
-
start: () => void;
|
|
38
|
-
/** Reset to all-false. Cancels any pending reveals. */
|
|
39
|
-
reset: () => void;
|
|
40
|
-
/** True once every slot has flipped. */
|
|
41
|
-
isComplete: Ref<boolean>;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Drive a fixed-count staggered reveal off a single timer cascade.
|
|
45
|
-
*
|
|
46
|
-
* @example
|
|
47
|
-
* const { revealed, start } = useStagger({ items: visible.value.length, delayMs: 80, initialDelayMs: 80, immediate: false });
|
|
48
|
-
* watch(allComplete, (done, prev) => { if (done && !prev) start(); });
|
|
49
|
-
*/
|
|
50
|
-
export declare function useStagger(options: UseStaggerOptions): UseStaggerControls;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { inject as e, provide as t } from "vue";
|
|
2
|
-
//#region src/components/custom/dock/composables/dockContext.ts
|
|
3
|
-
var n = Symbol("glass-ui:dock-context");
|
|
4
|
-
function r(e) {
|
|
5
|
-
t(n, e);
|
|
6
|
-
}
|
|
7
|
-
function i() {
|
|
8
|
-
let t = e(n);
|
|
9
|
-
if (!t) throw Error("[glass-ui:dock] useDockContext() called outside <GlassDock>; use useOptionalDockContext() if the primitive may render outside a dock.");
|
|
10
|
-
return t;
|
|
11
|
-
}
|
|
12
|
-
function a() {
|
|
13
|
-
return e(n, null);
|
|
14
|
-
}
|
|
15
|
-
//#endregion
|
|
16
|
-
export { a as i, r as n, i as r, n as t };
|
package/dist/keys-CaTQS-vx.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { inject as e, provide as t } from "vue";
|
|
2
|
-
//#region src/components/custom/glyph-face/keys.ts
|
|
3
|
-
var n = Symbol("glass-ui:glyph-face-silhouette");
|
|
4
|
-
function r(e) {
|
|
5
|
-
t(n, e);
|
|
6
|
-
}
|
|
7
|
-
function i() {
|
|
8
|
-
return e(n, null);
|
|
9
|
-
}
|
|
10
|
-
//#endregion
|
|
11
|
-
export { r as n, i as r, n as t };
|
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./cn-DJXf4yaB.js";
|
|
2
|
-
import { t } from "./createLucideIcon-Bn9a1b70.js";
|
|
3
|
-
import { t as n } from "./chevron-down-DILQA1t6.js";
|
|
4
|
-
import { t as r } from "./_plugin-vue_export-helper-Dq1MygBL.js";
|
|
5
|
-
import { t as i } from "./Label-DJty89bp.js";
|
|
6
|
-
import { Fragment as a, computed as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, createVNode as d, defineComponent as f, inject as p, normalizeClass as m, normalizeStyle as h, openBlock as g, provide as _, reactive as v, ref as y, renderList as b, renderSlot as x, toDisplayString as S, toRaw as C, unref as w, useId as T, watch as E, withCtx as D } from "vue";
|
|
7
|
-
var O = t("rotate-ccw", [["path", {
|
|
8
|
-
d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",
|
|
9
|
-
key: "1357e3"
|
|
10
|
-
}], ["path", {
|
|
11
|
-
d: "M3 3v5h5",
|
|
12
|
-
key: "1xhq8a"
|
|
13
|
-
}]]), k = Symbol("configuratorDensity");
|
|
14
|
-
function A(e) {
|
|
15
|
-
_(k, e);
|
|
16
|
-
}
|
|
17
|
-
function j() {
|
|
18
|
-
return p(k, null);
|
|
19
|
-
}
|
|
20
|
-
//#endregion
|
|
21
|
-
//#region src/components/custom/configurator/Configurator.vue?vue&type=script&setup=true&lang.ts
|
|
22
|
-
var M = { class: "configurator-stage relative min-h-0 min-w-0 overflow-hidden" }, N = { class: "configurator-aside flex min-h-0 min-w-0 flex-col border-t border-border/40 lg:border-l lg:border-t-0" }, P = {
|
|
23
|
-
key: 0,
|
|
24
|
-
class: "configurator-presets shrink-0 border-b border-border/40 px-3 py-2"
|
|
25
|
-
}, F = {
|
|
26
|
-
class: "flex gap-2 overflow-x-auto scroll-fade-mask scrollbar-hidden",
|
|
27
|
-
role: "tablist",
|
|
28
|
-
"aria-label": "Presets"
|
|
29
|
-
}, I = ["aria-selected", "onClick"], L = { class: "flex flex-col" }, R = {
|
|
30
|
-
key: 1,
|
|
31
|
-
class: "configurator-footer shrink-0 border-t border-border/40 px-3 py-2"
|
|
32
|
-
}, z = /* @__PURE__ */ f({
|
|
33
|
-
__name: "Configurator",
|
|
34
|
-
props: {
|
|
35
|
-
presets: {},
|
|
36
|
-
activePreset: {},
|
|
37
|
-
layers: {},
|
|
38
|
-
activeLayer: {},
|
|
39
|
-
scrollMode: { default: "auto" },
|
|
40
|
-
density: { default: "comfortable" },
|
|
41
|
-
class: { type: [
|
|
42
|
-
Boolean,
|
|
43
|
-
null,
|
|
44
|
-
String,
|
|
45
|
-
Object,
|
|
46
|
-
Array
|
|
47
|
-
] }
|
|
48
|
-
},
|
|
49
|
-
emits: [
|
|
50
|
-
"select-preset",
|
|
51
|
-
"select-layer",
|
|
52
|
-
"reset"
|
|
53
|
-
],
|
|
54
|
-
setup(t, { emit: n }) {
|
|
55
|
-
let r = t;
|
|
56
|
-
A(o(() => r.density));
|
|
57
|
-
let i = n, u = o(() => e("configurator glass-floating rounded-panel border border-border/60 overflow-hidden", "grid grid-cols-1 lg:grid-cols-[minmax(0,1fr)_minmax(280px,360px)]", "min-h-0", r.class)), d = o(() => {
|
|
58
|
-
switch (r.scrollMode) {
|
|
59
|
-
case "always": return "overflow-y-auto scroll-fade-y scrollbar-thin";
|
|
60
|
-
case "never": return "overflow-visible";
|
|
61
|
-
default: return "overflow-y-auto scroll-fade-y scrollbar-thin";
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
return (n, r) => (g(), c("section", { class: m(u.value) }, [l("div", M, [x(n.$slots, "stage")]), l("aside", N, [
|
|
65
|
-
n.$slots.presets || t.presets && t.presets.length > 0 ? (g(), c("div", P, [x(n.$slots, "presets", {
|
|
66
|
-
presets: t.presets,
|
|
67
|
-
activePreset: t.activePreset
|
|
68
|
-
}, () => [l("div", F, [(g(!0), c(a, null, b(t.presets, (n) => (g(), c("button", {
|
|
69
|
-
key: n.key,
|
|
70
|
-
type: "button",
|
|
71
|
-
role: "tab",
|
|
72
|
-
"aria-selected": n.key === t.activePreset,
|
|
73
|
-
class: m(w(e)("focus-ring shrink-0 rounded-pill border px-3 py-1 text-xs font-medium transition-colors", n.key === t.activePreset ? "border-foreground/40 bg-foreground text-background" : "border-border/40 bg-card/40 text-foreground hover:bg-card/70")),
|
|
74
|
-
onClick: (e) => i("select-preset", n.key)
|
|
75
|
-
}, S(n.label), 11, I))), 128))])])])) : s("", !0),
|
|
76
|
-
l("div", { class: m(w(e)("configurator-controls flex-1 min-h-0", d.value)) }, [x(n.$slots, "controls", {
|
|
77
|
-
layers: t.layers,
|
|
78
|
-
activeLayer: t.activeLayer,
|
|
79
|
-
selectLayer: (e) => i("select-layer", e)
|
|
80
|
-
}, () => [l("div", L, [x(n.$slots, "default")])])], 2),
|
|
81
|
-
n.$slots.footer ? (g(), c("div", R, [x(n.$slots, "footer", { reset: () => i("reset") })])) : s("", !0)
|
|
82
|
-
])], 2));
|
|
83
|
-
}
|
|
84
|
-
}), B = ["data-state"], V = [
|
|
85
|
-
"aria-expanded",
|
|
86
|
-
"aria-controls",
|
|
87
|
-
"data-state"
|
|
88
|
-
], H = { class: "flex min-w-0 items-baseline gap-2" }, U = { class: "text-sm font-semibold text-foreground" }, W = {
|
|
89
|
-
key: 0,
|
|
90
|
-
class: "truncate text-micro font-mono text-muted-foreground/70"
|
|
91
|
-
}, G = [
|
|
92
|
-
"id",
|
|
93
|
-
"aria-hidden",
|
|
94
|
-
"inert",
|
|
95
|
-
"data-state"
|
|
96
|
-
], K = { class: "min-h-0 overflow-hidden" }, q = /* @__PURE__ */ f({
|
|
97
|
-
__name: "ConfiguratorLayer",
|
|
98
|
-
props: {
|
|
99
|
-
label: {},
|
|
100
|
-
sub: {},
|
|
101
|
-
id: {},
|
|
102
|
-
open: {
|
|
103
|
-
type: Boolean,
|
|
104
|
-
default: void 0
|
|
105
|
-
},
|
|
106
|
-
defaultOpen: {
|
|
107
|
-
type: Boolean,
|
|
108
|
-
default: !0
|
|
109
|
-
},
|
|
110
|
-
class: { type: [
|
|
111
|
-
Boolean,
|
|
112
|
-
null,
|
|
113
|
-
String,
|
|
114
|
-
Object,
|
|
115
|
-
Array
|
|
116
|
-
] },
|
|
117
|
-
bodyClass: { type: [
|
|
118
|
-
Boolean,
|
|
119
|
-
null,
|
|
120
|
-
String,
|
|
121
|
-
Object,
|
|
122
|
-
Array
|
|
123
|
-
] }
|
|
124
|
-
},
|
|
125
|
-
emits: ["update:open"],
|
|
126
|
-
setup(t, { emit: r }) {
|
|
127
|
-
let i = t, a = r, u = y(i.open ?? i.defaultOpen);
|
|
128
|
-
E(() => i.open, (e) => {
|
|
129
|
-
e !== void 0 && (u.value = e);
|
|
130
|
-
});
|
|
131
|
-
let f = `configurator-layer-body-${T()}`, p = o(() => i.id ?? f);
|
|
132
|
-
function _() {
|
|
133
|
-
let e = !u.value;
|
|
134
|
-
u.value = e, a("update:open", e);
|
|
135
|
-
}
|
|
136
|
-
let v = o(() => u.value ? "open" : "closed");
|
|
137
|
-
return (r, a) => (g(), c("div", {
|
|
138
|
-
class: m(w(e)("configurator-layer border-b border-border/40 last:border-b-0", i.class)),
|
|
139
|
-
"data-state": v.value
|
|
140
|
-
}, [l("button", {
|
|
141
|
-
type: "button",
|
|
142
|
-
class: m(w(e)("configurator-layer-trigger", "group flex w-full items-center justify-between gap-2 px-3 py-2", "text-left transition-colors hover:bg-foreground/5 focus-ring")),
|
|
143
|
-
"aria-expanded": u.value,
|
|
144
|
-
"aria-controls": p.value,
|
|
145
|
-
"data-state": v.value,
|
|
146
|
-
onClick: _
|
|
147
|
-
}, [l("div", H, [l("span", U, S(t.label), 1), t.sub ? (g(), c("span", W, S(t.sub), 1)) : s("", !0)]), d(w(n), {
|
|
148
|
-
class: "h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-data-[state=open]:rotate-180",
|
|
149
|
-
"aria-hidden": "true"
|
|
150
|
-
})], 10, V), l("div", {
|
|
151
|
-
id: p.value,
|
|
152
|
-
role: "region",
|
|
153
|
-
"aria-hidden": !u.value,
|
|
154
|
-
inert: !u.value,
|
|
155
|
-
"data-state": v.value,
|
|
156
|
-
class: "configurator-layer-region grid transition-[grid-template-rows] duration-200 ease-out motion-reduce:transition-none",
|
|
157
|
-
style: h({ gridTemplateRows: u.value ? "1fr" : "0fr" })
|
|
158
|
-
}, [l("div", K, [l("div", { class: m(w(e)("configurator-layer-body px-3 py-2 space-y-2", i.bodyClass)) }, [x(r.$slots, "default")], 2)])], 12, G)], 10, B));
|
|
159
|
-
}
|
|
160
|
-
}), J = ["data-density"], Y = { class: "flex items-baseline justify-between gap-3" }, X = { class: "flex min-w-0 items-baseline gap-2" }, Z = {
|
|
161
|
-
key: 0,
|
|
162
|
-
class: "truncate text-micro font-mono text-muted-foreground/70"
|
|
163
|
-
}, Q = ["aria-label"], $ = { class: "flex items-center" }, ee = {
|
|
164
|
-
key: 0,
|
|
165
|
-
class: "text-micro leading-snug text-muted-foreground/80"
|
|
166
|
-
}, te = /* @__PURE__ */ r(/* @__PURE__ */ f({
|
|
167
|
-
__name: "ConfiguratorRow",
|
|
168
|
-
props: {
|
|
169
|
-
label: {},
|
|
170
|
-
name: {},
|
|
171
|
-
description: {},
|
|
172
|
-
canReset: { type: Boolean },
|
|
173
|
-
density: {},
|
|
174
|
-
class: { type: [
|
|
175
|
-
Boolean,
|
|
176
|
-
null,
|
|
177
|
-
String,
|
|
178
|
-
Object,
|
|
179
|
-
Array
|
|
180
|
-
] }
|
|
181
|
-
},
|
|
182
|
-
emits: ["reset"],
|
|
183
|
-
setup(t, { emit: n }) {
|
|
184
|
-
let r = t, a = n, f = j(), p = o(() => r.density ?? f?.value ?? void 0);
|
|
185
|
-
return (n, o) => (g(), c("div", {
|
|
186
|
-
class: m(w(e)("configurator-row flex flex-col gap-1.5 py-2", r.class)),
|
|
187
|
-
"data-density": p.value
|
|
188
|
-
}, [
|
|
189
|
-
l("div", Y, [l("div", X, [d(w(i), { class: "truncate text-sm font-medium text-foreground" }, {
|
|
190
|
-
default: D(() => [u(S(t.label), 1)]),
|
|
191
|
-
_: 1
|
|
192
|
-
}), t.name ? (g(), c("span", Z, S(t.name), 1)) : s("", !0)]), t.canReset ? (g(), c("button", {
|
|
193
|
-
key: 0,
|
|
194
|
-
type: "button",
|
|
195
|
-
class: "focus-ring inline-flex h-6 w-6 items-center justify-center rounded-pill text-muted-foreground/60 transition-colors hover:bg-foreground/5 hover:text-foreground active:scale-[var(--scale-press,0.97)]",
|
|
196
|
-
"aria-label": `Reset ${t.label}`,
|
|
197
|
-
onClick: o[0] ||= (e) => a("reset")
|
|
198
|
-
}, [d(w(O), {
|
|
199
|
-
class: "h-3 w-3",
|
|
200
|
-
"aria-hidden": "true"
|
|
201
|
-
})], 8, Q)) : s("", !0)]),
|
|
202
|
-
l("div", $, [x(n.$slots, "default", {}, void 0, !0)]),
|
|
203
|
-
t.description ? (g(), c("p", ee, S(t.description), 1)) : s("", !0)
|
|
204
|
-
], 10, J));
|
|
205
|
-
}
|
|
206
|
-
}), [["__scopeId", "data-v-e6e34000"]]);
|
|
207
|
-
//#endregion
|
|
208
|
-
//#region src/components/custom/configurator/useConfiguratorState.ts
|
|
209
|
-
function ne(e) {
|
|
210
|
-
let t = C(e);
|
|
211
|
-
if (typeof structuredClone != "function") throw Error("[glass-ui:configurator] structuredClone is unavailable in this runtime. Pass a custom clone via ConfiguratorStateOptions.clone for environments without structured-clone support.");
|
|
212
|
-
try {
|
|
213
|
-
return structuredClone(t);
|
|
214
|
-
} catch (e) {
|
|
215
|
-
throw Error("[glass-ui:configurator] structuredClone failed: " + (e instanceof Error ? e.message : String(e)) + ". Preset values must be structured-cloneable (no functions, symbols, DOM nodes, or class instances). Pass a custom clone via ConfiguratorStateOptions.clone if the data shape requires it.");
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
function re(e, t) {
|
|
219
|
-
return JSON.stringify(e) === JSON.stringify(t);
|
|
220
|
-
}
|
|
221
|
-
function ie(e) {
|
|
222
|
-
let t = e.clone ?? ne, n = e.equals ?? re, r = e.presets, i = e.cloneMode ?? "commit-on-write", a = e.initialPreset ?? (r.length > 0 ? r[0].key : void 0), s = a ? r.find((e) => e.key === a) : void 0, c = v(s ? t(s.config) : {}), l = y(a), u = i === "per-preset" ? Object.fromEntries(r.map((e) => [e.key, t(e.config)])) : null, d = o(() => l.value), f = o(() => {
|
|
223
|
-
let e = l.value;
|
|
224
|
-
if (!e) return !1;
|
|
225
|
-
let t = r.find((t) => t.key === e);
|
|
226
|
-
return t ? !n(c, t.config) : !1;
|
|
227
|
-
});
|
|
228
|
-
function p(e) {
|
|
229
|
-
return r.find((t) => t.key === e);
|
|
230
|
-
}
|
|
231
|
-
function m(e) {
|
|
232
|
-
let t = c, n = e;
|
|
233
|
-
for (let e of Object.keys(t)) e in n || delete t[e];
|
|
234
|
-
for (let e of Object.keys(n)) t[e] = n[e];
|
|
235
|
-
}
|
|
236
|
-
function h(e) {
|
|
237
|
-
u && (u[e] = t(c));
|
|
238
|
-
}
|
|
239
|
-
function g(e) {
|
|
240
|
-
let n = p(e);
|
|
241
|
-
if (n) if (i === "per-preset" && u) {
|
|
242
|
-
let t = l.value;
|
|
243
|
-
t && t !== e && t in u && h(t), l.value = e, m(u[e]);
|
|
244
|
-
} else l.value = e, m(t(n.config));
|
|
245
|
-
}
|
|
246
|
-
function _() {
|
|
247
|
-
let e = l.value;
|
|
248
|
-
if (!e) return;
|
|
249
|
-
let n = p(e);
|
|
250
|
-
n && (i === "per-preset" && u ? (u[e] = t(n.config), m(u[e])) : m(t(n.config)));
|
|
251
|
-
}
|
|
252
|
-
function b(e = 1) {
|
|
253
|
-
if (r.length === 0) return;
|
|
254
|
-
let t = l.value, n = t ? r.findIndex((e) => e.key === t) : -1, i = r.length, a = r[(n + e + i) % i];
|
|
255
|
-
g(a.key);
|
|
256
|
-
}
|
|
257
|
-
return {
|
|
258
|
-
config: c,
|
|
259
|
-
activePreset: d,
|
|
260
|
-
isDirty: f,
|
|
261
|
-
selectPreset: g,
|
|
262
|
-
resetCurrent: _,
|
|
263
|
-
cyclePreset: b,
|
|
264
|
-
getPreset: p
|
|
265
|
-
};
|
|
266
|
-
}
|
|
267
|
-
//#endregion
|
|
268
|
-
export { k as a, z as i, te as n, A as o, q as r, j as s, ie as t };
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { ref as e, watch as t } from "vue";
|
|
2
|
-
import { createGlobalState as n, useDark as r, useToggle as i } from "@vueuse/core";
|
|
3
|
-
//#region src/composables/dark/useGlobalDark.ts
|
|
4
|
-
var a = n(() => {
|
|
5
|
-
let n = r({ disableTransition: !1 }), a = i(n), o = e(!1);
|
|
6
|
-
function s() {
|
|
7
|
-
o.value && (document.documentElement.classList.add("no-transition"), document.documentElement.offsetHeight), a(), o.value && requestAnimationFrame(() => {
|
|
8
|
-
document.documentElement.classList.remove("no-transition");
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
function c(e) {
|
|
12
|
-
o.value = e;
|
|
13
|
-
}
|
|
14
|
-
return t(n, (e) => {
|
|
15
|
-
document.documentElement.style.colorScheme = e ? "dark" : "light";
|
|
16
|
-
}, { immediate: !0 }), {
|
|
17
|
-
isDark: n,
|
|
18
|
-
toggleDark: s,
|
|
19
|
-
disableTransitions: o,
|
|
20
|
-
setDisableTransitions: c
|
|
21
|
-
};
|
|
22
|
-
});
|
|
23
|
-
//#endregion
|
|
24
|
-
export { a as t };
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./useGlobalDark-B0WvLJE3.js";
|
|
2
|
-
import { getCurrentScope as t, onMounted as n, onScopeDispose as r, readonly as i, ref as a, toValue as o, watch as s } from "vue";
|
|
3
|
-
//#region src/composables/dom/useTokenColor.ts
|
|
4
|
-
function c(t, r = {}) {
|
|
5
|
-
let i = r.fallback ?? "", c = a(i);
|
|
6
|
-
function l() {
|
|
7
|
-
if (typeof document > "u") return i;
|
|
8
|
-
let e = o(t);
|
|
9
|
-
if (!e) return i;
|
|
10
|
-
let n = (r.element ? o(r.element) : null) ?? document.documentElement;
|
|
11
|
-
return n && getComputedStyle(n).getPropertyValue(e).trim() || i;
|
|
12
|
-
}
|
|
13
|
-
function u() {
|
|
14
|
-
c.value = l();
|
|
15
|
-
}
|
|
16
|
-
u(), n(u);
|
|
17
|
-
let { isDark: d } = e();
|
|
18
|
-
return s(d, u), s(() => o(t), u), r.element !== void 0 && s(() => o(r.element), u), {
|
|
19
|
-
value: c,
|
|
20
|
-
refresh: u
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
//#endregion
|
|
24
|
-
//#region src/composables/dom/useClipboard.ts
|
|
25
|
-
async function l(e) {
|
|
26
|
-
if (typeof navigator > "u" || !navigator.clipboard?.writeText) return !1;
|
|
27
|
-
try {
|
|
28
|
-
return await navigator.clipboard.writeText(e), !0;
|
|
29
|
-
} catch {
|
|
30
|
-
return !1;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
function u(e) {
|
|
34
|
-
if (typeof document > "u") return !1;
|
|
35
|
-
let t = document.createElement("textarea");
|
|
36
|
-
t.value = e, t.setAttribute("readonly", ""), t.style.position = "fixed", t.style.top = "-9999px", document.body.appendChild(t), t.select();
|
|
37
|
-
let n = !1;
|
|
38
|
-
try {
|
|
39
|
-
n = document.execCommand("copy");
|
|
40
|
-
} catch {
|
|
41
|
-
n = !1;
|
|
42
|
-
}
|
|
43
|
-
return document.body.removeChild(t), n;
|
|
44
|
-
}
|
|
45
|
-
async function d(e, t = {}) {
|
|
46
|
-
return await l(e) || u(e);
|
|
47
|
-
}
|
|
48
|
-
function f(e = {}) {
|
|
49
|
-
let t = e.resetMs ?? 1500, n = a(!1), i = null;
|
|
50
|
-
function o() {
|
|
51
|
-
i != null && (clearTimeout(i), i = null);
|
|
52
|
-
}
|
|
53
|
-
async function s(e) {
|
|
54
|
-
let r = await d(e);
|
|
55
|
-
return r && (n.value = !0, o(), i = setTimeout(() => {
|
|
56
|
-
n.value = !1, i = null;
|
|
57
|
-
}, t)), r;
|
|
58
|
-
}
|
|
59
|
-
return r(o), {
|
|
60
|
-
copied: n,
|
|
61
|
-
copy: s
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
//#endregion
|
|
65
|
-
//#region src/composables/dom/useViewportReady.ts
|
|
66
|
-
function p(e, n = {}) {
|
|
67
|
-
let i = n.rootMargin ?? "200px", o = n.idleTimeout ?? 1e4, c = n.threshold ?? .01, l = a(!1), u = null, d, f = null, p = null, m = !1;
|
|
68
|
-
function h() {
|
|
69
|
-
m || l.value || (l.value = !0, _());
|
|
70
|
-
}
|
|
71
|
-
function g() {
|
|
72
|
-
if (!m) {
|
|
73
|
-
if (typeof window > "u") {
|
|
74
|
-
h();
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
"requestIdleCallback" in window ? f = window.requestIdleCallback(h, { timeout: o }) : p = setTimeout(h, 16);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
function _() {
|
|
81
|
-
u &&= (u.disconnect(), null), f !== null && typeof window < "u" && "cancelIdleCallback" in window && (window.cancelIdleCallback(f), f = null), p !== null && (clearTimeout(p), p = null);
|
|
82
|
-
}
|
|
83
|
-
function v(e) {
|
|
84
|
-
if (typeof window > "u" || !("IntersectionObserver" in window)) {
|
|
85
|
-
g();
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
u = new IntersectionObserver((e) => {
|
|
89
|
-
if (!m) {
|
|
90
|
-
for (let t of e) if (t.isIntersecting) {
|
|
91
|
-
g(), u?.disconnect(), u = null;
|
|
92
|
-
break;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}, {
|
|
96
|
-
rootMargin: i,
|
|
97
|
-
threshold: c
|
|
98
|
-
}), u.observe(e);
|
|
99
|
-
}
|
|
100
|
-
function y(e) {
|
|
101
|
-
m || l.value || d !== void 0 && d === e || (_(), d = e, e ? v(e) : g());
|
|
102
|
-
}
|
|
103
|
-
y(e.value);
|
|
104
|
-
let b = s(e, (e) => {
|
|
105
|
-
y(e);
|
|
106
|
-
}, { flush: "post" });
|
|
107
|
-
function x() {
|
|
108
|
-
m || (m = !0, b(), _());
|
|
109
|
-
}
|
|
110
|
-
return t() && r(x), {
|
|
111
|
-
ready: l,
|
|
112
|
-
stop: x
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
//#endregion
|
|
116
|
-
//#region src/composables/dom/useBreakpoint.ts
|
|
117
|
-
function m(e) {
|
|
118
|
-
let n = a(!1), o = null;
|
|
119
|
-
function s(e) {
|
|
120
|
-
n.value = e.matches;
|
|
121
|
-
}
|
|
122
|
-
function c() {
|
|
123
|
-
typeof window > "u" || !window.matchMedia || (o = window.matchMedia(e), n.value = o.matches, o.addEventListener("change", s));
|
|
124
|
-
}
|
|
125
|
-
function l() {
|
|
126
|
-
o?.removeEventListener("change", s), o = null;
|
|
127
|
-
}
|
|
128
|
-
return t() && r(l), c(), {
|
|
129
|
-
matches: i(n),
|
|
130
|
-
stop: l
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
//#endregion
|
|
134
|
-
//#region src/composables/dom/useIdleReady.ts
|
|
135
|
-
function h(e = {}) {
|
|
136
|
-
let n = e.timeout ?? 2e3, i = a(!1), o = null, s = null, c = !1;
|
|
137
|
-
function l() {
|
|
138
|
-
c || i.value || (i.value = !0, e.onReady?.(), u());
|
|
139
|
-
}
|
|
140
|
-
function u() {
|
|
141
|
-
o !== null && typeof window < "u" && "cancelIdleCallback" in window && (window.cancelIdleCallback(o), o = null), s !== null && (clearTimeout(s), s = null);
|
|
142
|
-
}
|
|
143
|
-
function d() {
|
|
144
|
-
if (!c) {
|
|
145
|
-
if (typeof window > "u") {
|
|
146
|
-
l();
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
"requestIdleCallback" in window ? o = window.requestIdleCallback(l, { timeout: n }) : s = setTimeout(l, 0);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
d();
|
|
153
|
-
function f() {
|
|
154
|
-
c || (c = !0, u());
|
|
155
|
-
}
|
|
156
|
-
return t() && r(f), {
|
|
157
|
-
ready: i,
|
|
158
|
-
stop: f
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
//#endregion
|
|
162
|
-
export { f as a, d as i, m as n, c as o, p as r, h as t };
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { getCurrentScope as e, onScopeDispose as t, readonly as n, ref as r, toValue as i, watch as a } from "vue";
|
|
2
|
-
//#region src/composables/motion/useIntersectionPause.ts
|
|
3
|
-
function o() {
|
|
4
|
-
return typeof document > "u" ? null : document;
|
|
5
|
-
}
|
|
6
|
-
function s(s, c, l = {}) {
|
|
7
|
-
let { root: u = null, rootMargin: d = "0px", threshold: f = 0, pauseWhenHidden: p = !0 } = l, m = o(), h = r(!0), g = r(!p || !m?.hidden), _ = r(!1), v = !1, y = null, b = null, x = null;
|
|
8
|
-
function S() {
|
|
9
|
-
if (v) return;
|
|
10
|
-
let e = !h.value || !g.value;
|
|
11
|
-
_.value = e, b !== e && (b = e, e ? c.pause() : c.resume());
|
|
12
|
-
}
|
|
13
|
-
typeof IntersectionObserver < "u" && (x = new IntersectionObserver((e) => {
|
|
14
|
-
for (let t of e) t.target === y && (h.value = t.isIntersecting || t.intersectionRatio > 0, S());
|
|
15
|
-
}, {
|
|
16
|
-
root: u,
|
|
17
|
-
rootMargin: d,
|
|
18
|
-
threshold: f
|
|
19
|
-
}));
|
|
20
|
-
let C = a(() => i(s), (e, t) => {
|
|
21
|
-
t && x && x.unobserve(t), y = e ?? null, h.value = !0, y && x && x.observe(y), S();
|
|
22
|
-
}, { immediate: !0 });
|
|
23
|
-
function w() {
|
|
24
|
-
g.value = !p || !m?.hidden, S();
|
|
25
|
-
}
|
|
26
|
-
m && p && m.addEventListener("visibilitychange", w);
|
|
27
|
-
function T() {
|
|
28
|
-
v || (v = !0, C(), x?.disconnect(), x = null, y = null, m?.removeEventListener("visibilitychange", w));
|
|
29
|
-
}
|
|
30
|
-
return e() && t(T), {
|
|
31
|
-
isIntersecting: n(h),
|
|
32
|
-
isDocumentVisible: n(g),
|
|
33
|
-
isPaused: n(_),
|
|
34
|
-
refresh: S,
|
|
35
|
-
dispose: T
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
//#endregion
|
|
39
|
-
export { s as t };
|