vlite3 1.1.1 → 1.1.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 (60) hide show
  1. package/components/AttachmentsList/AttachmentsList.vue.d.ts +1 -16
  2. package/components/AttachmentsList/AttachmentsList.vue.js +191 -167
  3. package/components/AvatarUploader/AvatarUploader.vue.d.ts +1 -1
  4. package/components/Button.vue.d.ts +1 -1
  5. package/components/Calendar/Calendar.vue.d.ts +6 -6
  6. package/components/Carousel/Carousel.vue.d.ts +2 -2
  7. package/components/CategoryManager/CategoryManager.vue.d.ts +2 -1
  8. package/components/CategoryManager/CategoryManager.vue.js +187 -147
  9. package/components/CategoryManager/types.d.ts +14 -0
  10. package/components/Chip/Chip.vue.d.ts +2 -2
  11. package/components/CommandPalette/CommandPaletteContent.vue2.js +1 -1
  12. package/components/CommandPalette/{CommandPaletteItem.vue2.js → CommandPaletteItem.vue.js} +1 -1
  13. package/components/ConfirmationModal.vue.d.ts +2 -2
  14. package/components/CustomFieldsDisplay/CustomFieldsDisplay.vue.d.ts +1 -1
  15. package/components/DataTable/DataTable.vue.d.ts +3 -3
  16. package/components/Dropdown/Dropdown.vue.d.ts +2 -2
  17. package/components/Dropdown/DropdownGroupedLayout.vue.d.ts +1 -1
  18. package/components/Dropdown/DropdownMenu.vue.d.ts +1 -1
  19. package/components/Dropdown/DropdownTrigger.vue.d.ts +1 -1
  20. package/components/FilePicker/FilePicker.vue.d.ts +1 -1
  21. package/components/Form/Form.vue.js +2 -2
  22. package/components/Form/Form.vue2.js +220 -232
  23. package/components/Form/FormField.vue.d.ts +1 -1
  24. package/components/Input.vue.d.ts +3 -3
  25. package/components/Invoice/Invoice.vue.d.ts +1 -4
  26. package/components/Invoice/Invoice.vue.js +20 -13
  27. package/components/Invoice/InvoiceVariant1.vue.d.ts +3 -0
  28. package/components/Invoice/InvoiceVariant1.vue.js +302 -256
  29. package/components/Invoice/InvoiceVariant2.vue.d.ts +3 -0
  30. package/components/Invoice/InvoiceVariant2.vue.js +164 -168
  31. package/components/Invoice/InvoiceVariant3.vue.d.ts +3 -0
  32. package/components/Invoice/InvoiceVariant3.vue.js +213 -170
  33. package/components/Invoice/InvoiceVariant4.vue.d.ts +3 -0
  34. package/components/Invoice/InvoiceVariant4.vue.js +280 -227
  35. package/components/Invoice/types.d.ts +4 -0
  36. package/components/List/List.vue.d.ts +1 -9
  37. package/components/List/List.vue.js +166 -165
  38. package/components/List/ListFieldRow.vue.d.ts +2 -2
  39. package/components/List/ListFieldRow.vue.js +50 -50
  40. package/components/MultiSelect/MultiSelect.vue.d.ts +1 -1
  41. package/components/Navbar/NavbarItem.vue.d.ts +1 -1
  42. package/components/NavbarCommandPalette.vue.js +1 -1
  43. package/components/NumberInput.vue.d.ts +2 -2
  44. package/components/OTPInput/OTPInput.vue.d.ts +1 -1
  45. package/components/PricingPlan/PricingPlan.vue.d.ts +1 -1
  46. package/components/SidebarMenu/SidebarMenu.vue.d.ts +1 -1
  47. package/components/Stats/Stats.vue.d.ts +1 -1
  48. package/components/StatusChip/status-map.js +27 -7
  49. package/components/ThumbnailSelector/ThumbnailSelector.vue.d.ts +2 -2
  50. package/components/Workbook/Workbook.vue.d.ts +3 -3
  51. package/core/config.d.ts +76 -0
  52. package/core/index.js +17 -5
  53. package/index.js +264 -262
  54. package/package.json +1 -1
  55. package/style.css +2 -2
  56. package/types/config.type.d.ts +6 -0
  57. package/types/list.type.d.ts +6 -0
  58. package/utils/configUtils.d.ts +9 -0
  59. package/utils/configUtils.js +7 -0
  60. package/utils/index.d.ts +1 -0
@@ -1,4 +1,4 @@
1
- import { defineComponent as $, ref as p, computed as v, openBlock as t, createElementBlock as a, normalizeClass as i, createElementVNode as c, createBlock as f, createCommentVNode as b, toDisplayString as h, renderSlot as w, resolveDynamicComponent as L, Fragment as m, createVNode as B } from "vue";
1
+ import { defineComponent as M, ref as $, computed as v, openBlock as t, createElementBlock as a, normalizeClass as s, createElementVNode as c, createBlock as f, createCommentVNode as x, toDisplayString as b, renderSlot as w, resolveDynamicComponent as L, Fragment as m, createVNode as p } from "vue";
2
2
  import g from "../Icon.vue.js";
3
3
  import k from "../Price/Price.vue.js";
4
4
  import { $t as j } from "../../utils/i18n.js";
@@ -23,7 +23,7 @@ const E = { class: "flex items-center gap-2 min-w-0" }, F = { class: "text-xs fo
23
23
  key: 1,
24
24
  class: "text-sm text-gray-600 tracking-widest select-none",
25
25
  "aria-hidden": "true"
26
- }, se = ["aria-label"], ie = ["src", "alt"], oe = ["innerHTML"], ye = /* @__PURE__ */ $({
26
+ }, ie = ["aria-label"], se = ["src", "alt"], oe = ["innerHTML"], ye = /* @__PURE__ */ M({
27
27
  __name: "ListFieldRow",
28
28
  props: {
29
29
  field: {},
@@ -38,7 +38,7 @@ const E = { class: "flex items-center gap-2 min-w-0" }, F = { class: "text-xs fo
38
38
  autoLineByLineThreshold: { default: 50 }
39
39
  },
40
40
  setup(e) {
41
- const l = e, s = p(!1), o = v(() => I(l.field.key, l.data)), r = v(() => {
41
+ const l = e, i = $(!1), o = v(() => I(l.field.key, l.data)), r = v(() => {
42
42
  const n = o.value;
43
43
  if (l.field.format)
44
44
  return l.field.format(n, l.data);
@@ -71,12 +71,12 @@ const E = { class: "flex items-center gap-2 min-w-0" }, F = { class: "text-xs fo
71
71
  } else
72
72
  n.push(l.field.class);
73
73
  return n.join(" ");
74
- }), x = v(() => l.field.type === "image"), T = v(() => l.variant === "striped" && l.index % 2 !== 0), S = v(() => l.variant === "stacked"), H = v(() => l.field.lineByLine ? !0 : l.autoLineByLineThreshold > 0 ? String(r.value ?? "").length > l.autoLineByLineThreshold : !1), M = v(() => l.stackedBorderStyle === "divider" && l.stackedColIndex !== 0 ? "border-l border-border pl-4 pr-3.5 py-2" : "px-3.5 py-2");
75
- return (n, u) => S.value ? (t(), a("div", {
74
+ }), h = v(() => l.field.type === "image"), B = v(() => l.variant === "striped" && l.index % 2 !== 0), C = v(() => l.variant === "stacked"), S = v(() => l.field.lineByLineLayout === "inline" ? !1 : l.field.lineByLineLayout === "block" || l.field.lineByLine ? !0 : l.autoLineByLineThreshold > 0 ? String(r.value ?? "").length > l.autoLineByLineThreshold : !1), H = v(() => l.stackedBorderStyle === "divider" && l.stackedColIndex !== 0 ? "border-l border-border pl-4 pr-3.5 py-2" : "px-3.5 py-2");
75
+ return (n, u) => C.value ? (t(), a("div", {
76
76
  key: 0,
77
- class: i([
77
+ class: s([
78
78
  "list-field-row list-field-row--stacked flex flex-col gap-0.5 min-w-0",
79
- M.value
79
+ H.value
80
80
  ]),
81
81
  role: "row"
82
82
  }, [
@@ -85,8 +85,8 @@ const E = { class: "flex items-center gap-2 min-w-0" }, F = { class: "text-xs fo
85
85
  key: 0,
86
86
  icon: e.field.icon,
87
87
  class: "w-3 h-3 text-muted-foreground shrink-0"
88
- }, null, 8, ["icon"])) : b("", !0),
89
- c("span", F, h(y.value), 1)
88
+ }, null, 8, ["icon"])) : x("", !0),
89
+ c("span", F, b(y.value), 1)
90
90
  ]),
91
91
  c("div", O, [
92
92
  n.$slots[e.field.key] ? w(n.$slots, e.field.key, {
@@ -99,29 +99,29 @@ const E = { class: "flex items-center gap-2 min-w-0" }, F = { class: "text-xs fo
99
99
  data: e.data,
100
100
  value: o.value
101
101
  }, null, 8, ["data", "value"])) : e.field.isSensitive ? (t(), a("div", z, [
102
- s.value ? (t(), a(m, { key: 0 }, [
102
+ i.value ? (t(), a(m, { key: 0 }, [
103
103
  e.field.type === "price" ? (t(), f(k, {
104
104
  key: 0,
105
105
  value: o.value,
106
- class: i(["text-sm font-semibold text-foreground break-words leading-snug", d.value])
106
+ class: s(["text-sm font-semibold text-foreground wrap-break-word leading-snug", d.value])
107
107
  }, null, 8, ["value", "class"])) : (t(), a("span", {
108
108
  key: 1,
109
- class: i(["text-sm font-semibold text-foreground break-words leading-snug", d.value]),
109
+ class: s(["text-sm font-semibold text-foreground wrap-break-word leading-snug", d.value]),
110
110
  innerHTML: r.value
111
111
  }, null, 10, R))
112
112
  ], 64)) : (t(), a("span", Y, " •••••••• ")),
113
113
  c("button", {
114
114
  type: "button",
115
115
  class: "shrink-0 p-0.5 rounded-full text-muted-foreground hover:text-foreground hover:bg-muted transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary/50",
116
- "aria-label": s.value ? "Hide value" : "Show value",
117
- onClick: u[0] || (u[0] = (C) => s.value = !s.value)
116
+ "aria-label": i.value ? "Hide value" : "Show value",
117
+ onClick: u[0] || (u[0] = (T) => i.value = !i.value)
118
118
  }, [
119
- B(g, {
120
- icon: s.value ? "lucide:eye-off" : "lucide:eye",
119
+ p(g, {
120
+ icon: i.value ? "lucide:eye-off" : "lucide:eye",
121
121
  class: "w-3 h-3"
122
122
  }, null, 8, ["icon"])
123
123
  ], 8, q)
124
- ])) : x.value ? (t(), a("img", {
124
+ ])) : h.value ? (t(), a("img", {
125
125
  key: 3,
126
126
  src: r.value,
127
127
  alt: y.value,
@@ -130,19 +130,19 @@ const E = { class: "flex items-center gap-2 min-w-0" }, F = { class: "text-xs fo
130
130
  e.field.type === "price" ? (t(), f(k, {
131
131
  key: 0,
132
132
  value: o.value,
133
- class: i(["text-sm font-semibold text-foreground break-words leading-snug", d.value])
133
+ class: s(["text-sm font-semibold text-foreground wrap-break-word leading-snug", d.value])
134
134
  }, null, 8, ["value", "class"])) : (t(), a("span", {
135
135
  key: 1,
136
- class: i(["text-sm font-semibold text-foreground break-words leading-snug", d.value]),
136
+ class: s(["text-sm font-semibold text-foreground wrap-break-word leading-snug", d.value]),
137
137
  innerHTML: r.value
138
138
  }, null, 10, G))
139
139
  ], 64))
140
140
  ])
141
- ], 2)) : H.value ? (t(), a("div", {
141
+ ], 2)) : S.value ? (t(), a("div", {
142
142
  key: 1,
143
- class: i(["list-field-row list-field-row--block flex flex-col gap-y-1 px-3 py-2.5 transition-colors w-full", [
143
+ class: s(["list-field-row list-field-row--block flex flex-col gap-y-1 px-3 py-2.5 transition-colors w-full", [
144
144
  e.showBorderBottom && !e.isLast ? "border-b border-border" : "",
145
- T.value ? "bg-muted/40" : "",
145
+ B.value ? "bg-muted/40" : "",
146
146
  e.variant === "compact" ? "py-1.5!" : "",
147
147
  e.variant === "minimal" ? "px-0!" : ""
148
148
  ]]),
@@ -153,8 +153,8 @@ const E = { class: "flex items-center gap-2 min-w-0" }, F = { class: "text-xs fo
153
153
  key: 0,
154
154
  icon: e.field.icon,
155
155
  class: "w-3.5 h-3.5 text-gray-800 shrink-0"
156
- }, null, 8, ["icon"])) : b("", !0),
157
- c("span", K, h(y.value) + h(e.showColon ? ":" : ""), 1)
156
+ }, null, 8, ["icon"])) : x("", !0),
157
+ c("span", K, b(y.value) + b(e.showColon ? ":" : ""), 1)
158
158
  ]),
159
159
  c("div", P, [
160
160
  n.$slots[e.field.key] ? w(n.$slots, e.field.key, {
@@ -167,29 +167,29 @@ const E = { class: "flex items-center gap-2 min-w-0" }, F = { class: "text-xs fo
167
167
  data: e.data,
168
168
  value: o.value
169
169
  }, null, 8, ["data", "value"])) : e.field.isSensitive ? (t(), a("div", Q, [
170
- s.value ? (t(), a(m, { key: 0 }, [
170
+ i.value ? (t(), a(m, { key: 0 }, [
171
171
  e.field.type === "price" ? (t(), f(k, {
172
172
  key: 0,
173
173
  value: o.value,
174
- class: i(["text-sm text-gray-600 break-words leading-snug", d.value])
174
+ class: s(["text-sm text-gray-600 wrap-break-word leading-snug", d.value])
175
175
  }, null, 8, ["value", "class"])) : (t(), a("span", {
176
176
  key: 1,
177
- class: i(["text-sm text-gray-600 break-words leading-snug", d.value]),
177
+ class: s(["text-sm text-gray-600 wrap-break-word leading-snug", d.value]),
178
178
  innerHTML: r.value
179
179
  }, null, 10, U))
180
180
  ], 64)) : (t(), a("span", W, " •••••••• ")),
181
181
  c("button", {
182
182
  type: "button",
183
183
  class: "shrink-0 p-1 rounded-full text-muted-foreground hover:text-foreground hover:bg-muted transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary/50",
184
- "aria-label": s.value ? "Hide value" : "Show value",
185
- onClick: u[1] || (u[1] = (C) => s.value = !s.value)
184
+ "aria-label": i.value ? "Hide value" : "Show value",
185
+ onClick: u[1] || (u[1] = (T) => i.value = !i.value)
186
186
  }, [
187
- B(g, {
188
- icon: s.value ? "lucide:eye-off" : "lucide:eye",
187
+ p(g, {
188
+ icon: i.value ? "lucide:eye-off" : "lucide:eye",
189
189
  class: "w-3.5 h-3.5"
190
190
  }, null, 8, ["icon"])
191
191
  ], 8, X)
192
- ])) : x.value ? (t(), a("img", {
192
+ ])) : h.value ? (t(), a("img", {
193
193
  key: 3,
194
194
  src: r.value,
195
195
  alt: y.value,
@@ -198,19 +198,19 @@ const E = { class: "flex items-center gap-2 min-w-0" }, F = { class: "text-xs fo
198
198
  e.field.type === "price" ? (t(), f(k, {
199
199
  key: 0,
200
200
  value: o.value,
201
- class: i(["text-sm text-gray-900 break-words leading-snug", d.value])
201
+ class: s(["text-sm text-gray-900 wrap-break-word leading-snug", d.value])
202
202
  }, null, 8, ["value", "class"])) : (t(), a("span", {
203
203
  key: 1,
204
- class: i(["text-sm text-gray-900 break-words leading-snug", d.value]),
204
+ class: s(["text-sm text-gray-900 wrap-break-word leading-snug", d.value]),
205
205
  innerHTML: r.value
206
206
  }, null, 10, _))
207
207
  ], 64))
208
208
  ])
209
209
  ], 2)) : (t(), a("div", {
210
210
  key: 2,
211
- class: i(["list-field-row flex justify-between gap-3 px-3 py-2.5 transition-colors", [
211
+ class: s(["list-field-row flex justify-between gap-3 px-3 py-2.5 transition-colors", [
212
212
  e.showBorderBottom && !e.isLast ? "border-b border-border" : "",
213
- T.value ? "bg-muted/40" : "",
213
+ B.value ? "bg-muted/40" : "",
214
214
  e.variant === "compact" ? "py-1.5!" : "",
215
215
  e.variant === "minimal" ? "px-0!" : ""
216
216
  ]]),
@@ -221,8 +221,8 @@ const E = { class: "flex items-center gap-2 min-w-0" }, F = { class: "text-xs fo
221
221
  key: 0,
222
222
  icon: e.field.icon,
223
223
  class: "w-3.5 h-3.5 text-gray-800 shrink-0"
224
- }, null, 8, ["icon"])) : b("", !0),
225
- c("span", te, h(y.value) + h(e.showColon ? ":" : ""), 1)
224
+ }, null, 8, ["icon"])) : x("", !0),
225
+ c("span", te, b(y.value) + b(e.showColon ? ":" : ""), 1)
226
226
  ]),
227
227
  c("div", le, [
228
228
  n.$slots[e.field.key] ? w(n.$slots, e.field.key, {
@@ -235,41 +235,41 @@ const E = { class: "flex items-center gap-2 min-w-0" }, F = { class: "text-xs fo
235
235
  data: e.data,
236
236
  value: o.value
237
237
  }, null, 8, ["data", "value"])) : e.field.isSensitive ? (t(), a(m, { key: 2 }, [
238
- s.value ? (t(), a(m, { key: 0 }, [
238
+ i.value ? (t(), a(m, { key: 0 }, [
239
239
  e.field.type === "price" ? (t(), f(k, {
240
240
  key: 0,
241
241
  value: o.value,
242
- class: i(["text-sm text-gray-600 text-right break-words", d.value])
242
+ class: s(["text-sm text-gray-600 text-right wrap-break-word", d.value])
243
243
  }, null, 8, ["value", "class"])) : (t(), a("span", {
244
244
  key: 1,
245
- class: i(["text-sm text-gray-600 text-right break-words", d.value]),
245
+ class: s(["text-sm text-gray-600 text-right wrap-break-word", d.value]),
246
246
  innerHTML: r.value
247
247
  }, null, 10, ae))
248
248
  ], 64)) : (t(), a("span", ne, " •••••••• ")),
249
249
  c("button", {
250
250
  type: "button",
251
251
  class: "shrink-0 p-1 rounded-full text-muted-foreground hover:text-foreground hover:bg-muted transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary/50",
252
- "aria-label": s.value ? "Hide value" : "Show value",
253
- onClick: u[2] || (u[2] = (C) => s.value = !s.value)
252
+ "aria-label": i.value ? "Hide value" : "Show value",
253
+ onClick: u[2] || (u[2] = (T) => i.value = !i.value)
254
254
  }, [
255
- B(g, {
256
- icon: s.value ? "lucide:eye-off" : "lucide:eye",
255
+ p(g, {
256
+ icon: i.value ? "lucide:eye-off" : "lucide:eye",
257
257
  class: "w-3.5 h-3.5"
258
258
  }, null, 8, ["icon"])
259
- ], 8, se)
260
- ], 64)) : x.value ? (t(), a("img", {
259
+ ], 8, ie)
260
+ ], 64)) : h.value ? (t(), a("img", {
261
261
  key: 3,
262
262
  src: r.value,
263
263
  alt: y.value,
264
264
  class: "w-8 h-8 rounded-full object-cover border border-border"
265
- }, null, 8, ie)) : (t(), a(m, { key: 4 }, [
265
+ }, null, 8, se)) : (t(), a(m, { key: 4 }, [
266
266
  e.field.type === "price" ? (t(), f(k, {
267
267
  key: 0,
268
268
  value: o.value,
269
- class: i(["text-sm text-gray-900 text-right break-words leading-snug", d.value])
269
+ class: s(["text-sm text-gray-900 text-right wrap-break-word leading-snug", d.value])
270
270
  }, null, 8, ["value", "class"])) : (t(), a("span", {
271
271
  key: 1,
272
- class: i(["text-sm text-gray-900 text-right break-words leading-snug", d.value]),
272
+ class: s(["text-sm text-gray-900 text-right wrap-break-word leading-snug", d.value]),
273
273
  innerHTML: r.value
274
274
  }, null, 10, oe))
275
275
  ], 64))
@@ -33,8 +33,8 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
33
33
  variant: "default" | "outline" | "solid" | "floating" | string;
34
34
  size: "sm" | "md" | "lg";
35
35
  rounded: "none" | "sm" | "md" | "lg" | "xl" | "2xl" | "full" | string;
36
- disabled: boolean;
37
36
  loading: boolean;
37
+ disabled: boolean;
38
38
  modelValue: any[];
39
39
  options: (IDropdownOption | string | number)[];
40
40
  layout: "default" | "grouped";
@@ -27,9 +27,9 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
27
27
  }>, {
28
28
  class: string;
29
29
  variant: "default" | "pill" | "underline" | "ghost";
30
+ orientation: "horizontal" | "vertical";
30
31
  disabled: boolean;
31
32
  active: boolean;
32
- orientation: "horizontal" | "vertical";
33
33
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
34
34
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
35
35
  export default _default;
@@ -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: "ml-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 ml-1" }, A = /* @__PURE__ */ x({
8
8
  __name: "NavbarCommandPalette",
9
9
  props: {
@@ -15,13 +15,13 @@ export interface NumberInputProps {
15
15
  }
16
16
  declare const _default: import('vue').DefineComponent<NumberInputProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
17
17
  blur: (event: FocusEvent) => any;
18
- change: (value: number) => any;
19
18
  focus: (event: FocusEvent) => any;
19
+ change: (value: number) => any;
20
20
  "update:modelValue": (value: number) => any;
21
21
  }, string, import('vue').PublicProps, Readonly<NumberInputProps> & Readonly<{
22
22
  onBlur?: (event: FocusEvent) => any;
23
- onChange?: (value: number) => any;
24
23
  onFocus?: (event: FocusEvent) => any;
24
+ onChange?: (value: number) => any;
25
25
  "onUpdate:modelValue"?: (value: number) => any;
26
26
  }>, {
27
27
  mode: "solid" | "outline" | "ghost";
@@ -26,9 +26,9 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
26
26
  mask: boolean;
27
27
  variant: "solid" | "outline" | "ghost";
28
28
  size: "sm" | "md" | "lg";
29
+ placeholder: string;
29
30
  error: boolean;
30
31
  disabled: boolean;
31
- placeholder: string;
32
32
  modelValue: string;
33
33
  autofocus: boolean;
34
34
  attached: boolean;
@@ -14,8 +14,8 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
14
14
  "onUpdate:modelValue"?: (value: string | number) => any;
15
15
  }>, {
16
16
  variant: PricingPlanVariant;
17
- modelValue: string | number | null;
18
17
  columns: number | string;
18
+ modelValue: string | number | null;
19
19
  items: PricingPlanItemSchema[];
20
20
  gap: number;
21
21
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
@@ -2,10 +2,10 @@ import { SidebarMenuProps, SidebarMenuItemSchema } from './types';
2
2
  declare const _default: import('vue').DefineComponent<SidebarMenuProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SidebarMenuProps> & Readonly<{}>, {
3
3
  variant: "default" | "ghost";
4
4
  compact: boolean;
5
+ orientation: "vertical" | "horizontal";
5
6
  iconSize: string;
6
7
  items: SidebarMenuItemSchema[];
7
8
  mobileBreakpoint: "sm" | "md" | "lg" | "xl" | "none";
8
- orientation: "vertical" | "horizontal";
9
9
  allowMultiple: boolean;
10
10
  menuOffset: [number, number];
11
11
  indentSize: number;
@@ -2,8 +2,8 @@ import { StatsProps } from './types';
2
2
  declare const _default: import('vue').DefineComponent<StatsProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<StatsProps> & Readonly<{}>, {
3
3
  class: string;
4
4
  variant: import('./types').StatsVariant;
5
- loading: boolean;
6
5
  columns: number | string;
6
+ loading: boolean;
7
7
  layout: import('./types').StatsLayout;
8
8
  attached: boolean;
9
9
  iconBoxShape: import('./types').IconBoxShape;
@@ -1,4 +1,4 @@
1
- const d = {
1
+ const o = {
2
2
  // ── Active / Positive ──────────────────────────────────────────────────────
3
3
  active: { variant: "success", icon: "lucide:check-circle-2" },
4
4
  activated: { variant: "success", icon: "lucide:check-circle-2" },
@@ -24,6 +24,17 @@ const d = {
24
24
  passed: { variant: "success", icon: "lucide:check-circle-2" },
25
25
  instock: { variant: "success", icon: "lucide:package-check" },
26
26
  fulfilled: { variant: "success", icon: "lucide:package-check" },
27
+ // ── CRM / Sales / Leads ───────────────────────────────────────────────────
28
+ prospecting: { variant: "indigo", icon: "lucide:search" },
29
+ qualification: { variant: "purple", icon: "lucide:filter" },
30
+ proposal: { variant: "cyan", icon: "lucide:file-text" },
31
+ negotiation: { variant: "orange", icon: "lucide:handshake" },
32
+ won: { variant: "success", icon: "lucide:trophy" },
33
+ closedwon: { variant: "success", icon: "lucide:trophy", label: "Closed Won" },
34
+ lost: { variant: "danger", icon: "lucide:frown" },
35
+ closedlost: { variant: "danger", icon: "lucide:frown", label: "Closed Lost" },
36
+ contacted: { variant: "blue", icon: "lucide:message-square" },
37
+ qualified: { variant: "success", icon: "lucide:user-check" },
27
38
  // ── In Progress / Processing / Transit ─────────────────────────────────────
28
39
  inprogress: { variant: "info", icon: "lucide:loader-2" },
29
40
  processing: { variant: "info", icon: "lucide:loader-2" },
@@ -55,7 +66,7 @@ const d = {
55
66
  overdue: { variant: "orange", icon: "lucide:alarm-clock" },
56
67
  expiring: { variant: "orange", icon: "lucide:timer" },
57
68
  expiringsoon: { variant: "orange", icon: "lucide:timer" },
58
- low: { variant: "orange", icon: "lucide:arrow-down" },
69
+ low: { variant: "secondary", icon: "lucide:arrow-down" },
59
70
  lowstock: { variant: "orange", icon: "lucide:package" },
60
71
  warning: { variant: "warning", icon: "lucide:alert-triangle" },
61
72
  late: { variant: "orange", icon: "lucide:alarm-clock" },
@@ -82,12 +93,16 @@ const d = {
82
93
  void: { variant: "secondary", icon: "lucide:ban" },
83
94
  refunded: { variant: "pink", icon: "lucide:corner-up-left" },
84
95
  outofstock: { variant: "danger", icon: "lucide:package-x" },
85
- lost: { variant: "danger", icon: "lucide:x-circle" },
86
96
  absent: { variant: "danger", icon: "lucide:user-x" },
87
97
  offline: { variant: "secondary", icon: "lucide:wifi-off" },
88
98
  danger: { variant: "danger", icon: "lucide:alert-circle" },
89
99
  declined: { variant: "danger", icon: "lucide:thumbs-down" },
90
100
  laidoff: { variant: "danger", icon: "lucide:user-minus" },
101
+ // ── Communication & Presence ──────────────────────────────────────────────
102
+ incoming: { variant: "blue", icon: "lucide:arrow-down-left" },
103
+ outgoing: { variant: "indigo", icon: "lucide:arrow-up-right" },
104
+ missed: { variant: "danger", icon: "lucide:phone-missed" },
105
+ inperson: { variant: "indigo", icon: "lucide:users", label: "In Person" },
91
106
  // ── Priority / Severity ────────────────────────────────────────────────────
92
107
  critical: { variant: "danger", icon: "lucide:alert-octagon" },
93
108
  high: { variant: "danger", icon: "lucide:arrow-up-circle" },
@@ -115,6 +130,11 @@ const d = {
115
130
  unposted: { variant: "secondary", icon: "lucide:file-x" },
116
131
  settled: { variant: "success", icon: "lucide:handshake" },
117
132
  voided: { variant: "secondary", icon: "lucide:ban" },
133
+ // ── Payment Methods ────────────────────────────────────────────────────────
134
+ cash: { variant: "success", icon: "lucide:banknote" },
135
+ check: { variant: "blue", icon: "lucide:receipt" },
136
+ card: { variant: "purple", icon: "lucide:credit-card" },
137
+ transfer: { variant: "cyan", icon: "lucide:arrow-right-left" },
118
138
  // ── HR / Recruiting ────────────────────────────────────────────────────────
119
139
  hired: { variant: "success", icon: "lucide:user-check" },
120
140
  interviewing: { variant: "indigo", icon: "lucide:users" },
@@ -142,17 +162,17 @@ const d = {
142
162
  function n(i) {
143
163
  return i.toLowerCase().replace(/[\s_\-]+/g, "");
144
164
  }
145
- function o(i, c) {
165
+ function d(i, c) {
146
166
  const e = n(i);
147
167
  if (c) {
148
168
  for (const [a, r] of Object.entries(c))
149
169
  if (n(a) === e)
150
170
  return r;
151
171
  }
152
- return d[e] ?? { variant: "secondary" };
172
+ return o[e] ?? { variant: "secondary" };
153
173
  }
154
174
  export {
155
- d as STATUS_MAP,
175
+ o as STATUS_MAP,
156
176
  n as normalizeStatus,
157
- o as resolveStatus
177
+ d as resolveStatus
158
178
  };
@@ -27,9 +27,9 @@ declare const _default: import('vue').DefineComponent<ThumbnailSelectorProps, {}
27
27
  "onUpdate:images"?: (value: string[]) => any;
28
28
  "onUpdate:thumbnail"?: (value: string) => any;
29
29
  }>, {
30
- disabled: boolean;
31
30
  loading: boolean;
32
- images: string[];
33
31
  thumbnail: string | null;
32
+ disabled: boolean;
33
+ images: string[];
34
34
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
35
35
  export default _default;
@@ -13,18 +13,18 @@ declare function __VLS_template(): {
13
13
  };
14
14
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
15
15
  declare const __VLS_component: import('vue').DefineComponent<WorkbookProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
16
- change: (id: string) => any;
17
16
  delete: (id: string) => any;
18
17
  add: () => any;
18
+ change: (id: string) => any;
19
19
  "update:modelValue": (id: string) => any;
20
20
  "edit-start": (id: string) => any;
21
21
  "edit-end": (id: string) => any;
22
22
  duplicate: (id: string) => any;
23
23
  "update:sheets": (sheets: WorkbookSheet[]) => any;
24
24
  }, string, import('vue').PublicProps, Readonly<WorkbookProps> & Readonly<{
25
- onChange?: (id: string) => any;
26
25
  onDelete?: (id: string) => any;
27
26
  onAdd?: () => any;
27
+ onChange?: (id: string) => any;
28
28
  "onUpdate:modelValue"?: (id: string) => any;
29
29
  "onEdit-start"?: (id: string) => any;
30
30
  "onEdit-end"?: (id: string) => any;
@@ -32,10 +32,10 @@ declare const __VLS_component: import('vue').DefineComponent<WorkbookProps, {},
32
32
  "onUpdate:sheets"?: (sheets: WorkbookSheet[]) => any;
33
33
  }>, {
34
34
  variant: "chrome" | "folder" | "simple" | "card";
35
+ itemClass: string;
35
36
  modelValue: string;
36
37
  editable: boolean;
37
38
  draggable: boolean;
38
- itemClass: string;
39
39
  confirmDelete: boolean;
40
40
  allowIconChange: boolean;
41
41
  activeItemClass: string;
package/core/config.d.ts CHANGED
@@ -43,6 +43,44 @@ export declare const configState: {
43
43
  hideIcon?: boolean;
44
44
  customStatuses?: Record<string, import('..').CustomStatusConfig>;
45
45
  };
46
+ attachmentsList?: {
47
+ variant?: "default" | "list" | "inline" | "card";
48
+ size?: "sm" | "md" | "lg";
49
+ canView?: boolean;
50
+ canDownload?: boolean;
51
+ clickToPreview?: boolean;
52
+ showDownloadInList?: boolean;
53
+ rootClass?: string;
54
+ gridClass?: string;
55
+ cardClass?: string;
56
+ cardThumbnailClass?: string;
57
+ cardInfoClass?: string;
58
+ cardActionsClass?: string;
59
+ listClass?: string;
60
+ itemClass?: string;
61
+ itemIconBoxClass?: string;
62
+ itemNameClass?: string;
63
+ itemSizeClass?: string;
64
+ itemActionsClass?: string;
65
+ emptyClass?: string;
66
+ };
67
+ list?: {
68
+ title?: string;
69
+ class?: string;
70
+ titleI18n?: string;
71
+ variant?: import('..').ListVariant;
72
+ titleIcon?: string;
73
+ columns?: import('..').ListColumns;
74
+ showColon?: boolean;
75
+ loading?: boolean;
76
+ skeletonRows?: number;
77
+ stackedBorderStyle?: import('..').StackedBorderStyle;
78
+ };
79
+ invoice?: {
80
+ variant?: import('..').InvoiceVariant;
81
+ compact?: boolean;
82
+ displayBarcodeValue?: boolean;
83
+ };
46
84
  };
47
85
  };
48
86
  /**
@@ -88,5 +126,43 @@ export declare function useVLiteConfig(): {
88
126
  hideIcon?: boolean;
89
127
  customStatuses?: Record<string, import('..').CustomStatusConfig>;
90
128
  };
129
+ attachmentsList?: {
130
+ variant?: "default" | "list" | "inline" | "card";
131
+ size?: "sm" | "md" | "lg";
132
+ canView?: boolean;
133
+ canDownload?: boolean;
134
+ clickToPreview?: boolean;
135
+ showDownloadInList?: boolean;
136
+ rootClass?: string;
137
+ gridClass?: string;
138
+ cardClass?: string;
139
+ cardThumbnailClass?: string;
140
+ cardInfoClass?: string;
141
+ cardActionsClass?: string;
142
+ listClass?: string;
143
+ itemClass?: string;
144
+ itemIconBoxClass?: string;
145
+ itemNameClass?: string;
146
+ itemSizeClass?: string;
147
+ itemActionsClass?: string;
148
+ emptyClass?: string;
149
+ };
150
+ list?: {
151
+ title?: string;
152
+ class?: string;
153
+ titleI18n?: string;
154
+ variant?: import('..').ListVariant;
155
+ titleIcon?: string;
156
+ columns?: import('..').ListColumns;
157
+ showColon?: boolean;
158
+ loading?: boolean;
159
+ skeletonRows?: number;
160
+ stackedBorderStyle?: import('..').StackedBorderStyle;
161
+ };
162
+ invoice?: {
163
+ variant?: import('..').InvoiceVariant;
164
+ compact?: boolean;
165
+ displayBarcodeValue?: boolean;
166
+ };
91
167
  };
92
168
  };
package/core/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { configState as t, VLITE_CONFIG_KEY as s } from "./config.js";
2
- import { updateConfig as n, useVLiteConfig as p } from "./config.js";
3
- function o(e = {}) {
2
+ import { updateConfig as i, useVLiteConfig as r } from "./config.js";
3
+ function n(e = {}) {
4
4
  return {
5
5
  install(m) {
6
6
  e && (e.services && (t.services = { ...t.services, ...e.services }), e.importData && (t.importData = { ...t.importData, ...e.importData }), e.exportData && (t.exportData = { ...t.exportData, ...e.exportData }), e.components && (t.components = {
@@ -29,6 +29,18 @@ function o(e = {}) {
29
29
  ...t.components?.statusChip?.customStatuses || {},
30
30
  ...e.components.statusChip?.customStatuses || {}
31
31
  }
32
+ },
33
+ attachmentsList: {
34
+ ...t.components?.attachmentsList || {},
35
+ ...e.components.attachmentsList || {}
36
+ },
37
+ list: {
38
+ ...t.components?.list || {},
39
+ ...e.components.list || {}
40
+ },
41
+ invoice: {
42
+ ...t.components?.invoice || {},
43
+ ...e.components.invoice || {}
32
44
  }
33
45
  })), m.provide(s, t), m.config.globalProperties.$vlite = t;
34
46
  }
@@ -37,7 +49,7 @@ function o(e = {}) {
37
49
  export {
38
50
  s as VLITE_CONFIG_KEY,
39
51
  t as configState,
40
- o as createVLite,
41
- n as updateConfig,
42
- p as useVLiteConfig
52
+ n as createVLite,
53
+ i as updateConfig,
54
+ r as useVLiteConfig
43
55
  };