@mkbabb/glass-ui 3.2.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CardFooter-3-VGho1J.js → CardFooter-C390imy7.js} +2 -2
- package/dist/{CollapsibleContent-wlmlDujU.js → CollapsibleContent-cauTbZEM.js} +1 -1
- package/dist/{CommandShortcut-C6lsz3pG.js → CommandShortcut-BiVyqipe.js} +5 -4
- package/dist/DataTable-FfkaAg2z.js +465 -0
- package/dist/DialogContent-IQ8_BRrC.js +100 -0
- package/dist/{DiscoGlyph-B7YooI2-.js → DiscoGlyph-BaZ8OawK.js} +1 -1
- package/dist/{GlyphFace-Bvk6OIas.js → GlyphFace-B_7vOmYn.js} +1 -1
- package/dist/HoverPopover-DTSYkJtw.js +96 -0
- package/dist/{IconTooltip-DXveGjx7.js → IconTooltip-BTyYn4mr.js} +1 -1
- package/dist/Input-CU9CNKmo.js +52 -0
- package/dist/{MetricBadge-J_GBCb8e.js → MetricBadge-BlrdbOGN.js} +1 -1
- package/dist/{NumberFieldContent-B6L6YrQz.js → NumberFieldContent-iOTQ5rGO.js} +8 -4
- package/dist/{PopoverContent-CxEEUL7Y.js → PopoverContent-B8WtJECb.js} +1 -1
- package/dist/Progress-DjM86vfb.js +254 -0
- package/dist/{ScrollingText-1Qjnwz6H.js → ScrollingText-P9o_DuMn.js} +1 -1
- package/dist/{SelectScrollDownButton-BvvvAbuh.js → SelectScrollDownButton-BGn3rjs9.js} +9 -8
- package/dist/TabsIndicator-DA0x9gPr.js +97 -0
- package/dist/{ToggleGroupItem-Cy7xHFEo.js → ToggleGroupItem-gyXj998A.js} +37 -40
- package/dist/UnderlineTabs-Cq_AD03t.js +39 -0
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +2 -0
- package/dist/api.js +1 -1
- package/dist/aurora.js +454 -271
- package/dist/{button-DS3ULf5i.js → button-Ckn3eDfB.js} +27 -22
- package/dist/button.js +1 -1
- package/dist/card.js +1 -1
- package/dist/carousel.js +2 -2
- package/dist/collapsible.js +1 -1
- package/dist/color-rkK4RMx2.js +33 -0
- package/dist/color.d.ts +1 -0
- package/dist/color.js +2 -0
- package/dist/command.js +1 -1
- package/dist/compile-DVgAxagk.js +106 -0
- package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +7 -7
- package/dist/components/custom/aurora/Aurora.vue.d.ts +3 -3
- package/dist/components/custom/aurora/composables/color.d.ts +3 -25
- package/dist/components/custom/aurora/composables/cursorModel.d.ts +45 -0
- package/dist/components/custom/aurora/composables/frameLoop.d.ts +30 -0
- package/dist/components/custom/aurora/composables/glSetup.d.ts +29 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +45 -35
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +67 -0
- package/dist/components/custom/aurora/composables/useAurora.d.ts +14 -1
- package/dist/components/custom/aurora/composables/useCursorInteraction.d.ts +1 -1
- package/dist/components/custom/aurora/constants/budget.d.ts +50 -0
- package/dist/components/custom/aurora/{presets.d.ts → constants/presets.d.ts} +2 -5
- package/dist/components/custom/aurora/constants/shaders/aurora.frag.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/brush.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/composition.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/flow.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +2 -0
- package/dist/components/custom/aurora/constants/shaders/tonemap.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/index.d.ts +2 -2
- package/dist/components/custom/configurator/ConfiguratorLayer.vue.d.ts +14 -7
- package/dist/components/custom/configurator/density.d.ts +3 -8
- package/dist/components/custom/dock/DockBackgroundToggle.vue.d.ts +46 -0
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +3 -3
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +2 -2
- package/dist/components/custom/dock/GlassDock.vue.d.ts +22 -18
- package/dist/components/custom/dock/composables/dockContext.d.ts +4 -4
- package/dist/components/custom/dock/composables/dockLayerContext.d.ts +13 -6
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +32 -8
- package/dist/components/custom/dock/index.d.ts +1 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +10 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
- package/dist/components/custom/glyph-face/keys.d.ts +3 -29
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +48 -0
- package/dist/components/custom/goo-blob/composables/easing.d.ts +6 -0
- package/dist/components/custom/goo-blob/composables/useBlobMood.d.ts +14 -0
- package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +18 -0
- package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +13 -0
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +42 -0
- package/dist/components/custom/goo-blob/index.d.ts +7 -0
- package/dist/components/custom/goo-blob/shaders/metaball.frag.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball.vert.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/oklch-perturb.glsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/sdf-body.glsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/watercolor-edges.glsl.d.ts +2 -0
- package/dist/components/custom/goo-blob/types.d.ts +77 -0
- package/dist/components/custom/hover-popover/HoverPopover.vue.d.ts +48 -9
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +2 -0
- package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +2 -2
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +2 -2
- package/dist/components/custom/responsive-tabs/ResponsiveTabs.vue.d.ts +13 -7
- package/dist/components/custom/search/FuzzySearch.vue.d.ts +1 -1
- package/dist/components/custom/search/SearchBar.vue.d.ts +1 -1
- package/dist/components/custom/sortable-list/SortableHandle.vue.d.ts +7 -1
- package/dist/components/custom/sortable-list/context.d.ts +2 -3
- package/dist/components/custom/tabs/BouncyTabs.vue.d.ts +6 -3
- package/dist/components/custom/tabs/BouncyToggle.vue.d.ts +7 -3
- package/dist/components/custom/tabs/UnderlineTabs.vue.d.ts +6 -3
- package/dist/components/custom/tabs/composables/useBouncySlider.d.ts +39 -0
- package/dist/components/custom/timeline/ContinuousMarkers.vue.d.ts +49 -0
- package/dist/components/custom/timeline/ContinuousRail.vue.d.ts +26 -0
- package/dist/components/custom/timeline/ContinuousTimeline.vue.d.ts +4 -4
- package/dist/components/custom/typewriter/TypewriterText.vue.d.ts +2 -2
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +45 -0
- package/dist/components/custom/watercolor-dot/index.d.ts +3 -0
- package/dist/components/custom/watercolor-dot/prng.d.ts +5 -0
- package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +24 -0
- package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
- package/dist/components/ui/avatar/Avatar.vue.d.ts +1 -1
- package/dist/components/ui/avatar/AvatarImage.vue.d.ts +5 -1
- package/dist/components/ui/avatar/index.d.ts +1 -1
- package/dist/components/ui/badge/index.d.ts +2 -2
- package/dist/components/ui/button/Button.vue.d.ts +3 -1
- package/dist/components/ui/button/index.d.ts +2 -2
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
- package/dist/components/ui/combobox/Combobox.vue.d.ts +2 -2
- package/dist/components/ui/combobox/ComboboxInput.vue.d.ts +2 -1
- package/dist/components/ui/command/Command.vue.d.ts +3 -3
- package/dist/components/ui/command/CommandInput.vue.d.ts +2 -1
- package/dist/components/ui/data-table/DataTable.vue.d.ts +5 -4
- package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -0
- package/dist/components/ui/drawer/Drawer.vue.d.ts +4 -4
- package/dist/components/ui/input/Input.vue.d.ts +19 -1
- package/dist/components/ui/multi-select/MultiSelect.vue.d.ts +8 -4
- package/dist/components/ui/progress/Progress.vue.d.ts +26 -88
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +14 -0
- package/dist/components/ui/progress/ProgressGradient.vue.d.ts +25 -0
- package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +36 -0
- package/dist/components/ui/progress/index.d.ts +5 -2
- package/dist/components/ui/progress/useProgressGeometry.d.ts +60 -0
- package/dist/components/ui/select/Select.vue.d.ts +2 -2
- package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
- package/dist/components/ui/select/SelectTrigger.vue.d.ts +3 -0
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/slider/index.d.ts +12 -11
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/ui/textarea/Textarea.vue.d.ts +5 -1
- package/dist/components/ui/toast/Toast.vue.d.ts +4 -4
- package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
- package/dist/components/ui/toggle/index.d.ts +1 -1
- package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +2 -3
- package/dist/composables/color/index.d.ts +49 -0
- package/dist/composables/context/createContext.d.ts +56 -0
- package/dist/composables/context/index.d.ts +1 -0
- package/dist/composables/dark/darkModeSyncScript.d.ts +23 -0
- package/dist/composables/dark/index.d.ts +3 -0
- package/dist/composables/dark/useGlobalDark.d.ts +19 -2
- package/dist/composables/dom/index.d.ts +0 -3
- package/dist/composables/dom/useClipboard.d.ts +35 -12
- package/dist/composables/dom/useDocumentVisibility.d.ts +20 -0
- package/dist/composables/glass/webgl/compile.d.ts +15 -0
- package/dist/composables/glass/webgl/shaders/procedural-color.glsl.d.ts +3 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +55 -0
- package/dist/composables/motion/core/index.d.ts +1 -1
- package/dist/composables/motion/index.d.ts +1 -1
- package/dist/composables/motion/useCountup.d.ts +29 -0
- package/dist/composables/motion/useNumericTransition.d.ts +14 -3
- package/dist/composables/motion/vReveal.d.ts +2 -0
- package/dist/composables/sidebar/useSidebarState.d.ts +2 -2
- package/dist/composables/sortable/dragController.d.ts +44 -0
- package/dist/composables/sortable/dropResolver.d.ts +34 -0
- package/dist/composables/sortable/ghostRenderer.d.ts +44 -0
- package/dist/composables/sortable/index.d.ts +1 -1
- package/dist/composables/sortable/touchGate.d.ts +26 -0
- package/dist/composables/sortable/transitionTiming.d.ts +50 -0
- package/dist/composables/sortable/types.d.ts +133 -0
- package/dist/composables/sortable/useSortable.d.ts +25 -153
- package/dist/configurator.js +1 -1
- package/dist/confirm-dialog.js +1 -1
- package/dist/controls.js +4 -4
- package/dist/createContext-DBMGRlx4.js +25 -0
- package/dist/dark.d.ts +2 -1
- package/dist/dark.js +9 -2
- package/dist/data-table.js +1 -1
- package/dist/dialog.js +1 -1
- package/dist/disco-glyph.js +1 -1
- package/dist/dock.js +400 -261
- package/dist/dockContext-spUj_-E5.js +9 -0
- package/dist/dom.js +6 -6
- package/dist/{dropdown-menu-naE0skDg.js → dropdown-menu-EFjl5iKo.js} +1 -1
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +26 -20
- package/dist/fonts/README.md +21 -0
- package/dist/fonts/fraunces/fraunces-latin.woff2 +0 -0
- package/dist/forms.js +68 -59
- package/dist/glass-panel.js +1 -1
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +226 -328
- package/dist/glyph-face.js +2 -2
- package/dist/goo-blob.d.ts +1 -0
- package/dist/goo-blob.js +538 -0
- package/dist/header-ribbon.js +2 -2
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/instrument-chassis.js +1 -1
- package/dist/instrument-rail.js +1 -1
- package/dist/keys-BFoma9vm.js +9 -0
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +57 -39
- package/dist/metric-badge.js +1 -1
- package/dist/motion-core.js +82 -123
- package/dist/motion.js +62 -14
- package/dist/number-field.js +1 -1
- package/dist/paper-backdrop.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/{presets-BpTf63Hp.js → presets-1OhFpaIC.js} +1 -1
- package/dist/prng-Bz_1Tydc.js +15 -0
- package/dist/progress.js +2 -2
- package/dist/reactive.js +2 -2
- package/dist/responsive-tabs.js +38 -32
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +8 -8
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-wx8ifVFB.js → slider-BOh8ycfZ.js} +7 -11
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +36 -38
- package/dist/stacked-icons.js +2 -2
- package/dist/styles/animations.css +1 -1
- package/dist/styles/cards.css +1 -1
- package/dist/styles/components.css +1 -1
- package/dist/styles/dock-controls.css +486 -0
- package/dist/styles/dock.css +284 -450
- package/dist/styles/fonts.css +25 -0
- package/dist/styles/glass-specular-track.css +154 -0
- package/dist/styles/glass.css +74 -2
- package/dist/styles/index.css +21 -2
- package/dist/styles/instrument-chassis.css +11 -4
- package/dist/styles/theme.css +73 -21
- package/dist/styles/tokens.css +271 -140
- package/dist/styles/typography.css +14 -8
- package/dist/styles/utilities.css +36 -8
- package/dist/styles/view-transition.css +10 -4
- package/dist/switch.js +1 -1
- package/dist/tabs.js +139 -112
- package/dist/timeline.js +219 -158
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tokens.d.ts +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{useAnimatedNumber-BOxrS3a6.js → useAnimatedNumber-BF6r64lA.js} +1 -1
- package/dist/useClipboard-D8vFyRCa.js +97 -0
- package/dist/{useConfiguratorState-Dq2gNv4A.js → useConfiguratorState-DUtC1jxr.js} +82 -86
- package/dist/useGlobalDark-CWiaCoEw.js +34 -0
- package/dist/useIntersectionPause-DAdVPVp4.js +53 -0
- package/dist/useSortable-DnyGXKKY.js +246 -0
- package/dist/{useTouchGate-XX8gHfay.js → useTouchGate-CS5Csc2h.js} +1 -1
- package/dist/utils/prng.d.ts +4 -0
- package/dist/vReveal-u2wSG2El.js +35 -0
- package/dist/watercolor-dot.d.ts +1 -0
- package/dist/watercolor-dot.js +129 -0
- package/package.json +101 -16
- package/src/fonts/README.md +21 -0
- package/src/fonts/fraunces/fraunces-latin.woff2 +0 -0
- package/src/styles/animations.css +1 -1
- package/src/styles/cards.css +1 -1
- package/src/styles/dock-controls.css +486 -0
- package/src/styles/dock.css +284 -450
- package/src/styles/fonts.css +25 -0
- package/src/styles/glass-specular-track.css +154 -0
- package/src/styles/glass.css +74 -2
- package/src/styles/index.css +21 -2
- package/src/styles/instrument-chassis.css +11 -4
- package/src/styles/theme.css +73 -21
- package/src/styles/tokens.css +271 -140
- package/src/styles/typography.css +14 -8
- package/src/styles/utilities.css +36 -8
- package/src/styles/view-transition.css +10 -4
- package/dist/DataTable-BsrDYdoE.js +0 -460
- package/dist/DialogContent-B61rP8lj.js +0 -93
- package/dist/HoverPopover-BlEwqG7S.js +0 -96
- package/dist/Input-IFsIzId2.js +0 -30
- package/dist/Progress-Bs44qWEM.js +0 -126
- package/dist/UnderlineTabs-B4FV2zi_.js +0 -37
- package/dist/components/custom/aurora/shaders/aurora.frag.d.ts +0 -1
- package/dist/composables/dom/useBreakpoint.d.ts +0 -38
- package/dist/composables/dom/useIdleReady.d.ts +0 -63
- package/dist/composables/dom/useViewportReady.d.ts +0 -87
- package/dist/composables/glass/webgl/frostShader.d.ts +0 -27
- package/dist/composables/motion/useAnimatedNumberMap.d.ts +0 -29
- package/dist/composables/motion/useStagger.d.ts +0 -50
- package/dist/dockContext-DM58L1Jt.js +0 -16
- package/dist/keys-SIKQYNx1.js +0 -11
- package/dist/supportsCssTimeline-IQY3gfKD.js +0 -12
- package/dist/useGlobalDark-BUUTZvkU.js +0 -24
- package/dist/useIdleReady-sLhGo6CL.js +0 -162
- package/dist/useIntersectionPause-CUmANkoc.js +0 -39
- package/dist/useSortable-DLK9kwZp.js +0 -189
- /package/dist/{HoverCardContent-DGUhpRVt.js → HoverCardContent-ICfIMZX1.js} +0 -0
- /package/dist/{InstrumentChassis-CqKPBNqp.js → InstrumentChassis-DaHIZCqy.js} +0 -0
- /package/dist/{InstrumentRail-CCjvKkpB.js → InstrumentRail-B0qqLFN0.js} +0 -0
- /package/dist/{Label-D53EOwLE.js → Label-CZk-3nTc.js} +0 -0
- /package/dist/{PaperBackdrop-Ds-wDsKf.js → PaperBackdrop-D_YZW47j.js} +0 -0
- /package/dist/{SelectGroup-DAgcsfFw.js → SelectGroup-CMdoCjRE.js} +0 -0
- /package/dist/{SelectSeparator-DN1jzLaI.js → SelectSeparator-CaJnPF3_.js} +0 -0
- /package/dist/{Separator-DXxac0j8.js → Separator-C2XtAXRp.js} +0 -0
- /package/dist/{Switch-imA0Hdjs.js → Switch-x8n6husW.js} +0 -0
- /package/dist/{Toaster-Brs6QjBU.js → Toaster-DdhMKfus.js} +0 -0
- /package/dist/{TooltipProvider-MZFRxOvT.js → TooltipProvider-D-JrSqDu.js} +0 -0
- /package/dist/components/custom/aurora/{renderMode.d.ts → constants/renderMode.d.ts} +0 -0
- /package/dist/components/custom/aurora/{shaders → constants/shaders}/aurora.vert.d.ts +0 -0
- /package/dist/{constants-DfWPi8kh.js → constants-DsCdlK9I.js} +0 -0
- /package/dist/{sheet-BnvZRXPq.js → sheet-CQYYrkr9.js} +0 -0
- /package/dist/{useGlassRenderer-C98tZnJ7.js → useGlassRenderer-Dn3WpfG-.js} +0 -0
- /package/dist/{useInterval-B58LmYth.js → useInterval-CHVYFpXV.js} +0 -0
- /package/dist/{useResizeObserver-C_7GjpRn.js → useResizeObserver-DX-STszm.js} +0 -0
- /package/dist/{useTextHighlight-CLST6an0.js → useTextHighlight-Dmtofpk2.js} +0 -0
- /package/dist/{useTimer-6FoosoDY.js → useTimer-DGgoxTXL.js} +0 -0
- /package/dist/{useUserInvalidAria-BW5iyqWR.js → useUserInvalidAria-DmvZ_6Dx.js} +0 -0
- /package/dist/{useViewTransition-CUJM7fXT.js → useViewTransition-D4ssvnXZ.js} +0 -0
|
@@ -1,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) ──────
|
|
@@ -683,6 +688,29 @@
|
|
|
683
688
|
}
|
|
684
689
|
}
|
|
685
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
|
+
|
|
686
714
|
/* ── Sheet/drawer slide-out animation grammar ──
|
|
687
715
|
Mirror of `.popover-animate` for sheet/drawer panels. Pairs with
|
|
688
716
|
`slide-in-from-{top,right,bottom,left}-N` to compose side-keyed entries.
|
|
@@ -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-DS3ULf5i.js";
|
|
3
|
-
import { t as n } from "./_plugin-vue_export-helper-C1je1s0u.js";
|
|
4
|
-
import { n as r, r as i, t as a } from "./ContextMenuContent-De01_83g.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 };
|