@leavepulse/ui 0.88.0 → 0.89.1
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.
|
@@ -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-f0750892],
|
|
15
|
+
.lp-row-leave-active[data-v-f0750892] {
|
|
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-f0750892] {
|
|
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-f0750892],
|
|
24
|
+
.lp-row-leave-to[data-v-f0750892] {
|
|
25
25
|
opacity: 0;
|
|
26
26
|
transform: translateX(-0.5rem);
|
|
27
27
|
}
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
* drops out of the table layout entirely. Nothing sits below this row to be
|
|
36
36
|
* dragged around, so simply not animating its exit costs nothing.
|
|
37
37
|
*/
|
|
38
|
-
.lp-row-empty.lp-row-leave-active[data-v-
|
|
38
|
+
.lp-row-empty.lp-row-leave-active[data-v-f0750892] {
|
|
39
39
|
display: none;
|
|
40
40
|
}
|
|
41
41
|
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
* once anything is selected. An earlier version collapsed the column to nothing
|
|
55
55
|
* and floated the hover box over the first cell, where it sat on the text.
|
|
56
56
|
*/
|
|
57
|
-
.lp-tick[data-v-
|
|
57
|
+
.lp-tick[data-v-f0750892] {
|
|
58
58
|
display: flex;
|
|
59
59
|
align-items: center;
|
|
60
60
|
max-width: 0;
|
|
@@ -66,17 +66,17 @@
|
|
|
66
66
|
padding var(--duration-medium) var(--ease-emphasized),
|
|
67
67
|
opacity var(--duration-fast) ease;
|
|
68
68
|
}
|
|
69
|
-
.lp-tick-open[data-v-
|
|
69
|
+
.lp-tick-open[data-v-f0750892] {
|
|
70
70
|
max-width: 3.25rem;
|
|
71
71
|
padding-inline: 1rem;
|
|
72
72
|
opacity: 1;
|
|
73
73
|
}
|
|
74
|
-
.lp-tick-hidden[data-v-
|
|
75
|
-
.lp-tick-cue[data-v-
|
|
74
|
+
.lp-tick-hidden[data-v-f0750892],
|
|
75
|
+
.lp-tick-cue[data-v-f0750892] {
|
|
76
76
|
opacity: 0;
|
|
77
77
|
}
|
|
78
|
-
tr:hover .lp-tick-cue[data-v-
|
|
79
|
-
.lp-tick-cue[data-v-
|
|
78
|
+
tr:hover .lp-tick-cue[data-v-f0750892],
|
|
79
|
+
.lp-tick-cue[data-v-f0750892]:focus-within {
|
|
80
80
|
opacity: 1;
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -84,15 +84,15 @@ tr:hover .lp-tick-cue[data-v-c73bcf2c],
|
|
|
84
84
|
turned down the rows change without animating rather than not changing. */
|
|
85
85
|
/* Only where there is a hover to reveal it; a finger long-presses instead. */
|
|
86
86
|
@media (hover: none) {
|
|
87
|
-
tr:hover .lp-tick-cue[data-v-
|
|
87
|
+
tr:hover .lp-tick-cue[data-v-f0750892] {
|
|
88
88
|
opacity: 0;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
/* Nor is there anything for the column's width to hold until then: on a
|
|
92
92
|
touch screen it stays closed until a long press starts selecting, and
|
|
93
93
|
eases open like the rest of the column. */
|
|
94
|
-
.lp-tick-hidden[data-v-
|
|
95
|
-
.lp-tick-cue[data-v-
|
|
94
|
+
.lp-tick-hidden[data-v-f0750892],
|
|
95
|
+
.lp-tick-cue[data-v-f0750892] {
|
|
96
96
|
max-width: 0;
|
|
97
97
|
padding-inline: 0;
|
|
98
98
|
}
|
|
@@ -102,7 +102,7 @@ tr:hover .lp-tick-cue[data-v-c73bcf2c] {
|
|
|
102
102
|
* A list line's tick opens from nothing, as the table's column does, so lines
|
|
103
103
|
* do not carry an empty gap until selection starts.
|
|
104
104
|
*/
|
|
105
|
-
.lp-tick-line[data-v-
|
|
105
|
+
.lp-tick-line[data-v-f0750892] {
|
|
106
106
|
max-width: 2rem;
|
|
107
107
|
opacity: 1;
|
|
108
108
|
}
|
|
@@ -112,28 +112,28 @@ tr:hover .lp-tick-cue[data-v-c73bcf2c] {
|
|
|
112
112
|
* open; a cue shows it only while
|
|
113
113
|
* the card is pointed at or holds focus, the same rule as a row's.
|
|
114
114
|
*/
|
|
115
|
-
.lp-tick-card[data-v-
|
|
115
|
+
.lp-tick-card[data-v-f0750892] {
|
|
116
116
|
max-width: none;
|
|
117
117
|
padding-inline: 0;
|
|
118
118
|
opacity: 1;
|
|
119
119
|
}
|
|
120
|
-
.lp-tick[data-cue][data-v-
|
|
120
|
+
.lp-tick[data-cue][data-v-f0750892] {
|
|
121
121
|
opacity: 0;
|
|
122
122
|
}
|
|
123
|
-
.lp-item:hover .lp-tick[data-cue][data-v-
|
|
124
|
-
.lp-tick[data-cue][data-v-
|
|
123
|
+
.lp-item:hover .lp-tick[data-cue][data-v-f0750892],
|
|
124
|
+
.lp-tick[data-cue][data-v-f0750892]:focus-within {
|
|
125
125
|
opacity: 1;
|
|
126
126
|
}
|
|
127
127
|
@media (hover: none) {
|
|
128
|
-
.lp-item:hover .lp-tick[data-cue][data-v-
|
|
128
|
+
.lp-item:hover .lp-tick[data-cue][data-v-f0750892] {
|
|
129
129
|
opacity: 0;
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
@media (prefers-reduced-motion: reduce) {
|
|
133
|
-
.lp-row-enter-active[data-v-
|
|
134
|
-
.lp-row-leave-active[data-v-
|
|
135
|
-
.lp-row-move[data-v-
|
|
136
|
-
.lp-tick[data-v-
|
|
133
|
+
.lp-row-enter-active[data-v-f0750892],
|
|
134
|
+
.lp-row-leave-active[data-v-f0750892],
|
|
135
|
+
.lp-row-move[data-v-f0750892],
|
|
136
|
+
.lp-tick[data-v-f0750892] {
|
|
137
137
|
transition: none;
|
|
138
138
|
}
|
|
139
139
|
}
|
|
@@ -472,6 +472,13 @@ declare const __VLS_export: <T extends Record<string, unknown>>(__VLS_props: Non
|
|
|
472
472
|
toggle: () => void;
|
|
473
473
|
openMenu: (event: Event) => void;
|
|
474
474
|
}) => any;
|
|
475
|
+
} & {
|
|
476
|
+
line?: (props: {
|
|
477
|
+
row: T;
|
|
478
|
+
selected: boolean;
|
|
479
|
+
toggle: () => void;
|
|
480
|
+
openMenu: (event: Event) => void;
|
|
481
|
+
}) => any;
|
|
475
482
|
};
|
|
476
483
|
emit: {
|
|
477
484
|
(e: "update:selected", value: (string | number)[]): void;
|
|
@@ -34,7 +34,7 @@ import { toCsv, downloadFile, fileStem } from "./exportData.js";
|
|
|
34
34
|
import { toHiddenSets, sameHidden, summarizeShown, parseTableState, mergeRestored, serializeTableState, fromHiddenSets } from "./tableFilter.js";
|
|
35
35
|
import { resolveRowMenu } from "./tableRowMenu.js";
|
|
36
36
|
import { _ as _export_sfc } from "../chunks/_plugin-vue_export-helper-1tPrXgE0.js";
|
|
37
|
-
import '../assets/LpTable-
|
|
37
|
+
import '../assets/LpTable-DAVNb-x2.css';const _hoisted_1 = {
|
|
38
38
|
key: 0,
|
|
39
39
|
class: "flex min-h-8 flex-wrap items-center gap-x-3 gap-y-2 pb-3 text-xs"
|
|
40
40
|
};
|
|
@@ -1825,36 +1825,43 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1825
1825
|
])) : createCommentVNode("", true)
|
|
1826
1826
|
])
|
|
1827
1827
|
], true) : (openBlock(), createElementBlock("div", _hoisted_43, [
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
key
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1828
|
+
renderSlot(_ctx.$slots, "line", {
|
|
1829
|
+
row: entry.row,
|
|
1830
|
+
selected: isSelected(keyFor(entry.row, entry.index)),
|
|
1831
|
+
toggle: () => toggleRow(keyFor(entry.row, entry.index), !isSelected(keyFor(entry.row, entry.index))),
|
|
1832
|
+
openMenu: openRowMenu
|
|
1833
|
+
}, () => [
|
|
1834
|
+
titleColumn.value ? (openBlock(), createElementBlock("div", _hoisted_44, [
|
|
1835
|
+
renderSlot(_ctx.$slots, `cell-${titleColumn.value.key}`, {
|
|
1836
|
+
row: entry.row,
|
|
1837
|
+
value: entry.row[titleColumn.value.key],
|
|
1838
|
+
openMenu: openRowMenu
|
|
1839
|
+
}, () => [
|
|
1840
|
+
createTextVNode(toDisplayString(entry.row[titleColumn.value.key]), 1)
|
|
1841
|
+
], true)
|
|
1842
|
+
])) : createCommentVNode("", true),
|
|
1843
|
+
fieldColumns.value.length ? (openBlock(), createElementBlock("div", _hoisted_45, [
|
|
1844
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(fieldColumns.value, (col, ci) => {
|
|
1845
|
+
return openBlock(), createElementBlock(Fragment, {
|
|
1846
|
+
key: col.key
|
|
1846
1847
|
}, [
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
},
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1848
|
+
ci > 0 ? (openBlock(), createElementBlock("span", _hoisted_46, "·")) : createCommentVNode("", true),
|
|
1849
|
+
createElementVNode("span", {
|
|
1850
|
+
class: "min-w-0 truncate",
|
|
1851
|
+
title: col.label
|
|
1852
|
+
}, [
|
|
1853
|
+
renderSlot(_ctx.$slots, `cell-${col.key}`, {
|
|
1854
|
+
row: entry.row,
|
|
1855
|
+
value: entry.row[col.key],
|
|
1856
|
+
openMenu: openRowMenu
|
|
1857
|
+
}, () => [
|
|
1858
|
+
createTextVNode(toDisplayString(entry.row[col.key]), 1)
|
|
1859
|
+
], true)
|
|
1860
|
+
], 8, _hoisted_47)
|
|
1861
|
+
], 64);
|
|
1862
|
+
}), 128))
|
|
1863
|
+
])) : createCommentVNode("", true)
|
|
1864
|
+
], true)
|
|
1858
1865
|
]))
|
|
1859
1866
|
], 16, _hoisted_35))
|
|
1860
1867
|
], 64);
|
|
@@ -1880,7 +1887,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1880
1887
|
};
|
|
1881
1888
|
}
|
|
1882
1889
|
});
|
|
1883
|
-
const LpTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
1890
|
+
const LpTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f0750892"]]);
|
|
1884
1891
|
export {
|
|
1885
1892
|
LpTable as default
|
|
1886
1893
|
};
|
package/package.json
CHANGED
|
@@ -2362,7 +2362,18 @@ usePaletteCommands(() => {
|
|
|
2362
2362
|
</dl>
|
|
2363
2363
|
</div>
|
|
2364
2364
|
</slot>
|
|
2365
|
+
<!-- `#line` is to a list line what `#card` is to a card: the inside
|
|
2366
|
+
only. Without it the line is built from the columns: the first
|
|
2367
|
+
names the row, the rest follow it in one muted line, which
|
|
2368
|
+
reads well for words and badly for meters or several badges. -->
|
|
2365
2369
|
<div v-else class="min-w-0 flex-1">
|
|
2370
|
+
<slot
|
|
2371
|
+
name="line"
|
|
2372
|
+
:row="entry.row"
|
|
2373
|
+
:selected="isSelected(keyFor(entry.row, entry.index))"
|
|
2374
|
+
:toggle="() => toggleRow(keyFor(entry.row, entry.index), !isSelected(keyFor(entry.row, entry.index)))"
|
|
2375
|
+
:open-menu="openRowMenu"
|
|
2376
|
+
>
|
|
2366
2377
|
<div v-if="titleColumn" class="min-w-0 truncate font-medium text-ink">
|
|
2367
2378
|
<slot :name="`cell-${titleColumn.key}`" :row="entry.row" :value="entry.row[titleColumn.key]" :open-menu="openRowMenu">{{ entry.row[titleColumn.key] }}</slot>
|
|
2368
2379
|
</div>
|
|
@@ -2374,7 +2385,8 @@ usePaletteCommands(() => {
|
|
|
2374
2385
|
</span>
|
|
2375
2386
|
</template>
|
|
2376
2387
|
</div>
|
|
2377
|
-
</
|
|
2388
|
+
</slot>
|
|
2389
|
+
</div>
|
|
2378
2390
|
</div>
|
|
2379
2391
|
</template>
|
|
2380
2392
|
</TransitionGroup>
|