@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,10 +1,10 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* typography.css —
|
|
3
|
-
*
|
|
2
|
+
* typography.css — Fraunces serif/display + Plus Jakarta Sans + Fira Code mono
|
|
3
|
+
* (all three OFL faces self-hosted via fonts.css)
|
|
4
4
|
*
|
|
5
|
-
* Golden-ratio scale (√φ ≈ 1.272).
|
|
6
|
-
* headings, prose, and math
|
|
7
|
-
* with WONK=1 / SOFT=0. Fira Code
|
|
5
|
+
* Golden-ratio scale (√φ ≈ 1.272). Fraunces carries the serif register —
|
|
6
|
+
* body, headings, prose, and math — and the ornamental display register
|
|
7
|
+
* with WONK=1 / SOFT=0. Plus Jakarta Sans is the brand sans; Fira Code is mono.
|
|
8
8
|
*
|
|
9
9
|
* Semantic type classes expose both Tailwind-friendly utility names
|
|
10
10
|
* (`.text-display-*`, `.text-body`, `.text-admin-label`) and feature
|
|
@@ -265,7 +265,7 @@ body {
|
|
|
265
265
|
}
|
|
266
266
|
|
|
267
267
|
/* ═══════════════════════════════════════════════
|
|
268
|
-
HEADINGS / BODY —
|
|
268
|
+
HEADINGS / BODY — Fraunces serif register
|
|
269
269
|
═══════════════════════════════════════════════ */
|
|
270
270
|
@utility text-title {
|
|
271
271
|
font-family: var(--font-serif);
|
|
@@ -358,7 +358,7 @@ body {
|
|
|
358
358
|
}
|
|
359
359
|
|
|
360
360
|
/* ═══════════════════════════════════════════════
|
|
361
|
-
MATH —
|
|
361
|
+
MATH — Fraunces serif italic
|
|
362
362
|
═══════════════════════════════════════════════ */
|
|
363
363
|
@utility text-math {
|
|
364
364
|
font-family: var(--font-serif);
|
|
@@ -444,7 +444,13 @@ body {
|
|
|
444
444
|
font-variation-settings: var(--font-display-variation-settings);
|
|
445
445
|
}
|
|
446
446
|
|
|
447
|
-
|
|
447
|
+
/* AV.W16 TW3 — the pane title scales off its PANE's box, not the viewport.
|
|
448
|
+
An unnamed @container query resolves to the nearest ancestor container,
|
|
449
|
+
so the title grows once its pane clears 40rem (≈ 640px) regardless of the
|
|
450
|
+
viewport. Contract: the consuming pane sets `container-type: inline-size`
|
|
451
|
+
(the dock/chassis pattern); without a container ancestor the compact base
|
|
452
|
+
holds. */
|
|
453
|
+
@container (min-width: 40rem) {
|
|
448
454
|
.text-pane-title {
|
|
449
455
|
font-size: var(--type-display-3);
|
|
450
456
|
}
|
package/src/styles/utilities.css
CHANGED
|
@@ -189,9 +189,11 @@
|
|
|
189
189
|
canonical iOS `.regular` control rung) and the spring carries
|
|
190
190
|
the return via `--spring-snappy` (the §L3 release-spring
|
|
191
191
|
contract). I keep this as a single canonical rung — NOT a
|
|
192
|
-
3-rung ladder. The
|
|
193
|
-
|
|
194
|
-
directly.
|
|
192
|
+
3-rung ladder. The one outlier I leave alone is the button
|
|
193
|
+
`0.97` (`--scale-press-btn`), which consumes its own slightly-
|
|
194
|
+
softer token directly. The dock control now tracks the canonical
|
|
195
|
+
`--scale-press` (0.96) too (AT.W7-dock-b press canon — the prior
|
|
196
|
+
deeper `0.92` was retired to ONE source).
|
|
195
197
|
|
|
196
198
|
Under PRM I retire the press transform entirely and lean on the
|
|
197
199
|
consumer's own hover/active bg-tint cascade to acknowledge the
|
|
@@ -256,25 +258,28 @@
|
|
|
256
258
|
font-size: max(1rem, 1em);
|
|
257
259
|
}
|
|
258
260
|
|
|
259
|
-
/* ── Scroll fade masks ──
|
|
261
|
+
/* ── Scroll fade masks ──
|
|
262
|
+
Single-source `mask-image` (AV.W16 TW7): the `-webkit-` companion is
|
|
263
|
+
dropped — Tailwind v4's Lightning CSS build pipeline auto-prefixes per
|
|
264
|
+
the browserslist targets, mirroring the glass ladder's single-source
|
|
265
|
+
`backdrop-filter` (glass.css). NOTE: this is the consistency cut; it
|
|
266
|
+
does NOT conflict with W15's `@supports`-gated older-Safari mask
|
|
267
|
+
fallback (that fallback is the distinct case where the companion is
|
|
268
|
+
genuinely needed and W15 gates it). */
|
|
260
269
|
.scroll-fade-mask {
|
|
261
270
|
mask-image: linear-gradient(to right, transparent, black var(--mask-fade-width), black calc(100% - var(--mask-fade-width)), transparent);
|
|
262
|
-
-webkit-mask-image: linear-gradient(to right, transparent, black var(--mask-fade-width), black calc(100% - var(--mask-fade-width)), transparent);
|
|
263
271
|
}
|
|
264
272
|
|
|
265
273
|
.scroll-fade-top {
|
|
266
274
|
mask-image: linear-gradient(to bottom, transparent, black var(--mask-fade-width));
|
|
267
|
-
-webkit-mask-image: linear-gradient(to bottom, transparent, black var(--mask-fade-width));
|
|
268
275
|
}
|
|
269
276
|
|
|
270
277
|
.scroll-fade-bottom {
|
|
271
278
|
mask-image: linear-gradient(to bottom, black calc(100% - var(--mask-fade-width)), transparent);
|
|
272
|
-
-webkit-mask-image: linear-gradient(to bottom, black calc(100% - var(--mask-fade-width)), transparent);
|
|
273
279
|
}
|
|
274
280
|
|
|
275
281
|
.scroll-fade-y {
|
|
276
282
|
mask-image: linear-gradient(to bottom, transparent, black var(--mask-fade-width), black calc(100% - var(--mask-fade-width)), transparent);
|
|
277
|
-
-webkit-mask-image: linear-gradient(to bottom, transparent, black var(--mask-fade-width), black calc(100% - var(--mask-fade-width)), transparent);
|
|
278
283
|
}
|
|
279
284
|
|
|
280
285
|
/* ── Deferred section — render-skip an offscreen subtree (AQ.W3 §5) ──────
|
|
@@ -480,6 +485,40 @@
|
|
|
480
485
|
--metric-badge-padding-inline: 0.5rem;
|
|
481
486
|
}
|
|
482
487
|
|
|
488
|
+
/* AS.W4 — @container style(--density) companion. A pill nested under a host
|
|
489
|
+
that sets `--density: comfortable | spacious` on a wrapping element picks
|
|
490
|
+
up the matching padding register with no `data-density` markup contract;
|
|
491
|
+
the attribute rules above stay the SOLE fallback (inv 47).
|
|
492
|
+
The inner `.metric-pill.metric-badge--label-stacked` selector (0,2,0) sits
|
|
493
|
+
just BELOW the `.metric-pill[data-density]…` attribute rules (0,3,0) — so a
|
|
494
|
+
pill carrying BOTH the attribute and a `--density` ancestor lands on the
|
|
495
|
+
attribute rule (same tokens, identical paint), while a pill with only the
|
|
496
|
+
ancestor token still resolves the right register (no competing rule sets
|
|
497
|
+
these padding custom props at higher weight in that case).
|
|
498
|
+
|
|
499
|
+
No `@supports` wrapper: unlike the sibling scroll-state recipe (which
|
|
500
|
+
probes `@supports (container-type: scroll-state)` — a probeable
|
|
501
|
+
container-type VALUE), style queries introduce no new `container-type`
|
|
502
|
+
value (every element is a style container by default), so there is no
|
|
503
|
+
clean declaration test for style-query support. This relies on
|
|
504
|
+
`@container style()`'s own graceful degradation: an engine without
|
|
505
|
+
style-query support parses the unknown at-rule as invalid, drops the
|
|
506
|
+
block, and keeps the `[data-density]` attribute base. (The earlier
|
|
507
|
+
`@supports (container-type: inline-size)` wrapper was wrong — it probed
|
|
508
|
+
SIZE-query support, a distinct feature with a distinct support timeline.) */
|
|
509
|
+
@container style(--density: spacious) {
|
|
510
|
+
.metric-pill.metric-badge--label-stacked {
|
|
511
|
+
--metric-badge-padding-block-stacked: 0.5rem;
|
|
512
|
+
--metric-badge-padding-inline: 0.75rem;
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
@container style(--density: comfortable) {
|
|
516
|
+
.metric-pill.metric-badge--label-stacked {
|
|
517
|
+
--metric-badge-padding-block-stacked: 0.25rem;
|
|
518
|
+
--metric-badge-padding-inline: 0.5rem;
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
|
|
483
522
|
.metric-badge__label {
|
|
484
523
|
letter-spacing: 0.18em;
|
|
485
524
|
line-height: 1;
|
|
@@ -649,6 +688,29 @@
|
|
|
649
688
|
}
|
|
650
689
|
}
|
|
651
690
|
|
|
691
|
+
/* ── Control transition recipe (AU.W8b.4) ───────────────────────────────
|
|
692
|
+
Shared compound transition for interactive controls that animate their
|
|
693
|
+
surface (background-color/color/box-shadow/border-color) on the four-state
|
|
694
|
+
contract. Replaces the per-site
|
|
695
|
+
`transition-[background-color,color,box-shadow,border-color] duration-[var(--duration-fast)] ease-[var(--ease-standard)]`
|
|
696
|
+
arbitrary wraps at ≥2 sites (TabsTrigger, SelectTrigger, Toggle `card`
|
|
697
|
+
variant). Binds the canonical --duration-fast + --ease-standard tokens. */
|
|
698
|
+
@utility transition-control {
|
|
699
|
+
transition-property: background-color, color, box-shadow, border-color;
|
|
700
|
+
transition-duration: var(--duration-fast);
|
|
701
|
+
transition-timing-function: var(--ease-standard);
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
/* ── Collapse transition recipe (AU.W8b.4) ──────────────────────────────
|
|
705
|
+
Shared height+opacity transition for reka-ui collapse surfaces (Accordion
|
|
706
|
+
content, Collapsible content). Replaces the per-site `transition-[height,opacity]`
|
|
707
|
+
wrap at ≥2 sites. The duration/easing rides the data-state
|
|
708
|
+
`animate-accordion-*`/`animate-collapsible-*` keyframes (this only declares
|
|
709
|
+
WHICH properties transition; the keyframes own the timing). */
|
|
710
|
+
@utility transition-collapse {
|
|
711
|
+
transition-property: height, opacity;
|
|
712
|
+
}
|
|
713
|
+
|
|
652
714
|
/* ── Sheet/drawer slide-out animation grammar ──
|
|
653
715
|
Mirror of `.popover-animate` for sheet/drawer panels. Pairs with
|
|
654
716
|
`slide-in-from-{top,right,bottom,left}-N` to compose side-keyed entries.
|
|
@@ -894,6 +956,28 @@
|
|
|
894
956
|
);
|
|
895
957
|
}
|
|
896
958
|
|
|
959
|
+
/* ── Text-highlight paint (CSS Custom Highlight API) ─────────────────────
|
|
960
|
+
The default `::highlight()` paint for the `useTextHighlight` composable
|
|
961
|
+
(composables/dom). A named `Highlight` registered in `CSS.highlights`
|
|
962
|
+
under one of these keys paints its `Range` set without a `<mark>` wrapper.
|
|
963
|
+
Token-bridged: the search mark reads the canonical pastel-yellow rainbow
|
|
964
|
+
token at a soft alpha; the equation/variable mark reads `--primary`. Both
|
|
965
|
+
axes are overridable via the `--text-highlight-*` custom properties. */
|
|
966
|
+
::highlight(glass-search-mark) {
|
|
967
|
+
background-color: var(
|
|
968
|
+
--text-highlight-search-bg,
|
|
969
|
+
color-mix(in srgb, var(--rainbow-pastel-yellow) 55%, transparent)
|
|
970
|
+
);
|
|
971
|
+
color: var(--text-highlight-search-fg, inherit);
|
|
972
|
+
}
|
|
973
|
+
::highlight(glass-mark) {
|
|
974
|
+
background-color: var(
|
|
975
|
+
--text-highlight-bg,
|
|
976
|
+
color-mix(in srgb, var(--primary) 18%, transparent)
|
|
977
|
+
);
|
|
978
|
+
color: var(--text-highlight-fg, inherit);
|
|
979
|
+
}
|
|
980
|
+
|
|
897
981
|
/* ── Interactive-button four-state recipe ────────────────────────────────
|
|
898
982
|
`.btn-interactive` carries the canonical "Button-with-spring-hover"
|
|
899
983
|
four-state contract — transition + hover-scale (`--scale-hover`) +
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
* each tracked element plus a unique `view-transition-name` per element. */
|
|
37
37
|
::view-transition-group(.gl-list-item) {
|
|
38
38
|
animation-duration: var(--vt-duration, var(--duration-normal));
|
|
39
|
-
animation-timing-function: var(--vt-ease, var(--
|
|
39
|
+
animation-timing-function: var(--vt-ease, var(--spring-bouncy));
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
/* Added / removed members — the `:only-child` trick from the group guide: a
|
|
@@ -48,11 +48,17 @@
|
|
|
48
48
|
* and `<DockLayerGroup>` (.dock-layer-stack) carry `view-transition-class:
|
|
49
49
|
* gl-dock-layer` + a page-unique `view-transition-name` on a View-Transitions
|
|
50
50
|
* engine, so the collapsed↔expanded width + the layer-pane swap morph as a VT
|
|
51
|
-
* group instead of the JS FLIP.
|
|
52
|
-
*
|
|
51
|
+
* group instead of the JS FLIP.
|
|
52
|
+
*
|
|
53
|
+
* AT.W6-dock-c / AU.W8 — VT/FLIP timing PARITY. The timing-function is
|
|
54
|
+
* `--dock-resize-spring` (= the `--spring-dock` linear(), AU.W8) — the SAME
|
|
55
|
+
* source the FLIP fallback consumes via `--dock-motion-resize` (`dock.css`), so
|
|
56
|
+
* the identical curve drives both engines. Retires the AQ.W6 fork (this group
|
|
57
|
+
* ran `--vt-ease`, the apple-spring overshoot). `--vt-ease` still governs the
|
|
58
|
+
* other recipes (`.gl-list-item`). PRM zeroes the animation above. */
|
|
53
59
|
::view-transition-group(.gl-dock-layer) {
|
|
54
60
|
animation-duration: var(--vt-duration, var(--duration-normal));
|
|
55
|
-
animation-timing-function: var(--
|
|
61
|
+
animation-timing-function: var(--dock-resize-spring, var(--spring-dock));
|
|
56
62
|
}
|
|
57
63
|
|
|
58
64
|
@keyframes gl-vt-slide-in { from { opacity: 0; translate: 0 var(--vt-rise, 8px); } }
|
|
@@ -1,460 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./cn-DJXf4yaB.js";
|
|
2
|
-
import { n as t } from "./button-C0aHmBbt.js";
|
|
3
|
-
import { t as n } from "./_plugin-vue_export-helper-Dq1MygBL.js";
|
|
4
|
-
import { n as r, r as i, t as a } from "./ContextMenuContent-otjFIu8v.js";
|
|
5
|
-
import { Fragment as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createTextVNode as f, createVNode as p, defineComponent as m, mergeProps as h, normalizeClass as g, openBlock as _, ref as v, renderList as y, renderSlot as b, resolveDynamicComponent as x, toDisplayString as S, unref as C, useSlots as ee, withCtx as w, withModifiers as T } from "vue";
|
|
6
|
-
import { useElementSize as te } from "@vueuse/core";
|
|
7
|
-
//#region src/components/ui/table/Table.vue?vue&type=script&setup=true&lang.ts
|
|
8
|
-
var E = { class: "relative w-full overflow-auto" }, D = /* @__PURE__ */ m({
|
|
9
|
-
__name: "Table",
|
|
10
|
-
props: { class: { type: [
|
|
11
|
-
Boolean,
|
|
12
|
-
null,
|
|
13
|
-
String,
|
|
14
|
-
Object,
|
|
15
|
-
Array
|
|
16
|
-
] } },
|
|
17
|
-
setup(t) {
|
|
18
|
-
let n = t;
|
|
19
|
-
return (t, r) => (_(), u("div", E, [d("table", { class: g(C(e)("w-full caption-bottom text-sm", n.class)) }, [b(t.$slots, "default")], 2)]));
|
|
20
|
-
}
|
|
21
|
-
}), O = /* @__PURE__ */ m({
|
|
22
|
-
__name: "TableBody",
|
|
23
|
-
props: { class: { type: [
|
|
24
|
-
Boolean,
|
|
25
|
-
null,
|
|
26
|
-
String,
|
|
27
|
-
Object,
|
|
28
|
-
Array
|
|
29
|
-
] } },
|
|
30
|
-
setup(t) {
|
|
31
|
-
let n = t;
|
|
32
|
-
return (t, r) => (_(), u("tbody", { class: g(C(e)("[&_tr:last-child]:border-0", n.class)) }, [b(t.$slots, "default")], 2));
|
|
33
|
-
}
|
|
34
|
-
}), k = /* @__PURE__ */ m({
|
|
35
|
-
__name: "TableCell",
|
|
36
|
-
props: { class: { type: [
|
|
37
|
-
Boolean,
|
|
38
|
-
null,
|
|
39
|
-
String,
|
|
40
|
-
Object,
|
|
41
|
-
Array
|
|
42
|
-
] } },
|
|
43
|
-
setup(t) {
|
|
44
|
-
let n = t;
|
|
45
|
-
return (t, r) => (_(), u("td", { class: g(C(e)("table-cell align-middle [&:has([role=checkbox])]:pr-0", n.class)) }, [b(t.$slots, "default")], 2));
|
|
46
|
-
}
|
|
47
|
-
}), A = /* @__PURE__ */ m({
|
|
48
|
-
__name: "TableHead",
|
|
49
|
-
props: { class: { type: [
|
|
50
|
-
Boolean,
|
|
51
|
-
null,
|
|
52
|
-
String,
|
|
53
|
-
Object,
|
|
54
|
-
Array
|
|
55
|
-
] } },
|
|
56
|
-
setup(t) {
|
|
57
|
-
let n = t;
|
|
58
|
-
return (t, r) => (_(), u("th", { class: g(C(e)("table-head text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0", n.class)) }, [b(t.$slots, "default")], 2));
|
|
59
|
-
}
|
|
60
|
-
}), j = /* @__PURE__ */ m({
|
|
61
|
-
__name: "TableHeader",
|
|
62
|
-
props: { class: { type: [
|
|
63
|
-
Boolean,
|
|
64
|
-
null,
|
|
65
|
-
String,
|
|
66
|
-
Object,
|
|
67
|
-
Array
|
|
68
|
-
] } },
|
|
69
|
-
setup(t) {
|
|
70
|
-
let n = t;
|
|
71
|
-
return (t, r) => (_(), u("thead", { class: g(C(e)("[&_tr]:border-b", n.class)) }, [b(t.$slots, "default")], 2));
|
|
72
|
-
}
|
|
73
|
-
}), M = /* @__PURE__ */ m({
|
|
74
|
-
__name: "TableRow",
|
|
75
|
-
props: { class: { type: [
|
|
76
|
-
Boolean,
|
|
77
|
-
null,
|
|
78
|
-
String,
|
|
79
|
-
Object,
|
|
80
|
-
Array
|
|
81
|
-
] } },
|
|
82
|
-
setup(t) {
|
|
83
|
-
let n = t;
|
|
84
|
-
return (t, r) => (_(), u("tr", { class: g(C(e)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", n.class)) }, [b(t.$slots, "default")], 2));
|
|
85
|
-
}
|
|
86
|
-
}), N = { class: "flex items-center justify-center py-10" }, P = /* @__PURE__ */ m({
|
|
87
|
-
__name: "TableEmpty",
|
|
88
|
-
props: {
|
|
89
|
-
class: { type: [
|
|
90
|
-
Boolean,
|
|
91
|
-
null,
|
|
92
|
-
String,
|
|
93
|
-
Object,
|
|
94
|
-
Array
|
|
95
|
-
] },
|
|
96
|
-
colspan: { default: 1 }
|
|
97
|
-
},
|
|
98
|
-
setup(t) {
|
|
99
|
-
let n = t, r = s(() => {
|
|
100
|
-
let { class: e, ...t } = n;
|
|
101
|
-
return t;
|
|
102
|
-
});
|
|
103
|
-
return (t, i) => (_(), c(M, null, {
|
|
104
|
-
default: w(() => [p(k, h({ class: C(e)("p-4 whitespace-nowrap align-middle text-sm text-foreground", n.class) }, r.value), {
|
|
105
|
-
default: w(() => [d("div", N, [b(t.$slots, "default")])]),
|
|
106
|
-
_: 3
|
|
107
|
-
}, 16, ["class"])]),
|
|
108
|
-
_: 3
|
|
109
|
-
}));
|
|
110
|
-
}
|
|
111
|
-
}), F = /* @__PURE__ */ n(/* @__PURE__ */ m({
|
|
112
|
-
__name: "Skeleton",
|
|
113
|
-
props: {
|
|
114
|
-
variant: { default: "pulse" },
|
|
115
|
-
class: { type: [
|
|
116
|
-
Boolean,
|
|
117
|
-
null,
|
|
118
|
-
String,
|
|
119
|
-
Object,
|
|
120
|
-
Array
|
|
121
|
-
] }
|
|
122
|
-
},
|
|
123
|
-
setup(t) {
|
|
124
|
-
let n = t;
|
|
125
|
-
return (r, i) => (_(), u("div", { class: g(C(e)("rounded-input bg-muted", t.variant === "pulse" && "animate-pulse", t.variant === "shimmer" && "skeleton-shimmer", t.variant === "breath" && "skeleton-breath", n.class)) }, null, 2));
|
|
126
|
-
}
|
|
127
|
-
}), [["__scopeId", "data-v-bb7e255e"]]), I = { class: "tabular-nums" }, L = { class: "flex items-center gap-1" }, R = {
|
|
128
|
-
key: 0,
|
|
129
|
-
class: "px-1 select-none"
|
|
130
|
-
}, z = /* @__PURE__ */ m({
|
|
131
|
-
__name: "DataTablePagination",
|
|
132
|
-
props: {
|
|
133
|
-
page: {},
|
|
134
|
-
pageSize: {},
|
|
135
|
-
total: {},
|
|
136
|
-
class: {}
|
|
137
|
-
},
|
|
138
|
-
emits: ["update:page"],
|
|
139
|
-
setup(n, { emit: r }) {
|
|
140
|
-
let i = n, a = r, l = s(() => Math.max(1, Math.ceil(i.total / i.pageSize))), m = s(() => Math.min(Math.max(1, i.page), l.value)), h = s(() => {
|
|
141
|
-
let e = l.value, t = m.value;
|
|
142
|
-
if (e <= 7) return Array.from({ length: e }, (e, t) => t + 1);
|
|
143
|
-
let n = [1];
|
|
144
|
-
t > 3 && n.push(null);
|
|
145
|
-
let r = Math.max(2, t - 1), i = Math.min(e - 1, t + 1);
|
|
146
|
-
for (let e = r; e <= i; e++) n.push(e);
|
|
147
|
-
return t < e - 2 && n.push(null), n.push(e), n;
|
|
148
|
-
});
|
|
149
|
-
function v(e) {
|
|
150
|
-
let t = Math.min(Math.max(1, e), l.value);
|
|
151
|
-
t !== i.page && a("update:page", t);
|
|
152
|
-
}
|
|
153
|
-
return (r, a) => (_(), u("div", { class: g(C(e)("flex items-center justify-between border-t border-border px-4 py-2 text-sm text-muted-foreground", i.class)) }, [d("span", I, S(n.total.toLocaleString()) + " result" + S(n.total === 1 ? "" : "s"), 1), d("div", L, [
|
|
154
|
-
p(C(t), {
|
|
155
|
-
variant: "ghost",
|
|
156
|
-
size: "icon",
|
|
157
|
-
disabled: m.value <= 1,
|
|
158
|
-
onClick: a[0] ||= (e) => v(1),
|
|
159
|
-
"aria-label": "First page"
|
|
160
|
-
}, {
|
|
161
|
-
default: w(() => [...a[4] ||= [f(" ⟨⟨ ", -1)]]),
|
|
162
|
-
_: 1
|
|
163
|
-
}, 8, ["disabled"]),
|
|
164
|
-
p(C(t), {
|
|
165
|
-
variant: "ghost",
|
|
166
|
-
size: "icon",
|
|
167
|
-
disabled: m.value <= 1,
|
|
168
|
-
onClick: a[1] ||= (e) => v(m.value - 1),
|
|
169
|
-
"aria-label": "Previous page"
|
|
170
|
-
}, {
|
|
171
|
-
default: w(() => [...a[5] ||= [f(" ⟨ ", -1)]]),
|
|
172
|
-
_: 1
|
|
173
|
-
}, 8, ["disabled"]),
|
|
174
|
-
(_(!0), u(o, null, y(h.value, (e, n) => (_(), u(o, { key: n }, [e === null ? (_(), u("span", R, "...")) : (_(), c(C(t), {
|
|
175
|
-
key: 1,
|
|
176
|
-
variant: e === m.value ? "default" : "ghost",
|
|
177
|
-
size: "icon",
|
|
178
|
-
class: "tabular-nums",
|
|
179
|
-
onClick: (t) => v(e)
|
|
180
|
-
}, {
|
|
181
|
-
default: w(() => [f(S(e), 1)]),
|
|
182
|
-
_: 2
|
|
183
|
-
}, 1032, ["variant", "onClick"]))], 64))), 128)),
|
|
184
|
-
p(C(t), {
|
|
185
|
-
variant: "ghost",
|
|
186
|
-
size: "icon",
|
|
187
|
-
disabled: m.value >= l.value,
|
|
188
|
-
onClick: a[2] ||= (e) => v(m.value + 1),
|
|
189
|
-
"aria-label": "Next page"
|
|
190
|
-
}, {
|
|
191
|
-
default: w(() => [...a[6] ||= [f(" ⟩ ", -1)]]),
|
|
192
|
-
_: 1
|
|
193
|
-
}, 8, ["disabled"]),
|
|
194
|
-
p(C(t), {
|
|
195
|
-
variant: "ghost",
|
|
196
|
-
size: "icon",
|
|
197
|
-
disabled: m.value >= l.value,
|
|
198
|
-
onClick: a[3] ||= (e) => v(l.value),
|
|
199
|
-
"aria-label": "Last page"
|
|
200
|
-
}, {
|
|
201
|
-
default: w(() => [...a[7] ||= [f(" ⟩⟩ ", -1)]]),
|
|
202
|
-
_: 1
|
|
203
|
-
}, 8, ["disabled"])
|
|
204
|
-
])], 2));
|
|
205
|
-
}
|
|
206
|
-
}), B = {
|
|
207
|
-
key: 0,
|
|
208
|
-
class: "flex flex-col gap-2"
|
|
209
|
-
}, V = {
|
|
210
|
-
key: 1,
|
|
211
|
-
class: "flex flex-col gap-2"
|
|
212
|
-
}, H = ["onClick"], U = { class: "flex items-start justify-between gap-2" }, ne = { class: "min-w-0 font-medium" }, re = {
|
|
213
|
-
key: 0,
|
|
214
|
-
class: "mt-2 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1"
|
|
215
|
-
}, ie = { class: "text-muted-foreground" }, ae = {
|
|
216
|
-
key: 2,
|
|
217
|
-
class: "rounded-lg border border-border p-6 text-center text-muted-foreground"
|
|
218
|
-
}, W = /* @__PURE__ */ m({
|
|
219
|
-
__name: "DataTable",
|
|
220
|
-
props: {
|
|
221
|
-
columns: {},
|
|
222
|
-
rows: {},
|
|
223
|
-
total: {},
|
|
224
|
-
page: {},
|
|
225
|
-
pageSize: {},
|
|
226
|
-
isLoading: {
|
|
227
|
-
type: Boolean,
|
|
228
|
-
default: !1
|
|
229
|
-
},
|
|
230
|
-
rowKey: { default: "_id" },
|
|
231
|
-
getRowId: {},
|
|
232
|
-
sort: {},
|
|
233
|
-
infinite: {
|
|
234
|
-
type: Boolean,
|
|
235
|
-
default: !1
|
|
236
|
-
},
|
|
237
|
-
hasMore: {
|
|
238
|
-
type: Boolean,
|
|
239
|
-
default: !1
|
|
240
|
-
},
|
|
241
|
-
responsive: {
|
|
242
|
-
type: Boolean,
|
|
243
|
-
default: !1
|
|
244
|
-
},
|
|
245
|
-
cardBreakpoint: { default: 640 },
|
|
246
|
-
class: {}
|
|
247
|
-
},
|
|
248
|
-
emits: [
|
|
249
|
-
"update:page",
|
|
250
|
-
"update:sort",
|
|
251
|
-
"select",
|
|
252
|
-
"load-more"
|
|
253
|
-
],
|
|
254
|
-
setup(t, { emit: n }) {
|
|
255
|
-
let m = t, h = n, E = ee(), N = s(() => !!E["row-actions"]), I = s(() => !!E["row-context-menu"]), L = v(null), { width: R } = te(L), W = s(() => m.responsive && R.value > 0 && R.value < m.cardBreakpoint), G = s(() => Array.from({ length: Math.min(m.pageSize, 5) }, (e, t) => t)), K = /* @__PURE__ */ new WeakMap(), oe = 0;
|
|
256
|
-
function q(e, t) {
|
|
257
|
-
return t.split(".").reduce((e, t) => {
|
|
258
|
-
if (!(typeof e != "object" || !e)) return e[t];
|
|
259
|
-
}, e);
|
|
260
|
-
}
|
|
261
|
-
function J(e) {
|
|
262
|
-
return typeof e == "string" || typeof e == "number" || typeof e == "symbol";
|
|
263
|
-
}
|
|
264
|
-
function se(e) {
|
|
265
|
-
return typeof e == "symbol" ? e.toString() : JSON.stringify(e);
|
|
266
|
-
}
|
|
267
|
-
function ce(e) {
|
|
268
|
-
return m.getRowId ? m.getRowId(e) : q(e, m.rowKey);
|
|
269
|
-
}
|
|
270
|
-
function le(e) {
|
|
271
|
-
let t = e, n = K.get(t);
|
|
272
|
-
if (n) return n;
|
|
273
|
-
let r = Symbol(`DataTable row ${oe++}`);
|
|
274
|
-
return K.set(t, r), r;
|
|
275
|
-
}
|
|
276
|
-
let Y = s(() => {
|
|
277
|
-
let e = m.rows.map((e) => ce(e)), t = /* @__PURE__ */ new Map();
|
|
278
|
-
for (let n of e) J(n) && t.set(n, (t.get(n) ?? 0) + 1);
|
|
279
|
-
let n = e.filter((e) => !J(e)).length;
|
|
280
|
-
n > 0 && `${n}`;
|
|
281
|
-
let r = Array.from(t).filter(([, e]) => e > 1).map(([e]) => se(e));
|
|
282
|
-
return r.length > 0 && (`${r.join(",")}`, `${r.join(", ")}`), m.rows.map((n, r) => {
|
|
283
|
-
let i = e[r];
|
|
284
|
-
return {
|
|
285
|
-
row: n,
|
|
286
|
-
key: J(i) && t.get(i) === 1 ? i : le(n)
|
|
287
|
-
};
|
|
288
|
-
});
|
|
289
|
-
});
|
|
290
|
-
function X(e, t) {
|
|
291
|
-
let n = q(e, t.key);
|
|
292
|
-
return t.formatter ? t.formatter(n, e) : n == null ? "—" : String(n);
|
|
293
|
-
}
|
|
294
|
-
function Z(e) {
|
|
295
|
-
return e === "right" ? "text-right" : e === "center" ? "text-center" : "text-left";
|
|
296
|
-
}
|
|
297
|
-
function ue(e) {
|
|
298
|
-
if (!e.sortable) return;
|
|
299
|
-
let t = m.sort;
|
|
300
|
-
t?.key === e.key ? h("update:sort", {
|
|
301
|
-
key: e.key,
|
|
302
|
-
direction: t.direction === "asc" ? "desc" : "asc"
|
|
303
|
-
}) : h("update:sort", {
|
|
304
|
-
key: e.key,
|
|
305
|
-
direction: "asc"
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
|
-
function de(e) {
|
|
309
|
-
return e.sortable ? m.sort?.key === e.key ? m.sort.direction === "asc" ? " ↑" : " ↓" : " ↕" : "";
|
|
310
|
-
}
|
|
311
|
-
let Q = s(() => m.columns[0]), $ = s(() => m.columns.slice(1));
|
|
312
|
-
return (n, s) => (_(), u("div", {
|
|
313
|
-
ref_key: "rootRef",
|
|
314
|
-
ref: L,
|
|
315
|
-
class: g(C(e)("overflow-hidden", m.class))
|
|
316
|
-
}, [
|
|
317
|
-
W.value ? (_(), u(o, { key: 0 }, [t.isLoading && t.rows.length === 0 ? (_(), u("div", B, [(_(!0), u(o, null, y(G.value, (e) => (_(), u("div", {
|
|
318
|
-
key: "skel-card-" + e,
|
|
319
|
-
class: "rounded-lg border border-border p-3"
|
|
320
|
-
}, [p(C(F), { class: "mb-2 h-4 w-1/2" }), p(C(F), { class: "h-3 w-3/4" })]))), 128))])) : t.rows.length > 0 ? (_(), u("div", V, [(_(!0), u(o, null, y(Y.value, (t) => (_(), c(x(I.value ? C(i) : "div"), { key: t.key }, {
|
|
321
|
-
default: w(() => [(_(), c(x(I.value ? C(r) : "div"), { "as-child": I.value ? !0 : void 0 }, {
|
|
322
|
-
default: w(() => [d("div", {
|
|
323
|
-
class: "cursor-pointer rounded-lg border border-border p-3 transition-colors hover:bg-muted/40",
|
|
324
|
-
onClick: (e) => h("select", t.row)
|
|
325
|
-
}, [d("div", U, [d("div", ne, [Q.value?.component ? (_(), c(x(Q.value.component), {
|
|
326
|
-
key: 0,
|
|
327
|
-
value: q(t.row, Q.value.key),
|
|
328
|
-
row: t.row
|
|
329
|
-
}, null, 8, ["value", "row"])) : Q.value ? (_(), u(o, { key: 1 }, [f(S(X(t.row, Q.value)), 1)], 64)) : l("", !0)]), N.value ? (_(), u("div", {
|
|
330
|
-
key: 0,
|
|
331
|
-
class: "shrink-0",
|
|
332
|
-
onClick: s[0] ||= T(() => {}, ["stop"])
|
|
333
|
-
}, [b(n.$slots, "row-actions", { row: t.row })])) : l("", !0)]), $.value.length > 0 ? (_(), u("dl", re, [(_(!0), u(o, null, y($.value, (n) => (_(), u(o, { key: n.key }, [d("dt", ie, S(n.label), 1), d("dd", { class: g(C(e)("min-w-0 break-words", n.align === "right" && "text-right", n.class)) }, [n.component ? (_(), c(x(n.component), {
|
|
334
|
-
key: 0,
|
|
335
|
-
value: q(t.row, n.key),
|
|
336
|
-
row: t.row
|
|
337
|
-
}, null, 8, ["value", "row"])) : (_(), u(o, { key: 1 }, [f(S(X(t.row, n)), 1)], 64))], 2)], 64))), 128))])) : l("", !0)], 8, H)]),
|
|
338
|
-
_: 2
|
|
339
|
-
}, 1032, ["as-child"])), I.value ? (_(), c(C(a), { key: 0 }, {
|
|
340
|
-
default: w(() => [b(n.$slots, "row-context-menu", { row: t.row })]),
|
|
341
|
-
_: 2
|
|
342
|
-
}, 1024)) : l("", !0)]),
|
|
343
|
-
_: 2
|
|
344
|
-
}, 1024))), 128))])) : (_(), u("div", ae, [b(n.$slots, "empty", {}, () => [s[4] ||= f("No results found", -1)])]))], 64)) : (_(), c(C(D), { key: 1 }, {
|
|
345
|
-
default: w(() => [p(C(j), null, {
|
|
346
|
-
default: w(() => [p(C(M), { class: "text-muted-foreground" }, {
|
|
347
|
-
default: w(() => [(_(!0), u(o, null, y(t.columns, (t) => (_(), c(C(A), {
|
|
348
|
-
key: t.key,
|
|
349
|
-
class: g(C(e)(Z(t.align), t.sortable && "cursor-pointer select-none", t.headerClass)),
|
|
350
|
-
onClick: (e) => ue(t)
|
|
351
|
-
}, {
|
|
352
|
-
default: w(() => [f(S(t.label) + S(de(t)), 1)]),
|
|
353
|
-
_: 2
|
|
354
|
-
}, 1032, ["class", "onClick"]))), 128)), N.value ? (_(), c(C(A), {
|
|
355
|
-
key: 0,
|
|
356
|
-
class: "w-10"
|
|
357
|
-
})) : l("", !0)]),
|
|
358
|
-
_: 1
|
|
359
|
-
})]),
|
|
360
|
-
_: 1
|
|
361
|
-
}), p(C(O), null, {
|
|
362
|
-
default: w(() => [t.isLoading && t.rows.length === 0 ? (_(!0), u(o, { key: 0 }, y(G.value, (e) => (_(), c(C(M), { key: "skel-" + e }, {
|
|
363
|
-
default: w(() => [(_(!0), u(o, null, y(t.columns, (e) => (_(), c(C(k), {
|
|
364
|
-
key: e.key,
|
|
365
|
-
class: g(Z(e.align))
|
|
366
|
-
}, {
|
|
367
|
-
default: w(() => [p(C(F), { class: "h-4 w-3/4" })]),
|
|
368
|
-
_: 1
|
|
369
|
-
}, 8, ["class"]))), 128)), N.value ? (_(), c(C(k), {
|
|
370
|
-
key: 0,
|
|
371
|
-
class: "w-10"
|
|
372
|
-
}, {
|
|
373
|
-
default: w(() => [p(C(F), { class: "h-4 w-6" })]),
|
|
374
|
-
_: 1
|
|
375
|
-
})) : l("", !0)]),
|
|
376
|
-
_: 1
|
|
377
|
-
}))), 128)) : t.rows.length > 0 ? (_(!0), u(o, { key: 1 }, y(Y.value, (d) => (_(), u(o, { key: d.key }, [I.value ? (_(), c(C(i), { key: 0 }, {
|
|
378
|
-
default: w(() => [p(C(r), { "as-child": "" }, {
|
|
379
|
-
default: w(() => [p(C(M), {
|
|
380
|
-
class: "cursor-pointer",
|
|
381
|
-
onClick: (e) => h("select", d.row)
|
|
382
|
-
}, {
|
|
383
|
-
default: w(() => [(_(!0), u(o, null, y(t.columns, (t) => (_(), c(C(k), {
|
|
384
|
-
key: t.key,
|
|
385
|
-
class: g(C(e)(Z(t.align), t.class))
|
|
386
|
-
}, {
|
|
387
|
-
default: w(() => [t.component ? (_(), c(x(t.component), {
|
|
388
|
-
key: 0,
|
|
389
|
-
value: q(d.row, t.key),
|
|
390
|
-
row: d.row
|
|
391
|
-
}, null, 8, ["value", "row"])) : (_(), u(o, { key: 1 }, [f(S(X(d.row, t)), 1)], 64))]),
|
|
392
|
-
_: 2
|
|
393
|
-
}, 1032, ["class"]))), 128)), N.value ? (_(), c(C(k), {
|
|
394
|
-
key: 0,
|
|
395
|
-
class: "w-10",
|
|
396
|
-
onClick: s[1] ||= T(() => {}, ["stop"])
|
|
397
|
-
}, {
|
|
398
|
-
default: w(() => [b(n.$slots, "row-actions", { row: d.row })]),
|
|
399
|
-
_: 2
|
|
400
|
-
}, 1024)) : l("", !0)]),
|
|
401
|
-
_: 2
|
|
402
|
-
}, 1032, ["onClick"])]),
|
|
403
|
-
_: 2
|
|
404
|
-
}, 1024), p(C(a), null, {
|
|
405
|
-
default: w(() => [b(n.$slots, "row-context-menu", { row: d.row })]),
|
|
406
|
-
_: 2
|
|
407
|
-
}, 1024)]),
|
|
408
|
-
_: 2
|
|
409
|
-
}, 1024)) : (_(), c(C(M), {
|
|
410
|
-
key: 1,
|
|
411
|
-
class: "cursor-pointer",
|
|
412
|
-
onClick: (e) => h("select", d.row)
|
|
413
|
-
}, {
|
|
414
|
-
default: w(() => [(_(!0), u(o, null, y(t.columns, (t) => (_(), c(C(k), {
|
|
415
|
-
key: t.key,
|
|
416
|
-
class: g(C(e)(Z(t.align), t.class))
|
|
417
|
-
}, {
|
|
418
|
-
default: w(() => [t.component ? (_(), c(x(t.component), {
|
|
419
|
-
key: 0,
|
|
420
|
-
value: q(d.row, t.key),
|
|
421
|
-
row: d.row
|
|
422
|
-
}, null, 8, ["value", "row"])) : (_(), u(o, { key: 1 }, [f(S(X(d.row, t)), 1)], 64))]),
|
|
423
|
-
_: 2
|
|
424
|
-
}, 1032, ["class"]))), 128)), N.value ? (_(), c(C(k), {
|
|
425
|
-
key: 0,
|
|
426
|
-
class: "w-10",
|
|
427
|
-
onClick: s[2] ||= T(() => {}, ["stop"])
|
|
428
|
-
}, {
|
|
429
|
-
default: w(() => [b(n.$slots, "row-actions", { row: d.row })]),
|
|
430
|
-
_: 2
|
|
431
|
-
}, 1024)) : l("", !0)]),
|
|
432
|
-
_: 2
|
|
433
|
-
}, 1032, ["onClick"]))], 64))), 128)) : (_(), c(C(P), {
|
|
434
|
-
key: 2,
|
|
435
|
-
colspan: t.columns.length + +!!N.value
|
|
436
|
-
}, {
|
|
437
|
-
default: w(() => [b(n.$slots, "empty", {}, () => [s[5] ||= f("No results found", -1)])]),
|
|
438
|
-
_: 3
|
|
439
|
-
}, 8, ["colspan"]))]),
|
|
440
|
-
_: 3
|
|
441
|
-
})]),
|
|
442
|
-
_: 3
|
|
443
|
-
})),
|
|
444
|
-
t.infinite ? b(n.$slots, "sentinel", { key: 2 }) : l("", !0),
|
|
445
|
-
!t.infinite && t.total > 0 ? (_(), c(z, {
|
|
446
|
-
key: 3,
|
|
447
|
-
page: t.page,
|
|
448
|
-
"page-size": t.pageSize,
|
|
449
|
-
total: t.total,
|
|
450
|
-
"onUpdate:page": s[3] ||= (e) => h("update:page", e)
|
|
451
|
-
}, null, 8, [
|
|
452
|
-
"page",
|
|
453
|
-
"page-size",
|
|
454
|
-
"total"
|
|
455
|
-
])) : l("", !0)
|
|
456
|
-
], 2));
|
|
457
|
-
}
|
|
458
|
-
});
|
|
459
|
-
//#endregion
|
|
460
|
-
export { M as a, k as c, P as i, O as l, z as n, j as o, F as r, A as s, W as t, D as u };
|