vlite3 0.4.6 → 0.4.7

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 (108) hide show
  1. package/components/Accordion/AccordionItem.vue.js +33 -32
  2. package/components/Accordion/types.d.ts +2 -0
  3. package/components/Alert.vue.d.ts +2 -0
  4. package/components/Alert.vue.js +38 -36
  5. package/components/AvatarUploader/AvatarUploader.vue.d.ts +1 -1
  6. package/components/AvatarUploader/AvatarUploader.vue.js +25 -24
  7. package/components/Button.vue.d.ts +1 -1
  8. package/components/Button.vue.js +37 -35
  9. package/components/CheckBox.vue.d.ts +1 -0
  10. package/components/CheckBox.vue.js +40 -40
  11. package/components/Chip/Chip.vue.js +55 -55
  12. package/components/Chip/types.d.ts +1 -0
  13. package/components/ChoiceBox/ChoiceBox.vue.d.ts +5 -0
  14. package/components/ChoiceBox/ChoiceBox.vue.js +61 -58
  15. package/components/ColorPicker/ColorPicker.vue.js +3 -2
  16. package/components/ConfirmationModal.vue.d.ts +4 -2
  17. package/components/ConfirmationModal.vue.js +48 -33
  18. package/components/DataList/DataList.vue.d.ts +0 -2
  19. package/components/DataList/DataList.vue.js +39 -35
  20. package/components/DataList/types.d.ts +2 -0
  21. package/components/DataTable/DataTable.vue.d.ts +0 -5
  22. package/components/DataTable/DataTable.vue.js +177 -158
  23. package/components/DataTable/DataTableHeader.vue.js +15 -14
  24. package/components/DataTable/DataTableToolbar.vue.d.ts +1 -1
  25. package/components/DataTable/DataTableToolbar.vue.js +30 -23
  26. package/components/DataTable/types.d.ts +4 -0
  27. package/components/DatePicker.vue.d.ts +1 -0
  28. package/components/DatePicker.vue.js +32 -25
  29. package/components/Dropdown/DropdownBooleanItem.vue.js +18 -17
  30. package/components/Dropdown/DropdownGroupedLayout.vue.js +28 -27
  31. package/components/Dropdown/DropdownItem.vue.js +24 -23
  32. package/components/Dropdown/DropdownMenu.vue.js +100 -91
  33. package/components/Dropdown/composables/useDropdownNavigation.js +24 -23
  34. package/components/Dropdown/composables/useDropdownSelection.js +19 -17
  35. package/components/Empty/Empty.vue.d.ts +2 -2
  36. package/components/Empty/Empty.vue.js +32 -18
  37. package/components/FilePicker/FilePicker.vue.d.ts +3 -1
  38. package/components/FilePicker/FilePicker.vue.js +140 -127
  39. package/components/FileTree/FileTree.vue.js +68 -58
  40. package/components/FileTree/FileTreeNode.vue.js +35 -34
  41. package/components/FileTree/types.d.ts +3 -0
  42. package/components/Form/CustomFields.vue.d.ts +3 -1
  43. package/components/Form/CustomFields.vue.js +2 -2
  44. package/components/Form/CustomFields.vue2.js +92 -80
  45. package/components/Form/Form.vue.d.ts +1 -1
  46. package/components/Form/FormField.vue.d.ts +1 -1
  47. package/components/Form/FormField.vue.js +60 -59
  48. package/components/Form/FormFields.vue.js +2 -2
  49. package/components/Form/FormFields.vue2.js +58 -57
  50. package/components/Form/composables/useForm.js +84 -79
  51. package/components/Form/types.d.ts +4 -0
  52. package/components/GoogleLogin.vue.d.ts +1 -1
  53. package/components/GoogleLogin.vue.js +39 -32
  54. package/components/Heatmap/Heatmap.vue2.js +3 -2
  55. package/components/IconPicker.vue.d.ts +2 -0
  56. package/components/IconPicker.vue.js +37 -29
  57. package/components/Input.vue.d.ts +1 -1
  58. package/components/Input.vue.js +96 -98
  59. package/components/Kanban/KanbanBoard.vue.js +1 -1
  60. package/components/Kanban/KanbanBoard.vue2.js +55 -54
  61. package/components/Kanban/types.d.ts +1 -0
  62. package/components/Masonry/Masonry.vue2.js +3 -2
  63. package/components/Modal.vue.d.ts +2 -0
  64. package/components/Modal.vue.js +62 -57
  65. package/components/MultiSelect/MultiSelect.vue.d.ts +1 -1
  66. package/components/MultiSelect/MultiSelect.vue.js +61 -54
  67. package/components/Navbar/Navbar.vue.js +46 -46
  68. package/components/Pagination/Pagination.vue.js +116 -97
  69. package/components/PricingPlan/PricingPlanItem.vue.js +60 -47
  70. package/components/PricingPlan/types.d.ts +5 -0
  71. package/components/Screen/Screen.vue.d.ts +0 -4
  72. package/components/Screen/Screen.vue.js +231 -189
  73. package/components/Screen/ScreenFilter.vue.js +73 -63
  74. package/components/Screen/types.d.ts +5 -0
  75. package/components/SidePanel.vue.d.ts +2 -0
  76. package/components/SidePanel.vue.js +140 -5
  77. package/components/SidePanel.vue2.js +2 -135
  78. package/components/SidebarMenu/SidebarMenuItem.vue.js +131 -130
  79. package/components/SidebarMenu/types.d.ts +1 -0
  80. package/components/Slider.vue.d.ts +1 -0
  81. package/components/Slider.vue.js +71 -69
  82. package/components/Switch.vue.d.ts +1 -0
  83. package/components/Switch.vue.js +23 -18
  84. package/components/Tabes/Tabes.vue.js +20 -19
  85. package/components/Tabes/types.d.ts +1 -0
  86. package/components/Textarea.vue.d.ts +1 -0
  87. package/components/Textarea.vue.js +18 -16
  88. package/components/ThemeToggle.vue.js +24 -14
  89. package/components/Timeline.vue.js +68 -82
  90. package/components/ToastNotification.vue.js +2 -2
  91. package/components/Tooltip.vue.d.ts +4 -3
  92. package/components/Tooltip.vue.js +17 -15
  93. package/components/Workbook/Sheet.vue.js +80 -71
  94. package/components/Workbook/WorkbookAddButton.vue.js +14 -10
  95. package/components/Workbook/types.d.ts +1 -0
  96. package/core/config.d.ts +2 -0
  97. package/index.d.ts +1 -0
  98. package/index.js +28 -26
  99. package/package.json +1 -1
  100. package/style.css +1 -2
  101. package/types/button.d.ts +1 -0
  102. package/types/config.type.d.ts +10 -0
  103. package/types/form.type.d.ts +2 -0
  104. package/types/styles.d.ts +3 -0
  105. package/types/timeline.type.d.ts +2 -0
  106. package/utils/i18n.d.ts +8 -0
  107. package/utils/i18n.js +5 -0
  108. package/utils/index.d.ts +1 -0
@@ -1,14 +1,17 @@
1
- import { defineComponent as G, useSlots as J, ref as v, computed as r, onMounted as K, nextTick as A, openBlock as d, createElementBlock as u, normalizeClass as a, createBlock as C, withCtx as O, createTextVNode as k, toDisplayString as V, createCommentVNode as c, createElementVNode as B, renderSlot as F, createVNode as x } from "vue";
1
+ import { defineComponent as O, computed as d, useSlots as Q, ref as g, onMounted as X, nextTick as F, openBlock as r, createElementBlock as u, normalizeClass as a, createBlock as k, withCtx as Y, createTextVNode as V, toDisplayString as B, createCommentVNode as c, createElementVNode as j, renderSlot as M, createVNode as p } from "vue";
2
2
  import f from "./Icon.vue.js";
3
- import Q from "./Label.vue.js";
4
- import X from "./Textarea.vue.js";
5
- const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { class: "absolute right-3 top-1/2 -translate-y-1/2 flex items-center justify-center gap-2 z-20" }, le = /* @__PURE__ */ G({
3
+ import Z from "./Label.vue.js";
4
+ import _ from "./Textarea.vue.js";
5
+ import { $t as N } from "../utils/i18n.js";
6
+ const ee = ["type", "value", "placeholder", "disabled", "min", "max"], ne = { class: "absolute right-3 top-1/2 -translate-y-1/2 flex items-center justify-center gap-2 z-20" }, ue = /* @__PURE__ */ O({
6
7
  __name: "Input",
7
8
  props: {
8
9
  modelValue: { default: "" },
9
10
  type: { default: "text" },
10
11
  label: {},
12
+ labelI18n: {},
11
13
  placeholder: {},
14
+ placeholderI18n: {},
12
15
  disabled: { type: Boolean, default: !1 },
13
16
  loading: { type: Boolean, default: !1 },
14
17
  error: {},
@@ -32,16 +35,16 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
32
35
  max: {}
33
36
  },
34
37
  emits: ["update:modelValue", "focus", "blur", "change", "click:icon", "click:icon-right"],
35
- setup(n, { emit: I }) {
36
- const e = n, s = I, m = J(), y = v(null), b = v(!1), M = r(() => e.type === "password" && b.value ? "text" : e.type), j = r(() => e.modelValue !== "" && e.modelValue !== null && e.modelValue !== void 0), g = r(() => !!e.addonLeft || !!m["addon-left"]), p = r(() => !!e.addonRight || !!m["addon-right"]), N = r(() => [
38
+ setup(n, { emit: T }) {
39
+ const e = n, s = T, x = d(() => e.labelI18n ? N(e.labelI18n) : e.label), z = d(() => e.placeholderI18n ? N(e.placeholderI18n) : e.placeholder), m = Q(), y = g(null), b = g(!1), E = d(() => e.type === "password" && b.value ? "text" : e.type), R = d(() => e.modelValue !== "" && e.modelValue !== null && e.modelValue !== void 0), v = d(() => !!e.addonLeft || !!m["addon-left"]), h = d(() => !!e.addonRight || !!m["addon-right"]), D = d(() => [
37
40
  "relative w-full",
38
41
  e.class,
39
42
  e.labelPosition === "left" ? "flex items-center gap-4" : "",
40
43
  e.labelPosition === "right" ? "flex flex-row-reverse items-center gap-4" : "space-y-2"
41
- ].join(" ")), T = r(() => ["relative flex w-full items-stretch", e.labelPosition !== "top" ? "flex-1" : ""].join(
44
+ ].join(" ")), H = d(() => ["relative flex w-full items-stretch", e.labelPosition !== "top" ? "flex-1" : ""].join(
42
45
  " "
43
- )), z = r(() => {
44
- const t = "block w-full bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground/50 disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none relative focus:z-10", o = {
46
+ )), $ = d(() => {
47
+ const o = "block w-full bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground/50 disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none relative focus:z-10", l = {
45
48
  solid: "bg-muted border-transparent focus-visible:border-primary",
46
49
  outline: "border border-input focus-visible:border-primary",
47
50
  "outline-b": "border-b border-input bg-transparent rounded-none focus-visible:border-primary",
@@ -51,7 +54,7 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
51
54
  md: "h-9 text-sm",
52
55
  lg: "h-10 text-base"
53
56
  };
54
- let l = {
57
+ let t = {
55
58
  none: "rounded-none",
56
59
  sm: "rounded-sm",
57
60
  md: "rounded-md",
@@ -60,41 +63,36 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
60
63
  "2xl": "rounded-2xl",
61
64
  full: "rounded-full"
62
65
  }[e.rounded];
63
- g.value && (e.rounded === "md" ? l = "rounded-r-md rounded-l-none" : e.rounded === "sm" ? l = "rounded-r-sm rounded-l-none" : e.rounded === "lg" ? l = "rounded-r-lg rounded-l-none" : e.rounded === "full" ? l = "rounded-r-full rounded-l-none" : e.rounded !== "none" && (l = l.replace("rounded-", "rounded-r-").replace("rounded-l-", ""))), p.value && (g.value ? l = "rounded-none" : e.rounded === "md" ? l = "rounded-l-md rounded-r-none" : e.rounded === "sm" ? l = "rounded-l-sm rounded-r-none" : e.rounded === "lg" ? l = "rounded-l-lg rounded-r-none" : e.rounded === "full" ? l = "rounded-l-full rounded-r-none" : e.rounded !== "none" && (l = l.replace("rounded-", "rounded-l-").replace("rounded-r-", ""))), e.variant === "outline-b" && (l = "rounded-none");
64
- const P = e.variant === "outline-b" || e.variant === "transparent";
66
+ v.value && (e.rounded === "md" ? t = "rounded-r-md rounded-l-none" : e.rounded === "sm" ? t = "rounded-r-sm rounded-l-none" : e.rounded === "lg" ? t = "rounded-r-lg rounded-l-none" : e.rounded === "full" ? t = "rounded-r-full rounded-l-none" : e.rounded !== "none" && (t = t.replace("rounded-", "rounded-r-").replace("rounded-l-", ""))), h.value && (v.value ? t = "rounded-none" : e.rounded === "md" ? t = "rounded-l-md rounded-r-none" : e.rounded === "sm" ? t = "rounded-l-sm rounded-r-none" : e.rounded === "lg" ? t = "rounded-l-lg rounded-r-none" : e.rounded === "full" ? t = "rounded-l-full rounded-r-none" : e.rounded !== "none" && (t = t.replace("rounded-", "rounded-l-").replace("rounded-r-", ""))), e.variant === "outline-b" && (t = "rounded-none");
67
+ const A = e.variant === "outline-b" || e.variant === "transparent";
65
68
  return [
66
- t,
67
- o[e.variant],
69
+ o,
70
+ l[e.variant],
68
71
  i[e.size],
69
- l,
72
+ t,
70
73
  e.error ? "border-destructive focus-visible:ring-destructive" : "",
71
- e.icon ? "pl-9" : P && !g.value ? "pl-0" : "",
72
- e.showClearButton && j.value || e.type === "password" || e.loading || e.iconRight ? "pr-9" : P && !p.value ? "pr-0" : "",
74
+ e.icon ? "pl-9" : A && !v.value ? "pl-0" : "",
75
+ e.showClearButton && R.value || e.type === "password" || e.loading || e.iconRight ? "pr-9" : A && !h.value ? "pr-0" : "",
73
76
  e.inputClass
74
77
  ].join(" ");
75
- }), R = {
78
+ }), I = {
76
79
  sm: "text-xs",
77
80
  md: "text-sm",
78
81
  lg: "text-base"
79
- }, $ = (t) => {
80
- const o = t === "left";
82
+ }, L = (o) => {
83
+ const l = o === "left";
81
84
  return [
82
- // Ensure height matches
83
85
  "[&_button]:w-full [&_a]:w-full! [&_.v-btn]:w-full! [&_.tooltip-trigger]:w-full",
84
- // Handle borders (Connect sides)
85
- o ? "[&_button]:rounded-r-none [&_a]:rounded-r-none [&_.v-btn]:rounded-r-none" : "[&_button]:rounded-l-none [&_a]:rounded-l-none [&_.v-btn]:rounded-l-none",
86
- // Ensure focus ring appears on top
86
+ l ? "[&_button]:rounded-r-none [&_a]:rounded-r-none [&_.v-btn]:rounded-r-none" : "[&_button]:rounded-l-none [&_a]:rounded-l-none [&_.v-btn]:rounded-l-none",
87
87
  "[&_button]:relative [&_button]:focus:z-20",
88
- // Merge borders (Negative margin to overlap single pixels)
89
- o ? "-mr-px" : "-ml-px",
88
+ l ? "-mr-px" : "-ml-px",
90
89
  "z-10"
91
- // Ensure addons sit visually above input border if needed
92
90
  ].join(" ");
93
- }, E = r(() => {
94
- const t = !!m["addon-left"];
91
+ }, U = d(() => {
92
+ const o = !!m["addon-left"];
95
93
  return [
96
94
  "flex items-center justify-center whitespace-nowrap",
97
- t ? `border-none ${$("left")}` : `bg-muted border border-input border-r-0! px-3 text-muted-foreground ${{
95
+ o ? `border-none ${L("left")}` : `bg-muted border border-input border-r-0! px-3 text-muted-foreground ${{
98
96
  sm: "rounded-l-sm",
99
97
  md: "rounded-l-md",
100
98
  lg: "rounded-l-lg",
@@ -103,15 +101,15 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
103
101
  xl: "rounded-l-xl",
104
102
  "2xl": "rounded-l-2xl"
105
103
  }[e.rounded] || "rounded-l-md"}`,
106
- t ? "" : R[e.size],
104
+ o ? "" : I[e.size],
107
105
  e.addonLeftClass,
108
106
  e.disabled ? "opacity-50 cursor-not-allowed" : ""
109
107
  ].join(" ");
110
- }), D = r(() => {
111
- const t = !!m["addon-right"];
108
+ }), W = d(() => {
109
+ const o = !!m["addon-right"];
112
110
  return [
113
111
  "flex items-center justify-center whitespace-nowrap",
114
- t ? `border-none ${$("right")}` : `bg-muted border border-input border-l-0! px-3 text-muted-foreground ${{
112
+ o ? `border-none ${L("right")}` : `bg-muted border border-input border-l-0! px-3 text-muted-foreground ${{
115
113
  sm: "rounded-r-sm",
116
114
  md: "rounded-r-md",
117
115
  lg: "rounded-r-lg",
@@ -120,87 +118,87 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
120
118
  xl: "rounded-r-xl",
121
119
  "2xl": "rounded-r-2xl"
122
120
  }[e.rounded] || "rounded-r-md"}`,
123
- t ? "" : R[e.size],
121
+ o ? "" : I[e.size],
124
122
  e.addonRightClass,
125
123
  e.disabled ? "opacity-50 cursor-not-allowed" : ""
126
124
  ].join(" ");
127
- }), H = (t) => {
128
- const o = t.target;
129
- s("update:modelValue", o.value);
130
- }, U = (t) => {
131
- const o = t.target;
132
- s("change", o.value);
133
- }, W = () => {
125
+ }), q = (o) => {
126
+ const l = o.target;
127
+ s("update:modelValue", l.value);
128
+ }, G = (o) => {
129
+ const l = o.target;
130
+ s("change", l.value);
131
+ }, J = () => {
134
132
  b.value = !b.value;
135
- }, q = () => {
136
- s("update:modelValue", ""), A(() => {
133
+ }, K = () => {
134
+ s("update:modelValue", ""), F(() => {
137
135
  y.value?.focus();
138
136
  });
139
- }, h = v(!1), w = v(!1), S = (t) => {
140
- h.value = !0, s("focus", t);
141
- }, L = (t) => {
142
- h.value = !1, s("blur", t);
137
+ }, w = g(!1), C = g(!1), P = (o) => {
138
+ w.value = !0, s("focus", o);
139
+ }, S = (o) => {
140
+ w.value = !1, s("blur", o);
143
141
  };
144
- return K(() => {
145
- e.autofocus && A(() => {
142
+ return X(() => {
143
+ e.autofocus && F(() => {
146
144
  y.value?.focus();
147
145
  });
148
- }), (t, o) => (d(), u("div", {
149
- class: a(N.value)
146
+ }), (o, l) => (r(), u("div", {
147
+ class: a(D.value)
150
148
  }, [
151
- n.label ? (d(), C(Q, {
149
+ x.value ? (r(), k(Z, {
152
150
  key: 0,
153
- for: n.label,
151
+ for: x.value,
154
152
  class: a(["mb-1.5", n.labelPosition !== "top" ? "mb-0" : ""].join(" "))
155
153
  }, {
156
- default: O(() => [
157
- k(V(n.label), 1)
154
+ default: Y(() => [
155
+ V(B(x.value), 1)
158
156
  ]),
159
157
  _: 1
160
158
  }, 8, ["for", "class"])) : c("", !0),
161
- B("div", {
162
- class: a(T.value)
159
+ j("div", {
160
+ class: a(H.value)
163
161
  }, [
164
- g.value ? (d(), u("div", {
162
+ v.value ? (r(), u("div", {
165
163
  key: 0,
166
- class: a(E.value)
164
+ class: a(U.value)
167
165
  }, [
168
- F(t.$slots, "addon-left", {}, () => [
169
- k(V(n.addonLeft), 1)
166
+ M(o.$slots, "addon-left", {}, () => [
167
+ V(B(n.addonLeft), 1)
170
168
  ])
171
169
  ], 2)) : c("", !0),
172
- B("div", {
170
+ j("div", {
173
171
  class: "relative w-full",
174
- onMouseenter: o[2] || (o[2] = (i) => w.value = !0),
175
- onMouseleave: o[3] || (o[3] = (i) => w.value = !1)
172
+ onMouseenter: l[2] || (l[2] = (i) => C.value = !0),
173
+ onMouseleave: l[3] || (l[3] = (i) => C.value = !1)
176
174
  }, [
177
- n.type === "textarea" ? (d(), C(X, {
175
+ n.type === "textarea" ? (r(), k(_, {
178
176
  key: 0,
179
177
  "model-value": String(n.modelValue),
180
- placeholder: n.placeholder,
178
+ placeholder: z.value,
181
179
  disabled: n.disabled,
182
180
  rows: n.rows,
183
- class: a(z.value),
184
- "onUpdate:modelValue": o[0] || (o[0] = (i) => s("update:modelValue", i)),
185
- onBlur: L,
186
- onFocus: S
187
- }, null, 8, ["model-value", "placeholder", "disabled", "rows", "class"])) : (d(), u("input", {
181
+ class: a($.value),
182
+ "onUpdate:modelValue": l[0] || (l[0] = (i) => s("update:modelValue", i)),
183
+ onBlur: S,
184
+ onFocus: P
185
+ }, null, 8, ["model-value", "placeholder", "disabled", "rows", "class"])) : (r(), u("input", {
188
186
  key: 1,
189
187
  ref_key: "inputRef",
190
188
  ref: y,
191
- type: M.value,
189
+ type: E.value,
192
190
  value: n.modelValue,
193
- placeholder: n.placeholder,
191
+ placeholder: z.value,
194
192
  disabled: n.disabled,
195
193
  min: n.min,
196
194
  max: n.max,
197
- class: a(z.value),
198
- onInput: H,
199
- onChange: U,
200
- onBlur: L,
201
- onFocus: S
202
- }, null, 42, Y)),
203
- n.icon ? (d(), u("div", {
195
+ class: a($.value),
196
+ onInput: q,
197
+ onChange: G,
198
+ onBlur: S,
199
+ onFocus: P
200
+ }, null, 42, ee)),
201
+ n.icon ? (r(), u("div", {
204
202
  key: 2,
205
203
  tabindex: "-1",
206
204
  class: a([
@@ -208,62 +206,62 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
208
206
  n.disabled ? "opacity-50" : ""
209
207
  ])
210
208
  }, [
211
- x(f, {
209
+ p(f, {
212
210
  icon: n.icon,
213
211
  class: "h-4 w-4"
214
212
  }, null, 8, ["icon"])
215
213
  ], 2)) : c("", !0),
216
- B("div", Z, [
217
- n.loading ? (d(), C(f, {
214
+ j("div", ne, [
215
+ n.loading ? (r(), k(f, {
218
216
  key: 0,
219
217
  icon: "lucide:loader-2",
220
218
  class: "h-4 w-4 animate-spin text-muted-foreground"
221
- })) : n.iconRight ? (d(), u("div", {
219
+ })) : n.iconRight ? (r(), u("div", {
222
220
  key: 1,
223
221
  tabindex: "-1",
224
222
  class: a([
225
223
  "flex items-center justify-center text-muted-foreground",
226
224
  n.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer hover:text-foreground"
227
225
  ]),
228
- onClick: o[1] || (o[1] = (i) => !n.disabled && s("click:icon-right", i))
226
+ onClick: l[1] || (l[1] = (i) => !n.disabled && s("click:icon-right", i))
229
227
  }, [
230
- x(f, {
228
+ p(f, {
231
229
  icon: n.iconRight,
232
230
  class: "h-4 w-4"
233
231
  }, null, 8, ["icon"])
234
232
  ], 2)) : c("", !0),
235
- n.type === "password" && !n.disabled ? (d(), u("button", {
233
+ n.type === "password" && !n.disabled ? (r(), u("button", {
236
234
  key: 2,
237
235
  type: "button",
238
236
  tabindex: "-1",
239
237
  class: "flex items-center justify-center text-muted-foreground hover:text-foreground focus:outline-none",
240
- onClick: W
238
+ onClick: J
241
239
  }, [
242
- x(f, {
240
+ p(f, {
243
241
  icon: b.value ? "lucide:eye-off" : "lucide:eye",
244
242
  class: "h-4 w-4"
245
243
  }, null, 8, ["icon"])
246
244
  ])) : c("", !0),
247
- n.showClearButton && j.value && !n.disabled && !n.loading && n.type !== "textarea" && n.type !== "password" && (h.value || w.value) ? (d(), u("button", {
245
+ n.showClearButton && R.value && !n.disabled && !n.loading && n.type !== "textarea" && n.type !== "password" && (w.value || C.value) ? (r(), u("button", {
248
246
  key: 3,
249
247
  type: "button",
250
248
  tabindex: "-1",
251
249
  class: "flex items-center justify-center text-muted-foreground hover:text-foreground focus:outline-none transition-opacity duration-200",
252
- onClick: q
250
+ onClick: K
253
251
  }, [
254
- x(f, {
252
+ p(f, {
255
253
  icon: "lucide:x-circle",
256
254
  class: "h-4 w-4"
257
255
  })
258
256
  ])) : c("", !0)
259
257
  ])
260
258
  ], 32),
261
- p.value ? (d(), u("div", {
259
+ h.value ? (r(), u("div", {
262
260
  key: 1,
263
- class: a(D.value)
261
+ class: a(W.value)
264
262
  }, [
265
- F(t.$slots, "addon-right", {}, () => [
266
- k(V(n.addonRight), 1)
263
+ M(o.$slots, "addon-right", {}, () => [
264
+ V(B(n.addonRight), 1)
267
265
  ])
268
266
  ], 2)) : c("", !0)
269
267
  ], 2)
@@ -271,5 +269,5 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
271
269
  }
272
270
  });
273
271
  export {
274
- le as default
272
+ ue as default
275
273
  };
@@ -1,7 +1,7 @@
1
1
  import o from "./KanbanBoard.vue2.js";
2
2
  /* empty css */
3
3
  import a from "../../_virtual/_plugin-vue_export-helper.js";
4
- const p = /* @__PURE__ */ a(o, [["__scopeId", "data-v-9ac38977"]]);
4
+ const p = /* @__PURE__ */ a(o, [["__scopeId", "data-v-3849c10a"]]);
5
5
  export {
6
6
  p as default
7
7
  };
@@ -1,14 +1,15 @@
1
- import { defineComponent as B, ref as K, watch as U, onMounted as E, openBlock as r, createElementBlock as d, normalizeClass as u, createElementVNode as n, renderSlot as m, unref as t, toDisplayString as f, Fragment as g, renderList as b, createVNode as h, withCtx as L, createCommentVNode as M } from "vue";
2
- import { VueDraggable as V } from "vue-draggable-plus";
3
- import j from "../Spinner/Spinner.vue.js";
4
- import { useKanbanBoard as z } from "./useKanbanBoard.js";
5
- const F = { class: "flex items-center justify-between font-semibold text-foreground" }, H = {
1
+ import { defineComponent as K, ref as U, watch as E, onMounted as L, computed as M, openBlock as r, createElementBlock as d, normalizeClass as u, createElementVNode as n, renderSlot as m, unref as t, toDisplayString as f, Fragment as g, renderList as b, createVNode as h, withCtx as V, createCommentVNode as j } from "vue";
2
+ import { VueDraggable as z } from "vue-draggable-plus";
3
+ import F from "../Spinner/Spinner.vue.js";
4
+ import { useKanbanBoard as H } from "./useKanbanBoard.js";
5
+ import { $t as J } from "../../utils/i18n.js";
6
+ const O = { class: "flex items-center justify-between font-semibold text-foreground" }, T = {
6
7
  key: 0,
7
8
  class: "flex-1 flex flex-col gap-3 min-h-[50px] py-1"
8
- }, J = { class: "bg-body p-3 rounded-md shadow-sm border border-border text-sm" }, O = {
9
+ }, A = { class: "bg-body p-3 rounded-md shadow-sm border border-border text-sm" }, R = {
9
10
  key: 0,
10
11
  class: "py-4 flex justify-center shrink-0"
11
- }, G = /* @__PURE__ */ B({
12
+ }, X = /* @__PURE__ */ K({
12
13
  __name: "KanbanBoard",
13
14
  props: {
14
15
  column: {},
@@ -23,112 +24,112 @@ const F = { class: "flex items-center justify-between font-semibold text-foregro
23
24
  ghostClass: {}
24
25
  },
25
26
  emits: ["change", "update:columnData"],
26
- setup(o, { emit: v }) {
27
- const l = o, i = v, p = K(null), { items: a, isInitialLoading: y, isLoadingMore: x, pageInfo: C, loadInitial: k, loadMore: D } = z(
28
- l.column.id,
29
- l.loadData,
30
- l.columnData
31
- ), w = (e) => {
32
- a.value = e, i("update:columnData", e);
27
+ setup(l, { emit: p }) {
28
+ const o = l, c = p, v = U(null), { items: a, isInitialLoading: y, isLoadingMore: x, pageInfo: C, loadInitial: k, loadMore: D } = H(
29
+ o.column.id,
30
+ o.loadData,
31
+ o.columnData
32
+ ), I = (e) => {
33
+ a.value = e, c("update:columnData", e);
33
34
  };
34
- U(
35
- () => l.columnData,
35
+ E(
36
+ () => o.columnData,
36
37
  (e) => {
37
38
  e && JSON.stringify(e) !== JSON.stringify(a.value) && (a.value = [...e]);
38
39
  },
39
40
  { deep: !0 }
40
- ), E(() => {
41
- l.loadData && (!l.columnData || l.columnData.length === 0) && k();
41
+ ), L(() => {
42
+ o.loadData && (!o.columnData || o.columnData.length === 0) && k();
42
43
  });
43
- const I = (e) => {
44
- const c = e.target;
45
- c.scrollTop + c.clientHeight >= c.scrollHeight - 50 && D();
44
+ const w = (e) => {
45
+ const i = e.target;
46
+ i.scrollTop + i.clientHeight >= i.scrollHeight - 50 && D();
46
47
  }, S = (e) => {
47
- i("change", { type: "add", event: e, columnId: l.column.id });
48
- }, N = (e) => {
49
- i("change", { type: "remove", event: e, columnId: l.column.id });
48
+ c("change", { type: "add", event: e, columnId: o.column.id });
50
49
  }, $ = (e) => {
51
- i("change", { type: "update", event: e, columnId: l.column.id });
52
- };
53
- return (e, c) => (r(), d("div", {
50
+ c("change", { type: "remove", event: e, columnId: o.column.id });
51
+ }, N = (e) => {
52
+ c("change", { type: "update", event: e, columnId: o.column.id });
53
+ }, B = M(() => o.column.titleI18n ? J(o.column.titleI18n) : o.column.title);
54
+ return (e, i) => (r(), d("div", {
54
55
  class: u([
55
56
  "flex flex-col bg-card rounded-lg overflow-hidden shrink-0 border border-border/60",
56
- o.boardClass || "w-80"
57
+ l.boardClass || "w-80"
57
58
  ])
58
59
  }, [
59
60
  n("div", {
60
- class: u(["p-3 border-b border-border/80 ", o.headerClass])
61
+ class: u(["p-3 border-b border-border/80 ", l.headerClass])
61
62
  }, [
62
63
  m(e.$slots, "header", {
63
- column: o.column,
64
+ column: l.column,
64
65
  pageInfo: t(C)
65
66
  }, () => [
66
- n("div", F, [
67
- n("span", null, f(o.column.title), 1)
67
+ n("div", O, [
68
+ n("span", null, f(B.value), 1)
68
69
  ])
69
70
  ], !0)
70
71
  ], 2),
71
72
  n("div", {
72
73
  ref_key: "scrollContainer",
73
- ref: p,
74
- class: u(["flex-1 flex flex-col overflow-y-auto p-3 custom-scrollbar", o.bodyClass]),
75
- onScroll: I
74
+ ref: v,
75
+ class: u(["flex-1 flex flex-col overflow-y-auto p-3 custom-scrollbar", l.bodyClass]),
76
+ onScroll: w
76
77
  }, [
77
- t(y) && t(a).length === 0 ? (r(), d("div", H, [
78
+ t(y) && t(a).length === 0 ? (r(), d("div", T, [
78
79
  (r(), d(g, null, b(3, (s) => n("div", {
79
80
  key: "skeleton-" + s,
80
81
  class: "bg-body p-3 rounded-md shadow-sm border border-border animate-pulse flex flex-col gap-3"
81
- }, [...c[0] || (c[0] = [
82
+ }, [...i[0] || (i[0] = [
82
83
  n("div", { class: "h-4 bg-muted/60 rounded w-2/3" }, null, -1),
83
84
  n("div", { class: "h-3 bg-muted/60 rounded w-1/3" }, null, -1)
84
85
  ])])), 64))
85
86
  ])) : (r(), d(g, { key: 1 }, [
86
87
  m(e.$slots, "prepend-item", {
87
- column: o.column,
88
+ column: l.column,
88
89
  items: t(a)
89
90
  }, void 0, !0),
90
- h(t(V), {
91
+ h(t(z), {
91
92
  "model-value": t(a),
92
- "onUpdate:modelValue": w,
93
- group: o.group,
93
+ "onUpdate:modelValue": I,
94
+ group: l.group,
94
95
  animation: 150,
95
- ghostClass: o.ghostClass || "kanban-ghost",
96
- class: u(["flex-1 flex flex-col gap-2 min-h-[50px] py-1", o.draggableClass]),
96
+ ghostClass: l.ghostClass || "kanban-ghost",
97
+ class: u(["flex-1 flex flex-col gap-2 min-h-[50px] py-1", l.draggableClass]),
97
98
  onAdd: S,
98
- onRemove: N,
99
- onUpdate: $
99
+ onRemove: $,
100
+ onUpdate: N
100
101
  }, {
101
- default: L(() => [
102
+ default: V(() => [
102
103
  (r(!0), d(g, null, b(t(a), (s) => (r(), d("div", {
103
- key: s[o.itemKey || "id"],
104
+ key: s[l.itemKey || "id"],
104
105
  class: "cursor-grab active:cursor-grabbing"
105
106
  }, [
106
107
  m(e.$slots, "item", {
107
108
  item: s,
108
- column: o.column
109
+ column: l.column
109
110
  }, () => [
110
- n("div", J, f(s.title || s.name || s.id), 1)
111
+ n("div", A, f(s.title || s.name || s.id), 1)
111
112
  ], !0)
112
113
  ]))), 128))
113
114
  ]),
114
115
  _: 3
115
116
  }, 8, ["model-value", "group", "ghostClass", "class"]),
116
117
  m(e.$slots, "append-item", {
117
- column: o.column,
118
+ column: l.column,
118
119
  items: t(a)
119
120
  }, void 0, !0),
120
- t(x) ? (r(), d("div", O, [
121
- h(j, {
121
+ t(x) ? (r(), d("div", R, [
122
+ h(F, {
122
123
  size: "sm",
123
124
  variant: "dots",
124
125
  color: "primary"
125
126
  })
126
- ])) : M("", !0)
127
+ ])) : j("", !0)
127
128
  ], 64))
128
129
  ], 34)
129
130
  ], 2));
130
131
  }
131
132
  });
132
133
  export {
133
- G as default
134
+ X as default
134
135
  };
@@ -10,6 +10,7 @@ export interface KanbanLoadDataResult<T = any> {
10
10
  export interface KanbanColumn {
11
11
  id: string | number;
12
12
  title: string;
13
+ titleI18n?: string;
13
14
  [key: string]: any;
14
15
  }
15
16
  export interface KanbanChangeEvent {
@@ -1,7 +1,8 @@
1
1
  import { defineComponent as B, ref as d, computed as m, onMounted as K, onUnmounted as O, openBlock as u, createBlock as w, resolveDynamicComponent as z, normalizeStyle as v, withCtx as C, createElementBlock as c, Fragment as p, renderList as y, renderSlot as S } from "vue";
2
2
  import { MASONRY_BREAKPOINTS as x } from "./types.js";
3
3
  import { debounce as A } from "../../utils/functions.js";
4
- const j = /* @__PURE__ */ B({
4
+ import "../../core/config.js";
5
+ const k = /* @__PURE__ */ B({
5
6
  __name: "Masonry",
6
7
  props: {
7
8
  data: {},
@@ -79,5 +80,5 @@ const j = /* @__PURE__ */ B({
79
80
  }
80
81
  });
81
82
  export {
82
- j as default
83
+ k as default
83
84
  };
@@ -2,10 +2,12 @@ import { Component } from 'vue';
2
2
  interface Props {
3
3
  show?: boolean;
4
4
  title?: string;
5
+ titleI18n?: string;
5
6
  maxWidth?: string;
6
7
  closeOutside?: boolean;
7
8
  backdrop?: boolean;
8
9
  description?: string;
10
+ descriptionI18n?: string;
9
11
  triggerClass?: string;
10
12
  bodyClass?: string;
11
13
  headerClass?: string;