@leavepulse/ui 0.33.1 → 0.35.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-CEY-pajO.css → LpCommandPalette-BERCHiev.css} +4 -4
- package/dist/assets/{LpTable-Ckoi05Am.css → LpTable-DfSwPCJ-.css} +21 -8
- package/dist/chunks/LpModalNav-B7W9VAne.js +142 -0
- package/dist/component-names.d.ts +1 -1
- package/dist/components/LpCommandPalette.vue.d.ts +62 -0
- package/dist/components/LpCommandPalette.vue.js +237 -56
- package/dist/components/LpModalNav.vue.d.ts +74 -0
- package/dist/components/LpModalNav.vue.js +4 -0
- package/dist/components/LpTable.vue.js +7 -4
- package/dist/index.d.ts +2 -1
- package/dist/index.js +72 -70
- package/package.json +1 -1
- package/src/component-names.ts +1 -0
- package/src/components/LpCommandPalette.vue +369 -21
- package/src/components/LpModalNav.vue +177 -0
- package/src/components/LpTable.vue +22 -2
- package/src/index.ts +2 -1
|
@@ -451,7 +451,14 @@ const barInsetTop = computed(() =>
|
|
|
451
451
|
this is the fallback rather than a competitor. -->
|
|
452
452
|
<LpContextMenu :items="contextMenu" always>
|
|
453
453
|
<table class="w-full border-collapse text-sm">
|
|
454
|
-
|
|
454
|
+
<!-- The background belongs on `thead` itself, not only on its row:
|
|
455
|
+
`border-collapse` collapses the borders, and with a sticky header the
|
|
456
|
+
rows show through that seam — a band of body text rides across the
|
|
457
|
+
header on every scroll. -->
|
|
458
|
+
<thead
|
|
459
|
+
ref="headEl"
|
|
460
|
+
:class="stickyHeader ? 'sticky top-0 z-10 bg-surface-soft' : ''"
|
|
461
|
+
>
|
|
455
462
|
<tr class="border-b border-line bg-surface-soft">
|
|
456
463
|
<th v-if="selectable" class="w-px px-4 py-3">
|
|
457
464
|
<LpCheckbox
|
|
@@ -522,7 +529,7 @@ const barInsetTop = computed(() =>
|
|
|
522
529
|
name="lp-row"
|
|
523
530
|
:ref="(el: unknown) => roving.setContainer((el as { $el?: HTMLElement })?.$el ?? null)"
|
|
524
531
|
>
|
|
525
|
-
<tr v-if="displayRows.length === 0" key="lp-table-empty">
|
|
532
|
+
<tr v-if="displayRows.length === 0" key="lp-table-empty" class="lp-row-empty">
|
|
526
533
|
<td :colspan="colSpan" class="px-4 py-10 text-center text-muted">
|
|
527
534
|
<LpIcon :name="emptyIcon" :size="22" class="mx-auto mb-2 opacity-60" />
|
|
528
535
|
<div>{{ emptyLabel }}</div>
|
|
@@ -594,6 +601,19 @@ const barInsetTop = computed(() =>
|
|
|
594
601
|
transform: translateX(-0.5rem);
|
|
595
602
|
}
|
|
596
603
|
|
|
604
|
+
/*
|
|
605
|
+
* The empty-state row leaves at once, without the fade. It and the first real
|
|
606
|
+
* rows would otherwise share the table for the length of the animation, and a
|
|
607
|
+
* row of blank height sits above them — the table jumps once on every load.
|
|
608
|
+
*
|
|
609
|
+
* `position: absolute` is what a list would use here, but a positioned `<tr>`
|
|
610
|
+
* drops out of the table layout entirely. Nothing sits below this row to be
|
|
611
|
+
* dragged around, so simply not animating its exit costs nothing.
|
|
612
|
+
*/
|
|
613
|
+
.lp-row-empty.lp-row-leave-active {
|
|
614
|
+
display: none;
|
|
615
|
+
}
|
|
616
|
+
|
|
597
617
|
/*
|
|
598
618
|
* The leaving row stays in the flow. Taking it out with `position: absolute` is
|
|
599
619
|
* the usual trick for a list, but a `<tr>` positioned that way loses the table's
|
package/src/index.ts
CHANGED
|
@@ -64,7 +64,7 @@ export {
|
|
|
64
64
|
} from "./components/color"
|
|
65
65
|
export type { ColorFormat, Hsv, Rgb } from "./components/color"
|
|
66
66
|
export { default as LpCommandPalette } from "./components/LpCommandPalette.vue"
|
|
67
|
-
export type { Command } from "./components/LpCommandPalette.vue"
|
|
67
|
+
export type { Command, PaletteLabels } from "./components/LpCommandPalette.vue"
|
|
68
68
|
export { default as LpConfirmDialog } from "./components/LpConfirmDialog.vue"
|
|
69
69
|
export { default as LpContextMenu } from "./components/LpContextMenu.vue"
|
|
70
70
|
export type { ContextMenuItemDef } from "./components/LpContextMenu.vue"
|
|
@@ -105,6 +105,7 @@ export { default as LpLogViewer } from "./components/LpLogViewer.vue"
|
|
|
105
105
|
export type { LogLevel, LogLine } from "./components/LpLogViewer.vue"
|
|
106
106
|
export { default as LpMediaGallery } from "./components/LpMediaGallery.vue"
|
|
107
107
|
export { default as LpModal } from "./components/LpModal.vue"
|
|
108
|
+
export { default as LpModalNav } from "./components/LpModalNav.vue"
|
|
108
109
|
export { default as LpNotificationBell } from "./components/LpNotificationBell.vue"
|
|
109
110
|
export type {
|
|
110
111
|
NotificationItem,
|