@leavepulse/ui 0.29.3 → 0.29.4
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/{LpTable-B9Iko3XD.css → LpTable-Bz3uJNa3.css} +8 -8
- package/dist/chunks/{LpAppShell-CGX0DlIW.js → LpAppShell-BJk3b-u4.js} +1 -1
- package/dist/chunks/{LpAvatar-CzCE5cXg.js → LpAvatar-D3l4nabg.js} +1 -1
- package/dist/chunks/{LpCard-DSefTGEH.js → LpCard-D0M2ZCnB.js} +1 -1
- package/dist/chunks/{LpChart-UiU4RhXP.js → LpChart-Bmw7y34Z.js} +1 -1
- package/dist/chunks/{LpContextMenu-D0mzXqA7.js → LpContextMenu-B6WBLleS.js} +55 -8
- package/dist/chunks/{LpFileTree-BaV7f0O7.js → LpFileTree-DfFqY__1.js} +1 -1
- package/dist/chunks/{LpFileTreeNode-BzpBa7R7.js → LpFileTreeNode-COchUMNn.js} +1 -1
- package/dist/chunks/{LpLogViewer-CKmEQYnm.js → LpLogViewer-CVaGfTF_.js} +1 -1
- package/dist/chunks/{LpNotificationBell-Dvu-b6Vn.js → LpNotificationBell-CTsIcPqX.js} +1 -1
- package/dist/chunks/{LpPie-BkjWlfSw.js → LpPie-BL1vTDSM.js} +1 -1
- package/dist/chunks/{LpSidebar-CWehDCxN.js → LpSidebar-C_Mr-JPI.js} +1 -1
- package/dist/chunks/{LpSidebarNav-5RGNr2D3.js → LpSidebarNav-D6v12-36.js} +1 -1
- package/dist/chunks/{LpThemeSwitcher-Dj4VcTu7.js → LpThemeSwitcher-r1te9nB2.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/LpContextMenu.vue.d.ts +7 -0
- package/dist/components/LpContextMenu.vue.js +1 -1
- 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/LpNotificationBell.vue.js +1 -1
- package/dist/components/LpPie.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.d.ts +19 -0
- package/dist/components/LpTable.vue.js +233 -143
- package/dist/components/LpThemeSwitcher.vue.js +1 -1
- package/dist/index.js +12 -12
- package/package.json +1 -1
- package/src/components/LpContextMenu.vue +49 -0
- package/src/components/LpTable.vue +166 -23
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
* fade before closing the gap and the whole list lurches at the end instead of
|
|
12
12
|
* gliding.
|
|
13
13
|
*/
|
|
14
|
-
.lp-row-enter-active[data-v-
|
|
15
|
-
.lp-row-leave-active[data-v-
|
|
14
|
+
.lp-row-enter-active[data-v-f9c874a7],
|
|
15
|
+
.lp-row-leave-active[data-v-f9c874a7] {
|
|
16
16
|
transition:
|
|
17
17
|
opacity var(--duration-fast) var(--ease-emphasized),
|
|
18
18
|
transform var(--duration-fast) var(--ease-emphasized);
|
|
19
19
|
}
|
|
20
|
-
.lp-row-move[data-v-
|
|
20
|
+
.lp-row-move[data-v-f9c874a7] {
|
|
21
21
|
transition: transform var(--duration-medium) var(--ease-emphasized);
|
|
22
22
|
}
|
|
23
|
-
.lp-row-enter-from[data-v-
|
|
24
|
-
.lp-row-leave-to[data-v-
|
|
23
|
+
.lp-row-enter-from[data-v-f9c874a7],
|
|
24
|
+
.lp-row-leave-to[data-v-f9c874a7] {
|
|
25
25
|
opacity: 0;
|
|
26
26
|
transform: translateX(-0.5rem);
|
|
27
27
|
}
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
/* A filter that redraws the list is information, not decoration: with motion
|
|
38
38
|
turned down the rows change without animating rather than not changing. */
|
|
39
39
|
@media (prefers-reduced-motion: reduce) {
|
|
40
|
-
.lp-row-enter-active[data-v-
|
|
41
|
-
.lp-row-leave-active[data-v-
|
|
42
|
-
.lp-row-move[data-v-
|
|
40
|
+
.lp-row-enter-active[data-v-f9c874a7],
|
|
41
|
+
.lp-row-leave-active[data-v-f9c874a7],
|
|
42
|
+
.lp-row-move[data-v-f9c874a7] {
|
|
43
43
|
transition: none;
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -3,7 +3,7 @@ import { _ as _sfc_main$2 } from "./LpButton-5VXXCjwF.js";
|
|
|
3
3
|
import { _ as _sfc_main$3 } from "./LpIcon-CCnX5_2j.js";
|
|
4
4
|
import { _ as _sfc_main$5 } from "./LpScrollArea-D8xyKXcF.js";
|
|
5
5
|
import { _ as _sfc_main$4 } from "./LpShift-DXNsauQZ.js";
|
|
6
|
-
import { _ as _sfc_main$1 } from "./LpSidebar-
|
|
6
|
+
import { _ as _sfc_main$1 } from "./LpSidebar-C_Mr-JPI.js";
|
|
7
7
|
const _hoisted_1 = { class: "flex h-dvh overflow-hidden bg-surface text-ink" };
|
|
8
8
|
const _hoisted_2 = { class: "flex min-w-0 flex-1 flex-col" };
|
|
9
9
|
const _hoisted_3 = { class: "relative flex h-16 shrink-0 items-center gap-3 border-b border-line bg-surface px-4 md:px-6" };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, computed, ref, onMounted, openBlock, createBlock, withCtx, createVNode, unref, mergeProps, createCommentVNode, createTextVNode, toDisplayString } from "vue";
|
|
2
2
|
import { AvatarRoot, AvatarImage, AvatarFallback } from "reka-ui";
|
|
3
3
|
import { tv } from "tailwind-variants";
|
|
4
|
-
import { _ as _sfc_main$1 } from "./LpContextMenu-
|
|
4
|
+
import { _ as _sfc_main$1 } from "./LpContextMenu-B6WBLleS.js";
|
|
5
5
|
const __default__ = { inheritAttrs: false };
|
|
6
6
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
7
7
|
...__default__,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent, computed, openBlock, createBlock, withCtx, resolveDynamicComponent, mergeProps, renderSlot } from "vue";
|
|
2
2
|
import { tv } from "tailwind-variants";
|
|
3
|
-
import { _ as _sfc_main$1 } from "./LpContextMenu-
|
|
3
|
+
import { _ as _sfc_main$1 } from "./LpContextMenu-B6WBLleS.js";
|
|
4
4
|
const __default__ = { inheritAttrs: false };
|
|
5
5
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
6
6
|
...__default__,
|
|
@@ -3,7 +3,7 @@ import { Motion } from "motion-v";
|
|
|
3
3
|
import { usePillTransition } from "../composables/usePillTransition.js";
|
|
4
4
|
import { useReveal } from "../composables/useReveal.js";
|
|
5
5
|
import { normalise, pointCount, resolveLabels, extent, axisTicks, niceScale, yAt, plotWidth, xAt, areaPath, linePath, barPath, plotHeight, nearestIndex, formatTick } from "../components/chart.js";
|
|
6
|
-
import { _ as _sfc_main$1 } from "./LpContextMenu-
|
|
6
|
+
import { _ as _sfc_main$1 } from "./LpContextMenu-B6WBLleS.js";
|
|
7
7
|
import { _ as _sfc_main$2 } from "./LpIcon-CCnX5_2j.js";
|
|
8
8
|
import { _ as _sfc_main$3 } from "./LpShift-DXNsauQZ.js";
|
|
9
9
|
const _hoisted_1 = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, computed, renderSlot, openBlock, createBlock, unref, withCtx, createVNode, normalizeClass, createElementBlock, Fragment, renderList, createCommentVNode, createElementVNode, createTextVNode, toDisplayString } from "vue";
|
|
1
|
+
import { defineComponent, computed, renderSlot, openBlock, createBlock, unref, withCtx, createVNode, normalizeClass, createElementBlock, Fragment, renderList, createCommentVNode, createElementVNode, createTextVNode, toDisplayString, withModifiers } from "vue";
|
|
2
2
|
import { ContextMenuRoot, ContextMenuTrigger, ContextMenuPortal, ContextMenuContent, ContextMenuSeparator, ContextMenuSub, ContextMenuSubTrigger, ContextMenuSubContent, ContextMenuItem } from "reka-ui";
|
|
3
3
|
import { POPOVER_PANEL } from "../components/dropdown.js";
|
|
4
4
|
import { _ as _sfc_main$1 } from "./LpIcon-CCnX5_2j.js";
|
|
@@ -13,6 +13,16 @@ const _hoisted_5 = {
|
|
|
13
13
|
key: 0,
|
|
14
14
|
class: "text-xs text-muted"
|
|
15
15
|
};
|
|
16
|
+
const _hoisted_6 = { class: "flex items-center gap-2" };
|
|
17
|
+
const _hoisted_7 = {
|
|
18
|
+
key: 0,
|
|
19
|
+
class: "text-xs text-muted"
|
|
20
|
+
};
|
|
21
|
+
const _hoisted_8 = { class: "flex items-center gap-2" };
|
|
22
|
+
const _hoisted_9 = {
|
|
23
|
+
key: 0,
|
|
24
|
+
class: "text-xs text-muted"
|
|
25
|
+
};
|
|
16
26
|
const ITEM = "group/item flex cursor-pointer select-none items-center gap-2 rounded-md px-2.5 py-1.5 text-sm outline-none transition-[background-color,color] duration-[var(--duration-fast)] data-[disabled]:pointer-events-none data-[disabled]:opacity-45 data-[highlighted]:bg-brand-soft";
|
|
17
27
|
const ICON = "transition-transform duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] group-data-[highlighted]/item:translate-x-0.5";
|
|
18
28
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -83,13 +93,32 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
83
93
|
key: 0,
|
|
84
94
|
class: "my-1 h-px bg-line"
|
|
85
95
|
})) : createCommentVNode("", true),
|
|
86
|
-
|
|
96
|
+
sub.checked !== void 0 ? (openBlock(), createBlock(unref(ContextMenuItem), {
|
|
97
|
+
key: 1,
|
|
98
|
+
class: normalizeClass([ITEM, "justify-between text-ink data-[highlighted]:text-brand"]),
|
|
99
|
+
disabled: sub.disabled,
|
|
100
|
+
onSelect: withModifiers(($event) => sub.onSelect?.(), ["prevent"])
|
|
101
|
+
}, {
|
|
102
|
+
default: withCtx(() => [
|
|
103
|
+
createElementVNode("span", _hoisted_2, [
|
|
104
|
+
createVNode(_sfc_main$1, {
|
|
105
|
+
name: sub.checked ? "lucide:check" : "lucide:minus",
|
|
106
|
+
size: 15,
|
|
107
|
+
class: normalizeClass([ICON, sub.checked ? "" : "opacity-25"])
|
|
108
|
+
}, null, 8, ["name", "class"]),
|
|
109
|
+
createTextVNode(" " + toDisplayString(sub.label), 1)
|
|
110
|
+
]),
|
|
111
|
+
sub.shortcut ? (openBlock(), createElementBlock("kbd", _hoisted_3, toDisplayString(sub.shortcut), 1)) : createCommentVNode("", true)
|
|
112
|
+
]),
|
|
113
|
+
_: 2
|
|
114
|
+
}, 1032, ["class", "disabled", "onSelect"])) : (openBlock(), createBlock(unref(ContextMenuItem), {
|
|
115
|
+
key: 2,
|
|
87
116
|
class: normalizeClass([ITEM, "justify-between", sub.danger ? "text-danger data-[highlighted]:bg-danger-soft data-[highlighted]:text-danger" : "text-ink data-[highlighted]:text-brand"]),
|
|
88
117
|
disabled: sub.disabled,
|
|
89
118
|
onSelect: ($event) => sub.onSelect?.()
|
|
90
119
|
}, {
|
|
91
120
|
default: withCtx(() => [
|
|
92
|
-
createElementVNode("span",
|
|
121
|
+
createElementVNode("span", _hoisted_4, [
|
|
93
122
|
sub.icon ? (openBlock(), createBlock(_sfc_main$1, {
|
|
94
123
|
key: 0,
|
|
95
124
|
name: sub.icon,
|
|
@@ -98,10 +127,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
98
127
|
}, null, 8, ["name"])) : createCommentVNode("", true),
|
|
99
128
|
createTextVNode(" " + toDisplayString(sub.label), 1)
|
|
100
129
|
]),
|
|
101
|
-
sub.shortcut ? (openBlock(), createElementBlock("kbd",
|
|
130
|
+
sub.shortcut ? (openBlock(), createElementBlock("kbd", _hoisted_5, toDisplayString(sub.shortcut), 1)) : createCommentVNode("", true)
|
|
102
131
|
]),
|
|
103
132
|
_: 2
|
|
104
|
-
}, 1032, ["class", "disabled", "onSelect"])
|
|
133
|
+
}, 1032, ["class", "disabled", "onSelect"]))
|
|
105
134
|
], 64);
|
|
106
135
|
}), 128))
|
|
107
136
|
]),
|
|
@@ -112,14 +141,32 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
112
141
|
}, 1024)
|
|
113
142
|
]),
|
|
114
143
|
_: 2
|
|
115
|
-
}, 1024)) : (openBlock(), createBlock(unref(ContextMenuItem), {
|
|
144
|
+
}, 1024)) : item.checked !== void 0 ? (openBlock(), createBlock(unref(ContextMenuItem), {
|
|
116
145
|
key: 2,
|
|
146
|
+
class: normalizeClass([ITEM, "justify-between text-ink data-[highlighted]:text-brand"]),
|
|
147
|
+
disabled: item.disabled,
|
|
148
|
+
onSelect: withModifiers(($event) => item.onSelect?.(), ["prevent"])
|
|
149
|
+
}, {
|
|
150
|
+
default: withCtx(() => [
|
|
151
|
+
createElementVNode("span", _hoisted_6, [
|
|
152
|
+
createVNode(_sfc_main$1, {
|
|
153
|
+
name: item.checked ? "lucide:check" : "lucide:minus",
|
|
154
|
+
size: 15,
|
|
155
|
+
class: normalizeClass([ICON, item.checked ? "" : "opacity-25"])
|
|
156
|
+
}, null, 8, ["name", "class"]),
|
|
157
|
+
createTextVNode(" " + toDisplayString(item.label), 1)
|
|
158
|
+
]),
|
|
159
|
+
item.shortcut ? (openBlock(), createElementBlock("kbd", _hoisted_7, toDisplayString(item.shortcut), 1)) : createCommentVNode("", true)
|
|
160
|
+
]),
|
|
161
|
+
_: 2
|
|
162
|
+
}, 1032, ["class", "disabled", "onSelect"])) : (openBlock(), createBlock(unref(ContextMenuItem), {
|
|
163
|
+
key: 3,
|
|
117
164
|
class: normalizeClass([ITEM, "justify-between", item.danger ? "text-danger data-[highlighted]:bg-danger-soft data-[highlighted]:text-danger" : "text-ink data-[highlighted]:text-brand"]),
|
|
118
165
|
disabled: item.disabled,
|
|
119
166
|
onSelect: ($event) => item.onSelect?.()
|
|
120
167
|
}, {
|
|
121
168
|
default: withCtx(() => [
|
|
122
|
-
createElementVNode("span",
|
|
169
|
+
createElementVNode("span", _hoisted_8, [
|
|
123
170
|
item.icon ? (openBlock(), createBlock(_sfc_main$1, {
|
|
124
171
|
key: 0,
|
|
125
172
|
name: item.icon,
|
|
@@ -128,7 +175,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
128
175
|
}, null, 8, ["name"])) : createCommentVNode("", true),
|
|
129
176
|
createTextVNode(" " + toDisplayString(item.label), 1)
|
|
130
177
|
]),
|
|
131
|
-
item.shortcut ? (openBlock(), createElementBlock("kbd",
|
|
178
|
+
item.shortcut ? (openBlock(), createElementBlock("kbd", _hoisted_9, toDisplayString(item.shortcut), 1)) : createCommentVNode("", true)
|
|
132
179
|
]),
|
|
133
180
|
_: 2
|
|
134
181
|
}, 1032, ["class", "disabled", "onSelect"]))
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, ref, watch, computed, openBlock, createElementBlock, Fragment, renderList, normalizeStyle, createBlock, createVNode, withCtx, createElementVNode, renderSlot, mergeProps, normalizeProps, guardReactiveProps, createTextVNode, toDisplayString, createCommentVNode } from "vue";
|
|
2
2
|
import { computeStats, formatSize, sortNodes, subtreeIds, ancestorIds } from "../components/fileTree.js";
|
|
3
3
|
import { _ as _sfc_main$1 } from "./LpEmptyState-BV3q7Qyi.js";
|
|
4
|
-
import { _ as _sfc_main$3 } from "./LpFileTreeNode-
|
|
4
|
+
import { _ as _sfc_main$3 } from "./LpFileTreeNode-COchUMNn.js";
|
|
5
5
|
import { _ as _sfc_main$2 } from "./LpScrollArea-D8xyKXcF.js";
|
|
6
6
|
const _hoisted_1 = {
|
|
7
7
|
key: 0,
|
|
@@ -2,7 +2,7 @@ import { defineComponent, computed, resolveComponent, openBlock, createElementBl
|
|
|
2
2
|
import { prefersReducedMotion, easingToken } from "../composables/easing.js";
|
|
3
3
|
import { sortNodes, formatSize, formatModified, fileIcon } from "../components/fileTree.js";
|
|
4
4
|
import { _ as _sfc_main$3 } from "./LpCheckbox-BO0zuuPh.js";
|
|
5
|
-
import { _ as _sfc_main$1 } from "./LpContextMenu-
|
|
5
|
+
import { _ as _sfc_main$1 } from "./LpContextMenu-B6WBLleS.js";
|
|
6
6
|
import { _ as _sfc_main$2 } from "./LpIcon-CCnX5_2j.js";
|
|
7
7
|
const _hoisted_1 = ["aria-level", "aria-selected", "aria-expanded", "aria-disabled"];
|
|
8
8
|
const _hoisted_2 = ["data-node-id", "tabindex"];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, ref, shallowRef, computed, onMounted, onBeforeUnmount, watch, nextTick, openBlock, createElementBlock, normalizeClass, createVNode, Transition, withCtx, toDisplayString, createCommentVNode, normalizeStyle, createElementVNode, Fragment, createBlock, resolveDynamicComponent, TransitionGroup, mergeProps, renderList, createTextVNode } from "vue";
|
|
2
2
|
import { prefersReducedMotion } from "../composables/easing.js";
|
|
3
3
|
import { useHotkeys } from "../composables/useHotkeys.js";
|
|
4
|
-
import { _ as _sfc_main$3 } from "./LpContextMenu-
|
|
4
|
+
import { _ as _sfc_main$3 } from "./LpContextMenu-B6WBLleS.js";
|
|
5
5
|
import { _ as _sfc_main$2 } from "./LpIcon-CCnX5_2j.js";
|
|
6
6
|
import { _ as _sfc_main$1 } from "./LpScrollArea-D8xyKXcF.js";
|
|
7
7
|
const _hoisted_1 = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, computed, useModel, getCurrentInstance, openBlock, createBlock, withCtx, createElementVNode, toDisplayString, createElementBlock, createCommentVNode, createVNode, Fragment, renderList, resolveDynamicComponent, normalizeClass, createTextVNode, mergeModels } from "vue";
|
|
2
2
|
import { _ as _sfc_main$8 } from "./LpBadge-BPodVcJa.js";
|
|
3
3
|
import { _ as _sfc_main$7 } from "./LpButton-5VXXCjwF.js";
|
|
4
|
-
import { _ as _sfc_main$5 } from "./LpContextMenu-
|
|
4
|
+
import { _ as _sfc_main$5 } from "./LpContextMenu-B6WBLleS.js";
|
|
5
5
|
import { _ as _sfc_main$3 } from "./LpEmptyState-BV3q7Qyi.js";
|
|
6
6
|
import { _ as _sfc_main$6 } from "./LpIcon-CCnX5_2j.js";
|
|
7
7
|
import { _ as _sfc_main$1 } from "./LpPopover-8268UmlC.js";
|
|
@@ -2,7 +2,7 @@ import { defineComponent, computed, ref, watch, onBeforeUnmount, openBlock, crea
|
|
|
2
2
|
import { prefersReducedMotion, easeTravel } from "../composables/easing.js";
|
|
3
3
|
import { useReveal } from "../composables/useReveal.js";
|
|
4
4
|
import { resolveSlices, arcPath, calloutLabels, formatTick } from "../components/chart.js";
|
|
5
|
-
import { _ as _sfc_main$2 } from "./LpContextMenu-
|
|
5
|
+
import { _ as _sfc_main$2 } from "./LpContextMenu-B6WBLleS.js";
|
|
6
6
|
import { _ as _sfc_main$1 } from "./LpIcon-CCnX5_2j.js";
|
|
7
7
|
import { _ as _sfc_main$4 } from "./LpNumberFlow-amWYaeuA.js";
|
|
8
8
|
import { _ as _sfc_main$5 } from "./LpRollingText-CM5gkSeF.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent, computed, ref, useId, openBlock, createElementBlock, Fragment, createElementVNode, mergeProps, normalizeClass, renderSlot, createCommentVNode, createVNode, createSlots, withCtx, normalizeProps, guardReactiveProps, createBlock } from "vue";
|
|
2
2
|
import { _ as _sfc_main$2 } from "./LpDrawer-DAJN5rGK.js";
|
|
3
|
-
import { _ as _sfc_main$1 } from "./LpSidebarNav-
|
|
3
|
+
import { _ as _sfc_main$1 } from "./LpSidebarNav-D6v12-36.js";
|
|
4
4
|
const _hoisted_1 = {
|
|
5
5
|
key: 1,
|
|
6
6
|
class: "mt-2 flex shrink-0 flex-col gap-2"
|
|
@@ -3,7 +3,7 @@ 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-BPodVcJa.js";
|
|
6
|
-
import { _ as _sfc_main$4 } from "./LpContextMenu-
|
|
6
|
+
import { _ as _sfc_main$4 } from "./LpContextMenu-B6WBLleS.js";
|
|
7
7
|
import { _ as _sfc_main$2 } from "./LpIcon-CCnX5_2j.js";
|
|
8
8
|
import { _ as _sfc_main$1 } from "./LpScrollArea-D8xyKXcF.js";
|
|
9
9
|
const _hoisted_1 = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { computed, readonly, shallowRef, defineComponent, onMounted, ref, openBlock, createBlock, withCtx, createElementVNode, normalizeClass, createElementBlock, normalizeStyle, createVNode, toDisplayString, createCommentVNode } from "vue";
|
|
2
2
|
import { prefersReducedMotion, easingToken } from "../composables/easing.js";
|
|
3
|
-
import { _ as _sfc_main$1 } from "./LpContextMenu-
|
|
3
|
+
import { _ as _sfc_main$1 } from "./LpContextMenu-B6WBLleS.js";
|
|
4
4
|
import { _ as _sfc_main$2 } from "./LpIcon-CCnX5_2j.js";
|
|
5
5
|
const sharedShape = { radiusControl: 8, radiusCard: 14, radiusPill: 9999 };
|
|
6
6
|
const sharedDensity = { spacingUnit: 4, controlSm: 32, controlMd: 38, controlLg: 44 };
|
|
@@ -9,6 +9,13 @@ export interface ContextMenuItemDef {
|
|
|
9
9
|
onSelect?: () => void;
|
|
10
10
|
/** Nested submenu. When present, onSelect is ignored. */
|
|
11
11
|
children?: ContextMenuItemDef[];
|
|
12
|
+
/**
|
|
13
|
+
* Renders as a tick-box rather than a plain item, and the menu stays open on
|
|
14
|
+
* select. For the lists where the point is to set several at once — which
|
|
15
|
+
* columns to show, which values to filter by — and closing after each one
|
|
16
|
+
* would mean reopening the menu for every tick.
|
|
17
|
+
*/
|
|
18
|
+
checked?: boolean;
|
|
12
19
|
}
|
|
13
20
|
type __VLS_Props = {
|
|
14
21
|
items: ContextMenuItemDef[];
|
|
@@ -6,6 +6,21 @@ export interface TableColumn<Row> {
|
|
|
6
6
|
width?: string;
|
|
7
7
|
/** Allow clicking the header to sort by this column. */
|
|
8
8
|
sortable?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Offer "show only these values" in the header's menu, built from the values
|
|
11
|
+
* actually present in the rows. For a column that holds a small vocabulary —
|
|
12
|
+
* a type, a state, a site — where the question is "just the mains leads,
|
|
13
|
+
* please". Pointless on a column of unique values, so it is opt-in.
|
|
14
|
+
*/
|
|
15
|
+
filterable?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* How a raw cell value reads in that filter list. `power_ac` is the stored
|
|
18
|
+
* vocabulary; the menu should say what the column itself says.
|
|
19
|
+
*/
|
|
20
|
+
valueLabel?: (value: unknown) => string;
|
|
21
|
+
/** Keep this column out of the show/hide list — an actions column has no
|
|
22
|
+
* name to offer and nothing to gain from being hidden. */
|
|
23
|
+
alwaysVisible?: boolean;
|
|
9
24
|
}
|
|
10
25
|
export interface SortState {
|
|
11
26
|
key: string;
|
|
@@ -36,6 +51,10 @@ declare const __VLS_export: <T extends Record<string, unknown>>(__VLS_props: Non
|
|
|
36
51
|
sortAscLabel?: string;
|
|
37
52
|
sortDescLabel?: string;
|
|
38
53
|
sortClearLabel?: string;
|
|
54
|
+
/** Wording for the value filter and the column chooser. */
|
|
55
|
+
filterLabel?: string;
|
|
56
|
+
showAllLabel?: string;
|
|
57
|
+
columnsLabel?: string;
|
|
39
58
|
} & {
|
|
40
59
|
"onUpdate:selected"?: ((value: (string | number)[]) => any) | undefined;
|
|
41
60
|
"onUpdate:sort"?: ((value: SortState | null) => any) | undefined;
|