@enos5/enos-vue-default 1.9.7 → 1.10.4

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 (28) hide show
  1. package/dist/{code-CrqnU0cm.js → code-cDMhefDa.js} +2 -2
  2. package/dist/{code-CrqnU0cm.js.map → code-cDMhefDa.js.map} +1 -1
  3. package/dist/components/TableList.vue.d.ts +45 -0
  4. package/dist/components/TableListForm.vue.d.ts +45 -0
  5. package/dist/components/ThSortable.vue.d.ts +27 -0
  6. package/dist/{default-CMfkG1jR.js → default-CfuokRTA.js} +2 -2
  7. package/dist/{default-CMfkG1jR.js.map → default-CfuokRTA.js.map} +1 -1
  8. package/dist/{dom-B7LQ6IvT.js → dom-MWRrrNHw.js} +2 -2
  9. package/dist/{dom-B7LQ6IvT.js.map → dom-MWRrrNHw.js.map} +1 -1
  10. package/dist/{image-Cy83R-dB.js → image-BLK-ZN-f.js} +2 -2
  11. package/dist/{image-Cy83R-dB.js.map → image-BLK-ZN-f.js.map} +1 -1
  12. package/dist/index.js +2 -2
  13. package/dist/index.node.js +1 -1
  14. package/dist/{link-Bc4j-Nev.js → link-C5FTY5iu.js} +2 -2
  15. package/dist/{link-Bc4j-Nev.js.map → link-C5FTY5iu.js.map} +1 -1
  16. package/dist/{lists-CYnRlBvx.js → lists-Cg0e-iyY.js} +2 -2
  17. package/dist/{lists-CYnRlBvx.js.map → lists-Cg0e-iyY.js.map} +1 -1
  18. package/dist/{plugin-Cr_xJNd_.js → plugin-BXOFohfj.js} +277 -184
  19. package/dist/plugin-BXOFohfj.js.map +1 -0
  20. package/dist/{silver-DoFp5Vtp.js → silver-C1UDCb0C.js} +2 -2
  21. package/dist/{silver-DoFp5Vtp.js.map → silver-C1UDCb0C.js.map} +1 -1
  22. package/dist/styles.css +0 -16
  23. package/dist/{table-CQhKvVWs.js → table-DmWxRlo1.js} +2 -2
  24. package/dist/{table-CQhKvVWs.js.map → table-DmWxRlo1.js.map} +1 -1
  25. package/dist/{tinymce-CU_lDEGk.js → tinymce-DmIcnrRb.js} +2 -2
  26. package/dist/{tinymce-CU_lDEGk.js.map → tinymce-DmIcnrRb.js.map} +1 -1
  27. package/package.json +1 -1
  28. package/dist/plugin-Cr_xJNd_.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { Fragment, Teleport, Transition, cloneVNode, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, h, inject, isVNode, mergeProps, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, onUnmounted, openBlock, provide, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, toHandlers, unref, useAttrs, useSlots, vModelCheckbox, vModelText, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
2
- import { CheckIcon, ChevronDownIcon, ChevronUpIcon, ExclamationCircleIcon, ExclamationTriangleIcon, EyeDropperIcon, LockClosedIcon, MagnifyingGlassIcon, PencilSquareIcon, PhotoIcon, XMarkIcon } from "@heroicons/vue/24/outline";
2
+ import { CheckIcon, ChevronDownIcon, ChevronUpIcon, ExclamationCircleIcon, ExclamationTriangleIcon, EyeDropperIcon, LockClosedIcon, PencilSquareIcon, PhotoIcon, XMarkIcon } from "@heroicons/vue/24/outline";
3
3
  import Editor from "@tinymce/tinymce-vue";
4
4
  import { useI18n } from "vue-i18n";
5
5
  import { Link } from "@inertiajs/vue3";
@@ -37,7 +37,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
37
37
  //#endregion
38
38
  //#region src/components/CardTabs.vue
39
39
  var _hoisted_1$37 = { class: "border-b border-neutral-200 bg-neutral-50/80 p-2 dark:border-neutral-800 dark:bg-neutral-900/80" };
40
- var _hoisted_2$22 = {
40
+ var _hoisted_2$21 = {
41
41
  role: "tablist",
42
42
  class: "flex overflow-hidden rounded-lg bg-white shadow-sm ring-1 ring-neutral-200 dark:bg-neutral-950 dark:ring-neutral-800"
43
43
  };
@@ -106,7 +106,7 @@ var _sfc_main$40 = {
106
106
  focusTabAtIndex(targetIndex);
107
107
  };
108
108
  return (_ctx, _cache) => {
109
- return openBlock(), createElementBlock("div", _hoisted_1$37, [createElementVNode("div", _hoisted_2$22, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.tabs, (tab, index) => {
109
+ return openBlock(), createElementBlock("div", _hoisted_1$37, [createElementVNode("div", _hoisted_2$21, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.tabs, (tab, index) => {
110
110
  return openBlock(), createElementBlock("button", {
111
111
  key: tab.value,
112
112
  ref_for: true,
@@ -134,7 +134,7 @@ var _hoisted_1$36 = {
134
134
  key: 0,
135
135
  class: "mb-4"
136
136
  };
137
- var _hoisted_2$21 = {
137
+ var _hoisted_2$20 = {
138
138
  key: 1,
139
139
  class: "mb-4 text-xl font-semibold tracking-tight text-neutral-950 dark:text-neutral-50"
140
140
  };
@@ -204,7 +204,7 @@ var _sfc_main$39 = {
204
204
  "active-tab": __props.activeTab,
205
205
  "onUpdate:activeTab": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:activeTab", $event)),
206
206
  onTabClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("tab-click", $event))
207
- }, null, 8, ["tabs", "active-tab"])) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(__props.paddingClass) }, [_ctx.$slots.customTitle ? (openBlock(), createElementBlock("div", _hoisted_1$36, [renderSlot(_ctx.$slots, "customTitle")])) : __props.title ? (openBlock(), createElementBlock("h3", _hoisted_2$21, toDisplayString(__props.title), 1)) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(["relative", __props.tabs.length > 0 ? "overflow-hidden" : "overflow-visible"]) }, [createVNode(Transition, {
207
+ }, null, 8, ["tabs", "active-tab"])) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(__props.paddingClass) }, [_ctx.$slots.customTitle ? (openBlock(), createElementBlock("div", _hoisted_1$36, [renderSlot(_ctx.$slots, "customTitle")])) : __props.title ? (openBlock(), createElementBlock("h3", _hoisted_2$20, toDisplayString(__props.title), 1)) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(["relative", __props.tabs.length > 0 ? "overflow-hidden" : "overflow-visible"]) }, [createVNode(Transition, {
208
208
  "enter-active-class": "transition-all duration-200 ease-in-out",
209
209
  "enter-from-class": slideDirection.value === "right" ? "translate-x-full opacity-0" : "-translate-x-full opacity-0",
210
210
  "enter-to-class": "translate-x-0 opacity-100",
@@ -299,18 +299,18 @@ var _plugin_vue_export_helper_default = (sfc, props) => {
299
299
  //#region src/components/SectionTitle.vue
300
300
  var _sfc_main$35 = {};
301
301
  var _hoisted_1$34 = { class: "md:col-span-1 flex justify-between" };
302
- var _hoisted_2$20 = { class: "px-4 sm:px-0" };
302
+ var _hoisted_2$19 = { class: "px-4 sm:px-0" };
303
303
  var _hoisted_3$15 = { class: "text-xl font-semibold tracking-tight text-neutral-950 dark:text-neutral-50" };
304
304
  var _hoisted_4$11 = { class: "mt-1 max-w-2xl text-sm text-neutral-600 dark:text-neutral-200" };
305
305
  var _hoisted_5$8 = { class: "px-4 sm:px-0" };
306
306
  function _sfc_render(_ctx, _cache) {
307
- return openBlock(), createElementBlock("div", _hoisted_1$34, [createElementVNode("div", _hoisted_2$20, [createElementVNode("h3", _hoisted_3$15, [renderSlot(_ctx.$slots, "title")]), createElementVNode("p", _hoisted_4$11, [renderSlot(_ctx.$slots, "description")])]), createElementVNode("div", _hoisted_5$8, [renderSlot(_ctx.$slots, "aside")])]);
307
+ return openBlock(), createElementBlock("div", _hoisted_1$34, [createElementVNode("div", _hoisted_2$19, [createElementVNode("h3", _hoisted_3$15, [renderSlot(_ctx.$slots, "title")]), createElementVNode("p", _hoisted_4$11, [renderSlot(_ctx.$slots, "description")])]), createElementVNode("div", _hoisted_5$8, [renderSlot(_ctx.$slots, "aside")])]);
308
308
  }
309
309
  var SectionTitle_default = /*#__PURE__*/ _plugin_vue_export_helper_default(_sfc_main$35, [["render", _sfc_render]]);
310
310
  //#endregion
311
311
  //#region src/components/ActionSection.vue
312
312
  var _hoisted_1$33 = { class: "md:grid md:grid-cols-3 md:gap-6" };
313
- var _hoisted_2$19 = { class: "mt-5 md:mt-0 md:col-span-2" };
313
+ var _hoisted_2$18 = { class: "mt-5 md:mt-0 md:col-span-2" };
314
314
  var _hoisted_3$14 = { class: "rounded-lg border border-neutral-200 bg-white px-4 py-5 shadow-sm dark:border-neutral-800 dark:bg-neutral-950 sm:p-6" };
315
315
  var _sfc_main$34 = {
316
316
  __name: "ActionSection",
@@ -320,7 +320,7 @@ var _sfc_main$34 = {
320
320
  title: withCtx(() => [renderSlot(_ctx.$slots, "title")]),
321
321
  description: withCtx(() => [renderSlot(_ctx.$slots, "description")]),
322
322
  _: 3
323
- }), createElementVNode("div", _hoisted_2$19, [createElementVNode("div", _hoisted_3$14, [renderSlot(_ctx.$slots, "content")])])]);
323
+ }), createElementVNode("div", _hoisted_2$18, [createElementVNode("div", _hoisted_3$14, [renderSlot(_ctx.$slots, "content")])])]);
324
324
  };
325
325
  }
326
326
  };
@@ -656,7 +656,7 @@ var _hoisted_1$28 = [
656
656
  "value",
657
657
  "disabled"
658
658
  ];
659
- var _hoisted_2$18 = ["aria-label"];
659
+ var _hoisted_2$17 = ["aria-label"];
660
660
  var _hoisted_3$13 = {
661
661
  key: 0,
662
662
  class: "h-5 w-5",
@@ -770,7 +770,7 @@ var _sfc_main$29 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
770
770
  "stroke-linejoin": "round",
771
771
  "stroke-width": "2",
772
772
  d: "M2.458 12C3.732 7.943 7.523 5 12 5s8.268 2.943 9.542 7c-1.274 4.057-5.065 7-9.542 7S3.732 16.057 2.458 12z"
773
- }, null, -1)])]))], 10, _hoisted_2$18)) : createCommentVNode("", true)
773
+ }, null, -1)])]))], 10, _hoisted_2$17)) : createCommentVNode("", true)
774
774
  ], 2);
775
775
  };
776
776
  }
@@ -854,7 +854,7 @@ var _sfc_main$28 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
854
854
  //#endregion
855
855
  //#region src/components/CustomSelect.vue
856
856
  var _hoisted_1$26 = { class: "flex h-5 items-center gap-1" };
857
- var _hoisted_2$17 = ["placeholder"];
857
+ var _hoisted_2$16 = ["placeholder"];
858
858
  var _hoisted_3$12 = [
859
859
  "data-option-value",
860
860
  "onClick",
@@ -1461,7 +1461,7 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
1461
1461
  class: normalizeClass(searchInputClasses.value),
1462
1462
  onClick: _cache[2] || (_cache[2] = withModifiers(() => {}, ["stop"])),
1463
1463
  onKeydown: _cache[3] || (_cache[3] = withModifiers(() => {}, ["stop"]))
1464
- }, null, 42, _hoisted_2$17)), [[vModelText, searchQuery.value]]) : createCommentVNode("", true),
1464
+ }, null, 42, _hoisted_2$16)), [[vModelText, searchQuery.value]]) : createCommentVNode("", true),
1465
1465
  selectedDeletedOption.value ? (openBlock(), createElementBlock("div", {
1466
1466
  key: 1,
1467
1467
  class: normalizeClass([
@@ -1837,7 +1837,7 @@ var DateInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
1837
1837
  //#endregion
1838
1838
  //#region src/components/DateRangeInput.vue
1839
1839
  var _hoisted_1$24 = ["value", "disabled"];
1840
- var _hoisted_2$16 = { class: "grid grid-cols-7 gap-1" };
1840
+ var _hoisted_2$15 = { class: "grid grid-cols-7 gap-1" };
1841
1841
  var _hoisted_3$11 = [
1842
1842
  "disabled",
1843
1843
  "onClick",
@@ -2167,7 +2167,7 @@ var DateRangeInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
2167
2167
  class: normalizeClass(["text-xs font-medium text-neutral-500 dark:text-neutral-400 text-center py-1", props.ui.weekday])
2168
2168
  }, toDisplayString(day), 3);
2169
2169
  }), 128))], 2),
2170
- createElementVNode("div", _hoisted_2$16, [(openBlock(true), createElementBlock(Fragment, null, renderList(calendarDays.value, (day) => {
2170
+ createElementVNode("div", _hoisted_2$15, [(openBlock(true), createElementBlock(Fragment, null, renderList(calendarDays.value, (day) => {
2171
2171
  return openBlock(), createElementBlock("div", {
2172
2172
  key: day.date.toISOString(),
2173
2173
  class: "relative"
@@ -2215,7 +2215,7 @@ var DateRangeInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
2215
2215
  //#endregion
2216
2216
  //#region src/components/ImageInput.vue
2217
2217
  var _hoisted_1$23 = ["accept"];
2218
- var _hoisted_2$15 = { class: "flex items-center space-x-4" };
2218
+ var _hoisted_2$14 = { class: "flex items-center space-x-4" };
2219
2219
  var _hoisted_3$10 = ["src"];
2220
2220
  var _sfc_main$23 = {
2221
2221
  __name: "ImageInput",
@@ -2261,7 +2261,7 @@ var _sfc_main$23 = {
2261
2261
  }), null, 16, _hoisted_1$23)], 2), props.currentImageUrl ? (openBlock(), createElementBlock("div", {
2262
2262
  key: 0,
2263
2263
  class: normalizeClass(["mt-4 rounded-lg border border-neutral-200 bg-neutral-50 p-4 dark:border-neutral-800 dark:bg-neutral-900/50", props.ui.previewCard])
2264
- }, [createElementVNode("div", _hoisted_2$15, [createElementVNode("img", {
2264
+ }, [createElementVNode("div", _hoisted_2$14, [createElementVNode("img", {
2265
2265
  src: props.currentImageUrl,
2266
2266
  alt: "Current logo",
2267
2267
  class: normalizeClass(["h-16 w-auto max-w-24 object-contain rounded-lg shadow-sm", props.ui.previewImage])
@@ -2656,18 +2656,18 @@ var _sfc_main$18 = {
2656
2656
  });
2657
2657
  };
2658
2658
  const loadTinyMce = async () => {
2659
- const tinymceModule = await import("./tinymce-CU_lDEGk.js").then((m) => /* @__PURE__ */ __toESM(m.default));
2659
+ const tinymceModule = await import("./tinymce-DmIcnrRb.js").then((m) => /* @__PURE__ */ __toESM(m.default));
2660
2660
  const tinymce = tinymceModule.default ?? tinymceModule;
2661
2661
  if (typeof globalThis !== "undefined" && !globalThis.tinymce) globalThis.tinymce = tinymce;
2662
2662
  await Promise.all([
2663
- import("./dom-B7LQ6IvT.js"),
2664
- import("./default-CMfkG1jR.js"),
2665
- import("./silver-DoFp5Vtp.js"),
2666
- import("./code-CrqnU0cm.js"),
2667
- import("./image-Cy83R-dB.js"),
2668
- import("./link-Bc4j-Nev.js"),
2669
- import("./lists-CYnRlBvx.js"),
2670
- import("./table-CQhKvVWs.js")
2663
+ import("./dom-MWRrrNHw.js"),
2664
+ import("./default-CfuokRTA.js"),
2665
+ import("./silver-C1UDCb0C.js"),
2666
+ import("./code-cDMhefDa.js"),
2667
+ import("./image-BLK-ZN-f.js"),
2668
+ import("./link-C5FTY5iu.js"),
2669
+ import("./lists-Cg0e-iyY.js"),
2670
+ import("./table-DmWxRlo1.js")
2671
2671
  ]);
2672
2672
  isEditorReady.value = true;
2673
2673
  };
@@ -2784,43 +2784,43 @@ var _hoisted_1$19 = [
2784
2784
  "disabled",
2785
2785
  "required"
2786
2786
  ];
2787
- var _hoisted_2$14 = ["disabled", "aria-expanded"];
2787
+ var _hoisted_2$13 = ["disabled", "aria-expanded"];
2788
2788
  var _hoisted_3$9 = { class: "min-w-0 flex-1" };
2789
2789
  var _hoisted_4$7 = { class: "flex items-start gap-3" };
2790
2790
  var _hoisted_5$5 = { class: "min-w-0 flex-1" };
2791
2791
  var _hoisted_6$5 = ["disabled", "aria-label"];
2792
2792
  var _hoisted_7$5 = { class: "mt-4 space-y-4" };
2793
2793
  var _hoisted_8$3 = ["aria-label", "aria-valuenow"];
2794
- var _hoisted_9$3 = {
2794
+ var _hoisted_9$1 = {
2795
2795
  key: 0,
2796
2796
  class: "absolute inset-0 bg-[linear-gradient(to_right,#fff,transparent)]"
2797
2797
  };
2798
- var _hoisted_10$3 = {
2798
+ var _hoisted_10$1 = {
2799
2799
  key: 2,
2800
2800
  class: "absolute inset-0 bg-[linear-gradient(to_top,#000,transparent)]"
2801
2801
  };
2802
- var _hoisted_11$3 = { class: "space-y-3" };
2803
- var _hoisted_12$2 = {
2802
+ var _hoisted_11 = { class: "space-y-3" };
2803
+ var _hoisted_12 = {
2804
2804
  key: 0,
2805
2805
  class: "space-y-2"
2806
2806
  };
2807
- var _hoisted_13$2 = ["for"];
2808
- var _hoisted_14$2 = [
2807
+ var _hoisted_13 = ["for"];
2808
+ var _hoisted_14 = [
2809
2809
  "id",
2810
2810
  "disabled",
2811
2811
  "value"
2812
2812
  ];
2813
- var _hoisted_15$2 = {
2813
+ var _hoisted_15 = {
2814
2814
  key: 1,
2815
2815
  class: "space-y-2"
2816
2816
  };
2817
- var _hoisted_16$1 = ["for"];
2818
- var _hoisted_17$1 = [
2817
+ var _hoisted_16 = ["for"];
2818
+ var _hoisted_17 = [
2819
2819
  "id",
2820
2820
  "disabled",
2821
2821
  "value"
2822
2822
  ];
2823
- var _hoisted_18$1 = { class: "space-y-2" };
2823
+ var _hoisted_18 = { class: "space-y-2" };
2824
2824
  var _hoisted_19 = ["for"];
2825
2825
  var _hoisted_20 = [
2826
2826
  "id",
@@ -3310,7 +3310,7 @@ var ColorPicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
3310
3310
  isOpen.value ? "rotate-180" : "",
3311
3311
  props.ui.chevron
3312
3312
  ]) }, null, 8, ["class"])
3313
- ], 16, _hoisted_2$14),
3313
+ ], 16, _hoisted_2$13),
3314
3314
  (openBlock(), createBlock(Teleport, { to: "body" }, [createVNode(Transition, {
3315
3315
  "enter-active-class": "transition duration-150 ease-out",
3316
3316
  "enter-from-class": "opacity-0 translate-y-1",
@@ -3358,14 +3358,14 @@ var ColorPicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
3358
3358
  onPointerdown: _cache[0] || (_cache[0] = ($event) => beginDrag($event, updateFromSaturationPointer)),
3359
3359
  onKeydown: updateFromSaturationKey
3360
3360
  }, [
3361
- !isRainbowVariant.value ? (openBlock(), createElementBlock("div", _hoisted_9$3)) : createCommentVNode("", true),
3362
- isRainbowVariant.value ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [_cache[1] || (_cache[1] = createElementVNode("div", { class: "absolute inset-x-0 top-0 h-1/2 bg-[linear-gradient(to_bottom,#fff,transparent)]" }, null, -1)), _cache[2] || (_cache[2] = createElementVNode("div", { class: "absolute inset-x-0 bottom-0 h-1/2 bg-[linear-gradient(to_bottom,transparent,#000)]" }, null, -1))], 64)) : (openBlock(), createElementBlock("div", _hoisted_10$3)),
3361
+ !isRainbowVariant.value ? (openBlock(), createElementBlock("div", _hoisted_9$1)) : createCommentVNode("", true),
3362
+ isRainbowVariant.value ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [_cache[1] || (_cache[1] = createElementVNode("div", { class: "absolute inset-x-0 top-0 h-1/2 bg-[linear-gradient(to_bottom,#fff,transparent)]" }, null, -1)), _cache[2] || (_cache[2] = createElementVNode("div", { class: "absolute inset-x-0 bottom-0 h-1/2 bg-[linear-gradient(to_bottom,transparent,#000)]" }, null, -1))], 64)) : (openBlock(), createElementBlock("div", _hoisted_10$1)),
3363
3363
  createElementVNode("span", {
3364
3364
  class: normalizeClass(["pointer-events-none absolute size-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow-[0_0_0_1px_rgba(0,0,0,0.3)]", props.ui.saturationHandle]),
3365
3365
  style: normalizeStyle(saturationHandleStyle.value)
3366
3366
  }, null, 6)
3367
3367
  ], 46, _hoisted_8$3),
3368
- createElementVNode("div", _hoisted_11$3, [!isRainbowVariant.value ? (openBlock(), createElementBlock("div", _hoisted_12$2, [createElementVNode("div", { class: normalizeClass(["flex items-center justify-between text-xs font-medium text-neutral-500 dark:text-neutral-400", props.ui.sectionLabel]) }, [createElementVNode("label", { for: fieldId.value ? `${fieldId.value}-hue` : void 0 }, toDisplayString(unref(t)("Hue")), 9, _hoisted_13$2), createElementVNode("span", null, toDisplayString(Math.round(hue.value)) + "°", 1)], 2), createElementVNode("input", {
3368
+ createElementVNode("div", _hoisted_11, [!isRainbowVariant.value ? (openBlock(), createElementBlock("div", _hoisted_12, [createElementVNode("div", { class: normalizeClass(["flex items-center justify-between text-xs font-medium text-neutral-500 dark:text-neutral-400", props.ui.sectionLabel]) }, [createElementVNode("label", { for: fieldId.value ? `${fieldId.value}-hue` : void 0 }, toDisplayString(unref(t)("Hue")), 9, _hoisted_13), createElementVNode("span", null, toDisplayString(Math.round(hue.value)) + "°", 1)], 2), createElementVNode("input", {
3369
3369
  id: fieldId.value ? `${fieldId.value}-hue` : void 0,
3370
3370
  type: "range",
3371
3371
  min: "0",
@@ -3376,7 +3376,7 @@ var ColorPicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
3376
3376
  value: hue.value,
3377
3377
  style: { "background": "linear-gradient(90deg, #FF0000 0%, #FFFF00 17%, #00FF00 33%, #00FFFF 50%, #0000FF 67%, #FF00FF 83%, #FF0000 100%)" },
3378
3378
  onInput: handleHueInput
3379
- }, null, 42, _hoisted_14$2)])) : createCommentVNode("", true), props.allowAlpha ? (openBlock(), createElementBlock("div", _hoisted_15$2, [createElementVNode("div", { class: normalizeClass(["flex items-center justify-between text-xs font-medium text-neutral-500 dark:text-neutral-400", props.ui.sectionLabel]) }, [createElementVNode("label", { for: fieldId.value ? `${fieldId.value}-alpha` : void 0 }, toDisplayString(unref(t)("Opacity")), 9, _hoisted_16$1), createElementVNode("span", null, toDisplayString(opacityPercent.value) + "%", 1)], 2), createElementVNode("input", {
3379
+ }, null, 42, _hoisted_14)])) : createCommentVNode("", true), props.allowAlpha ? (openBlock(), createElementBlock("div", _hoisted_15, [createElementVNode("div", { class: normalizeClass(["flex items-center justify-between text-xs font-medium text-neutral-500 dark:text-neutral-400", props.ui.sectionLabel]) }, [createElementVNode("label", { for: fieldId.value ? `${fieldId.value}-alpha` : void 0 }, toDisplayString(unref(t)("Opacity")), 9, _hoisted_16), createElementVNode("span", null, toDisplayString(opacityPercent.value) + "%", 1)], 2), createElementVNode("input", {
3380
3380
  id: fieldId.value ? `${fieldId.value}-alpha` : void 0,
3381
3381
  type: "range",
3382
3382
  min: "0",
@@ -3387,8 +3387,8 @@ var ColorPicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
3387
3387
  value: opacityPercent.value,
3388
3388
  style: normalizeStyle({ background: alphaGradient.value }),
3389
3389
  onInput: handleAlphaInput
3390
- }, null, 46, _hoisted_17$1)])) : createCommentVNode("", true)]),
3391
- createElementVNode("div", _hoisted_18$1, [createElementVNode("label", {
3390
+ }, null, 46, _hoisted_17)])) : createCommentVNode("", true)]),
3391
+ createElementVNode("div", _hoisted_18, [createElementVNode("label", {
3392
3392
  for: fieldId.value ? `${fieldId.value}-hex` : void 0,
3393
3393
  class: normalizeClass(["text-xs font-medium uppercase tracking-[0.16em] text-neutral-500 dark:text-neutral-400", props.ui.sectionLabel])
3394
3394
  }, toDisplayString(unref(t)("Hex value")), 11, _hoisted_19), createElementVNode("input", {
@@ -3417,7 +3417,7 @@ var ColorPicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
3417
3417
  //#endregion
3418
3418
  //#region src/components/InputGroup.vue
3419
3419
  var _hoisted_1$18 = ["for"];
3420
- var _hoisted_2$13 = {
3420
+ var _hoisted_2$12 = {
3421
3421
  key: 3,
3422
3422
  class: "relative"
3423
3423
  };
@@ -4033,7 +4033,7 @@ var _sfc_main$16 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
4033
4033
  helperText: __props.helperText,
4034
4034
  helperTextClass: props.helperTextClass ?? defaultHelperTextClass
4035
4035
  }, () => [createElementVNode("span", { class: normalizeClass(props.helperTextClass ?? defaultHelperTextClass) }, toDisplayString(__props.helperText), 3)]) : createCommentVNode("", true),
4036
- resolvedFieldComponent.value && !showsLeadingIcon.value && !showsTrailingIcon.value ? (openBlock(), createBlock(resolveDynamicComponent(resolvedFieldComponent.value), mergeProps({ key: 2 }, resolvedFieldBindings.value, toHandlers(fieldListeners)), null, 16)) : resolvedFieldComponent.value ? (openBlock(), createElementBlock("div", _hoisted_2$13, [
4036
+ resolvedFieldComponent.value && !showsLeadingIcon.value && !showsTrailingIcon.value ? (openBlock(), createBlock(resolveDynamicComponent(resolvedFieldComponent.value), mergeProps({ key: 2 }, resolvedFieldBindings.value, toHandlers(fieldListeners)), null, 16)) : resolvedFieldComponent.value ? (openBlock(), createElementBlock("div", _hoisted_2$12, [
4037
4037
  showsLeadingIcon.value ? (openBlock(), createElementBlock("div", {
4038
4038
  key: 0,
4039
4039
  class: normalizeClass(["pointer-events-none absolute inset-y-0 left-0 z-10 flex items-center pl-3 text-neutral-400 dark:text-neutral-200", props.leadingIconClass])
@@ -4272,7 +4272,7 @@ var _sfc_main$14 = {
4272
4272
  //#endregion
4273
4273
  //#region src/components/ConfirmationModal.vue
4274
4274
  var _hoisted_1$17 = { class: "bg-white px-4 pb-4 pt-5 dark:bg-neutral-950 sm:p-6 sm:pb-4" };
4275
- var _hoisted_2$12 = { class: "sm:flex sm:items-start" };
4275
+ var _hoisted_2$11 = { class: "sm:flex sm:items-start" };
4276
4276
  var _hoisted_3$8 = { class: "mx-auto flex size-12 shrink-0 items-center justify-center rounded-full bg-red-100 dark:bg-red-950/60 sm:mx-0 sm:size-10" };
4277
4277
  var _hoisted_4$6 = { class: "mt-3 text-center sm:mt-0 sm:ms-4 sm:text-start" };
4278
4278
  var _hoisted_5$4 = { class: "text-lg font-medium text-neutral-950 dark:text-neutral-50" };
@@ -4317,7 +4317,7 @@ var _sfc_main$13 = {
4317
4317
  position: __props.position,
4318
4318
  onClose: close
4319
4319
  }, {
4320
- default: withCtx(() => [createElementVNode("div", _hoisted_1$17, [createElementVNode("div", _hoisted_2$12, [createElementVNode("div", _hoisted_3$8, [createVNode(unref(ExclamationTriangleIcon), { class: "size-6 text-red-600 dark:text-neutral-100" })]), createElementVNode("div", _hoisted_4$6, [createElementVNode("h3", _hoisted_5$4, [renderSlot(_ctx.$slots, "title")]), createElementVNode("div", _hoisted_6$4, [renderSlot(_ctx.$slots, "content")])])])]), createElementVNode("div", _hoisted_7$4, [renderSlot(_ctx.$slots, "footer")])]),
4320
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$17, [createElementVNode("div", _hoisted_2$11, [createElementVNode("div", _hoisted_3$8, [createVNode(unref(ExclamationTriangleIcon), { class: "size-6 text-red-600 dark:text-neutral-100" })]), createElementVNode("div", _hoisted_4$6, [createElementVNode("h3", _hoisted_5$4, [renderSlot(_ctx.$slots, "title")]), createElementVNode("div", _hoisted_6$4, [renderSlot(_ctx.$slots, "content")])])])]), createElementVNode("div", _hoisted_7$4, [renderSlot(_ctx.$slots, "footer")])]),
4321
4321
  _: 3
4322
4322
  }, 8, [
4323
4323
  "show",
@@ -4331,7 +4331,7 @@ var _sfc_main$13 = {
4331
4331
  //#endregion
4332
4332
  //#region src/components/DialogModal.vue
4333
4333
  var _hoisted_1$16 = { class: "px-6 py-4" };
4334
- var _hoisted_2$11 = { class: "text-lg font-medium text-neutral-950 dark:text-neutral-50" };
4334
+ var _hoisted_2$10 = { class: "text-lg font-medium text-neutral-950 dark:text-neutral-50" };
4335
4335
  var _hoisted_3$7 = { class: "mt-4 text-sm text-neutral-600 dark:text-neutral-200" };
4336
4336
  var _hoisted_4$5 = { class: "flex flex-row justify-end border-t border-neutral-200 bg-neutral-50 px-6 py-4 text-end dark:border-neutral-800 dark:bg-neutral-900/60" };
4337
4337
  var _sfc_main$12 = {
@@ -4363,7 +4363,7 @@ var _sfc_main$12 = {
4363
4363
  closeable: __props.closeable,
4364
4364
  onClose: close
4365
4365
  }, {
4366
- default: withCtx(() => [createElementVNode("div", _hoisted_1$16, [createElementVNode("div", _hoisted_2$11, [renderSlot(_ctx.$slots, "title")]), createElementVNode("div", _hoisted_3$7, [renderSlot(_ctx.$slots, "content")])]), createElementVNode("div", _hoisted_4$5, [renderSlot(_ctx.$slots, "footer")])]),
4366
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$16, [createElementVNode("div", _hoisted_2$10, [renderSlot(_ctx.$slots, "title")]), createElementVNode("div", _hoisted_3$7, [renderSlot(_ctx.$slots, "content")])]), createElementVNode("div", _hoisted_4$5, [renderSlot(_ctx.$slots, "footer")])]),
4367
4367
  _: 3
4368
4368
  }, 8, [
4369
4369
  "show",
@@ -4527,7 +4527,7 @@ var _hoisted_1$14 = {
4527
4527
  type: "submit",
4528
4528
  class: "block w-full px-4 py-2 text-start text-sm leading-5 text-neutral-700 transition duration-150 ease-in-out hover:bg-neutral-100 focus:bg-neutral-100 focus:outline-none dark:text-neutral-100 dark:hover:bg-neutral-900 dark:focus:bg-neutral-900"
4529
4529
  };
4530
- var _hoisted_2$10 = ["href"];
4530
+ var _hoisted_2$9 = ["href"];
4531
4531
  var _sfc_main$10 = {
4532
4532
  __name: "DropdownLink",
4533
4533
  props: {
@@ -4540,7 +4540,7 @@ var _sfc_main$10 = {
4540
4540
  key: 1,
4541
4541
  href: __props.href,
4542
4542
  class: "block px-4 py-2 text-sm leading-5 text-neutral-700 transition duration-150 ease-in-out hover:bg-neutral-100 focus:bg-neutral-100 focus:outline-none dark:text-neutral-100 dark:hover:bg-neutral-900 dark:focus:bg-neutral-900"
4543
- }, [renderSlot(_ctx.$slots, "default")], 8, _hoisted_2$10)) : (openBlock(), createBlock(unref(Link), {
4543
+ }, [renderSlot(_ctx.$slots, "default")], 8, _hoisted_2$9)) : (openBlock(), createBlock(unref(Link), {
4544
4544
  key: 2,
4545
4545
  href: __props.href,
4546
4546
  class: "block px-4 py-2 text-sm leading-5 text-neutral-700 transition duration-150 ease-in-out hover:bg-neutral-100 focus:bg-neutral-100 focus:outline-none dark:text-neutral-100 dark:hover:bg-neutral-900 dark:focus:bg-neutral-900"
@@ -4554,7 +4554,7 @@ var _sfc_main$10 = {
4554
4554
  //#endregion
4555
4555
  //#region src/components/FormSection.vue
4556
4556
  var _hoisted_1$13 = { class: "md:grid md:grid-cols-3 md:gap-6" };
4557
- var _hoisted_2$9 = { class: "mt-5 md:col-span-2 md:mt-0" };
4557
+ var _hoisted_2$8 = { class: "mt-5 md:col-span-2 md:mt-0" };
4558
4558
  var _hoisted_3$6 = { class: "grid grid-cols-6 gap-6" };
4559
4559
  var _hoisted_4$4 = {
4560
4560
  key: 0,
@@ -4570,7 +4570,7 @@ var _sfc_main$9 = {
4570
4570
  title: withCtx(() => [renderSlot(_ctx.$slots, "title")]),
4571
4571
  description: withCtx(() => [renderSlot(_ctx.$slots, "description")]),
4572
4572
  _: 3
4573
- }), createElementVNode("div", _hoisted_2$9, [createElementVNode("form", { onSubmit: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.$emit("submitted"), ["prevent"])) }, [createElementVNode("div", { class: normalizeClass(["rounded-lg border border-neutral-200 bg-white px-4 py-5 shadow-sm dark:border-neutral-800 dark:bg-neutral-950 sm:p-6", hasActions.value ? "sm:rounded-tl-md sm:rounded-tr-md" : "sm:rounded-md"]) }, [createElementVNode("div", _hoisted_3$6, [renderSlot(_ctx.$slots, "form")])], 2), hasActions.value ? (openBlock(), createElementBlock("div", _hoisted_4$4, [renderSlot(_ctx.$slots, "actions")])) : createCommentVNode("", true)], 32)])]);
4573
+ }), createElementVNode("div", _hoisted_2$8, [createElementVNode("form", { onSubmit: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.$emit("submitted"), ["prevent"])) }, [createElementVNode("div", { class: normalizeClass(["rounded-lg border border-neutral-200 bg-white px-4 py-5 shadow-sm dark:border-neutral-800 dark:bg-neutral-950 sm:p-6", hasActions.value ? "sm:rounded-tl-md sm:rounded-tr-md" : "sm:rounded-md"]) }, [createElementVNode("div", _hoisted_3$6, [renderSlot(_ctx.$slots, "form")])], 2), hasActions.value ? (openBlock(), createElementBlock("div", _hoisted_4$4, [renderSlot(_ctx.$slots, "actions")])) : createCommentVNode("", true)], 32)])]);
4574
4574
  };
4575
4575
  }
4576
4576
  };
@@ -4589,14 +4589,14 @@ var _sfc_main$8 = {
4589
4589
  //#endregion
4590
4590
  //#region src/components/InputLabel.vue
4591
4591
  var _hoisted_1$11 = { class: "block text-sm font-medium text-neutral-700 dark:text-neutral-100" };
4592
- var _hoisted_2$8 = { key: 0 };
4592
+ var _hoisted_2$7 = { key: 0 };
4593
4593
  var _hoisted_3$5 = { key: 1 };
4594
4594
  var _sfc_main$7 = {
4595
4595
  __name: "InputLabel",
4596
4596
  props: { value: String },
4597
4597
  setup(__props) {
4598
4598
  return (_ctx, _cache) => {
4599
- return openBlock(), createElementBlock("label", _hoisted_1$11, [__props.value ? (openBlock(), createElementBlock("span", _hoisted_2$8, toDisplayString(__props.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_3$5, [renderSlot(_ctx.$slots, "default")]))]);
4599
+ return openBlock(), createElementBlock("label", _hoisted_1$11, [__props.value ? (openBlock(), createElementBlock("span", _hoisted_2$7, toDisplayString(__props.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_3$5, [renderSlot(_ctx.$slots, "default")]))]);
4600
4600
  };
4601
4601
  }
4602
4602
  };
@@ -4682,12 +4682,12 @@ var _sfc_main$6 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
4682
4682
  //#endregion
4683
4683
  //#region src/components/SectionBorder.vue
4684
4684
  var _hoisted_1$9 = { class: "hidden sm:block" };
4685
- var _hoisted_2$7 = { class: "py-8" };
4685
+ var _hoisted_2$6 = { class: "py-8" };
4686
4686
  var _sfc_main$5 = {
4687
4687
  __name: "SectionBorder",
4688
4688
  setup(__props) {
4689
4689
  return (_ctx, _cache) => {
4690
- return openBlock(), createElementBlock("div", _hoisted_1$9, [createElementVNode("div", _hoisted_2$7, [createVNode(_sfc_main$38)])]);
4690
+ return openBlock(), createElementBlock("div", _hoisted_1$9, [createElementVNode("div", _hoisted_2$6, [createVNode(_sfc_main$38)])]);
4691
4691
  };
4692
4692
  }
4693
4693
  };
@@ -4743,7 +4743,7 @@ var _hoisted_1$8 = [
4743
4743
  "data-variant",
4744
4744
  "data-side"
4745
4745
  ];
4746
- var _hoisted_2$6 = {
4746
+ var _hoisted_2$5 = {
4747
4747
  "data-sidebar": "sidebar",
4748
4748
  class: "bg-sidebar text-sidebar-foreground flex h-full w-full flex-col group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm"
4749
4749
  };
@@ -4794,7 +4794,7 @@ var Sidebar_default = /* @__PURE__ */ defineComponent({
4794
4794
  __props.side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
4795
4795
  __props.variant === "floating" || __props.variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
4796
4796
  props.class
4797
- ] }, _ctx.$attrs), [createElementVNode("div", _hoisted_2$6, [renderSlot(_ctx.$slots, "default")])], 16)], 8, _hoisted_1$8));
4797
+ ] }, _ctx.$attrs), [createElementVNode("div", _hoisted_2$5, [renderSlot(_ctx.$slots, "default")])], 16)], 8, _hoisted_1$8));
4798
4798
  };
4799
4799
  }
4800
4800
  });
@@ -5379,7 +5379,7 @@ var SidebarTrigger_default = /* @__PURE__ */ defineComponent({
5379
5379
  //#endregion
5380
5380
  //#region src/components/SortControls.vue
5381
5381
  var _hoisted_1$6 = { class: "rounded-xl border border-neutral-200 bg-white/80 px-6 py-4 backdrop-blur-sm dark:border-neutral-800 dark:bg-neutral-950/80" };
5382
- var _hoisted_2$5 = { class: "flex flex-col items-start justify-between gap-4 sm:flex-row sm:items-center" };
5382
+ var _hoisted_2$4 = { class: "flex flex-col items-start justify-between gap-4 sm:flex-row sm:items-center" };
5383
5383
  var _hoisted_3$4 = { class: "flex items-center gap-3" };
5384
5384
  var _hoisted_4$3 = { class: "text-sm font-medium text-neutral-700 dark:text-neutral-100" };
5385
5385
  var _hoisted_5$3 = { class: "flex flex-wrap items-center gap-2" };
@@ -5424,7 +5424,7 @@ var _sfc_main$4 = {
5424
5424
  emit("sort", fieldKey);
5425
5425
  };
5426
5426
  return (_ctx, _cache) => {
5427
- return openBlock(), createElementBlock("div", _hoisted_1$6, [createElementVNode("div", _hoisted_2$5, [createElementVNode("div", _hoisted_3$4, [createElementVNode("label", _hoisted_4$3, toDisplayString(__props.sortByLabel) + ":", 1), createElementVNode("div", _hoisted_5$3, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.fields, (field) => {
5427
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [createElementVNode("div", _hoisted_2$4, [createElementVNode("div", _hoisted_3$4, [createElementVNode("label", _hoisted_4$3, toDisplayString(__props.sortByLabel) + ":", 1), createElementVNode("div", _hoisted_5$3, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.fields, (field) => {
5428
5428
  return openBlock(), createElementBlock("button", {
5429
5429
  key: field.key,
5430
5430
  onClick: ($event) => handleSort(field.key),
@@ -5446,8 +5446,7 @@ var _sfc_main$4 = {
5446
5446
  };
5447
5447
  //#endregion
5448
5448
  //#region src/components/ThSortable.vue
5449
- var _hoisted_1$5 = { class: "flex items-center space-x-1" };
5450
- var _hoisted_2$4 = { class: "flex flex-col" };
5449
+ var _hoisted_1$5 = { class: "flex flex-col" };
5451
5450
  var _sfc_main$3 = {
5452
5451
  __name: "ThSortable",
5453
5452
  props: {
@@ -5462,6 +5461,22 @@ var _sfc_main$3 = {
5462
5461
  currentDirection: {
5463
5462
  type: String,
5464
5463
  default: "asc"
5464
+ },
5465
+ headerClass: {
5466
+ type: [
5467
+ String,
5468
+ Array,
5469
+ Object
5470
+ ],
5471
+ default: ""
5472
+ },
5473
+ headerStyle: {
5474
+ type: Object,
5475
+ default: () => ({})
5476
+ },
5477
+ contentClass: {
5478
+ type: String,
5479
+ default: ""
5465
5480
  }
5466
5481
  },
5467
5482
  setup(__props) {
@@ -5475,15 +5490,16 @@ var _sfc_main$3 = {
5475
5490
  });
5476
5491
  return (_ctx, _cache) => {
5477
5492
  return openBlock(), createElementBlock("th", {
5478
- class: "cursor-pointer px-6 py-3 text-left text-xs font-medium uppercase tracking-wider text-neutral-500 transition-colors duration-150 hover:bg-neutral-100 dark:text-neutral-200 dark:hover:bg-neutral-900",
5493
+ class: normalizeClass(__props.headerClass),
5494
+ style: normalizeStyle(__props.headerStyle),
5479
5495
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("sort", __props.field))
5480
- }, [createElementVNode("div", _hoisted_1$5, [createElementVNode("span", null, [renderSlot(_ctx.$slots, "default")]), createElementVNode("div", _hoisted_2$4, [isCurrentSort.value && __props.currentDirection === "asc" ? (openBlock(), createBlock(unref(ChevronUpIcon), {
5496
+ }, [createElementVNode("div", { class: normalizeClass(__props.contentClass) }, [createElementVNode("span", null, [renderSlot(_ctx.$slots, "default")]), createElementVNode("div", _hoisted_1$5, [isCurrentSort.value && __props.currentDirection === "asc" ? (openBlock(), createBlock(unref(ChevronUpIcon), {
5481
5497
  key: 0,
5482
5498
  class: normalizeClass([sortIconClass.value, "w-3 h-3"])
5483
5499
  }, null, 8, ["class"])) : createCommentVNode("", true), isCurrentSort.value && __props.currentDirection === "desc" ? (openBlock(), createBlock(unref(ChevronDownIcon), {
5484
5500
  key: 1,
5485
5501
  class: normalizeClass([sortIconClass.value, "w-3 h-3"])
5486
- }, null, 8, ["class"])) : createCommentVNode("", true)])])]);
5502
+ }, null, 8, ["class"])) : createCommentVNode("", true)])], 2)], 6);
5487
5503
  };
5488
5504
  }
5489
5505
  };
@@ -5491,30 +5507,24 @@ var _sfc_main$3 = {
5491
5507
  //#region src/components/TableSearch.vue
5492
5508
  var _hoisted_1$4 = { class: "flex flex-col items-start gap-4 lg:flex-row lg:flex-wrap lg:items-center lg:justify-between" };
5493
5509
  var _hoisted_2$3 = { class: "flex w-full min-w-0 flex-1 flex-col gap-3 lg:flex-row lg:items-center" };
5494
- var _hoisted_3$3 = {
5495
- key: 0,
5496
- class: "relative w-full lg:max-w-md"
5497
- };
5498
- var _hoisted_4$2 = { class: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3" };
5499
- var _hoisted_5$2 = ["placeholder"];
5500
- var _hoisted_6$2 = { class: "min-w-0 flex-1" };
5501
- var _hoisted_7$2 = {
5510
+ var _hoisted_3$3 = { class: "min-w-0 flex-1" };
5511
+ var _hoisted_4$2 = {
5502
5512
  key: 0,
5503
5513
  class: "flex shrink-0 flex-col items-start gap-3 sm:flex-row sm:items-center lg:w-auto"
5504
5514
  };
5505
- var _hoisted_8$2 = {
5515
+ var _hoisted_5$2 = {
5506
5516
  key: 0,
5507
5517
  class: "flex items-center"
5508
5518
  };
5509
- var _hoisted_9$2 = {
5519
+ var _hoisted_6$2 = {
5510
5520
  key: 1,
5511
5521
  class: "flex items-center text-xs text-neutral-500 dark:text-neutral-400 sm:w-auto sm:text-sm lg:w-auto"
5512
5522
  };
5513
- var _hoisted_10$2 = {
5523
+ var _hoisted_7$2 = {
5514
5524
  key: 0,
5515
5525
  class: "ml-2"
5516
5526
  };
5517
- var _hoisted_11$2 = { class: "font-medium text-neutral-700 dark:text-neutral-200" };
5527
+ var _hoisted_8$2 = { class: "font-medium text-neutral-700 dark:text-neutral-200" };
5518
5528
  var _sfc_main$2 = {
5519
5529
  __name: "TableSearch",
5520
5530
  props: {
@@ -5577,19 +5587,24 @@ var _sfc_main$2 = {
5577
5587
  set: (value) => emit("update:showDeleted", value)
5578
5588
  });
5579
5589
  return (_ctx, _cache) => {
5580
- return openBlock(), createElementBlock("div", { class: normalizeClass(__props.cardClass) }, [createElementVNode("div", _hoisted_1$4, [createElementVNode("div", _hoisted_2$3, [__props.searchbar ? (openBlock(), createElementBlock("div", _hoisted_3$3, [createElementVNode("div", _hoisted_4$2, [createVNode(unref(Search), { class: "h-5 w-5 text-neutral-400 dark:text-neutral-500" })]), withDirectives(createElementVNode("input", {
5590
+ return openBlock(), createElementBlock("div", { class: normalizeClass(__props.cardClass) }, [createElementVNode("div", _hoisted_1$4, [createElementVNode("div", _hoisted_2$3, [__props.searchbar ? (openBlock(), createBlock(_sfc_main$16, {
5591
+ key: 0,
5592
+ modelValue: model.value,
5581
5593
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
5582
5594
  type: "text",
5583
- placeholder: __props.placeholder,
5584
- class: "block w-full rounded-lg border border-neutral-300 bg-white py-2 pr-3 pl-10 text-sm text-neutral-900 placeholder:text-neutral-500 transition-all duration-200 focus:border-neutral-500 focus:outline-none dark:border-neutral-700 dark:bg-neutral-900 dark:text-neutral-100 dark:placeholder:text-neutral-500 dark:focus:border-neutral-500"
5585
- }, null, 8, _hoisted_5$2), [[vModelText, model.value]])])) : createCommentVNode("", true), createElementVNode("div", _hoisted_6$2, [renderSlot(_ctx.$slots, "search-fields")])]), __props.showDeletedToggle || __props.count !== null || _ctx.$slots.controls ? (openBlock(), createElementBlock("div", _hoisted_7$2, [
5586
- __props.showDeletedToggle ? (openBlock(), createElementBlock("div", _hoisted_8$2, [createVNode(_sfc_main$20, {
5595
+ "root-class": "w-full lg:max-w-md",
5596
+ placeholder: __props.placeholder
5597
+ }, {
5598
+ "leading-icon": withCtx(() => [createVNode(unref(Search), { class: "h-5 w-5" })]),
5599
+ _: 1
5600
+ }, 8, ["modelValue", "placeholder"])) : createCommentVNode("", true), createElementVNode("div", _hoisted_3$3, [renderSlot(_ctx.$slots, "search-fields")])]), __props.showDeletedToggle || __props.count !== null || _ctx.$slots.controls ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
5601
+ __props.showDeletedToggle ? (openBlock(), createElementBlock("div", _hoisted_5$2, [createVNode(_sfc_main$20, {
5587
5602
  modelValue: showDeletedModel.value,
5588
5603
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => showDeletedModel.value = $event),
5589
5604
  label: __props.showDeletedLabel
5590
5605
  }, null, 8, ["modelValue", "label"])])) : createCommentVNode("", true),
5591
5606
  renderSlot(_ctx.$slots, "controls"),
5592
- __props.count !== null ? (openBlock(), createElementBlock("div", _hoisted_9$2, [createElementVNode("span", null, toDisplayString(__props.count) + " " + toDisplayString(__props.countLabel), 1), model.value ? (openBlock(), createElementBlock("span", _hoisted_10$2, [createTextVNode(toDisplayString(__props.queryLabel) + " ", 1), createElementVNode("span", _hoisted_11$2, " \"" + toDisplayString(model.value) + "\" ", 1)])) : createCommentVNode("", true)])) : createCommentVNode("", true)
5607
+ __props.count !== null ? (openBlock(), createElementBlock("div", _hoisted_6$2, [createElementVNode("span", null, toDisplayString(__props.count) + " " + toDisplayString(__props.countLabel), 1), model.value ? (openBlock(), createElementBlock("span", _hoisted_7$2, [createTextVNode(toDisplayString(__props.queryLabel) + " ", 1), createElementVNode("span", _hoisted_8$2, " \"" + toDisplayString(model.value) + "\" ", 1)])) : createCommentVNode("", true)])) : createCommentVNode("", true)
5593
5608
  ])) : createCommentVNode("", true)])], 2);
5594
5609
  };
5595
5610
  }
@@ -5597,35 +5612,19 @@ var _sfc_main$2 = {
5597
5612
  //#endregion
5598
5613
  //#region src/components/TableList.vue
5599
5614
  var _hoisted_1$3 = { class: "space-y-6" };
5600
- var _hoisted_2$2 = { class: "min-w-full divide-y divide-neutral-200 dark:divide-neutral-800" };
5601
- var _hoisted_3$2 = { class: "bg-neutral-50/80 dark:bg-neutral-900/80" };
5602
- var _hoisted_4$1 = {
5603
- key: 0,
5604
- class: "px-6 py-3 text-right text-[11px] font-semibold tracking-[0.12em] text-neutral-600 uppercase dark:text-neutral-200"
5605
- };
5606
- var _hoisted_5$1 = { class: "divide-y divide-neutral-200 bg-white dark:divide-neutral-800 dark:bg-neutral-950" };
5607
- var _hoisted_6$1 = {
5608
- key: 0,
5609
- class: "flex items-center"
5610
- };
5611
- var _hoisted_7$1 = ["title"];
5612
- var _hoisted_8$1 = {
5615
+ var _hoisted_2$2 = ["title"];
5616
+ var _hoisted_3$2 = {
5613
5617
  key: 0,
5614
5618
  class: "ml-2 inline-flex items-center rounded-full bg-red-100 px-2 py-1 text-xs font-medium text-red-700 dark:bg-red-950/60 dark:text-neutral-100"
5615
5619
  };
5616
- var _hoisted_9$1 = ["innerHTML"];
5617
- var _hoisted_10$1 = { key: 3 };
5618
- var _hoisted_11$1 = {
5619
- key: 0,
5620
- class: "px-6 py-4 whitespace-nowrap text-right text-sm font-medium"
5621
- };
5622
- var _hoisted_12$1 = {
5620
+ var _hoisted_4$1 = ["innerHTML"];
5621
+ var _hoisted_5$1 = {
5623
5622
  key: 0,
5624
5623
  class: "py-12 text-center"
5625
5624
  };
5626
- var _hoisted_13$1 = { class: "mb-4 inline-flex h-16 w-16 items-center justify-center rounded-full bg-neutral-100 dark:bg-neutral-900" };
5627
- var _hoisted_14$1 = { class: "mb-2 text-lg font-semibold text-neutral-950 dark:text-neutral-50" };
5628
- var _hoisted_15$1 = { class: "mb-4 text-neutral-600 dark:text-neutral-200" };
5625
+ var _hoisted_6$1 = { class: "mb-4 inline-flex h-16 w-16 items-center justify-center rounded-full bg-neutral-100 dark:bg-neutral-900" };
5626
+ var _hoisted_7$1 = { class: "mb-2 text-lg font-semibold text-neutral-950 dark:text-neutral-50" };
5627
+ var _hoisted_8$1 = { class: "mb-4 text-neutral-600 dark:text-neutral-200" };
5629
5628
  var _sfc_main$1 = {
5630
5629
  __name: "TableList",
5631
5630
  props: {
@@ -5667,6 +5666,26 @@ var _sfc_main$1 = {
5667
5666
  type: Boolean,
5668
5667
  default: true
5669
5668
  },
5669
+ tableClass: {
5670
+ type: String,
5671
+ default: ""
5672
+ },
5673
+ theadClass: {
5674
+ type: String,
5675
+ default: ""
5676
+ },
5677
+ tbodyClass: {
5678
+ type: String,
5679
+ default: ""
5680
+ },
5681
+ headerRowClass: {
5682
+ type: String,
5683
+ default: ""
5684
+ },
5685
+ dense: {
5686
+ type: Boolean,
5687
+ default: false
5688
+ },
5670
5689
  actionsLabel: {
5671
5690
  type: String,
5672
5691
  default: "Actions"
@@ -5754,6 +5773,13 @@ var _sfc_main$1 = {
5754
5773
  const sortBy = (field) => {
5755
5774
  emit("sort", field);
5756
5775
  };
5776
+ const joinClasses = (...classes) => {
5777
+ return classes.flatMap((value) => {
5778
+ if (Array.isArray(value)) return value;
5779
+ if (typeof value === "string") return value;
5780
+ return [];
5781
+ }).filter(Boolean).join(" ");
5782
+ };
5757
5783
  const updateSearchShowDeleted = (value) => {
5758
5784
  emit("update:searchShowDeleted", value);
5759
5785
  };
@@ -5774,16 +5800,23 @@ var _sfc_main$1 = {
5774
5800
  return item.deleted_at || item.deleted;
5775
5801
  };
5776
5802
  const getColumnClass = (column) => {
5777
- if (column.class) return column.class;
5778
- let classes = "px-6 py-4 text-sm truncate";
5779
- if (!column.isSecondary) classes += " font-medium";
5780
- if (column.isSecondary) classes += " text-neutral-600 dark:text-neutral-200";
5781
- return classes;
5803
+ return joinClasses(props.dense ? "px-3 py-2 text-sm truncate" : "px-6 py-4 text-sm truncate", !column.isSecondary ? "font-medium" : "", column.isSecondary ? "text-neutral-600 dark:text-neutral-200" : "", column.align === "right" ? "text-right" : "", column.class, column.cellClass);
5782
5804
  };
5783
5805
  const getHeaderClass = (column) => {
5784
- if (column.sortable) return "";
5785
- return "px-6 py-3 text-left text-[11px] font-semibold tracking-[0.12em] text-neutral-600 uppercase dark:text-neutral-200";
5806
+ return joinClasses(column.sortable ? "cursor-pointer transition-colors duration-150" : "", props.dense ? "px-3 py-2 text-left text-[11px] font-semibold uppercase tracking-[0.12em]" : "px-6 py-3 text-left text-[11px] font-semibold uppercase tracking-[0.12em]", "text-neutral-600 dark:text-neutral-200", column.sortable ? "hover:bg-neutral-100 dark:hover:bg-neutral-900" : "", column.align === "right" ? "text-right" : "", column.headerClass);
5807
+ };
5808
+ const getContentClass = (column) => {
5809
+ return joinClasses(column.sortable ? "flex items-center space-x-1" : "", column.align === "right" ? "w-full text-right justify-end" : "", column.contentClass);
5786
5810
  };
5811
+ const getColumnWidthStyle = (column) => {
5812
+ return column.width ? { width: column.width } : {};
5813
+ };
5814
+ const actionHeaderClass = computed(() => {
5815
+ return joinClasses(props.dense ? "px-3 py-2 text-right text-[11px] font-semibold uppercase tracking-[0.12em]" : "px-6 py-3 text-right text-[11px] font-semibold uppercase tracking-[0.12em]", "text-neutral-600 dark:text-neutral-200");
5816
+ });
5817
+ const actionCellClass = computed(() => {
5818
+ return joinClasses(props.dense ? "px-3 py-2 whitespace-nowrap text-right text-sm font-medium" : "px-6 py-4 whitespace-nowrap text-right text-sm font-medium");
5819
+ });
5787
5820
  return (_ctx, _cache) => {
5788
5821
  return openBlock(), createElementBlock("div", _hoisted_1$3, [__props.search ? (openBlock(), createBlock(_sfc_main$2, {
5789
5822
  key: 0,
@@ -5816,12 +5849,15 @@ var _sfc_main$1 = {
5816
5849
  "show-deleted-toggle",
5817
5850
  "show-deleted-label",
5818
5851
  "search-mode"
5819
- ])) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(["bg-white/90 backdrop-blur-sm dark:bg-neutral-950/90", __props.isCard ? "animate-fadeIn rounded-2xl border border-neutral-200 shadow-sm dark:border-neutral-800 md:mx-0 overflow-hidden" : ""]) }, [createElementVNode("div", { class: normalizeClass(["overflow-x-auto", __props.isCard ? "rounded-t-xl" : ""]) }, [createElementVNode("table", _hoisted_2$2, [createElementVNode("thead", _hoisted_3$2, [createElementVNode("tr", null, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
5852
+ ])) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(["bg-white/90 backdrop-blur-sm dark:bg-neutral-950/90", __props.isCard ? "animate-fadeIn rounded-2xl border border-neutral-200 shadow-sm dark:border-neutral-800 md:mx-0 overflow-hidden" : ""]) }, [createElementVNode("div", { class: normalizeClass(["overflow-x-auto", __props.isCard ? "rounded-t-xl" : ""]) }, [createElementVNode("table", { class: normalizeClass(joinClasses("min-w-full divide-y divide-neutral-200 dark:divide-neutral-800", __props.tableClass)) }, [createElementVNode("thead", { class: normalizeClass(joinClasses("bg-neutral-50/80 dark:bg-neutral-900/80", __props.theadClass)) }, [createElementVNode("tr", { class: normalizeClass(__props.headerRowClass) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
5820
5853
  return openBlock(), createElementBlock(Fragment, { key: column.key }, [column.sortable ? (openBlock(), createBlock(_sfc_main$3, {
5821
5854
  key: 0,
5822
5855
  field: column.key,
5823
5856
  "current-sort-field": __props.sortField,
5824
5857
  "current-direction": __props.sortDirection,
5858
+ "header-class": getHeaderClass(column),
5859
+ "header-style": getColumnWidthStyle(column),
5860
+ "content-class": getContentClass(column),
5825
5861
  onSort: sortBy
5826
5862
  }, {
5827
5863
  default: withCtx(() => [createTextVNode(toDisplayString(column.label), 1)]),
@@ -5829,39 +5865,59 @@ var _sfc_main$1 = {
5829
5865
  }, 1032, [
5830
5866
  "field",
5831
5867
  "current-sort-field",
5832
- "current-direction"
5868
+ "current-direction",
5869
+ "header-class",
5870
+ "header-style",
5871
+ "content-class"
5833
5872
  ])) : (openBlock(), createElementBlock("th", {
5834
5873
  key: 1,
5835
- class: normalizeClass([getHeaderClass(column), { "text-right": column.align === "right" }])
5836
- }, toDisplayString(column.label), 3))], 64);
5837
- }), 128)), _ctx.$slots.actions ? (openBlock(), createElementBlock("th", _hoisted_4$1, toDisplayString(__props.actionsLabel), 1)) : createCommentVNode("", true)])]), createElementVNode("tbody", _hoisted_5$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(filteredData.value, (item, index) => {
5874
+ class: normalizeClass(getHeaderClass(column)),
5875
+ style: normalizeStyle(getColumnWidthStyle(column))
5876
+ }, [createElementVNode("div", { class: normalizeClass(getContentClass(column)) }, toDisplayString(column.label), 3)], 6))], 64);
5877
+ }), 128)), _ctx.$slots.actions ? (openBlock(), createElementBlock("th", {
5878
+ key: 0,
5879
+ class: normalizeClass(actionHeaderClass.value)
5880
+ }, toDisplayString(__props.actionsLabel), 3)) : createCommentVNode("", true)], 2)], 2), createElementVNode("tbody", { class: normalizeClass(joinClasses("divide-y divide-neutral-200 bg-white dark:divide-neutral-800 dark:bg-neutral-950", __props.tbodyClass)) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(filteredData.value, (item, index) => {
5838
5881
  return openBlock(), createElementBlock("tr", {
5839
5882
  key: item.id,
5840
5883
  class: normalizeClass(__props.rowClasses(item, index))
5841
5884
  }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
5842
5885
  return openBlock(), createElementBlock("td", {
5843
5886
  key: column.key,
5844
- class: normalizeClass(getColumnClass(column))
5845
- }, [column.key === "name" && !column.slot ? (openBlock(), createElementBlock("div", _hoisted_6$1, [createElementVNode("div", {
5887
+ class: normalizeClass(getColumnClass(column)),
5888
+ style: normalizeStyle(getColumnWidthStyle(column))
5889
+ }, [column.key === "name" && !column.slot ? (openBlock(), createElementBlock("div", {
5890
+ key: 0,
5891
+ class: normalizeClass(joinClasses("flex items-center", getContentClass(column)))
5892
+ }, [createElementVNode("div", {
5846
5893
  class: "truncate text-sm font-medium text-neutral-950 dark:text-neutral-50",
5847
5894
  title: getCellContent(item, column)
5848
- }, toDisplayString(getCellContent(item, column)), 9, _hoisted_7$1), isDeleted(item) ? (openBlock(), createElementBlock("span", _hoisted_8$1, toDisplayString(__props.deletedLabel), 1)) : createCommentVNode("", true)])) : column.slot ? renderSlot(_ctx.$slots, column.slot, {
5895
+ }, toDisplayString(getCellContent(item, column)), 9, _hoisted_2$2), isDeleted(item) ? (openBlock(), createElementBlock("span", _hoisted_3$2, toDisplayString(__props.deletedLabel), 1)) : createCommentVNode("", true)], 2)) : column.slot ? (openBlock(), createElementBlock("div", {
5849
5896
  key: 1,
5897
+ class: normalizeClass(getContentClass(column))
5898
+ }, [renderSlot(_ctx.$slots, column.slot, {
5850
5899
  item,
5851
5900
  column,
5852
5901
  index
5853
- }) : column.render ? (openBlock(), createElementBlock("div", {
5902
+ })], 2)) : column.render ? (openBlock(), createElementBlock("div", {
5854
5903
  key: 2,
5904
+ class: normalizeClass(getContentClass(column)),
5855
5905
  innerHTML: column.render(item)
5856
- }, null, 8, _hoisted_9$1)) : (openBlock(), createElementBlock("div", _hoisted_10$1, toDisplayString(getCellContent(item, column)), 1))], 2);
5857
- }), 128)), _ctx.$slots.actions ? (openBlock(), createElementBlock("td", _hoisted_11$1, [renderSlot(_ctx.$slots, "actions", {
5906
+ }, null, 10, _hoisted_4$1)) : (openBlock(), createElementBlock("div", {
5907
+ key: 3,
5908
+ class: normalizeClass(getContentClass(column))
5909
+ }, toDisplayString(getCellContent(item, column)), 3))], 6);
5910
+ }), 128)), _ctx.$slots.actions ? (openBlock(), createElementBlock("td", {
5911
+ key: 0,
5912
+ class: normalizeClass(actionCellClass.value)
5913
+ }, [renderSlot(_ctx.$slots, "actions", {
5858
5914
  item,
5859
5915
  index
5860
- })])) : createCommentVNode("", true)], 2);
5861
- }), 128))])])], 2), !hasData.value ? (openBlock(), createElementBlock("div", _hoisted_12$1, [
5862
- createElementVNode("div", _hoisted_13$1, [(openBlock(), createBlock(resolveDynamicComponent(__props.emptyState.icon), { class: "h-8 w-8 text-neutral-400 dark:text-neutral-200" }))]),
5863
- createElementVNode("h3", _hoisted_14$1, toDisplayString(__props.emptyState.title), 1),
5864
- createElementVNode("p", _hoisted_15$1, toDisplayString(__props.emptyState.description), 1),
5916
+ })], 2)) : createCommentVNode("", true)], 2);
5917
+ }), 128))], 2)], 2)], 2), !hasData.value ? (openBlock(), createElementBlock("div", _hoisted_5$1, [
5918
+ createElementVNode("div", _hoisted_6$1, [(openBlock(), createBlock(resolveDynamicComponent(__props.emptyState.icon), { class: "h-8 w-8 text-neutral-400 dark:text-neutral-200" }))]),
5919
+ createElementVNode("h3", _hoisted_7$1, toDisplayString(__props.emptyState.title), 1),
5920
+ createElementVNode("p", _hoisted_8$1, toDisplayString(__props.emptyState.description), 1),
5865
5921
  __props.emptyState.actionText && __props.emptyState.actionUrl ? (openBlock(), createBlock(_sfc_main$6, {
5866
5922
  key: 0,
5867
5923
  href: __props.emptyState.actionUrl,
@@ -5876,39 +5932,25 @@ var _sfc_main$1 = {
5876
5932
  };
5877
5933
  //#endregion
5878
5934
  //#region src/components/TableListForm.vue
5879
- var _hoisted_1$2 = { class: "relative max-w-sm" };
5880
- var _hoisted_2$1 = { class: "absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none" };
5881
- var _hoisted_3$1 = ["value", "placeholder"];
5882
- var _hoisted_4 = { class: "min-w-full divide-y divide-neutral-200 dark:divide-neutral-800" };
5883
- var _hoisted_5 = { class: "bg-neutral-50 dark:bg-neutral-900" };
5884
- var _hoisted_6 = {
5885
- key: 0,
5886
- class: "px-6 py-3 text-right text-xs font-medium uppercase tracking-wider text-neutral-500 dark:text-neutral-200"
5887
- };
5888
- var _hoisted_7 = { class: "divide-y divide-neutral-200 bg-white dark:divide-neutral-800 dark:bg-neutral-950" };
5889
- var _hoisted_8 = {
5935
+ var _hoisted_1$2 = {
5890
5936
  key: 2,
5891
5937
  class: "flex items-center"
5892
5938
  };
5893
- var _hoisted_9 = ["title"];
5894
- var _hoisted_10 = {
5939
+ var _hoisted_2$1 = ["title"];
5940
+ var _hoisted_3$1 = {
5895
5941
  key: 0,
5896
5942
  class: "ml-2 inline-flex items-center rounded-full bg-red-100 px-2 py-1 text-xs font-medium text-red-800 dark:bg-red-950/60 dark:text-neutral-100"
5897
5943
  };
5898
- var _hoisted_11 = ["innerHTML"];
5899
- var _hoisted_12 = { key: 5 };
5900
- var _hoisted_13 = {
5901
- key: 0,
5902
- class: "px-6 py-4 whitespace-nowrap text-right text-sm font-medium"
5903
- };
5904
- var _hoisted_14 = { class: "flex items-center justify-end gap-2" };
5905
- var _hoisted_15 = {
5944
+ var _hoisted_4 = ["innerHTML"];
5945
+ var _hoisted_5 = { key: 5 };
5946
+ var _hoisted_6 = { class: "flex items-center justify-end gap-2" };
5947
+ var _hoisted_7 = {
5906
5948
  key: 2,
5907
5949
  class: "py-12 text-center"
5908
5950
  };
5909
- var _hoisted_16 = { class: "mb-4 inline-flex h-16 w-16 items-center justify-center rounded-full bg-neutral-100 dark:bg-neutral-900" };
5910
- var _hoisted_17 = { class: "mb-2 text-lg font-medium text-neutral-950 dark:text-neutral-50" };
5911
- var _hoisted_18 = { class: "mb-4 text-neutral-500 dark:text-neutral-200" };
5951
+ var _hoisted_8 = { class: "mb-4 inline-flex h-16 w-16 items-center justify-center rounded-full bg-neutral-100 dark:bg-neutral-900" };
5952
+ var _hoisted_9 = { class: "mb-2 text-lg font-medium text-neutral-950 dark:text-neutral-50" };
5953
+ var _hoisted_10 = { class: "mb-4 text-neutral-500 dark:text-neutral-200" };
5912
5954
  var _sfc_main = {
5913
5955
  __name: "TableListForm",
5914
5956
  props: {
@@ -5979,6 +6021,26 @@ var _sfc_main = {
5979
6021
  type: Boolean,
5980
6022
  default: true
5981
6023
  },
6024
+ tableClass: {
6025
+ type: String,
6026
+ default: ""
6027
+ },
6028
+ theadClass: {
6029
+ type: String,
6030
+ default: ""
6031
+ },
6032
+ tbodyClass: {
6033
+ type: String,
6034
+ default: ""
6035
+ },
6036
+ headerRowClass: {
6037
+ type: String,
6038
+ default: ""
6039
+ },
6040
+ dense: {
6041
+ type: Boolean,
6042
+ default: false
6043
+ },
5982
6044
  actionsLabel: {
5983
6045
  type: String,
5984
6046
  default: "Actions"
@@ -6104,6 +6166,13 @@ var _sfc_main = {
6104
6166
  direction: localSortDirection.value
6105
6167
  });
6106
6168
  };
6169
+ const joinClasses = (...classes) => {
6170
+ return classes.flatMap((value) => {
6171
+ if (Array.isArray(value)) return value;
6172
+ if (typeof value === "string") return value;
6173
+ return [];
6174
+ }).filter(Boolean).join(" ");
6175
+ };
6107
6176
  const cloneValue = (value) => {
6108
6177
  if (Array.isArray(value)) return value.map((entry) => cloneValue(entry));
6109
6178
  if (value && typeof value === "object") return Object.fromEntries(Object.entries(value).map(([key, entry]) => [key, cloneValue(entry)]));
@@ -6194,15 +6263,16 @@ var _sfc_main = {
6194
6263
  return truncateText(value);
6195
6264
  };
6196
6265
  const getColumnClass = (column, item, index) => {
6197
- if (column.class) return column.class;
6198
- let classes = isEditingRow(item, index) && (column.input || slots[getEditSlotName(column)]) ? "px-6 py-3 text-sm align-top" : "px-6 py-4 text-sm truncate";
6199
- if (!column.isSecondary) classes += " font-medium";
6200
- if (column.isSecondary) classes += " text-neutral-600 dark:text-neutral-200";
6201
- return classes;
6266
+ return joinClasses(isEditingRow(item, index) && (column.input || slots[getEditSlotName(column)]) ? props.dense ? "px-3 py-2 text-sm align-top" : "px-6 py-3 text-sm align-top" : props.dense ? "px-3 py-2 text-sm truncate" : "px-6 py-4 text-sm truncate", !column.isSecondary ? "font-medium" : "", column.isSecondary ? "text-neutral-600 dark:text-neutral-200" : "", column.align === "right" ? "text-right" : "", column.class, column.cellClass);
6202
6267
  };
6203
6268
  const getHeaderClass = (column) => {
6204
- if (column.sortable) return "";
6205
- return "px-6 py-3 text-left text-xs font-medium uppercase tracking-wider text-neutral-500 dark:text-neutral-200";
6269
+ return joinClasses(column.sortable ? "cursor-pointer transition-colors duration-150" : "", props.dense ? "px-3 py-2 text-left text-xs font-medium uppercase tracking-wider" : "px-6 py-3 text-left text-xs font-medium uppercase tracking-wider", "text-neutral-500 dark:text-neutral-200", column.sortable ? "hover:bg-neutral-100 dark:hover:bg-neutral-900" : "", column.align === "right" ? "text-right" : "", column.headerClass);
6270
+ };
6271
+ const getContentClass = (column) => {
6272
+ return joinClasses(column.sortable ? "flex items-center space-x-1" : "", column.align === "right" ? "w-full text-right justify-end" : "", column.contentClass);
6273
+ };
6274
+ const getColumnWidthStyle = (column) => {
6275
+ return column.width ? { width: column.width } : {};
6206
6276
  };
6207
6277
  const getInputType = (column) => column.inputType || "text";
6208
6278
  const getInputClass = (column) => {
@@ -6236,25 +6306,37 @@ var _sfc_main = {
6236
6306
  const disabled = typeof column.disabled === "function" ? column.disabled(item, index) : column.disabled;
6237
6307
  return Boolean(disabled || isDeleted(item));
6238
6308
  };
6309
+ const actionHeaderClass = computed(() => {
6310
+ return joinClasses(props.dense ? "px-3 py-2 text-right text-xs font-medium uppercase tracking-wider" : "px-6 py-3 text-right text-xs font-medium uppercase tracking-wider", "text-neutral-500 dark:text-neutral-200");
6311
+ });
6312
+ const actionCellClass = computed(() => {
6313
+ return joinClasses(props.dense ? "px-3 py-2 whitespace-nowrap text-right text-sm font-medium" : "px-6 py-4 whitespace-nowrap text-right text-sm font-medium");
6314
+ });
6239
6315
  return (_ctx, _cache) => {
6240
6316
  return openBlock(), createElementBlock("div", { class: normalizeClass(["bg-white dark:bg-neutral-950", __props.isCard ? "mx-4 rounded-xl animate-fadeIn border border-neutral-200 shadow-sm dark:border-neutral-800 md:mx-0 overflow-hidden" : ""]) }, [__props.search ? (openBlock(), createElementBlock("div", {
6241
6317
  key: 0,
6242
6318
  class: normalizeClass(["px-6 py-4", __props.isCard ? "rounded-t-xl border-b border-neutral-200 bg-neutral-50/80 dark:border-neutral-800 dark:bg-neutral-900/80" : "mb-4 bg-white/80 backdrop-blur-sm dark:bg-neutral-950/80"])
6243
- }, [createElementVNode("div", _hoisted_1$2, [createElementVNode("div", _hoisted_2$1, [createVNode(unref(MagnifyingGlassIcon), { class: "h-4 w-4 text-neutral-400 dark:text-neutral-200" })]), createElementVNode("input", {
6244
- value: searchQuery.value,
6319
+ }, [createVNode(_sfc_main$16, {
6320
+ "model-value": searchQuery.value,
6245
6321
  type: "text",
6322
+ "root-class": "max-w-sm",
6246
6323
  placeholder: __props.searchPlaceholder,
6247
- class: "block w-full rounded-lg border border-neutral-200 bg-white py-2 pl-9 pr-3 text-sm text-neutral-900 placeholder:text-neutral-500 transition-colors duration-200 focus:border-neutral-900 focus:outline-none focus:ring-2 focus:ring-neutral-950/10 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50 dark:placeholder:text-neutral-500 dark:focus:border-neutral-100 dark:focus:ring-neutral-100/10",
6248
- onInput: _cache[0] || (_cache[0] = ($event) => searchQuery.value = $event.target.value)
6249
- }, null, 40, _hoisted_3$1)])], 2)) : createCommentVNode("", true), hasData.value ? (openBlock(), createElementBlock("div", {
6324
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchQuery.value = $event)
6325
+ }, {
6326
+ "leading-icon": withCtx(() => [createVNode(unref(Search), { class: "h-5 w-5" })]),
6327
+ _: 1
6328
+ }, 8, ["model-value", "placeholder"])], 2)) : createCommentVNode("", true), hasData.value ? (openBlock(), createElementBlock("div", {
6250
6329
  key: 1,
6251
6330
  class: normalizeClass(["overflow-x-auto", __props.isCard ? __props.search ? "" : "rounded-t-xl" : ""])
6252
- }, [createElementVNode("table", _hoisted_4, [createElementVNode("thead", _hoisted_5, [createElementVNode("tr", null, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
6331
+ }, [createElementVNode("table", { class: normalizeClass(joinClasses("min-w-full divide-y divide-neutral-200 dark:divide-neutral-800", __props.tableClass)) }, [createElementVNode("thead", { class: normalizeClass(joinClasses("bg-neutral-50 dark:bg-neutral-900", __props.theadClass)) }, [createElementVNode("tr", { class: normalizeClass(__props.headerRowClass) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
6253
6332
  return openBlock(), createElementBlock(Fragment, { key: column.key }, [column.sortable ? (openBlock(), createBlock(_sfc_main$3, {
6254
6333
  key: 0,
6255
6334
  field: column.key,
6256
6335
  "current-sort-field": localSortField.value,
6257
6336
  "current-direction": localSortDirection.value,
6337
+ "header-class": getHeaderClass(column),
6338
+ "header-style": getColumnWidthStyle(column),
6339
+ "content-class": getContentClass(column),
6258
6340
  onSort: sortBy
6259
6341
  }, {
6260
6342
  default: withCtx(() => [createTextVNode(toDisplayString(column.label), 1)]),
@@ -6262,20 +6344,28 @@ var _sfc_main = {
6262
6344
  }, 1032, [
6263
6345
  "field",
6264
6346
  "current-sort-field",
6265
- "current-direction"
6347
+ "current-direction",
6348
+ "header-class",
6349
+ "header-style",
6350
+ "content-class"
6266
6351
  ])) : (openBlock(), createElementBlock("th", {
6267
6352
  key: 1,
6268
- class: normalizeClass([getHeaderClass(column), { "text-right": column.align === "right" }])
6269
- }, toDisplayString(column.label), 3))], 64);
6270
- }), 128)), hasActionsColumn.value ? (openBlock(), createElementBlock("th", _hoisted_6, toDisplayString(__props.actionsLabel), 1)) : createCommentVNode("", true)])]), createElementVNode("tbody", _hoisted_7, [(openBlock(true), createElementBlock(Fragment, null, renderList(sortedData.value, (item, index) => {
6353
+ class: normalizeClass(getHeaderClass(column)),
6354
+ style: normalizeStyle(getColumnWidthStyle(column))
6355
+ }, [createElementVNode("div", { class: normalizeClass(getContentClass(column)) }, toDisplayString(column.label), 3)], 6))], 64);
6356
+ }), 128)), hasActionsColumn.value ? (openBlock(), createElementBlock("th", {
6357
+ key: 0,
6358
+ class: normalizeClass(actionHeaderClass.value)
6359
+ }, toDisplayString(__props.actionsLabel), 3)) : createCommentVNode("", true)], 2)], 2), createElementVNode("tbody", { class: normalizeClass(joinClasses("divide-y divide-neutral-200 bg-white dark:divide-neutral-800 dark:bg-neutral-950", __props.tbodyClass)) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(sortedData.value, (item, index) => {
6271
6360
  return openBlock(), createElementBlock("tr", {
6272
6361
  key: getRowKey(item, index),
6273
6362
  class: normalizeClass(__props.rowClasses(item, index))
6274
6363
  }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
6275
6364
  return openBlock(), createElementBlock("td", {
6276
6365
  key: column.key,
6277
- class: normalizeClass([getColumnClass(column, item, index), { "text-right": column.align === "right" }])
6278
- }, [isEditingRow(item, index) && column.slot && unref(slots)[getEditSlotName(column)] ? renderSlot(_ctx.$slots, getEditSlotName(column), mergeProps({
6366
+ class: normalizeClass(getColumnClass(column, item, index)),
6367
+ style: normalizeStyle(getColumnWidthStyle(column))
6368
+ }, [createElementVNode("div", { class: normalizeClass(getContentClass(column)) }, [isEditingRow(item, index) && column.slot && unref(slots)[getEditSlotName(column)] ? renderSlot(_ctx.$slots, getEditSlotName(column), mergeProps({
6279
6369
  key: 0,
6280
6370
  ref_for: true
6281
6371
  }, getSlotBindings(item, column, index))) : isEditingRow(item, index) && column.input ? (openBlock(), createBlock(_sfc_main$16, {
@@ -6300,17 +6390,20 @@ var _sfc_main = {
6300
6390
  "error-message",
6301
6391
  "onUpdate:modelValue",
6302
6392
  "onBlur"
6303
- ])) : column.key === "name" && !column.slot ? (openBlock(), createElementBlock("div", _hoisted_8, [createElementVNode("div", {
6393
+ ])) : column.key === "name" && !column.slot ? (openBlock(), createElementBlock("div", _hoisted_1$2, [createElementVNode("div", {
6304
6394
  class: "text-sm font-medium truncate",
6305
6395
  title: getCellContent(item, column)
6306
- }, toDisplayString(getCellContent(item, column)), 9, _hoisted_9), isDeleted(item) ? (openBlock(), createElementBlock("span", _hoisted_10, toDisplayString(__props.deletedLabel), 1)) : createCommentVNode("", true)])) : column.slot ? renderSlot(_ctx.$slots, column.slot, mergeProps({
6396
+ }, toDisplayString(getCellContent(item, column)), 9, _hoisted_2$1), isDeleted(item) ? (openBlock(), createElementBlock("span", _hoisted_3$1, toDisplayString(__props.deletedLabel), 1)) : createCommentVNode("", true)])) : column.slot ? renderSlot(_ctx.$slots, column.slot, mergeProps({
6307
6397
  key: 3,
6308
6398
  ref_for: true
6309
6399
  }, getSlotBindings(item, column, index))) : column.render ? (openBlock(), createElementBlock("div", {
6310
6400
  key: 4,
6311
6401
  innerHTML: column.render(item)
6312
- }, null, 8, _hoisted_11)) : (openBlock(), createElementBlock("div", _hoisted_12, toDisplayString(getCellContent(item, column)), 1))], 2);
6313
- }), 128)), hasActionsColumn.value ? (openBlock(), createElementBlock("td", _hoisted_13, [createElementVNode("div", _hoisted_14, [hasActionsSlot.value ? renderSlot(_ctx.$slots, "actions", mergeProps({
6402
+ }, null, 8, _hoisted_4)) : (openBlock(), createElementBlock("div", _hoisted_5, toDisplayString(getCellContent(item, column)), 1))], 2)], 6);
6403
+ }), 128)), hasActionsColumn.value ? (openBlock(), createElementBlock("td", {
6404
+ key: 0,
6405
+ class: normalizeClass(actionCellClass.value)
6406
+ }, [createElementVNode("div", _hoisted_6, [hasActionsSlot.value ? renderSlot(_ctx.$slots, "actions", mergeProps({
6314
6407
  key: 0,
6315
6408
  ref_for: true
6316
6409
  }, getSlotBindings(item, null, index))) : createCommentVNode("", true), __props.rowEditing && isEditingRow(item, index) ? (openBlock(), createBlock(_sfc_main$32, {
@@ -6345,11 +6438,11 @@ var _sfc_main = {
6345
6438
  "title",
6346
6439
  "aria-label",
6347
6440
  "onClick"
6348
- ])) : createCommentVNode("", true)])])) : createCommentVNode("", true)], 2);
6349
- }), 128))])])], 2)) : (openBlock(), createElementBlock("div", _hoisted_15, [
6350
- createElementVNode("div", _hoisted_16, [(openBlock(), createBlock(resolveDynamicComponent(__props.emptyState.icon), { class: "h-8 w-8 text-neutral-400 dark:text-neutral-200" }))]),
6351
- createElementVNode("h3", _hoisted_17, toDisplayString(__props.emptyState.title), 1),
6352
- createElementVNode("p", _hoisted_18, toDisplayString(__props.emptyState.description), 1),
6441
+ ])) : createCommentVNode("", true)])], 2)) : createCommentVNode("", true)], 2);
6442
+ }), 128))], 2)], 2)], 2)) : (openBlock(), createElementBlock("div", _hoisted_7, [
6443
+ createElementVNode("div", _hoisted_8, [(openBlock(), createBlock(resolveDynamicComponent(__props.emptyState.icon), { class: "h-8 w-8 text-neutral-400 dark:text-neutral-200" }))]),
6444
+ createElementVNode("h3", _hoisted_9, toDisplayString(__props.emptyState.title), 1),
6445
+ createElementVNode("p", _hoisted_10, toDisplayString(__props.emptyState.description), 1),
6353
6446
  __props.emptyState.actionText && __props.emptyState.actionUrl ? (openBlock(), createBlock(_sfc_main$6, {
6354
6447
  key: 0,
6355
6448
  href: __props.emptyState.actionUrl,
@@ -6548,4 +6641,4 @@ var plugin_default = { install(app) {
6548
6641
  //#endregion
6549
6642
  export { SectionTitle_default as $, _sfc_main$12 as A, _sfc_main$22 as B, _sfc_main$5 as C, _sfc_main$9 as D, _sfc_main$8 as E, ColorPicker_default as F, _sfc_main$27 as G, DateRangeInput_default as H, _sfc_main$18 as I, _sfc_main$30 as J, _sfc_main$28 as K, _sfc_main$19 as L, _sfc_main$14 as M, _sfc_main$15 as N, _sfc_main$10 as O, _sfc_main$16 as P, _sfc_main$34 as Q, _sfc_main$20 as R, useSidebar as S, _sfc_main$7 as T, DateInput_default as U, _sfc_main$23 as V, _sfc_main$26 as W, _sfc_main$32 as X, _sfc_main$31 as Y, _sfc_main$33 as Z, SidebarGroupContent_default as _, _sfc_main$1 as a, __commonJSMin as at, SidebarContent_default as b, _sfc_main$4 as c, SidebarMenuItem_default as d, _sfc_main$36 as et, SidebarMenuButton_default as f, SidebarGroupLabel_default as g, SidebarHeader_default as h, _sfc_main as i, _sfc_main$40 as it, _sfc_main$13 as j, _sfc_main$11 as k, SidebarTrigger_default as l, SidebarInset_default as m, ToastContainer_default as n, _sfc_main$38 as nt, _sfc_main$2 as o, SidebarMenu_default as p, _sfc_main$29 as q, Toast_default as r, _sfc_main$39 as rt, _sfc_main$3 as s, plugin_default as t, _sfc_main$37 as tt, SidebarProvider_default as u, SidebarGroup_default as v, _sfc_main$6 as w, Sidebar_default as x, SidebarFooter_default as y, _sfc_main$21 as z };
6550
6643
 
6551
- //# sourceMappingURL=plugin-Cr_xJNd_.js.map
6644
+ //# sourceMappingURL=plugin-BXOFohfj.js.map