@leavepulse/ui 0.45.1 → 0.46.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/assets/{LpCommandPalette-HzAA4gri.css → LpCommandPalette-5miKYsb-.css} +21 -21
- package/dist/assets/{LpDropzone-i4BdMi1H.css → LpDropzone-Ev6X03zj.css} +12 -12
- package/dist/assets/{LpTable-CPwWxTJS.css → LpTable-BoeA_TgK.css} +17 -17
- package/dist/chunks/{LpAddressInput-CJOYGZlI.js → LpAddressInput-iOJhmRzy.js} +1 -1
- package/dist/chunks/{LpAppShell-B07Lf48e.js → LpAppShell-BmMYcEVx.js} +2 -2
- package/dist/chunks/{LpAvatar-C1XStdOo.js → LpAvatar-DeSb6H0c.js} +1 -1
- package/dist/chunks/{LpCard-C2IvucmX.js → LpCard-BdxkMXjo.js} +1 -1
- package/dist/chunks/{LpColorPicker-zz4VGkG4.js → LpColorPicker-BLqPX5Vw.js} +1 -1
- package/dist/chunks/{LpConfirmDialog-BTVAR4tF.js → LpConfirmDialog-Ca-CTlxT.js} +1 -1
- package/dist/chunks/{LpConfirmHost-Ci_uCHgQ.js → LpConfirmHost-BAaSaT2b.js} +1 -1
- package/dist/chunks/{LpContextMenu-BqkAYa9X.js → LpContextMenu-1cKew_Dc.js} +17 -4
- package/dist/chunks/{LpDrawer-CfRhHwmE.js → LpDrawer-CBFVD624.js} +1 -1
- package/dist/chunks/{LpDropdownMenu-DdJGQzPn.js → LpDropdownMenu-DrpJJBp0.js} +22 -8
- package/dist/chunks/{LpFileTree-CNurOvkV.js → LpFileTree-bk5VjBey.js} +2 -2
- package/dist/chunks/{LpFileTreeNode-D_qRRdsH.js → LpFileTreeNode-BvMSBM7X.js} +1 -1
- package/dist/chunks/{LpLogViewer-KypbgOyo.js → LpLogViewer-BDFXzvcl.js} +2 -2
- package/dist/chunks/{LpModal-BzTVeNqe.js → LpModal-JNa3B_Lr.js} +12 -5
- package/dist/chunks/{LpModalNav-CjABSGCu.js → LpModalNav-BAxC9et7.js} +10 -3
- package/dist/chunks/{LpNotificationBell-CCwyJP5C.js → LpNotificationBell-DsqSyMwS.js} +2 -2
- package/dist/chunks/{LpPie-BEJ2SfI6.js → LpPie-BdSnta11.js} +1 -1
- package/dist/chunks/{LpScrollArea-Bry1fdOM.js → LpScrollArea-Hz3-JWUG.js} +23 -5
- package/dist/chunks/{LpSidebar-Bwws_X29.js → LpSidebar-DpEiGi8L.js} +2 -2
- package/dist/chunks/{LpSidebarNav-kx-LdqNU.js → LpSidebarNav-BUuxipX-.js} +2 -2
- package/dist/chunks/{LpThemeSwitcher-B4aVPbNC.js → LpThemeSwitcher-BbYFFT5w.js} +1 -1
- package/dist/chunks/MenuTitle-J3ZDYjpV.js +56 -0
- package/dist/components/LpAddressInput.vue.js +1 -1
- package/dist/components/LpAppShell.vue.js +1 -1
- package/dist/components/LpAvatar.vue.js +1 -1
- package/dist/components/LpCard.vue.js +1 -1
- package/dist/components/LpChart.vue.js +1 -1
- package/dist/components/LpColorPicker.vue.js +1 -1
- package/dist/components/LpCommandPalette.vue.js +6 -3
- package/dist/components/LpConfirmDialog.vue.js +1 -1
- package/dist/components/LpConfirmHost.vue.js +1 -1
- package/dist/components/LpContextMenu.vue.d.ts +11 -0
- package/dist/components/LpContextMenu.vue.js +1 -1
- package/dist/components/LpDrawer.vue.js +1 -1
- package/dist/components/LpDropdownMenu.vue.d.ts +6 -0
- package/dist/components/LpDropdownMenu.vue.js +1 -1
- package/dist/components/LpDropzone.vue.d.ts +14 -0
- package/dist/components/LpDropzone.vue.js +9 -7
- package/dist/components/LpFileTree.vue.js +1 -1
- package/dist/components/LpFileTreeNode.vue.js +1 -1
- package/dist/components/LpLogViewer.vue.js +1 -1
- package/dist/components/LpModal.vue.d.ts +7 -5
- package/dist/components/LpModal.vue.js +1 -1
- package/dist/components/LpModalNav.vue.d.ts +5 -3
- package/dist/components/LpModalNav.vue.js +1 -1
- package/dist/components/LpNotificationBell.vue.js +1 -1
- package/dist/components/LpPie.vue.js +1 -1
- package/dist/components/LpScrollArea.vue.d.ts +2 -2
- package/dist/components/LpScrollArea.vue.js +1 -1
- package/dist/components/LpShortcutsDialog.vue.js +1 -1
- package/dist/components/LpSidebar.vue.js +1 -1
- package/dist/components/LpSidebarNav.vue.js +1 -1
- package/dist/components/LpTable.vue.js +5 -5
- package/dist/components/LpThemeSwitcher.vue.js +1 -1
- package/dist/components/MenuTitle.vue.d.ts +9 -0
- package/dist/components/MenuTitle.vue.js +4 -0
- package/dist/composables/useClipboard.js +35 -2
- package/dist/index.js +19 -19
- package/package.json +1 -1
- package/src/components/LpCommandPalette.vue +6 -0
- package/src/components/LpContextMenu.vue +19 -1
- package/src/components/LpDropdownMenu.vue +14 -2
- package/src/components/LpDropzone.vue +13 -5
- package/src/components/LpModal.vue +7 -1
- package/src/components/LpModalNav.vue +4 -0
- package/src/components/LpScrollArea.vue +30 -2
- package/src/components/LpTable.vue +1 -1
- package/src/components/MenuTitle.vue +34 -0
- package/src/composables/useClipboard.ts +49 -7
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { defineComponent, ref, computed, watch, onBeforeUnmount, openBlock, createBlock, unref, normalizeClass, withCtx, createVNode, normalizeStyle, createElementVNode, renderSlot } from "vue";
|
|
2
2
|
import { ScrollAreaRoot, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaViewport } from "reka-ui";
|
|
3
|
+
import { prefersReducedMotion } from "../composables/easing.js";
|
|
3
4
|
const barFade = "opacity-0 data-[state=visible]:animate-[fade-in_180ms_ease] data-[state=visible]:opacity-100 data-[state=hidden]:animate-[fade-out_240ms_ease]";
|
|
4
5
|
const FADE_PX = 14;
|
|
5
6
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -85,6 +86,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
85
86
|
{ immediate: true, flush: "post" }
|
|
86
87
|
);
|
|
87
88
|
onBeforeUnmount(stopEdgeWatch);
|
|
89
|
+
function onTrackPointerDown(event, axis) {
|
|
90
|
+
const el = viewportEl.value;
|
|
91
|
+
const bar = event.currentTarget;
|
|
92
|
+
const thumb = bar.querySelector("[data-lp-thumb]");
|
|
93
|
+
if (!el || !thumb || event.button !== 0 || thumb.contains(event.target)) return;
|
|
94
|
+
event.preventDefault();
|
|
95
|
+
event.stopImmediatePropagation();
|
|
96
|
+
const rect = thumb.getBoundingClientRect();
|
|
97
|
+
const before = axis === "y" ? event.clientY < rect.top : event.clientX < rect.left;
|
|
98
|
+
const step = (axis === "y" ? el.clientHeight : el.clientWidth) * 0.85 * (before ? -1 : 1);
|
|
99
|
+
const behavior = prefersReducedMotion() ? "auto" : "smooth";
|
|
100
|
+
el.scrollBy(axis === "y" ? { top: step, behavior } : { left: step, behavior });
|
|
101
|
+
}
|
|
88
102
|
function onThumbPointerDown() {
|
|
89
103
|
dragging.value = true;
|
|
90
104
|
const stop = () => {
|
|
@@ -106,11 +120,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
106
120
|
orientation: "vertical",
|
|
107
121
|
"force-mount": "",
|
|
108
122
|
class: normalizeClass(["group z-1 flex w-3.5 touch-none select-none justify-end py-px pl-2.5 pr-px", barFade]),
|
|
109
|
-
style: normalizeStyle(__props.barInsetTop ? { marginTop: __props.barInsetTop } : void 0)
|
|
123
|
+
style: normalizeStyle(__props.barInsetTop ? { marginTop: __props.barInsetTop } : void 0),
|
|
124
|
+
onPointerdownCapture: _cache[0] || (_cache[0] = ($event) => onTrackPointerDown($event, "y"))
|
|
110
125
|
}, {
|
|
111
126
|
default: withCtx(() => [
|
|
112
127
|
createVNode(unref(ScrollAreaThumb), {
|
|
113
|
-
|
|
128
|
+
"data-lp-thumb": "",
|
|
129
|
+
class: "relative min-w-1 rounded-l-pill bg-brand/40 before:absolute before:inset-y-0 before:right-0 before:-left-2.5 before:content-[''] transition-[min-width,background-color] duration-[var(--duration-fast)] group-hover:min-w-1.5 group-hover:bg-brand",
|
|
114
130
|
onPointerdown: onThumbPointerDown
|
|
115
131
|
})
|
|
116
132
|
]),
|
|
@@ -118,11 +134,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
118
134
|
}, 8, ["style"]),
|
|
119
135
|
createVNode(unref(ScrollAreaScrollbar), {
|
|
120
136
|
orientation: "horizontal",
|
|
121
|
-
class: normalizeClass(["group z-1 flex h-3.5 flex-col touch-none select-none justify-end px-px pb-px pt-2.5", barFade])
|
|
137
|
+
class: normalizeClass(["group z-1 flex h-3.5 flex-col touch-none select-none justify-end px-px pb-px pt-2.5", barFade]),
|
|
138
|
+
onPointerdownCapture: _cache[1] || (_cache[1] = ($event) => onTrackPointerDown($event, "x"))
|
|
122
139
|
}, {
|
|
123
140
|
default: withCtx(() => [
|
|
124
141
|
createVNode(unref(ScrollAreaThumb), {
|
|
125
|
-
|
|
142
|
+
"data-lp-thumb": "",
|
|
143
|
+
class: "relative min-h-1 rounded-t-pill bg-brand/40 before:absolute before:inset-x-0 before:bottom-0 before:-top-2.5 before:content-[''] transition-[min-height,background-color] duration-[var(--duration-fast)] group-hover:min-h-1.5 group-hover:bg-brand",
|
|
126
144
|
onPointerdown: onThumbPointerDown
|
|
127
145
|
})
|
|
128
146
|
]),
|
|
@@ -138,7 +156,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
138
156
|
style: normalizeStyle(__props.fade ? { maskImage: fadeMask.value, WebkitMaskImage: fadeMask.value } : void 0),
|
|
139
157
|
onScrollPassive: onViewportScroll,
|
|
140
158
|
onPointerdown: onViewportPointerDown,
|
|
141
|
-
onFocusout: _cache[
|
|
159
|
+
onFocusout: _cache[2] || (_cache[2] = (e) => e.target === e.currentTarget && onViewportBlur())
|
|
142
160
|
}, {
|
|
143
161
|
default: withCtx(() => [
|
|
144
162
|
createElementVNode("div", {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defineComponent, computed, ref, useId, openBlock, createElementBlock, Fragment, createElementVNode, mergeProps, unref, normalizeClass, renderSlot, createCommentVNode, createBlock, createVNode, createSlots, withCtx, normalizeProps, guardReactiveProps } from "vue";
|
|
2
2
|
import { useLabels } from "../composables/useLpConfig.js";
|
|
3
|
-
import { _ as _sfc_main$3 } from "./LpDrawer-
|
|
3
|
+
import { _ as _sfc_main$3 } from "./LpDrawer-CBFVD624.js";
|
|
4
4
|
import { _ as _sfc_main$1 } from "./LpInput-D-YGQbEv.js";
|
|
5
|
-
import { _ as _sfc_main$2 } from "./LpSidebarNav-
|
|
5
|
+
import { _ as _sfc_main$2 } from "./LpSidebarNav-BUuxipX-.js";
|
|
6
6
|
const _hoisted_1 = ["aria-label"];
|
|
7
7
|
const _hoisted_2 = {
|
|
8
8
|
key: 2,
|
|
@@ -3,9 +3,9 @@ import { Motion } from "motion-v";
|
|
|
3
3
|
import { CollapsibleRoot, CollapsibleTrigger, CollapsibleContent } from "reka-ui";
|
|
4
4
|
import { usePillTransition } from "../composables/usePillTransition.js";
|
|
5
5
|
import { _ as _sfc_main$3 } from "./LpBadge-Fe0D1bYx.js";
|
|
6
|
-
import { _ as _sfc_main$4 } from "./LpContextMenu-
|
|
6
|
+
import { _ as _sfc_main$4 } from "./LpContextMenu-1cKew_Dc.js";
|
|
7
7
|
import { _ as _sfc_main$2 } from "./LpIcon-DYtaid0K.js";
|
|
8
|
-
import { _ as _sfc_main$1 } from "./LpScrollArea-
|
|
8
|
+
import { _ as _sfc_main$1 } from "./LpScrollArea-Hz3-JWUG.js";
|
|
9
9
|
import { resolveLink } from "../components/link.js";
|
|
10
10
|
import { useLinkComponent } from "../composables/useLpConfig.js";
|
|
11
11
|
import { useMergedAttrs } from "../composables/useMergedClass.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, computed, onMounted, ref, openBlock, createBlock, withCtx, createElementVNode, normalizeClass, createElementBlock, createVNode, toDisplayString, createCommentVNode } from "vue";
|
|
2
2
|
import { useLabels } from "../composables/useLpConfig.js";
|
|
3
3
|
import { u as useTheme, p as presets } from "./useTheme-DJm1JSsY.js";
|
|
4
|
-
import { _ as _sfc_main$1 } from "./LpContextMenu-
|
|
4
|
+
import { _ as _sfc_main$1 } from "./LpContextMenu-1cKew_Dc.js";
|
|
5
5
|
import { _ as _sfc_main$2 } from "./LpIcon-DYtaid0K.js";
|
|
6
6
|
const _hoisted_1 = ["aria-label", "title"];
|
|
7
7
|
const _hoisted_2 = {
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { defineComponent, openBlock, createElementBlock, Fragment, createElementVNode, createVNode, createCommentVNode, toDisplayString } from "vue";
|
|
2
|
+
import { _ as _sfc_main$1 } from "./LpIcon-DYtaid0K.js";
|
|
3
|
+
const _hoisted_1 = {
|
|
4
|
+
class: "flex max-w-72 min-w-0 items-center gap-2 px-2.5 pt-1.5 pb-2",
|
|
5
|
+
"aria-hidden": "true"
|
|
6
|
+
};
|
|
7
|
+
const _hoisted_2 = ["src"];
|
|
8
|
+
const _hoisted_3 = {
|
|
9
|
+
key: 1,
|
|
10
|
+
class: "grid size-7 shrink-0 place-items-center rounded-md bg-surface-soft text-muted"
|
|
11
|
+
};
|
|
12
|
+
const _hoisted_4 = { class: "flex min-w-0 flex-col" };
|
|
13
|
+
const _hoisted_5 = { class: "truncate text-sm font-medium text-ink" };
|
|
14
|
+
const _hoisted_6 = {
|
|
15
|
+
key: 0,
|
|
16
|
+
class: "truncate text-xs text-muted"
|
|
17
|
+
};
|
|
18
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
19
|
+
__name: "MenuTitle",
|
|
20
|
+
props: {
|
|
21
|
+
title: {},
|
|
22
|
+
subtitle: {},
|
|
23
|
+
icon: {},
|
|
24
|
+
image: {}
|
|
25
|
+
},
|
|
26
|
+
setup(__props) {
|
|
27
|
+
return (_ctx, _cache) => {
|
|
28
|
+
return openBlock(), createElementBlock(Fragment, null, [
|
|
29
|
+
createElementVNode("div", _hoisted_1, [
|
|
30
|
+
__props.image ? (openBlock(), createElementBlock("img", {
|
|
31
|
+
key: 0,
|
|
32
|
+
src: __props.image,
|
|
33
|
+
alt: "",
|
|
34
|
+
class: "size-7 shrink-0 rounded-md object-cover"
|
|
35
|
+
}, null, 8, _hoisted_2)) : __props.icon ? (openBlock(), createElementBlock("span", _hoisted_3, [
|
|
36
|
+
createVNode(_sfc_main$1, {
|
|
37
|
+
name: __props.icon,
|
|
38
|
+
size: 15
|
|
39
|
+
}, null, 8, ["name"])
|
|
40
|
+
])) : createCommentVNode("", true),
|
|
41
|
+
createElementVNode("span", _hoisted_4, [
|
|
42
|
+
createElementVNode("span", _hoisted_5, toDisplayString(__props.title), 1),
|
|
43
|
+
__props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_6, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)
|
|
44
|
+
])
|
|
45
|
+
]),
|
|
46
|
+
_cache[0] || (_cache[0] = createElementVNode("div", {
|
|
47
|
+
class: "mb-1 h-px bg-line",
|
|
48
|
+
role: "presentation"
|
|
49
|
+
}, null, -1))
|
|
50
|
+
], 64);
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
export {
|
|
55
|
+
_sfc_main as _
|
|
56
|
+
};
|
|
@@ -5,7 +5,7 @@ import { prefersReducedMotion, easeTravel } from "../composables/easing.js";
|
|
|
5
5
|
import { usePillTransition } from "../composables/usePillTransition.js";
|
|
6
6
|
import { useReveal } from "../composables/useReveal.js";
|
|
7
7
|
import { normalise, pointCount, resolveLabels, extent, axisTicks, plotHeight, plotWidth, xAt, yAt, areaPath, linePath, barPath, markerIndex, chartSummary, niceScale, nearestIndex, formatTick } from "./chart.js";
|
|
8
|
-
import { _ as _sfc_main$1 } from "../chunks/LpContextMenu-
|
|
8
|
+
import { _ as _sfc_main$1 } from "../chunks/LpContextMenu-1cKew_Dc.js";
|
|
9
9
|
import { _ as _sfc_main$2 } from "../chunks/LpIcon-DYtaid0K.js";
|
|
10
10
|
import { _ as _sfc_main$3 } from "../chunks/LpShift-DXNsauQZ.js";
|
|
11
11
|
import { useMergedAttrs } from "../composables/useMergedClass.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, ref, useId, computed, shallowRef, watch, useSlots, nextTick, onBeforeUnmount, openBlock, createBlock, unref, withCtx, createVNode, normalizeStyle, normalizeClass, withModifiers, createTextVNode, toDisplayString, createElementVNode, createElementBlock, Fragment, renderList, createCommentVNode, withDirectives, withKeys, vModelText, resolveDynamicComponent, Transition, renderSlot } from "vue";
|
|
2
2
|
import { DialogRoot, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription } from "reka-ui";
|
|
3
3
|
import { _ as _sfc_main$1 } from "../chunks/LpIcon-DYtaid0K.js";
|
|
4
|
-
import { _ as _sfc_main$2 } from "../chunks/LpScrollArea-
|
|
4
|
+
import { _ as _sfc_main$2 } from "../chunks/LpScrollArea-Hz3-JWUG.js";
|
|
5
5
|
import { useAsyncTask } from "../composables/useAsyncTask.js";
|
|
6
6
|
import { useGlass } from "../composables/useGlass.js";
|
|
7
7
|
import { useClipboard } from "../composables/useClipboard.js";
|
|
@@ -10,7 +10,7 @@ import { useModalLayer } from "./modalDepth.js";
|
|
|
10
10
|
import { useLabels } from "../composables/useLpConfig.js";
|
|
11
11
|
import { parseCommandQuery, rankCommandItems } from "./commandSearch.js";
|
|
12
12
|
import { _ as _export_sfc } from "../chunks/_plugin-vue_export-helper-1tPrXgE0.js";
|
|
13
|
-
import '../assets/LpCommandPalette-
|
|
13
|
+
import '../assets/LpCommandPalette-5miKYsb-.css';const _hoisted_1 = { class: "flex shrink-0 items-center gap-2.5 border-b border-line px-4" };
|
|
14
14
|
const _hoisted_2 = ["title", "onClick"];
|
|
15
15
|
const _hoisted_3 = ["aria-activedescendant", "placeholder", "onKeydown"];
|
|
16
16
|
const _hoisted_4 = { class: "shrink-0 rounded border border-line px-1.5 py-0.5 text-[10px] text-muted" };
|
|
@@ -313,6 +313,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
313
313
|
});
|
|
314
314
|
const expanded = ref(/* @__PURE__ */ new Set());
|
|
315
315
|
const moreOf = /* @__PURE__ */ new WeakMap();
|
|
316
|
+
const firstHidden = /* @__PURE__ */ new WeakMap();
|
|
316
317
|
function folded(name, items) {
|
|
317
318
|
const limit = props.groupLimit;
|
|
318
319
|
if (!limit || items.length <= limit + 1 || expanded.value.has(name)) return items;
|
|
@@ -323,6 +324,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
323
324
|
keepOpen: true
|
|
324
325
|
};
|
|
325
326
|
moreOf.set(more, name);
|
|
327
|
+
firstHidden.set(more, items[limit].id);
|
|
326
328
|
return [...items.slice(0, limit), more];
|
|
327
329
|
}
|
|
328
330
|
const flat = computed(() => grouped.value.flatMap((g) => g.items));
|
|
@@ -472,6 +474,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
472
474
|
if (!c || c.disabled) return;
|
|
473
475
|
const group = moreOf.get(c);
|
|
474
476
|
if (group !== void 0) {
|
|
477
|
+
selectedId.value = firstHidden.get(c) ?? null;
|
|
475
478
|
expanded.value = /* @__PURE__ */ new Set([...expanded.value, group]);
|
|
476
479
|
inputRef.value?.focus();
|
|
477
480
|
return;
|
|
@@ -844,7 +847,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
844
847
|
};
|
|
845
848
|
}
|
|
846
849
|
});
|
|
847
|
-
const LpCommandPalette = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
850
|
+
const LpCommandPalette = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-254e59f7"]]);
|
|
848
851
|
export {
|
|
849
852
|
LpCommandPalette as default
|
|
850
853
|
};
|
|
@@ -26,6 +26,17 @@ type __VLS_Props = {
|
|
|
26
26
|
* native-menu mode on that first click and swallow it.
|
|
27
27
|
*/
|
|
28
28
|
always?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* What the menu acts on, shown as a heading above the items: the row's name
|
|
31
|
+
* in a list of similar rows, so the user sees which one the right-click hit.
|
|
32
|
+
* Also names the menu for assistive tech.
|
|
33
|
+
*/
|
|
34
|
+
title?: string;
|
|
35
|
+
/** A muted second line under `title`, e.g. a version or a path. */
|
|
36
|
+
subtitle?: string;
|
|
37
|
+
/** An icon beside the title, or `titleImage` for a picture (an avatar, a logo). */
|
|
38
|
+
titleIcon?: string;
|
|
39
|
+
titleImage?: string;
|
|
29
40
|
};
|
|
30
41
|
declare var __VLS_16: {};
|
|
31
42
|
type __VLS_Slots = {} & {
|
|
@@ -3,10 +3,16 @@ export interface MenuItem {
|
|
|
3
3
|
icon?: string;
|
|
4
4
|
danger?: boolean;
|
|
5
5
|
separatorBefore?: boolean;
|
|
6
|
+
disabled?: boolean;
|
|
6
7
|
onSelect?: () => void;
|
|
7
8
|
}
|
|
8
9
|
type __VLS_Props = {
|
|
9
10
|
items: MenuItem[];
|
|
11
|
+
/** A heading naming what the menu acts on; see LpContextMenu's `title`. */
|
|
12
|
+
title?: string;
|
|
13
|
+
subtitle?: string;
|
|
14
|
+
titleIcon?: string;
|
|
15
|
+
titleImage?: string;
|
|
10
16
|
};
|
|
11
17
|
declare var __VLS_14: {};
|
|
12
18
|
type __VLS_Slots = {} & {
|
|
@@ -6,6 +6,13 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
6
6
|
/** Take more than one at a time. */
|
|
7
7
|
multiple?: boolean;
|
|
8
8
|
disabled?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* A drag the page itself cannot see is over the zone. Desktop shells
|
|
11
|
+
* (Tauri, Electron) often take file drags natively, and the page then gets
|
|
12
|
+
* no dragenter or dragover at all, only the shell's own events; the app
|
|
13
|
+
* hit-tests those and passes the answer here so the zone lights up the same.
|
|
14
|
+
*/
|
|
15
|
+
dragOver?: boolean;
|
|
9
16
|
/**
|
|
10
17
|
* Also accept a paste anywhere on the page, not only while focused.
|
|
11
18
|
* Off by default: two zones both listening would each take the same
|
|
@@ -42,6 +49,13 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
42
49
|
/** Take more than one at a time. */
|
|
43
50
|
multiple?: boolean;
|
|
44
51
|
disabled?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* A drag the page itself cannot see is over the zone. Desktop shells
|
|
54
|
+
* (Tauri, Electron) often take file drags natively, and the page then gets
|
|
55
|
+
* no dragenter or dragover at all, only the shell's own events; the app
|
|
56
|
+
* hit-tests those and passes the answer here so the zone lights up the same.
|
|
57
|
+
*/
|
|
58
|
+
dragOver?: boolean;
|
|
45
59
|
/**
|
|
46
60
|
* Also accept a paste anywhere on the page, not only while focused.
|
|
47
61
|
* Off by default: two zones both listening would each take the same
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { defineComponent, ref, onMounted, watch, onBeforeUnmount, openBlock, createElementBlock, mergeProps, unref, withModifiers, createElementVNode, renderSlot, createVNode, normalizeClass, toDisplayString, createCommentVNode } from "vue";
|
|
1
|
+
import { defineComponent, ref, computed, onMounted, watch, onBeforeUnmount, openBlock, createElementBlock, mergeProps, unref, withModifiers, createElementVNode, renderSlot, createVNode, normalizeClass, toDisplayString, createCommentVNode } from "vue";
|
|
2
2
|
import { useMergedAttrs } from "../composables/useMergedClass.js";
|
|
3
3
|
import { useReveal } from "../composables/useReveal.js";
|
|
4
4
|
import { _ as _sfc_main$1 } from "../chunks/LpIcon-DYtaid0K.js";
|
|
5
5
|
import { _ as _export_sfc } from "../chunks/_plugin-vue_export-helper-1tPrXgE0.js";
|
|
6
|
-
import '../assets/LpDropzone-
|
|
6
|
+
import '../assets/LpDropzone-Ev6X03zj.css';const _hoisted_1 = ["disabled"];
|
|
7
7
|
const _hoisted_2 = {
|
|
8
8
|
key: 0,
|
|
9
9
|
class: "text-sm font-medium text-ink"
|
|
@@ -21,6 +21,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
21
21
|
accept: { default: "" },
|
|
22
22
|
multiple: { type: Boolean, default: false },
|
|
23
23
|
disabled: { type: Boolean },
|
|
24
|
+
dragOver: { type: Boolean },
|
|
24
25
|
pasteTarget: { type: Boolean },
|
|
25
26
|
maxBytes: {},
|
|
26
27
|
icon: { default: "lucide:upload" },
|
|
@@ -40,16 +41,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
40
41
|
const { el: revealAnchor, revealed } = useReveal({ immediate: () => !props.animate });
|
|
41
42
|
const emit = __emit;
|
|
42
43
|
const input = ref(null);
|
|
43
|
-
const
|
|
44
|
+
const pointerOver = ref(false);
|
|
45
|
+
const over = computed(() => pointerOver.value || props.dragOver && !props.disabled);
|
|
44
46
|
function onDragOver(event) {
|
|
45
47
|
if (props.disabled) return;
|
|
46
|
-
|
|
48
|
+
pointerOver.value = true;
|
|
47
49
|
if (event.dataTransfer) event.dataTransfer.dropEffect = "copy";
|
|
48
50
|
}
|
|
49
51
|
function onDragLeave(event) {
|
|
50
52
|
const to = event.relatedTarget;
|
|
51
53
|
if (to && event.currentTarget.contains(to)) return;
|
|
52
|
-
|
|
54
|
+
pointerOver.value = false;
|
|
53
55
|
}
|
|
54
56
|
function matches(file) {
|
|
55
57
|
if (!props.accept) return true;
|
|
@@ -77,7 +79,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
77
79
|
if (bounded.length) emit("files", bounded);
|
|
78
80
|
}
|
|
79
81
|
function onDrop(event) {
|
|
80
|
-
|
|
82
|
+
pointerOver.value = false;
|
|
81
83
|
take(event.dataTransfer?.files);
|
|
82
84
|
}
|
|
83
85
|
function onPaste(event) {
|
|
@@ -179,7 +181,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
179
181
|
};
|
|
180
182
|
}
|
|
181
183
|
});
|
|
182
|
-
const LpDropzone = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
184
|
+
const LpDropzone = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8f39f653"]]);
|
|
183
185
|
export {
|
|
184
186
|
LpDropzone as default
|
|
185
187
|
};
|
|
@@ -43,19 +43,21 @@ type __VLS_Props = {
|
|
|
43
43
|
close: string;
|
|
44
44
|
}>;
|
|
45
45
|
};
|
|
46
|
-
declare var __VLS_31: {}, __VLS_45: {},
|
|
46
|
+
declare var __VLS_31: {}, __VLS_45: {}, __VLS_53: {}, __VLS_66: {}, __VLS_74: {}, __VLS_76: {}, __VLS_78: {};
|
|
47
47
|
type __VLS_Slots = {} & {
|
|
48
48
|
aside?: (props: typeof __VLS_31) => any;
|
|
49
49
|
} & {
|
|
50
50
|
title?: (props: typeof __VLS_45) => any;
|
|
51
51
|
} & {
|
|
52
|
-
|
|
52
|
+
actions?: (props: typeof __VLS_53) => any;
|
|
53
53
|
} & {
|
|
54
|
-
default?: (props: typeof
|
|
54
|
+
default?: (props: typeof __VLS_66) => any;
|
|
55
55
|
} & {
|
|
56
|
-
|
|
56
|
+
default?: (props: typeof __VLS_74) => any;
|
|
57
57
|
} & {
|
|
58
|
-
|
|
58
|
+
footer?: (props: typeof __VLS_76) => any;
|
|
59
|
+
} & {
|
|
60
|
+
asideEnd?: (props: typeof __VLS_78) => any;
|
|
59
61
|
};
|
|
60
62
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
61
63
|
"update:open": (value: boolean) => any;
|
|
@@ -34,13 +34,15 @@ type __VLS_Props = {
|
|
|
34
34
|
/** Frosted glass panel, passed to LpModal. Follows `provideGlass` when unset. */
|
|
35
35
|
glass?: boolean;
|
|
36
36
|
};
|
|
37
|
-
declare var __VLS_36: {},
|
|
37
|
+
declare var __VLS_36: {}, __VLS_39: {}, __VLS_41: {}, __VLS_44: {};
|
|
38
38
|
type __VLS_Slots = {} & {
|
|
39
39
|
title?: (props: typeof __VLS_36) => any;
|
|
40
40
|
} & {
|
|
41
|
-
|
|
41
|
+
actions?: (props: typeof __VLS_39) => any;
|
|
42
42
|
} & {
|
|
43
|
-
|
|
43
|
+
default?: (props: typeof __VLS_41) => any;
|
|
44
|
+
} & {
|
|
45
|
+
footer?: (props: typeof __VLS_44) => any;
|
|
44
46
|
};
|
|
45
47
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
46
48
|
"update:modelValue": (value: string) => any;
|
|
@@ -4,9 +4,9 @@ type __VLS_Props = {
|
|
|
4
4
|
contentClass?: string;
|
|
5
5
|
barInsetTop?: string;
|
|
6
6
|
};
|
|
7
|
-
declare var
|
|
7
|
+
declare var __VLS_50: {};
|
|
8
8
|
type __VLS_Slots = {} & {
|
|
9
|
-
default?: (props: typeof
|
|
9
|
+
default?: (props: typeof __VLS_50) => any;
|
|
10
10
|
};
|
|
11
11
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
|
|
12
12
|
viewportEl: import("vue").ComputedRef<HTMLElement | null>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, computed, openBlock, createBlock, unref, withCtx, createElementVNode, createElementBlock, Fragment, renderList, toDisplayString, createTextVNode, createCommentVNode } from "vue";
|
|
2
|
-
import { _ as _sfc_main$1 } from "../chunks/LpModal-
|
|
2
|
+
import { _ as _sfc_main$1 } from "../chunks/LpModal-JNa3B_Lr.js";
|
|
3
3
|
import { useAppleKeyboard, mergeShortcutGroups, activeShortcuts, useHotkeys, appleModifierLabel } from "../composables/useHotkeys.js";
|
|
4
4
|
import { useLabels } from "../composables/useLpConfig.js";
|
|
5
5
|
import { _ as _export_sfc } from "../chunks/_plugin-vue_export-helper-1tPrXgE0.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { defineComponent, computed, useAttrs, ref, shallowRef, watch, onMounted, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, createVNode, withCtx, createTextVNode, toDisplayString, createCommentVNode, Fragment, renderList, createElementVNode, Transition, renderSlot, mergeProps, normalizeStyle, createBlock, TransitionGroup, unref, withModifiers, nextTick } from "vue";
|
|
2
2
|
import { _ as _sfc_main$7 } from "../chunks/LpCheckbox-Bkj13CbW.js";
|
|
3
|
-
import { _ as _sfc_main$6 } from "../chunks/LpContextMenu-
|
|
3
|
+
import { _ as _sfc_main$6 } from "../chunks/LpContextMenu-1cKew_Dc.js";
|
|
4
4
|
import { _ as _sfc_main$2 } from "../chunks/LpIcon-DYtaid0K.js";
|
|
5
5
|
import { _ as _sfc_main$a } from "../chunks/LpPagination-BcDlo3r_.js";
|
|
6
6
|
import { _ as _sfc_main$8 } from "../chunks/LpPopover-DCKeqiVn.js";
|
|
7
|
-
import { _ as _sfc_main$5 } from "../chunks/LpScrollArea-
|
|
7
|
+
import { _ as _sfc_main$5 } from "../chunks/LpScrollArea-Hz3-JWUG.js";
|
|
8
8
|
import { _ as _sfc_main$4 } from "../chunks/LpRollingText-DB7upf-5.js";
|
|
9
9
|
import { _ as _sfc_main$3 } from "../chunks/LpShift-DXNsauQZ.js";
|
|
10
10
|
import { _ as _sfc_main$9 } from "../chunks/LpTableFilter-BV8PpLM9.js";
|
|
@@ -18,7 +18,7 @@ import { _ as _sfc_main$1 } from "../chunks/LpButton-CKSwC6Mu.js";
|
|
|
18
18
|
import { toCsv, downloadFile, fileStem } from "./exportData.js";
|
|
19
19
|
import { summarizeShown, parseTableState, serializeTableState, countValues } from "./tableFilter.js";
|
|
20
20
|
import { _ as _export_sfc } from "../chunks/_plugin-vue_export-helper-1tPrXgE0.js";
|
|
21
|
-
import '../assets/LpTable-
|
|
21
|
+
import '../assets/LpTable-BoeA_TgK.css';const _hoisted_1 = {
|
|
22
22
|
key: 0,
|
|
23
23
|
class: "flex justify-end"
|
|
24
24
|
};
|
|
@@ -726,7 +726,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
726
726
|
}),
|
|
727
727
|
createVNode(_sfc_main$5, mergeProps(scrollAttrs.value, {
|
|
728
728
|
fade: false,
|
|
729
|
-
class: "min-h-0 flex-1 rounded-card border border-line",
|
|
729
|
+
class: "min-h-0 flex-1 rounded-card border border-line bg-surface",
|
|
730
730
|
style: __props.load && floor.value ? { minHeight: `${floor.value + 2}px` } : void 0,
|
|
731
731
|
"bar-inset-top": barInsetTop.value
|
|
732
732
|
}), {
|
|
@@ -924,7 +924,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
924
924
|
};
|
|
925
925
|
}
|
|
926
926
|
});
|
|
927
|
-
const LpTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
927
|
+
const LpTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7fc0998d"]]);
|
|
928
928
|
export {
|
|
929
929
|
LpTable as default
|
|
930
930
|
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
title: string;
|
|
3
|
+
subtitle?: string;
|
|
4
|
+
icon?: string;
|
|
5
|
+
image?: string;
|
|
6
|
+
};
|
|
7
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
8
|
+
declare const _default: typeof __VLS_export;
|
|
9
|
+
export default _default;
|