@leavepulse/ui 0.87.0 → 0.87.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-2dac799f],
15
- .lp-row-leave-active[data-v-2dac799f] {
14
+ .lp-row-enter-active[data-v-c73bcf2c],
15
+ .lp-row-leave-active[data-v-c73bcf2c] {
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-2dac799f] {
20
+ .lp-row-move[data-v-c73bcf2c] {
21
21
  transition: transform var(--duration-medium) var(--ease-emphasized);
22
22
  }
23
- .lp-row-enter-from[data-v-2dac799f],
24
- .lp-row-leave-to[data-v-2dac799f] {
23
+ .lp-row-enter-from[data-v-c73bcf2c],
24
+ .lp-row-leave-to[data-v-c73bcf2c] {
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-2dac799f] {
38
+ .lp-row-empty.lp-row-leave-active[data-v-c73bcf2c] {
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-2dac799f] {
57
+ .lp-tick[data-v-c73bcf2c] {
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-2dac799f] {
69
+ .lp-tick-open[data-v-c73bcf2c] {
70
70
  max-width: 3.25rem;
71
71
  padding-inline: 1rem;
72
72
  opacity: 1;
73
73
  }
74
- .lp-tick-hidden[data-v-2dac799f],
75
- .lp-tick-cue[data-v-2dac799f] {
74
+ .lp-tick-hidden[data-v-c73bcf2c],
75
+ .lp-tick-cue[data-v-c73bcf2c] {
76
76
  opacity: 0;
77
77
  }
78
- tr:hover .lp-tick-cue[data-v-2dac799f],
79
- .lp-tick-cue[data-v-2dac799f]:focus-within {
78
+ tr:hover .lp-tick-cue[data-v-c73bcf2c],
79
+ .lp-tick-cue[data-v-c73bcf2c]:focus-within {
80
80
  opacity: 1;
81
81
  }
82
82
 
@@ -84,15 +84,15 @@ tr:hover .lp-tick-cue[data-v-2dac799f],
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-2dac799f] {
87
+ tr:hover .lp-tick-cue[data-v-c73bcf2c] {
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-2dac799f],
95
- .lp-tick-cue[data-v-2dac799f] {
94
+ .lp-tick-hidden[data-v-c73bcf2c],
95
+ .lp-tick-cue[data-v-c73bcf2c] {
96
96
  max-width: 0;
97
97
  padding-inline: 0;
98
98
  }
@@ -102,7 +102,7 @@ tr:hover .lp-tick-cue[data-v-2dac799f] {
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-2dac799f] {
105
+ .lp-tick-line[data-v-c73bcf2c] {
106
106
  max-width: 2rem;
107
107
  opacity: 1;
108
108
  }
@@ -112,28 +112,28 @@ tr:hover .lp-tick-cue[data-v-2dac799f] {
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-2dac799f] {
115
+ .lp-tick-card[data-v-c73bcf2c] {
116
116
  max-width: none;
117
117
  padding-inline: 0;
118
118
  opacity: 1;
119
119
  }
120
- .lp-tick[data-cue][data-v-2dac799f] {
120
+ .lp-tick[data-cue][data-v-c73bcf2c] {
121
121
  opacity: 0;
122
122
  }
123
- .lp-item:hover .lp-tick[data-cue][data-v-2dac799f],
124
- .lp-tick[data-cue][data-v-2dac799f]:focus-within {
123
+ .lp-item:hover .lp-tick[data-cue][data-v-c73bcf2c],
124
+ .lp-tick[data-cue][data-v-c73bcf2c]:focus-within {
125
125
  opacity: 1;
126
126
  }
127
127
  @media (hover: none) {
128
- .lp-item:hover .lp-tick[data-cue][data-v-2dac799f] {
128
+ .lp-item:hover .lp-tick[data-cue][data-v-c73bcf2c] {
129
129
  opacity: 0;
130
130
  }
131
131
  }
132
132
  @media (prefers-reduced-motion: reduce) {
133
- .lp-row-enter-active[data-v-2dac799f],
134
- .lp-row-leave-active[data-v-2dac799f],
135
- .lp-row-move[data-v-2dac799f],
136
- .lp-tick[data-v-2dac799f] {
133
+ .lp-row-enter-active[data-v-c73bcf2c],
134
+ .lp-row-leave-active[data-v-c73bcf2c],
135
+ .lp-row-move[data-v-c73bcf2c],
136
+ .lp-tick[data-v-c73bcf2c] {
137
137
  transition: none;
138
138
  }
139
139
  }
@@ -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-ClBFQeTd.css';const _hoisted_1 = {
37
+ import '../assets/LpTable-BqZNpWgC.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
  };
@@ -874,7 +874,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
874
874
  const activeLayout = computed(
875
875
  () => chosenLayout.value === "table" && props.layoutBelow && frameWidth.value < props.layoutBelow ? "list" : chosenLayout.value
876
876
  );
877
- const layoutChoices = computed(() => props.layouts && props.layouts.length > 1 ? props.layouts : []);
877
+ const forcedList = computed(() => chosenLayout.value === "table" && activeLayout.value === "list");
878
+ const layoutChoices = computed(
879
+ () => props.layouts && props.layouts.length > 1 && !forcedList.value ? props.layouts : []
880
+ );
878
881
  const LAYOUT_ICONS = {
879
882
  table: "lucide:table-2",
880
883
  cards: "lucide:layout-grid",
@@ -1877,7 +1880,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1877
1880
  };
1878
1881
  }
1879
1882
  });
1880
- const LpTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2dac799f"]]);
1883
+ const LpTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c73bcf2c"]]);
1881
1884
  export {
1882
1885
  LpTable as default
1883
1886
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leavepulse/ui",
3
- "version": "0.87.0",
3
+ "version": "0.87.1",
4
4
  "type": "module",
5
5
  "description": "LeavePulse token-driven Vue component kit.",
6
6
  "repository": {
@@ -1473,7 +1473,12 @@ const activeLayout = computed<TableLayout>(() =>
1473
1473
  ? "list"
1474
1474
  : chosenLayout.value,
1475
1475
  )
1476
- const layoutChoices = computed(() => (props.layouts && props.layouts.length > 1 ? props.layouts : []))
1476
+ // While the width forces a list the switch would change nothing on screen, so
1477
+ // it steps aside until there is room for the choice again.
1478
+ const forcedList = computed(() => chosenLayout.value === "table" && activeLayout.value === "list")
1479
+ const layoutChoices = computed(() =>
1480
+ props.layouts && props.layouts.length > 1 && !forcedList.value ? props.layouts : [],
1481
+ )
1477
1482
  const LAYOUT_ICONS: Record<TableLayout, string> = {
1478
1483
  table: "lucide:table-2",
1479
1484
  cards: "lucide:layout-grid",