vlite3 1.5.1 → 1.5.2

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.
Files changed (35) hide show
  1. package/components/CategoryManager/CategoryManager.vue2.js +3 -3
  2. package/components/Chart/GanttChart.vue.d.ts +92 -2
  3. package/components/Chart/GanttChart.vue.js +2 -2
  4. package/components/Chart/GanttChart.vue2.js +1028 -878
  5. package/components/Chart/GanttChartDateUtils.js +28 -24
  6. package/components/Chart/index.d.ts +1 -1
  7. package/components/Chart/types.d.ts +88 -1
  8. package/components/CommandPalette/CommandPaletteContent.vue2.js +1 -1
  9. package/components/CommandPalette/{CommandPaletteItem.vue.js → CommandPaletteItem.vue2.js} +1 -1
  10. package/components/DataTable/DataTable.vue.js +1 -1
  11. package/components/Form/{AccordionView.vue.js → AccordionView.vue2.js} +1 -1
  12. package/components/Form/index.vue2.js +1 -1
  13. package/components/Kanban/Kanban.vue.d.ts +6 -5
  14. package/components/Kanban/Kanban.vue.js +1 -1
  15. package/components/Kanban/Kanban.vue2.js +139 -118
  16. package/components/Kanban/groupKanbanData.d.ts +36 -0
  17. package/components/Kanban/groupKanbanData.js +72 -0
  18. package/components/Kanban/index.d.ts +1 -0
  19. package/components/Kanban/types.d.ts +17 -0
  20. package/components/NavbarCommandPalette.vue.js +1 -1
  21. package/components/PanZoomViewport/PanZoomViewport.vue.d.ts +1 -1
  22. package/components/RichTextEditor/RichTextEditor.vue.js +4 -4
  23. package/components/RichTextEditor/RichTextLinkPopover.vue3.js +2 -2
  24. package/components/RichTextEditor/RichTextToolbar.vue3.js +2 -2
  25. package/components/Screen/Screen.vue.js +80 -82
  26. package/components/Screen/ScreenFilter.vue.js +3 -3
  27. package/components/Screen/components/ScreenAddAction.vue.js +31 -31
  28. package/components/Screen/components/ScreenHeaderTitle.vue.js +1 -1
  29. package/components/Screen/components/ScreenToolbar.vue.d.ts +9 -0
  30. package/components/Screen/components/ScreenToolbar.vue.js +85 -52
  31. package/index.js +426 -421
  32. package/package.json +1 -1
  33. package/style.css +1 -1
  34. /package/components/RichTextEditor/{RichTextLinkPopover.vue2.js → RichTextLinkPopover.vue.js} +0 -0
  35. /package/components/RichTextEditor/{RichTextToolbar.vue2.js → RichTextToolbar.vue.js} +0 -0
@@ -0,0 +1,36 @@
1
+ import { KanbanColumn } from './types';
2
+ /** Sentinel column id used when a group value is null/blank and no `emptyColumnId` is provided. */
3
+ export declare const KANBAN_EMPTY_GROUP_KEY = "__kanban_empty__";
4
+ /** Sentinel column id used when a group value is unmatched and orphans are collapsed. */
5
+ export declare const KANBAN_UNMAPPED_GROUP_KEY = "__kanban_unmapped__";
6
+ export interface GroupKanbanRawDataOptions {
7
+ /** Column id that receives null / blank group values. */
8
+ emptyColumnId?: string | number;
9
+ /** Column id that receives values that do not match any configured column. */
10
+ unmappedColumnId?: string | number;
11
+ /**
12
+ * When true (default), append columns for orphan group keys so cards never
13
+ * disappear from the board when `unmappedColumnId` is not provided.
14
+ */
15
+ includeOrphanColumns?: boolean;
16
+ emptyColumnTitle?: string;
17
+ unmappedColumnTitle?: string;
18
+ }
19
+ export interface GroupKanbanRawDataResult {
20
+ grouped: Record<string, any[]>;
21
+ columns: KanbanColumn[];
22
+ }
23
+ /**
24
+ * One consistent resolver for column ids and item group values.
25
+ * Trims strings and maps null/undefined to `''`.
26
+ */
27
+ export declare function resolveKanbanGroupKey(value: unknown): string;
28
+ /**
29
+ * Group a flat `rawData` array into column buckets.
30
+ *
31
+ * - Column ids and item values are matched via {@link resolveKanbanGroupKey}
32
+ * (trim + case-insensitive).
33
+ * - Empty values land in `emptyColumnId` (or an auto empty column).
34
+ * - Unmatched values land in `unmappedColumnId`, or become orphan columns.
35
+ */
36
+ export declare function groupKanbanRawData(rawData: any[] | null | undefined, columns: KanbanColumn[] | null | undefined, groupKey: string, positionKey: string, options?: GroupKanbanRawDataOptions): GroupKanbanRawDataResult;
@@ -0,0 +1,72 @@
1
+ const A = "__kanban_empty__", w = "__kanban_unmapped__";
2
+ function I(s) {
3
+ return s == null ? "" : String(s).trim();
4
+ }
5
+ const i = (s) => I(s).toLowerCase();
6
+ function K(s, _, S, g, u = {}) {
7
+ const m = Array.isArray(_) ? _ : [], p = u.includeOrphanColumns !== !1, o = u.emptyColumnId != null ? u.emptyColumnId : p ? A : void 0, c = u.unmappedColumnId, d = /* @__PURE__ */ new Map();
8
+ for (const e of m) {
9
+ const t = i(e.id);
10
+ d.has(t) || d.set(t, e.id);
11
+ }
12
+ const r = {};
13
+ for (const e of m)
14
+ r[String(e.id)] = [];
15
+ const y = /* @__PURE__ */ new Set();
16
+ let C = !1, h = !1;
17
+ for (const e of s || []) {
18
+ const t = I(e?.[S]);
19
+ let n;
20
+ if (t) {
21
+ const f = d.get(t.toLowerCase());
22
+ if (f !== void 0)
23
+ n = f;
24
+ else if (c != null)
25
+ n = c, d.has(i(n)) || (h = !0);
26
+ else if (p)
27
+ n = t, y.add(n);
28
+ else
29
+ continue;
30
+ } else {
31
+ if (o == null) continue;
32
+ n = o, d.has(i(n)) || (C = !0);
33
+ }
34
+ const a = String(n);
35
+ r[a] || (r[a] = []), r[a].push({ ...e });
36
+ }
37
+ for (const e of Object.keys(r))
38
+ r[e].sort((t, n) => {
39
+ const a = (Number(t?.[g]) || 0) - (Number(n?.[g]) || 0);
40
+ if (a !== 0) return a;
41
+ const f = new Date(n?.createdAt || 0).getTime() - new Date(t?.createdAt || 0).getTime();
42
+ return f !== 0 ? f : String(n?.id || "").localeCompare(String(t?.id || ""));
43
+ });
44
+ const l = [...m];
45
+ if (C && o != null && l.push({
46
+ id: o,
47
+ title: u.emptyColumnTitle || "Unmapped"
48
+ }), h && c != null && l.push({
49
+ id: c,
50
+ title: u.unmappedColumnTitle || "Unmapped"
51
+ }), p && c == null)
52
+ for (const e of y)
53
+ l.some(
54
+ (n) => i(n.id) === i(e)
55
+ ) || l.push({
56
+ id: e,
57
+ title: String(e)
58
+ });
59
+ if (o === A && !r[String(o)]?.length && !m.some((e) => i(e.id) === i(o))) {
60
+ const e = l.findIndex(
61
+ (t) => i(t.id) === i(o)
62
+ );
63
+ e >= 0 && l.splice(e, 1), delete r[String(o)];
64
+ }
65
+ return { grouped: r, columns: l };
66
+ }
67
+ export {
68
+ A as KANBAN_EMPTY_GROUP_KEY,
69
+ w as KANBAN_UNMAPPED_GROUP_KEY,
70
+ K as groupKanbanRawData,
71
+ I as resolveKanbanGroupKey
72
+ };
@@ -2,3 +2,4 @@ export { default as Kanban } from './Kanban.vue';
2
2
  export { default as KanbanBoard } from './KanbanBoard.vue';
3
3
  export * from './types';
4
4
  export * from './useKanbanBoard';
5
+ export * from './groupKanbanData';
@@ -77,6 +77,23 @@ export interface KanbanProps {
77
77
  rawData?: any[];
78
78
  groupKey?: string;
79
79
  positionKey?: string;
80
+ /**
81
+ * Column id that receives items whose group value is null / blank.
82
+ * When omitted, an auto "Unmapped" empty column is used (if orphans are enabled).
83
+ */
84
+ emptyColumnId?: string | number;
85
+ /**
86
+ * Column id that receives items whose group value does not match any column.
87
+ * Prefer providing this (plus a matching column) for a single Unmapped lane.
88
+ */
89
+ unmappedColumnId?: string | number;
90
+ /**
91
+ * When true (default), append columns for unmatched group values so cards
92
+ * never silently disappear after a `groupKey` / `columns` change.
93
+ */
94
+ includeOrphanColumns?: boolean;
95
+ emptyColumnTitle?: string;
96
+ unmappedColumnTitle?: string;
80
97
  boardClass?: string;
81
98
  headerClass?: string;
82
99
  bodyClass?: string;
@@ -3,7 +3,7 @@ import L from "./Icon.vue.js";
3
3
  import v from "./Modal.vue.js";
4
4
  import N from "./CommandPalette/CommandPaletteContent.vue.js";
5
5
  import { $t as U } from "../utils/i18n.js";
6
- /* empty css */
6
+ /* empty css */
7
7
  const V = { class: "block truncate -text-fs-1.5" }, S = { class: "ms-auto inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded text-[10px] font-mono font-medium border border-border/80 bg-background text-muted-foreground ms-1" }, A = /* @__PURE__ */ x({
8
8
  __name: "NavbarCommandPalette",
9
9
  props: {
@@ -151,10 +151,10 @@ declare const __VLS_component: import('vue').DefineComponent<PanZoomViewportProp
151
151
  disabled: boolean;
152
152
  modelValue: PanZoomViewportTransform;
153
153
  contentClass: string;
154
+ zoomStep: number;
154
155
  minScale: number;
155
156
  maxScale: number;
156
157
  keyboard: boolean;
157
- zoomStep: number;
158
158
  wheelZoomSpeed: number;
159
159
  keyboardPanStep: number;
160
160
  fitPadding: number;
@@ -1,9 +1,9 @@
1
1
  import { defineComponent as te, ref as v, shallowRef as ne, watch as oe, computed as h, onMounted as le, onUnmounted as ae, openBlock as C, createElementBlock as L, normalizeClass as re, toDisplayString as I, createCommentVNode as U, createElementVNode as w, createVNode as q, unref as a, normalizeStyle as ie } from "vue";
2
2
  /* empty css */
3
- import se from "./RichTextToolbar.vue2.js";
4
- /* empty css */
5
- import de from "./RichTextLinkPopover.vue2.js";
6
- /* empty css */
3
+ import se from "./RichTextToolbar.vue.js";
4
+ /* empty css */
5
+ import de from "./RichTextLinkPopover.vue.js";
6
+ /* empty css */
7
7
  import { useRichTextImageUpload as ue } from "./composables/useRichTextImageUpload.js";
8
8
  import { useRichTextLinks as ce } from "./composables/useRichTextLinks.js";
9
9
  const fe = ["aria-labelledby", "aria-describedby"], me = ["id", "for"], ve = { class: "rte-wrapper" }, ye = { class: "rte-body-wrap" }, ge = ["id", "contenteditable", "aria-label", "aria-readonly", "aria-disabled", "aria-invalid"], be = ["id"], Se = /* @__PURE__ */ te({
@@ -1,5 +1,5 @@
1
- import o from "./RichTextLinkPopover.vue2.js";
2
- /* empty css */
1
+ import o from "./RichTextLinkPopover.vue.js";
2
+ /* empty css */
3
3
  export {
4
4
  o as default
5
5
  };
@@ -1,5 +1,5 @@
1
- import o from "./RichTextToolbar.vue2.js";
2
- /* empty css */
1
+ import o from "./RichTextToolbar.vue.js";
2
+ /* empty css */
3
3
  export {
4
4
  o as default
5
5
  };
@@ -1,4 +1,4 @@
1
- import { defineComponent as Ee, useSlots as Qe, computed as n, markRaw as T, onMounted as Ae, ref as h, provide as L, watch as O, openBlock as d, createElementBlock as p, normalizeClass as P, Fragment as U, createElementVNode as j, createVNode as C, createSlots as ne, withCtx as b, renderSlot as s, normalizeProps as u, guardReactiveProps as w, mergeProps as y, createBlock as M, createCommentVNode as R, unref as z, resolveDynamicComponent as Ue, toDisplayString as je } from "vue";
1
+ import { defineComponent as Ee, useSlots as Qe, computed as n, markRaw as T, onMounted as Ae, ref as h, provide as L, watch as O, openBlock as d, createElementBlock as p, normalizeClass as P, Fragment as U, createElementVNode as j, createVNode as x, createSlots as ne, withCtx as b, renderSlot as o, normalizeProps as u, guardReactiveProps as w, mergeProps as g, createBlock as M, createCommentVNode as R, unref as z, resolveDynamicComponent as Ue, toDisplayString as je } from "vue";
2
2
  import Me from "../ConfirmationModal.vue.js";
3
3
  import Ne from "../Pagination/Pagination.vue.js";
4
4
  import He from "../ImportData/ImportData.vue.js";
@@ -6,10 +6,10 @@ import { usePersistentState as Ke } from "../../utils/usePersistentState.js";
6
6
  import { useVLiteConfig as Le } from "../../core/config.js";
7
7
  import { $t as f } from "../../utils/i18n.js";
8
8
  import { SCREEN_CONTEXT_KEY as Oe } from "../DataTable/types.js";
9
- import se from "./components/ScreenHeaderTitle.vue.js";
9
+ import oe from "./components/ScreenHeaderTitle.vue.js";
10
10
  import ze from "./components/ScreenEmptyState.vue.js";
11
11
  import Xe from "./components/ScreenExportModal.vue.js";
12
- import oe from "./components/ScreenQuickFilters.vue.js";
12
+ import se from "./components/ScreenQuickFilters.vue.js";
13
13
  import re from "./components/ScreenToolbar.vue.js";
14
14
  import Ye from "../Stats/Stats.vue.js";
15
15
  /* empty css */
@@ -94,7 +94,7 @@ const Ge = { key: 0 }, Je = {
94
94
  },
95
95
  emits: ["add", "delete", "activeView"],
96
96
  setup(t, { emit: de }) {
97
- const a = t, I = Le(), q = de, g = Qe(), ce = n(() => a.name || a.title || "default-screen"), ue = n(() => {
97
+ const a = t, I = Le(), q = de, y = Qe(), ce = n(() => a.name || a.title || "default-screen"), ue = n(() => {
98
98
  const e = f("vlite.screen.tableView");
99
99
  return e !== "vlite.screen.tableView" ? e : "Table View";
100
100
  }), ve = n(() => {
@@ -113,22 +113,22 @@ const Ge = { key: 0 }, Je = {
113
113
  component: typeof i.component == "object" && i.component !== null ? T(i.component) : i.component
114
114
  }));
115
115
  const e = [];
116
- return (a.table || g.table) && e.push({
116
+ return (a.table || y.table) && e.push({
117
117
  key: "table",
118
118
  component: a.table ? T(a.table) : null,
119
119
  icon: "lucide:list",
120
120
  label: ue.value
121
- }), (a.list || g.list || g.grid) && e.push({
121
+ }), (a.list || y.list || y.grid) && e.push({
122
122
  key: "list",
123
123
  component: a.list ? T(a.list) : null,
124
124
  icon: "lucide:layout-grid",
125
125
  label: ve.value
126
- }), (a.kanban || g.kanban) && e.push({
126
+ }), (a.kanban || y.kanban) && e.push({
127
127
  key: "kanban",
128
128
  component: a.kanban ? T(a.kanban) : null,
129
129
  icon: "lucide:kanban",
130
130
  label: fe.value
131
- }), (a.calendar || g.calendar) && e.push({
131
+ }), (a.calendar || y.calendar) && e.push({
132
132
  key: "calendar",
133
133
  component: a.calendar ? T(a.calendar) : null,
134
134
  icon: "lucide:calendar",
@@ -140,7 +140,7 @@ const Ge = { key: 0 }, Je = {
140
140
  Ae(() => {
141
141
  V.value.length > 0 && !he.value.includes(c.value) && (c.value = Y.value), q("activeView", c.value);
142
142
  });
143
- const F = n(() => c.value === "table" && g.table ? "table" : c.value === "list" && g.list ? "list" : c.value === "list" && g.grid ? "grid" : c.value === "kanban" && g.kanban ? "kanban" : c.value === "calendar" && g.calendar ? "calendar" : null), k = h(""), m = h({}), $ = h({ field: "", order: "" }), S = h(a.pageInfo?.currentPage || 1), E = h(a.pageInfo?.itemsPerPage || a.paginationProps?.itemsPerPage || 10), o = h([]), Q = h([]), B = h(!1), v = h(
143
+ const F = n(() => c.value === "table" && y.table ? "table" : c.value === "list" && y.list ? "list" : c.value === "list" && y.grid ? "grid" : c.value === "kanban" && y.kanban ? "kanban" : c.value === "calendar" && y.calendar ? "calendar" : null), k = h(""), m = h({}), $ = h({ field: "", order: "" }), S = h(a.pageInfo?.currentPage || 1), E = h(a.pageInfo?.itemsPerPage || a.paginationProps?.itemsPerPage || 10), s = h([]), Q = h([]), B = h(!1), v = h(
144
144
  a.defaultQuickFilter !== void 0 ? a.defaultQuickFilter : a.quickFilters && a.quickFilters.length > 0 ? a.quickFilters[0].value : ""
145
145
  ), W = n(() => !a.quickFilters || a.quickFilters.length === 0 ? !1 : a.skipQuickFilterViews && a.skipQuickFilterViews.length > 0 ? !a.skipQuickFilterViews.includes(c.value) : !0), Z = (e) => {
146
146
  v.value = e, S.value = 1, D();
@@ -154,7 +154,7 @@ const Ge = { key: 0 }, Je = {
154
154
  activeSort: $.value,
155
155
  page: S.value,
156
156
  limit: E.value,
157
- selectedRows: o.value,
157
+ selectedRows: s.value,
158
158
  isFiltered: _.value,
159
159
  hasData: ee.value,
160
160
  loading: a.loading
@@ -164,13 +164,13 @@ const Ge = { key: 0 }, Je = {
164
164
  $.value = { field: e.sort.field, order: e.sort.order }, D();
165
165
  }
166
166
  };
167
- L(Oe, we), L("screen-selected-rows", o), L("screen-request-delete", (e) => x(e));
168
- const x = (e) => {
167
+ L(Oe, we), L("screen-selected-rows", s), L("screen-request-delete", (e) => C(e));
168
+ const C = (e) => {
169
169
  Q.value = e, B.value = !0;
170
- }, ye = () => {
171
- q("delete", Q.value), B.value = !1, o.value = [];
172
- }, ge = (e) => {
173
- q("delete", e), o.value = [];
170
+ }, ge = () => {
171
+ q("delete", Q.value), B.value = !1, s.value = [];
172
+ }, ye = (e) => {
173
+ q("delete", e), s.value = [];
174
174
  };
175
175
  O(
176
176
  () => a.pageInfo?.currentPage,
@@ -212,10 +212,10 @@ const Ge = { key: 0 }, Je = {
212
212
  }), le = n(() => {
213
213
  const e = f("vlite.screen.searchPlaceholder");
214
214
  return e !== "vlite.screen.searchPlaceholder" ? e : "Search...";
215
- }), xe = n(() => {
215
+ }), Ce = n(() => {
216
216
  const e = f("vlite.screen.confirmDeleteTitle");
217
217
  return e !== "vlite.screen.confirmDeleteTitle" ? e : "Confirm Deletion";
218
- }), Ce = n(() => {
218
+ }), xe = n(() => {
219
219
  const e = f("vlite.screen.confirmDeleteDesc", { count: Q.value.length });
220
220
  return e !== "vlite.screen.confirmDeleteDesc" ? e : `Are you sure you want to delete the selected ${Q.value.length > 1 ? "items" : "item"}?`;
221
221
  }), Ve = n(() => {
@@ -269,7 +269,7 @@ const Ge = { key: 0 }, Je = {
269
269
  class: P(["flex flex-col w-full space-y-8", t.containerClass])
270
270
  }, [
271
271
  t.variant === "two" ? (d(), p(U, { key: 0 }, [
272
- t.customHeader ? s(e.$slots, "custom-header", u(y({ key: 1 }, r.value))) : (d(), p("div", {
272
+ t.customHeader ? o(e.$slots, "custom-header", u(g({ key: 1 }, r.value))) : (d(), p("div", {
273
273
  key: 0,
274
274
  class: P([t.headerClass, "flex flex-col space-y-6"])
275
275
  }, [
@@ -279,7 +279,7 @@ const Ge = { key: 0 }, Je = {
279
279
  t.topHeaderClass
280
280
  ])
281
281
  }, [
282
- C(se, {
282
+ x(oe, {
283
283
  title: t.title,
284
284
  "title-i18n": t.titleI18n,
285
285
  "title-class": t.titleClass,
@@ -292,21 +292,21 @@ const Ge = { key: 0 }, Je = {
292
292
  e.$slots.title ? {
293
293
  name: "title",
294
294
  fn: b(() => [
295
- s(e.$slots, "title", u(w(r.value)))
295
+ o(e.$slots, "title", u(w(r.value)))
296
296
  ]),
297
297
  key: "0"
298
298
  } : void 0,
299
299
  e.$slots.description ? {
300
300
  name: "description",
301
301
  fn: b(() => [
302
- s(e.$slots, "description", u(w(r.value)))
302
+ o(e.$slots, "description", u(w(r.value)))
303
303
  ]),
304
304
  key: "1"
305
305
  } : void 0
306
306
  ]), 1032, ["title", "title-i18n", "title-class", "description", "description-i18n", "description-class", "info", "info-i18n"]),
307
307
  t.stats && t.stats.length > 0 ? (d(), p("div", Ge, [
308
- C(Ye, y({ items: t.stats }, t.statsProps), null, 16, ["items"])
309
- ])) : s(e.$slots, "header-stats", { key: 1 })
308
+ x(Ye, g({ items: t.stats }, t.statsProps), null, 16, ["items"])
309
+ ])) : o(e.$slots, "header-stats", { key: 1 })
310
310
  ], 2),
311
311
  j("div", {
312
312
  class: P([
@@ -320,7 +320,7 @@ const Ge = { key: 0 }, Je = {
320
320
  t.filtersContainerClass
321
321
  ])
322
322
  }, [
323
- W.value ? (d(), M(oe, {
323
+ W.value ? (d(), M(se, {
324
324
  key: 0,
325
325
  modelValue: v.value,
326
326
  "onUpdate:modelValue": i[0] || (i[0] = (l) => v.value = l),
@@ -329,12 +329,10 @@ const Ge = { key: 0 }, Je = {
329
329
  onChange: Z
330
330
  }, null, 8, ["modelValue", "options", "variant"])) : R("", !0)
331
331
  ], 2),
332
- C(re, {
333
- class: P([
334
- "flex items-center gap-2.5 max-sm:w-full sm:w-auto justify-end",
335
- t.actionsContainerClass
336
- ]),
337
- "selected-rows": o.value,
332
+ x(re, {
333
+ inline: "",
334
+ class: P(["w-full lg:w-auto", t.actionsContainerClass]),
335
+ "selected-rows": s.value,
338
336
  "hide-selectable": t.hideSelectable,
339
337
  "hide-delete-btn": t.hideDeleteBtn,
340
338
  "txt-delete-selected": te.value,
@@ -359,7 +357,7 @@ const Ge = { key: 0 }, Je = {
359
357
  "export-props": t.exportProps,
360
358
  "import-props": t.importProps,
361
359
  "screen-state": r.value,
362
- onDelete: x,
360
+ onDelete: C,
363
361
  "onUpdate:activeView": J,
364
362
  "onUpdate:searchQuery": i[1] || (i[1] = (l) => k.value = l),
365
363
  "onUpdate:activeFilters": i[2] || (i[2] = (l) => m.value = l),
@@ -368,25 +366,26 @@ const Ge = { key: 0 }, Je = {
368
366
  onSelectDropdown: ie
369
367
  }, {
370
368
  "before-search": b((l) => [
371
- s(e.$slots, "before-search", u(w(l)))
369
+ o(e.$slots, "before-search", u(w(l)))
372
370
  ]),
373
371
  actions: b((l) => [
374
- s(e.$slots, "actions", u(w(l)))
372
+ o(e.$slots, "actions", u(w(l)))
375
373
  ]),
376
374
  "after-add": b((l) => [
377
- s(e.$slots, "after-add", u(w(l)))
375
+ o(e.$slots, "after-add", u(w(l)))
378
376
  ]),
379
377
  _: 3
380
378
  }, 8, ["class", "selected-rows", "hide-selectable", "hide-delete-btn", "txt-delete-selected", "has-multiple-views", "active-view", "resolved-views", "show-refresh", "loading", "txt-refresh", "filter-schema", "filter-type", "active-filters", "can-search", "search-query", "txt-search", "can-add", "add-component", "add-btn", "data", "refetch", "has-export-or-import", "export-props", "import-props", "screen-state"])
381
379
  ], 2)
382
380
  ], 2)),
383
- s(e.$slots, "sub-header", u(w(r.value)))
381
+ o(e.$slots, "sub-header", u(w(r.value)))
384
382
  ], 64)) : (d(), p(U, { key: 1 }, [
385
- t.customHeader ? s(e.$slots, "custom-header", u(y({ key: 1 }, r.value))) : (d(), p("div", {
383
+ t.customHeader ? o(e.$slots, "custom-header", u(g({ key: 1 }, r.value))) : (d(), p("div", {
386
384
  key: 0,
387
- class: P([t.headerClass, "flex flex-col md:flex-row sm:items-start md:items-center justify-between gap-4"])
385
+ class: P([t.headerClass, "grid grid-cols-1 min-[900px]:grid-cols-[1fr_auto] min-[1250px]:grid-cols-[1fr_auto_auto] items-start gap-x-4 gap-y-3 w-full"])
388
386
  }, [
389
- C(se, {
387
+ x(oe, {
388
+ class: "order-1 min-w-0",
390
389
  title: t.title,
391
390
  "title-i18n": t.titleI18n,
392
391
  "title-class": t.titleClass,
@@ -399,21 +398,20 @@ const Ge = { key: 0 }, Je = {
399
398
  e.$slots.title ? {
400
399
  name: "title",
401
400
  fn: b(() => [
402
- s(e.$slots, "title", u(w(r.value)))
401
+ o(e.$slots, "title", u(w(r.value)))
403
402
  ]),
404
403
  key: "0"
405
404
  } : void 0,
406
405
  e.$slots.description ? {
407
406
  name: "description",
408
407
  fn: b(() => [
409
- s(e.$slots, "description", u(w(r.value)))
408
+ o(e.$slots, "description", u(w(r.value)))
410
409
  ]),
411
410
  key: "1"
412
411
  } : void 0
413
412
  ]), 1032, ["title", "title-i18n", "title-class", "description", "description-i18n", "description-class", "info", "info-i18n"]),
414
- C(re, {
415
- class: "flex flex-col sm:flex-row items-start sm:items-center gap-2.5 w-full justify-end",
416
- "selected-rows": o.value,
413
+ x(re, {
414
+ "selected-rows": s.value,
417
415
  "hide-selectable": t.hideSelectable,
418
416
  "hide-delete-btn": t.hideDeleteBtn,
419
417
  "txt-delete-selected": te.value,
@@ -438,7 +436,7 @@ const Ge = { key: 0 }, Je = {
438
436
  "export-props": t.exportProps,
439
437
  "import-props": t.importProps,
440
438
  "screen-state": r.value,
441
- onDelete: x,
439
+ onDelete: C,
442
440
  "onUpdate:activeView": J,
443
441
  "onUpdate:searchQuery": i[4] || (i[4] = (l) => k.value = l),
444
442
  "onUpdate:activeFilters": i[5] || (i[5] = (l) => m.value = l),
@@ -447,20 +445,20 @@ const Ge = { key: 0 }, Je = {
447
445
  onSelectDropdown: ie
448
446
  }, {
449
447
  "before-search": b((l) => [
450
- s(e.$slots, "before-search", u(w(l)))
448
+ o(e.$slots, "before-search", u(w(l)))
451
449
  ]),
452
450
  actions: b((l) => [
453
- s(e.$slots, "actions", u(w(l)))
451
+ o(e.$slots, "actions", u(w(l)))
454
452
  ]),
455
453
  "after-add": b((l) => [
456
- s(e.$slots, "after-add", u(w(l)))
454
+ o(e.$slots, "after-add", u(w(l)))
457
455
  ]),
458
456
  _: 3
459
457
  }, 8, ["selected-rows", "hide-selectable", "hide-delete-btn", "txt-delete-selected", "has-multiple-views", "active-view", "resolved-views", "show-refresh", "loading", "txt-refresh", "filter-schema", "filter-type", "active-filters", "can-search", "search-query", "txt-search", "can-add", "add-component", "add-btn", "data", "refetch", "has-export-or-import", "export-props", "import-props", "screen-state"])
460
458
  ], 2)),
461
- s(e.$slots, "sub-header", u(w(r.value))),
459
+ o(e.$slots, "sub-header", u(w(r.value))),
462
460
  W.value ? (d(), p("div", Je, [
463
- C(oe, {
461
+ x(se, {
464
462
  modelValue: v.value,
465
463
  "onUpdate:modelValue": i[7] || (i[7] = (l) => v.value = l),
466
464
  options: t.quickFilters,
@@ -473,7 +471,7 @@ const Ge = { key: 0 }, Je = {
473
471
  class: P(["flex-1 w-full relative", t.mainContainerClass])
474
472
  }, [
475
473
  !ee.value && !t.loading && !pe.value ? (d(), p(U, { key: 0 }, [
476
- e.$slots.empty ? s(e.$slots, "empty", u(y({ key: 0 }, r.value))) : (d(), M(ze, {
474
+ e.$slots.empty ? o(e.$slots, "empty", u(g({ key: 0 }, r.value))) : (d(), M(ze, {
477
475
  key: 1,
478
476
  "empty-title": t.emptyTitle,
479
477
  "empty-title-i18n": t.emptyTitleI18n,
@@ -486,55 +484,55 @@ const Ge = { key: 0 }, Je = {
486
484
  "add-btn": t.addBtn
487
485
  }, null, 8, ["empty-title", "empty-title-i18n", "empty-description", "empty-description-i18n", "empty-icon", "is-filtered", "can-add", "add-component", "add-btn"]))
488
486
  ], 64)) : (d(), p(U, { key: 1 }, [
489
- F.value === "table" ? s(e.$slots, "table", y({
487
+ F.value === "table" ? o(e.$slots, "table", g({
490
488
  key: 0,
491
489
  data: t.data,
492
490
  loading: t.loading,
493
- selectedRows: o.value,
494
- delete: x,
495
- updateSelectedRows: (l) => o.value = l
496
- }, r.value)) : F.value === "list" ? s(e.$slots, "list", y({
491
+ selectedRows: s.value,
492
+ delete: C,
493
+ updateSelectedRows: (l) => s.value = l
494
+ }, r.value)) : F.value === "list" ? o(e.$slots, "list", g({
497
495
  key: 1,
498
496
  data: t.data,
499
497
  loading: t.loading,
500
- selectedRows: o.value,
501
- delete: x,
502
- updateSelectedRows: (l) => o.value = l
503
- }, r.value)) : F.value === "grid" ? s(e.$slots, "grid", y({
498
+ selectedRows: s.value,
499
+ delete: C,
500
+ updateSelectedRows: (l) => s.value = l
501
+ }, r.value)) : F.value === "grid" ? o(e.$slots, "grid", g({
504
502
  key: 2,
505
503
  data: t.data,
506
504
  loading: t.loading,
507
- selectedRows: o.value,
508
- delete: x,
509
- updateSelectedRows: (l) => o.value = l
510
- }, r.value)) : F.value === "kanban" ? s(e.$slots, "kanban", y({
505
+ selectedRows: s.value,
506
+ delete: C,
507
+ updateSelectedRows: (l) => s.value = l
508
+ }, r.value)) : F.value === "kanban" ? o(e.$slots, "kanban", g({
511
509
  key: 3,
512
510
  data: t.data,
513
511
  loading: t.loading,
514
- selectedRows: o.value,
515
- delete: x,
516
- updateSelectedRows: (l) => o.value = l
517
- }, r.value)) : F.value === "calendar" ? s(e.$slots, "calendar", y({
512
+ selectedRows: s.value,
513
+ delete: C,
514
+ updateSelectedRows: (l) => s.value = l
515
+ }, r.value)) : F.value === "calendar" ? o(e.$slots, "calendar", g({
518
516
  key: 4,
519
517
  data: t.data,
520
518
  loading: t.loading,
521
- selectedRows: o.value,
522
- delete: x,
523
- updateSelectedRows: (l) => o.value = l
524
- }, r.value)) : G.value ? (d(), M(Ue(G.value), y({
519
+ selectedRows: s.value,
520
+ delete: C,
521
+ updateSelectedRows: (l) => s.value = l
522
+ }, r.value)) : G.value ? (d(), M(Ue(G.value), g({
525
523
  key: 5,
526
524
  data: t.data,
527
525
  loading: t.loading,
528
526
  refetch: t.refetch,
529
- selectedRows: o.value,
530
- "onUpdate:selectedRows": i[8] || (i[8] = (l) => o.value = l),
531
- delete: x,
532
- onDelete: ge
527
+ selectedRows: s.value,
528
+ "onUpdate:selectedRows": i[8] || (i[8] = (l) => s.value = l),
529
+ delete: C,
530
+ onDelete: ye
533
531
  }, t.viewProps), null, 16, ["data", "loading", "refetch", "selectedRows"])) : (d(), p("div", We, je(Pe.value), 1))
534
532
  ], 64))
535
533
  ], 2),
536
534
  t.pagination && t.pageInfo && t.pageInfo.totalPages > 1 ? (d(), p("div", Ze, [
537
- C(z(Ne), y({
535
+ x(z(Ne), g({
538
536
  "current-page": t.pageInfo.currentPage,
539
537
  "total-pages": t.pageInfo.totalPages,
540
538
  "total-items": t.pageInfo.totalItems
@@ -543,15 +541,15 @@ const Ge = { key: 0 }, Je = {
543
541
  "onUpdate:itemsPerPage": be
544
542
  }), null, 16, ["current-page", "total-pages", "total-items"])
545
543
  ])) : R("", !0),
546
- C(Me, {
544
+ x(Me, {
547
545
  show: B.value,
548
546
  "onUpdate:show": i[9] || (i[9] = (l) => B.value = l),
549
- title: xe.value,
550
- description: Ce.value,
547
+ title: Ce.value,
548
+ description: xe.value,
551
549
  "confirm-text": Ve.value,
552
550
  "cancel-text": De.value,
553
551
  variant: "danger",
554
- onConfirm: ye,
552
+ onConfirm: ge,
555
553
  onCancel: i[10] || (i[10] = (l) => B.value = !1)
556
554
  }, null, 8, ["show", "title", "description", "confirm-text", "cancel-text"]),
557
555
  A.value ? (d(), M(Xe, {
@@ -565,7 +563,7 @@ const Ge = { key: 0 }, Je = {
565
563
  "on-export": qe
566
564
  }, null, 8, ["show", "data", "fields", "mode", "export-props"])) : R("", !0),
567
565
  H.value ? (d(), p("div", _e, [
568
- C(He, y({
566
+ x(He, g({
569
567
  show: K.value,
570
568
  "onUpdate:show": i[12] || (i[12] = (l) => K.value = l),
571
569
  ref_key: "importDataRef",
@@ -21,11 +21,11 @@ import "@vueuse/core";
21
21
  import "iconify-icon-picker";
22
22
  import "iconify-icon-picker/style.css";
23
23
  /* empty css */
24
- /* empty css */
24
+ /* empty css */
25
25
  /* empty css */
26
26
  /* empty css */
27
- /* empty css */
28
- /* empty css */
27
+ /* empty css */
28
+ /* empty css */
29
29
  import "../../core/config.js";
30
30
  /* empty css */
31
31
  /* empty css */