vlite3 1.4.24 → 1.4.25

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 (29) hide show
  1. package/components/AppShell/AppShell.vue.d.ts +2 -0
  2. package/components/AppShell/AppShell.vue.js +11 -9
  3. package/components/AppShell/AppShellLayoutClassic.vue.js +34 -32
  4. package/components/AppShell/AppShellLayoutDashboard.vue.js +51 -49
  5. package/components/AppShell/AppShellLayoutDock.vue.js +52 -50
  6. package/components/AppShell/AppShellLayoutHeaderShell.vue.js +56 -54
  7. package/components/AppShell/AppShellLayoutSidebarFirst.vue.js +51 -49
  8. package/components/AppShell/AppShellLayoutStorefront.vue.js +40 -38
  9. package/components/AppShell/useAppShell.js +1 -1
  10. package/components/CategoryManager/CategoryManager.vue2.js +2 -2
  11. package/components/Chart/GanttChart.vue.js +1 -1
  12. package/components/Chart/GanttChart.vue2.js +367 -364
  13. package/components/Chart/types.d.ts +2 -0
  14. package/components/CommandPalette/CommandPaletteContent.vue2.js +1 -1
  15. package/components/CommandPalette/{CommandPaletteItem.vue2.js → CommandPaletteItem.vue.js} +1 -1
  16. package/components/Dropdown/DropdownMenu.vue.js +1 -1
  17. package/components/Form/Form.vue.js +1 -1
  18. package/components/Form/Form.vue2.js +131 -127
  19. package/components/NavbarCommandPalette.vue.js +1 -1
  20. package/components/RichTextEditor/RichTextEditor.vue.js +4 -4
  21. package/components/RichTextEditor/RichTextLinkPopover.vue3.js +2 -2
  22. package/components/RichTextEditor/RichTextToolbar.vue3.js +2 -2
  23. package/components/Screen/ScreenFilter.vue.js +2 -2
  24. package/package.json +1 -1
  25. package/style.css +1 -1
  26. package/types/appshell.type.d.ts +2 -0
  27. /package/components/Dropdown/{DropdownMenu.vue2.js → DropdownMenu.vue3.js} +0 -0
  28. /package/components/RichTextEditor/{RichTextLinkPopover.vue.js → RichTextLinkPopover.vue2.js} +0 -0
  29. /package/components/RichTextEditor/{RichTextToolbar.vue.js → RichTextToolbar.vue2.js} +0 -0
@@ -399,4 +399,6 @@ export interface GanttChartProps {
399
399
  draggable?: boolean;
400
400
  /** When moving a task, also shift all dependent tasks recursively */
401
401
  cascadeDependencies?: boolean;
402
+ /** Show zoom controls and enable Ctrl/Meta + wheel zoom */
403
+ zoom?: boolean;
402
404
  }
@@ -4,7 +4,7 @@ import k from "../Icon.vue.js";
4
4
  import { $t as E } from "../../utils/i18n.js";
5
5
  import { useCommandPaletteItems as Y } from "./useCommandPaletteItems.js";
6
6
  import { useCommandPaletteNav as Z } from "./useCommandPaletteNav.js";
7
- import ee from "./CommandPaletteItem.vue2.js";
7
+ import ee from "./CommandPaletteItem.vue.js";
8
8
  const te = { class: "command-palette-content flex flex-col w-full h-full max-h-[70vh]" }, oe = { class: "flex items-center gap-3 px-4 py-3 border-b border-border/80 shrink-0" }, se = ["placeholder"], ne = ["aria-label"], re = {
9
9
  key: 0,
10
10
  class: "flex flex-col items-center justify-center py-14 px-6 text-center select-none",
@@ -1,5 +1,5 @@
1
1
  import t from "./CommandPaletteItem.vue3.js";
2
- /* empty css */
2
+ /* empty css */
3
3
  import o from "../../_virtual/_plugin-vue_export-helper.js";
4
4
  const r = /* @__PURE__ */ o(t, [["__scopeId", "data-v-66b1ae06"]]);
5
5
  export {
@@ -1,4 +1,4 @@
1
- import o from "./DropdownMenu.vue2.js";
1
+ import o from "./DropdownMenu.vue3.js";
2
2
  /* empty css */
3
3
  import r from "../../_virtual/_plugin-vue_export-helper.js";
4
4
  const m = /* @__PURE__ */ r(o, [["__scopeId", "data-v-173c7a02"]]);
@@ -1,7 +1,7 @@
1
1
  import o from "./Form.vue2.js";
2
2
  /* empty css */
3
3
  import r from "../../_virtual/_plugin-vue_export-helper.js";
4
- const _ = /* @__PURE__ */ r(o, [["__scopeId", "data-v-4ce4b819"]]);
4
+ const _ = /* @__PURE__ */ r(o, [["__scopeId", "data-v-b84399b6"]]);
5
5
  export {
6
6
  _ as default
7
7
  };
@@ -1,4 +1,4 @@
1
- import { defineComponent as Ve, computed as o, inject as Le, onMounted as ue, onUnmounted as X, ref as M, watch as de, openBlock as n, createElementBlock as d, withKeys as ce, withModifiers as Y, normalizeClass as m, createElementVNode as b, createVNode as k, mergeProps as $, toDisplayString as G, renderSlot as me, unref as a, createCommentVNode as c, createBlock as F, withCtx as ve, Fragment as Ie, renderList as ze } from "vue";
1
+ import { defineComponent as Ve, computed as o, inject as Le, onMounted as ue, onUnmounted as Y, ref as M, watch as de, openBlock as n, createElementBlock as d, withKeys as ce, withModifiers as Z, normalizeClass as m, createElementVNode as x, createVNode as k, mergeProps as G, toDisplayString as H, renderSlot as me, unref as a, createCommentVNode as c, createBlock as F, withCtx as ve, Fragment as Ie, renderList as ze } from "vue";
2
2
  import { useForm as Ne } from "./composables/useForm.js";
3
3
  import j from "./FormFields.vue.js";
4
4
  import Be from "./FormField.vue.js";
@@ -26,7 +26,10 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
26
26
  }, _e = { class: "text-lg font-semibold text-foreground" }, et = {
27
27
  key: 0,
28
28
  class: "text-sm text-muted-foreground mt-1"
29
- }, tt = { class: "flex gap-3 items-center" }, gt = /* @__PURE__ */ Ve({
29
+ }, tt = {
30
+ key: 0,
31
+ class: "flex gap-3 items-center"
32
+ }, gt = /* @__PURE__ */ Ve({
30
33
  __name: "Form",
31
34
  props: {
32
35
  schema: {},
@@ -69,29 +72,27 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
69
72
  },
70
73
  emits: ["onSubmit", "onCancel", "onStepChange", "onAddonAction", "onBack", "onChange"],
71
74
  setup(e, { expose: fe, emit: ge }) {
72
- const t = e, g = ge, he = o(
73
- () => He(t.pageTitleI18n, t.pageTitle)
74
- ), h = Le("modal-context", null), be = Ee(), H = o(() => be?.components?.form || {}), P = o(() => t.variant ?? H.value.variant ?? "outline"), V = o(() => t.size ?? H.value.size ?? "md"), L = o(() => t.rounded ?? H.value.rounded ?? "md"), E = o(
75
- () => t.showRequiredAsterisk ?? H.value.showRequiredAsterisk ?? !0
76
- ), Z = o(() => t.showCancel || !!h), R = o(() => !!h), I = o(
77
- () => t.layout !== "inline" && (t.stickyFooter || R.value)
75
+ const t = e, g = ge, he = o(() => He(t.pageTitleI18n, t.pageTitle)), h = Le("modal-context", null), ye = Ee(), E = o(() => ye?.components?.form || {}), V = o(() => t.variant ?? E.value.variant ?? "outline"), L = o(() => t.size ?? E.value.size ?? "md"), I = o(() => t.rounded ?? E.value.rounded ?? "md"), K = o(
76
+ () => t.showRequiredAsterisk ?? E.value.showRequiredAsterisk ?? !0
77
+ ), O = o(() => t.showCancel || !!h), U = o(() => !!h), z = o(
78
+ () => t.layout !== "inline" && (t.stickyFooter || U.value)
78
79
  );
79
80
  ue(() => {
80
- t.footer && R.value && h?.registerFormFooter?.(!0);
81
- }), X(() => {
82
- R.value && h?.registerFormFooter?.(!1);
81
+ t.footer && U.value && h?.registerFormFooter?.(!0);
82
+ }), Y(() => {
83
+ U.value && h?.registerFormFooter?.(!1);
83
84
  });
84
- const ye = M(null), O = M(null), _ = M(!1);
85
- let J = null;
85
+ const be = M(null), J = M(null), _ = M(!1);
86
+ let Q = null;
86
87
  ue(() => {
87
- O.value && (J = new IntersectionObserver(
88
+ J.value && (Q = new IntersectionObserver(
88
89
  ([i]) => {
89
90
  _.value = !i.isIntersecting;
90
91
  },
91
92
  { threshold: 0 }
92
- ), J.observe(O.value));
93
- }), X(() => {
94
- J?.disconnect();
93
+ ), Q.observe(J.value));
94
+ }), Y(() => {
95
+ Q?.disconnect();
95
96
  });
96
97
  const w = o(() => !t.schema || t.schema.length === 0 ? !1 : Array.isArray(t.schema[0])), u = o(() => t.tabs && t.tabs.length > 0 && w.value), r = M(0), ee = o(() => t.tabs ? t.tabs.map((i, l) => ({
97
98
  id: i.id?.toString() || l.toString(),
@@ -99,7 +100,7 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
99
100
  icon: i.icon,
100
101
  description: i.description,
101
102
  status: l < r.value ? "completed" : l === r.value ? "current" : "upcoming"
102
- })) : []), z = o(() => w.value ? t.schema : [t.schema]), te = o(() => u.value ? z.value[r.value] || [] : []), ae = (i) => {
103
+ })) : []), N = o(() => w.value ? t.schema : [t.schema]), te = o(() => u.value ? N.value[r.value] || [] : []), ae = (i) => {
103
104
  if (!i) return [];
104
105
  if (Array.isArray(i)) return i;
105
106
  try {
@@ -112,10 +113,10 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
112
113
  } catch (l) {
113
114
  return console.error("[Form] Error evaluating dynamic group headings:", l), [];
114
115
  }
115
- }, Q = o(() => ae(t.groupsHeadings)), W = o(
116
+ }, W = o(() => ae(t.groupsHeadings)), X = o(
116
117
  () => ae(t.groupHeadingsDescription)
117
- ), N = o(() => {
118
- const i = z.value, l = [];
118
+ ), B = o(() => {
119
+ const i = N.value, l = [];
119
120
  for (let s = 0; s < i.length; s++) {
120
121
  const f = i[s];
121
122
  !Array.isArray(f) || f.length === 0 || f.some((Pe) => T(Pe)) && l.push({ schema: f, originalIndex: s });
@@ -128,14 +129,14 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
128
129
  }) === "thumbnailSelector") ?? null), A = o(() => !!y.value), {
129
130
  formValues: v,
130
131
  errors: p,
131
- isSubmitting: x,
132
- fieldLoading: B,
132
+ isSubmitting: b,
133
+ fieldLoading: D,
133
134
  handleFieldChange: le,
134
135
  validateField: xe,
135
136
  validateAll: ie,
136
137
  isFieldVisible: T,
137
- isFieldDisabled: U,
138
- isFieldReadonly: D,
138
+ isFieldDisabled: R,
139
+ isFieldReadonly: q,
139
140
  handleSubmit: pe,
140
141
  reinitialize: ke,
141
142
  resetForm: Ce,
@@ -153,12 +154,12 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
153
154
  }
154
155
  });
155
156
  de(
156
- () => t.loading || x.value,
157
+ () => t.loading || b.value,
157
158
  (i) => {
158
159
  h?.setSubmitting && h.setSubmitting(i);
159
160
  },
160
161
  { immediate: !0 }
161
- ), X(() => {
162
+ ), Y(() => {
162
163
  h?.setSubmitting && h.setSubmitting(!1);
163
164
  }), de(
164
165
  [() => t.schema, () => t.values, () => t.schemaLoading],
@@ -166,31 +167,31 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
166
167
  s || ke(i, l);
167
168
  }
168
169
  );
169
- const q = (i, l) => {
170
+ const $ = (i, l) => {
170
171
  le(i, l.value, l.data), g("onChange", v.value);
171
172
  }, we = async () => {
172
173
  if (!u.value) return !0;
173
174
  const i = te.value;
174
175
  let l = !0;
175
176
  for (const s of i) {
176
- if (!T(s) || U(s)) continue;
177
+ if (!T(s) || R(s)) continue;
177
178
  await xe(s) && (l = !1);
178
179
  }
179
180
  return l;
180
- }, Ae = o(() => u.value ? r.value < z.value.length - 1 : !1), se = o(() => u.value ? r.value > 0 : !1), K = o(() => u.value ? r.value === z.value.length - 1 : !0), ne = async () => {
181
+ }, Ae = o(() => u.value ? r.value < N.value.length - 1 : !1), se = o(() => u.value ? r.value > 0 : !1), P = o(() => u.value ? r.value === N.value.length - 1 : !0), ne = async () => {
181
182
  !Ae.value || !await we() || (r.value++, g("onStepChange", r.value));
182
183
  }, Te = () => {
183
184
  se.value && (r.value--, g("onStepChange", r.value));
184
- }, Re = (i, l) => {
185
+ }, Ue = (i, l) => {
185
186
  l <= r.value && (r.value = l, g("onStepChange", r.value));
186
187
  }, C = async () => {
187
188
  if (u.value) {
188
- if (!K.value && !t.isUpdate) {
189
+ if (!P.value && !t.isUpdate) {
189
190
  await ne();
190
191
  return;
191
192
  }
192
193
  if (!await ie()) {
193
- const l = z.value.findIndex(
194
+ const l = N.value.findIndex(
194
195
  (s) => s.some((f) => !!p.value[f.name])
195
196
  );
196
197
  l !== -1 && l !== r.value && (r.value = l, g("onStepChange", r.value));
@@ -201,7 +202,7 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
201
202
  await pe();
202
203
  } catch {
203
204
  }
204
- }, Ue = (i) => {
205
+ }, Re = (i) => {
205
206
  if (i.key !== "Enter" || i.defaultPrevented) return;
206
207
  const l = i.target;
207
208
  if (!l) return;
@@ -213,7 +214,7 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
213
214
  fe({
214
215
  formValues: v,
215
216
  errors: p,
216
- isSubmitting: x,
217
+ isSubmitting: b,
217
218
  handleSubmit: C,
218
219
  validateAll: ie,
219
220
  resetForm: Ce,
@@ -226,11 +227,11 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
226
227
  };
227
228
  return (i, l) => (n(), d("form", {
228
229
  class: m(["form-container", t.class, e.isPage && "pb-10"]),
229
- onSubmit: Y(C, ["prevent"]),
230
+ onSubmit: Z(C, ["prevent"]),
230
231
  onKeydown: [
231
- Ue,
232
- ce(Y(oe, ["meta", "prevent"]), ["s"]),
233
- ce(Y(oe, ["ctrl", "prevent"]), ["s"])
232
+ Re,
233
+ ce(Z(oe, ["meta", "prevent"]), ["s"]),
234
+ ce(Z(oe, ["ctrl", "prevent"]), ["s"])
234
235
  ]
235
236
  }, [
236
237
  e.isPage ? (n(), d("div", {
@@ -240,28 +241,28 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
240
241
  e.pageHeaderClass
241
242
  ])
242
243
  }, [
243
- b("div", je, [
244
- k($e, $(e.backButtonProps, {
244
+ x("div", je, [
245
+ k($e, G(e.backButtonProps, {
245
246
  fallback: e.backButtonPath,
246
247
  class: "max-sm:w-8 max-sm:h-8 max-sm:min-w-8 max-sm:min-h-8 max-sm:px-0 shrink-0"
247
248
  }), null, 16, ["fallback"]),
248
- b("h1", {
249
+ x("h1", {
249
250
  class: m(["text-foreground max-sm:text-lg text-fs-5 truncate", e.pageTitleClass])
250
- }, G(he.value), 3)
251
+ }, H(he.value), 3)
251
252
  ]),
252
- b("div", Oe, [
253
+ x("div", Oe, [
253
254
  me(i.$slots, "header-actions", {
254
255
  values: a(v),
255
- isSubmitting: a(x),
256
+ isSubmitting: a(b),
256
257
  handleSubmit: C
257
258
  }, void 0, !0),
258
- k(S, $({
259
+ k(S, G({
259
260
  type: "button",
260
261
  variant: e.isUpdate ? "outline" : "primary",
261
262
  text: e.submitText
262
263
  }, e.submitProps, {
263
264
  disabled: e.schemaLoading,
264
- loading: e.loading || a(x),
265
+ loading: e.loading || a(b),
265
266
  onClick: C,
266
267
  class: "max-sm:hidden"
267
268
  }), null, 16, ["variant", "text", "disabled", "loading"])
@@ -277,11 +278,11 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
277
278
  direction: "horizontal",
278
279
  textPosition: e.timelineTextPosition,
279
280
  clickable: !0,
280
- onStepClick: Re
281
+ onStepClick: Ue
281
282
  }, null, 8, ["steps", "activeStep", "textPosition"])
282
283
  ], 2)) : c("", !0),
283
- b("div", {
284
- class: m(e.footer && I.value ? "pb-2" : "")
284
+ x("div", {
285
+ class: m(e.footer && z.value ? "pb-2" : "")
285
286
  }, [
286
287
  e.schemaLoading ? (n(), F(De, {
287
288
  key: 0,
@@ -297,58 +298,58 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
297
298
  value: a(v)[y.value.name],
298
299
  values: a(v),
299
300
  errors: a(p),
300
- variant: P.value,
301
- size: V.value,
302
- rounded: L.value,
303
- disabled: a(U)(y.value),
304
- readonly: a(D)(y.value),
301
+ variant: V.value,
302
+ size: L.value,
303
+ rounded: I.value,
304
+ disabled: a(R)(y.value),
305
+ readonly: a(q)(y.value),
305
306
  error: a(p)[y.value.name] || "",
306
307
  isUpdate: e.isUpdate,
307
- loading: a(B)[y.value?.name],
308
- onChange: l[0] || (l[0] = (s) => q(y.value.name, s))
308
+ loading: a(D)[y.value?.name],
309
+ onChange: l[0] || (l[0] = (s) => $(y.value.name, s))
309
310
  }, null, 8, ["field", "value", "values", "errors", "variant", "size", "rounded", "disabled", "readonly", "error", "isUpdate", "loading"])) : c("", !0)
310
311
  ])) : c("", !0),
311
- b("div", {
312
+ x("div", {
312
313
  class: m(A.value ? "flex-1 min-w-0 order-last lg:order-first" : "w-full")
313
314
  }, [
314
315
  w.value ? w.value && !u.value && e.groupLayout === "basic" ? (n(), d("div", {
315
316
  key: 1,
316
317
  class: m(["form-groups space-y-6", e.groupContainerClass])
317
318
  }, [
318
- (n(!0), d(Ie, null, ze(N.value, (s) => (n(), d("div", {
319
+ (n(!0), d(Ie, null, ze(B.value, (s) => (n(), d("div", {
319
320
  key: s.originalIndex,
320
321
  class: m([
321
322
  "form-group overflow-hidden bg-body",
322
323
  e.groupClass,
323
- N.value.length > 1 ? "border rounded" : ""
324
+ B.value.length > 1 ? "border rounded" : ""
324
325
  ])
325
326
  }, [
326
- Q.value?.[s.originalIndex] ? (n(), d("div", {
327
+ W.value?.[s.originalIndex] ? (n(), d("div", {
327
328
  key: 0,
328
329
  class: m(["form-group-header bg-muted/50 px-4 py-2.5 border-b", e.headerClass])
329
330
  }, [
330
- b("h3", Xe, G(Q.value[s.originalIndex]), 1),
331
- W.value?.[s.originalIndex] ? (n(), d("p", Ye, G(W.value[s.originalIndex]), 1)) : c("", !0)
331
+ x("h3", Xe, H(W.value[s.originalIndex]), 1),
332
+ X.value?.[s.originalIndex] ? (n(), d("p", Ye, H(X.value[s.originalIndex]), 1)) : c("", !0)
332
333
  ], 2)) : c("", !0),
333
- b("div", {
334
- class: m(["form-group-body", [e.groupBodyClass, N.value.length > 1 ? "p-4.5" : ""]])
334
+ x("div", {
335
+ class: m(["form-group-body", [e.groupBodyClass, B.value.length > 1 ? "p-4.5" : ""]])
335
336
  }, [
336
337
  k(j, {
337
338
  schema: s.schema,
338
339
  values: a(v),
339
340
  errors: a(p),
340
- fieldLoading: a(B),
341
- variant: P.value,
342
- size: V.value,
343
- rounded: L.value,
341
+ fieldLoading: a(D),
342
+ variant: V.value,
343
+ size: L.value,
344
+ rounded: I.value,
344
345
  className: e.className,
345
346
  isUpdate: e.isUpdate,
346
- showRequiredAsterisk: E.value,
347
+ showRequiredAsterisk: K.value,
347
348
  isFieldVisible: a(T),
348
- isFieldDisabled: a(U),
349
- isFieldReadonly: a(D),
349
+ isFieldDisabled: a(R),
350
+ isFieldReadonly: a(q),
350
351
  excludeTypes: A.value ? ["thumbnailSelector"] : [],
351
- onChange: q,
352
+ onChange: $,
352
353
  onAddonAction: l[2] || (l[2] = (f) => g("onAddonAction", f))
353
354
  }, null, 8, ["schema", "values", "errors", "fieldLoading", "variant", "size", "rounded", "className", "isUpdate", "showRequiredAsterisk", "isFieldVisible", "isFieldDisabled", "isFieldReadonly", "excludeTypes"])
354
355
  ], 2)
@@ -359,31 +360,31 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
359
360
  }, [
360
361
  k(qe, {
361
362
  variant: "solid",
362
- items: N.value.map((s) => ({
363
+ items: B.value.map((s) => ({
363
364
  id: `form-group-${s.originalIndex}`,
364
- title: Q.value?.[s.originalIndex] || "",
365
- description: W.value?.[s.originalIndex] || void 0
365
+ title: W.value?.[s.originalIndex] || "",
366
+ description: X.value?.[s.originalIndex] || void 0
366
367
  })),
367
368
  "allow-multiple": "",
368
369
  class: m(e.groupClass)
369
370
  }, {
370
371
  content: ve(({ item: s }) => [
371
372
  k(j, {
372
- schema: N.value.find((f) => `form-group-${f.originalIndex}` === s.id)?.schema || [],
373
+ schema: B.value.find((f) => `form-group-${f.originalIndex}` === s.id)?.schema || [],
373
374
  values: a(v),
374
375
  errors: a(p),
375
- fieldLoading: a(B),
376
- variant: P.value,
377
- size: V.value,
378
- rounded: L.value,
376
+ fieldLoading: a(D),
377
+ variant: V.value,
378
+ size: L.value,
379
+ rounded: I.value,
379
380
  className: e.className,
380
381
  isUpdate: e.isUpdate,
381
- showRequiredAsterisk: E.value,
382
+ showRequiredAsterisk: K.value,
382
383
  isFieldVisible: a(T),
383
- isFieldDisabled: a(U),
384
- isFieldReadonly: a(D),
384
+ isFieldDisabled: a(R),
385
+ isFieldReadonly: a(q),
385
386
  excludeTypes: A.value ? ["thumbnailSelector"] : [],
386
- onChange: q,
387
+ onChange: $,
387
388
  onAddonAction: l[3] || (l[3] = (f) => g("onAddonAction", f))
388
389
  }, null, 8, ["schema", "values", "errors", "fieldLoading", "variant", "size", "rounded", "className", "isUpdate", "showRequiredAsterisk", "isFieldVisible", "isFieldDisabled", "isFieldReadonly", "excludeTypes"])
389
390
  ]),
@@ -394,25 +395,25 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
394
395
  key: 0,
395
396
  class: m(["form-step-header mb-6", e.headerClass])
396
397
  }, [
397
- b("h2", _e, G(e.tabs[r.value].title), 1),
398
- e.tabs[r.value].description ? (n(), d("p", et, G(e.tabs[r.value].description), 1)) : c("", !0)
398
+ x("h2", _e, H(e.tabs[r.value].title), 1),
399
+ e.tabs[r.value].description ? (n(), d("p", et, H(e.tabs[r.value].description), 1)) : c("", !0)
399
400
  ], 2)) : c("", !0),
400
401
  k(j, {
401
402
  schema: te.value,
402
403
  values: a(v),
403
404
  errors: a(p),
404
- fieldLoading: a(B),
405
- variant: P.value,
406
- size: V.value,
407
- rounded: L.value,
405
+ fieldLoading: a(D),
406
+ variant: V.value,
407
+ size: L.value,
408
+ rounded: I.value,
408
409
  className: e.className,
409
410
  isUpdate: e.isUpdate,
410
- showRequiredAsterisk: E.value,
411
+ showRequiredAsterisk: K.value,
411
412
  isFieldVisible: a(T),
412
- isFieldDisabled: a(U),
413
- isFieldReadonly: a(D),
413
+ isFieldDisabled: a(R),
414
+ isFieldReadonly: a(q),
414
415
  excludeTypes: A.value ? ["thumbnailSelector"] : [],
415
- onChange: q,
416
+ onChange: $,
416
417
  onAddonAction: l[4] || (l[4] = (s) => g("onAddonAction", s))
417
418
  }, null, 8, ["schema", "values", "errors", "fieldLoading", "variant", "size", "rounded", "className", "isUpdate", "showRequiredAsterisk", "isFieldVisible", "isFieldDisabled", "isFieldReadonly", "excludeTypes"])
418
419
  ])) : c("", !0) : (n(), d("div", Qe, [
@@ -420,37 +421,37 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
420
421
  schema: e.schema,
421
422
  values: a(v),
422
423
  errors: a(p),
423
- fieldLoading: a(B),
424
- variant: P.value,
425
- size: V.value,
426
- rounded: L.value,
424
+ fieldLoading: a(D),
425
+ variant: V.value,
426
+ size: L.value,
427
+ rounded: I.value,
427
428
  className: e.className,
428
429
  isUpdate: e.isUpdate,
429
- showRequiredAsterisk: E.value,
430
+ showRequiredAsterisk: K.value,
430
431
  isFieldVisible: a(T),
431
- isFieldDisabled: a(U),
432
- isFieldReadonly: a(D),
432
+ isFieldDisabled: a(R),
433
+ isFieldReadonly: a(q),
433
434
  excludeTypes: A.value ? ["thumbnailSelector"] : [],
434
435
  layout: t.layout,
435
- onChange: q,
436
+ onChange: $,
436
437
  onAddonAction: l[1] || (l[1] = (s) => g("onAddonAction", s))
437
438
  }, {
438
439
  default: ve(() => [
439
440
  t.layout === "inline" && e.footer ? (n(), d("div", We, [
440
- Z.value ? (n(), F(S, {
441
+ O.value ? (n(), F(S, {
441
442
  key: 0,
442
443
  type: "button",
443
444
  variant: "outline",
444
445
  text: e.cancelText,
445
- disabled: e.loading || a(x),
446
+ disabled: e.loading || a(b),
446
447
  onClick: re
447
448
  }, null, 8, ["text", "disabled"])) : c("", !0),
448
- k(S, $({
449
+ k(S, G({
449
450
  type: "submit",
450
451
  variant: "primary",
451
452
  text: e.submitText
452
453
  }, e.submitProps, {
453
- loading: e.loading || a(x)
454
+ loading: e.loading || a(b)
454
455
  }), null, 16, ["text", "loading"])
455
456
  ])) : c("", !0)
456
457
  ]),
@@ -460,14 +461,14 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
460
461
  me(i.$slots, "default", {
461
462
  values: a(v),
462
463
  errors: a(p),
463
- isSubmitting: a(x),
464
+ isSubmitting: a(b),
464
465
  handleSubmit: C
465
466
  }, void 0, !0)
466
467
  ], 2)
467
468
  ], 2)),
468
- b("div", {
469
+ x("div", {
469
470
  ref_key: "sentinelRef",
470
- ref: O,
471
+ ref: J,
471
472
  class: "form-scroll-sentinel h-px w-full",
472
473
  "aria-hidden": "true"
473
474
  }, null, 512)
@@ -475,7 +476,7 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
475
476
  e.footer && !e.schemaLoading && t.layout !== "inline" ? (n(), d("div", {
476
477
  key: 2,
477
478
  ref_key: "footerRef",
478
- ref: ye,
479
+ ref: be,
479
480
  class: m([
480
481
  "form-footer items-center gap-3 z-20 rounded-b-md!",
481
482
  e.isPage ? "flex sm:hidden" : "flex",
@@ -485,38 +486,41 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
485
486
  // `sticky bottom-0` anchors the footer to the bottom of the nearest scrollable ancestor
486
487
  // (the modal's overflow-y-auto body), keeping it visible at all times without leaving
487
488
  // the normal document flow (unlike `fixed` which would escape the modal bounds).
488
- I.value ? "sticky bottom-0 bg-body pt-3 pb-3 -mx-0.5 px-0.5 mt-6 border-t border-border/75" : t.layout !== "inline" ? "mt-6" : "",
489
+ z.value ? "sticky bottom-0 bg-body pt-3 pb-3 -mx-0.5 px-0.5 mt-6 border-t border-border/75" : t.layout !== "inline" ? "mt-6" : "",
489
490
  // Show a subtle top shadow while content is scrolling beneath the sticky footer
490
- (I.value && _.value, ""),
491
+ (z.value && _.value, ""),
491
492
  // Inside modal: extend footer flush to modal edge padding
492
- R.value && t.layout !== "inline" ? "-mx-4 px-4 pb-3! mt-7.5!" : "",
493
+ U.value && t.layout !== "inline" ? "-mx-4 px-4 pb-3! mt-7.5!" : "",
493
494
  // Non-sticky inside modal keeps the original border styling
494
- !I.value && R.value && t.layout !== "inline" ? "border-t border-border/75 mt-5" : "",
495
- !I.value && !R.value && t.layout !== "inline" ? "mt-6" : "",
495
+ !z.value && U.value && t.layout !== "inline" ? "border-t border-border/75 mt-5" : "",
496
+ !z.value && !U.value && t.layout !== "inline" ? "mt-6" : "",
496
497
  t.layout === "inline" ? "mt-0 shrink-0" : ""
497
498
  ])
498
499
  }, [
499
- b("div", tt, [
500
- Z.value ? (n(), F(S, {
500
+ O.value || u.value && e.isUpdate && !P.value ? (n(), d("div", tt, [
501
+ O.value ? (n(), F(S, {
501
502
  key: 0,
502
503
  type: "button",
503
504
  variant: "outline",
504
505
  text: e.cancelText,
505
- disabled: e.loading || a(x),
506
+ disabled: e.loading || a(b),
506
507
  onClick: re
507
508
  }, null, 8, ["text", "disabled"])) : c("", !0),
508
- u.value && e.isUpdate && !K.value ? (n(), F(S, $({
509
+ u.value && e.isUpdate && !P.value ? (n(), F(S, G({
509
510
  key: 1,
510
511
  type: "button",
511
512
  variant: "primary",
512
513
  text: e.submitText
513
514
  }, e.submitProps, {
514
- loading: e.loading || a(x),
515
+ loading: e.loading || a(b),
515
516
  onClick: C
516
517
  }), null, 16, ["text", "loading"])) : c("", !0)
517
- ]),
518
- b("div", {
519
- class: m(["flex gap-3 items-center", u.value && "ml-auto"])
518
+ ])) : c("", !0),
519
+ x("div", {
520
+ class: m(["flex gap-3 items-center", [
521
+ u.value && "ml-auto",
522
+ !u.value || P.value ? "w-full justify-end" : ""
523
+ ]])
520
524
  }, [
521
525
  u.value && se.value ? (n(), F(S, {
522
526
  key: 0,
@@ -526,7 +530,7 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
526
530
  text: "Previous",
527
531
  onClick: Te
528
532
  })) : c("", !0),
529
- u.value && !K.value ? (n(), F(S, {
533
+ u.value && !P.value ? (n(), F(S, {
530
534
  key: 1,
531
535
  type: "button",
532
536
  variant: e.isUpdate ? "outline" : "primary",
@@ -534,13 +538,13 @@ const Me = ["onKeydown"], je = { class: "flex items-center gap-3" }, Oe = { clas
534
538
  iconRight: "lucide:arrow-right",
535
539
  onClick: ne
536
540
  }, null, 8, ["variant"])) : c("", !0),
537
- !u.value || K.value ? (n(), F(S, $({
541
+ !u.value || P.value ? (n(), F(S, G({
538
542
  key: 2,
539
543
  type: "submit",
540
544
  variant: "primary",
541
545
  text: e.submitText
542
546
  }, e.submitProps, {
543
- loading: e.loading || a(x)
547
+ loading: e.loading || a(b)
544
548
  }), null, 16, ["text", "loading"])) : c("", !0)
545
549
  ], 2)
546
550
  ], 2)) : c("", !0)
@@ -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: {
@@ -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.vue.js";
4
- /* empty css */
5
- import de from "./RichTextLinkPopover.vue.js";
6
- /* empty css */
3
+ import se from "./RichTextToolbar.vue2.js";
4
+ /* empty css */
5
+ import de from "./RichTextLinkPopover.vue2.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.vue.js";
2
- /* empty css */
1
+ import o from "./RichTextLinkPopover.vue2.js";
2
+ /* empty css */
3
3
  export {
4
4
  o as default
5
5
  };
@@ -1,5 +1,5 @@
1
- import o from "./RichTextToolbar.vue.js";
2
- /* empty css */
1
+ import o from "./RichTextToolbar.vue2.js";
2
+ /* empty css */
3
3
  export {
4
4
  o as default
5
5
  };