@bagelink/vue 0.0.1145 → 0.0.1151

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 (53) hide show
  1. package/dist/components/DataPreview.vue.d.ts +12 -35
  2. package/dist/components/DataPreview.vue.d.ts.map +1 -1
  3. package/dist/components/DataTable/DataTable.vue.d.ts +1 -1
  4. package/dist/components/DataTable/DataTable.vue.d.ts.map +1 -1
  5. package/dist/components/DataTable/useTableData.d.ts +10 -2
  6. package/dist/components/DataTable/useTableData.d.ts.map +1 -1
  7. package/dist/components/Draggable/Draggable.vue.d.ts +45 -0
  8. package/dist/components/Draggable/Draggable.vue.d.ts.map +1 -0
  9. package/dist/components/Draggable/index.d.ts +5 -0
  10. package/dist/components/Draggable/index.d.ts.map +1 -0
  11. package/dist/components/Draggable/useDraggable.d.ts +31 -0
  12. package/dist/components/Draggable/useDraggable.d.ts.map +1 -0
  13. package/dist/components/Draggable/vDraggable.d.ts +4 -0
  14. package/dist/components/Draggable/vDraggable.d.ts.map +1 -0
  15. package/dist/components/ListView.vue.d.ts.map +1 -1
  16. package/dist/components/form/BagelForm.vue.d.ts.map +1 -1
  17. package/dist/components/form/FieldArray.vue.d.ts.map +1 -1
  18. package/dist/components/form/index.d.ts +0 -1
  19. package/dist/components/form/index.d.ts.map +1 -1
  20. package/dist/components/form/inputs/FileUpload.vue.d.ts +3 -0
  21. package/dist/components/form/inputs/FileUpload.vue.d.ts.map +1 -1
  22. package/dist/components/form/inputs/NumberInput.vue.d.ts.map +1 -1
  23. package/dist/components/form/inputs/Upload/UploadInput.vue.d.ts +3 -0
  24. package/dist/components/form/inputs/Upload/UploadInput.vue.d.ts.map +1 -1
  25. package/dist/components/index.d.ts +2 -0
  26. package/dist/components/index.d.ts.map +1 -1
  27. package/dist/composables/useSchemaField.d.ts +15 -0
  28. package/dist/composables/useSchemaField.d.ts.map +1 -0
  29. package/dist/index.cjs +1256 -802
  30. package/dist/index.mjs +1258 -804
  31. package/dist/style.css +272 -285
  32. package/package.json +1 -1
  33. package/src/components/DataPreview.vue +45 -116
  34. package/src/components/DataTable/DataTable.vue +18 -12
  35. package/src/components/DataTable/useTableData.ts +50 -16
  36. package/src/components/Draggable/Draggable.vue +64 -0
  37. package/src/components/Draggable/index.ts +4 -0
  38. package/src/components/Draggable/useDraggable.ts +632 -0
  39. package/src/components/Draggable/vDraggable.ts +17 -0
  40. package/src/components/ListView.vue +6 -2
  41. package/src/components/Pill.vue +1 -1
  42. package/src/components/form/BagelForm.vue +16 -101
  43. package/src/components/form/FieldArray.vue +45 -17
  44. package/src/components/form/index.ts +0 -1
  45. package/src/components/form/inputs/FileUpload.vue +10 -6
  46. package/src/components/form/inputs/NumberInput.vue +3 -1
  47. package/src/components/form/inputs/RichText/index.vue +1 -1
  48. package/src/components/form/inputs/Upload/UploadInput.vue +12 -7
  49. package/src/components/index.ts +5 -1
  50. package/src/composables/useSchemaField.ts +193 -0
  51. package/src/styles/text.css +15 -11
  52. package/src/components/form/BglField.vue +0 -132
  53. package/src/components/form/BglForm.vue +0 -157
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { defineComponent, reactive, provide, openBlock, createElementBlock, renderSlot, ref, computed, inject, watch, normalizeClass, createElementVNode, unref, createVNode, createCommentVNode, toDisplayString, Transition, withCtx, isRef, Fragment, renderList, createBlock, useSlots, resolveDirective, withDirectives, resolveDynamicComponent, mergeProps, withModifiers, withKeys, createTextVNode, normalizeStyle, resolveComponent, onMounted, onUnmounted, nextTick, mergeModels, useModel, getCurrentScope, onScopeDispose, toValue, getCurrentInstance, shallowRef, useCssVars, normalizeProps, vModelCheckbox, pushScopeId, popScopeId, guardReactiveProps, withScopeId, createApp, h as h$2, onBeforeUnmount, vModelText, toRef, createSlots, Teleport, render as render$e, onBeforeUpdate, vShow, vModelRadio, TransitionGroup, vModelDynamic, markRaw } from "vue";
4
+ import { defineComponent, reactive, provide, openBlock, createElementBlock, renderSlot, ref, computed, inject, watch, normalizeClass, createElementVNode, unref, createVNode, createCommentVNode, toDisplayString, Transition, withCtx, isRef, Fragment, renderList, createBlock, useSlots, resolveDirective, withDirectives, resolveDynamicComponent, mergeProps, withModifiers, withKeys, createTextVNode, normalizeStyle, resolveComponent, onMounted, onUnmounted, nextTick, h as h$2, getCurrentScope, onScopeDispose, toValue, getCurrentInstance, shallowRef, mergeModels, useCssVars, useModel, normalizeProps, vModelCheckbox, pushScopeId, popScopeId, guardReactiveProps, withScopeId, createApp, vModelText, toRef, createSlots, Teleport, render as render$e, onBeforeUpdate, vShow, vModelRadio, TransitionGroup, vModelDynamic, onBeforeUnmount, markRaw } from "vue";
5
5
  import { RouterLink } from "vue-router";
6
6
  const bagelFormUtils = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7
7
  __proto__: null,
@@ -59,8 +59,8 @@ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
59
59
  };
60
60
  }
61
61
  });
62
- const _hoisted_1$X = ["aria-expanded", "aria-controls"];
63
- const _hoisted_2$E = { class: "accordion-label" };
62
+ const _hoisted_1$W = ["aria-expanded", "aria-controls"];
63
+ const _hoisted_2$D = { class: "accordion-label" };
64
64
  const _hoisted_3$u = ["id", "aria-hidden"];
65
65
  const _sfc_main$16 = /* @__PURE__ */ defineComponent({
66
66
  __name: "AccordionItem",
@@ -125,18 +125,18 @@ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
125
125
  key: 0,
126
126
  class: normalizeClass(["accordion-icon", [_ctx.iconClass, { open: unref(isOpen) && _ctx.iconType === "expand_more" }]])
127
127
  }, [
128
- createVNode(unref(_sfc_main$p), { icon: computedIcon.value }, null, 8, ["icon"])
128
+ createVNode(unref(_sfc_main$q), { icon: computedIcon.value }, null, 8, ["icon"])
129
129
  ], 2)) : createCommentVNode("", true),
130
130
  renderSlot(_ctx.$slots, "head", {}, () => [
131
- createElementVNode("span", _hoisted_2$E, toDisplayString(_ctx.label), 1)
131
+ createElementVNode("span", _hoisted_2$D, toDisplayString(_ctx.label), 1)
132
132
  ], true),
133
133
  iconPosition.value === "end" ? (openBlock(), createElementBlock("span", {
134
134
  key: 1,
135
135
  class: normalizeClass(["accordion-icon", [_ctx.iconClass, { open: unref(isOpen) && _ctx.iconType === "expand_more" }]])
136
136
  }, [
137
- createVNode(unref(_sfc_main$p), { icon: computedIcon.value }, null, 8, ["icon"])
137
+ createVNode(unref(_sfc_main$q), { icon: computedIcon.value }, null, 8, ["icon"])
138
138
  ], 2)) : createCommentVNode("", true)
139
- ], 8, _hoisted_1$X),
139
+ ], 8, _hoisted_1$W),
140
140
  createVNode(Transition, { name: "expand" }, {
141
141
  default: withCtx(() => [
142
142
  unref(isOpen) ? (openBlock(), createElementBlock("div", {
@@ -162,7 +162,7 @@ const _export_sfc = (sfc, props2) => {
162
162
  return target;
163
163
  };
164
164
  const AccordionItem = /* @__PURE__ */ _export_sfc(_sfc_main$16, [["__scopeId", "data-v-3334f637"]]);
165
- const _hoisted_1$W = { class: "relative" };
165
+ const _hoisted_1$V = { class: "relative" };
166
166
  const _sfc_main$15 = /* @__PURE__ */ defineComponent({
167
167
  __name: "AddressSearch",
168
168
  emits: ["addressSelected"],
@@ -185,8 +185,8 @@ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
185
185
  (_a2 = suggestion.value) == null ? void 0 : _a2.show();
186
186
  }
187
187
  return (_ctx, _cache) => {
188
- return openBlock(), createElementBlock("div", _hoisted_1$W, [
189
- createVNode(unref(_sfc_main$V), {
188
+ return openBlock(), createElementBlock("div", _hoisted_1$V, [
189
+ createVNode(unref(_sfc_main$U), {
190
190
  ref_key: "suggestion",
191
191
  ref: suggestion,
192
192
  noAutoFocus: true,
@@ -201,7 +201,7 @@ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
201
201
  }, null, 8, ["modelValue"])
202
202
  ]),
203
203
  default: withCtx(() => [
204
- createVNode(unref(ListView), { class: "-mt-2 hm-300px" }, {
204
+ createVNode(unref(_sfc_main$e), { class: "-mt-2 hm-300px" }, {
205
205
  default: withCtx(() => [
206
206
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(searchResults), (result2, index2) => {
207
207
  return openBlock(), createBlock(unref(_sfc_main$f), {
@@ -221,7 +221,7 @@ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
221
221
  };
222
222
  }
223
223
  });
224
- const _hoisted_1$V = {
224
+ const _hoisted_1$U = {
225
225
  key: 1,
226
226
  class: "bgl_btn-flex"
227
227
  };
@@ -291,8 +291,8 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
291
291
  key: 0,
292
292
  class: "h-100p",
293
293
  size: "15"
294
- })) : (openBlock(), createElementBlock("div", _hoisted_1$V, [
295
- _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$p), {
294
+ })) : (openBlock(), createElementBlock("div", _hoisted_1$U, [
295
+ _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$q), {
296
296
  key: 0,
297
297
  icon: _ctx.icon,
298
298
  class: "transition-400"
@@ -301,7 +301,7 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
301
301
  !unref(slots).default && _ctx.value ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
302
302
  createTextVNode(toDisplayString(_ctx.value), 1)
303
303
  ], 64)) : createCommentVNode("", true),
304
- _ctx.iconEnd ? (openBlock(), createBlock(unref(_sfc_main$p), {
304
+ _ctx.iconEnd ? (openBlock(), createBlock(unref(_sfc_main$q), {
305
305
  key: 2,
306
306
  icon: _ctx.iconEnd,
307
307
  class: "transition-400"
@@ -316,8 +316,8 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
316
316
  }
317
317
  });
318
318
  const Btn = /* @__PURE__ */ _export_sfc(_sfc_main$14, [["__scopeId", "data-v-7b18a02c"]]);
319
- const _hoisted_1$U = ["dismissable"];
320
- const _hoisted_2$D = { class: "m-0" };
319
+ const _hoisted_1$T = ["dismissable"];
320
+ const _hoisted_2$C = { class: "m-0" };
321
321
  const _sfc_main$13 = /* @__PURE__ */ defineComponent({
322
322
  __name: "Alert",
323
323
  props: {
@@ -339,14 +339,14 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
339
339
  class: normalizeClass(["alert", [_ctx.type]]),
340
340
  dismissable: _ctx.dismissable
341
341
  }, [
342
- _ctx.icon !== "none" ? (openBlock(), createBlock(unref(_sfc_main$p), {
342
+ _ctx.icon !== "none" ? (openBlock(), createBlock(unref(_sfc_main$q), {
343
343
  key: 0,
344
344
  class: "alert_icon",
345
345
  icon: _ctx.icon || _ctx.type,
346
346
  size: 2,
347
347
  color: color2[_ctx.type]
348
348
  }, null, 8, ["icon", "color"])) : createCommentVNode("", true),
349
- createElementVNode("p", _hoisted_2$D, toDisplayString(_ctx.message), 1),
349
+ createElementVNode("p", _hoisted_2$C, toDisplayString(_ctx.message), 1),
350
350
  createVNode(Btn, {
351
351
  flat: "",
352
352
  thin: "",
@@ -354,12 +354,12 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
354
354
  icon: "close",
355
355
  onClick: _cache[0] || (_cache[0] = ($event) => isDismissed.value = true)
356
356
  })
357
- ], 10, _hoisted_1$U)) : createCommentVNode("", true);
357
+ ], 10, _hoisted_1$T)) : createCommentVNode("", true);
358
358
  };
359
359
  }
360
360
  });
361
361
  const Alert = /* @__PURE__ */ _export_sfc(_sfc_main$13, [["__scopeId", "data-v-064bdd20"]]);
362
- const _hoisted_1$T = ["src", "alt"];
362
+ const _hoisted_1$S = ["src", "alt"];
363
363
  const _sfc_main$12 = /* @__PURE__ */ defineComponent({
364
364
  __name: "Avatar",
365
365
  props: {
@@ -378,7 +378,7 @@ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
378
378
  key: 0,
379
379
  src: _ctx.src,
380
380
  alt: _ctx.name
381
- }, null, 8, _hoisted_1$T)) : (openBlock(), createElementBlock("p", {
381
+ }, null, 8, _hoisted_1$S)) : (openBlock(), createElementBlock("p", {
382
382
  key: 1,
383
383
  style: normalizeStyle({ "line-height": `${_ctx.size}px`, "font-size": `calc(1.5rem * ${_ctx.size} / 50)` })
384
384
  }, toDisplayString((_ctx.fallback || unref(initials)(_ctx.name || "")).toUpperCase()), 5))
@@ -401,13 +401,13 @@ const _sfc_main$11 = /* @__PURE__ */ defineComponent({
401
401
  return openBlock(), createElementBlock("div", {
402
402
  class: normalizeClass(["pill", [_ctx.color]])
403
403
  }, [
404
- _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$p), {
404
+ _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$q), {
405
405
  key: 0,
406
406
  class: "inline",
407
407
  icon: _ctx.icon
408
408
  }, null, 8, ["icon"])) : createCommentVNode("", true),
409
409
  createTextVNode(" " + toDisplayString(_ctx.text) + " ", 1),
410
- _ctx.iconEnd ? (openBlock(), createBlock(unref(_sfc_main$p), {
410
+ _ctx.iconEnd ? (openBlock(), createBlock(unref(_sfc_main$q), {
411
411
  key: 1,
412
412
  class: "inline",
413
413
  icon: _ctx.iconEnd
@@ -417,7 +417,7 @@ const _sfc_main$11 = /* @__PURE__ */ defineComponent({
417
417
  }
418
418
  });
419
419
  const Badge = /* @__PURE__ */ _export_sfc(_sfc_main$11, [["__scopeId", "data-v-689f051f"]]);
420
- const _hoisted_1$S = { key: 1 };
420
+ const _hoisted_1$R = { key: 1 };
421
421
  const _sfc_main$10 = /* @__PURE__ */ defineComponent({
422
422
  __name: "BglComponent",
423
423
  props: {
@@ -438,16 +438,16 @@ const _sfc_main$10 = /* @__PURE__ */ defineComponent({
438
438
  return TextInput;
439
439
  }
440
440
  if (props2.field.$el === "number") return NumberInput;
441
- if (props2.field.$el === "array") return _sfc_main$P;
441
+ if (props2.field.$el === "array") return _sfc_main$Q;
442
442
  if (props2.field.$el === "select") return SelectInput;
443
443
  if (props2.field.$el === "toggle") return ToggleInput;
444
444
  if (props2.field.$el === "check") return CheckInput;
445
445
  if (props2.field.$el === "richtext") return RichText;
446
446
  if (props2.field.$el === "upload") return UploadInput;
447
447
  if (props2.field.$el === "file") return FileUpload;
448
- if (props2.field.$el === "date") return _sfc_main$K;
448
+ if (props2.field.$el === "date") return _sfc_main$L;
449
449
  if (props2.field.$el === "tabs") return TabsNav;
450
- if (props2.field.$el === "form") return _sfc_main$S;
450
+ if (props2.field.$el === "form") return _sfc_main$R;
451
451
  return props2.field.$el ?? "div";
452
452
  });
453
453
  function getFieldData(path) {
@@ -564,7 +564,7 @@ const _sfc_main$10 = /* @__PURE__ */ defineComponent({
564
564
  id: [props2.id, child.id].filter(Boolean).join("."),
565
565
  field: child,
566
566
  "parent-path": props2.id
567
- }, null, 8, ["id", "field", "parent-path"])) : (openBlock(), createElementBlock("span", _hoisted_1$S, toDisplayString(child), 1))
567
+ }, null, 8, ["id", "field", "parent-path"])) : (openBlock(), createElementBlock("span", _hoisted_1$R, toDisplayString(child), 1))
568
568
  ], 64);
569
569
  }), 128))
570
570
  ], 64))
@@ -574,8 +574,8 @@ const _sfc_main$10 = /* @__PURE__ */ defineComponent({
574
574
  };
575
575
  }
576
576
  });
577
- const _hoisted_1$R = ["src"];
578
- const _hoisted_2$C = ["autoplay", "muted", "loop", "controls", "playsinline"];
577
+ const _hoisted_1$Q = ["src"];
578
+ const _hoisted_2$B = ["autoplay", "muted", "loop", "controls", "playsinline"];
579
579
  const _hoisted_3$t = ["src", "type"];
580
580
  const _sfc_main$$ = /* @__PURE__ */ defineComponent({
581
581
  __name: "BglVideo",
@@ -654,7 +654,7 @@ const _sfc_main$$ = /* @__PURE__ */ defineComponent({
654
654
  allowfullscreen: "",
655
655
  title: "Video",
656
656
  allow: "autoplay"
657
- }, null, 12, _hoisted_1$R)) : _ctx.src ? (openBlock(), createElementBlock("video", {
657
+ }, null, 12, _hoisted_1$Q)) : _ctx.src ? (openBlock(), createElementBlock("video", {
658
658
  key: 1,
659
659
  ref_key: "video",
660
660
  ref: video,
@@ -669,13 +669,13 @@ const _sfc_main$$ = /* @__PURE__ */ defineComponent({
669
669
  src: _ctx.src,
670
670
  type: `video/${videoFormat.value}`
671
671
  }, null, 8, _hoisted_3$t)
672
- ], 12, _hoisted_2$C)) : createCommentVNode("", true)
672
+ ], 12, _hoisted_2$B)) : createCommentVNode("", true)
673
673
  ], 2);
674
674
  };
675
675
  }
676
676
  });
677
677
  const BglVideo = /* @__PURE__ */ _export_sfc(_sfc_main$$, [["__scopeId", "data-v-006552f6"]]);
678
- const _hoisted_1$Q = {
678
+ const _hoisted_1$P = {
679
679
  key: 0,
680
680
  class: "card_label"
681
681
  };
@@ -708,7 +708,7 @@ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
708
708
  }])
709
709
  }, {
710
710
  default: withCtx(() => [
711
- _ctx.label ? (openBlock(), createElementBlock("span", _hoisted_1$Q, toDisplayString(_ctx.label), 1)) : createCommentVNode("", true),
711
+ _ctx.label ? (openBlock(), createElementBlock("span", _hoisted_1$P, toDisplayString(_ctx.label), 1)) : createCommentVNode("", true),
712
712
  renderSlot(_ctx.$slots, "default")
713
713
  ]),
714
714
  _: 3
@@ -718,13 +718,13 @@ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
718
718
  };
719
719
  }
720
720
  });
721
- const _hoisted_1$P = ["dir"];
722
- const _hoisted_2$B = {
721
+ const _hoisted_1$O = ["dir"];
722
+ const _hoisted_2$A = {
723
723
  key: 0,
724
724
  class: "dots"
725
725
  };
726
726
  const _hoisted_3$s = ["onClick"];
727
- const _hoisted_4$j = { class: "Handlers" };
727
+ const _hoisted_4$i = { class: "Handlers" };
728
728
  const GAP_PERCENT = 1;
729
729
  const VELOCITY_SAMPLE_DURATION = 100;
730
730
  const _sfc_main$Z = /* @__PURE__ */ defineComponent({
@@ -1147,7 +1147,7 @@ const _sfc_main$Z = /* @__PURE__ */ defineComponent({
1147
1147
  }, [
1148
1148
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
1149
1149
  ], 38),
1150
- props2.dots && unref(slideCount) > 1 ? (openBlock(), createElementBlock("div", _hoisted_2$B, [
1150
+ props2.dots && unref(slideCount) > 1 ? (openBlock(), createElementBlock("div", _hoisted_2$A, [
1151
1151
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(slideCount), (i2) => {
1152
1152
  return openBlock(), createElementBlock("span", {
1153
1153
  key: i2,
@@ -1156,7 +1156,7 @@ const _sfc_main$Z = /* @__PURE__ */ defineComponent({
1156
1156
  }, null, 10, _hoisted_3$s);
1157
1157
  }), 128))
1158
1158
  ])) : createCommentVNode("", true),
1159
- createElementVNode("div", _hoisted_4$j, [
1159
+ createElementVNode("div", _hoisted_4$i, [
1160
1160
  createElementVNode("span", { onClick: prev }, [
1161
1161
  renderSlot(_ctx.$slots, "prev", {
1162
1162
  index: unref(activeSlideIndex),
@@ -1170,7 +1170,7 @@ const _sfc_main$Z = /* @__PURE__ */ defineComponent({
1170
1170
  }, void 0, true)
1171
1171
  ])
1172
1172
  ])
1173
- ], 14, _hoisted_1$P);
1173
+ ], 14, _hoisted_1$O);
1174
1174
  };
1175
1175
  }
1176
1176
  });
@@ -5498,21 +5498,21 @@ function styleInject(css2, ref2) {
5498
5498
  return;
5499
5499
  }
5500
5500
  var head = document.head || document.getElementsByTagName("head")[0];
5501
- var style = document.createElement("style");
5502
- style.type = "text/css";
5501
+ var style2 = document.createElement("style");
5502
+ style2.type = "text/css";
5503
5503
  if (insertAt === "top") {
5504
5504
  if (head.firstChild) {
5505
- head.insertBefore(style, head.firstChild);
5505
+ head.insertBefore(style2, head.firstChild);
5506
5506
  } else {
5507
- head.appendChild(style);
5507
+ head.appendChild(style2);
5508
5508
  }
5509
5509
  } else {
5510
- head.appendChild(style);
5510
+ head.appendChild(style2);
5511
5511
  }
5512
- if (style.styleSheet) {
5513
- style.styleSheet.cssText = css2;
5512
+ if (style2.styleSheet) {
5513
+ style2.styleSheet.cssText = css2;
5514
5514
  } else {
5515
- style.appendChild(document.createTextNode(css2));
5515
+ style2.appendChild(document.createTextNode(css2));
5516
5516
  }
5517
5517
  }
5518
5518
  var css_248z$1 = "\n.chart {\n position: relative;\n}\n";
@@ -5686,8 +5686,8 @@ var script$9 = defineComponent({
5686
5686
  }
5687
5687
  function computeDotStyle(active) {
5688
5688
  const dotStyle = props2.dotStyle;
5689
- const style = getStyle.value();
5690
- return Object.assign({ r: active ? 5 : 3, stroke: style.stroke, strokeWidth: style.strokeWidth, fill: "white" }, dotStyle);
5689
+ const style2 = getStyle.value();
5690
+ return Object.assign({ r: active ? 5 : 3, stroke: style2.stroke, strokeWidth: style2.strokeWidth, fill: "white" }, dotStyle);
5691
5691
  }
5692
5692
  const getStyle = computed(() => {
5693
5693
  if (is$1(Function, props2.lineStyle)) {
@@ -5890,11 +5890,11 @@ var script$7 = defineComponent({
5890
5890
  const getStyle = computed(() => {
5891
5891
  return () => Object.assign({ colors: ["#4daf4a", "#377eb8", "#ff7f00", "#984ea3", "#e41a1c"], innerRadius: 2, cornerRadius: 0, padAngle: 0.01 }, props2.pieStyle);
5892
5892
  });
5893
- const style = getStyle.value();
5893
+ const style2 = getStyle.value();
5894
5894
  const arcs = ref([]);
5895
5895
  const colors = ordinal(getStyle.value().colors);
5896
5896
  const arcGen = () => {
5897
- return arc().outerRadius(size2.value).innerRadius(style.innerRadius).cornerRadius(style.cornerRadius).padAngle(style.padAngle);
5897
+ return arc().outerRadius(size2.value).innerRadius(style2.innerRadius).cornerRadius(style2.cornerRadius).padAngle(style2.padAngle);
5898
5898
  };
5899
5899
  const transform = ref(`translate(${size2.value + chart.canvas.x}, ${size2.value + chart.canvas.y})`);
5900
5900
  let pieSort;
@@ -6085,7 +6085,7 @@ const _hoisted_4$2$1 = {
6085
6085
  };
6086
6086
  const _hoisted_5$2$1 = ["x1", "y1", "x2", "y2"];
6087
6087
  const _hoisted_6$2$1 = ["x1", "y1", "x2", "y2"];
6088
- const _hoisted_7$a = ["x1", "y1", "x2", "y2"];
6088
+ const _hoisted_7$9 = ["x1", "y1", "x2", "y2"];
6089
6089
  function render$5(_ctx, _cache, $props, $setup, $data, $options) {
6090
6090
  return _ctx.data.length ? (openBlock(), createElementBlock("g", {
6091
6091
  key: 0,
@@ -6141,7 +6141,7 @@ function render$5(_ctx, _cache, $props, $setup, $data, $options) {
6141
6141
  y1: _ctx.canvas.y,
6142
6142
  x2: _ctx.canvas.width - 1,
6143
6143
  y2: _ctx.canvas.height
6144
- }, null, 8, _hoisted_7$a)
6144
+ }, null, 8, _hoisted_7$9)
6145
6145
  ])
6146
6146
  ], 8, _hoisted_1$4$1)) : createCommentVNode("v-if", true);
6147
6147
  }
@@ -6177,7 +6177,7 @@ var script$4 = defineComponent({
6177
6177
  const isRight = computed(() => {
6178
6178
  return position.value.x >= canvas.value.width / 4 * 3;
6179
6179
  });
6180
- const style = computed(() => {
6180
+ const style2 = computed(() => {
6181
6181
  if (direction.value === "vertical") {
6182
6182
  return {
6183
6183
  top: position.value.y - 0.5 + "px",
@@ -6233,7 +6233,7 @@ var script$4 = defineComponent({
6233
6233
  direction.value = chart.config.direction;
6234
6234
  canvas.value = chart.canvas;
6235
6235
  });
6236
- return { el, show, canvas, direction, style, styleContent, position, items, isRight };
6236
+ return { el, show, canvas, direction, style: style2, styleContent, position, items, isRight };
6237
6237
  }
6238
6238
  });
6239
6239
  const _hoisted_1$3$1 = { key: 0 };
@@ -6973,16 +6973,16 @@ var script$1 = defineComponent({
6973
6973
  }
6974
6974
  const toKebabCase = (data3) => mapKeys(kebabize, data3);
6975
6975
  const getStyle = (r2) => {
6976
- const style = {
6976
+ const style2 = {
6977
6977
  stroke: r2.color,
6978
6978
  strokeWidth: 5,
6979
6979
  fill: r2.color,
6980
6980
  fillOpacity: 0.9
6981
6981
  };
6982
6982
  if (props2.rcStyle && typeof props2.rcStyle === "function") {
6983
- return Object.assign(Object.assign({}, style), props2.rcStyle(r2));
6983
+ return Object.assign(Object.assign({}, style2), props2.rcStyle(r2));
6984
6984
  }
6985
- return style;
6985
+ return style2;
6986
6986
  };
6987
6987
  function onMouseOver(i2) {
6988
6988
  selected.value = i2;
@@ -7009,9 +7009,9 @@ const _hoisted_1$1$1 = {
7009
7009
  };
7010
7010
  const _hoisted_2$1$1 = ["width", "height", "viewBox"];
7011
7011
  const _hoisted_3$r = { class: "layer-rectangles" };
7012
- const _hoisted_4$i = ["transform", "onMouseover"];
7013
- const _hoisted_5$h = ["width", "height"];
7014
- const _hoisted_6$e = {
7012
+ const _hoisted_4$h = ["transform", "onMouseover"];
7013
+ const _hoisted_5$g = ["width", "height"];
7014
+ const _hoisted_6$d = {
7015
7015
  x: 0 + 10,
7016
7016
  y: 0 + 20,
7017
7017
  "font-size": `15px`,
@@ -7047,21 +7047,21 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
7047
7047
  y: 0,
7048
7048
  width: r2.width,
7049
7049
  height: r2.height
7050
- }), null, 16, _hoisted_5$h),
7050
+ }), null, 16, _hoisted_5$g),
7051
7051
  renderSlot(_ctx.$slots, "text", {
7052
7052
  r: r2,
7053
7053
  selected: _ctx.selected === i2
7054
7054
  }, () => [
7055
7055
  createElementVNode(
7056
7056
  "text",
7057
- _hoisted_6$e,
7057
+ _hoisted_6$d,
7058
7058
  toDisplayString(r2.data.name),
7059
7059
  1
7060
7060
  /* TEXT */
7061
7061
  )
7062
7062
  ])
7063
7063
  ])
7064
- ], 42, _hoisted_4$i);
7064
+ ], 42, _hoisted_4$h);
7065
7065
  }),
7066
7066
  128
7067
7067
  /* KEYED_FRAGMENT */
@@ -7118,19 +7118,19 @@ var script = defineComponent({
7118
7118
  return { bar, canvas, direction, mouse };
7119
7119
  }
7120
7120
  });
7121
- const _hoisted_1$O = {
7121
+ const _hoisted_1$N = {
7122
7122
  key: 0,
7123
7123
  class: "layer-hover-bar"
7124
7124
  };
7125
- const _hoisted_2$A = ["x", "y", "width", "height"];
7125
+ const _hoisted_2$z = ["x", "y", "width", "height"];
7126
7126
  function render(_ctx, _cache, $props, $setup, $data, $options) {
7127
- return _ctx.mouse.hover ? (openBlock(), createElementBlock("g", _hoisted_1$O, [
7127
+ return _ctx.mouse.hover ? (openBlock(), createElementBlock("g", _hoisted_1$N, [
7128
7128
  createElementVNode("rect", mergeProps({ class: "hover-bar" }, _ctx.barStyle, {
7129
7129
  x: _ctx.bar.x,
7130
7130
  y: _ctx.bar.y,
7131
7131
  width: _ctx.bar.width > 0 ? _ctx.bar.width : 0,
7132
7132
  height: _ctx.bar.height > 0 ? _ctx.bar.height : 0
7133
- }), null, 16, _hoisted_2$A)
7133
+ }), null, 16, _hoisted_2$z)
7134
7134
  ])) : createCommentVNode("v-if", true);
7135
7135
  }
7136
7136
  script.render = render;
@@ -7276,107 +7276,125 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
7276
7276
  };
7277
7277
  }
7278
7278
  });
7279
- const _hoisted_1$N = {
7280
- key: 0,
7281
- class: "data"
7282
- };
7283
- const _hoisted_2$z = {
7284
- key: 0,
7285
- class: "data-row m_py-05"
7286
- };
7287
- const _hoisted_3$q = { class: "key" };
7288
- const _hoisted_4$h = { class: "m-0" };
7289
- const _hoisted_5$g = { key: 1 };
7290
- const _hoisted_6$d = {
7291
- key: 0,
7292
- class: "data-row"
7293
- };
7294
- const _hoisted_7$9 = { class: "key" };
7295
- const _hoisted_8$6 = { class: "m-0" };
7296
- const _hoisted_9$5 = {
7297
- key: 0,
7298
- class: "m-0"
7299
- };
7300
- const _sfc_main$X = /* @__PURE__ */ defineComponent({
7301
- __name: "DataPreview",
7302
- props: /* @__PURE__ */ mergeModels({
7303
- showFields: {},
7304
- schema: {},
7305
- title: {},
7306
- excludeUnset: { type: Boolean }
7307
- }, {
7308
- "data": { default: {} },
7309
- "dataModifiers": {}
7310
- }),
7311
- emits: ["update:data"],
7312
- setup(__props) {
7313
- const props2 = __props;
7314
- const itemData = useModel(__props, "data");
7315
- function dataTransform(dataValue) {
7316
- if (!dataValue) return dataValue;
7317
- if (Array.isArray(dataValue)) return dataValue.map(dataTransform);
7318
- if (typeof dataValue === "object") {
7319
- Object.keys(dataValue).forEach((key) => {
7320
- dataValue[key] = dataTransform(dataValue[key]);
7321
- });
7322
- }
7323
- if (isDate(dataValue)) {
7324
- const date2 = new Date(dataValue);
7325
- return date2.toDateString();
7279
+ const SLOT_VALUE_COMPONENTS$1 = /* @__PURE__ */ new Set(["div", "span", "p"]);
7280
+ const SRC_VALUE_COMPONENTS$1 = /* @__PURE__ */ new Set(["img", "iframe"]);
7281
+ function useSchemaField(options) {
7282
+ const { mode = "form", getRowData, onUpdate } = options;
7283
+ function getComponent(field) {
7284
+ var _a2;
7285
+ const componentMap = {
7286
+ text: TextInput,
7287
+ textarea: TextInput,
7288
+ number: NumberInput,
7289
+ array: _sfc_main$Q,
7290
+ select: SelectInput,
7291
+ toggle: ToggleInput,
7292
+ check: CheckInput,
7293
+ richtext: RichText,
7294
+ upload: UploadInput,
7295
+ file: FileUpload,
7296
+ date: _sfc_main$L,
7297
+ tabs: TabsNav,
7298
+ form: _sfc_main$R
7299
+ };
7300
+ if (field.$el === "textarea" && !((_a2 = field.attrs) == null ? void 0 : _a2.multiline)) {
7301
+ field.attrs = { ...field.attrs, multiline: true };
7302
+ }
7303
+ return typeof field.$el === "object" ? field.$el : componentMap[field.$el] ?? field.$el ?? "div";
7304
+ }
7305
+ function renderField(field, slots) {
7306
+ const Component = getComponent(field);
7307
+ if (!Component) return null;
7308
+ const rowData = (getRowData == null ? void 0 : getRowData()) || {};
7309
+ const {
7310
+ $el,
7311
+ children: children2,
7312
+ options: options2,
7313
+ attrs,
7314
+ class: fieldClass,
7315
+ id,
7316
+ transform,
7317
+ slots: fieldSlots,
7318
+ required: required2,
7319
+ label,
7320
+ placeholder,
7321
+ disabled,
7322
+ ...fieldProps
7323
+ } = field;
7324
+ const currentValue = field.id ? rowData[field.id] : void 0;
7325
+ const transformedValue = transform ? transform(currentValue, rowData) : currentValue;
7326
+ const boundFieldProps = bindAttrs(fieldProps, currentValue, rowData);
7327
+ const isSlotValueComponent = typeof Component === "string" && SLOT_VALUE_COMPONENTS$1.has(Component);
7328
+ const isSrcValueComponent = typeof Component === "string" && SRC_VALUE_COMPONENTS$1.has(Component);
7329
+ const props2 = {
7330
+ ...boundFieldProps,
7331
+ required: required2,
7332
+ label,
7333
+ placeholder,
7334
+ disabled
7335
+ };
7336
+ if (mode === "form") {
7337
+ props2.modelValue = currentValue;
7338
+ props2["onUpdate:modelValue"] = (value) => {
7339
+ onUpdate == null ? void 0 : onUpdate(field, value);
7340
+ };
7341
+ } else {
7342
+ if (isSlotValueComponent) ;
7343
+ else if (isSrcValueComponent) {
7344
+ props2.src = transformedValue;
7345
+ } else {
7346
+ props2.modelValue = transformedValue;
7326
7347
  }
7327
- return dataValue;
7328
7348
  }
7329
- function isUnset(value) {
7330
- if (!props2.excludeUnset) return false;
7331
- return value === void 0 || value === null || value === "" || value.length === 0;
7349
+ Object.keys(props2).forEach((key) => props2[key] === void 0 && delete props2[key]);
7350
+ if (field.options) {
7351
+ props2.options = typeof field.options === "function" ? field.options(currentValue, rowData) : field.options;
7332
7352
  }
7333
- const computedSchema = computed(() => getFallbackSchema([itemData.value], props2.showFields));
7334
- return (_ctx, _cache) => {
7335
- var _a2;
7336
- return __props.data ? (openBlock(), createElementBlock("div", _hoisted_1$N, [
7337
- _ctx.title ? (openBlock(), createBlock(unref(_sfc_main$4), {
7338
- key: 0,
7339
- label: _ctx.title
7340
- }, null, 8, ["label"])) : createCommentVNode("", true),
7341
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.schema, (field) => {
7342
- return openBlock(), createElementBlock(Fragment, {
7343
- key: field.id
7344
- }, [
7345
- unref(iffer)(field, itemData.value) ? (openBlock(), createElementBlock("div", _hoisted_2$z, [
7346
- createElementVNode("div", _hoisted_3$q, [
7347
- createElementVNode("p", _hoisted_4$h, toDisplayString((field == null ? void 0 : field.label) || unref(keyToLabel)(field.id)), 1)
7348
- ]),
7349
- createVNode(unref(_sfc_main$Q), {
7350
- modelValue: itemData.value,
7351
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => itemData.value = $event),
7352
- label: "",
7353
- style: { "width": "min-content", "min-width": "140px" },
7354
- field
7355
- }, null, 8, ["modelValue", "field"])
7356
- ])) : createCommentVNode("", true)
7357
- ], 64);
7358
- }), 128)),
7359
- !((_a2 = _ctx.schema) == null ? void 0 : _a2.length) ? (openBlock(), createElementBlock("div", _hoisted_5$g, [
7360
- (openBlock(true), createElementBlock(Fragment, null, renderList(computedSchema.value, ({ id, label }) => {
7361
- return openBlock(), createElementBlock(Fragment, { key: id }, [
7362
- !isUnset(itemData.value[id]) ? (openBlock(), createElementBlock("div", _hoisted_6$d, [
7363
- createElementVNode("div", _hoisted_7$9, [
7364
- createElementVNode("p", _hoisted_8$6, toDisplayString(label), 1)
7365
- ]),
7366
- createElementVNode("div", null, [
7367
- id ? (openBlock(), createElementBlock("p", _hoisted_9$5, toDisplayString(dataTransform(itemData.value[id])), 1)) : createCommentVNode("", true)
7368
- ])
7369
- ])) : createCommentVNode("", true)
7370
- ], 64);
7371
- }), 128))
7372
- ])) : createCommentVNode("", true),
7373
- renderSlot(_ctx.$slots, "footer", {}, void 0, true)
7374
- ])) : createCommentVNode("", true);
7375
- };
7353
+ if (field.attrs) {
7354
+ const boundAttrs = bindAttrs(field.attrs, currentValue, rowData);
7355
+ Object.entries(boundAttrs).forEach(([key, value]) => {
7356
+ if (typeof value === "function") {
7357
+ props2[key] = value(currentValue, rowData);
7358
+ } else {
7359
+ props2[key] = value;
7360
+ }
7361
+ });
7362
+ }
7363
+ props2.class = classify(currentValue, rowData, fieldClass, props2.class);
7364
+ const componentSlots = {};
7365
+ if (children2 == null ? void 0 : children2.length) {
7366
+ componentSlots.default = () => children2.map((child) => {
7367
+ if (typeof child === "string") return child;
7368
+ return renderField(child, slots);
7369
+ });
7370
+ }
7371
+ if (isSlotValueComponent && transformedValue !== void 0) {
7372
+ componentSlots.default = () => (transformedValue == null ? void 0 : transformedValue.toString()) || "";
7373
+ }
7374
+ if (fieldSlots) {
7375
+ Object.entries(fieldSlots).forEach(([name, slot]) => {
7376
+ componentSlots[name] = typeof slot === "function" ? () => slot(currentValue, rowData) : () => slot;
7377
+ });
7378
+ }
7379
+ const slotContent = field.id && (slots == null ? void 0 : slots[field.id]) ? slots[field.id]({ row: rowData, field }) : void 0;
7380
+ if (mode === "preview") {
7381
+ return h$2("div", { class: "preview-field" }, [
7382
+ h$2("div", { class: "field-label" }, field.label || keyToLabel(field.id || "")),
7383
+ h$2("div", { class: "field-value" }, [
7384
+ slotContent || (typeof field.$el === "object" ? h$2(Component, props2, componentSlots) : (transformedValue == null ? void 0 : transformedValue.toString()) || "")
7385
+ ])
7386
+ ]);
7387
+ }
7388
+ return slotContent || h$2(Component, props2, componentSlots);
7376
7389
  }
7377
- });
7378
- const DataPreview = /* @__PURE__ */ _export_sfc(_sfc_main$X, [["__scopeId", "data-v-6c27f163"]]);
7390
+ return {
7391
+ renderField,
7392
+ getComponent
7393
+ };
7394
+ }
7379
7395
  const NON_DIGIT_REGEX = /[^\d.-]/g;
7396
+ const SLOT_VALUE_COMPONENTS = /* @__PURE__ */ new Set(["div", "span", "p"]);
7397
+ const SRC_VALUE_COMPONENTS = /* @__PURE__ */ new Set(["img", "iframe"]);
7380
7398
  function useTableData(options) {
7381
7399
  const sortField = ref("");
7382
7400
  const sortDirection = ref("ASC");
@@ -7386,41 +7404,50 @@ function useTableData(options) {
7386
7404
  data: options.data.value
7387
7405
  }));
7388
7406
  function transform(rowData) {
7389
- var _a2;
7390
7407
  const transformed = { ...rowData };
7391
7408
  const schemaFields = computedSchema.value.filter((f2) => f2.id);
7392
7409
  for (const field of schemaFields) {
7393
- const fieldData = rowData[`${field.id}`];
7394
- const newFieldVal = (_a2 = field.transform) == null ? void 0 : _a2.call(field, fieldData, rowData);
7395
- transformed[`_transformed_${field.id}`] = newFieldVal;
7410
+ const fieldId = field.id;
7411
+ const fieldData = rowData[fieldId];
7412
+ const transformKey = `_transformed_${String(fieldId)}`;
7413
+ const slotKey = `_slot_${String(fieldId)}`;
7414
+ const srcKey = `_src_${String(fieldId)}`;
7415
+ const originalKey = `_original_${String(fieldId)}`;
7416
+ transformed[originalKey] = fieldData;
7417
+ const isSlotValueComponent = typeof field.$el === "string" && SLOT_VALUE_COMPONENTS.has(field.$el);
7418
+ const isSrcValueComponent = typeof field.$el === "string" && SRC_VALUE_COMPONENTS.has(field.$el);
7419
+ transformed[slotKey] = isSlotValueComponent;
7420
+ transformed[srcKey] = isSrcValueComponent;
7421
+ if (field.transform) {
7422
+ const newFieldVal = field.transform(fieldData, rowData);
7423
+ transformed[transformKey] = newFieldVal;
7424
+ } else {
7425
+ transformed[transformKey] = fieldData;
7426
+ }
7396
7427
  }
7397
7428
  return transformed;
7398
7429
  }
7399
- const computedSortField = computed(() => `_transformed_${sortField.value}`);
7430
+ const computedSortField = computed(() => sortField.value ? `_transformed_${sortField.value}` : "");
7400
7431
  const computedData = computed(() => {
7401
7432
  const currentData = options.data.value;
7402
7433
  if (!sortField.value || options.useServerSort === true) {
7403
7434
  return currentData.map(transform);
7404
7435
  }
7405
7436
  return currentData.map(transform).sort((a2, z2) => {
7406
- let aValue = a2[computedSortField.value] ?? a2[sortField.value] ?? "";
7407
- let bValue = z2[computedSortField.value] ?? z2[sortField.value] ?? "";
7437
+ const aValue = a2[computedSortField.value] ?? "";
7438
+ const bValue = z2[computedSortField.value] ?? "";
7408
7439
  if (isDate(aValue) && isDate(bValue)) {
7409
- aValue = new Date(aValue).getTime();
7410
- bValue = new Date(bValue).getTime();
7440
+ return sortDirection.value === "ASC" ? new Date(aValue).getTime() - new Date(bValue).getTime() : new Date(bValue).getTime() - new Date(aValue).getTime();
7411
7441
  }
7412
7442
  const numAValue = Number.parseInt(`${aValue}`.replaceAll(NON_DIGIT_REGEX, ""), 10);
7413
7443
  const numBValue = Number.parseInt(`${bValue}`.replaceAll(NON_DIGIT_REGEX, ""), 10);
7414
7444
  if (!Number.isNaN(numAValue) && !Number.isNaN(numBValue)) {
7415
- if (sortDirection.value === "ASC") return numAValue - numBValue;
7416
- return numBValue - numAValue;
7445
+ return sortDirection.value === "ASC" ? numAValue - numBValue : numBValue - numAValue;
7417
7446
  }
7418
7447
  if (typeof aValue === "string") {
7419
- if (sortDirection.value === "ASC") return aValue.localeCompare(bValue);
7420
- return bValue.localeCompare(aValue);
7448
+ return sortDirection.value === "ASC" ? aValue.localeCompare(bValue) : bValue.localeCompare(aValue);
7421
7449
  }
7422
- if (sortDirection.value === "ASC") return aValue < bValue ? -1 : 1;
7423
- return aValue < bValue ? 1 : -1;
7450
+ return sortDirection.value === "ASC" ? aValue < bValue ? -1 : 1 : aValue < bValue ? 1 : -1;
7424
7451
  });
7425
7452
  });
7426
7453
  function toggleSort(fieldname) {
@@ -7446,6 +7473,47 @@ function useTableData(options) {
7446
7473
  toggleSort
7447
7474
  };
7448
7475
  }
7476
+ const _hoisted_1$M = { class: "data-preview" };
7477
+ const _sfc_main$X = /* @__PURE__ */ defineComponent({
7478
+ __name: "DataPreview",
7479
+ props: {
7480
+ data: {},
7481
+ schema: { type: Function },
7482
+ showFields: {},
7483
+ useServerSort: { type: Boolean },
7484
+ selectable: { type: Boolean },
7485
+ onLastItemVisible: { type: Function }
7486
+ },
7487
+ setup(__props) {
7488
+ const props2 = __props;
7489
+ const slots = useSlots();
7490
+ const data2 = computed(() => Array.isArray(props2.data) ? props2.data : [props2.data]);
7491
+ const {
7492
+ computedSchema,
7493
+ computedData
7494
+ } = useTableData({
7495
+ data: data2,
7496
+ schema: props2.schema,
7497
+ showFields: props2.showFields,
7498
+ useServerSort: false
7499
+ });
7500
+ const firstItem = computed(() => computedData.value[0] || {});
7501
+ const { renderField } = useSchemaField({
7502
+ mode: "preview",
7503
+ getRowData: () => firstItem.value
7504
+ });
7505
+ return (_ctx, _cache) => {
7506
+ return openBlock(), createElementBlock("div", _hoisted_1$M, [
7507
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(computedSchema), (field) => {
7508
+ return openBlock(), createBlock(resolveDynamicComponent(unref(renderField)(field, unref(slots))), {
7509
+ key: field.id
7510
+ });
7511
+ }), 128))
7512
+ ]);
7513
+ };
7514
+ }
7515
+ });
7516
+ const DataPreview = /* @__PURE__ */ _export_sfc(_sfc_main$X, [["__scopeId", "data-v-ad78731b"]]);
7449
7517
  function useTableSelection(options) {
7450
7518
  const allSelectorEl = ref();
7451
7519
  const computedSelectedItems = computed(() => options.selectedItems.value);
@@ -8074,12 +8142,12 @@ function useTableVirtualization(options) {
8074
8142
  registerLastItemObserver
8075
8143
  };
8076
8144
  }
8077
- const _hoisted_1$M = {
8145
+ const _hoisted_1$L = {
8078
8146
  key: 0,
8079
8147
  class: "loading-table-wrapper z-99 h-100 w-100 absolute inset"
8080
8148
  };
8081
8149
  const _hoisted_2$y = { class: "infinite-wrapper" };
8082
- const _hoisted_3$p = { class: "row first-row" };
8150
+ const _hoisted_3$q = { class: "row first-row" };
8083
8151
  const _hoisted_4$g = { key: 0 };
8084
8152
  const _hoisted_5$f = ["onClick"];
8085
8153
  const _hoisted_6$c = { class: "flex" };
@@ -8109,7 +8177,7 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
8109
8177
  emits: /* @__PURE__ */ mergeModels(["update:selectedItems", "orderBy", "select", "lastItemVisible"], ["update:loading", "update:itemHeight", "update:selectedItems"]),
8110
8178
  setup(__props, { emit: __emit }) {
8111
8179
  useCssVars((_ctx) => ({
8112
- "15d141b2": unref(computedItemHeight)
8180
+ "0984904d": unref(computedItemHeight)
8113
8181
  }));
8114
8182
  const props2 = __props;
8115
8183
  const emit2 = __emit;
@@ -8124,6 +8192,7 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
8124
8192
  }
8125
8193
  );
8126
8194
  const data2 = computed(() => props2.data);
8195
+ ref("");
8127
8196
  const {
8128
8197
  computedSchema,
8129
8198
  computedData,
@@ -8169,6 +8238,13 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
8169
8238
  (_a2 = props2.onLastItemVisible) == null ? void 0 : _a2.call(props2);
8170
8239
  }
8171
8240
  });
8241
+ function renderFieldForRow(field, row) {
8242
+ const { renderField } = useSchemaField({
8243
+ mode: "table",
8244
+ getRowData: () => row
8245
+ });
8246
+ return renderField(field, slots);
8247
+ }
8172
8248
  const computedItemHeight = computed(() => `${itemHeight.value}px`);
8173
8249
  watch(
8174
8250
  () => loading.value,
@@ -8195,11 +8271,11 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
8195
8271
  return openBlock(), createElementBlock("div", mergeProps({ class: "table-list-wrap h-100" }, unref(containerProps), {
8196
8272
  class: { "loading-table": loading.value }
8197
8273
  }), [
8198
- loading.value ? (openBlock(), createElementBlock("div", _hoisted_1$M, _cache[4] || (_cache[4] = [
8274
+ loading.value ? (openBlock(), createElementBlock("div", _hoisted_1$L, _cache[4] || (_cache[4] = [
8199
8275
  createElementVNode("div", { class: "loading-table-animation absolute oval" }, null, -1)
8200
8276
  ]))) : (openBlock(), createElementBlock("div", normalizeProps(mergeProps({ key: 1 }, unref(wrapperProps))), [
8201
8277
  createElementVNode("table", _hoisted_2$y, [
8202
- createElementVNode("thead", _hoisted_3$p, [
8278
+ createElementVNode("thead", _hoisted_3$q, [
8203
8279
  unref(isSelectable) ? (openBlock(), createElementBlock("th", _hoisted_4$g, [
8204
8280
  createElementVNode("input", {
8205
8281
  ref_key: "allSelectorEl",
@@ -8222,7 +8298,7 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
8222
8298
  createElementVNode("div", {
8223
8299
  class: normalizeClass(["list-arrows", { sorted: unref(sortField) === field.id }])
8224
8300
  }, [
8225
- createVNode(unref(_sfc_main$p), {
8301
+ createVNode(unref(_sfc_main$q), {
8226
8302
  class: normalizeClass({ desc: unref(sortDirection) === "DESC" }),
8227
8303
  icon: "keyboard_arrow_up"
8228
8304
  }, null, 8, ["class"])
@@ -8262,13 +8338,7 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
8262
8338
  row,
8263
8339
  field
8264
8340
  }, void 0, true) : (openBlock(), createElementBlock("div", _hoisted_10$4, [
8265
- createVNode(unref(_sfc_main$10), {
8266
- id: field.id,
8267
- class: "embedded-field",
8268
- field,
8269
- modelValue: row,
8270
- label: ""
8271
- }, null, 8, ["id", "field", "modelValue"])
8341
+ (openBlock(), createBlock(resolveDynamicComponent(renderFieldForRow(field, row))))
8272
8342
  ]))
8273
8343
  ]);
8274
8344
  }), 128))
@@ -8287,7 +8357,539 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
8287
8357
  };
8288
8358
  }
8289
8359
  });
8290
- const DataTable = /* @__PURE__ */ _export_sfc(_sfc_main$W, [["__scopeId", "data-v-cf461a0e"]]);
8360
+ const DataTable = /* @__PURE__ */ _export_sfc(_sfc_main$W, [["__scopeId", "data-v-18572328"]]);
8361
+ function useDraggable(options = {}) {
8362
+ const isDragging = ref(false);
8363
+ const dragElement = ref(null);
8364
+ const ghostElement = ref(null);
8365
+ const dropIndicator = ref(null);
8366
+ const dropTarget = ref(null);
8367
+ const defaultOptions2 = {
8368
+ animation: 150,
8369
+ mode: "line",
8370
+ ghostClass: "draggable-ghost",
8371
+ dragClass: "draggable-dragging",
8372
+ dropIndicatorClass: "draggable-drop-indicator",
8373
+ ...options
8374
+ };
8375
+ let startX = 0;
8376
+ let startY = 0;
8377
+ let initialX = 0;
8378
+ let initialY = 0;
8379
+ let shiftAmount = 0;
8380
+ let cleanupFn;
8381
+ let scrollRAF = null;
8382
+ let lastDropIndex = -1;
8383
+ let lastUpdateTime = 0;
8384
+ const UPDATE_THRESHOLD = 150;
8385
+ const POSITION_CACHE = /* @__PURE__ */ new Map();
8386
+ function createGhost(el) {
8387
+ const ghost = el.cloneNode(true);
8388
+ const rect = el.getBoundingClientRect();
8389
+ ghost.style.position = "fixed";
8390
+ ghost.style.margin = "0";
8391
+ ghost.style.top = `${rect.top}px`;
8392
+ ghost.style.left = `${rect.left}px`;
8393
+ ghost.style.width = `${rect.width}px`;
8394
+ ghost.style.height = `${rect.height}px`;
8395
+ ghost.style.transform = "translate3d(0, 0, 0)";
8396
+ ghost.style.pointerEvents = "none";
8397
+ ghost.style.zIndex = "9999";
8398
+ ghost.style.cursor = "grabbing";
8399
+ ghost.style.willChange = "transform";
8400
+ ghost.classList.add(defaultOptions2.ghostClass);
8401
+ document.body.appendChild(ghost);
8402
+ return ghost;
8403
+ }
8404
+ function createDropIndicator(el) {
8405
+ const line2 = document.createElement("div");
8406
+ line2.classList.add(defaultOptions2.dropIndicatorClass);
8407
+ line2.style.position = "fixed";
8408
+ line2.style.pointerEvents = "none";
8409
+ line2.style.zIndex = "9999";
8410
+ line2.style.height = "2px";
8411
+ line2.style.background = "var(--primary-color, #0066ff)";
8412
+ line2.style.boxShadow = "0 0 4px rgba(0, 102, 255, 0.5)";
8413
+ line2.style.transition = "all 0.15s ease";
8414
+ line2.style.display = "none";
8415
+ const dot = document.createElement("div");
8416
+ dot.style.position = "absolute";
8417
+ dot.style.left = "-4px";
8418
+ dot.style.top = "-3px";
8419
+ dot.style.width = "8px";
8420
+ dot.style.height = "8px";
8421
+ dot.style.borderRadius = "50%";
8422
+ dot.style.background = "var(--primary-color, #0066ff)";
8423
+ line2.appendChild(dot);
8424
+ document.body.appendChild(line2);
8425
+ return line2;
8426
+ }
8427
+ function updateDropIndicator(target, isAfter2) {
8428
+ if (!dropIndicator.value) return;
8429
+ const rect = target.getBoundingClientRect();
8430
+ dropIndicator.value.style.display = "block";
8431
+ dropIndicator.value.style.width = `${rect.width}px`;
8432
+ dropIndicator.value.style.left = `${rect.left}px`;
8433
+ if (isAfter2) {
8434
+ dropIndicator.value.style.top = `${rect.bottom}px`;
8435
+ } else {
8436
+ dropIndicator.value.style.top = `${rect.top}px`;
8437
+ }
8438
+ }
8439
+ function findDraggableParent(element) {
8440
+ let current = element;
8441
+ while (current && (!("__drag_group" in current) || current.dataset.draggable === "false")) {
8442
+ current = current.parentElement;
8443
+ }
8444
+ return current;
8445
+ }
8446
+ function handleGhostMode(dragEl2) {
8447
+ dragEl2.style.opacity = "0.4";
8448
+ dragEl2.style.transform = "scale(0.95)";
8449
+ return dragEl2.offsetHeight;
8450
+ }
8451
+ function handleLineMode(dragEl2) {
8452
+ dragEl2.style.opacity = "0.5";
8453
+ return 2;
8454
+ }
8455
+ function cacheElementPositions(draggedList) {
8456
+ POSITION_CACHE.clear();
8457
+ draggedList.forEach((el, index2) => {
8458
+ const rect = el.getBoundingClientRect();
8459
+ POSITION_CACHE.set(index2, {
8460
+ top: rect.top,
8461
+ bottom: rect.bottom
8462
+ });
8463
+ });
8464
+ }
8465
+ function calculateDropIndex(e, draggedList, dragIndex, newDropTarget) {
8466
+ const now = Date.now();
8467
+ if (now - lastUpdateTime < UPDATE_THRESHOLD) {
8468
+ return lastDropIndex !== -1 ? lastDropIndex : dragIndex;
8469
+ }
8470
+ if (POSITION_CACHE.size === 0) {
8471
+ cacheElementPositions(draggedList);
8472
+ }
8473
+ const mouseY = e.clientY;
8474
+ const targetIndex = draggedList.indexOf(newDropTarget);
8475
+ const targetPos = POSITION_CACHE.get(targetIndex);
8476
+ if (!targetPos) return dragIndex;
8477
+ const elementHeight = targetPos.bottom - targetPos.top;
8478
+ const relativeY = mouseY - targetPos.top;
8479
+ const upperSticky = elementHeight * 0.3;
8480
+ const lowerSticky = elementHeight * 0.7;
8481
+ let dropIndex = targetIndex;
8482
+ if (targetIndex === dragIndex) {
8483
+ if (relativeY > lowerSticky) dropIndex += 1;
8484
+ } else if (targetIndex === lastDropIndex) {
8485
+ if (targetIndex > dragIndex) {
8486
+ if (relativeY < upperSticky) dropIndex = targetIndex;
8487
+ else dropIndex = targetIndex + 1;
8488
+ } else {
8489
+ if (relativeY > lowerSticky) dropIndex = targetIndex + 1;
8490
+ else dropIndex = targetIndex;
8491
+ }
8492
+ } else {
8493
+ if (relativeY > elementHeight * 0.6) dropIndex += 1;
8494
+ }
8495
+ lastDropIndex = dropIndex;
8496
+ lastUpdateTime = now;
8497
+ return dropIndex;
8498
+ }
8499
+ function cleanup() {
8500
+ document.removeEventListener("mousemove", onDragMove);
8501
+ document.removeEventListener("mouseup", onDragEnd);
8502
+ document.removeEventListener("keydown", onKeyDown);
8503
+ document.removeEventListener("touchmove", onTouchMove);
8504
+ document.removeEventListener("touchend", onTouchEnd);
8505
+ document.removeEventListener("touchcancel", onTouchEnd);
8506
+ window.removeEventListener("blur", cleanup);
8507
+ if (ghostElement.value) {
8508
+ ghostElement.value.style.opacity = "0";
8509
+ ghostElement.value.style.transform += " scale(0.8)";
8510
+ setTimeout(() => {
8511
+ var _a2, _b;
8512
+ (_b = (_a2 = ghostElement.value) == null ? void 0 : _a2.parentNode) == null ? void 0 : _b.removeChild(ghostElement.value);
8513
+ ghostElement.value = null;
8514
+ }, 150);
8515
+ }
8516
+ if (dropIndicator.value) {
8517
+ dropIndicator.value.style.opacity = "0";
8518
+ setTimeout(() => {
8519
+ var _a2, _b;
8520
+ (_b = (_a2 = dropIndicator.value) == null ? void 0 : _a2.parentNode) == null ? void 0 : _b.removeChild(dropIndicator.value);
8521
+ dropIndicator.value = null;
8522
+ }, 150);
8523
+ }
8524
+ if (dragElement.value) {
8525
+ const list = dragElement.value.__drag_list;
8526
+ list == null ? void 0 : list.forEach((el) => {
8527
+ el.style.transition = "";
8528
+ el.style.transform = "";
8529
+ el.style.opacity = "";
8530
+ });
8531
+ dragElement.value.classList.remove(defaultOptions2.dragClass);
8532
+ dragElement.value = null;
8533
+ }
8534
+ isDragging.value = false;
8535
+ dropTarget.value = null;
8536
+ document.body.style.userSelect = "";
8537
+ document.body.style.webkitUserSelect = "";
8538
+ document.body.style.cursor = "";
8539
+ if (scrollRAF) {
8540
+ cancelAnimationFrame(scrollRAF);
8541
+ scrollRAF = null;
8542
+ }
8543
+ lastDropIndex = -1;
8544
+ lastUpdateTime = 0;
8545
+ POSITION_CACHE.clear();
8546
+ }
8547
+ function onKeyDown(e) {
8548
+ if (e.key === "Escape" && isDragging.value) {
8549
+ cleanup();
8550
+ }
8551
+ }
8552
+ function onDragStart(e) {
8553
+ var _a2;
8554
+ if (defaultOptions2.disabled) return;
8555
+ if (e.button !== 0) return;
8556
+ if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) return;
8557
+ const dragEl2 = findDraggableParent(e.target);
8558
+ if (!dragEl2 || dragEl2.dataset.draggable === "false") return;
8559
+ if (defaultOptions2.handle) {
8560
+ const handleEl = e.target.closest(defaultOptions2.handle);
8561
+ if (!handleEl || !dragEl2.contains(handleEl)) return;
8562
+ }
8563
+ e.preventDefault();
8564
+ isDragging.value = true;
8565
+ dragElement.value = dragEl2;
8566
+ startX = e.clientX;
8567
+ startY = e.clientY;
8568
+ const rect = dragEl2.getBoundingClientRect();
8569
+ initialX = rect.left;
8570
+ initialY = rect.top;
8571
+ ghostElement.value = createGhost(dragEl2);
8572
+ if (ghostElement.value) {
8573
+ ghostElement.value.style.left = `${initialX}px`;
8574
+ ghostElement.value.style.top = `${initialY}px`;
8575
+ }
8576
+ if (defaultOptions2.mode === "line") {
8577
+ dropIndicator.value = createDropIndicator();
8578
+ }
8579
+ dragEl2.classList.add(defaultOptions2.dragClass);
8580
+ shiftAmount = defaultOptions2.mode === "ghost" ? handleGhostMode(dragEl2) : handleLineMode(dragEl2);
8581
+ (_a2 = defaultOptions2.onStart) == null ? void 0 : _a2.call(defaultOptions2, e);
8582
+ document.body.style.userSelect = "none";
8583
+ document.body.style.webkitUserSelect = "none";
8584
+ document.body.style.cursor = "grabbing";
8585
+ window.addEventListener("blur", cleanup);
8586
+ document.addEventListener("mousemove", onDragMove);
8587
+ document.addEventListener("mouseup", onDragEnd);
8588
+ document.addEventListener("keydown", onKeyDown);
8589
+ }
8590
+ function findScrollParent(element) {
8591
+ let parent = element.parentElement;
8592
+ while (parent) {
8593
+ const { overflow, overflowY } = window.getComputedStyle(parent);
8594
+ if (/auto|scroll/.test(overflow + overflowY)) {
8595
+ return parent;
8596
+ }
8597
+ parent = parent.parentElement;
8598
+ }
8599
+ return document.scrollingElement || document.documentElement || document.body;
8600
+ }
8601
+ function autoScroll2(e) {
8602
+ if (!dragElement.value) return;
8603
+ if (scrollRAF) cancelAnimationFrame(scrollRAF);
8604
+ scrollRAF = requestAnimationFrame(() => {
8605
+ const scrollParent = findScrollParent(dragElement.value);
8606
+ const rect = scrollParent.getBoundingClientRect();
8607
+ const margin = 50;
8608
+ const speed = Math.min(20, rect.height * 0.1);
8609
+ const { scrollTop } = scrollParent;
8610
+ const maxScroll = scrollParent.scrollHeight - scrollParent.clientHeight;
8611
+ if (e.clientY - rect.top < margin) {
8612
+ const newScroll = Math.max(0, scrollTop - speed);
8613
+ scrollParent.scrollTop = newScroll;
8614
+ } else if (rect.bottom - e.clientY < margin) {
8615
+ const newScroll = Math.min(maxScroll, scrollTop + speed);
8616
+ scrollParent.scrollTop = newScroll;
8617
+ }
8618
+ });
8619
+ }
8620
+ function onDragMove(e) {
8621
+ if (!isDragging.value || !dragElement.value) return;
8622
+ if (ghostElement.value) {
8623
+ const dx = e.clientX - startX;
8624
+ const dy = e.clientY - startY;
8625
+ ghostElement.value.style.transform = `translate3d(${dx}px, ${dy}px, 0)`;
8626
+ }
8627
+ const list = dragElement.value.__drag_list;
8628
+ const draggedList = list.filter((el) => el.dataset.draggable !== "false");
8629
+ const dragIndex = draggedList.indexOf(dragElement.value);
8630
+ const elementAtPoint = document.elementFromPoint(e.clientX, e.clientY);
8631
+ const newDropTarget = findDraggableParent(elementAtPoint);
8632
+ if (!newDropTarget || newDropTarget.__drag_group !== dragElement.value.__drag_group) {
8633
+ if (dropIndicator.value) {
8634
+ dropIndicator.value.style.display = "none";
8635
+ }
8636
+ return;
8637
+ }
8638
+ const dropIndex = calculateDropIndex(e, draggedList, dragIndex, newDropTarget);
8639
+ if (dropTarget.value !== newDropTarget || dropTarget.value.__intended_index !== dropIndex) {
8640
+ dropTarget.value = newDropTarget;
8641
+ dropTarget.value.__intended_index = dropIndex;
8642
+ if (dropIndicator.value && defaultOptions2.mode === "line") {
8643
+ const isAfter2 = dropIndex > dragIndex;
8644
+ updateDropIndicator(newDropTarget, isAfter2);
8645
+ }
8646
+ const shift2 = shiftAmount;
8647
+ draggedList.forEach((el) => {
8648
+ el.style.transition = `transform ${defaultOptions2.animation}ms cubic-bezier(0.2, 0, 0, 1)`;
8649
+ el.style.transform = "translate3d(0, 0, 0)";
8650
+ if (el === dragElement.value) {
8651
+ if (defaultOptions2.mode === "ghost") {
8652
+ const offset2 = (dropIndex - dragIndex) * shift2;
8653
+ el.style.transform = `translate3d(0, ${offset2}px, 0)`;
8654
+ }
8655
+ } else {
8656
+ const currentIndex = draggedList.indexOf(el);
8657
+ if (dragIndex < dropIndex) {
8658
+ if (currentIndex > dragIndex && currentIndex <= dropIndex) {
8659
+ el.style.transform = `translate3d(0, -${shift2}px, 0)`;
8660
+ }
8661
+ } else if (dragIndex > dropIndex) {
8662
+ if (currentIndex >= dropIndex && currentIndex < dragIndex) {
8663
+ el.style.transform = `translate3d(0, ${shift2}px, 0)`;
8664
+ }
8665
+ }
8666
+ }
8667
+ });
8668
+ }
8669
+ autoScroll2(e);
8670
+ }
8671
+ function onDragEnd(e) {
8672
+ var _a2;
8673
+ if (!isDragging.value || !dragElement.value || !dropTarget.value) {
8674
+ cleanup();
8675
+ return;
8676
+ }
8677
+ const list = dragElement.value.__drag_list;
8678
+ if (!list || !list.length) {
8679
+ cleanup();
8680
+ return;
8681
+ }
8682
+ const draggedList = list.filter((el) => el.dataset.draggable !== "false");
8683
+ const actualDragIndex = draggedList.indexOf(dragElement.value);
8684
+ const actualDropIndex = dropTarget.value.__intended_index;
8685
+ if (actualDragIndex !== -1 && actualDropIndex !== -1) {
8686
+ list.forEach((el) => {
8687
+ el.style.transition = "none";
8688
+ el.style.transform = "";
8689
+ });
8690
+ void document.body.offsetHeight;
8691
+ const dragEvent = new MouseEvent("mouseup", e);
8692
+ dragEvent.oldIndex = actualDragIndex;
8693
+ dragEvent.newIndex = actualDropIndex;
8694
+ dragEvent.item = dragElement.value.__drag_data;
8695
+ (_a2 = defaultOptions2.onEnd) == null ? void 0 : _a2.call(defaultOptions2, dragEvent);
8696
+ }
8697
+ cleanup();
8698
+ }
8699
+ function onTouchStart(e) {
8700
+ var _a2;
8701
+ if (defaultOptions2.disabled || !e.target) return;
8702
+ const touch = e.touches[0];
8703
+ if (!touch) return;
8704
+ const target = e.target;
8705
+ const draggableParent = findDraggableParent(target);
8706
+ if (!draggableParent) return;
8707
+ const { handle } = defaultOptions2;
8708
+ if (handle && !target.closest(handle)) return;
8709
+ e.preventDefault();
8710
+ isDragging.value = true;
8711
+ dragElement.value = draggableParent;
8712
+ startX = touch.clientX;
8713
+ startY = touch.clientY;
8714
+ const rect = draggableParent.getBoundingClientRect();
8715
+ initialX = rect.left;
8716
+ initialY = rect.top;
8717
+ ghostElement.value = createGhost(draggableParent);
8718
+ if (ghostElement.value) {
8719
+ ghostElement.value.style.left = `${initialX}px`;
8720
+ ghostElement.value.style.top = `${initialY}px`;
8721
+ }
8722
+ if (defaultOptions2.mode === "line") {
8723
+ dropIndicator.value = createDropIndicator();
8724
+ }
8725
+ dragElement.value.classList.add(defaultOptions2.dragClass);
8726
+ shiftAmount = defaultOptions2.mode === "ghost" ? handleGhostMode(dragElement.value) : handleLineMode(dragElement.value);
8727
+ (_a2 = defaultOptions2.onStart) == null ? void 0 : _a2.call(defaultOptions2, e);
8728
+ document.body.style.userSelect = "none";
8729
+ document.body.style.webkitUserSelect = "none";
8730
+ document.body.style.cursor = "grabbing";
8731
+ window.addEventListener("blur", cleanup);
8732
+ document.addEventListener("touchmove", onTouchMove, { passive: false });
8733
+ document.addEventListener("touchend", onTouchEnd);
8734
+ document.addEventListener("touchcancel", onTouchEnd);
8735
+ }
8736
+ function onTouchMove(e) {
8737
+ e.preventDefault();
8738
+ const touch = e.touches[0];
8739
+ if (!touch) return;
8740
+ const mouseEvent = {
8741
+ clientX: touch.clientX,
8742
+ clientY: touch.clientY,
8743
+ target: document.elementFromPoint(touch.clientX, touch.clientY)
8744
+ };
8745
+ onDragMove(mouseEvent);
8746
+ autoScroll2(mouseEvent);
8747
+ }
8748
+ function onTouchEnd(e) {
8749
+ const touch = e.changedTouches[0];
8750
+ if (!touch) return;
8751
+ const mouseEvent = {
8752
+ clientX: touch.clientX,
8753
+ clientY: touch.clientY,
8754
+ target: document.elementFromPoint(touch.clientX, touch.clientY)
8755
+ };
8756
+ onDragEnd(mouseEvent);
8757
+ document.removeEventListener("touchmove", onTouchMove);
8758
+ document.removeEventListener("touchend", onTouchEnd);
8759
+ document.removeEventListener("touchcancel", onTouchEnd);
8760
+ }
8761
+ function initDraggableContainer(container) {
8762
+ cleanupFn == null ? void 0 : cleanupFn();
8763
+ isDragging.value = false;
8764
+ dragElement.value = null;
8765
+ ghostElement.value = null;
8766
+ dropIndicator.value = null;
8767
+ dropTarget.value = null;
8768
+ const elements = Array.from(container.children);
8769
+ elements.forEach((el) => {
8770
+ delete el.__drag_group;
8771
+ delete el.__drag_index;
8772
+ delete el.__drag_list;
8773
+ });
8774
+ let currentIndex = 0;
8775
+ elements.forEach((el, index2) => {
8776
+ if (el.dataset.draggable !== "false") {
8777
+ el.style.userSelect = "none";
8778
+ el.style.webkitUserSelect = "none";
8779
+ el.__drag_group = options.group;
8780
+ el.__drag_index = currentIndex++;
8781
+ el.__drag_list = elements.filter((e) => e.dataset.draggable !== "false");
8782
+ if (options.items) {
8783
+ el.__drag_data = options.items[index2];
8784
+ }
8785
+ el.addEventListener("mousedown", onDragStart);
8786
+ el.addEventListener("touchstart", onTouchStart);
8787
+ }
8788
+ });
8789
+ cleanupFn = () => {
8790
+ elements.forEach((el) => {
8791
+ el.removeEventListener("mousedown", onDragStart);
8792
+ el.removeEventListener("touchstart", onTouchStart);
8793
+ delete el.__drag_group;
8794
+ delete el.__drag_index;
8795
+ delete el.__drag_list;
8796
+ });
8797
+ cleanup();
8798
+ };
8799
+ }
8800
+ onUnmounted(() => {
8801
+ cleanupFn == null ? void 0 : cleanupFn();
8802
+ });
8803
+ return {
8804
+ isDragging,
8805
+ dragElement,
8806
+ initDraggableContainer
8807
+ };
8808
+ }
8809
+ const style = document.createElement("style");
8810
+ style.textContent = `
8811
+ .draggable-ghost {
8812
+ opacity: 0.5;
8813
+ box-shadow: 0 2px 10px rgba(0,0,0,0.1);
8814
+ transition: transform 0.1s;
8815
+
8816
+ }
8817
+ `;
8818
+ document.head.appendChild(style);
8819
+ const _sfc_main$V = /* @__PURE__ */ defineComponent({
8820
+ __name: "Draggable",
8821
+ props: {
8822
+ modelValue: {},
8823
+ group: {},
8824
+ handle: {},
8825
+ mode: { default: "line" },
8826
+ disabled: { type: Boolean, default: false }
8827
+ },
8828
+ emits: ["update:modelValue", "start", "end"],
8829
+ setup(__props, { emit: __emit }) {
8830
+ const props2 = __props;
8831
+ const emit2 = __emit;
8832
+ const dragContainer = ref();
8833
+ const { initDraggableContainer } = useDraggable({
8834
+ group: props2.group,
8835
+ handle: props2.handle,
8836
+ mode: props2.mode,
8837
+ disabled: props2.disabled,
8838
+ items: props2.modelValue,
8839
+ onStart: (event) => {
8840
+ emit2("start", event);
8841
+ },
8842
+ onEnd: (event) => {
8843
+ const newList = [...props2.modelValue];
8844
+ const [removed] = newList.splice(event.oldIndex, 1);
8845
+ newList.splice(event.newIndex, 0, removed);
8846
+ emit2("update:modelValue", newList);
8847
+ emit2("end", event);
8848
+ nextTick(() => {
8849
+ if (dragContainer.value) {
8850
+ initDraggableContainer(dragContainer.value);
8851
+ }
8852
+ });
8853
+ }
8854
+ });
8855
+ watch(() => props2.modelValue, () => {
8856
+ if (dragContainer.value) {
8857
+ initDraggableContainer(dragContainer.value);
8858
+ }
8859
+ }, { deep: true });
8860
+ onMounted(() => {
8861
+ if (dragContainer.value) {
8862
+ initDraggableContainer(dragContainer.value);
8863
+ }
8864
+ });
8865
+ return (_ctx, _cache) => {
8866
+ return openBlock(), createElementBlock("div", {
8867
+ ref_key: "dragContainer",
8868
+ ref: dragContainer
8869
+ }, [
8870
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.modelValue, (item, index2) => {
8871
+ return renderSlot(_ctx.$slots, "default", {
8872
+ key: index2,
8873
+ item,
8874
+ index: index2
8875
+ });
8876
+ }), 128))
8877
+ ], 512);
8878
+ };
8879
+ }
8880
+ });
8881
+ const vDraggable = {
8882
+ mounted(el, binding) {
8883
+ const { initDraggableContainer } = useDraggable(binding.value || {});
8884
+ initDraggableContainer(el);
8885
+ },
8886
+ updated(el, binding) {
8887
+ if (binding.value !== binding.oldValue) {
8888
+ const { initDraggableContainer } = useDraggable(binding.value || {});
8889
+ initDraggableContainer(el);
8890
+ }
8891
+ }
8892
+ };
8291
8893
  const sides = ["top", "right", "bottom", "left"];
8292
8894
  const alignments = ["start", "end"];
8293
8895
  const placements = /* @__PURE__ */ sides.reduce((acc, side) => acc.concat(side, side + "-" + alignments[0], side + "-" + alignments[1]), []);
@@ -10834,7 +11436,7 @@ const Gt$1 = {
10834
11436
  install: Ct$1,
10835
11437
  options: h
10836
11438
  };
10837
- const _sfc_main$V = /* @__PURE__ */ defineComponent({
11439
+ const _sfc_main$U = /* @__PURE__ */ defineComponent({
10838
11440
  __name: "Dropdown",
10839
11441
  props: /* @__PURE__ */ mergeModels({
10840
11442
  value: {},
@@ -10912,9 +11514,9 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
10912
11514
  };
10913
11515
  }
10914
11516
  });
10915
- const _hoisted_1$L = { class: "px-1 pt-025 pb-1" };
11517
+ const _hoisted_1$K = { class: "px-1 pt-025 pb-1" };
10916
11518
  const _hoisted_2$x = { class: "ms-1" };
10917
- const _sfc_main$U = /* @__PURE__ */ defineComponent({
11519
+ const _sfc_main$T = /* @__PURE__ */ defineComponent({
10918
11520
  __name: "FieldSetVue",
10919
11521
  props: {
10920
11522
  label: {},
@@ -10922,15 +11524,15 @@ const _sfc_main$U = /* @__PURE__ */ defineComponent({
10922
11524
  },
10923
11525
  setup(__props) {
10924
11526
  return (_ctx, _cache) => {
10925
- return openBlock(), createElementBlock("fieldset", _hoisted_1$L, [
11527
+ return openBlock(), createElementBlock("fieldset", _hoisted_1$K, [
10926
11528
  createElementVNode("legend", _hoisted_2$x, toDisplayString(_ctx.legend || _ctx.label), 1),
10927
11529
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
10928
11530
  ]);
10929
11531
  };
10930
11532
  }
10931
11533
  });
10932
- const FieldSetVue = /* @__PURE__ */ _export_sfc(_sfc_main$U, [["__scopeId", "data-v-f7e758e5"]]);
10933
- const _sfc_main$T = /* @__PURE__ */ defineComponent({
11534
+ const FieldSetVue = /* @__PURE__ */ _export_sfc(_sfc_main$T, [["__scopeId", "data-v-f7e758e5"]]);
11535
+ const _sfc_main$S = /* @__PURE__ */ defineComponent({
10934
11536
  __name: "Flag",
10935
11537
  props: {
10936
11538
  country: {},
@@ -10960,8 +11562,8 @@ const _sfc_main$T = /* @__PURE__ */ defineComponent({
10960
11562
  };
10961
11563
  }
10962
11564
  });
10963
- const Flag = /* @__PURE__ */ _export_sfc(_sfc_main$T, [["__scopeId", "data-v-f99f1900"]]);
10964
- const _sfc_main$S = /* @__PURE__ */ defineComponent({
11565
+ const Flag = /* @__PURE__ */ _export_sfc(_sfc_main$S, [["__scopeId", "data-v-f99f1900"]]);
11566
+ const _sfc_main$R = /* @__PURE__ */ defineComponent({
10965
11567
  __name: "BagelForm",
10966
11568
  props: {
10967
11569
  modelValue: { default: () => ({}) },
@@ -10986,28 +11588,6 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
10986
11588
  const initial = JSON.stringify(initialFormData.value);
10987
11589
  return current !== initial;
10988
11590
  });
10989
- function getComponent(field) {
10990
- var _a2;
10991
- const componentMap = {
10992
- text: TextInput,
10993
- textarea: TextInput,
10994
- number: NumberInput,
10995
- array: _sfc_main$P,
10996
- select: SelectInput,
10997
- toggle: ToggleInput,
10998
- check: CheckInput,
10999
- richtext: RichText,
11000
- upload: UploadInput,
11001
- file: FileUpload,
11002
- date: _sfc_main$K,
11003
- tabs: TabsNav,
11004
- bglform: _sfc_main$S
11005
- };
11006
- if (field.$el === "textarea" && !((_a2 = field.attrs) == null ? void 0 : _a2.multiline)) {
11007
- field.attrs = { ...field.attrs, multiline: true };
11008
- }
11009
- return componentMap[field.$el] ?? field.$el ?? "div";
11010
- }
11011
11591
  function updateFormData(fieldId, value) {
11012
11592
  formData.value = {
11013
11593
  ...formData.value,
@@ -11019,61 +11599,6 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
11019
11599
  emit2("submit", formData.value);
11020
11600
  initialFormData.value = { ...formData.value };
11021
11601
  }
11022
- function renderSchemaField(field) {
11023
- var _a2;
11024
- const Component = getComponent(field);
11025
- if (!Component) return null;
11026
- if (!shouldRenderField(field)) return null;
11027
- const {
11028
- $el,
11029
- vIf,
11030
- "v-if": vIf2,
11031
- children: children2,
11032
- options,
11033
- attrs,
11034
- class: fieldClass,
11035
- id,
11036
- onUpdate,
11037
- // Common form field props that need special handling
11038
- required: required2,
11039
- label,
11040
- placeholder,
11041
- disabled,
11042
- ...fieldProps
11043
- } = field;
11044
- const currentValue = field.id ? formData.value[field.id] : void 0;
11045
- const props22 = {
11046
- ...fieldProps,
11047
- required: required2,
11048
- label,
11049
- placeholder,
11050
- disabled,
11051
- "modelValue": currentValue,
11052
- "onUpdate:modelValue": (value) => {
11053
- var _a3;
11054
- if (!field.id) return;
11055
- updateFormData(field.id, value);
11056
- (_a3 = field.onUpdate) == null ? void 0 : _a3.call(field, value, formData.value);
11057
- }
11058
- };
11059
- Object.keys(props22).forEach((key) => props22[key] === void 0 && delete props22[key]);
11060
- if (field.options) {
11061
- props22.options = typeof field.options === "function" ? field.options(formData.value[field.id], formData.value) : field.options;
11062
- }
11063
- if (field.attrs) {
11064
- Object.entries(field.attrs).forEach(([key, value]) => {
11065
- props22[key] = typeof value === "function" ? value(formData.value[field.id], formData.value) : value;
11066
- });
11067
- }
11068
- if (field.class) {
11069
- props22.class = typeof field.class === "function" ? field.class(formData.value[field.id], formData.value) : field.class;
11070
- }
11071
- const slots = ((_a2 = field.children) == null ? void 0 : _a2.length) ? {
11072
- default: () => field.children.map((child) => typeof child === "string" ? child : renderSchemaField(child)).filter(Boolean),
11073
- ...field.slots
11074
- } : field.slots;
11075
- return h$2(Component, props22, slots);
11076
- }
11077
11602
  function shouldRenderField(field) {
11078
11603
  const condition = field.vIf ?? field["v-if"];
11079
11604
  if (condition === void 0) return true;
@@ -11083,6 +11608,20 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
11083
11608
  if (!form.value) return false;
11084
11609
  return form.value.reportValidity();
11085
11610
  }
11611
+ const { renderField } = useSchemaField({
11612
+ mode: "form",
11613
+ getRowData: () => formData.value,
11614
+ onUpdate: (field, value) => {
11615
+ var _a2;
11616
+ if (!field.id) return;
11617
+ updateFormData(field.id, value);
11618
+ (_a2 = field.onUpdate) == null ? void 0 : _a2.call(field, value, formData.value);
11619
+ }
11620
+ });
11621
+ function renderSchemaField(field) {
11622
+ if (!shouldRenderField(field)) return null;
11623
+ return renderField(field);
11624
+ }
11086
11625
  __expose({ form: form.value, isDirty: isDirty.value, validateForm });
11087
11626
  return (_ctx, _cache) => {
11088
11627
  return openBlock(), createElementBlock("form", {
@@ -11104,282 +11643,13 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
11104
11643
  };
11105
11644
  }
11106
11645
  });
11107
- const state$1 = reactive(/* @__PURE__ */ new Map());
11108
- function useTabs(group) {
11109
- if (!state$1.has(group)) {
11110
- state$1.set(group, reactive({ currentTab: void 0 }));
11111
- }
11112
- const currentTab = computed({
11113
- get: () => state$1.get(group).currentTab,
11114
- set: (val) => {
11115
- state$1.get(group).currentTab = val;
11116
- }
11117
- });
11118
- return { currentTab };
11119
- }
11120
- const _hoisted_1$K = ["onClick"];
11121
- const _sfc_main$R = /* @__PURE__ */ defineComponent({
11122
- __name: "TabsNav",
11123
- props: {
11124
- title: {},
11125
- tabs: {},
11126
- modelValue: {},
11127
- sideTabs: { type: Boolean },
11128
- group: {},
11129
- flat: { type: Boolean },
11130
- vertical: { type: Boolean }
11131
- },
11132
- emits: ["update:modelValue"],
11133
- setup(__props, { emit: __emit }) {
11134
- const props2 = __props;
11135
- const emit2 = __emit;
11136
- const { currentTab } = useTabs(props2.group);
11137
- currentTab.value = props2.modelValue || typeof props2.tabs[0] === "string" ? props2.tabs[0] : props2.tabs[0].id;
11138
- const tabsWrap = ref(void 0);
11139
- const tabs = ref([]);
11140
- function updateIndicator() {
11141
- const activeTab = tabs.value.find((tab) => tab.classList.contains("active"));
11142
- if (activeTab && tabsWrap.value) {
11143
- const { offsetLeft, offsetWidth } = activeTab;
11144
- tabsWrap.value.style.setProperty("--indicator-left", `${offsetLeft}px`);
11145
- if (tabsWrap.value) {
11146
- tabsWrap.value.style.setProperty("--indicator-width", `${offsetWidth}px`);
11147
- }
11148
- }
11149
- }
11150
- function selectTab(tab) {
11151
- currentTab.value = typeof tab === "string" ? tab : tab.id;
11152
- emit2("update:modelValue", currentTab.value);
11153
- nextTick(() => {
11154
- updateIndicator();
11155
- });
11156
- }
11157
- function isActive(tab) {
11158
- if (typeof tab === "string") return currentTab.value === tab;
11159
- return currentTab.value === tab.id;
11160
- }
11161
- function tabLabel(tab) {
11162
- if (typeof tab === "string") return tab;
11163
- return tab.label;
11164
- }
11165
- watch(
11166
- () => props2.modelValue,
11167
- (value) => {
11168
- if (value && !isActive(value)) currentTab.value = value;
11169
- nextTick(() => {
11170
- updateIndicator();
11171
- });
11172
- },
11173
- { immediate: true }
11174
- );
11175
- onMounted(() => {
11176
- var _a2;
11177
- tabs.value = Array.from(((_a2 = tabsWrap.value) == null ? void 0 : _a2.querySelectorAll(".bgl_tab")) || []);
11178
- updateIndicator();
11179
- window.addEventListener("resize", updateIndicator);
11180
- });
11181
- onBeforeUnmount(() => {
11182
- window.removeEventListener("resize", updateIndicator);
11183
- });
11184
- return (_ctx, _cache) => {
11185
- return openBlock(), createElementBlock("div", {
11186
- ref_key: "tabsWrap",
11187
- ref: tabsWrap,
11188
- class: normalizeClass(["grid auto-flow-columns relative fit-content bgl_tabs_wrap overflow-hidden", { "bgl_flat-tabs": _ctx.flat, "bgl_vertical-tabs": _ctx.vertical }])
11189
- }, [
11190
- renderSlot(_ctx.$slots, "tabs", normalizeProps(guardReactiveProps({ selectTab, isActive, tabLabel, tabs: tabs.value })), () => [
11191
- (openBlock(true), createElementBlock(Fragment, null, renderList(props2.tabs, (tab, i2) => {
11192
- return openBlock(), createElementBlock("button", {
11193
- key: i2,
11194
- type: "button",
11195
- class: normalizeClass([{ active: isActive(tab) }, "bgl_tab relative z-1"]),
11196
- onClick: ($event) => selectTab(tab)
11197
- }, [
11198
- typeof tab !== "string" && tab.icon ? (openBlock(), createBlock(unref(_sfc_main$p), {
11199
- key: 0,
11200
- icon: tab.icon
11201
- }, null, 8, ["icon"])) : createCommentVNode("", true),
11202
- createTextVNode(" " + toDisplayString(tabLabel(tab)), 1)
11203
- ], 10, _hoisted_1$K);
11204
- }), 128))
11205
- ], true)
11206
- ], 2);
11207
- };
11208
- }
11209
- });
11210
- const TabsNav = /* @__PURE__ */ _export_sfc(_sfc_main$R, [["__scopeId", "data-v-e680c2a4"]]);
11211
- const FORM_STATE_KEY = Symbol("bagelFormState");
11212
- function safeClone(obj) {
11213
- if (obj === null || typeof obj !== "object") return obj;
11214
- const seen = /* @__PURE__ */ new WeakSet();
11215
- return JSON.parse(JSON.stringify(obj, (key, value) => {
11216
- if (typeof value === "object" && value !== null) {
11217
- if (seen.has(value)) {
11218
- return void 0;
11219
- }
11220
- seen.add(value);
11221
- }
11222
- return value;
11223
- }));
11224
- }
11225
- function provideBagelFormState(initialData) {
11226
- const data2 = ref(initialData);
11227
- const isDirty = ref(false);
11228
- const getFieldData = (path) => {
11229
- if (!path) return "";
11230
- const keys4 = path.split(/[.[]/);
11231
- let current = data2.value;
11232
- for (let i2 = 0; i2 < keys4.length; i2++) {
11233
- const key = keys4[i2];
11234
- if (!current || typeof current !== "object" || !(key in current)) {
11235
- return "";
11236
- }
11237
- current = current[key];
11238
- }
11239
- return current ?? "";
11240
- };
11241
- const updateField = (path, value) => {
11242
- const keys4 = path.split(/[.[]/);
11243
- if (typeof data2.value !== "object" || data2.value === null) {
11244
- data2.value = {};
11245
- }
11246
- let current = data2.value;
11247
- for (let i2 = 0; i2 < keys4.length - 1; i2++) {
11248
- const key = keys4[i2];
11249
- if (!(key in current) || typeof current[key] !== "object" || current[key] === null) {
11250
- current[key] = {};
11251
- }
11252
- current = current[key];
11253
- }
11254
- const safeValue = safeClone(value);
11255
- current[keys4[keys4.length - 1]] = safeValue;
11256
- isDirty.value = true;
11257
- };
11258
- const state2 = {
11259
- data: data2,
11260
- getFieldData,
11261
- updateField,
11262
- isDirty
11263
- };
11264
- provide(FORM_STATE_KEY, state2);
11265
- return state2;
11266
- }
11267
- function useBagelFormState() {
11268
- const state2 = inject(FORM_STATE_KEY);
11269
- if (!state2) throw new Error("BagelFormState must be provided");
11270
- return state2;
11271
- }
11272
- const _hoisted_1$J = { key: 1 };
11273
- const _sfc_main$Q = /* @__PURE__ */ defineComponent({
11274
- __name: "BglField",
11275
- props: {
11276
- field: {},
11277
- fieldID: {},
11278
- modelValue: {},
11279
- parentPath: {}
11280
- },
11281
- emits: ["update:modelValue"],
11282
- setup(__props, { emit: __emit }) {
11283
- const props2 = __props;
11284
- const emit2 = __emit;
11285
- const formState = inject(FORM_STATE_KEY) ?? provideBagelFormState(props2.modelValue);
11286
- const customAttrs = ref({});
11287
- const is4 = computed(() => {
11288
- if (props2.field.$el === "text") return TextInput;
11289
- if (props2.field.$el === "textarea") {
11290
- customAttrs.value.multiline = true;
11291
- return TextInput;
11292
- }
11293
- if (props2.field.$el === "number") return NumberInput;
11294
- if (props2.field.$el === "array") return _sfc_main$P;
11295
- if (props2.field.$el === "select") return SelectInput;
11296
- if (props2.field.$el === "toggle") return ToggleInput;
11297
- if (props2.field.$el === "check") return CheckInput;
11298
- if (props2.field.$el === "richtext") return RichText;
11299
- if (props2.field.$el === "upload") return UploadInput;
11300
- if (props2.field.$el === "file") return FileUpload;
11301
- if (props2.field.$el === "date") return _sfc_main$K;
11302
- if (props2.field.$el === "tabs") return TabsNav;
11303
- if (props2.field.$el === "bglform") return _sfc_main$S;
11304
- return props2.field.$el ?? "div";
11305
- });
11306
- const fieldData = computed({
11307
- get: () => {
11308
- if (!props2.fieldID) return props2.field.defaultValue ?? (props2.field.$el === "form" ? {} : "");
11309
- const value = formState.getFieldData(props2.fieldID);
11310
- if (props2.field.$el === "form" && !value) return {};
11311
- return value ?? "";
11312
- },
11313
- set: (val) => {
11314
- if (!props2.fieldID) return;
11315
- const currentValue = formState.getFieldData(props2.fieldID);
11316
- if (JSON.stringify(val) === JSON.stringify(currentValue)) return;
11317
- emit2("update:modelValue", val);
11318
- if (props2.field.onUpdate) {
11319
- props2.field.onUpdate(val, currentValue);
11320
- }
11321
- formState.updateField(props2.fieldID, val);
11322
- }
11323
- });
11324
- const vIf = computed(() => {
11325
- if (props2.field["v-if"] === void 0 && props2.field.vIf === void 0) return true;
11326
- if (typeof props2.field["v-if"] === "boolean" || typeof props2.field.vIf === "boolean") return props2.field["v-if"];
11327
- if (typeof props2.field["v-if"] === "string" || typeof props2.field.vIf === "string") return true;
11328
- if (typeof props2.field["v-if"] === "function") return props2.field["v-if"](fieldData.value, formState.data.value);
11329
- if (typeof props2.field.vIf === "function") return props2.field.vIf(fieldData.value, formState.data.value);
11330
- return true;
11331
- });
11332
- const computedOptions = computed(
11333
- () => bindAttrs({ options: props2.field.options }, fieldData.value, formState.data.value).options
11334
- );
11335
- const computedAttrs = computed(() => {
11336
- const attrs = { ...customAttrs.value, ...props2.field.attrs };
11337
- return bindAttrs(attrs, fieldData.value, formState.data.value);
11338
- });
11339
- const computedClass = computed(
11340
- () => {
11341
- var _a2;
11342
- return classify(fieldData.value, formState.data.value, props2.field.class, (_a2 = props2.field.attrs) == null ? void 0 : _a2.class);
11343
- }
11344
- );
11345
- return (_ctx, _cache) => {
11346
- const _component_BglField = resolveComponent("BglField", true);
11347
- return vIf.value ? (openBlock(), createBlock(resolveDynamicComponent(is4.value), mergeProps({ key: 0 }, computedAttrs.value, {
11348
- modelValue: fieldData.value,
11349
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => fieldData.value = $event),
11350
- fieldID: props2.fieldID,
11351
- required: _ctx.field.required,
11352
- class: computedClass.value,
11353
- label: _ctx.field.label,
11354
- placeholder: _ctx.field.placeholder || _ctx.field.label,
11355
- defaultValue: _ctx.field.defaultValue,
11356
- disabled: _ctx.field.disabled,
11357
- options: computedOptions.value,
11358
- helptext: _ctx.field.helptext
11359
- }), {
11360
- default: withCtx(() => [
11361
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.field.children, (child, ii) => {
11362
- return openBlock(), createElementBlock(Fragment, { key: ii }, [
11363
- typeof child !== "string" ? (openBlock(), createBlock(_component_BglField, {
11364
- key: 0,
11365
- fieldID: [props2.fieldID, child.id].filter(Boolean).join("."),
11366
- field: child,
11367
- "parent-path": props2.fieldID
11368
- }, null, 8, ["fieldID", "field", "parent-path"])) : (openBlock(), createElementBlock("span", _hoisted_1$J, toDisplayString(child), 1))
11369
- ], 64);
11370
- }), 128))
11371
- ]),
11372
- _: 1
11373
- }, 16, ["modelValue", "fieldID", "required", "class", "label", "placeholder", "defaultValue", "disabled", "options", "helptext"])) : createCommentVNode("", true);
11374
- };
11375
- }
11376
- });
11377
- const _hoisted_1$I = { class: "label mb-05" };
11646
+ const _hoisted_1$J = { class: "label mb-05" };
11378
11647
  const _hoisted_2$w = {
11379
11648
  key: 0,
11380
- class: "-ms-05 ps-05 border-start"
11649
+ class: "ps-025 border-start"
11381
11650
  };
11382
- const _sfc_main$P = /* @__PURE__ */ defineComponent({
11651
+ const _hoisted_3$p = { class: "bg-gray-80 -my-05 px-025 pt-065 txt-center" };
11652
+ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
11383
11653
  __name: "FieldArray",
11384
11654
  props: {
11385
11655
  el: { default: "div" },
@@ -11432,33 +11702,45 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
11432
11702
  $el: props2.el
11433
11703
  })
11434
11704
  );
11705
+ const { renderField } = useSchemaField({
11706
+ mode: "form",
11707
+ getRowData: () => data2.value,
11708
+ onUpdate: (field, value) => {
11709
+ if (!field.id) return;
11710
+ const index2 = Number.parseInt(field.id);
11711
+ if (Number.isNaN(index2)) return;
11712
+ data2.value[index2] = value;
11713
+ emitValue();
11714
+ }
11715
+ });
11435
11716
  return (_ctx, _cache) => {
11436
11717
  return openBlock(), createElementBlock("div", {
11437
11718
  class: normalizeClass(props2.class)
11438
11719
  }, [
11439
- createElementVNode("p", _hoisted_1$I, toDisplayString(_ctx.label), 1),
11720
+ createElementVNode("p", _hoisted_1$J, toDisplayString(_ctx.label), 1),
11440
11721
  _ctx.schema ? (openBlock(), createElementBlock("div", _hoisted_2$w, [
11441
11722
  (openBlock(true), createElementBlock(Fragment, null, renderList(data2.value, (_2, i2) => {
11442
11723
  return openBlock(), createElementBlock("div", {
11443
11724
  key: i2,
11444
11725
  outline: "",
11445
11726
  thin: "",
11446
- class: "mb-05 itemBox transition p-05"
11727
+ class: "mb-05 itemBox transition ps-05 pb-025 pt-025 radius-05 gap-05 overflow-hidden"
11447
11728
  }, [
11448
- createVNode(unref(_sfc_main$S), {
11729
+ createVNode(unref(_sfc_main$R), {
11449
11730
  modelValue: data2.value[i2],
11450
11731
  "onUpdate:modelValue": [($event) => data2.value[i2] = $event, emitValue],
11451
11732
  schema: _ctx.schema
11452
11733
  }, null, 8, ["modelValue", "onUpdate:modelValue", "schema"]),
11453
- props2.delete ? (openBlock(), createBlock(unref(Btn), {
11454
- key: 0,
11455
- icon: "delete",
11456
- value: "Delete",
11457
- class: "txt10 opacity-7 color-red",
11458
- thin: "",
11459
- flat: "",
11460
- onClick: ($event) => deleteItem(i2)
11461
- }, null, 8, ["onClick"])) : createCommentVNode("", true)
11734
+ createElementVNode("div", _hoisted_3$p, [
11735
+ props2.delete ? (openBlock(), createBlock(unref(Btn), {
11736
+ key: 0,
11737
+ icon: "delete",
11738
+ class: "txt10 opacity-7",
11739
+ thin: "",
11740
+ flat: "",
11741
+ onClick: ($event) => deleteItem(i2)
11742
+ }, null, 8, ["onClick"])) : createCommentVNode("", true)
11743
+ ])
11462
11744
  ]);
11463
11745
  }), 128)),
11464
11746
  _ctx.add ? (openBlock(), createBlock(unref(Btn), {
@@ -11470,24 +11752,22 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
11470
11752
  onClick: addItem
11471
11753
  }, {
11472
11754
  default: withCtx(() => [
11473
- createElementVNode("p", null, "Add " + toDisplayString(_ctx.label), 1)
11755
+ createElementVNode("p", null, toDisplayString(_ctx.label), 1)
11474
11756
  ]),
11475
11757
  _: 1
11476
11758
  })) : createCommentVNode("", true)
11477
11759
  ])) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(data2.value, (_2, i2) => {
11478
- return openBlock(), createBlock(unref(_sfc_main$Q), {
11760
+ return openBlock(), createBlock(resolveDynamicComponent(unref(renderField)({ ...computedField.value, id: String(i2) })), {
11479
11761
  key: i2,
11480
- modelValue: data2.value[i2],
11481
- "onUpdate:modelValue": [($event) => data2.value[i2] = $event, emitValue],
11482
- field: computedField.value
11483
- }, null, 8, ["modelValue", "onUpdate:modelValue", "field"]);
11762
+ "onUpdate:modelValue": emitValue
11763
+ });
11484
11764
  }), 128))
11485
11765
  ], 2);
11486
11766
  };
11487
11767
  }
11488
11768
  });
11489
- const _hoisted_1$H = { class: "primary-checkbox" };
11490
- const _sfc_main$O = /* @__PURE__ */ defineComponent({
11769
+ const _hoisted_1$I = { class: "primary-checkbox" };
11770
+ const _sfc_main$P = /* @__PURE__ */ defineComponent({
11491
11771
  __name: "Checkbox",
11492
11772
  props: {
11493
11773
  "modelValue": { type: Boolean, ...{ default: false } },
@@ -11497,7 +11777,7 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
11497
11777
  setup(__props) {
11498
11778
  const val = useModel(__props, "modelValue");
11499
11779
  return (_ctx, _cache) => {
11500
- return openBlock(), createElementBlock("label", _hoisted_1$H, [
11780
+ return openBlock(), createElementBlock("label", _hoisted_1$I, [
11501
11781
  renderSlot(_ctx.$slots, "label", {}, void 0, true),
11502
11782
  withDirectives(createElementVNode("input", {
11503
11783
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => val.value = $event),
@@ -11509,11 +11789,11 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
11509
11789
  };
11510
11790
  }
11511
11791
  });
11512
- const Checkbox = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["__scopeId", "data-v-73f1d9ad"]]);
11513
- const _hoisted_1$G = ["title"];
11792
+ const Checkbox = /* @__PURE__ */ _export_sfc(_sfc_main$P, [["__scopeId", "data-v-73f1d9ad"]]);
11793
+ const _hoisted_1$H = ["title"];
11514
11794
  const _hoisted_2$v = ["id", "value", "required"];
11515
11795
  const _hoisted_3$o = ["for"];
11516
- const _sfc_main$N = /* @__PURE__ */ defineComponent({
11796
+ const _sfc_main$O = /* @__PURE__ */ defineComponent({
11517
11797
  __name: "CheckInput",
11518
11798
  props: /* @__PURE__ */ mergeModels({
11519
11799
  label: {},
@@ -11555,12 +11835,12 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
11555
11835
  createTextVNode(toDisplayString(_ctx.label), 1)
11556
11836
  ], true)
11557
11837
  ], 8, _hoisted_3$o)
11558
- ], 10, _hoisted_1$G);
11838
+ ], 10, _hoisted_1$H);
11559
11839
  };
11560
11840
  }
11561
11841
  });
11562
- const CheckInput = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-03ed2982"]]);
11563
- const _hoisted_1$F = { class: "mb-05" };
11842
+ const CheckInput = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["__scopeId", "data-v-03ed2982"]]);
11843
+ const _hoisted_1$G = { class: "mb-05" };
11564
11844
  const _hoisted_2$u = {
11565
11845
  key: 0,
11566
11846
  class: "label txt-start"
@@ -11572,7 +11852,7 @@ const _hoisted_3$n = {
11572
11852
  const _hoisted_4$f = { class: "overflow-hidden absolute inset-0 p-0 m-0 h-100 codeText" };
11573
11853
  const _hoisted_5$e = ["innerHTML"];
11574
11854
  const _hoisted_6$b = ["onKeydown"];
11575
- const _sfc_main$M = /* @__PURE__ */ defineComponent({
11855
+ const _sfc_main$N = /* @__PURE__ */ defineComponent({
11576
11856
  __name: "Index",
11577
11857
  props: {
11578
11858
  language: {},
@@ -11654,7 +11934,7 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
11654
11934
  }
11655
11935
  }, { immediate: true });
11656
11936
  return (_ctx, _cache) => {
11657
- return openBlock(), createElementBlock("div", _hoisted_1$F, [
11937
+ return openBlock(), createElementBlock("div", _hoisted_1$G, [
11658
11938
  _ctx.label ? (openBlock(), createElementBlock("label", _hoisted_2$u, toDisplayString(_ctx.label), 1)) : createCommentVNode("", true),
11659
11939
  unref(loaded) ? (openBlock(), createElementBlock("div", _hoisted_3$n, [
11660
11940
  createElementVNode("div", {
@@ -11690,10 +11970,10 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
11690
11970
  };
11691
11971
  }
11692
11972
  });
11693
- const CodeEditor = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["__scopeId", "data-v-1fbc9b61"]]);
11694
- const _hoisted_1$E = ["title"];
11973
+ const CodeEditor = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-1fbc9b61"]]);
11974
+ const _hoisted_1$F = ["title"];
11695
11975
  const _hoisted_2$t = ["id", "placeholder", "required"];
11696
- const _sfc_main$L = /* @__PURE__ */ defineComponent({
11976
+ const _sfc_main$M = /* @__PURE__ */ defineComponent({
11697
11977
  __name: "ColorPicker",
11698
11978
  props: {
11699
11979
  label: {},
@@ -11735,7 +12015,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
11735
12015
  [vModelText, inputVal.value]
11736
12016
  ])
11737
12017
  ])
11738
- ], 10, _hoisted_1$E)) : createCommentVNode("", true);
12018
+ ], 10, _hoisted_1$F)) : createCommentVNode("", true);
11739
12019
  };
11740
12020
  }
11741
12021
  });
@@ -20293,9 +20573,9 @@ const eo = ({
20293
20573
  Object.entries(go).forEach(([e, t]) => {
20294
20574
  e !== "default" && (Hn[e] = t);
20295
20575
  });
20296
- const _hoisted_1$D = ["title"];
20576
+ const _hoisted_1$E = ["title"];
20297
20577
  const _hoisted_2$s = { key: 0 };
20298
- const _sfc_main$K = /* @__PURE__ */ defineComponent({
20578
+ const _sfc_main$L = /* @__PURE__ */ defineComponent({
20299
20579
  __name: "DateInput",
20300
20580
  props: {
20301
20581
  required: { type: Boolean },
@@ -20353,11 +20633,11 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
20353
20633
  "minutes-grid-increment": _ctx.minutesGridIncrement,
20354
20634
  "start-time": { hours: 8, minutes: 0 }
20355
20635
  }), null, 16, ["modelValue", "required", "enable-time-picker", "allowed-dates", "time-picker-inline", "minutes-increment", "minutes-grid-increment"])
20356
- ], 10, _hoisted_1$D);
20636
+ ], 10, _hoisted_1$E);
20357
20637
  };
20358
20638
  }
20359
20639
  });
20360
- const _hoisted_1$C = ["title"];
20640
+ const _hoisted_1$D = ["title"];
20361
20641
  const _hoisted_2$r = { key: 0 };
20362
20642
  const _hoisted_3$m = {
20363
20643
  key: 0,
@@ -20385,13 +20665,13 @@ const _hoisted_15$2 = {
20385
20665
  class: "year-grid grid gap-05 p-0"
20386
20666
  };
20387
20667
  const _hoisted_16$2 = ["disabled", "onClick"];
20388
- const _hoisted_17 = {
20668
+ const _hoisted_17$2 = {
20389
20669
  key: 0,
20390
20670
  class: "time-picker flex column gap-1 w-120px"
20391
20671
  };
20392
20672
  const _hoisted_18 = { class: "flex gap-025" };
20393
20673
  const _hoisted_19 = { class: "txt-center opacity-6 txt14" };
20394
- const _sfc_main$J = /* @__PURE__ */ defineComponent({
20674
+ const _sfc_main$K = /* @__PURE__ */ defineComponent({
20395
20675
  __name: "DatePick",
20396
20676
  props: {
20397
20677
  required: { type: Boolean },
@@ -20673,7 +20953,7 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
20673
20953
  }), 128))
20674
20954
  ]))
20675
20955
  ]),
20676
- _ctx.enableTime && unref(currentView) === "days" ? (openBlock(), createElementBlock("div", _hoisted_17, [
20956
+ _ctx.enableTime && unref(currentView) === "days" ? (openBlock(), createElementBlock("div", _hoisted_17$2, [
20677
20957
  createElementVNode("div", _hoisted_18, [
20678
20958
  createVNode(unref(NumberInput), {
20679
20959
  center: "",
@@ -20728,12 +21008,12 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
20728
21008
  ]),
20729
21009
  _: 1
20730
21010
  }, 8, ["shown"])
20731
- ], 10, _hoisted_1$C);
21011
+ ], 10, _hoisted_1$D);
20732
21012
  };
20733
21013
  }
20734
21014
  });
20735
- const DatePick = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["__scopeId", "data-v-8de3f3c6"]]);
20736
- const _hoisted_1$B = { class: "datetime-wrap" };
21015
+ const DatePick = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__scopeId", "data-v-8de3f3c6"]]);
21016
+ const _hoisted_1$C = { class: "datetime-wrap" };
20737
21017
  const _hoisted_2$q = { class: "date-wrap" };
20738
21018
  const _hoisted_3$l = {
20739
21019
  key: 0,
@@ -20741,7 +21021,7 @@ const _hoisted_3$l = {
20741
21021
  };
20742
21022
  const _hoisted_4$d = ["id", "name", "value"];
20743
21023
  const _hoisted_5$c = ["for"];
20744
- const _sfc_main$I = /* @__PURE__ */ defineComponent({
21024
+ const _sfc_main$J = /* @__PURE__ */ defineComponent({
20745
21025
  __name: "DatePicker",
20746
21026
  props: {
20747
21027
  label: {},
@@ -20769,7 +21049,7 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
20769
21049
  return `${hour}:${minute}`;
20770
21050
  });
20771
21051
  return (_ctx, _cache) => {
20772
- return openBlock(), createElementBlock("div", _hoisted_1$B, [
21052
+ return openBlock(), createElementBlock("div", _hoisted_1$C, [
20773
21053
  createElementVNode("div", _hoisted_2$q, [
20774
21054
  createVNode(unref(Hn), mergeProps({
20775
21055
  modelValue: selectedDate.value,
@@ -20810,7 +21090,7 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
20810
21090
  };
20811
21091
  }
20812
21092
  });
20813
- const _hoisted_1$A = { class: "bagel-input" };
21093
+ const _hoisted_1$B = { class: "bagel-input" };
20814
21094
  const _hoisted_2$p = {
20815
21095
  key: 0,
20816
21096
  placeholder: "required",
@@ -20821,7 +21101,7 @@ const _hoisted_2$p = {
20821
21101
  const _hoisted_3$k = { class: "m-05 flex opacity-7 z-99" };
20822
21102
  const _hoisted_4$c = { class: "ellipsis-1 word-break-all h-20 m-0 color-black" };
20823
21103
  const _hoisted_5$b = { class: "flex gap-025 rounded pe-1 ps-05 py-025 bg-gray-80 -my-1" };
20824
- const _hoisted_6$9 = { class: "ellipsis-1 word-break-all h-20 m-0 color-black txt18" };
21104
+ const _hoisted_6$9 = { class: "ellipsis-1 word-break-all h-20 m-0 color-black txt16" };
20825
21105
  const _hoisted_7$6 = {
20826
21106
  key: 1,
20827
21107
  class: "txt-gray txt-12"
@@ -20850,7 +21130,8 @@ const _hoisted_15$1 = {
20850
21130
  class: "progress"
20851
21131
  };
20852
21132
  const _hoisted_16$1 = { class: "p-1 flex column hover fileUploadPlaceHolder justify-content-center mb-05" };
20853
- const _sfc_main$H = /* @__PURE__ */ defineComponent({
21133
+ const _hoisted_17$1 = { class: "pretty balance" };
21134
+ const _sfc_main$I = /* @__PURE__ */ defineComponent({
20854
21135
  __name: "FileUpload",
20855
21136
  props: /* @__PURE__ */ mergeModels({
20856
21137
  label: {},
@@ -20866,7 +21147,10 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
20866
21147
  theme: { default: "dropzone" },
20867
21148
  accept: { default: "*" },
20868
21149
  required: { type: Boolean },
20869
- disabled: { type: Boolean }
21150
+ disabled: { type: Boolean },
21151
+ dropPlaceholder: {},
21152
+ noFilePlaceholder: {},
21153
+ btnPlaceholder: {}
20870
21154
  }, {
20871
21155
  "modelValue": {
20872
21156
  default: () => []
@@ -21022,7 +21306,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
21022
21306
  return (_ctx, _cache) => {
21023
21307
  const _directive_tooltip = resolveDirective("tooltip");
21024
21308
  const _directive_lightbox = resolveDirective("lightbox");
21025
- return openBlock(), createElementBlock("div", _hoisted_1$A, [
21309
+ return openBlock(), createElementBlock("div", _hoisted_1$B, [
21026
21310
  createElementVNode("label", null, toDisplayString(_ctx.label), 1),
21027
21311
  _ctx.required && !storageFiles.value.length ? (openBlock(), createElementBlock("input", _hoisted_2$p)) : createCommentVNode("", true),
21028
21312
  _ctx.theme === "basic" ? (openBlock(), createBlock(unref(_sfc_main$_), {
@@ -21038,13 +21322,9 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
21038
21322
  class: "px-1-5",
21039
21323
  icon: "upload",
21040
21324
  outline: "",
21325
+ value: _ctx.btnPlaceholder || "Upload",
21041
21326
  onClick: browse
21042
- }, {
21043
- default: withCtx(() => _cache[2] || (_cache[2] = [
21044
- createTextVNode(" Upload ")
21045
- ])),
21046
- _: 1
21047
- })) : createCommentVNode("", true),
21327
+ }, null, 8, ["value"])) : createCommentVNode("", true),
21048
21328
  (openBlock(true), createElementBlock(Fragment, null, renderList(storageFiles.value, (file) => {
21049
21329
  return openBlock(), createElementBlock("div", {
21050
21330
  key: file.id,
@@ -21085,7 +21365,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
21085
21365
  [_directive_lightbox, { src: file.url, download: true }]
21086
21366
  ]),
21087
21367
  createElementVNode("div", _hoisted_5$b, [
21088
- createVNode(unref(_sfc_main$p), {
21368
+ createVNode(unref(_sfc_main$q), {
21089
21369
  icon: "draft",
21090
21370
  size: 1.5
21091
21371
  }),
@@ -21105,7 +21385,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
21105
21385
  ])
21106
21386
  ]);
21107
21387
  }), 128)),
21108
- !storageFiles.value.length && !fileQueue.value.length ? (openBlock(), createElementBlock("span", _hoisted_7$6, " No file selected ")) : createCommentVNode("", true)
21388
+ !storageFiles.value.length && !fileQueue.value.length ? (openBlock(), createElementBlock("span", _hoisted_7$6, toDisplayString(_ctx.noFilePlaceholder || "No file selected"), 1)) : createCommentVNode("", true)
21109
21389
  ]),
21110
21390
  _: 1
21111
21391
  })) : (openBlock(), createElementBlock("div", {
@@ -21136,7 +21416,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
21136
21416
  class: "multi-preview",
21137
21417
  src: file.url,
21138
21418
  alt: ""
21139
- }, null, 8, ["src"])) : (openBlock(), createBlock(unref(_sfc_main$p), {
21419
+ }, null, 8, ["src"])) : (openBlock(), createBlock(unref(_sfc_main$q), {
21140
21420
  key: 1,
21141
21421
  icon: "draft",
21142
21422
  class: "multi-preview"
@@ -21166,7 +21446,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
21166
21446
  src: fileToUrl(fileQ.file),
21167
21447
  alt: ""
21168
21448
  }, null, 8, ["width", "src"])) : createCommentVNode("", true)
21169
- ], 64)) : (openBlock(), createBlock(unref(_sfc_main$p), {
21449
+ ], 64)) : (openBlock(), createBlock(unref(_sfc_main$q), {
21170
21450
  key: 1,
21171
21451
  icon: "draft",
21172
21452
  class: "multi-preview"
@@ -21177,7 +21457,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
21177
21457
  style: normalizeStyle([`--p:${fileQ.progress}`, { "--b": "2px" }])
21178
21458
  }, [
21179
21459
  fileQ.progress < 100 ? (openBlock(), createElementBlock("span", _hoisted_11$2, toDisplayString(`${fileQ.progress.toFixed(0)}`), 1)) : createCommentVNode("", true),
21180
- createVNode(unref(_sfc_main$p), {
21460
+ createVNode(unref(_sfc_main$q), {
21181
21461
  class: "success",
21182
21462
  icon: "check"
21183
21463
  })
@@ -21229,7 +21509,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
21229
21509
  }, null, 8, ["src"]), [
21230
21510
  [_directive_lightbox, { src: file.url, download: true }]
21231
21511
  ])
21232
- ])) : withDirectives((openBlock(), createBlock(unref(_sfc_main$p), {
21512
+ ])) : withDirectives((openBlock(), createBlock(unref(_sfc_main$q), {
21233
21513
  key: 1,
21234
21514
  size: 4,
21235
21515
  weight: "2",
@@ -21250,7 +21530,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
21250
21530
  style: normalizeStyle([`--p:${fileQ.progress}`, { "--b": "2px" }])
21251
21531
  }, [
21252
21532
  fileQ.progress < 100 ? (openBlock(), createElementBlock("span", _hoisted_15$1, toDisplayString(`${fileQ.progress.toFixed(0)}`), 1)) : createCommentVNode("", true),
21253
- createVNode(unref(_sfc_main$p), {
21533
+ createVNode(unref(_sfc_main$q), {
21254
21534
  class: "success",
21255
21535
  icon: "check"
21256
21536
  })
@@ -21274,8 +21554,8 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
21274
21554
  browse
21275
21555
  }, () => [
21276
21556
  createElementVNode("p", _hoisted_16$1, [
21277
- createVNode(unref(_sfc_main$p), { icon: "upload_2" }),
21278
- _cache[3] || (_cache[3] = createTextVNode(" Drop files here or click to upload "))
21557
+ createVNode(unref(_sfc_main$q), { icon: "upload_2" }),
21558
+ createElementVNode("span", _hoisted_17$1, toDisplayString(_ctx.dropPlaceholder || "Drag and Drop files here or click to upload"), 1)
21279
21559
  ])
21280
21560
  ], true) : createCommentVNode("", true)
21281
21561
  ], 38))
@@ -21283,11 +21563,11 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
21283
21563
  };
21284
21564
  }
21285
21565
  });
21286
- const FileUpload = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__scopeId", "data-v-9d12086d"]]);
21287
- const _hoisted_1$z = ["title"];
21566
+ const FileUpload = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__scopeId", "data-v-9939a5fb"]]);
21567
+ const _hoisted_1$A = ["title"];
21288
21568
  const _hoisted_2$o = { key: 0 };
21289
21569
  const _hoisted_3$j = ["value", "placeholder"];
21290
- const _sfc_main$G = /* @__PURE__ */ defineComponent({
21570
+ const _sfc_main$H = /* @__PURE__ */ defineComponent({
21291
21571
  __name: "JSONInput",
21292
21572
  props: {
21293
21573
  description: { default: "" },
@@ -21319,19 +21599,19 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
21319
21599
  placeholder: _ctx.placeholder,
21320
21600
  onInput: handleInput
21321
21601
  }, null, 42, _hoisted_3$j)
21322
- ], 10, _hoisted_1$z);
21602
+ ], 10, _hoisted_1$A);
21323
21603
  };
21324
21604
  }
21325
21605
  });
21326
- const JSONInput = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-1cbaeab2"]]);
21327
- const _hoisted_1$y = ["for"];
21606
+ const JSONInput = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__scopeId", "data-v-1cbaeab2"]]);
21607
+ const _hoisted_1$z = ["for"];
21328
21608
  const _hoisted_2$n = ["id", "placeholder", "disabled", "required", "readonly", "onKeydown"];
21329
21609
  const _hoisted_3$i = { key: 1 };
21330
21610
  const _hoisted_4$b = {
21331
21611
  key: 5,
21332
21612
  class: "flex column spinner"
21333
21613
  };
21334
- const _sfc_main$F = /* @__PURE__ */ defineComponent({
21614
+ const _sfc_main$G = /* @__PURE__ */ defineComponent({
21335
21615
  __name: "NumberInput",
21336
21616
  props: {
21337
21617
  modelValue: {},
@@ -21400,7 +21680,7 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
21400
21680
  }])
21401
21681
  }, [
21402
21682
  createElementVNode("div", { for: _ctx.id }, [
21403
- createTextVNode(toDisplayString(_ctx.label) + " ", 1),
21683
+ createElementVNode("label", null, toDisplayString(_ctx.label), 1),
21404
21684
  createElementVNode("div", {
21405
21685
  class: normalizeClass(["gap-025", { "column flex": _ctx.layout === "vertical", "flex": _ctx.layout === "horizontal" }])
21406
21686
  }, [
@@ -21449,12 +21729,12 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
21449
21729
  ]
21450
21730
  ]),
21451
21731
  _ctx.helptext ? (openBlock(), createElementBlock("p", _hoisted_3$i, toDisplayString(_ctx.helptext), 1)) : createCommentVNode("", true),
21452
- _ctx.iconStart ? (openBlock(), createBlock(unref(_sfc_main$p), {
21732
+ _ctx.iconStart ? (openBlock(), createBlock(unref(_sfc_main$q), {
21453
21733
  key: 2,
21454
21734
  class: "iconStart",
21455
21735
  icon: _ctx.iconStart
21456
21736
  }, null, 8, ["icon"])) : createCommentVNode("", true),
21457
- _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$p), {
21737
+ _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$q), {
21458
21738
  key: 3,
21459
21739
  icon: _ctx.icon
21460
21740
  }, null, 8, ["icon"])) : createCommentVNode("", true),
@@ -21487,14 +21767,14 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
21487
21767
  }, null, 8, ["disabled"])
21488
21768
  ])) : createCommentVNode("", true)
21489
21769
  ], 2)
21490
- ], 8, _hoisted_1$y)
21770
+ ], 8, _hoisted_1$z)
21491
21771
  ], 2);
21492
21772
  };
21493
21773
  }
21494
21774
  });
21495
- const NumberInput = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-cacbf10f"]]);
21496
- const _hoisted_1$x = ["value", "autofocus", "onKeydown", "onPaste"];
21497
- const _sfc_main$E = /* @__PURE__ */ defineComponent({
21775
+ const NumberInput = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-8ae5f930"]]);
21776
+ const _hoisted_1$y = ["value", "autofocus", "onKeydown", "onPaste"];
21777
+ const _sfc_main$F = /* @__PURE__ */ defineComponent({
21498
21778
  __name: "OTP",
21499
21779
  props: {
21500
21780
  digitCount: {},
@@ -21592,16 +21872,16 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
21592
21872
  oninput: "this.value = this.value.slice(0, 1);",
21593
21873
  onKeydown: ($event) => handleKeyDown($event, ind),
21594
21874
  onPaste: ($event) => handlePaste($event, ind)
21595
- }, null, 40, _hoisted_1$x);
21875
+ }, null, 40, _hoisted_1$y);
21596
21876
  }), 128))
21597
21877
  ], 512);
21598
21878
  };
21599
21879
  }
21600
21880
  });
21601
- const OTP = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__scopeId", "data-v-5c22c199"]]);
21602
- const _hoisted_1$w = { class: "relative" };
21881
+ const OTP = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-5c22c199"]]);
21882
+ const _hoisted_1$x = { class: "relative" };
21603
21883
  const _hoisted_2$m = { class: "m-password position-bottom-end flex column justify-content-center" };
21604
- const _sfc_main$D = /* @__PURE__ */ defineComponent({
21884
+ const _sfc_main$E = /* @__PURE__ */ defineComponent({
21605
21885
  __name: "PasswordInput",
21606
21886
  props: /* @__PURE__ */ mergeModels({
21607
21887
  id: {},
@@ -21642,7 +21922,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
21642
21922
  );
21643
21923
  const inputType = computed(() => showPwd.value ? "text" : "password");
21644
21924
  return (_ctx, _cache) => {
21645
- return openBlock(), createElementBlock("div", _hoisted_1$w, [
21925
+ return openBlock(), createElementBlock("div", _hoisted_1$x, [
21646
21926
  createVNode(unref(TextInput), mergeProps({
21647
21927
  modelValue: password.value,
21648
21928
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => password.value = $event)
@@ -21663,7 +21943,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
21663
21943
  };
21664
21944
  }
21665
21945
  });
21666
- const _hoisted_1$v = ["for"];
21946
+ const _hoisted_1$w = ["for"];
21667
21947
  const _hoisted_2$l = ["id", "name", "value", "required"];
21668
21948
  const _hoisted_3$h = { class: "flex w-100 gap-1 flex-wrap m_gap-05 m_gap-row-025" };
21669
21949
  const _hoisted_4$a = ["src", "alt"];
@@ -21676,7 +21956,7 @@ const _hoisted_7$5 = {
21676
21956
  key: 1,
21677
21957
  class: "txt-gray txt-12 m-0"
21678
21958
  };
21679
- const _sfc_main$C = /* @__PURE__ */ defineComponent({
21959
+ const _sfc_main$D = /* @__PURE__ */ defineComponent({
21680
21960
  __name: "RadioGroup",
21681
21961
  props: /* @__PURE__ */ mergeModels({
21682
21962
  groupName: {},
@@ -21731,19 +22011,19 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
21731
22011
  icon: "delete",
21732
22012
  onClick: ($event) => _ctx.$emit("delete", opt)
21733
22013
  }, null, 8, ["onClick"])) : createCommentVNode("", true)
21734
- ], 8, _hoisted_1$v);
22014
+ ], 8, _hoisted_1$w);
21735
22015
  }), 128))
21736
22016
  ]);
21737
22017
  };
21738
22018
  }
21739
22019
  });
21740
- const RadioGroup = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__scopeId", "data-v-3c77be46"]]);
21741
- const _hoisted_1$u = { class: "bagel-input" };
22020
+ const RadioGroup = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__scopeId", "data-v-3c77be46"]]);
22021
+ const _hoisted_1$v = { class: "bagel-input" };
21742
22022
  const _hoisted_2$k = { class: "pb-025" };
21743
22023
  const _hoisted_3$g = { class: "flex gap-05 flex-wrap" };
21744
22024
  const _hoisted_4$9 = ["id", "name", "value", "checked"];
21745
22025
  const _hoisted_5$9 = ["for"];
21746
- const _sfc_main$B = /* @__PURE__ */ defineComponent({
22026
+ const _sfc_main$C = /* @__PURE__ */ defineComponent({
21747
22027
  __name: "RadioPillsInput",
21748
22028
  props: {
21749
22029
  options: {},
@@ -21784,7 +22064,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
21784
22064
  selectedValue.value = props2.modelValue;
21785
22065
  });
21786
22066
  return (_ctx, _cache) => {
21787
- return openBlock(), createElementBlock("div", _hoisted_1$u, [
22067
+ return openBlock(), createElementBlock("div", _hoisted_1$v, [
21788
22068
  createElementVNode("label", _hoisted_2$k, toDisplayString(_ctx.label), 1),
21789
22069
  createElementVNode("div", _hoisted_3$g, [
21790
22070
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (option2, index2) => {
@@ -21810,8 +22090,8 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
21810
22090
  };
21811
22091
  }
21812
22092
  });
21813
- const RadioPillsInput = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__scopeId", "data-v-cf892d71"]]);
21814
- const _hoisted_1$t = ["dir"];
22093
+ const RadioPillsInput = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__scopeId", "data-v-cf892d71"]]);
22094
+ const _hoisted_1$u = ["dir"];
21815
22095
  const _hoisted_2$j = {
21816
22096
  key: 0,
21817
22097
  class: "label"
@@ -21821,7 +22101,7 @@ const _hoisted_4$8 = ["id", "value", "min", "max", "step", "required", "disabled
21821
22101
  const _hoisted_5$8 = ["value", "min", "max", "step", "required", "disabled"];
21822
22102
  const _hoisted_6$7 = { class: "track absolute pointer-events-none overflow-hidden round" };
21823
22103
  const _hoisted_7$4 = { class: "txt-center txt-14 user-select-none range-slider-txt flex space-between opacity-4 mx-05" };
21824
- const _sfc_main$A = /* @__PURE__ */ defineComponent({
22104
+ const _sfc_main$B = /* @__PURE__ */ defineComponent({
21825
22105
  __name: "RangeInput",
21826
22106
  props: {
21827
22107
  modelValue: {},
@@ -21981,11 +22261,11 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
21981
22261
  createElementVNode("span", null, toDisplayString(unref(formatValue)(unref(max2))), 1)
21982
22262
  ], true)
21983
22263
  ])
21984
- ], 8, _hoisted_1$t);
22264
+ ], 8, _hoisted_1$u);
21985
22265
  };
21986
22266
  }
21987
22267
  });
21988
- const RangeInput = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__scopeId", "data-v-25d991e5"]]);
22268
+ const RangeInput = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__scopeId", "data-v-25d991e5"]]);
21989
22269
  const tableTools = [
21990
22270
  "mergeCells",
21991
22271
  "splitCells",
@@ -22075,12 +22355,12 @@ const toolbarOptions = [
22075
22355
  { name: "separator" },
22076
22356
  { name: "fullScreen", label: "Full Screen", icon: "fullscreen", class: "ms-auto" }
22077
22357
  ];
22078
- const _hoisted_1$s = { class: "grid grid-wrap p-05" };
22358
+ const _hoisted_1$t = { class: "grid grid-wrap p-05" };
22079
22359
  const _hoisted_2$i = ["onMousemove", "onClick"];
22080
22360
  const _hoisted_3$e = { class: "txt-center txt-12 color-gray" };
22081
22361
  const fb = 1;
22082
22362
  const base = 5;
22083
- const _sfc_main$z = /* @__PURE__ */ defineComponent({
22363
+ const _sfc_main$A = /* @__PURE__ */ defineComponent({
22084
22364
  __name: "gridBox",
22085
22365
  emits: ["select"],
22086
22366
  setup(__props, { emit: __emit }) {
@@ -22096,7 +22376,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
22096
22376
  return hoveredCol.value > base - 1 ? enlarge : base;
22097
22377
  });
22098
22378
  return (_ctx, _cache) => {
22099
- return openBlock(), createElementBlock("div", _hoisted_1$s, [
22379
+ return openBlock(), createElementBlock("div", _hoisted_1$t, [
22100
22380
  (openBlock(true), createElementBlock(Fragment, null, renderList(rowSize.value, (row) => {
22101
22381
  return openBlock(), createElementBlock("div", {
22102
22382
  key: `row-${row}`,
@@ -22132,12 +22412,12 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
22132
22412
  };
22133
22413
  }
22134
22414
  });
22135
- const GridBox = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-4548b70f"]]);
22136
- const _hoisted_1$r = {
22415
+ const GridBox = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__scopeId", "data-v-4548b70f"]]);
22416
+ const _hoisted_1$s = {
22137
22417
  class: "toolbar flex gap-025 pb-05 flex-wrap",
22138
22418
  role: "toolbar"
22139
22419
  };
22140
- const _sfc_main$y = /* @__PURE__ */ defineComponent({
22420
+ const _sfc_main$z = /* @__PURE__ */ defineComponent({
22141
22421
  __name: "EditorToolbar",
22142
22422
  props: {
22143
22423
  config: { default: defaultToolbarConfig },
@@ -22152,10 +22432,10 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
22152
22432
  }
22153
22433
  return (_ctx, _cache) => {
22154
22434
  const _directive_tooltip = resolveDirective("tooltip");
22155
- return openBlock(), createElementBlock("div", _hoisted_1$r, [
22435
+ return openBlock(), createElementBlock("div", _hoisted_1$s, [
22156
22436
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.config.map(configToOption).filter(Boolean), (action, index2) => {
22157
22437
  return openBlock(), createElementBlock(Fragment, { key: index2 }, [
22158
- action.name === "insertTable" ? (openBlock(), createBlock(unref(_sfc_main$V), {
22438
+ action.name === "insertTable" ? (openBlock(), createBlock(unref(_sfc_main$U), {
22159
22439
  key: 0,
22160
22440
  placement: "bottom-start",
22161
22441
  thin: "",
@@ -22195,7 +22475,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
22195
22475
  };
22196
22476
  }
22197
22477
  });
22198
- const EditorToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__scopeId", "data-v-bcd681b9"]]);
22478
+ const EditorToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-bcd681b9"]]);
22199
22479
  function createCommandExecutor(state2, commands) {
22200
22480
  return {
22201
22481
  execute(command, value) {
@@ -22216,7 +22496,7 @@ function createCommandExecutor(state2, commands) {
22216
22496
  }
22217
22497
  };
22218
22498
  }
22219
- function isStyleActive(style, doc) {
22499
+ function isStyleActive(style2, doc) {
22220
22500
  const selection = doc.getSelection();
22221
22501
  if (!selection || !selection.rangeCount) return false;
22222
22502
  const range2 = selection.getRangeAt(0);
@@ -22233,7 +22513,7 @@ function isStyleActive(style, doc) {
22233
22513
  italic: ["em", "i"],
22234
22514
  underline: ["u"]
22235
22515
  };
22236
- return checkParent(parent, styleTags[style] ?? [style]);
22516
+ return checkParent(parent, styleTags[style2] ?? [style2]);
22237
22517
  }
22238
22518
  function analyzeSelection(doc, range2) {
22239
22519
  const container = range2.commonAncestorContainer;
@@ -22787,9 +23067,9 @@ function useEditor() {
22787
23067
  "ol",
22788
23068
  "li"
22789
23069
  ];
22790
- styleTypes.forEach((style) => {
22791
- if (state2.doc && isStyleActive(style, state2.doc)) {
22792
- styles.add(style);
23070
+ styleTypes.forEach((style2) => {
23071
+ if (state2.doc && isStyleActive(style2, state2.doc)) {
23072
+ styles.add(style2);
22793
23073
  }
22794
23074
  });
22795
23075
  state2.selectedStyles = styles;
@@ -23115,13 +23395,13 @@ function useEditorKeyboard(doc, handleToolbarAction) {
23115
23395
  }
23116
23396
  });
23117
23397
  }
23118
- const _hoisted_1$q = { class: "bagel-input" };
23398
+ const _hoisted_1$r = { class: "bagel-input" };
23119
23399
  const _hoisted_2$h = { class: "content-area radius-05" };
23120
23400
  const _hoisted_3$d = {
23121
23401
  key: 1,
23122
23402
  class: "flex"
23123
23403
  };
23124
- const _sfc_main$x = /* @__PURE__ */ defineComponent({
23404
+ const _sfc_main$y = /* @__PURE__ */ defineComponent({
23125
23405
  __name: "index",
23126
23406
  props: {
23127
23407
  modelValue: {},
@@ -23150,9 +23430,9 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
23150
23430
  doc.designMode = "on";
23151
23431
  doc.body.contentEditable = "true";
23152
23432
  doc.body.dir = hasRTL.value ? "rtl" : "ltr";
23153
- const style = doc.createElement("style");
23154
- style.textContent = (await import("./editor-BKPRpAjr.js")).default;
23155
- doc.head.appendChild(style);
23433
+ const style2 = doc.createElement("style");
23434
+ style2.textContent = (await import("./editor-BKPRpAjr.js")).default;
23435
+ doc.head.appendChild(style2);
23156
23436
  editor.init(doc);
23157
23437
  useEditorKeyboard(doc, commands.execute);
23158
23438
  if (!doc.body.firstElementChild) {
@@ -23198,10 +23478,10 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
23198
23478
  });
23199
23479
  return (_ctx, _cache) => {
23200
23480
  var _a2, _b;
23201
- return openBlock(), createElementBlock("div", _hoisted_1$q, [
23481
+ return openBlock(), createElementBlock("div", _hoisted_1$r, [
23202
23482
  createElementVNode("label", null, toDisplayString(_ctx.label), 1),
23203
23483
  createElementVNode("div", {
23204
- class: normalizeClass(["rich-text-editor rounded pt-05 px-05 pb-075 mb-05", { "fullscreen-mode": unref(editor).state.isFullscreen }])
23484
+ class: normalizeClass(["rich-text-editor rounded pt-05 px-05 pb-075", { "fullscreen-mode": unref(editor).state.isFullscreen }])
23205
23485
  }, [
23206
23486
  unref(editor).state.hasInit ? (openBlock(), createBlock(EditorToolbar, {
23207
23487
  key: 0,
@@ -23276,8 +23556,8 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
23276
23556
  };
23277
23557
  }
23278
23558
  });
23279
- const RichText = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-59d7c73f"]]);
23280
- const _hoisted_1$p = { class: "flex gap-05" };
23559
+ const RichText = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__scopeId", "data-v-08117333"]]);
23560
+ const _hoisted_1$q = { class: "flex gap-05" };
23281
23561
  const _hoisted_2$g = ["disabled"];
23282
23562
  const _hoisted_3$c = { key: 1 };
23283
23563
  const _hoisted_4$7 = {
@@ -23287,7 +23567,7 @@ const _hoisted_4$7 = {
23287
23567
  const _hoisted_5$7 = ["value"];
23288
23568
  const _hoisted_6$6 = ["aria-selected", "onClick", "onKeydown"];
23289
23569
  const _hoisted_7$3 = { class: "block" };
23290
- const _sfc_main$w = /* @__PURE__ */ defineComponent({
23570
+ const _sfc_main$x = /* @__PURE__ */ defineComponent({
23291
23571
  __name: "SelectInput",
23292
23572
  props: {
23293
23573
  options: {},
@@ -23463,7 +23743,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
23463
23743
  }
23464
23744
  });
23465
23745
  return (_ctx, _cache) => {
23466
- return openBlock(), createBlock(unref(_sfc_main$V), {
23746
+ return openBlock(), createBlock(unref(_sfc_main$U), {
23467
23747
  ref_key: "dropdown",
23468
23748
  ref: dropdown,
23469
23749
  shown: unref(open),
@@ -23475,7 +23755,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
23475
23755
  trigger: withCtx(() => [
23476
23756
  createElementVNode("label", null, [
23477
23757
  createTextVNode(toDisplayString(_ctx.label) + " ", 1),
23478
- createElementVNode("div", _hoisted_1$p, [
23758
+ createElementVNode("div", _hoisted_1$q, [
23479
23759
  _ctx.searchable && unref(open) ? (openBlock(), createBlock(unref(TextInput), {
23480
23760
  key: 0,
23481
23761
  ref_key: "searchInput",
@@ -23502,7 +23782,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
23502
23782
  _cache[6] || (_cache[6] = withKeys(withModifiers(($event) => navigate("up"), ["prevent"]), ["up"]))
23503
23783
  ]
23504
23784
  }, [
23505
- _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$p), {
23785
+ _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$q), {
23506
23786
  key: 0,
23507
23787
  icon: _ctx.icon
23508
23788
  }, null, 8, ["icon"])) : createCommentVNode("", true),
@@ -23519,7 +23799,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
23519
23799
  })
23520
23800
  })
23521
23801
  ])) : createCommentVNode("", true),
23522
- !_ctx.disabled ? (openBlock(), createBlock(unref(_sfc_main$p), mergeProps({
23802
+ !_ctx.disabled ? (openBlock(), createBlock(unref(_sfc_main$q), mergeProps({
23523
23803
  key: 3,
23524
23804
  thin: ""
23525
23805
  }, { icon: unref(open) ? "unfold_less" : "unfold_more" }), null, 16)) : createCommentVNode("", true)
@@ -23567,12 +23847,12 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
23567
23847
  ]
23568
23848
  }, [
23569
23849
  _ctx.multiselect ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
23570
- isSelected(option2) ? (openBlock(), createBlock(unref(_sfc_main$p), {
23850
+ isSelected(option2) ? (openBlock(), createBlock(unref(_sfc_main$q), {
23571
23851
  key: 0,
23572
23852
  size: 1.1,
23573
23853
  icon: "select_check_box"
23574
23854
  })) : createCommentVNode("", true),
23575
- !isSelected(option2) ? (openBlock(), createBlock(unref(_sfc_main$p), {
23855
+ !isSelected(option2) ? (openBlock(), createBlock(unref(_sfc_main$q), {
23576
23856
  key: 1,
23577
23857
  class: "opacity-3",
23578
23858
  icon: "check_box_outline_blank",
@@ -23593,7 +23873,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
23593
23873
  };
23594
23874
  }
23595
23875
  });
23596
- const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-70535216"]]);
23876
+ const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-70535216"]]);
23597
23877
  /*!
23598
23878
  * Signature Pad v5.0.4 | https://github.com/szimek/signature_pad
23599
23879
  * (c) 2024 Szymon Nowak | Released under the MIT license
@@ -24190,7 +24470,7 @@ class SignaturePad extends SignatureEventTarget {
24190
24470
  return svg.outerHTML;
24191
24471
  }
24192
24472
  }
24193
- const _hoisted_1$o = ["disabled"];
24473
+ const _hoisted_1$p = ["disabled"];
24194
24474
  const _hoisted_2$f = {
24195
24475
  key: 1,
24196
24476
  placeholder: "required",
@@ -24198,7 +24478,7 @@ const _hoisted_2$f = {
24198
24478
  required: "",
24199
24479
  class: "pixel"
24200
24480
  };
24201
- const _sfc_main$v = /* @__PURE__ */ defineComponent({
24481
+ const _sfc_main$w = /* @__PURE__ */ defineComponent({
24202
24482
  __name: "SignaturePad",
24203
24483
  props: /* @__PURE__ */ mergeModels({
24204
24484
  sigOption: {},
@@ -24351,7 +24631,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
24351
24631
  ref: vCanvas,
24352
24632
  class: "canvas",
24353
24633
  disabled: _ctx.disabled
24354
- }, null, 8, _hoisted_1$o),
24634
+ }, null, 8, _hoisted_1$p),
24355
24635
  _ctx.required && unref(_isEmpty) ? (openBlock(), createElementBlock("input", _hoisted_2$f)) : createCommentVNode("", true)
24356
24636
  ], 34);
24357
24637
  };
@@ -24532,8 +24812,8 @@ function toggleClass(el, name, state2) {
24532
24812
  }
24533
24813
  }
24534
24814
  function css(el, prop3, val) {
24535
- var style = el && el.style;
24536
- if (style) {
24815
+ var style2 = el && el.style;
24816
+ if (style2) {
24537
24817
  if (val === void 0) {
24538
24818
  if (document.defaultView && document.defaultView.getComputedStyle) {
24539
24819
  val = document.defaultView.getComputedStyle(el, "");
@@ -24542,10 +24822,10 @@ function css(el, prop3, val) {
24542
24822
  }
24543
24823
  return prop3 === void 0 ? val : val[prop3];
24544
24824
  } else {
24545
- if (!(prop3 in style) && prop3.indexOf("webkit") === -1) {
24825
+ if (!(prop3 in style2) && prop3.indexOf("webkit") === -1) {
24546
24826
  prop3 = "-webkit-" + prop3;
24547
24827
  }
24548
- style[prop3] = val + (typeof val === "string" ? "" : "px");
24828
+ style2[prop3] = val + (typeof val === "string" ? "" : "px");
24549
24829
  }
24550
24830
  }
24551
24831
  }
@@ -26836,13 +27116,13 @@ const VueDraggableNext = defineComponent({
26836
27116
  }
26837
27117
  }
26838
27118
  });
26839
- const _hoisted_1$n = ["title"];
27119
+ const _hoisted_1$o = ["title"];
26840
27120
  const _hoisted_2$e = { class: "bagel-input" };
26841
27121
  const _hoisted_3$b = { class: "table-side-scroll" };
26842
27122
  const _hoisted_4$6 = { class: "table-header" };
26843
27123
  const _hoisted_5$6 = { class: "table-reorder" };
26844
27124
  const _hoisted_6$5 = { class: "table-action" };
26845
- const _sfc_main$u = /* @__PURE__ */ defineComponent({
27125
+ const _sfc_main$v = /* @__PURE__ */ defineComponent({
26846
27126
  __name: "TableField",
26847
27127
  props: {
26848
27128
  description: { default: "" },
@@ -26939,7 +27219,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
26939
27219
  class: "flex table-row"
26940
27220
  }, [
26941
27221
  createElementVNode("div", _hoisted_5$6, [
26942
- createVNode(unref(_sfc_main$p), { icon: "more_vert" })
27222
+ createVNode(unref(_sfc_main$q), { icon: "more_vert" })
26943
27223
  ]),
26944
27224
  (openBlock(true), createElementBlock(Fragment, null, renderList((_a3 = unref(entityMeta)) == null ? void 0 : _a3.fields, (field) => {
26945
27225
  return openBlock(), createElementBlock("div", {
@@ -26956,7 +27236,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
26956
27236
  ], 2);
26957
27237
  }), 128)),
26958
27238
  createElementVNode("div", _hoisted_6$5, [
26959
- createVNode(unref(_sfc_main$p), {
27239
+ createVNode(unref(_sfc_main$q), {
26960
27240
  icon: "delete",
26961
27241
  onClick: ($event) => removeRow(index2)
26962
27242
  }, null, 8, ["onClick"])
@@ -26982,11 +27262,11 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
26982
27262
  ])),
26983
27263
  _: 1
26984
27264
  })
26985
- ], 8, _hoisted_1$n);
27265
+ ], 8, _hoisted_1$o);
26986
27266
  };
26987
27267
  }
26988
27268
  });
26989
- const TableField = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-e9632f79"]]);
27269
+ const TableField = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-e9632f79"]]);
26990
27270
  function bind(fn2, thisArg) {
26991
27271
  return function wrap() {
26992
27272
  return fn2.apply(thisArg, arguments);
@@ -31433,13 +31713,13 @@ function parsePhoneNumber$1() {
31433
31713
  function parsePhoneNumber() {
31434
31714
  return withMetadataArgument(parsePhoneNumber$1, arguments);
31435
31715
  }
31436
- const _hoisted_1$m = ["aria-expanded"];
31716
+ const _hoisted_1$n = ["aria-expanded"];
31437
31717
  const _hoisted_2$d = { class: "p-075 tel-countryp-dropdown" };
31438
31718
  const _hoisted_3$a = ["aria-selected", "onClick", "onMousemove"];
31439
31719
  const _hoisted_4$5 = { class: "tel-country" };
31440
31720
  const _hoisted_5$5 = { key: 1 };
31441
31721
  const _hoisted_6$4 = ["id", "required", "placeholder", "disabled", "autocomplete", "pattern", "minlength", "maxlength", "name", "readonly", "tabindex", "aria-describedby"];
31442
- const _sfc_main$t = /* @__PURE__ */ defineComponent({
31722
+ const _sfc_main$u = /* @__PURE__ */ defineComponent({
31443
31723
  __name: "TelInput",
31444
31724
  props: /* @__PURE__ */ mergeModels({
31445
31725
  label: {},
@@ -31701,7 +31981,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
31701
31981
  withKeys(reset, ["tab"])
31702
31982
  ]
31703
31983
  }, [
31704
- !computedDropDownOptions.value.hide ? (openBlock(), createBlock(unref(_sfc_main$V), {
31984
+ !computedDropDownOptions.value.hide ? (openBlock(), createBlock(unref(_sfc_main$U), {
31705
31985
  key: 0,
31706
31986
  ref_key: "phoneDropdown",
31707
31987
  ref: phoneDropdown,
@@ -31714,7 +31994,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
31714
31994
  class: "flex gap-05",
31715
31995
  onClick: _cache[0] || (_cache[0] = ($event) => isRef(open) ? open.value = true : open = true)
31716
31996
  }, [
31717
- createVNode(unref(_sfc_main$p), {
31997
+ createVNode(unref(_sfc_main$q), {
31718
31998
  icon: unref(open) ? "collapse_all" : "expand_all"
31719
31999
  }, null, 8, ["icon"]),
31720
32000
  computedDropDownOptions.value.showFlags && unref(activeCountryCode) ? (openBlock(), createBlock(unref(Flag), {
@@ -31788,19 +32068,19 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
31788
32068
  }, null, 44, _hoisted_6$4), [
31789
32069
  [vModelText, phone.value]
31790
32070
  ])
31791
- ], 40, _hoisted_1$m)
32071
+ ], 40, _hoisted_1$n)
31792
32072
  ])
31793
32073
  ], 2);
31794
32074
  };
31795
32075
  }
31796
32076
  });
31797
- const TelInput = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-492fcc54"]]);
31798
- const _hoisted_1$l = ["title"];
32077
+ const TelInput = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-492fcc54"]]);
32078
+ const _hoisted_1$m = ["title"];
31799
32079
  const _hoisted_2$c = ["for"];
31800
32080
  const _hoisted_3$9 = ["id", "title", "autocomplete", "type", "placeholder", "disabled", "required", "pattern"];
31801
32081
  const _hoisted_4$4 = ["id", "title", "type", "rows", "placeholder", "disabled", "required", "pattern"];
31802
32082
  const _hoisted_5$4 = { key: 2 };
31803
- const _sfc_main$s = /* @__PURE__ */ defineComponent({
32083
+ const _sfc_main$t = /* @__PURE__ */ defineComponent({
31804
32084
  __name: "TextInput",
31805
32085
  props: {
31806
32086
  id: {},
@@ -31926,25 +32206,25 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
31926
32206
  [vModelText, unref(inputVal)]
31927
32207
  ]),
31928
32208
  _ctx.helptext ? (openBlock(), createElementBlock("p", _hoisted_5$4, toDisplayString(_ctx.helptext), 1)) : createCommentVNode("", true),
31929
- _ctx.iconStart ? (openBlock(), createBlock(unref(_sfc_main$p), {
32209
+ _ctx.iconStart ? (openBlock(), createBlock(unref(_sfc_main$q), {
31930
32210
  key: 3,
31931
32211
  class: "iconStart",
31932
32212
  icon: _ctx.iconStart
31933
32213
  }, null, 8, ["icon"])) : createCommentVNode("", true),
31934
- _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$p), {
32214
+ _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$q), {
31935
32215
  key: 4,
31936
32216
  icon: _ctx.icon
31937
32217
  }, null, 8, ["icon"])) : createCommentVNode("", true)
31938
32218
  ], 8, _hoisted_2$c)
31939
- ], 10, _hoisted_1$l);
32219
+ ], 10, _hoisted_1$m);
31940
32220
  };
31941
32221
  }
31942
32222
  });
31943
- const TextInput = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-cc17f96e"]]);
31944
- const _hoisted_1$k = ["title"];
32223
+ const TextInput = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-cc17f96e"]]);
32224
+ const _hoisted_1$l = ["title"];
31945
32225
  const _hoisted_2$b = ["id", "required"];
31946
32226
  const _hoisted_3$8 = ["for"];
31947
- const _sfc_main$r = /* @__PURE__ */ defineComponent({
32227
+ const _sfc_main$s = /* @__PURE__ */ defineComponent({
31948
32228
  __name: "ToggleInput",
31949
32229
  props: /* @__PURE__ */ mergeModels({
31950
32230
  label: {},
@@ -31988,11 +32268,11 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
31988
32268
  createTextVNode(toDisplayString(_ctx.label), 1)
31989
32269
  ], true)
31990
32270
  ], 8, _hoisted_3$8)
31991
- ], 10, _hoisted_1$k);
32271
+ ], 10, _hoisted_1$l);
31992
32272
  };
31993
32273
  }
31994
32274
  });
31995
- const ToggleInput = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-ebe691ee"]]);
32275
+ const ToggleInput = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-ebe691ee"]]);
31996
32276
  const files = {
31997
32277
  setBaseUrl: (baseUrl) => {
31998
32278
  if (!baseUrl) return;
@@ -32018,7 +32298,7 @@ const files = {
32018
32298
  });
32019
32299
  }
32020
32300
  };
32021
- const _hoisted_1$j = { class: "bagel-input" };
32301
+ const _hoisted_1$k = { class: "bagel-input" };
32022
32302
  const _hoisted_2$a = { key: 0 };
32023
32303
  const _hoisted_3$7 = {
32024
32304
  key: 1,
@@ -32029,7 +32309,7 @@ const _hoisted_3$7 = {
32029
32309
  };
32030
32310
  const _hoisted_4$3 = { class: "m-05 flex opacity-7 z-99" };
32031
32311
  const _hoisted_5$3 = { class: "flex gap-025 rounded pe-1 ps-05 py-025 bg-gray-80 -my-1" };
32032
- const _hoisted_6$3 = { class: "ellipsis-1 word-break-all h-20 m-0 color-black txt18" };
32312
+ const _hoisted_6$3 = { class: "ellipsis-1 word-break-all h-20 m-0 color-black txt16" };
32033
32313
  const _hoisted_7$2 = {
32034
32314
  key: 1,
32035
32315
  class: "txt-gray txt-12"
@@ -32058,7 +32338,8 @@ const _hoisted_15 = {
32058
32338
  class: "progress"
32059
32339
  };
32060
32340
  const _hoisted_16 = { class: "p-1 flex column hover fileUploadPlaceHolder justify-content-center mb-05" };
32061
- const _sfc_main$q = /* @__PURE__ */ defineComponent({
32341
+ const _hoisted_17 = { class: "pretty balance" };
32342
+ const _sfc_main$r = /* @__PURE__ */ defineComponent({
32062
32343
  __name: "UploadInput",
32063
32344
  props: {
32064
32345
  label: {},
@@ -32073,7 +32354,10 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
32073
32354
  accept: { default: "*" },
32074
32355
  required: { type: Boolean },
32075
32356
  disabled: { type: Boolean },
32076
- baseURL: {}
32357
+ baseURL: {},
32358
+ dropPlaceholder: {},
32359
+ noFilePlaceholder: {},
32360
+ btnPlaceholder: {}
32077
32361
  },
32078
32362
  emits: ["update:modelValue", "addFileStart"],
32079
32363
  setup(__props, { emit: __emit }) {
@@ -32166,7 +32450,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
32166
32450
  return (_ctx, _cache) => {
32167
32451
  const _directive_tooltip = resolveDirective("tooltip");
32168
32452
  const _directive_lightbox = resolveDirective("lightbox");
32169
- return openBlock(), createElementBlock("div", _hoisted_1$j, [
32453
+ return openBlock(), createElementBlock("div", _hoisted_1$k, [
32170
32454
  _ctx.label ? (openBlock(), createElementBlock("label", _hoisted_2$a, toDisplayString(_ctx.label), 1)) : createCommentVNode("", true),
32171
32455
  _ctx.required && !pathKeys.value.length ? (openBlock(), createElementBlock("input", _hoisted_3$7)) : createCommentVNode("", true),
32172
32456
  _ctx.theme === "basic" ? (openBlock(), createBlock(unref(_sfc_main$_), {
@@ -32182,13 +32466,9 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
32182
32466
  class: "px-1-5",
32183
32467
  icon: "upload",
32184
32468
  outline: "",
32469
+ value: _ctx.btnPlaceholder || "Upload",
32185
32470
  onClick: browse
32186
- }, {
32187
- default: withCtx(() => _cache[3] || (_cache[3] = [
32188
- createTextVNode(" Upload ")
32189
- ])),
32190
- _: 1
32191
- })) : createCommentVNode("", true),
32471
+ }, null, 8, ["value"])) : createCommentVNode("", true),
32192
32472
  (openBlock(true), createElementBlock(Fragment, null, renderList(pathKeys.value, (path_key) => {
32193
32473
  return openBlock(), createElementBlock("div", {
32194
32474
  key: path_key,
@@ -32219,7 +32499,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
32219
32499
  download: path_key.split("/").pop()
32220
32500
  }, null, 8, ["href", "download"]),
32221
32501
  createElementVNode("div", _hoisted_5$3, [
32222
- createVNode(unref(_sfc_main$p), {
32502
+ createVNode(unref(_sfc_main$q), {
32223
32503
  icon: "draft",
32224
32504
  size: 1.5
32225
32505
  }),
@@ -32232,7 +32512,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
32232
32512
  ])
32233
32513
  ]);
32234
32514
  }), 128)),
32235
- !pathKeys.value.length && !fileQueue.value.length ? (openBlock(), createElementBlock("span", _hoisted_7$2, " No file selected ")) : createCommentVNode("", true)
32515
+ !pathKeys.value.length && !fileQueue.value.length ? (openBlock(), createElementBlock("span", _hoisted_7$2, toDisplayString(_ctx.noFilePlaceholder || "No file selected"), 1)) : createCommentVNode("", true)
32236
32516
  ]),
32237
32517
  _: 1
32238
32518
  })) : (openBlock(), createElementBlock("div", {
@@ -32262,7 +32542,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
32262
32542
  key: 0,
32263
32543
  pathKey: path_key,
32264
32544
  class: "multi-preview"
32265
- }, null, 8, ["pathKey"])) : (openBlock(), createBlock(unref(_sfc_main$p), {
32545
+ }, null, 8, ["pathKey"])) : (openBlock(), createBlock(unref(_sfc_main$q), {
32266
32546
  key: 1,
32267
32547
  icon: "description",
32268
32548
  class: "multi-preview"
@@ -32289,7 +32569,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
32289
32569
  class: "multi-preview",
32290
32570
  src: fileToUrl(file.file),
32291
32571
  alt: ""
32292
- }, null, 8, ["src"])) : (openBlock(), createBlock(unref(_sfc_main$p), {
32572
+ }, null, 8, ["src"])) : (openBlock(), createBlock(unref(_sfc_main$q), {
32293
32573
  key: 1,
32294
32574
  icon: "description",
32295
32575
  class: "multi-preview"
@@ -32300,7 +32580,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
32300
32580
  style: normalizeStyle([{ "--p": file.progress }, { "--b": "2px" }])
32301
32581
  }, [
32302
32582
  file.progress < 100 ? (openBlock(), createElementBlock("span", _hoisted_11$1, toDisplayString(file.progress.toFixed(0)), 1)) : createCommentVNode("", true),
32303
- createVNode(unref(_sfc_main$p), {
32583
+ createVNode(unref(_sfc_main$q), {
32304
32584
  class: "success",
32305
32585
  icon: "check_circle"
32306
32586
  })
@@ -32348,7 +32628,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
32348
32628
  }, null, 8, ["pathKey"]), [
32349
32629
  [_directive_lightbox, { src: pathToUrl(path_key), download: true }]
32350
32630
  ])
32351
- ])) : withDirectives((openBlock(), createBlock(unref(_sfc_main$p), {
32631
+ ])) : withDirectives((openBlock(), createBlock(unref(_sfc_main$q), {
32352
32632
  key: 1,
32353
32633
  size: 4,
32354
32634
  weight: "2",
@@ -32369,7 +32649,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
32369
32649
  style: normalizeStyle([{ "--p": file.progress }, { "--b": "2px" }])
32370
32650
  }, [
32371
32651
  file.progress < 100 ? (openBlock(), createElementBlock("span", _hoisted_15, toDisplayString(file.progress.toFixed(0)), 1)) : createCommentVNode("", true),
32372
- createVNode(unref(_sfc_main$p), {
32652
+ createVNode(unref(_sfc_main$q), {
32373
32653
  class: "success",
32374
32654
  icon: "check_circle"
32375
32655
  })
@@ -32393,8 +32673,8 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
32393
32673
  browse
32394
32674
  }, () => [
32395
32675
  createElementVNode("p", _hoisted_16, [
32396
- createVNode(unref(_sfc_main$p), { icon: "upload_2" }),
32397
- _cache[4] || (_cache[4] = createTextVNode(" Drop files here or click to upload "))
32676
+ createVNode(unref(_sfc_main$q), { icon: "upload_2" }),
32677
+ createElementVNode("span", _hoisted_17, toDisplayString(_ctx.dropPlaceholder || "Drag and Drop files here or click to upload"), 1)
32398
32678
  ])
32399
32679
  ], true) : createCommentVNode("", true)
32400
32680
  ], 38))
@@ -32402,7 +32682,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
32402
32682
  };
32403
32683
  }
32404
32684
  });
32405
- const UploadInput = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-33f11d1f"]]);
32685
+ const UploadInput = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-d65d0a87"]]);
32406
32686
  const FONT_AWESOME_ICONS = [
32407
32687
  "trash-can",
32408
32688
  "message",
@@ -36828,7 +37108,7 @@ const MATERIAL_ICONS = [
36828
37108
  "zoom_out",
36829
37109
  "zoom_out_map"
36830
37110
  ];
36831
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
37111
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
36832
37112
  __name: "Icon",
36833
37113
  props: {
36834
37114
  icon: {},
@@ -36859,8 +37139,8 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
36859
37139
  };
36860
37140
  }
36861
37141
  });
36862
- const _hoisted_1$i = ["src", "title", "width", "height", "marginwidth", "marginheight", "csp", "scrolling", "srcset"];
36863
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
37142
+ const _hoisted_1$j = ["src", "title", "width", "height", "marginwidth", "marginheight", "csp", "scrolling", "srcset"];
37143
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
36864
37144
  __name: "IframeVue",
36865
37145
  props: {
36866
37146
  src: {},
@@ -36919,14 +37199,14 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
36919
37199
  scrolling: _ctx.scrolling,
36920
37200
  srcset: _ctx.srcset,
36921
37201
  onLoad: _cache[0] || (_cache[0] = ($event) => emit2("load", $event))
36922
- }, null, 40, _hoisted_1$i);
37202
+ }, null, 40, _hoisted_1$j);
36923
37203
  };
36924
37204
  }
36925
37205
  });
36926
- const _hoisted_1$h = { key: 0 };
37206
+ const _hoisted_1$i = { key: 0 };
36927
37207
  const _hoisted_2$9 = ["src", "alt", "width", "height"];
36928
37208
  const _hoisted_3$6 = ["src", "alt", "width", "height"];
36929
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
37209
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
36930
37210
  __name: "Image",
36931
37211
  props: {
36932
37212
  src: {},
@@ -37008,7 +37288,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
37008
37288
  }
37009
37289
  watch(() => [props2.src, props2.pathKey], loadImage, { immediate: true });
37010
37290
  return (_ctx, _cache) => {
37011
- return _ctx.caption ? (openBlock(), createElementBlock("figcaption", _hoisted_1$h, [
37291
+ return _ctx.caption ? (openBlock(), createElementBlock("figcaption", _hoisted_1$i, [
37012
37292
  unref(imageSrc) ? (openBlock(), createElementBlock("img", mergeProps({
37013
37293
  key: 0,
37014
37294
  src: unref(imageSrc)
@@ -37037,7 +37317,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
37037
37317
  height: unref(normalizeDimension)(_ctx.height)
37038
37318
  })
37039
37319
  }, [
37040
- createVNode(unref(_sfc_main$p), { name: "broken_image" })
37320
+ createVNode(unref(_sfc_main$q), { name: "broken_image" })
37041
37321
  ], 4)) : (openBlock(), createBlock(unref(Skeleton), {
37042
37322
  key: 3,
37043
37323
  class: "img-web-kit",
@@ -37047,9 +37327,9 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
37047
37327
  };
37048
37328
  }
37049
37329
  });
37050
- const Image$1 = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-6f277b5b"]]);
37051
- const _hoisted_1$g = { class: "m-0 pb-025 txt14 line-height-1 w60 menu-text" };
37052
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
37330
+ const Image$1 = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-6f277b5b"]]);
37331
+ const _hoisted_1$h = { class: "m-0 pb-025 txt14 line-height-1 w60 menu-text" };
37332
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
37053
37333
  __name: "BottomMenu",
37054
37334
  props: {
37055
37335
  navLinks: {}
@@ -37067,12 +37347,12 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
37067
37347
  onClick: nav.onClick
37068
37348
  }, {
37069
37349
  default: withCtx(() => [
37070
- createVNode(unref(_sfc_main$p), {
37350
+ createVNode(unref(_sfc_main$q), {
37071
37351
  icon: nav.icon,
37072
37352
  size: 1.4,
37073
37353
  class: "m-0 line-height-14"
37074
37354
  }, null, 8, ["icon"]),
37075
- createElementVNode("p", _hoisted_1$g, toDisplayString(nav.label), 1)
37355
+ createElementVNode("p", _hoisted_1$h, toDisplayString(nav.label), 1)
37076
37356
  ]),
37077
37357
  _: 2
37078
37358
  }, 1032, ["to", "onClick"]);
@@ -37084,8 +37364,8 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
37084
37364
  };
37085
37365
  }
37086
37366
  });
37087
- const BottomMenu = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-fe3a895e"]]);
37088
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
37367
+ const BottomMenu = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-fe3a895e"]]);
37368
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
37089
37369
  __name: "Layout",
37090
37370
  props: {
37091
37371
  gap: { default: 1 },
@@ -37126,9 +37406,9 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
37126
37406
  };
37127
37407
  }
37128
37408
  });
37129
- const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-1814129a"]]);
37130
- const _hoisted_1$f = { key: 0 };
37131
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
37409
+ const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-1814129a"]]);
37410
+ const _hoisted_1$g = { key: 0 };
37411
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
37132
37412
  __name: "SidebarMenu",
37133
37413
  props: {
37134
37414
  navLinks: {},
@@ -37169,13 +37449,13 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
37169
37449
  class: "nav-button px-075 me-auto w-100"
37170
37450
  }, {
37171
37451
  default: withCtx(() => [
37172
- createVNode(unref(_sfc_main$p), {
37452
+ createVNode(unref(_sfc_main$q), {
37173
37453
  icon: nav.icon,
37174
37454
  size: 1.4
37175
37455
  }, null, 8, ["icon"]),
37176
37456
  createVNode(Transition, { name: "showP" }, {
37177
37457
  default: withCtx(() => [
37178
- _ctx.open ? (openBlock(), createElementBlock("p", _hoisted_1$f, toDisplayString(nav.label), 1)) : createCommentVNode("", true)
37458
+ _ctx.open ? (openBlock(), createElementBlock("p", _hoisted_1$g, toDisplayString(nav.label), 1)) : createCommentVNode("", true)
37179
37459
  ]),
37180
37460
  _: 2
37181
37461
  }, 1024)
@@ -37202,8 +37482,8 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
37202
37482
  };
37203
37483
  }
37204
37484
  });
37205
- const SidebarMenu = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-ac02125e"]]);
37206
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
37485
+ const SidebarMenu = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-ac02125e"]]);
37486
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
37207
37487
  __name: "Skeleton",
37208
37488
  props: {
37209
37489
  count: { default: 1 },
@@ -37234,11 +37514,11 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
37234
37514
  };
37235
37515
  }
37236
37516
  });
37237
- const Skeleton = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-4da8c0d1"]]);
37238
- const _hoisted_1$e = { class: "bgl_card tabs-top" };
37517
+ const Skeleton = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-4da8c0d1"]]);
37518
+ const _hoisted_1$f = { class: "bgl_card tabs-top" };
37239
37519
  const _hoisted_2$8 = { class: "tabs grid auto-flow-columns fit-content" };
37240
37520
  const _hoisted_3$5 = ["onClick"];
37241
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
37521
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
37242
37522
  __name: "TabbedLayout",
37243
37523
  props: {
37244
37524
  title: {},
@@ -37271,7 +37551,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
37271
37551
  return openBlock(), createElementBlock("div", {
37272
37552
  class: normalizeClass(["h-100 grid list-view gap-1", { "side-tabs": _ctx.sideTabs }])
37273
37553
  }, [
37274
- createElementVNode("div", _hoisted_1$e, [
37554
+ createElementVNode("div", _hoisted_1$f, [
37275
37555
  renderSlot(_ctx.$slots, "top-section", {}, void 0, true),
37276
37556
  createElementVNode("div", _hoisted_2$8, [
37277
37557
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.tabs, (tab) => {
@@ -37298,9 +37578,22 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
37298
37578
  };
37299
37579
  }
37300
37580
  });
37301
- const TabbedLayout = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-915732c1"]]);
37302
- const _hoisted_1$d = { key: 0 };
37303
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
37581
+ const TabbedLayout = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-915732c1"]]);
37582
+ const state$1 = reactive(/* @__PURE__ */ new Map());
37583
+ function useTabs(group) {
37584
+ if (!state$1.has(group)) {
37585
+ state$1.set(group, reactive({ currentTab: void 0 }));
37586
+ }
37587
+ const currentTab = computed({
37588
+ get: () => state$1.get(group).currentTab,
37589
+ set: (val) => {
37590
+ state$1.get(group).currentTab = val;
37591
+ }
37592
+ });
37593
+ return { currentTab };
37594
+ }
37595
+ const _hoisted_1$e = { key: 0 };
37596
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
37304
37597
  __name: "Tabs",
37305
37598
  props: {
37306
37599
  tabs: {},
@@ -37342,14 +37635,14 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
37342
37635
  group: unref(group),
37343
37636
  class: "mb-05"
37344
37637
  }, null, 8, ["modelValue", "flat", "tabs", "group"]),
37345
- unref(currentTab) ? (openBlock(), createElementBlock("div", _hoisted_1$d, [
37638
+ unref(currentTab) ? (openBlock(), createElementBlock("div", _hoisted_1$e, [
37346
37639
  unref(slots)[unref(currentTab)] ? renderSlot(_ctx.$slots, unref(currentTab), { key: 0 }) : unref(currentTab) ? (openBlock(), createBlock(resolveDynamicComponent(unref(tabComponent)), { key: 1 })) : createCommentVNode("", true)
37347
37640
  ])) : createCommentVNode("", true)
37348
37641
  ], 64);
37349
37642
  };
37350
37643
  }
37351
37644
  });
37352
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
37645
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
37353
37646
  __name: "TabsBody",
37354
37647
  props: {
37355
37648
  group: {}
@@ -37362,6 +37655,97 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
37362
37655
  };
37363
37656
  }
37364
37657
  });
37658
+ const _hoisted_1$d = ["onClick"];
37659
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
37660
+ __name: "TabsNav",
37661
+ props: {
37662
+ title: {},
37663
+ tabs: {},
37664
+ modelValue: {},
37665
+ sideTabs: { type: Boolean },
37666
+ group: {},
37667
+ flat: { type: Boolean },
37668
+ vertical: { type: Boolean }
37669
+ },
37670
+ emits: ["update:modelValue"],
37671
+ setup(__props, { emit: __emit }) {
37672
+ const props2 = __props;
37673
+ const emit2 = __emit;
37674
+ const { currentTab } = useTabs(props2.group);
37675
+ currentTab.value = props2.modelValue || typeof props2.tabs[0] === "string" ? props2.tabs[0] : props2.tabs[0].id;
37676
+ const tabsWrap = ref(void 0);
37677
+ const tabs = ref([]);
37678
+ function updateIndicator() {
37679
+ const activeTab = tabs.value.find((tab) => tab.classList.contains("active"));
37680
+ if (activeTab && tabsWrap.value) {
37681
+ const { offsetLeft, offsetWidth } = activeTab;
37682
+ tabsWrap.value.style.setProperty("--indicator-left", `${offsetLeft}px`);
37683
+ if (tabsWrap.value) {
37684
+ tabsWrap.value.style.setProperty("--indicator-width", `${offsetWidth}px`);
37685
+ }
37686
+ }
37687
+ }
37688
+ function selectTab(tab) {
37689
+ currentTab.value = typeof tab === "string" ? tab : tab.id;
37690
+ emit2("update:modelValue", currentTab.value);
37691
+ nextTick(() => {
37692
+ updateIndicator();
37693
+ });
37694
+ }
37695
+ function isActive(tab) {
37696
+ if (typeof tab === "string") return currentTab.value === tab;
37697
+ return currentTab.value === tab.id;
37698
+ }
37699
+ function tabLabel(tab) {
37700
+ if (typeof tab === "string") return tab;
37701
+ return tab.label;
37702
+ }
37703
+ watch(
37704
+ () => props2.modelValue,
37705
+ (value) => {
37706
+ if (value && !isActive(value)) currentTab.value = value;
37707
+ nextTick(() => {
37708
+ updateIndicator();
37709
+ });
37710
+ },
37711
+ { immediate: true }
37712
+ );
37713
+ onMounted(() => {
37714
+ var _a2;
37715
+ tabs.value = Array.from(((_a2 = tabsWrap.value) == null ? void 0 : _a2.querySelectorAll(".bgl_tab")) || []);
37716
+ updateIndicator();
37717
+ window.addEventListener("resize", updateIndicator);
37718
+ });
37719
+ onBeforeUnmount(() => {
37720
+ window.removeEventListener("resize", updateIndicator);
37721
+ });
37722
+ return (_ctx, _cache) => {
37723
+ return openBlock(), createElementBlock("div", {
37724
+ ref_key: "tabsWrap",
37725
+ ref: tabsWrap,
37726
+ class: normalizeClass(["grid auto-flow-columns relative fit-content bgl_tabs_wrap overflow-hidden", { "bgl_flat-tabs": _ctx.flat, "bgl_vertical-tabs": _ctx.vertical }])
37727
+ }, [
37728
+ renderSlot(_ctx.$slots, "tabs", normalizeProps(guardReactiveProps({ selectTab, isActive, tabLabel, tabs: tabs.value })), () => [
37729
+ (openBlock(true), createElementBlock(Fragment, null, renderList(props2.tabs, (tab, i2) => {
37730
+ return openBlock(), createElementBlock("button", {
37731
+ key: i2,
37732
+ type: "button",
37733
+ class: normalizeClass([{ active: isActive(tab) }, "bgl_tab relative z-1"]),
37734
+ onClick: ($event) => selectTab(tab)
37735
+ }, [
37736
+ typeof tab !== "string" && tab.icon ? (openBlock(), createBlock(unref(_sfc_main$q), {
37737
+ key: 0,
37738
+ icon: tab.icon
37739
+ }, null, 8, ["icon"])) : createCommentVNode("", true),
37740
+ createTextVNode(" " + toDisplayString(tabLabel(tab)), 1)
37741
+ ], 10, _hoisted_1$d);
37742
+ }), 128))
37743
+ ], true)
37744
+ ], 2);
37745
+ };
37746
+ }
37747
+ });
37748
+ const TabsNav = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-e680c2a4"]]);
37365
37749
  const _hoisted_1$c = { class: "no-margin ellipsis line-height-14 pb-025" };
37366
37750
  const _hoisted_2$7 = { class: "txt12 no-margin txt-gray ellipsis" };
37367
37751
  const _sfc_main$f = /* @__PURE__ */ defineComponent({
@@ -37391,7 +37775,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
37391
37775
  src: _ctx.src,
37392
37776
  size: 40
37393
37777
  }, null, 8, ["name", "src"])) : createCommentVNode("", true),
37394
- _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$p), {
37778
+ _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$q), {
37395
37779
  key: 1,
37396
37780
  size: "1.2",
37397
37781
  class: "color-primary",
@@ -37413,21 +37797,28 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
37413
37797
  };
37414
37798
  }
37415
37799
  });
37416
- const _sfc_main$e = {};
37417
37800
  const _hoisted_1$b = { class: "list-wrap bgl_card thin grid overflow-hidden h-100 pt-0 pb-05 px-0 m_pb-0" };
37418
- const _hoisted_2$6 = { class: "p-1" };
37801
+ const _hoisted_2$6 = {
37802
+ key: 0,
37803
+ class: "p-1"
37804
+ };
37419
37805
  const _hoisted_3$4 = { class: "list-content auto-flow-rows align-items-start overflow-y h-100" };
37420
- function _sfc_render$3(_ctx, _cache) {
37421
- return openBlock(), createElementBlock("div", _hoisted_1$b, [
37422
- createElementVNode("div", _hoisted_2$6, [
37423
- renderSlot(_ctx.$slots, "header")
37424
- ]),
37425
- createElementVNode("div", _hoisted_3$4, [
37426
- renderSlot(_ctx.$slots, "default")
37427
- ])
37428
- ]);
37429
- }
37430
- const ListView = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$3]]);
37806
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
37807
+ __name: "ListView",
37808
+ setup(__props) {
37809
+ const slots = useSlots();
37810
+ return (_ctx, _cache) => {
37811
+ return openBlock(), createElementBlock("div", _hoisted_1$b, [
37812
+ unref(slots).header ? (openBlock(), createElementBlock("div", _hoisted_2$6, [
37813
+ renderSlot(_ctx.$slots, "header")
37814
+ ])) : createCommentVNode("", true),
37815
+ createElementVNode("div", _hoisted_3$4, [
37816
+ renderSlot(_ctx.$slots, "default")
37817
+ ])
37818
+ ]);
37819
+ };
37820
+ }
37821
+ });
37431
37822
  const _hoisted_1$a = { class: "flex-center" };
37432
37823
  const _sfc_main$d = /* @__PURE__ */ defineComponent({
37433
37824
  __name: "Loading",
@@ -37844,7 +38235,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
37844
38235
  "onUpdate:visible": _cache[1] || (_cache[1] = ($event) => emit2("update:visible", $event))
37845
38236
  }, createSlots({
37846
38237
  default: withCtx(() => [
37847
- _ctx.visible ? (openBlock(), createBlock(unref(_sfc_main$S), {
38238
+ _ctx.visible ? (openBlock(), createBlock(unref(_sfc_main$R), {
37848
38239
  key: 0,
37849
38240
  ref_key: "form",
37850
38241
  ref: form,
@@ -37940,7 +38331,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
37940
38331
  onClick: toggleMenu,
37941
38332
  onKeypress: withKeys(toggleMenu, ["enter"])
37942
38333
  }, [
37943
- createVNode(unref(_sfc_main$p), {
38334
+ createVNode(unref(_sfc_main$q), {
37944
38335
  icon: "chevron_right",
37945
38336
  class: "top-arrow"
37946
38337
  })
@@ -37959,7 +38350,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
37959
38350
  }
37960
38351
  }, {
37961
38352
  default: withCtx(() => [
37962
- createVNode(unref(_sfc_main$p), {
38353
+ createVNode(unref(_sfc_main$q), {
37963
38354
  icon: link.icon
37964
38355
  }, null, 8, ["icon"]),
37965
38356
  createElementVNode("div", _hoisted_4$2, toDisplayString(link.label), 1)
@@ -37981,7 +38372,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
37981
38372
  }
37982
38373
  }, {
37983
38374
  default: withCtx(() => [
37984
- createVNode(unref(_sfc_main$p), {
38375
+ createVNode(unref(_sfc_main$q), {
37985
38376
  icon: link.icon
37986
38377
  }, null, 8, ["icon"]),
37987
38378
  createElementVNode("div", _hoisted_6$2, toDisplayString(link.label), 1)
@@ -38058,8 +38449,8 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
38058
38449
  },
38059
38450
  setup(__props) {
38060
38451
  useCssVars((_ctx) => ({
38061
- "3a60c2df": computedBackgroundColor.value,
38062
- "69137cfa": cumputedTextColor.value
38452
+ "2a89394f": computedBackgroundColor.value,
38453
+ "369cf12c": cumputedTextColor.value
38063
38454
  }));
38064
38455
  const props2 = __props;
38065
38456
  const slots = useSlots();
@@ -38126,15 +38517,15 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
38126
38517
  }, _ctx.btn), null, 16)
38127
38518
  ])) : createCommentVNode("", true)
38128
38519
  ])),
38129
- _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$p), {
38520
+ _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$q), {
38130
38521
  key: 2,
38131
38522
  icon: _ctx.icon
38132
38523
  }, null, 8, ["icon"])) : createCommentVNode("", true),
38133
38524
  renderSlot(_ctx.$slots, "default", {}, void 0, true),
38134
- !unref(slots).default && _ctx.value ? (openBlock(), createElementBlock(Fragment, { key: 3 }, [
38525
+ !unref(slots).default ? (openBlock(), createElementBlock(Fragment, { key: 3 }, [
38135
38526
  createTextVNode(toDisplayString(_ctx.value || _ctx.modelValue), 1)
38136
38527
  ], 64)) : createCommentVNode("", true),
38137
- _ctx.iconEnd ? (openBlock(), createBlock(unref(_sfc_main$p), {
38528
+ _ctx.iconEnd ? (openBlock(), createBlock(unref(_sfc_main$q), {
38138
38529
  key: 4,
38139
38530
  icon: _ctx.iconEnd
38140
38531
  }, null, 8, ["icon"])) : createCommentVNode("", true),
@@ -38152,7 +38543,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
38152
38543
  };
38153
38544
  }
38154
38545
  });
38155
- const Pill = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-47a928b4"]]);
38546
+ const Pill = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-2ca4d3a1"]]);
38156
38547
  const _sfc_main$5 = {};
38157
38548
  function _sfc_render$2(_ctx, _cache) {
38158
38549
  const _component_router_view = resolveComponent("router-view");
@@ -38644,6 +39035,67 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
38644
39035
  }
38645
39036
  });
38646
39037
  const Zoomer = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-379819e1"]]);
39038
+ const FORM_STATE_KEY = Symbol("bagelFormState");
39039
+ function safeClone(obj) {
39040
+ if (obj === null || typeof obj !== "object") return obj;
39041
+ const seen = /* @__PURE__ */ new WeakSet();
39042
+ return JSON.parse(JSON.stringify(obj, (key, value) => {
39043
+ if (typeof value === "object" && value !== null) {
39044
+ if (seen.has(value)) {
39045
+ return void 0;
39046
+ }
39047
+ seen.add(value);
39048
+ }
39049
+ return value;
39050
+ }));
39051
+ }
39052
+ function provideBagelFormState(initialData) {
39053
+ const data2 = ref(initialData);
39054
+ const isDirty = ref(false);
39055
+ const getFieldData = (path) => {
39056
+ if (!path) return "";
39057
+ const keys4 = path.split(/[.[]/);
39058
+ let current = data2.value;
39059
+ for (let i2 = 0; i2 < keys4.length; i2++) {
39060
+ const key = keys4[i2];
39061
+ if (!current || typeof current !== "object" || !(key in current)) {
39062
+ return "";
39063
+ }
39064
+ current = current[key];
39065
+ }
39066
+ return current ?? "";
39067
+ };
39068
+ const updateField = (path, value) => {
39069
+ const keys4 = path.split(/[.[]/);
39070
+ if (typeof data2.value !== "object" || data2.value === null) {
39071
+ data2.value = {};
39072
+ }
39073
+ let current = data2.value;
39074
+ for (let i2 = 0; i2 < keys4.length - 1; i2++) {
39075
+ const key = keys4[i2];
39076
+ if (!(key in current) || typeof current[key] !== "object" || current[key] === null) {
39077
+ current[key] = {};
39078
+ }
39079
+ current = current[key];
39080
+ }
39081
+ const safeValue = safeClone(value);
39082
+ current[keys4[keys4.length - 1]] = safeValue;
39083
+ isDirty.value = true;
39084
+ };
39085
+ const state2 = {
39086
+ data: data2,
39087
+ getFieldData,
39088
+ updateField,
39089
+ isDirty
39090
+ };
39091
+ provide(FORM_STATE_KEY, state2);
39092
+ return state2;
39093
+ }
39094
+ function useBagelFormState() {
39095
+ const state2 = inject(FORM_STATE_KEY);
39096
+ if (!state2) throw new Error("BagelFormState must be provided");
39097
+ return state2;
39098
+ }
38647
39099
  function useBglSchema({ schema, showFields, data: data2 } = {}) {
38648
39100
  let _schema = schema;
38649
39101
  if (typeof _schema === "function") {
@@ -39110,13 +39562,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
39110
39562
  title: item == null ? void 0 : item.name,
39111
39563
  class: "vw90"
39112
39564
  }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock("div", _hoisted_6, [
39113
- createVNode(unref(_sfc_main$p), {
39565
+ createVNode(unref(_sfc_main$q), {
39114
39566
  class: "m-0 m_none",
39115
39567
  icon: "draft",
39116
39568
  size: 10,
39117
39569
  weight: "12"
39118
39570
  }),
39119
- createVNode(unref(_sfc_main$p), {
39571
+ createVNode(unref(_sfc_main$q), {
39120
39572
  class: "m-0 none m_block m_-mb-1",
39121
39573
  icon: "draft",
39122
39574
  size: 4,
@@ -39155,7 +39607,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
39155
39607
  src: item.src,
39156
39608
  alt: "",
39157
39609
  onClick: ($event) => selectItem(index2)
39158
- }, null, 8, ["src", "class", "onClick"])) : (openBlock(), createBlock(unref(_sfc_main$p), {
39610
+ }, null, 8, ["src", "class", "onClick"])) : (openBlock(), createBlock(unref(_sfc_main$q), {
39159
39611
  key: 1,
39160
39612
  class: normalizeClass(["thumbnail object-fit-cover hover opacity-5 ed flex bg-popup justify-content-center align-items-center flex-shrink-0", { active: unref(currentIndex) === index2 }]),
39161
39613
  icon: "description",
@@ -40295,11 +40747,10 @@ export {
40295
40747
  Alert,
40296
40748
  Avatar,
40297
40749
  Badge,
40298
- _sfc_main$S as BagelForm,
40750
+ _sfc_main$R as BagelForm,
40299
40751
  BagelVue,
40300
40752
  _sfc_main$10 as BglComponent,
40301
- _sfc_main$Q as BglField,
40302
- _sfc_main$S as BglForm,
40753
+ _sfc_main$R as BglForm,
40303
40754
  BglVideo,
40304
40755
  BottomMenu,
40305
40756
  Btn,
@@ -40308,28 +40759,29 @@ export {
40308
40759
  CheckInput,
40309
40760
  Checkbox,
40310
40761
  CodeEditor,
40311
- _sfc_main$L as ColorPicker,
40762
+ _sfc_main$M as ColorPicker,
40312
40763
  DataPreview,
40313
40764
  DataTable,
40314
- _sfc_main$K as DateInput,
40765
+ _sfc_main$L as DateInput,
40315
40766
  DatePick,
40316
- _sfc_main$I as DatePicker,
40317
- _sfc_main$V as Dropdown,
40767
+ _sfc_main$J as DatePicker,
40768
+ _sfc_main$V as Draggable,
40769
+ _sfc_main$U as Dropdown,
40318
40770
  FORM_STATE_KEY,
40319
- _sfc_main$P as FieldArray,
40771
+ _sfc_main$Q as FieldArray,
40320
40772
  FieldSetVue,
40321
40773
  FileUpload,
40322
40774
  Flag,
40323
40775
  IMAGE_FORMATS,
40324
40776
  IMAGE_FORMATS_REGEXP,
40325
- _sfc_main$p as Icon,
40326
- _sfc_main$o as IframeVue,
40777
+ _sfc_main$q as Icon,
40778
+ _sfc_main$p as IframeVue,
40327
40779
  Image$1 as Image,
40328
40780
  JSONInput,
40329
40781
  Layout,
40330
40782
  _sfc_main$Y as Lineart,
40331
40783
  _sfc_main$f as ListItem,
40332
- ListView,
40784
+ _sfc_main$e as ListView,
40333
40785
  Loading,
40334
40786
  _sfc_main$c as MapEmbed,
40335
40787
  _sfc_main$b as Modal,
@@ -40340,7 +40792,7 @@ export {
40340
40792
  NumberInput,
40341
40793
  OTP,
40342
40794
  _sfc_main$7 as PageTitle,
40343
- _sfc_main$D as PasswordInput,
40795
+ _sfc_main$E as PasswordInput,
40344
40796
  Pill,
40345
40797
  RadioGroup,
40346
40798
  RadioPillsInput,
@@ -40349,13 +40801,13 @@ export {
40349
40801
  RouterWrapper,
40350
40802
  SelectInput,
40351
40803
  SidebarMenu,
40352
- _sfc_main$v as SignaturePad,
40804
+ _sfc_main$w as SignaturePad,
40353
40805
  Skeleton,
40354
40806
  TabbedLayout,
40355
40807
  TableField,
40356
40808
  DataTable as TableSchema,
40357
- _sfc_main$h as Tabs,
40358
- _sfc_main$g as TabsBody,
40809
+ _sfc_main$i as Tabs,
40810
+ _sfc_main$h as TabsBody,
40359
40811
  TabsNav,
40360
40812
  TelInput,
40361
40813
  TextInput,
@@ -40395,9 +40847,11 @@ export {
40395
40847
  useBagelFormState,
40396
40848
  useBglSchema,
40397
40849
  useDebounceFn,
40850
+ useDraggable,
40398
40851
  useEscape,
40399
40852
  useI18nT,
40400
40853
  useLang,
40401
40854
  useLocalStorage,
40402
- useModal
40855
+ useModal,
40856
+ vDraggable
40403
40857
  };