@oneclick.dev/cms-core-modules 0.0.123 → 0.0.124

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 (98) hide show
  1. package/dist/{ContentEditor-C-Wm48ai.js → ContentEditor-BcIUumah.js} +39 -39
  2. package/dist/{ContentEditor-MDGolnIP.mjs → ContentEditor-DX1bTQKs.mjs} +4910 -4793
  3. package/dist/{Detail-Dk8E6_uF.mjs → Detail-B7pe808q.mjs} +15 -14
  4. package/dist/Detail-BESGmY7z.js +1 -0
  5. package/dist/{Detail-Cn9Bk0u0.mjs → Detail-B_Q7Qkuz.mjs} +26 -25
  6. package/dist/Detail-CNiLIEh9.js +1 -0
  7. package/dist/{Detail-B_scnidb.mjs → Detail-DNxAzeCs.mjs} +35 -34
  8. package/dist/Detail-t3tOcy3X.js +1 -0
  9. package/dist/Editor-D4evcdhv.mjs +768 -0
  10. package/dist/Editor-gLLtuJbY.js +1 -0
  11. package/dist/FormStatusBadge.vue_vue_type_script_setup_true_lang-BjKpsqT9.js +1 -0
  12. package/dist/FormStatusBadge.vue_vue_type_script_setup_true_lang-D5v5AhLe.mjs +76 -0
  13. package/dist/Knowledge-B66vxz--.js +1 -0
  14. package/dist/Knowledge-BnMTTuJ7.mjs +742 -0
  15. package/dist/Overview-BE4uYPx0.mjs +745 -0
  16. package/dist/Overview-CQRpFhbJ.mjs +286 -0
  17. package/dist/Overview-CTs7sX4d.js +1 -0
  18. package/dist/Overview-Cj89XXKN.js +1 -0
  19. package/dist/Overview-D_c18mbR.mjs +248 -0
  20. package/dist/Overview-g4Rcj245.js +1 -0
  21. package/dist/TableView-6mdrL3zx.js +4 -0
  22. package/dist/{TableView-C4Zyp8d7.mjs → TableView-Du5nOE6R.mjs} +2 -2
  23. package/dist/Test-CzmOmi53.mjs +447 -0
  24. package/dist/Test-USDtNFY1.js +1 -0
  25. package/dist/UserDetail-DpUL3mhk.mjs +1483 -0
  26. package/dist/UserDetail-KRIfxaYd.js +1 -0
  27. package/dist/cms-core-modules.css +1 -1
  28. package/dist/index-CQuN5rKx.js +1 -0
  29. package/dist/index-CnDGeInm.js +1 -0
  30. package/dist/index-CqDTc5Ig.mjs +20 -0
  31. package/dist/index-CyvvAdt4.js +1 -0
  32. package/dist/index-DIRD7t5_.mjs +20 -0
  33. package/dist/index-OJuBYR60.mjs +57 -0
  34. package/dist/index.cjs.js +1 -1
  35. package/dist/index.mjs +327 -84
  36. package/dist/server-handlers.cjs.js +1 -1
  37. package/dist/server-handlers.mjs +1764 -605
  38. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Container.d.ts +1 -1
  39. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Row.d.ts +7 -0
  40. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Stack.d.ts +7 -0
  41. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/resizeHistory.d.ts +9 -0
  42. package/dist/src/contentManager/components/content-editor/tiptap-menus/ElementEditorMenu.vue.d.ts +3 -1
  43. package/dist/src/firebaseAuthManager/components/DeleteUserDialog.vue.d.ts +25 -0
  44. package/dist/src/firebaseAuthManager/components/ReasonActionDialog.vue.d.ts +23 -0
  45. package/dist/src/firebaseAuthManager/components/UserStatusBadge.vue.d.ts +5 -0
  46. package/dist/src/firebaseAuthManager/config.d.ts +151 -0
  47. package/dist/src/firebaseAuthManager/index.d.ts +163 -0
  48. package/dist/src/firebaseAuthManager/index.vue.d.ts +14 -0
  49. package/dist/src/firebaseAuthManager/metadata.d.ts +2 -0
  50. package/dist/src/firebaseAuthManager/pages/Overview.vue.d.ts +2 -0
  51. package/dist/src/firebaseAuthManager/pages/UserDetail.vue.d.ts +2 -0
  52. package/dist/src/firebaseAuthManager/permissions.d.ts +5 -0
  53. package/dist/src/firebaseAuthManager/routes.d.ts +5 -0
  54. package/dist/src/firebaseAuthManager/server.d.ts +162 -0
  55. package/dist/src/firebaseAuthManager/types.d.ts +84 -0
  56. package/dist/src/formBuilder/components/FormPreviewDialog.vue.d.ts +12 -0
  57. package/dist/src/formBuilder/components/FormStatusBadge.vue.d.ts +9 -0
  58. package/dist/src/formBuilder/config.d.ts +31 -0
  59. package/dist/src/formBuilder/index.d.ts +44 -0
  60. package/dist/src/formBuilder/index.vue.d.ts +14 -0
  61. package/dist/src/formBuilder/lib/forms.d.ts +11 -0
  62. package/dist/src/formBuilder/metadata.d.ts +2 -0
  63. package/dist/src/formBuilder/pages/Editor.vue.d.ts +2 -0
  64. package/dist/src/formBuilder/pages/Overview.vue.d.ts +2 -0
  65. package/dist/src/formBuilder/permissions.d.ts +5 -0
  66. package/dist/src/formBuilder/routes.d.ts +5 -0
  67. package/dist/src/formBuilder/server.d.ts +87 -0
  68. package/dist/src/formBuilder/tools.d.ts +1 -0
  69. package/dist/src/formBuilder/types.d.ts +46 -0
  70. package/dist/src/helpbot/composables/useHelpbotApi.d.ts +18 -0
  71. package/dist/src/helpbot/config.d.ts +17 -0
  72. package/dist/src/helpbot/index.d.ts +29 -0
  73. package/dist/src/helpbot/index.vue.d.ts +2 -0
  74. package/dist/src/helpbot/metadata.d.ts +2 -0
  75. package/dist/src/helpbot/pages/Knowledge.vue.d.ts +4 -0
  76. package/dist/src/helpbot/pages/Overview.vue.d.ts +2 -0
  77. package/dist/src/helpbot/pages/Test.vue.d.ts +4 -0
  78. package/dist/src/helpbot/permissions.d.ts +5 -0
  79. package/dist/src/helpbot/routes.d.ts +5 -0
  80. package/dist/src/helpbot/types.d.ts +42 -0
  81. package/dist/src/index.d.ts +3 -0
  82. package/dist/src/server-handlers.d.ts +2 -0
  83. package/dist/types-9N-DKxNj.mjs +250 -0
  84. package/dist/types-BMraG1kN.js +1 -0
  85. package/dist/types-Cem0vPo_.js +1 -0
  86. package/dist/types-ibC3-e1N.mjs +2630 -0
  87. package/dist/useHelpbotApi-BIIungOh.js +1 -0
  88. package/dist/useHelpbotApi-HC9JSiSn.mjs +229 -0
  89. package/dist/vee-validate-zod-BQElPD0m.js +1 -0
  90. package/dist/vee-validate-zod-CN16K2x9.mjs +1780 -0
  91. package/package.json +2 -2
  92. package/src/formBuilder/tools.ts +1 -0
  93. package/dist/Detail-BCUUNWvp.js +0 -1
  94. package/dist/Detail-DGg_xXZc.js +0 -1
  95. package/dist/Detail-Sc2qZdxj.js +0 -1
  96. package/dist/TableView-BkwoKREo.js +0 -4
  97. package/dist/vee-validate-zod-SjDT8X35.mjs +0 -4404
  98. package/dist/vee-validate-zod-VCmLnrtQ.js +0 -1
@@ -1,10 +1,11 @@
1
1
  import { defineComponent as ne, inject as pt, resolveComponent as m, openBlock as b, createBlock as R, withCtx as c, createVNode as r, createElementVNode as p, createTextVNode as P, isRef as Y, unref as g, createElementBlock as k, toDisplayString as z, createCommentVNode as F, computed as G, watch as te, useTemplateRef as Ie, ref as L, nextTick as Re, Fragment as J, renderList as ce, withModifiers as fe, onMounted as vt, normalizeClass as De, withKeys as hn, provide as Pt, withAsyncContext as yn } from "vue";
2
- import { u as Ee, a as B, t as xn, o as Ne, b as ye, s as X, p as Oe, c as xe, d as Fe, e as Nt, f as Dn } from "./vee-validate-zod-SjDT8X35.mjs";
3
- import { Info as Sn, GripVertical as ut, CircleX as Cn, Trash2 as wn, PlusCircle as Tt, X as Rt, Loader2 as ft, Search as It, ListFilter as kn, ChevronDown as $t, Ellipsis as Vn, ImagePlus as Et, Plus as Pn, CornerDownRight as Nn, Tag as Tn, ChevronRight as In, Archive as $n, Trash as En } from "lucide-vue-next";
2
+ import { u as Ee, a as B, t as xn, b as Dn } from "./vee-validate-zod-CN16K2x9.mjs";
3
+ import { Info as Sn, GripVertical as ut, CircleX as Cn, Trash2 as wn, PlusCircle as Nt, X as Rt, Loader2 as ft, Search as Tt, ListFilter as kn, ChevronDown as It, Ellipsis as Vn, ImagePlus as $t, Plus as Pn, CornerDownRight as Nn, Tag as Tn, ChevronRight as In, Archive as $n, Trash as En } from "lucide-vue-next";
4
4
  import { animations as Ut } from "@formkit/drag-and-drop";
5
5
  import { useConfirmation as Lt, useModuleRoute as Bt, useFirebaseIntegration as jt, useModulePermissions as Mn, useModuleBreadcrumbs as An } from "@oneclick.dev/cms-kit";
6
6
  import { g as zn } from "./google-CvtuJwgk.mjs";
7
7
  import { t as de } from "./index-RLz1QPrf.mjs";
8
+ import { o as Ne, a as ye, s as X, p as Oe, c as xe, b as Fe, d as Et } from "./types-ibC3-e1N.mjs";
8
9
  const On = { class: "flex flex-col gap-4" }, Fn = { class: "flex flex-col" }, Rn = {
9
10
  key: 0,
10
11
  class: "text-red-500 text-sm mt-1"
@@ -2128,7 +2129,7 @@ const fl = {
2128
2129
  variant: "outline"
2129
2130
  }, {
2130
2131
  default: c(() => [
2131
- r(g(Tt), { class: "size-4" }),
2132
+ r(g(Nt), { class: "size-4" }),
2132
2133
  S[1] || (S[1] = P(" Add options like size or color ", -1))
2133
2134
  ]),
2134
2135
  _: 1
@@ -2139,7 +2140,7 @@ const fl = {
2139
2140
  class: "w-full justify-start pl-2 rounded-t-none"
2140
2141
  }, {
2141
2142
  default: c(() => [
2142
- r(g(Tt), { class: "size-4" }),
2143
+ r(g(Nt), { class: "size-4" }),
2143
2144
  S[2] || (S[2] = P(" Add another option ", -1))
2144
2145
  ]),
2145
2146
  _: 1
@@ -2491,7 +2492,7 @@ const fl = {
2491
2492
  class: "ml-auto"
2492
2493
  }, {
2493
2494
  default: c(() => [
2494
- r(g(It), { class: "size-4" }),
2495
+ r(g(Tt), { class: "size-4" }),
2495
2496
  r(g(kn), { class: "size-4" })
2496
2497
  ]),
2497
2498
  _: 1
@@ -2507,7 +2508,7 @@ const fl = {
2507
2508
  modelValue: d.value,
2508
2509
  "onUpdate:modelValue": u[3] || (u[3] = (T) => d.value = T)
2509
2510
  }, null, 8, ["modelValue"]),
2510
- r(g(It), { class: "size-4 absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none" })
2511
+ r(g(Tt), { class: "size-4 absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none" })
2511
2512
  ], 2),
2512
2513
  p("div", zl, [
2513
2514
  (b(!0), k(J, null, ce(e.options, (T) => (b(), R(gn, {
@@ -2532,7 +2533,7 @@ const fl = {
2532
2533
  ], 8, Ol)
2533
2534
  ], 64)) : (b(), k(J, { key: 0 }, [
2534
2535
  P(z(T.name) + " ", 1),
2535
- r(g($t), { class: "size-3" })
2536
+ r(g(It), { class: "size-3" })
2536
2537
  ], 64))
2537
2538
  ]),
2538
2539
  _: 2
@@ -2773,7 +2774,7 @@ const fl = {
2773
2774
  class: "size-15 border-dashed cursor-pointer"
2774
2775
  }, {
2775
2776
  default: c(() => [
2776
- r(g(Et))
2777
+ r(g($t))
2777
2778
  ]),
2778
2779
  _: 1
2779
2780
  })) : tt(T.id) ? (b(), k("img", {
@@ -2802,7 +2803,7 @@ const fl = {
2802
2803
  p("p", tr, z(T.value), 1),
2803
2804
  p("button", nr, [
2804
2805
  P(z(q(T.id).length) + " variants ", 1),
2805
- r(g($t), {
2806
+ r(g(It), {
2806
2807
  class: De(["size-3 transition-transform duration-200", v.value.includes(T.id) ? "rotate-180" : ""])
2807
2808
  }, null, 8, ["class"])
2808
2809
  ])
@@ -2925,7 +2926,7 @@ const fl = {
2925
2926
  class: "size-10 border-dashed cursor-pointer"
2926
2927
  }, {
2927
2928
  default: c(() => [
2928
- r(g(Et))
2929
+ r(g($t))
2929
2930
  ]),
2930
2931
  _: 1
2931
2932
  }))
@@ -3399,7 +3400,7 @@ const fl = {
3399
3400
  }, sa = { class: "flex flex-col @3xl:flex-row gap-4 max-w-5xl mx-auto pb-24" }, ia = { class: "flex flex-col gap-4 w-full @3xl:w-2/3" }, da = { class: "flex flex-col gap-4 w-full @3xl:w-1/3" }, ua = {
3400
3401
  key: 0,
3401
3402
  class: "fixed bottom-4 left-0 md:left-12 right-0 min-w-xs max-w-5xl w-[calc(100%-2rem)] md:w-[calc(100%-5rem)] xl:w-[calc(100%-2rem)] h-16 border border-white/10 backdrop-blur-sm border-t border-border flex items-center justify-center px-4 mx-auto z-[9999] rounded-xl overflow-hidden shadow bg-[radial-gradient(#ffffff80,transparent)] dark:bg-[radial-gradient(#00000080,transparent)]"
3402
- }, ca = { class: "w-full max-w-5xl flex items-center justify-end mx-auto" }, ha = /* @__PURE__ */ ne({
3403
+ }, ca = { class: "w-full max-w-5xl flex items-center justify-end mx-auto" }, ya = /* @__PURE__ */ ne({
3403
3404
  __name: "Detail",
3404
3405
  props: {
3405
3406
  config: {
@@ -3445,8 +3446,8 @@ const fl = {
3445
3446
  title: X().optional(),
3446
3447
  description: X().optional()
3447
3448
  }).optional(),
3448
- createdAt: Nt(),
3449
- updatedAt: Nt(),
3449
+ createdAt: Et(),
3450
+ updatedAt: Et(),
3450
3451
  status: X(),
3451
3452
  options: ye(Ne({
3452
3453
  id: X(),
@@ -3727,5 +3728,5 @@ const fl = {
3727
3728
  }
3728
3729
  });
3729
3730
  export {
3730
- ha as default
3731
+ ya as default
3731
3732
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),p=require("./vee-validate-zod-BQElPD0m.js"),E=require("./countries-CgZ081No.js"),b=require("lucide-vue-next"),S=require("@oneclick.dev/cms-kit"),B=require("./index-ijdf0d9-.js"),C=require("./types-BMraG1kN.js"),F={class:"flex flex-col gap-4"},L={class:"flex flex-col gap-2"},R={key:0,class:"text-red-500 text-sm mt-1"},z={class:"flex flex-col gap-4"},U={class:"flex flex-col gap-2"},j={key:0,class:"text-red-500 text-sm mt-1"},P={class:"flex flex-col gap-4"},q={class:"flex flex-col gap-2"},G={key:0,class:"text-red-500 text-sm mt-1"},A=e.defineComponent({__name:"Main",setup($){const c=e.inject("isLoadingCompleted",e.ref(!1)),{errors:o}=p.useFormContext(),{value:r}=p.useField("title"),{value:n}=p.useField("description"),{value:l}=p.useField("price");return(d,t)=>{const a=e.resolveComponent("Label"),u=e.resolveComponent("Input"),m=e.resolveComponent("Textarea"),N=e.resolveComponent("CardContent"),w=e.resolveComponent("Card");return e.openBlock(),e.createBlock(w,null,{default:e.withCtx(()=>[e.createVNode(N,{class:"flex flex-col gap-4"},{default:e.withCtx(()=>[e.createElementVNode("div",F,[e.createElementVNode("div",L,[e.createVNode(a,{for:"title",class:"text-sm"},{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode("Name",-1)])]),_:1}),e.createVNode(u,{type:"text",id:"title",placeholder:e.unref(c)?"Fast shipping":"",modelValue:e.unref(r),"onUpdate:modelValue":t[0]||(t[0]=g=>e.isRef(r)?r.value=g:null)},null,8,["placeholder","modelValue"]),e.unref(o).title?(e.openBlock(),e.createElementBlock("p",R,e.toDisplayString(e.unref(o).title),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",z,[e.createElementVNode("div",U,[e.createVNode(a,{for:"description",class:"text-sm"},{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("Description (optional)",-1)])]),_:1}),e.createVNode(m,{id:"description",placeholder:e.unref(c)?"Ships next day":"",modelValue:e.unref(n),"onUpdate:modelValue":t[1]||(t[1]=g=>e.isRef(n)?n.value=g:null)},null,8,["placeholder","modelValue"]),e.unref(o).description?(e.openBlock(),e.createElementBlock("p",j,e.toDisplayString(e.unref(o).description),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",P,[e.createElementVNode("div",q,[e.createVNode(a,{for:"price",class:"text-sm"},{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode("Price",-1)])]),_:1}),e.createVNode(u,{type:"number",min:"0",id:"price",placeholder:e.unref(c)?"Free":"",modelValue:e.unref(l),"onUpdate:modelValue":t[2]||(t[2]=g=>e.isRef(l)?l.value=g:null),class:"no-spinner"},null,8,["placeholder","modelValue"]),e.unref(o).price?(e.openBlock(),e.createElementBlock("p",G,e.toDisplayString(e.unref(o).price),1)):e.createCommentVNode("",!0)])])]),_:1})]),_:1})}}}),J={class:"flex flex-col gap-4"},K={class:"flex flex-col gap-2"},W={class:"truncate"},X={class:"relative w-full max-w-sm items-center"},Z={class:"absolute start-0 inset-y-0 flex items-center justify-center px-3"},H={class:"truncate"},Q={key:0,class:"text-red-500 text-sm mt-1"},Y={key:0},ee={class:"group flex items-center gap-2 bg-muted/50 rounded-md mb-1 p-2"},te={class:"w-6"},oe={class:"text-muted-foreground group-hover:text-black dark:group-hover:text-white"},ne=e.defineComponent({__name:"Countries",setup($){const{errors:c}=p.useFormContext(),{value:o}=p.useField("countries");return e.watch(o,r=>{let n=r?.sort((d,t)=>!d||!t?0:E.rawCountries.find(a=>a.cca2===d)?.name.common.localeCompare(E.rawCountries.find(a=>a.cca2===t)?.name.common)),l=!0;for(let d=0;d<r.length;d++)if(r[d]!==o.value[d]){l=!1;break}l||(o.value=n)}),(r,n)=>{const l=e.resolveComponent("Label"),d=e.resolveComponent("Button"),t=e.resolveComponent("ComboboxTrigger"),a=e.resolveComponent("ComboboxAnchor"),u=e.resolveComponent("ComboboxInput"),m=e.resolveComponent("ComboboxEmpty"),N=e.resolveComponent("ComboboxItemIndicator"),w=e.resolveComponent("ComboboxItem"),g=e.resolveComponent("ComboboxGroup"),f=e.resolveComponent("ComboboxList"),O=e.resolveComponent("Combobox"),T=e.resolveComponent("CardContent"),k=e.resolveComponent("Card");return e.openBlock(),e.createBlock(k,null,{default:e.withCtx(()=>[e.createVNode(T,{class:"flex flex-col gap-4"},{default:e.withCtx(()=>[n[3]||(n[3]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Countries",-1)),e.createElementVNode("div",J,[e.createElementVNode("div",K,[e.createVNode(l,{class:"text-sm mb-2"},{default:e.withCtx(()=>[...n[1]||(n[1]=[e.createTextVNode("For which countries should this option be available?",-1)])]),_:1}),e.createVNode(O,{modelValue:e.unref(o),"onUpdate:modelValue":n[0]||(n[0]=x=>e.isRef(o)?o.value=x:null),multiple:!0},{default:e.withCtx(()=>[e.createVNode(a,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(t,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(d,{variant:"outline",class:"justify-between"},{default:e.withCtx(()=>[e.createElementVNode("span",W,e.toDisplayString(e.unref(o)?.length>0?e.unref(o).slice(0,4).map(x=>e.unref(E.rawCountries).find(h=>h.cca2===x)?.name.common).join(", "):"Select countries"),1),e.createVNode(e.unref(b.ChevronsUpDown),{class:"ml-2 size-4 shrink-0 opacity-50"})]),_:1})]),_:1})]),_:1}),e.createVNode(f,null,{default:e.withCtx(()=>[e.createElementVNode("div",X,[e.createVNode(u,{class:"pl-9 focus-visible:ring-0 border-0 border-b rounded-none h-10",placeholder:"Find country..."}),e.createElementVNode("span",Z,[e.createVNode(e.unref(b.Search),{class:"size-4 text-muted-foreground"})])]),e.createVNode(m,null,{default:e.withCtx(()=>[...n[2]||(n[2]=[e.createTextVNode(" No countries found. ",-1)])]),_:1}),e.createVNode(g,{class:"max-h-72 overflow-y-scroll"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E.rawCountries),x=>(e.openBlock(),e.createBlock(w,{key:x.cca2,value:x.cca2},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(x.flag)+" ",1),e.createElementVNode("span",H,e.toDisplayString(x.name.common),1),e.createVNode(N,null,{default:e.withCtx(()=>[e.createVNode(e.unref(b.Check),{class:"size-4"})]),_:1})]),_:2},1032,["value"]))),128))]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.unref(c).countries?(e.openBlock(),e.createElementBlock("p",Q,e.toDisplayString(e.unref(c).countries),1)):e.createCommentVNode("",!0)])]),e.unref(o)?.length>0?(e.openBlock(),e.createElementBlock("div",Y,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),x=>(e.openBlock(),e.createElementBlock("div",ee,[e.createElementVNode("div",te,e.toDisplayString(e.unref(E.rawCountries).find(h=>h.cca2===x)?.flag),1),e.createElementVNode("p",oe,e.toDisplayString(e.unref(E.rawCountries).find(h=>h.cca2===x)?.name.common),1),e.createVNode(d,{variant:"ghost",size:"icon",onClick:h=>o.value=e.unref(o).filter(I=>I!==x),class:"hidden group-hover:flex ml-auto size-6"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.X),{class:"size-3"})]),_:1},8,["onClick"])]))),256))])):e.createCommentVNode("",!0)]),_:1})]),_:1})}}}),le={class:"flex items-center space-x-2"},se={class:"flex items-center space-x-2"},re={class:"flex items-center space-x-2"},ie={key:0,class:"flex gap-2 w-full mt-4"},ae={class:"flex flex-col gap-4 w-full"},ce={class:"flex flex-col gap-2"},de={class:"relative"},ue={key:0,class:"text-red-500 text-sm mt-1"},pe={class:"flex flex-col gap-4 w-full"},me={class:"flex flex-col gap-2"},fe={class:"relative"},xe={key:0,class:"text-red-500 text-sm mt-1"},_e={key:1,class:"flex gap-2 w-full mt-4"},Ce={class:"flex flex-col gap-4 w-full"},Ve={class:"flex flex-col gap-2"},ve={class:"relative"},Ne={key:0,class:"text-red-500 text-sm mt-1"},ge={class:"flex flex-col gap-4 w-full"},be={class:"flex flex-col gap-2"},he={class:"relative"},we={key:0,class:"text-red-500 text-sm mt-1"},ke=e.defineComponent({__name:"Condition",setup($){const c=e.inject("isLoadingCompleted",e.ref(!1)),{errors:o}=p.useFormContext(),{value:r}=p.useField("condition"),{value:n}=p.useField("condition_min"),{value:l}=p.useField("condition_max");return(d,t)=>{const a=e.resolveComponent("RadioGroupItem"),u=e.resolveComponent("Label"),m=e.resolveComponent("RadioGroup"),N=e.resolveComponent("Input"),w=e.resolveComponent("CardContent"),g=e.resolveComponent("Card");return e.openBlock(),e.createBlock(g,null,{default:e.withCtx(()=>[e.createVNode(w,{class:"flex flex-col gap-4"},{default:e.withCtx(()=>[t[16]||(t[16]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Condition",-1)),t[17]||(t[17]=e.createElementVNode("p",null," Specify when this option should be available ",-1)),e.createVNode(m,{"default-value":"always",modelValue:e.unref(r),"onUpdate:modelValue":t[0]||(t[0]=f=>e.isRef(r)?r.value=f:null),class:e.normalizeClass(["flex flex-col transition-all duration-300",{"opacity-0 pointer-events-none":!e.unref(c)}])},{default:e.withCtx(()=>[e.createElementVNode("div",le,[e.createVNode(a,{id:"always",value:"always"}),e.createVNode(u,{for:"always"},{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode("Always",-1)])]),_:1})]),e.createElementVNode("div",se,[e.createVNode(a,{id:"weight_based",value:"weight_based"}),e.createVNode(u,{for:"weight_based"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("Weight based",-1)])]),_:1})]),e.createElementVNode("div",re,[e.createVNode(a,{id:"price_based",value:"price_based"}),e.createVNode(u,{for:"price_based"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode("Price based",-1)])]),_:1})])]),_:1},8,["modelValue","class"]),e.unref(r)==="weight_based"?(e.openBlock(),e.createElementBlock("div",ie,[e.createElementVNode("div",ae,[e.createElementVNode("div",ce,[e.createVNode(u,{for:"condition_min",class:"text-sm"},{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode("Minimum weight",-1)])]),_:1}),e.createElementVNode("div",de,[e.createVNode(N,{type:"number",id:"condition_min",min:"0",placeholder:"0",modelValue:e.unref(n),"onUpdate:modelValue":t[1]||(t[1]=f=>e.isRef(n)?n.value=f:null),class:"no-spinner pr-10"},null,8,["modelValue"]),t[9]||(t[9]=e.createElementVNode("span",{class:"absolute pointer-events-none top-1/2 right-3 -translate-y-1/2 text-sm text-muted-foreground"},"kg",-1))]),e.unref(o).condition_min?(e.openBlock(),e.createElementBlock("p",ue,e.toDisplayString(e.unref(o).condition_min),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",pe,[e.createElementVNode("div",me,[e.createVNode(u,{for:"condition_max",class:"text-sm"},{default:e.withCtx(()=>[...t[10]||(t[10]=[e.createTextVNode("Maximum weight",-1)])]),_:1}),e.createElementVNode("div",fe,[e.createVNode(N,{type:"number",id:"condition_max",min:"0",placeholder:"No limit",modelValue:e.unref(l),"onUpdate:modelValue":t[2]||(t[2]=f=>e.isRef(l)?l.value=f:null),class:"no-spinner pr-10"},null,8,["modelValue"]),t[11]||(t[11]=e.createElementVNode("span",{class:"absolute pointer-events-none top-1/2 right-3 -translate-y-1/2 text-sm text-muted-foreground"},"kg",-1))]),e.unref(o).condition_max?(e.openBlock(),e.createElementBlock("p",xe,e.toDisplayString(e.unref(o).condition_max),1)):e.createCommentVNode("",!0)])])])):e.unref(r)==="price_based"?(e.openBlock(),e.createElementBlock("div",_e,[e.createElementVNode("div",Ce,[e.createElementVNode("div",Ve,[e.createVNode(u,{for:"condition_min",class:"text-sm"},{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode("Minimum price",-1)])]),_:1}),e.createElementVNode("div",ve,[e.createVNode(N,{type:"number",id:"condition_min",min:"0",placeholder:"0, 00",modelValue:e.unref(n),"onUpdate:modelValue":t[3]||(t[3]=f=>e.isRef(n)?n.value=f:null),class:"no-spinner pl-8"},null,8,["modelValue"]),t[13]||(t[13]=e.createElementVNode("span",{class:"absolute pointer-events-none top-1/2 left-3 -translate-y-1/2 text-sm text-muted-foreground"},"€",-1))]),e.unref(o).condition_min?(e.openBlock(),e.createElementBlock("p",Ne,e.toDisplayString(e.unref(o).condition_min),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",ge,[e.createElementVNode("div",be,[e.createVNode(u,{for:"condition_max",class:"text-sm"},{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createTextVNode("Maximum price",-1)])]),_:1}),e.createElementVNode("div",he,[e.createVNode(N,{type:"number",id:"condition_max",min:"0",placeholder:"No limit",modelValue:e.unref(l),"onUpdate:modelValue":t[4]||(t[4]=f=>e.isRef(l)?l.value=f:null),class:"no-spinner pl-8"},null,8,["modelValue"]),t[15]||(t[15]=e.createElementVNode("span",{class:"absolute pointer-events-none top-1/2 left-3 -translate-y-1/2 text-sm text-muted-foreground"},"€",-1))]),e.unref(o).condition_max?(e.openBlock(),e.createElementBlock("p",we,e.toDisplayString(e.unref(o).condition_max),1)):e.createCommentVNode("",!0)])])])):e.createCommentVNode("",!0)]),_:1})]),_:1})}}}),ye={class:"flex gap-2 rounded-lg p-2 bg-white text-black overflow-hidden shadow border"},Ee={class:"w-full overflow-hidden"},Be={class:"truncate"},$e={key:0,class:"text-sm text-muted-foreground"},Se={class:"ml-auto shrink-0"},Te={class:"font-bold"},Oe=e.defineComponent({__name:"Example",setup($){const{value:c}=p.useField("title"),{value:o}=p.useField("description"),{value:r}=p.useField("price");return(n,l)=>{const d=e.resolveComponent("CardContent"),t=e.resolveComponent("Card");return e.openBlock(),e.createBlock(t,null,{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[l[1]||(l[1]=e.createElementVNode("p",{class:"text-md font-semibold mb-2"},"Example",-1)),e.createElementVNode("div",ye,[l[0]||(l[0]=e.createElementVNode("div",{class:"pt-1 shrink-0"},[e.createElementVNode("div",{class:"size-4 rounded-full bg-primary flex items-center justify-center"},[e.createElementVNode("div",{class:"size-2 rounded-full bg-white"})])],-1)),e.createElementVNode("div",Ee,[e.createElementVNode("p",Be,e.toDisplayString(e.unref(c)||"Option Name"),1),e.unref(o)?(e.openBlock(),e.createElementBlock("p",$e,e.toDisplayString(e.unref(o)),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Se,[e.createElementVNode("p",Te,e.toDisplayString(e.unref(r)?"€"+e.unref(r).toFixed(2):"FREE"),1)])])]),_:1})]),_:1})}}}),Ie={class:"relative @container"},De={class:"flex flex-row gap-4 justify-between max-w-5xl mx-auto mt-4 mb-6"},Me={class:"flex items-center"},Fe={class:"text-lg font-semibold mx-2"},Le={class:"flex flex-col @3xl:flex-row gap-4 max-w-5xl mx-auto pb-24"},Re={class:"flex flex-col gap-4 w-full @3xl:w-2/3"},ze={class:"flex flex-col gap-4 w-full @3xl:w-1/3"},Ue={key:0,class:"fixed bottom-4 left-0 md:left-12 right-0 min-w-xs max-w-5xl w-[calc(100%-2rem)] md:w-[calc(100%-5rem)] xl:w-[calc(100%-2rem)] h-16 border border-white/10 backdrop-blur-sm border-t border-border flex items-center justify-center px-4 mx-auto z-[9999] rounded-xl overflow-hidden shadow bg-[radial-gradient(#ffffff80,transparent)] dark:bg-[radial-gradient(#00000080,transparent)]"},je={class:"w-full max-w-5xl flex items-center justify-end mx-auto"},Pe=e.defineComponent({__name:"Detail",props:{config:{type:Object,required:!0}},setup($){const c=$,{hasPermission:o,hasAnyPermission:r}=S.useModulePermissions(),{params:n,navigateTo:l}=S.useModuleRoute(),{confirm:d}=S.useConfirmation(),t=S.useFirebaseIntegration(c.config.project),a=e.computed(()=>!n.value.optionId||n.value.optionId==="new"),u=e.ref(!1),m=e.ref(!1),N=p.toTypedSchema(C.objectType({id:C.stringType().optional(),status:C.stringType().optional(),title:C.stringType().min(1,"Title is required"),description:C.stringType().optional(),price:C.preprocessType(i=>i===""?void 0:i,C.coerce.number().positive("Must be positive").optional()),countries:C.arrayType(C.stringType()).optional(),condition:C.stringType(),condition_min:C.preprocessType(i=>i===""?void 0:i,C.coerce.number().positive("Must be positive").optional()),condition_max:C.preprocessType(i=>i===""?void 0:i,C.coerce.number().positive("Must be positive").optional())})),{handleSubmit:w,errors:g,values:f,setValues:O}=p.useForm({validationSchema:N,initialValues:{status:"published",countries:[],condition:"always"}});S.useModuleBreadcrumbs(()=>[{text:f.title??"New Option"}]);const T=w(async i=>{m.value=!0;let s=await k()||[];if(a.value){let _=JSON.parse(JSON.stringify(i));_.id=crypto.randomUUID();const v=[...s,_],V=c.config.shippingOptionsCollection.split(":");await t.update(V[0],null,{[V[1]]:v}),l(_.id),B.toast.success("Shipping option created")}else{let _=JSON.parse(JSON.stringify(i));const v=s.map(y=>y.id===n.value.optionId?_:y),V=c.config.shippingOptionsCollection.split(":");await t.update(V[0],null,{[V[1]]:v}),l(`${n.value.optionId}`),B.toast.success("Shipping option updated")}m.value=!1}),k=async()=>{if(!c.config.shippingOptionsCollection)return[];const i=c.config.shippingOptionsCollection.split(":");return i.length!==2?[]:(await t.get(i[0]))?.[i[1]]||[]},x=async()=>{const s=(await k()).find(_=>_.id===n.value.optionId);O(s),u.value=!0},h=async()=>{try{let s={...[...await k()||[]].find(y=>y.id===n.value.optionId)};s.id=crypto.randomUUID(),s.status="published",s.title=s.title+" (copy)";const v=[...await k()||[],s],V=c.config.shippingOptionsCollection.split(":");await t.update(V[0],null,{[V[1]]:v}),l(s.id),B.toast.success("Option duplicated")}catch{B.toast.error("Failed to duplicate option")}},I=async()=>{if(await d("Are you sure you want to delete this option?"))try{const s=await k()||[];if(s.length===0||!n.value.optionId)throw new Error("Error loading values");const _=s.filter(V=>V.id!==n.value.optionId),v=c.config.shippingOptionsCollection.split(":");await t.update(v[0],null,{[v[1]]:_}),l(""),B.toast.success("Option deleted")}catch{B.toast.error("Failed to delete option")}};return e.onMounted(()=>{a.value?u.value=!0:x()}),e.provide("isLoadingCompleted",u),(i,s)=>{const _=e.resolveComponent("Button"),v=e.resolveComponent("MenubarTrigger"),V=e.resolveComponent("MenubarMenu"),y=e.resolveComponent("MenubarItem"),D=e.resolveComponent("MenubarContent"),M=e.resolveComponent("Menubar");return e.openBlock(),e.createElementBlock("div",Ie,[e.createElementVNode("div",De,[e.createElementVNode("div",Me,[e.createVNode(_,{variant:"ghost",onClick:s[0]||(s[0]=qe=>e.unref(l)(""))},{default:e.withCtx(()=>[e.createVNode(e.unref(b.Tag),{class:"size-4"})]),_:1}),e.createVNode(e.unref(b.ChevronRight),{class:"size-3"}),e.createElementVNode("h1",Fe,e.toDisplayString(a.value?"New Option":e.unref(f).title),1)]),a.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(M,{key:0,class:"bg-sidebar"},{default:e.withCtx(()=>[e.unref(o)("create-collection")?(e.openBlock(),e.createBlock(V,{key:0},{default:e.withCtx(()=>[e.createVNode(v,{onClick:h},{default:e.withCtx(()=>[...s[1]||(s[1]=[e.createTextVNode("Duplicate",-1)])]),_:1})]),_:1})):e.createCommentVNode("",!0),e.unref(r)("edit-collection","delete-option")?(e.openBlock(),e.createBlock(V,{key:1},{default:e.withCtx(()=>[e.createVNode(v,null,{default:e.withCtx(()=>[...s[2]||(s[2]=[e.createTextVNode("More actions",-1)])]),_:1}),e.createVNode(D,null,{default:e.withCtx(()=>[e.unref(o)("delete-option")?(e.openBlock(),e.createBlock(y,{key:0,variant:"destructive",onClick:I},{default:e.withCtx(()=>[e.createVNode(e.unref(b.Trash),{class:"size-4"}),s[3]||(s[3]=e.createTextVNode(" Delete option ",-1))]),_:1})):e.createCommentVNode("",!0)]),_:1})]),_:1})):e.createCommentVNode("",!0)]),_:1}))]),e.createElementVNode("div",Le,[e.createElementVNode("div",Re,[e.createVNode(A),e.createVNode(ne),e.createVNode(ke)]),e.createElementVNode("div",ze,[e.createVNode(Oe)])]),e.unref(r)("create-option","edit-option")?(e.openBlock(),e.createElementBlock("div",Ue,[e.createElementVNode("div",je,[a.value&&e.unref(o)("create-option")?(e.openBlock(),e.createBlock(_,{key:0,onClick:e.unref(T),disabled:m.value},{default:e.withCtx(()=>[m.value?(e.openBlock(),e.createBlock(e.unref(b.Loader2),{key:0,class:"size-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(m.value?"Creating":"Create")+" New Option ",1)]),_:1},8,["onClick","disabled"])):e.unref(o)("edit-option")?(e.openBlock(),e.createBlock(_,{key:1,onClick:e.unref(T),disabled:m.value},{default:e.withCtx(()=>[m.value?(e.openBlock(),e.createBlock(e.unref(b.Loader2),{key:0,class:"size-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(m.value?"Saving":"Save")+" Changes ",1)]),_:1},8,["onClick","disabled"])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)])}}});exports.default=Pe;
@@ -1,8 +1,9 @@
1
1
  import { defineComponent as H, inject as se, watch as ge, resolveComponent as u, openBlock as i, createBlock as w, withCtx as l, createVNode as e, createElementVNode as n, createTextVNode as C, isRef as X, unref as o, createElementBlock as x, toDisplayString as A, createCommentVNode as h, withModifiers as ne, ref as ae, computed as ie, Fragment as xe, renderList as ve, provide as ee, onMounted as be } from "vue";
2
- import { u as Y, a as q, o as te, g as ye, h as he, s as P, b as le, t as Ce, f as Se } from "./vee-validate-zod-SjDT8X35.mjs";
3
- import { X as ce, ImagePlus as W, Plus as we, ArrowUp as ke, ArrowDown as $e, Copy as ze, Trash as re, ChevronUp as Ve, ChevronDown as Ie, Tag as Te, ChevronRight as Ue, Loader2 as oe } from "lucide-vue-next";
4
- import { useModulePermissions as De, useModuleRoute as Me, useConfirmation as Ae, useFirebaseIntegration as Pe, useModuleBreadcrumbs as Fe } from "@oneclick.dev/cms-kit";
2
+ import { u as Y, a as q, t as ye, b as he } from "./vee-validate-zod-CN16K2x9.mjs";
3
+ import { X as ce, ImagePlus as W, Plus as Ce, ArrowUp as Se, ArrowDown as we, Copy as ke, Trash as re, ChevronUp as $e, ChevronDown as ze, Tag as Ve, ChevronRight as Ie, Loader2 as te } from "lucide-vue-next";
4
+ import { useModulePermissions as Te, useModuleRoute as Ue, useConfirmation as De, useFirebaseIntegration as Me, useModuleBreadcrumbs as Ae } from "@oneclick.dev/cms-kit";
5
5
  import { t as L } from "./index-RLz1QPrf.mjs";
6
+ import { o as le, g as Pe, h as Fe, s as P, a as oe } from "./types-ibC3-e1N.mjs";
6
7
  const Ne = { class: "flex flex-col gap-4" }, Be = { class: "flex flex-col gap-2" }, je = {
7
8
  key: 0,
8
9
  class: "text-red-500 text-sm mt-1"
@@ -348,7 +349,7 @@ const Ne = { class: "flex flex-col gap-4" }, Be = { class: "flex flex-col gap-2"
348
349
  onClick: U
349
350
  }, {
350
351
  default: l(() => [
351
- e(o(we), { class: "size-4" }),
352
+ e(o(Ce), { class: "size-4" }),
352
353
  t[2] || (t[2] = C(" Add ", -1))
353
354
  ]),
354
355
  _: 1
@@ -394,7 +395,7 @@ const Ne = { class: "flex flex-col gap-4" }, Be = { class: "flex flex-col gap-2"
394
395
  disabled: O === 0
395
396
  }, {
396
397
  default: l(() => [
397
- e(o(ke), { class: "size-4" })
398
+ e(o(Se), { class: "size-4" })
398
399
  ]),
399
400
  _: 1
400
401
  }, 8, ["onClick", "disabled"]),
@@ -405,7 +406,7 @@ const Ne = { class: "flex flex-col gap-4" }, Be = { class: "flex flex-col gap-2"
405
406
  disabled: O === y.value.length - 1
406
407
  }, {
407
408
  default: l(() => [
408
- e(o($e), { class: "size-4" })
409
+ e(o(we), { class: "size-4" })
409
410
  ]),
410
411
  _: 1
411
412
  }, 8, ["onClick", "disabled"]),
@@ -415,7 +416,7 @@ const Ne = { class: "flex flex-col gap-4" }, Be = { class: "flex flex-col gap-2"
415
416
  onClick: (k) => F(r)
416
417
  }, {
417
418
  default: l(() => [
418
- e(o(ze), { class: "size-4" })
419
+ e(o(ke), { class: "size-4" })
419
420
  ]),
420
421
  _: 1
421
422
  }, 8, ["onClick"]),
@@ -435,10 +436,10 @@ const Ne = { class: "flex flex-col gap-4" }, Be = { class: "flex flex-col gap-2"
435
436
  onClick: (k) => D(r.id)
436
437
  }, {
437
438
  default: l(() => [
438
- p.value.includes(r.id) ? (i(), w(o(Ve), {
439
+ p.value.includes(r.id) ? (i(), w(o($e), {
439
440
  key: 0,
440
441
  class: "size-4"
441
- })) : (i(), w(o(Ie), {
442
+ })) : (i(), w(o(ze), {
442
443
  key: 1,
443
444
  class: "size-4"
444
445
  }))
@@ -636,7 +637,7 @@ const Ne = { class: "flex flex-col gap-4" }, Be = { class: "flex flex-col gap-2"
636
637
  }, Nt = { class: "flex flex-col @3xl:flex-row gap-4 max-w-5xl mx-auto pb-24" }, Bt = { class: "flex flex-col gap-4 w-full @3xl:w-2/3" }, jt = { class: "flex flex-col gap-4 w-full @3xl:w-1/3" }, Lt = {
637
638
  key: 0,
638
639
  class: "fixed bottom-4 left-0 md:left-12 right-0 min-w-xs max-w-5xl w-[calc(100%-2rem)] md:w-[calc(100%-5rem)] xl:w-[calc(100%-2rem)] h-16 border border-white/10 backdrop-blur-sm border-t border-border flex items-center justify-center px-4 mx-auto z-[9999] rounded-xl overflow-hidden shadow bg-[radial-gradient(#ffffff80,transparent)] dark:bg-[radial-gradient(#00000080,transparent)]"
639
- }, Et = { class: "w-full max-w-5xl flex items-center justify-end mx-auto" }, Xt = /* @__PURE__ */ H({
640
+ }, Et = { class: "w-full max-w-5xl flex items-center justify-end mx-auto" }, Ht = /* @__PURE__ */ H({
640
641
  __name: "Detail",
641
642
  props: {
642
643
  config: {
@@ -645,26 +646,26 @@ const Ne = { class: "flex flex-col gap-4" }, Be = { class: "flex flex-col gap-2"
645
646
  }
646
647
  },
647
648
  setup(J) {
648
- const z = J, { hasPermission: b, hasAnyPermission: $ } = De(), { params: p, navigateTo: y } = Me(), { confirm: V } = Ae(), I = Pe(z.config.project);
649
+ const z = J, { hasPermission: b, hasAnyPermission: $ } = Te(), { params: p, navigateTo: y } = Ue(), { confirm: V } = De(), I = Me(z.config.project);
649
650
  ee("sources", z.config.allowedMediaSources), ee("defaultSource", z.config.defaultUploadMediaSource);
650
- const T = ie(() => !p.value.collectionId || p.value.collectionId === "new"), f = ae(!1), m = te({
651
+ const T = ie(() => !p.value.collectionId || p.value.collectionId === "new"), f = ae(!1), m = le({
651
652
  field: P(),
652
- operator: he(["==", "!=", "<", ">", "<=", ">=", "in", "not-in", "array-contains", "array-contains-any"]),
653
- value: ye()
654
- }), U = te({
653
+ operator: Fe(["==", "!=", "<", ">", "<=", ">=", "in", "not-in", "array-contains", "array-contains-any"]),
654
+ value: Pe()
655
+ }), U = le({
655
656
  title: P().min(1, "Title is required"),
656
657
  type: P(),
657
658
  description: P().optional(),
658
659
  thumbnail: P().optional(),
659
660
  slug: P(),
660
- conditions: le(m).optional(),
661
+ conditions: oe(m).optional(),
661
662
  status: P()
662
663
  }), F = U.extend({
663
664
  id: P().min(1, "ID is required")
664
- }), B = Ce(U.extend({
665
+ }), B = ye(U.extend({
665
666
  id: P().optional(),
666
- subcollections: le(F).optional()
667
- })), { handleSubmit: j, values: D, setValues: G } = Se({
667
+ subcollections: oe(F).optional()
668
+ })), { handleSubmit: j, values: D, setValues: G } = he({
668
669
  validationSchema: B,
669
670
  initialValues: {
670
671
  status: "draft",
@@ -672,7 +673,7 @@ const Ne = { class: "flex flex-col gap-4" }, Be = { class: "flex flex-col gap-2"
672
673
  subcollections: []
673
674
  }
674
675
  });
675
- Fe(() => [
676
+ Ae(() => [
676
677
  { text: T.value ? "New Collection" : D.title || "Collection" }
677
678
  ]);
678
679
  const E = j(async (s) => {
@@ -748,11 +749,11 @@ const Ne = { class: "flex flex-col gap-4" }, Be = { class: "flex flex-col gap-2"
748
749
  onClick: d[0] || (d[0] = (Z) => o(y)(""))
749
750
  }, {
750
751
  default: l(() => [
751
- e(o(Te), { class: "size-4" })
752
+ e(o(Ve), { class: "size-4" })
752
753
  ]),
753
754
  _: 1
754
755
  }),
755
- e(o(Ue), { class: "size-3" }),
756
+ e(o(Ie), { class: "size-3" }),
756
757
  n("h1", At, A(T.value ? "New Collection" : o(D).title), 1),
757
758
  o(D).status === "published" ? (i(), x("span", Pt, "Published")) : o(D).status === "draft" ? (i(), x("span", Ft, "Draft")) : h("", !0)
758
759
  ]),
@@ -820,7 +821,7 @@ const Ne = { class: "flex flex-col gap-4" }, Be = { class: "flex flex-col gap-2"
820
821
  disabled: f.value
821
822
  }, {
822
823
  default: l(() => [
823
- f.value ? (i(), w(o(oe), {
824
+ f.value ? (i(), w(o(te), {
824
825
  key: 0,
825
826
  class: "size-4 animate-spin"
826
827
  })) : h("", !0),
@@ -833,7 +834,7 @@ const Ne = { class: "flex flex-col gap-4" }, Be = { class: "flex flex-col gap-2"
833
834
  disabled: f.value
834
835
  }, {
835
836
  default: l(() => [
836
- f.value ? (i(), w(o(oe), {
837
+ f.value ? (i(), w(o(te), {
837
838
  key: 0,
838
839
  class: "size-4 animate-spin"
839
840
  })) : h("", !0),
@@ -848,5 +849,5 @@ const Ne = { class: "flex flex-col gap-4" }, Be = { class: "flex flex-col gap-2"
848
849
  }
849
850
  });
850
851
  export {
851
- Xt as default
852
+ Ht as default
852
853
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),B=require("./vee-validate-zod-BQElPD0m.js"),I=require("lucide-vue-next"),rt=require("@formkit/drag-and-drop"),W=require("@oneclick.dev/cms-kit"),It=require("./google-D4N3gb01.js"),q=require("./index-ijdf0d9-.js"),_=require("./types-BMraG1kN.js"),$t={class:"flex flex-col gap-4"},Ft={class:"flex flex-col"},Mt={key:0,class:"text-red-500 text-sm mt-1"},At={class:"flex flex-col gap-4"},Rt={class:"flex flex-col"},zt={key:0,class:"text-red-500 text-sm mt-1"},Ot={class:"flex flex-col gap-4"},Lt={class:"flex flex-col"},Ut={key:0,class:"text-red-500 text-sm mt-1"},jt=e.defineComponent({__name:"Main",setup(t){const o=e.inject("sources"),n=e.inject("defaultSource"),{errors:r}=B.useFormContext(),{value:l}=B.useField("title"),{value:s}=B.useField("description"),{value:i}=B.useField("media");return(d,a)=>{const v=e.resolveComponent("Label"),p=e.resolveComponent("Input"),u=e.resolveComponent("Textarea"),V=e.resolveComponent("MediaPicker"),x=e.resolveComponent("CardContent"),y=e.resolveComponent("Card");return e.openBlock(),e.createBlock(y,null,{default:e.withCtx(()=>[e.createVNode(x,{class:"flex flex-col gap-4"},{default:e.withCtx(()=>[e.createElementVNode("div",$t,[e.createElementVNode("div",Ft,[e.createVNode(v,{for:"title",class:"text-sm mb-2"},{default:e.withCtx(()=>[...a[3]||(a[3]=[e.createTextVNode("Title",-1)])]),_:1}),e.createVNode(p,{type:"text",id:"title",placeholder:"T-shirt with red heart",modelValue:e.unref(l),"onUpdate:modelValue":a[0]||(a[0]=D=>e.isRef(l)?l.value=D:null)},null,8,["modelValue"]),e.unref(r).title?(e.openBlock(),e.createElementBlock("p",Mt,e.toDisplayString(e.unref(r).title),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",At,[e.createElementVNode("div",Rt,[e.createVNode(v,{for:"description",class:"text-sm mb-2"},{default:e.withCtx(()=>[...a[4]||(a[4]=[e.createTextVNode("Description",-1)])]),_:1}),e.createVNode(u,{id:"description",placeholder:"Lovely T-shirt featuring a red heart",modelValue:e.unref(s),"onUpdate:modelValue":a[1]||(a[1]=D=>e.isRef(s)?s.value=D:null)},null,8,["modelValue"]),e.unref(r).description?(e.openBlock(),e.createElementBlock("p",zt,e.toDisplayString(e.unref(r).description),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Ot,[e.createElementVNode("div",Lt,[e.createVNode(v,{for:"media",class:"text-sm mb-2"},{default:e.withCtx(()=>[...a[5]||(a[5]=[e.createTextVNode("Media",-1)])]),_:1}),e.createVNode(V,{id:"media",modelValue:e.unref(i),"onUpdate:modelValue":a[2]||(a[2]=D=>e.isRef(i)?i.value=D:null),sources:e.unref(o),defaultSource:e.unref(n)},null,8,["modelValue","sources","defaultSource"]),e.unref(r).media?(e.openBlock(),e.createElementBlock("p",Ut,e.toDisplayString(e.unref(r).media),1)):e.createCommentVNode("",!0)])])]),_:1})]),_:1})}}}),Ht={class:"grid grid-cols-2 gap-4 mb-4"},Xt={class:"relative"},Kt={key:0,class:"text-red-500 text-sm mt-1"},Yt={class:"relative"},qt={class:"absolute right-2 top-1/2 -translate-y-1/2"},Gt={key:0,class:"text-red-500 text-sm mt-1"},Jt={class:"flex items-center gap-2 mb-4"},Wt={class:"flex items-center border-t mt-4 pt-4"},Zt={class:"relative"},Qt={key:0,class:"text-red-500 text-sm mt-1"},eo=e.defineComponent({__name:"Price",setup(t){const{errors:o}=B.useFormContext(),{value:n}=B.useField("price"),{value:r}=B.useField("compareAtPrice"),{value:l}=B.useField("isTaxable"),{value:s}=B.useField("costPerItem");return e.computed(()=>Number(n.value)>0),(i,d)=>{const a=e.resolveComponent("Label"),v=e.resolveComponent("Input"),p=e.resolveComponent("TooltipTrigger"),u=e.resolveComponent("TooltipContent"),V=e.resolveComponent("Tooltip"),x=e.resolveComponent("Checkbox"),y=e.resolveComponent("CardContent"),D=e.resolveComponent("Card");return e.openBlock(),e.createBlock(D,null,{default:e.withCtx(()=>[e.createVNode(y,null,{default:e.withCtx(()=>[d[12]||(d[12]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Pricing",-1)),e.createElementVNode("div",Ht,[e.createElementVNode("div",null,[e.createVNode(a,{for:"price",class:"text-sm mb-2"},{default:e.withCtx(()=>[...d[4]||(d[4]=[e.createTextVNode("Price",-1)])]),_:1}),e.createElementVNode("div",Xt,[e.createVNode(v,{type:"number",id:"price",class:"pl-10 no-spinner",modelValue:e.unref(n),"onUpdate:modelValue":d[0]||(d[0]=S=>e.isRef(n)?n.value=S:null)},null,8,["modelValue"]),d[5]||(d[5]=e.createElementVNode("span",{class:"absolute left-4 top-1/2 -translate-y-1/2 text-muted-foreground pointer-events-none"},"€",-1))]),e.unref(o).price?(e.openBlock(),e.createElementBlock("p",Kt,e.toDisplayString(e.unref(o).price),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",null,[e.createVNode(a,{for:"compare-at-price",class:"text-sm mb-2"},{default:e.withCtx(()=>[...d[6]||(d[6]=[e.createTextVNode("Compare-at price",-1)])]),_:1}),e.createElementVNode("div",Yt,[e.createVNode(v,{type:"number",id:"compare-at-price",class:"pl-10 no-spinner",modelValue:e.unref(r),"onUpdate:modelValue":d[1]||(d[1]=S=>e.isRef(r)?r.value=S:null)},null,8,["modelValue"]),d[8]||(d[8]=e.createElementVNode("span",{class:"absolute left-4 top-1/2 -translate-y-1/2 text-muted-foreground pointer-events-none"},"€",-1)),e.createVNode(V,null,{default:e.withCtx(()=>[e.createVNode(p,{"as-child":""},{default:e.withCtx(()=>[e.createElementVNode("button",qt,[e.createVNode(e.unref(I.Info),{class:"size-4 text-muted-foreground"})])]),_:1}),e.createVNode(u,null,{default:e.withCtx(()=>[...d[7]||(d[7]=[e.createElementVNode("p",null,[e.createTextVNode(" To display a markdown, enter a value higher than your price."),e.createElementVNode("br"),e.createTextVNode(" Often shown with a strikethrough (e.g. "),e.createElementVNode("span",{class:"font-semibold line-through"},"€25,00"),e.createTextVNode("). ")],-1)])]),_:1})]),_:1})]),e.unref(o).compareAtPrice?(e.openBlock(),e.createElementBlock("p",Gt,e.toDisplayString(e.unref(o).compareAtPrice),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Jt,[e.createVNode(x,{id:"charge-tax",modelValue:e.unref(l),"onUpdate:modelValue":d[2]||(d[2]=S=>e.isRef(l)?l.value=S:null)},null,8,["modelValue"]),e.createVNode(a,{for:"charge-tax",class:"text-sm"},{default:e.withCtx(()=>[...d[9]||(d[9]=[e.createTextVNode("Charge tax on this product",-1)])]),_:1})]),e.createElementVNode("div",Wt,[e.createElementVNode("div",null,[e.createVNode(a,{for:"cost-per-item",class:"text-sm mb-2"},{default:e.withCtx(()=>[...d[10]||(d[10]=[e.createTextVNode("Cost per item",-1)])]),_:1}),e.createElementVNode("div",Zt,[e.createVNode(v,{type:"number",id:"cost-per-item",class:"pl-10 no-spinner",modelValue:e.unref(s),"onUpdate:modelValue":d[3]||(d[3]=S=>e.isRef(s)?s.value=S:null)},null,8,["modelValue"]),d[11]||(d[11]=e.createElementVNode("span",{class:"absolute left-4 top-1/2 -translate-y-1/2 text-muted-foreground pointer-events-none"},"€",-1))]),e.unref(o).costPerItem?(e.openBlock(),e.createElementBlock("p",Qt,e.toDisplayString(e.unref(o).costPerItem),1)):e.createCommentVNode("",!0)])])]),_:1})]),_:1})}}}),to={class:"grid grid-cols-2 gap-4 mb-4"},oo={class:"flex items-center gap-2 mb-4"},no={key:0,class:"grid grid-cols-2 gap-4 mb-4"},ro={class:"flex items-center gap-2"},lo=e.defineComponent({__name:"Inventory",setup(t){const{errors:o}=B.useFormContext(),{value:n}=B.useField("sku"),{value:r}=B.useField("barcode"),{value:l}=B.useField("trackInventory"),{value:s}=B.useField("allowBackorder"),{value:i}=B.useField("stock"),{value:d}=B.useField("options"),{value:a}=B.useField("variants"),v=e.computed(()=>a.value.reduce((p,u)=>u.stock<0?p:p+u.stock,0));return(p,u)=>{const V=e.resolveComponent("Label"),x=e.resolveComponent("Input"),y=e.resolveComponent("Checkbox"),D=e.resolveComponent("TooltipTrigger"),S=e.resolveComponent("TooltipContent"),E=e.resolveComponent("Tooltip"),h=e.resolveComponent("CardContent"),C=e.resolveComponent("Card");return e.openBlock(),e.createBlock(C,null,{default:e.withCtx(()=>[e.createVNode(h,null,{default:e.withCtx(()=>[u[12]||(u[12]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Inventory",-1)),e.createElementVNode("div",to,[e.createElementVNode("div",null,[e.createVNode(V,{for:"sku",class:"text-sm mb-2"},{default:e.withCtx(()=>[...u[6]||(u[6]=[e.createTextVNode("SKU (Stock Keeping Unit)",-1)])]),_:1}),e.createVNode(x,{id:"sku",modelValue:e.unref(n),"onUpdate:modelValue":u[0]||(u[0]=P=>e.isRef(n)?n.value=P:null)},null,8,["modelValue"])]),e.createElementVNode("div",null,[e.createVNode(V,{for:"barcode",class:"text-sm mb-2"},{default:e.withCtx(()=>[...u[7]||(u[7]=[e.createTextVNode("Barcode (ISBN, UPC, GTIN, etc.)",-1)])]),_:1}),e.createVNode(x,{id:"barcode",modelValue:e.unref(r),"onUpdate:modelValue":u[1]||(u[1]=P=>e.isRef(r)?r.value=P:null)},null,8,["modelValue"])])]),e.createElementVNode("div",oo,[e.createVNode(y,{id:"track-quantity",modelValue:e.unref(l),"onUpdate:modelValue":u[2]||(u[2]=P=>e.isRef(l)?l.value=P:null)},null,8,["modelValue"]),e.createVNode(V,{for:"track-quantity",class:"text-sm"},{default:e.withCtx(()=>[...u[8]||(u[8]=[e.createTextVNode("Track quantity",-1)])]),_:1})]),e.unref(l)?(e.openBlock(),e.createElementBlock("div",no,[e.createElementVNode("div",null,[e.createVNode(V,{for:"stock",class:"text-sm mb-2"},{default:e.withCtx(()=>[...u[9]||(u[9]=[e.createTextVNode("Stock",-1)])]),_:1}),!e.unref(d)||e.unref(d)?.length===0?(e.openBlock(),e.createBlock(x,{key:0,id:"stock",type:"number",modelValue:e.unref(i),"onUpdate:modelValue":u[3]||(u[3]=P=>e.isRef(i)?i.value=P:null),class:"no-spinner"},null,8,["modelValue"])):(e.openBlock(),e.createBlock(E,{key:1},{default:e.withCtx(()=>[e.createVNode(D,{class:"cursor-not-allowed"},{default:e.withCtx(()=>[e.createVNode(x,{modelValue:v.value,"onUpdate:modelValue":u[4]||(u[4]=P=>v.value=P),disabled:"",class:"no-spinner"},null,8,["modelValue"])]),_:1}),e.createVNode(S,null,{default:e.withCtx(()=>[...u[10]||(u[10]=[e.createElementVNode("p",null,"Total stock of all variants",-1)])]),_:1})]),_:1}))])])):e.createCommentVNode("",!0),e.createElementVNode("div",ro,[e.createVNode(y,{id:"continue-selling",modelValue:e.unref(s),"onUpdate:modelValue":u[5]||(u[5]=P=>e.isRef(s)?s.value=P:null)},null,8,["modelValue"]),e.createVNode(V,{for:"continue-selling",class:"text-sm"},{default:e.withCtx(()=>[...u[11]||(u[11]=[e.createTextVNode("Continue selling when out of stock",-1)])]),_:1})])]),_:1})]),_:1})}}}),ao={class:"flex items-center gap-2 mb-4"},so={key:0,class:"grid grid-cols-2 gap-4 mb-4"},io=e.defineComponent({__name:"Shipping",setup(t){const{errors:o}=B.useFormContext(),{value:n}=B.useField("isPhysicalProduct"),{value:r}=B.useField("weight"),{value:l}=B.useField("weightUnit");return(s,i)=>{const d=e.resolveComponent("Checkbox"),a=e.resolveComponent("Label"),v=e.resolveComponent("Input"),p=e.resolveComponent("SelectValue"),u=e.resolveComponent("SelectTrigger"),V=e.resolveComponent("SelectItem"),x=e.resolveComponent("SelectGroup"),y=e.resolveComponent("SelectContent"),D=e.resolveComponent("Select"),S=e.resolveComponent("CardContent"),E=e.resolveComponent("Card");return e.openBlock(),e.createBlock(E,null,{default:e.withCtx(()=>[e.createVNode(S,null,{default:e.withCtx(()=>[i[10]||(i[10]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Shipping",-1)),e.createElementVNode("div",ao,[e.createVNode(d,{id:"is-physical-product",modelValue:e.unref(n),"onUpdate:modelValue":i[0]||(i[0]=h=>e.isRef(n)?n.value=h:null)},null,8,["modelValue"]),e.createVNode(a,{for:"is-physical-product",class:"text-sm"},{default:e.withCtx(()=>[...i[3]||(i[3]=[e.createTextVNode("This is a physical product",-1)])]),_:1})]),e.unref(n)?(e.openBlock(),e.createElementBlock("div",so,[e.createElementVNode("div",null,[e.createVNode(a,{for:"weight",class:"text-sm mb-2"},{default:e.withCtx(()=>[...i[4]||(i[4]=[e.createTextVNode("Weight",-1)])]),_:1}),e.createVNode(v,{id:"weight",type:"number",modelValue:e.unref(r),"onUpdate:modelValue":i[1]||(i[1]=h=>e.isRef(r)?r.value=h:null),class:"no-spinner"},null,8,["modelValue"])]),e.createElementVNode("div",null,[e.createVNode(a,{for:"weight-unit",class:"text-sm mb-2"},{default:e.withCtx(()=>[...i[5]||(i[5]=[e.createTextVNode("Weight unit",-1)])]),_:1}),e.createVNode(D,{modelValue:e.unref(l),"onUpdate:modelValue":i[2]||(i[2]=h=>e.isRef(l)?l.value=h:null)},{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(p,{placeholder:"Select unit"})]),_:1}),e.createVNode(y,null,{default:e.withCtx(()=>[e.createVNode(x,null,{default:e.withCtx(()=>[e.createVNode(V,{value:"lb"},{default:e.withCtx(()=>[...i[6]||(i[6]=[e.createTextVNode(" lb ",-1)])]),_:1}),e.createVNode(V,{value:"oz"},{default:e.withCtx(()=>[...i[7]||(i[7]=[e.createTextVNode(" oz ",-1)])]),_:1}),e.createVNode(V,{value:"kg"},{default:e.withCtx(()=>[...i[8]||(i[8]=[e.createTextVNode(" kg ",-1)])]),_:1}),e.createVNode(V,{value:"g"},{default:e.withCtx(()=>[...i[9]||(i[9]=[e.createTextVNode(" g ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])])])):e.createCommentVNode("",!0)]),_:1})]),_:1})}}});function O(t){t.preventDefault()}function ee(t){t.stopPropagation()}function lt(){const t=new Map;return[function(r,l){t.get(r)&&t.get(r).forEach(s=>{s(l)})},function(r,l){const s=t.get(r)??[];s.push(l),t.set(r,s)}]}var[at,st]=lt();function co(t,o){return t.source===o.source&&t.flags.split("").sort().join("")===o.flags.split("").sort().join("")}function ge(t,o,n=!0,r=["__key"]){if(t===o)return!0;if(typeof o=="object"&&typeof t=="object"&&t!==null&&o!==null){if(t instanceof Map||t instanceof Set)return!1;if(t instanceof Date&&o instanceof Date)return t.getTime()===o.getTime();if(t instanceof RegExp&&o instanceof RegExp)return co(t,o);if(t===null||o===null)return!1;const l=t,s=o;if(Object.keys(l).length!==Object.keys(s).length)return!1;for(const i of r)if((i in l||i in s)&&l[i]!==s[i])return!1;for(const i in l)if(!(i in s)||l[i]!==s[i]&&!n||n&&!ge(l[i],s[i],n,r))return!1;return!0}return!1}function it(t){return t.split(" ").filter(o=>o)}function pe(t){return{x:t.clientX,y:t.clientY}}Array();var Ue=typeof window<"u",z=new WeakMap,G=new WeakMap;function dt(){if(!Ue)return!1;if("userAgentData"in navigator)return navigator.userAgentData.mobile===!0;const t=navigator.userAgent,o=/android|iphone|ipod/i.test(t),n=/iPad/.test(t)||t.includes("Macintosh")&&navigator.maxTouchPoints>1;return o||n}var uo={affectedNodes:[],coordinates:{x:0,y:0},currentTargetValue:void 0,on:st,emit:at,originalZIndex:void 0,pointerSelection:!1,preventEnter:!1,rootUserSelect:void 0,nodePointerdown:void 0,longPress:!1,scrolling:!1,longPressTimeout:void 0,remapJustFinished:!1,selectedNodes:[],selectedParent:void 0,preventSynthDrag:!1,pointerDown:void 0,lastScrollContainerX:null,lastScrollContainerY:null,rootScrollWidth:void 0,rootScrollHeight:void 0,dragItemRect:void 0,windowScrollX:void 0,windowScrollY:void 0,lastScrollDirectionX:void 0,lastScrollDirectionY:void 0,scrollDebounceTimeout:void 0,frameIdX:void 0,frameIdY:void 0},m=uo,Q=!1,Qe,ze;function po(){m.scrollDebounceTimeout&&clearTimeout(m.scrollDebounceTimeout),m.longPressTimeout&&clearTimeout(m.longPressTimeout),m.frameIdX!==void 0&&cancelAnimationFrame(m.frameIdX),m.frameIdY!==void 0&&cancelAnimationFrame(m.frameIdY),m={...{affectedNodes:[],coordinates:{x:0,y:0},on:st,emit:at,currentTargetValue:void 0,originalZIndex:void 0,pointerId:void 0,preventEnter:!1,remapJustFinished:!1,selectedNodes:[],nodePointerdown:void 0,rootUserSelect:void 0,preventSynthDrag:!1,scrolling:!1,selectedParent:void 0,pointerSelection:!1,synthScrollDirection:void 0,draggedNodeDisplay:void 0,synthDragScrolling:!1,longPress:!1,pointerDown:void 0,longPressTimeout:void 0,lastScrollContainerX:null,lastScrollContainerY:null,rootScrollWidth:void 0,rootScrollHeight:void 0,dragItemRect:void 0,windowScrollX:void 0,windowScrollY:void 0,lastScrollDirectionX:void 0,lastScrollDirectionY:void 0,scrollDebounceTimeout:void 0,frameIdX:void 0,frameIdY:void 0}}}function ct(t){return Object.assign(m,t),t.initialParent.data.emit("dragStarted",m),Q=!1,m.emit("dragStarted",m),m}function mo(){m.activeState&&le(m.activeState.parent,void 0,m),m.selectedState&&re(m.selectedState.nodes,m.selectedState.parent,m),m.selectedState=m.activeState=void 0}function fo(){if(m.pointerDown&&(m.pointerDown.node.el.draggable=!0),m.pointerDown=void 0,!H(m))return;const t=m.currentParent.data.config;H(m)&&t.handleEnd(m)}function go(t){t.key==="Escape"&&(m.selectedState&&re(m.selectedState.nodes,m.selectedState.parent,m),m.activeState&&le(m.activeState.parent,void 0,m),m.selectedState=m.activeState=void 0)}function vo(t){if(!L(m))return;Q=!0;const o=m.initialParent.data.config.handleEnd;o(m)}function Vo(t){if(!L(m))return;O(t);const{x:o,y:n}=pe(t);L(m)&&ke({x:o,y:n},t,m)}function ho(t){if(!m.pointerDown||!m.pointerDown.validated)return;const o=m.pointerDown.parent.data.config;if(!(t.pointerType==="mouse"&&!dt()))if(H(m))H(m)&&et(t,m);else{if(O(t),o.longPress&&!m.longPress){clearTimeout(m.longPressTimeout),m.longPress=!1;return}const n=o.draggedNodes(m.pointerDown);o.dragstartClasses(m.pointerDown.node,n,o,!0);const r=m.pointerDown.node.el.getBoundingClientRect(),l=qo(m.pointerDown.node,m.pointerDown.parent,t,m,n,r);et(t,l,!0)}}function xo({parent:t,getValues:o,setValues:n,config:r={}}){if(!Ue)return;Qe||(Qe=ye(document,{dragover:Vo,pointerdown:mo,pointerup:fo,keydown:go,drop:vo,pointermove:ho,pointercancel:j(r.handlePointercancel),touchmove:a=>{L(m)&&a.cancelable&&O(a)},contextmenu:a=>{H(m)&&O(a)}})),_o(t);const[l,s]=lt(),i={getValues:o,setValues:n,config:{dragDropEffect:r.dragDropEffect??"move",dragEffectAllowed:r.dragEffectAllowed??"move",draggedNodes:Io,dragstartClasses:Ao,handleNodeKeydown:zo,handleDragstart:Fo,handleNodeDragover:Jo,handleParentDragover:Wo,handleNodeDrop:Lo,handleNodeFocus:Uo,handleNodeBlur:jo,handlePointercancel:Xo,handleEnd:Ko,handleDragend:Ho,handleParentFocus:No,handleNodePointerup:Yo,handleNodePointerover:Oo,handleParentPointerover:Zo,handleParentScroll:$o,handleNodePointerdown:Mo,handleNodeDragenter:en,handleNodeDragleave:tn,handleParentDrop:bo,multiDrag:r.multiDrag??!1,nativeDrag:r.nativeDrag??!0,performSort:Co,performTransfer:yo,root:r.root??document,setupNode:wo,setupNodeRemap:pt,reapplyDragClasses:Do,tearDownNode:Eo,tearDownNodeRemap:So,remapFinished:Bo,threshold:{horizontal:0,vertical:0},...r},enabledNodes:[],abortControllers:{},privateClasses:[],on:s,emit:l};new MutationObserver(To).observe(t,{childList:!0}),z.set(t,i),r.plugins?.forEach(a=>{a(t)?.tearDown?.()}),r.plugins?.forEach(a=>{a(t)?.tearDown?.()}),r.plugins?.forEach(a=>{a(t)?.setup?.()}),ko(t,i),be(t,!0)}function ut(t,o,n,r,l,s){const{x:i,y:d}=pe(n),a=t.el.getBoundingClientRect();return{affectedNodes:[],ascendingDirection:!1,clonedDraggedEls:[],coordinates:{x:i,y:d},draggedNode:{el:t.el,data:t.data},draggedNodes:r,incomingDirection:void 0,initialIndex:t.data.index,initialParent:{el:o.el,data:o.data},currentParent:{el:o.el,data:o.data},longPress:o.data.config.longPress??!1,longPressTimeout:void 0,currentTargetValue:t.data.value,scrollEls:[],startLeft:l||i-(a?.left??0),startTop:s||d-(a?.top??0),targetIndex:t.data.index,transferred:!1}}function Co({parent:t,draggedNodes:o,targetNodes:n}){be(t.el);const r=o.map(a=>a.data.value),l=ue(t.el,t.data),s=o[0].data.index,i=[...t.data.enabledNodes],d=[...l.filter(a=>!r.some(v=>ge(a,v)))];d.splice(n[0].data.index,0,...r),"draggedNode"in m&&(m.currentTargetValue=n[0].data.value),Oe(t.el,t.data,[...d]),t.data.config.onSort&&t.data.config.onSort({parent:{el:t.el,data:t.data},previousValues:[...l],previousNodes:[...i],nodes:[...t.data.enabledNodes],values:[...d],draggedNodes:o,previousPosition:s,position:n[0].data.index,targetNodes:n,state:m})}function le(t,o,n){if(!o){n.activeState=void 0;return}n.activeState={node:o,parent:t}}function re(t,o,n){const r=o.data.config.selectedClass;if(!n.selectedState)return;const l=Array.from(t);Z(t.map(s=>s.el),r);for(const s of l){s.el.setAttribute("aria-selected","false");const i=n.selectedState.nodes.findIndex(d=>d.el===s.el);i!==-1&&n.selectedState.nodes.splice(i,1)}}function Ce(t,o,n,r,l=!1){r.pointerSelection=l;for(const s of o)s.el.setAttribute("aria-selected","true"),ce([s.el],t.data.config.selectedClass,!0);r.selectedState={nodes:o,parent:t},le(t,n,r)}function No(t,o){const n=t.targetData.parent.data.enabledNodes[0];n&&(o.selectedState&&o.selectedState.parent.el!==t.targetData.parent.el?le(t.targetData.parent,n,o):o.selectedState||le(t.targetData.parent,n,o))}function yo({currentParent:t,targetParent:o,initialParent:n,draggedNodes:r,initialIndex:l,targetNodes:s,state:i}){be(n.el);const d=r.map(V=>V.data.value),a=[...ue(t.el,t.data).filter(V=>!d.some(x=>ge(V,x)))],v=ue(o.el,o.data),p=n.el===o.el&&o.data.config.sortable===!1;let u;s.length?(p?u=l:o.data.config.sortable===!1?u=o.data.enabledNodes.length:u=s[0].data.index,v.splice(u,0,...d)):(u=p?l:o.data.enabledNodes.length,v.splice(u,0,...d)),Oe(t.el,t.data,a),Oe(o.el,o.data,v),o.data.config.onTransfer&&o.data.config.onTransfer({sourceParent:t,targetParent:o,initialParent:n,draggedNodes:r,targetIndex:u,state:i,targetNodes:s}),t.data.config.onTransfer&&t.data.config.onTransfer({sourceParent:t,targetParent:o,initialParent:n,draggedNodes:r,targetIndex:u,state:i,targetNodes:s||[]})}function ue(t,o){return[...o.getValues(t)]}function Oe(t,o,n){o.setValues(n,t)}function bo(t,o){ee(t.e),Q=!0;const n=o.initialParent.data.config.handleEnd;n(o)}function _o(t){const o=z.get(t);o&&o.abortControllers.mainParent&&o.abortControllers.mainParent.abort()}function L(t){return"draggedNode"in t&&!!t.draggedNode}function H(t){return"synthDragging"in t&&!!t.synthDragging}function ko(t,o){o.abortControllers.mainParent=ye(t,{dragover:Ne(o.config.handleParentDragover),handleParentPointerover:o.config.handleParentPointerover,scroll:Ne(o.config.handleParentScroll),drop:Ne(o.config.handleParentDrop),hasNestedParent:n=>{const r=z.get(n.target);r&&(r.nestedParent=n.detail.parent)},focus:Ne(o.config.handleParentFocus)}),o.config.externalDragHandle&&o.config.externalDragHandle.el&&o.config.externalDragHandle.callback&&(o.abortControllers.externalDragHandle=ye(o.config.externalDragHandle.el,{pointerdown:n=>{if(!o.config.externalDragHandle||!o.config.externalDragHandle.callback)return;const r=o.config.externalDragHandle.callback();if(!we(r)){console.warn("No draggable item found from external drag handle callback");return}const l=G.get(r);if(!l)return;const s=r.parentNode;if(!(s instanceof HTMLElement))return;const i=z.get(s);i&&(m.pointerDown={parent:{el:s,data:i},node:{el:r,data:l},validated:!0},r.draggable=!0)}}))}function wo(t){const o=t.parent.data.config;t.node.data.abortControllers.mainNode=ye(t.node.el,{keydown:j(o.handleNodeKeydown),dragstart:j(o.handleDragstart),dragover:j(o.handleNodeDragover),dragenter:j(o.handleNodeDragenter),dragleave:j(o.handleNodeDragleave),dragend:j(o.handleDragend),drop:j(o.handleNodeDrop),focus:j(o.handleNodeFocus),blur:j(o.handleNodeBlur),pointerup:j(o.handleNodePointerup),pointercancel:j(o.handlePointercancel),pointerdown:j(o.handleNodePointerdown),handleNodePointerover:o.handleNodePointerover,touchmove:n=>{L(m)&&n.cancelable&&O(n)},contextmenu:n=>{H(m)&&O(n)}}),t.node.el.draggable=!0,o.reapplyDragClasses(t.node.el,t.parent.data),t.parent.data.config.plugins?.forEach(n=>{n(t.parent.el)?.setupNode?.(t)})}function pt(t){G.set(t.node.el,t.node.data),t.parent.data.config.plugins?.forEach(o=>{o(t.parent.el)?.setupNodeRemap?.(t)})}function Do(t,o){if(!L(m))return;const n=H(m)?o.config.synthDropZoneClass:o.config.dropZoneClass;m.draggedNode.el===t&&ce([t],n,!0)}function So(t){t.parent.data.config.plugins?.forEach(o=>{o(t.parent.el)?.tearDownNodeRemap?.(t)})}function Eo(t){t.parent.data.config.plugins?.forEach(o=>{o(t.parent.el)?.tearDownNode?.(t)}),t.node.el.draggable=!1,t.node.data?.abortControllers?.mainNode&&t.node.data?.abortControllers?.mainNode.abort()}function To(t){if(t.length===1&&t[0].addedNodes.length===1&&!(t[0].addedNodes[0]instanceof HTMLElement))return;const o=t[0].target;!(o instanceof HTMLElement)||!z.get(o)||be(o)}function be(t,o){const n=z.get(t);if(!n)return;n.privateClasses=Array.from(t.classList);const r=[],l=n.config;for(let d=0;d<t.children.length;d++){const a=t.children[d];if(!we(a)||a.id==="dnd-dragged-node-clone")continue;const v=G.get(a);(o||!v)&&l.tearDownNode({parent:{el:t,data:n},node:{el:a,data:v}}),!l.disabled&&(!l.draggable||l.draggable&&l.draggable(a))&&r.push(a)}if(r.length!==n.getValues(t).length&&!l.disabled){console.warn("The number of draggable items defined in the parent element does not match the number of values. This may cause unexpected behavior.");return}const s=n.getValues(t),i=[];for(let d=0;d<r.length;d++){const a=r[d],v=G.get(a);if(l.draggableValue&&!l.draggableValue(s[d]))continue;const p=Object.assign(v??{privateClasses:[],abortControllers:{}},{value:s[d],index:d});if(!L(m)&&m.activeState&&ge(m.activeState.node.data.value,p.value)&&le({data:n,el:t},{el:a,data:p},m),L(m)&&ge(m.draggedNode.data.value,p.value)){m.draggedNode.data=p,m.draggedNode.el=a;const u=m.draggedNodes.find(V=>V.data.value===p.value);u&&(u.el=a)}i.push({el:a,data:p}),(o||!v)&&l.setupNode({parent:{el:t,data:n},node:{el:a,data:p}}),pt({parent:{el:t,data:n},node:{el:a,data:p}})}z.set(t,{...n,enabledNodes:i}),l.remapFinished(n),n.config.plugins?.forEach(d=>{d(t)?.remapFinished?.()})}function Bo(){m.remapJustFinished=!0,"draggedNode"in m&&(m.affectedNodes=[])}function Po(t){return!!t.targetData.parent.data.config.nativeDrag}function Io(t){if(t.parent.data.config.multiDrag){if(m.selectedState)return[t.node,...m.selectedState?.nodes.filter(o=>o.el!==t.node.el)]}else return[t.node];return[]}function $o(t){L(m)&&(m.emit("scrollStarted",m),!H(m)&&(m.preventEnter=!0,ze&&clearTimeout(ze),ze=setTimeout(()=>{m.preventEnter=!1,m.emit("scrollEnded",m)},100)))}function Fo(t,o){const n=t.targetData.parent.data.config;if(!n.nativeDrag||!Po(t)||!mt({x:t.e.clientX,y:t.e.clientY,node:t.targetData.node,config:n})){O(t.e);return}let r=n.draggedNodes({parent:t.targetData.parent,node:t.targetData.node});r.length===0&&(r=[t.targetData.node]),n.dragstartClasses(t.targetData.node,r,n);const l=Ro(t,r);if(n.onDragstart){const s={parent:t.targetData.parent,values:ue(t.targetData.parent.el,t.targetData.parent.data),draggedNode:l.draggedNode,draggedNodes:l.draggedNodes,position:l.initialIndex,state:l};n.onDragstart(s)}}function Mo(t,o){if(ee(t.e),o.pointerDown={parent:t.targetData.parent,node:t.targetData.node,validated:!1},!mt({x:t.e.clientX,y:t.e.clientY,node:t.targetData.node,config:t.targetData.parent.data.config}))return;o.pointerDown.validated=!0,Go(t,o,t.targetData.node);const n=t.targetData.parent.data;let r=[t.targetData.node];const l=t.e.ctrlKey||t.e.metaKey,s=t.e.shiftKey,i=t.targetData.node;if(l&&n.config.multiDrag){o.selectedState?o.selectedState.nodes.findIndex(a=>a.el===i.el)===-1?r=[...o.selectedState.nodes,i]:r=o.selectedState.nodes.filter(a=>a.el!==i.el):r=[i],Ce(t.targetData.parent,r,t.targetData.node,o,!0);return}if(s&&n.config.multiDrag){const d=t.targetData.parent.data.enabledNodes;if(o.selectedState&&o.activeState)if(o.selectedState.parent.el!==t.targetData.parent.el){re(o.selectedState.nodes,o.selectedState.parent,o),o.selectedState=void 0;for(let a=0;a<=i.data.index;a++)r.push(d[a])}else{const[a,v]=o.activeState.node.data.index<t.targetData.node.data.index?[o.activeState.node.data.index,t.targetData.node.data.index]:[t.targetData.node.data.index,o.activeState.node.data.index];r=d.slice(a,v+1)}else for(let a=0;a<=i.data.index;a++)r.push(d[a]);Ce(t.targetData.parent,r,t.targetData.node,o,!0);return}o.selectedState?.nodes?.length?o.selectedState.nodes.findIndex(a=>a.el===t.targetData.node.el)===-1&&(o.selectedState.parent.el!==t.targetData.parent.el?re(o.selectedState.nodes,t.targetData.parent,o):n.config.multiDrag&&dt()?r.push(...o.selectedState.nodes):re(o.selectedState.nodes,t.targetData.parent,o),Ce(t.targetData.parent,r,t.targetData.node,o,!0)):Ce(t.targetData.parent,[t.targetData.node],t.targetData.node,o,!0)}function Ao(t,o,n,r=!1){ce(o.map(l=>l.el),r?n.synthDraggingClass:n.draggingClass),setTimeout(()=>{Z(o.map(l=>l.el),r?n.synthDraggingClass:n.draggingClass),ce(o.map(l=>l.el),r?n.synthDragPlaceholderClass:n.dragPlaceholderClass),ce(o.map(l=>l.el),r?n.synthDropZoneClass:n.dropZoneClass),Z(o.map(l=>l.el),n.selectedClass)})}function Ro(t,o){ee(t.e);const n=ct(ut(t.targetData.node,t.targetData.parent,t.e,o));if(t.e.dataTransfer){const r=t.targetData.parent.data.config;t.e.dataTransfer.dropEffect=r.dragDropEffect,t.e.dataTransfer.effectAllowed=r.dragEffectAllowed;let l;if(t.e.dataTransfer.setData("text/plain",""),r.dragImage)l=r.dragImage(t,o);else{if(!r.multiDrag||o.length===1)return t.targetData.node.el.style.zIndex="9999",t.targetData.node.el.style.boxSizing="border-box",t.e.dataTransfer.setDragImage(t.targetData.node.el,t.e.offsetX,t.e.offsetY),n.originalZIndex=t.targetData.node.el.style.zIndex,n;{const s=document.createElement("div");s.setAttribute("id","dnd-dragged-node-clone"),s.setAttribute("popover","manual");for(const d of o){const a=d.el.cloneNode(!0);a.id=d.el.id+"-clone",a.style.pointerEvents="none",s.appendChild(a)}const{width:i}=o[0].el.getBoundingClientRect();Object.assign(s.style,{display:"flex",flexDirection:"column",width:`${i}px`,position:"absolute",pointerEvents:"none",zIndex:"9999",left:"-9999px",boxSizing:"border-box",background:"transparent",overflow:"hidden"}),t.targetData.parent.el.appendChild(s),s.showPopover(),s.getBoundingClientRect(),l=s,t.e.dataTransfer.setDragImage(l,t.e.offsetX,t.e.offsetY)}}setTimeout(()=>{l?.remove()})}return n}function mt({x:t,y:o,node:n,config:r}){if(r.externalDragHandle)return!1;if(!r.dragHandle)return!0;const l=n.el.querySelectorAll(r.dragHandle);if(!l)return!1;const s=r.root.elementFromPoint(t,o);if(!s)return!1;for(const i of Array.from(l))if(s===i||i.contains(s))return!0;return!1}function zo(t){}function Oo(t){t.detail.targetData.parent.el===t.detail.state.currentParent.el?gt(t.detail,t.detail.state):_e(t.detail,t.detail.state)}function Lo(t,o){const n=t.targetData.parent.data.config;n.nativeDrag&&(ee(t.e),Q=!0,n.handleEnd(o))}function Uo(t){t.e.target!==t.e.currentTarget&&m.pointerDown&&(m.pointerDown.node.el.draggable=!1)}function jo(t){t.e.target!==t.e.currentTarget&&m.pointerDown&&(m.pointerDown.node.el.draggable=!0)}function Ho(t,o){const n=t.targetData.parent.data.config;if(n.nativeDrag){if(O(t.e),ee(t.e),Q){Q=!1;return}n.handleEnd(o)}}function Xo(t,o){if(!H(o))return;if(O(t.e),Q){Q=!1;return}const n=z.get(o.initialParent.el)?.config;n?.onDragend&&n.onDragend({parent:o.currentParent,values:ue(o.currentParent.el,o.currentParent.data),draggedNode:o.draggedNode,draggedNodes:o.draggedNodes,state:o}),n?.handleEnd(o)}function Ko(t){t.draggedNode&&(t.draggedNode.el.draggable=!0);const o=t.draggedNodes.map(p=>p.el),n=t.initialParent.data,r=H(t),l=z.get(t.initialParent.el)?.config,s=r?l?.synthDropZoneClass:l?.dropZoneClass,i=n?.config?.longPressClass,d=r?n?.config?.synthDragPlaceholderClass:n?.config?.dragPlaceholderClass,a=t.originalZIndex;H(t)&&(t.clonedDraggedNode&&t.clonedDraggedNode.remove(),t.longPressTimeout&&clearTimeout(t.longPressTimeout)),Le(t),t.lastScrollDirectionX=void 0,t.lastScrollDirectionY=void 0,t.preventEnter=!1,t.scrollDebounceTimeout&&(clearTimeout(t.scrollDebounceTimeout),t.scrollDebounceTimeout=void 0),a!==void 0&&t.draggedNode&&(t.draggedNode.el.style.zIndex=a),requestAnimationFrame(()=>{Z(o,s),Z(o,i),Z(o,d)}),re(t.draggedNodes,t.currentParent,t),le(t.currentParent,void 0,t);const v={...t};l?.onDragend?.({parent:v.currentParent,values:ue(v.currentParent.el,v.currentParent.data),draggedNode:v.draggedNode,draggedNodes:v.draggedNodes,state:v}),t.emit("dragEnded",v),po()}function Yo(t,o){ee(t.e),!o.pointerSelection&&o.selectedState&&re(o.selectedState.nodes,t.targetData.parent,o);const n=t.targetData.parent.data.config;o.pointerSelection=!1,"longPressTimeout"in o&&o.longPressTimeout&&clearTimeout(o.longPressTimeout),o.longPress=!1,Z(t.targetData.parent.data.enabledNodes.map(r=>r.el),n.longPressClass),L(o)&&n.handleEnd(o)}function qo(t,o,n,r,l,s){const i=o.data.config;let d,a;const v=["display","flexDirection","alignItems","justifyContent","padding","paddingTop","margin","marginTop","marginBottom","marginLeft","marginRight","paddingBottom","paddingLeft","paddingRight","border","borderRadius","background","backgroundColor","boxShadow","font","color","lineHeight","gap","width","height","boxSizing","overflow"],p=(y,D)=>{const S=window.getComputedStyle(y);v.forEach(E=>{D.style[E]=S[E]})},u=(y,D={})=>{Object.assign(y.style,{position:"absolute",zIndex:"9999",pointerEvents:"none",willChange:"transform",boxSizing:"border-box",opacity:"0",overflow:"hidden",width:`${s.width}px`,height:`${s.height}px`,...D})};if(i.synthDragImage)a=i.synthDragImage(t,o,n,l),d=a.dragImage,d.setAttribute("popover","manual"),u(d);else if(!i.multiDrag||l.length===1)d=t.el.cloneNode(!0),p(t.el,d),d.setAttribute("popover","manual"),u(d);else{const y=document.createElement("div");y.setAttribute("popover","manual"),l.forEach(D=>{const S=D.el.cloneNode(!0);p(D.el,S),S.style.pointerEvents="none",S.style.margin="0",y.append(S)}),y.style.display="flex",y.style.flexDirection="column",y.style.padding="0",y.style.margin="0",y.style.position="absolute",y.style.zIndex="9999",y.style.pointerEvents="none",d=y}d.id="dnd-dragged-node-clone",o.el.appendChild(d),d.showPopover();const V={clonedDraggedEls:[],clonedDraggedNode:d,synthDragScrolling:!1,synthDragging:!0,rootScrollWidth:document.scrollingElement?.scrollWidth,rootScrollHeight:document.scrollingElement?.scrollHeight};return ct({...ut(t,o,n,l,a?.offsetX,a?.offsetY),...V})}function Go(t,o,n){const r=t.targetData.parent.data.config;o.longPressTimeout=setTimeout(()=>{o&&(o.longPress=!0,r.longPressClass&&t.e.cancelable&&ce([n.el],r.longPressClass),O(t.e))},r.longPressDuration||1e3)}function Le(t,o=!0,n=!0){o&&(t.frameIdX!==void 0&&(cancelAnimationFrame(t.frameIdX),t.frameIdX=void 0),t.lastScrollDirectionX=void 0),n&&(t.frameIdY!==void 0&&(cancelAnimationFrame(t.frameIdY),t.frameIdY=void 0),t.lastScrollDirectionY=void 0),!t.frameIdX&&!t.frameIdY&&(t.preventEnter=!1)}function ft(t,o=!1){const{x:n,y:r}=t.coordinates,l=t.startLeft??0,s=t.startTop??0,i=window.scrollX??0,d=window.scrollY??0,a=n-l+i,v=r-s+d;t.clonedDraggedNode.style.transform=`translate3d(${a}px, ${v}px, 0px)`,o&&(t.clonedDraggedNode.style.opacity="1",Z(t.draggedNodes.map(p=>p.el),t.initialParent.data.config?.longPressClass))}function et(t,o,n=!1){const r=pe(t);o.coordinates.x=r.x,o.coordinates.y=r.y,ft(o,n),o.scrollDebounceTimeout&&(clearTimeout(o.scrollDebounceTimeout),o.scrollDebounceTimeout=void 0),o.scrollDebounceTimeout=setTimeout(()=>{H(o)&&ke(o.coordinates,t,o)},16);const l=ln(r);if(!l){document.dispatchEvent(new CustomEvent("handleRootPointerover",{detail:{e:t,state:o}}));return}const s={e:t,targetData:l,state:o};"node"in l?l.node.el.dispatchEvent(new CustomEvent("handleNodePointerover",{detail:s})):l.parent.el.dispatchEvent(new CustomEvent("handleParentPointerover",{detail:s}))}function Jo(t,o){if(!t.targetData.parent.data.config.nativeDrag)return;const{x:r,y:l}=pe(t.e);o.coordinates.y=l,o.coordinates.x=r,O(t.e),ee(t.e),L(o)&&ke({x:r,y:l},t.e,o),t.targetData.parent.el===o.currentParent?.el?gt(t,o):_e(t,o)}function Wo(t,o){if(!t.targetData.parent.data.config.nativeDrag)return;O(t.e),ee(t.e);const{x:r,y:l}=pe(t.e);L(o)&&ke({x:r,y:l},t.e,o),_e(t,o)}function Zo(t){t.detail.targetData.parent.el!==t.detail.state.currentParent.el&&_e(t.detail,t.detail.state)}function Qo({currentParent:t,targetParent:o,initialParent:n,draggedNodes:r,state:l}){if(o.el===t.el)return!1;const s=o.data.config;if(r[0].el.contains(o.el)||s.dropZone===!1)return!1;const i=n.data.config;return s.accepts?s.accepts(o,n,t,l):!(!s.group||s.group!==i.group)}function en(t,o){O(t.e)}function tn(t,o){O(t.e)}function on(t,o,n,r){if(o.affectedNodes.map(p=>p.data.value).includes(t.targetData.node.data.value))return!1;if(o.remapJustFinished)return o.remapJustFinished=!1,(t.targetData.node.data.value===o.currentTargetValue||o.draggedNodes.map(p=>p.el).includes(t.targetData.node.el))&&(o.currentTargetValue=t.targetData.node.data.value),!1;if(o.preventEnter)return!1;if(o.draggedNodes.map(p=>p.el).includes(t.targetData.node.el))return o.currentTargetValue=void 0,!1;if(t.targetData.node.data.value===o.currentTargetValue||t.targetData.parent.el!==o.currentParent?.el||t.targetData.parent.data.config.sortable===!1||t.targetData.node.el.contains(o.draggedNodes[0].el))return!1;const l=t.targetData.node.el.getBoundingClientRect(),s=o.draggedNode.el.getBoundingClientRect(),i=l.y-s.y,d=l.x-s.x;let a;Math.abs(i)>Math.abs(d)?a=i>0?"above":"below":a=d>0?"left":"right";const v=o.currentParent.data.config.threshold;switch(a){case"left":if(n>l.x+l.width*v.horizontal)return o.incomingDirection="left",!0;break;case"right":if(n<l.x+l.width*(1-v.horizontal))return o.incomingDirection="right",!0;break;case"above":if(r>l.y+l.height*v.vertical)return o.incomingDirection="above",!0;break;case"below":if(r<l.y+l.height*(1-v.vertical))return o.incomingDirection="below",!0;break}return!1}function gt(t,o){const{x:n,y:r}=pe(t.e);if(!on(t,o,n,r))return;const l=o.draggedNode.data.index>t.targetData.node.data.index?[t.targetData.node.data.index,o.draggedNode.data.index]:[o.draggedNode.data.index,t.targetData.node.data.index];o.targetIndex=t.targetData.node.data.index,o.affectedNodes=t.targetData.parent.data.enabledNodes.filter(s=>l[0]<=s.data.index&&s.data.index<=l[1]&&s.el!==o.draggedNode.el),t.targetData.parent.data.config.performSort({parent:t.targetData.parent,draggedNodes:o.draggedNodes,targetNodes:[t.targetData.node]})}function j(t){function o(n){const r=G.get(n);if(!r)return;const l=z.get(n.parentNode);if(l)return{node:{el:n,data:r},parent:{el:n.parentNode,data:l}}}return n=>{const r=o(n.currentTarget);if(r)return t({e:n,targetData:r},m)}}function _e(t,o){O(t.e),Qo({currentParent:o.currentParent,targetParent:t.targetData.parent,initialParent:o.initialParent,draggedNodes:o.draggedNodes,state:o})&&(t.targetData.parent.data.config.performTransfer({currentParent:o.currentParent,targetParent:t.targetData.parent,initialParent:o.initialParent,draggedNodes:o.draggedNodes,initialIndex:o.initialIndex,state:o,targetNodes:"node"in t.targetData?[t.targetData.node]:[]}),o.currentParent=t.targetData.parent,o.transferred=!0)}function Ne(t){function o(n){const r=z.get(n);if(r)return{parent:{el:n,data:r}}}return n=>{const r=o(n.currentTarget);if(r)return t({e:n,targetData:r},m)}}function ce(t,o,n=!1){function r(l,s){G.set(l,s)}for(const l of t){const s=G.get(l),i=nn(l,o,s,n);i&&r(l,i)}}function nn(t,o,n,r=!1){if(!o)return;const l=it(o);if(!l.length)return;if(!n){t.classList.add(...l);return}const s=[];for(const i of l)t.classList.contains(i)?t.classList.contains(i)&&r===!1&&s.push(i):t.classList.add(i);return n.privateClasses=s,n}function Z(t,o){if(!o)return;const n=it(o);if(n.length)for(const r of t){if(!we(r)){r.classList.remove(...n);continue}const l=G.get(r)||z.get(r);if(l)for(const s of n)l.privateClasses.includes(s)||r.classList.remove(s)}}function tt(t,o,n,r,l){const i=l.axis==="x",d=t===document.scrollingElement,a=i?"scrollLeft":"scrollTop",v=i?"clientWidth":"clientHeight",p=i?"offsetWidth":"offsetHeight",u=i?"scrollWidth":"scrollHeight",V=i?o.clientX:o.clientY,x=i?r.left:r.top,y=i?n.overflowX:n.overflowY;if(d){const D=t[a],S=t[v],E=D>0,h=D+S<(i?l.state.rootScrollWidth||0:t[u]);return i?{left:E&&V<S*.075,right:h&&V>S*(1-.075)}:{up:E&&V<S*.075,down:h&&V>S*(1-.075)}}if((y==="auto"||y==="scroll")&&t!==document.body&&t!==document.documentElement){const D=t[u],S=t[p],E=t[a],h=E>0,C=E<D-S;return i?{left:h&&V<x+S*.075,right:C&&V>x+S*(1-.075)}:{up:h&&V<x+S*.075,down:C&&V>x+S*(1-.075)}}return i?{left:!1,right:!1}:{up:!1,down:!1}}function rn(t,o,n,r){if(!L(n)||!n.draggedNode)return;n.preventEnter=!0;const l=r.axis==="x",s=r.direction==="positive"?1:-1,i=20,d=l?"lastScrollDirectionX":"lastScrollDirectionY",a=l?"frameIdX":"frameIdY";n[a]!==void 0&&(cancelAnimationFrame(n[a]),n[a]=void 0),n[d]=r.direction;const v=()=>{if(!L(n)||!n.draggedNode){n[a]!==void 0&&(cancelAnimationFrame(n[a]),n[a]=void 0);return}const p=l?"scrollLeft":"scrollTop",u=l?"clientWidth":"clientHeight",V=l?"scrollWidth":"scrollHeight",x=t[p],y=t[u],D=t[V];if(!(s>0?x+y<D:x>0)){n[a]=void 0,n[d]=void 0;return}t[p]+=i*s,H(n)&&ft(n),n[a]=requestAnimationFrame(v)};n[a]=requestAnimationFrame(v)}function ot(t,o,n){const r=t.getBoundingClientRect();return o>=r.left&&o<=r.right&&n>=r.top&&n<=r.bottom}function ke(t,o,n){if(!L(n)||!n.draggedNode)return;Le(n);const{x:r,y:l}=t;let s=!1;const i=(a,v,p)=>{rn(p,o,n,{axis:a,direction:v}),s=!0},d=a=>{const v=window.getComputedStyle(a),p=a.getBoundingClientRect(),u=tt(a,o,v,p,{axis:"x",state:n}),V=tt(a,o,v,p,{axis:"y"});(u.left||u.right)&&(n.lastScrollContainerX=a,i("x",u.right?"positive":"negative",a)),(V.up||V.down)&&(n.lastScrollContainerY=a,i("y",V.down?"positive":"negative",a))};if(n.lastScrollContainerX&&ot(n.lastScrollContainerX,r,l)&&d(n.lastScrollContainerX),!s&&n.lastScrollContainerY&&ot(n.lastScrollContainerY,r,l)&&d(n.lastScrollContainerY),!s){let a=document.elementFromPoint(r,l);for(;a&&!(s&&n.lastScrollContainerX&&n.lastScrollContainerY);)a instanceof HTMLElement&&d(a),a=a.parentElement}if(!s){const a=document.scrollingElement;a instanceof HTMLElement&&d(a)}s||Le(n)}function ln(t){let o=document.elementFromPoint(t.x,t.y);if(!we(o))return;let n,r=!0;for(;o&&r;){if(G.has(o)||z.has(o)){r=!1,n=z.has(o);break}o=o.parentNode}if(n){const l=z.get(o);return l?{parent:{el:o,data:l}}:void 0}else{const l=G.get(o);if(!l)return;const s=z.get(o.parentNode);return s?{node:{el:o,data:l},parent:{el:o.parentNode,data:s}}:void 0}}function we(t){return t instanceof HTMLElement&&t.parentNode instanceof HTMLElement}function ye(t,o){const n=new AbortController;for(const r in o){const l=o[r];t.addEventListener(r,l,{signal:n.signal,passive:!1,capture:r==="focus"||r==="blur"})}return n}function nt(t){if(t instanceof HTMLElement)return t;if(t.value instanceof HTMLElement)return t.value;if("$el"in t&&t.$el instanceof HTMLElement)return t.$el}function an(t,o){Array.isArray(t)||(t=[t]);for(const n of t){const r=nt(n);if(r)return o(r);const l=e.watch(n,s=>{if(!s)return;const i=nt(s);i?o(i):console.warn("Invalid parent element",s),l()})}}var je=new WeakMap;function sn(t){const o=je.get(t);return o?"value"in o?o.value:o:(console.warn("No values found for parent element"),[])}function dn(t,o){const n=je.get(o);n&&"value"in n&&(n.value=t)}function vt(t){Ue&&(Array.isArray(t)||(t=[t]),t.forEach(o=>{const{parent:n,values:r,...l}=o;an(n,cn(l,r))}))}function cn(t,o){return n=>{je.set(n,o),xo({parent:n,getValues:sn,setValues:dn,config:{...t}})}}const un={key:0,class:"flex gap-4 p-6 border-b last:border-b-0"},pn={class:"option-drag-handle flex-none mt-9.5 cursor-grab"},mn={class:"flex-1"},fn={class:"mb-3"},gn={class:"flex items-center"},vn={key:0,class:"mt-1 text-sm text-red-600"},Vn={class:"flex items-center gap-1"},hn={class:"mb-2"},xn={key:0,class:"option-value-drag-handle absolute -left-7 top-1/2 -translate-y-1/2 flex-none mr-2 cursor-grab"},Cn=["onClick"],Nn={class:"flex justify-between"},yn={class:"flex-1"},bn={class:"text-sm mb-2"},_n={class:"flex flex-wrap gap-2"},kn={key:0,class:"px-2 py-1 border rounded-full bg-muted text-muted-foreground text-sm"},wn=e.defineComponent({__name:"Option",props:{option:{type:Object,required:!0}},emits:["update:option","remove"],setup(t,{expose:o,emit:n}){const r=t,{confirm:l}=W.useConfirmation(),s=n,i=e.computed({get(){return r.option},set(h){s("update:option",h)}}),d=e.computed({get(){return i.value.values},set(h){i.value.values=h}}),a=e.useTemplateRef("valueListRef"),v=e.ref(!1);e.watch(v,async h=>{h||(await e.nextTick(),vt({parent:a?.value,values:d,group:"valueList",dragHandle:".option-value-drag-handle",plugins:[rt.animations()]}))},{immediate:!0});const p=()=>Math.random().toString(36).substring(2,15),u=()=>{i.value.values.push({id:p(),value:""})},V=async()=>{(i.value.name.trim()||i.value.values.filter(h=>h.value.trim()!=="").length>0)&&!await l("Are you sure you want to remove this option?")||s("remove")},x=h=>{i.value.values.splice(h,1)},y=h=>{h.name.trim()?h.nameError=void 0:h.nameError="Option name is required."},D=(h,C)=>{const P=h.target,R=i.value.values;if(h.key==="Backspace"&&P.value===""&&R?.length>2){x(C);return}},S=(h,C)=>{h.target;const P=i.value.values,R=P?.[C];R.touched=!0,P?.every(U=>U.value.trim()!=="")&&u()},E=h=>{const C=i.value,P=C?.values.every((R,$)=>R.value.trim()!==""||$===h);C&&C.values[h].value.trim()===""&&!P&&x(h)};return o({minified:v}),(h,C)=>{const P=e.resolveComponent("Input"),R=e.resolveComponent("Button");return v.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"flex gap-4 p-6 border-b last:border-b-0 hover:bg-accent dark:hover:bg-accent/50 cursor-pointer transition-colors duration-200",onClick:C[5]||(C[5]=$=>v.value=!1)},[e.createElementVNode("div",null,[e.createElementVNode("div",{class:"option-drag-handle flex-none mt-5 cursor-grab",onClick:C[4]||(C[4]=e.withModifiers(()=>{},["stop"]))},[e.createVNode(e.unref(I.GripVertical),{class:"size-4 text-gray-400"})])]),e.createElementVNode("div",yn,[e.createElementVNode("p",bn,e.toDisplayString(i.value.name),1),e.createElementVNode("div",_n,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,$=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:$.id},[$.value?(e.openBlock(),e.createElementBlock("span",kn,e.toDisplayString($.value),1)):e.createCommentVNode("",!0)],64))),128))])])])):(e.openBlock(),e.createElementBlock("div",un,[e.createElementVNode("div",null,[e.createElementVNode("div",pn,[e.createVNode(e.unref(I.GripVertical),{class:"size-4 text-gray-400"})])]),e.createElementVNode("div",mn,[e.createElementVNode("div",fn,[C[6]||(C[6]=e.createElementVNode("label",{class:"block text-sm mb-2"},"Option name",-1)),e.createElementVNode("div",gn,[e.createVNode(P,{modelValue:i.value.name,"onUpdate:modelValue":C[0]||(C[0]=$=>i.value.name=$),onBlur:C[1]||(C[1]=$=>y(i.value)),"aria-invalid":i.value.nameError?"true":"false",placeholder:"Color",spellcheck:"false"},null,8,["modelValue","aria-invalid"])]),i.value.nameError?(e.openBlock(),e.createElementBlock("p",vn,[e.createElementVNode("span",Vn,[e.createVNode(e.unref(I.CircleX),{class:"size-4"}),e.createTextVNode(" "+e.toDisplayString(i.value.nameError),1)])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",hn,[C[7]||(C[7]=e.createElementVNode("label",{class:"block text-sm mb-2"},"Option values",-1)),e.createElementVNode("div",{ref_key:"valueListRef",ref:a},[d.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(d.value,($,U)=>(e.openBlock(),e.createElementBlock("div",{key:$.id,class:"relative flex items-center mb-2"},[$.touched?(e.openBlock(),e.createElementBlock("div",xn,[e.createVNode(e.unref(I.GripVertical),{class:"size-4 text-gray-400"})])):e.createCommentVNode("",!0),e.createVNode(P,{modelValue:$.value,"onUpdate:modelValue":Y=>$.value=Y,placeholder:"Option value",class:"pr-12",onKeydown:Y=>D(Y,U),onKeyup:Y=>S(Y,U),onBlur:Y=>E(U),spellcheck:"false"},null,8,["modelValue","onUpdate:modelValue","onKeydown","onKeyup","onBlur"]),d.value.length>2&&$.touched?(e.openBlock(),e.createElementBlock("button",{key:1,onClick:Y=>x(U),class:"absolute right-2 top-1/2 -translate-y-1/2 ml-2 p-2 text-muted-foreground/50 hover:text-muted-foreground",type:"button"},[e.createVNode(e.unref(I.Trash2),{class:"size-4"})],8,Cn)):e.createCommentVNode("",!0)]))),128)):e.createCommentVNode("",!0)],512)]),e.createElementVNode("div",Nn,[e.createVNode(R,{size:"sm",variant:"outline",onClick:C[2]||(C[2]=$=>V()),class:"text-red-500 hover:text-red-600"},{default:e.withCtx(()=>[...C[8]||(C[8]=[e.createTextVNode("Delete",-1)])]),_:1}),e.createVNode(R,{size:"sm",onClick:C[3]||(C[3]=$=>v.value=!0),disabled:i.value.name.trim()===""},{default:e.withCtx(()=>[...C[9]||(C[9]=[e.createTextVNode("Done",-1)])]),_:1},8,["disabled"])])])]))}}}),Dn=e.defineComponent({__name:"Options",props:{modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],setup(t,{expose:o,emit:n}){const r=t,l=n,s=e.ref([]),i=e.useTemplateRef("optionsListRefElement"),d=e.useTemplateRef("optionRefs"),a=e.computed({get(){return r.modelValue},set(E){l("update:modelValue",E)}}),v=e.ref(!1);e.watch(a,E=>{v.value||(!s.value||s.value.length===0&&E.length>0)&&(v.value=!0,s.value=E?JSON.parse(JSON.stringify(E)):[])},{deep:!0}),e.watch(s,E=>{a.value=E?.map(h=>({...h,values:h.values.filter(C=>C.value.trim()!=="")})),!D.value&&E.length>0&&S()},{deep:!0});const p=()=>Math.random().toString(36).substring(2,15),u=()=>{const h={id:p(),name:"",values:[{id:p(),value:""}],nameError:void 0};s.value.push(h)},V=()=>{d.value?.forEach(E=>{E&&(E.minified=!0)})},x=E=>{const h=s.value.findIndex(C=>C.id===E.id);h!==-1&&(s.value[h]=E)},y=E=>{const h=s.value.findIndex(C=>C.id===E.id);h!==-1&&s.value.splice(h,1)},D=e.ref(!1),S=()=>{try{D.value=!0,vt({parent:i?.value,values:s,group:"optionsList",dragHandle:".option-drag-handle",plugins:[rt.animations()]})}catch(E){console.error(E)}};return e.onMounted(()=>{s.value=r.modelValue?JSON.parse(JSON.stringify(r.modelValue)):[],s.value.length>0&&S()}),o({minifyAll:V}),(E,h)=>{const C=e.resolveComponent("Button");return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",{class:e.normalizeClass(["rounded-lg",s.value.length>0?"border mb-6":""])},[e.createElementVNode("div",{ref_key:"optionsListRefElement",ref:i},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,P=>(e.openBlock(),e.createBlock(wn,{ref_for:!0,ref_key:"optionRefs",ref:d,key:P.id,option:P,"onUpdate:option":h[0]||(h[0]=R=>x(R)),onRemove:R=>y(P)},null,8,["option","onRemove"]))),128))],512),s.value&&s.value.length<3?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(s.value.length>0?"border-t":"")},[s.value.length===0?(e.openBlock(),e.createBlock(C,{key:0,onClick:u,variant:"outline"},{default:e.withCtx(()=>[e.createVNode(e.unref(I.PlusCircle),{class:"size-4"}),h[1]||(h[1]=e.createTextVNode(" Add options like size or color ",-1))]),_:1})):(e.openBlock(),e.createBlock(C,{key:1,onClick:u,variant:"ghost",class:"w-full justify-start pl-2 rounded-t-none"},{default:e.withCtx(()=>[e.createVNode(e.unref(I.PlusCircle),{class:"size-4"}),h[2]||(h[2]=e.createTextVNode(" Add another option ",-1))]),_:1}))],2)):e.createCommentVNode("",!0)],2)])}}}),Sn={class:"grid gap-4 py-2"},En=e.defineComponent({__name:"VariantDialog",setup(t,{expose:o}){const n=e.ref(!1),r=e.ref(!1),l=e.ref(null);return o({openVariantDialog:i=>{n.value=!0,l.value=i}}),(i,d)=>{const a=e.resolveComponent("ResponsiveModalTitle"),v=e.resolveComponent("ResponsiveModalHeader"),p=e.resolveComponent("Button"),u=e.resolveComponent("ResponsiveModalClose"),V=e.resolveComponent("ResponsiveModalFooter"),x=e.resolveComponent("ResponsiveModalScrollContent"),y=e.resolveComponent("ResponsiveModal");return e.openBlock(),e.createBlock(y,{open:e.unref(n),"onUpdate:open":d[0]||(d[0]=D=>e.isRef(n)?n.value=D:null)},{default:e.withCtx(()=>[e.createVNode(x,{class:"sm:max-w-xl"},{default:e.withCtx(()=>[e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(a,null,{default:e.withCtx(()=>[...d[1]||(d[1]=[e.createTextVNode("Edit ",-1)])]),_:1})]),_:1}),e.createElementVNode("div",Sn," variant "+e.toDisplayString(e.unref(l)),1),e.createVNode(V,null,{default:e.withCtx(()=>[e.createVNode(u,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(p,{variant:"secondary",disabled:e.unref(r)},{default:e.withCtx(()=>[e.createVNode(e.unref(I.X),{class:"mr-2 size-4"}),d[2]||(d[2]=e.createTextVNode(" Close ",-1))]),_:1},8,["disabled"])]),_:1}),e.createVNode(p,{class:"gap-2",disabled:e.unref(r)},{default:e.withCtx(()=>[e.unref(r)?(e.openBlock(),e.createBlock(e.unref(I.Loader2),{key:0,class:"size-4 animate-spin"})):e.createCommentVNode("",!0),d[3]||(d[3]=e.createTextVNode(" Update variant ",-1))]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])}}}),Tn={key:0},Bn={class:"flex items-center justify-between gap-2 mb-2"},Pn={key:0,class:"flex items-center gap-2"},In={key:0,class:"mb-4"},$n={class:"flex flex-wrap gap-2"},Fn=["onClick"],Mn={class:"-mx-6 w-[calc(100%+3rem)]"},An={class:"text-muted-foreground text-xs"},Rn={class:"z-[101] sticky -top-4 py-2 font-normal bg-accent dark:bg-border"},zn={class:"z-[101] sticky -top-4 py-2 font-normal whitespace-nowrap bg-accent dark:bg-border"},On={class:"flex items-center gap-2"},Ln={class:"z-[101] sticky -top-4 py-2 pr-6 font-normal bg-accent dark:bg-border"},Un={key:1,class:"z-[101] sticky -top-4 py-2 font-normal whitespace-nowrap bg-accent dark:bg-border text-left",colspan:"3"},jn={class:"text-sm"},Hn=["onClick"],Xn={class:"w-10 p-2"},Kn={class:"p-2"},Yn={class:"flex items-stretch gap-2"},qn=["src"],Gn={key:2,class:"relative"},Jn=["src"],Wn=["src"],Zn={class:"flex flex-col justify-center px-2"},Qn={class:"text-md mb-0.5 hover:underline select-none"},er={class:"flex items-center gap-1 text-xs text-muted-foreground hover:opacity-70 transition-opacity duration-200 cursor-pointer select-none"},tr={class:"p-2 w-[30%]"},or={class:"relative"},nr={key:0},rr={key:1},lr={key:0,class:"absolute inset-0 top-1/2 -translate-y-1/2 px-2 truncate text-sm text-muted-foreground w-full text-center pointer-events-none"},ar={class:"p-2 w-[18%]"},sr=["onClick"],ir={class:"w-10"},dr={class:"w-10 p-2 translate-x-10"},cr={class:"p-2 pl-12"},ur={class:"flex items-stretch gap-2"},pr=["src"],mr={class:"flex flex-col justify-center px-2"},fr={class:"p-2 w-[30%]"},gr={class:"p-2 w-[18%] group"},vr={class:"text-center text-sm text-muted-foreground bg-accent dark:bg-border p-3 -mx-6 -mb-6 rounded-b-lg"},Vr={key:0},hr=e.defineComponent({__name:"VariantList",props:{options:{type:Object,required:!0},modelValue:{type:Array,required:!0},hide:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,{expose:o,emit:n}){const r=t,l=n,s=e.computed({get(){return r.modelValue},set(f){l("update:modelValue",f)}}),i=e.inject("sources"),d=e.ref(""),a=e.ref(""),v=e.ref(!1),p=e.ref([]),u=e.ref({}),V=e.ref([]),x=e.ref({}),y=e.useTemplateRef("variantDialog"),D=()=>{const f=Object.keys(r.options);if(f.length===0){a.value="";return}(!a.value||!f.includes(a.value))&&(a.value=f[0])},S=()=>{const f=Object.entries(u.value).reduce((c,[g,k])=>(r.options?.[g]?.values?.some(M=>M.id===k)&&(c[g]=k),c),{});JSON.stringify(f)!==JSON.stringify(u.value)&&(u.value=f)};e.watch(()=>r.options,()=>{D(),S()},{immediate:!0,deep:!0}),e.watch(x,f=>{E()},{deep:!0}),e.watch(()=>r.hide,f=>{f||(D(),E())});function E(){if(!x.value){s.value=[];return}let f=[];Object.keys(x.value)?.forEach(c=>{f.push({combinedOptions:c,name:P(c),disabled:!1,price:x.value[c].price,stock:x.value[c].stock,image:x.value[c].image,options:R(c)})}),s.value=f.filter(c=>c.options?.length===Object.keys(r.options).length&&c.options?.every(g=>Object.entries(r.options).find(([,k])=>k.id===g.optionId)))}function h(f){return f.reduce((c,g)=>c.flatMap(k=>g.map(F=>[...k,F])),[[]])}function C(f){return f.slice().sort((c,g)=>c.optionId.localeCompare(g.optionId)).map(({optionId:c,valueId:g})=>`${c}:${g}`).join("|")}const P=f=>f.split("|").map(g=>{const[k,F]=g.split(":");return{optionId:k,valueId:F}}).map(g=>r.options?.[g.optionId]?.values?.find(M=>M.id===g.valueId)?.value||"").join(" "),R=f=>f.split("|").map(g=>{const[k,F]=g.split(":");return{optionId:k,valueId:F}}).map(g=>{const k=r.options?.[g.optionId],F=k?.values?.find(M=>M.id===g.valueId);return{optionId:k?.id||g.optionId,option:k?.name||"",valueId:F?.id||g.valueId,value:F?.value||""}}),$=e.computed(()=>{const f=Object.values(r.options).map(g=>g.values.map(k=>({optionId:g.id,optionName:g.name,valueId:k.id,value:k.value})));return h(f).map(g=>{const k=C(g);return x.value[k]||(x.value[k]={price:0,stock:0}),{key:k,options:g,...x.value[k]}})}),U=e.computed(()=>{let f=[...$.value];const c=d.value.trim().toLowerCase();return c&&(f=f.filter(g=>g.options?.some(k=>k.value.toLowerCase().includes(c)))),Object.entries(u.value).forEach(([g,k])=>{k&&(f=f.filter(F=>F.options?.some(M=>M.optionId===g&&M.valueId===k)))}),f}),Y=e.computed(()=>Object.keys(u.value).length>0),De=(f,c)=>{if(!c){ae(f);return}u.value={...u.value,[f]:c}},ae=f=>{const c={...u.value};delete c[f],u.value=c},Se=f=>f.values?.find(c=>c.id===u.value[f.id])?.value,A=f=>U.value.filter(c=>c.options?.find(g=>g.optionId===a.value)?.valueId===f),te=e.computed(()=>{const f=r.options?.[a.value]?.values||[];return!d.value.trim()&&!Y.value?f:f.filter(c=>A(c.id).length>0)}),se=e.computed(()=>U.value.map(f=>f.key)),me=e.computed(()=>V.value.length),ie=e.computed(()=>{const f=new Set(V.value);return se.value.filter(c=>f.has(c)).length}),N=e.computed(()=>se.value.length===0||ie.value===0?!1:ie.value===se.value.length?!0:"indeterminate");e.watch(te,f=>{const c=new Set(f.map(g=>g.id));p.value=p.value.filter(g=>c.has(g))}),e.watch($,f=>{const c=new Set(f.map(k=>k.key)),g=V.value.filter(k=>c.has(k));g.length!==V.value.length&&(V.value=g)});const w=(f,c)=>{const g=new Set(f);if(c){V.value=Array.from(new Set([...V.value,...f]));return}V.value=V.value.filter(k=>!g.has(k))},X=(f,c)=>{w([f],c===!0)},oe=(f,c)=>{w(A(f).map(g=>g.key),c===!0)},fe=f=>{w(se.value,f===!0)},ve=f=>{const c=A(f).map(F=>F.key);if(c.length===0)return!1;const g=new Set(V.value),k=c.filter(F=>g.has(F)).length;return k===0?!1:k===c.length?!0:"indeterminate"},Ee=(f,c)=>{const g=A(c);g&&g.forEach(k=>{x.value[C(k.options)].image=f})},Ve=f=>A(f).every(g=>!g.image),Te=f=>{const c=A(f);return c.filter((k,F)=>k.image&&c.findIndex(M=>M.image===k.image)===F).length===1},he=f=>A(f).filter(g=>g.image)[0]?.image,He=f=>A(f).filter(g=>g.image)[1]?.image,Vt=f=>{const c=A(f);if(c.length===0)return"0";const g=c.map(k=>k.price);return Math.min(...g)===Math.max(...g)?g[0]?.toString()||"0":`${Math.min(...g)} - ${Math.max(...g)}`},Xe=f=>A(f).reduce((c,g)=>g.stock>0?c+g.stock:c,0),ht=f=>A(f).reduce((c,g)=>g.stock<0?c+g.stock:c,0),xt=()=>{let f=0;return te.value?.forEach(c=>{f+=Xe(c.id)}),f},Ke=()=>{let f=0;return te.value?.forEach(c=>{f+=ht(c.id)}),f},xe=e.ref(null),ne=e.ref(""),Ct=async(f,c)=>{f.preventDefault();const g=U?.value?.filter(M=>M.options?.find(Be=>Be.optionId===a.value)?.valueId===c.id).map(M=>M.price),k=g.length===0?!0:g.every(M=>M===g[0]);xe.value=c.id,ne.value=k?g[0].toString():"",await e.nextTick();const F=document.getElementById(`variant-price-${c.id}`);F?.focus(),F?.select()},Nt=f=>{Ye(f),xe.value=null,ne.value=""},Ye=f=>{if(ne.value.trim()&&Number(ne.value.trim().replace(",","."))>0){const c=Number(ne.value.trim().replace(",","."));U?.value?.filter(g=>g.options?.find(k=>k.optionId===a.value)?.valueId===f).forEach(g=>{x.value[C(g.options)].price=c})}},yt=f=>{x.value=f.reduce((c,g)=>(c[g.combinedOptions]={price:g.price,stock:g.stock,image:g.image},c),{})};return e.onMounted(()=>{D()}),o({setVariantMap:yt,refreshVariants:E}),(f,c)=>{const g=e.resolveComponent("SelectValue"),k=e.resolveComponent("SelectTrigger"),F=e.resolveComponent("SelectItem"),M=e.resolveComponent("SelectContent"),Be=e.resolveComponent("Select"),J=e.resolveComponent("Button"),qe=e.resolveComponent("Input"),bt=e.resolveComponent("PopoverTrigger"),_t=e.resolveComponent("RadioGroupItem"),kt=e.resolveComponent("Label"),wt=e.resolveComponent("RadioGroup"),Dt=e.resolveComponent("PopoverContent"),St=e.resolveComponent("Popover"),Pe=e.resolveComponent("Checkbox"),Ie=e.resolveComponent("TooltipTrigger"),$e=e.resolveComponent("TooltipContent"),Fe=e.resolveComponent("Tooltip"),Ge=e.resolveComponent("DropdownMenuTrigger"),de=e.resolveComponent("DropdownMenuItem"),Je=e.resolveComponent("DropdownMenuContent"),We=e.resolveComponent("DropdownMenu"),Et=e.resolveComponent("DropdownMenuGroup"),Tt=e.resolveComponent("DropdownMenuSeparator"),Ze=e.resolveComponent("MediaPickerDialog"),Me=e.resolveComponent("NumberFieldInput"),Ae=e.resolveComponent("NumberFieldContent"),Re=e.resolveComponent("NumberField"),Bt=e.resolveComponent("NumberFieldDecrement"),Pt=e.resolveComponent("NumberFieldIncrement");return e.openBlock(),e.createElementBlock(e.Fragment,null,[t.hide?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Tn,[e.createElementVNode("div",Bn,[Object.keys(t.options).length>1?(e.openBlock(),e.createElementBlock("div",Pn,[c[13]||(c[13]=e.createElementVNode("p",null,"Group by",-1)),e.createVNode(Be,{modelValue:a.value,"onUpdate:modelValue":c[0]||(c[0]=b=>a.value=b)},{default:e.withCtx(()=>[e.createVNode(k,{size:"sm"},{default:e.withCtx(()=>[e.createVNode(g,{placeholder:"Option"})]),_:1}),e.createVNode(M,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,b=>(e.openBlock(),e.createBlock(F,{key:b.id,value:b.id},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.name),1)]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["modelValue"])])):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createBlock(J,{key:2,variant:"outline",onClick:c[2]||(c[2]=b=>v.value=!1),size:"sm",class:"ml-auto"},{default:e.withCtx(()=>[...c[14]||(c[14]=[e.createTextVNode(" Cancel ",-1)])]),_:1})):(e.openBlock(),e.createBlock(J,{key:1,variant:"outline",onClick:c[1]||(c[1]=b=>v.value=!0),size:"sm",class:"ml-auto"},{default:e.withCtx(()=>[e.createVNode(e.unref(I.Search),{class:"size-4"}),e.createVNode(e.unref(I.ListFilter),{class:"size-4"})]),_:1}))]),v.value?(e.openBlock(),e.createElementBlock("div",In,[e.createElementVNode("div",{class:e.normalizeClass(["relative",{"mb-4":Object.keys(t.options).length>0}])},[e.createVNode(qe,{placeholder:"Search",class:"pl-10",modelValue:d.value,"onUpdate:modelValue":c[3]||(c[3]=b=>d.value=b)},null,8,["modelValue"]),e.createVNode(e.unref(I.Search),{class:"size-4 absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none"})],2),e.createElementVNode("div",$n,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,b=>(e.openBlock(),e.createBlock(St,{key:b.id},{default:e.withCtx(()=>[e.createVNode(bt,{asChild:""},{default:e.withCtx(()=>[e.createVNode(J,{variant:"outline",size:"sm",class:"border-dashed"},{default:e.withCtx(()=>[u.value[b.id]?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(b.name)+" is "+e.toDisplayString(Se(b))+" ",1),e.createElementVNode("div",{class:"p-2",onClick:e.withModifiers(T=>ae(b.id),["stop","prevent"])},[e.createVNode(e.unref(I.X),{class:"size-3"})],8,Fn)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(b.name)+" ",1),e.createVNode(e.unref(I.ChevronDown),{class:"size-3"})],64))]),_:2},1024)]),_:2},1024),e.createVNode(Dt,null,{default:e.withCtx(()=>[e.createVNode(wt,{"model-value":u.value[b.id]||"",class:"mb-4","onUpdate:modelValue":T=>De(b.id,T)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.values,T=>(e.openBlock(),e.createElementBlock("div",{class:"flex items-center space-x-2",key:T.id},[e.createVNode(_t,{id:T.id,value:T.id,class:"border-ring"},null,8,["id","value"]),e.createVNode(kt,{for:T.id},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(T.value),1)]),_:2},1032,["for"])]))),128))]),_:2},1032,["model-value","onUpdate:modelValue"]),e.createVNode(J,{variant:"ghost",onClick:T=>ae(b.id),size:"sm",class:"ml-auto",disabled:!u.value[b.id]},{default:e.withCtx(()=>[...c[15]||(c[15]=[e.createTextVNode(" Clear ",-1)])]),_:1},8,["onClick","disabled"])]),_:2},1024)]),_:2},1024))),128))])])):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("table",Mn,[e.createElementVNode("thead",An,[e.createElementVNode("tr",null,[e.createElementVNode("th",Rn,[e.createVNode(Pe,{class:"border-muted-foreground translate-y-0.5","model-value":N.value,"onUpdate:modelValue":fe},null,8,["model-value"])]),me.value===0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("th",zn,[e.createElementVNode("div",On,[c[16]||(c[16]=e.createElementVNode("span",null,"Variant",-1)),c[17]||(c[17]=e.createElementVNode("span",null,"·",-1)),p.value.length>0?(e.openBlock(),e.createElementBlock("button",{key:0,class:"hover:underline cursor-pointer",onClick:c[4]||(c[4]=b=>p.value=[])},"Collapse all")):(e.openBlock(),e.createElementBlock("button",{key:1,class:"hover:underline cursor-pointer",onClick:c[5]||(c[5]=b=>p.value=te.value.map(T=>T.id))},"Expand all"))])]),c[20]||(c[20]=e.createElementVNode("th",{class:"z-[101] sticky -top-4 py-2 font-normal bg-accent dark:bg-border"},"Price",-1)),e.createElementVNode("th",Ln,[e.createVNode(Fe,null,{default:e.withCtx(()=>[e.createVNode(Ie,{class:"underline decoration-dashed underline-offset-4"},{default:e.withCtx(()=>[...c[18]||(c[18]=[e.createTextVNode("Available",-1)])]),_:1}),e.createVNode($e,null,{default:e.withCtx(()=>[...c[19]||(c[19]=[e.createElementVNode("p",null,"Inventory at your store that can be sold.",-1)])]),_:1})]),_:1})])],64)):(e.openBlock(),e.createElementBlock("th",Un,[e.createVNode(We,null,{default:e.withCtx(()=>[e.createVNode(Ge,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(J,{variant:"outline",class:"mr-2",size:"sm"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(me.value)+" selected ",1)]),_:1})]),_:1}),e.createVNode(Je,{class:"w-56",align:"start"},{default:e.withCtx(()=>[e.createVNode(de,null,{default:e.withCtx(()=>[...c[21]||(c[21]=[e.createTextVNode(" Deselect all ",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(We,null,{default:e.withCtx(()=>[e.createVNode(Ge,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(J,{size:"sm"},{default:e.withCtx(()=>[e.createVNode(e.unref(I.Ellipsis),{class:"size-3"})]),_:1})]),_:1}),e.createVNode(Je,{class:"w-56",align:"start"},{default:e.withCtx(()=>[e.createVNode(Et,null,{default:e.withCtx(()=>[e.createVNode(de,null,{default:e.withCtx(()=>[...c[22]||(c[22]=[e.createTextVNode(" Edit price ",-1)])]),_:1}),e.createVNode(de,null,{default:e.withCtx(()=>[...c[23]||(c[23]=[e.createTextVNode(" Edit SKU ",-1)])]),_:1}),e.createVNode(de,null,{default:e.withCtx(()=>[...c[24]||(c[24]=[e.createTextVNode(" Edit barcode ",-1)])]),_:1}),e.createVNode(de,null,{default:e.withCtx(()=>[...c[25]||(c[25]=[e.createTextVNode(" Change image ",-1)])]),_:1})]),_:1}),e.createVNode(Tt),e.createVNode(de,null,{default:e.withCtx(()=>[e.createTextVNode(" Remove variant"+e.toDisplayString(me.value>1?"s":""),1)]),_:1})]),_:1})]),_:1})]))])]),e.createElementVNode("tbody",jn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(te.value,b=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:b.id},[e.createElementVNode("tr",{class:"hover:bg-accent/50 cursor-pointer transition-colors duration-200 border-b border-input",onClick:T=>p.value.includes(b.id)?p.value.splice(p.value.indexOf(b.id),1):p.value.push(b.id)},[e.createElementVNode("td",Xn,[e.createVNode(Pe,{class:"border-muted-foreground translate-y-0.5","model-value":ve(b.id),"onUpdate:modelValue":T=>oe(b.id,T),onClick:c[6]||(c[6]=e.withModifiers(()=>{},["stop"]))},null,8,["model-value","onUpdate:modelValue"])]),e.createElementVNode("td",Kn,[e.createElementVNode("div",Yn,[e.createElementVNode("div",null,[e.createVNode(Ze,{sources:e.unref(i),maxFiles:1,"initial-value":Ve(b.id)?[]:Te(b.id)?[he(b.id)]:[he(b.id),He(b.id)],onSubmit:T=>Ee(T,b.id)},{default:e.withCtx(()=>[e.createElementVNode("button",{onClick:c[7]||(c[7]=e.withModifiers(()=>{},["stop"])),tabindex:"-1",class:"cursor-pointer"},[Ve(b.id)?(e.openBlock(),e.createBlock(J,{key:0,variant:"outline",class:"size-15 border-dashed cursor-pointer"},{default:e.withCtx(()=>[e.createVNode(e.unref(I.ImagePlus))]),_:1})):Te(b.id)?(e.openBlock(),e.createElementBlock("img",{key:1,src:he(b.id),class:"size-15 rounded-md object-cover",draggable:"false"},null,8,qn)):(e.openBlock(),e.createElementBlock("div",Gn,[e.createElementVNode("img",{src:He(b.id),class:"absolute rotate-[12deg] size-15 rounded-md object-cover",draggable:"false"},null,8,Jn),e.createElementVNode("img",{src:he(b.id),class:"relative size-15 rounded-md shadow object-cover",draggable:"false"},null,8,Wn)]))])]),_:2},1032,["sources","initial-value","onSubmit"])]),e.createElementVNode("div",Zn,[e.createElementVNode("p",Qn,e.toDisplayString(b.value),1),e.createElementVNode("button",er,[e.createTextVNode(e.toDisplayString(A(b.id).length)+" variants ",1),e.createVNode(e.unref(I.ChevronDown),{class:e.normalizeClass(["size-3 transition-transform duration-200",p.value.includes(b.id)?"rotate-180":""])},null,8,["class"])])])])]),e.createElementVNode("td",tr,[e.createElementVNode("div",or,[e.createVNode(Fe,null,{default:e.withCtx(()=>[e.createVNode(Ie,{class:"w-full",asChild:""},{default:e.withCtx(()=>[e.createVNode(qe,{id:`variant-price-${b.id}`,modelValue:ne.value,"onUpdate:modelValue":c[8]||(c[8]=T=>ne.value=T),class:e.normalizeClass(["dark:bg-transparent dark:border-ring/50 text-center",xe.value===b.id?"":"text-transparent"]),onClick:c[9]||(c[9]=e.withModifiers(()=>{},["stop"])),onFocus:T=>Ct(T,b),onBlur:T=>Nt(b.id),onKeydown:e.withKeys(T=>Ye(b.id),["enter"])},null,8,["id","modelValue","class","onFocus","onBlur","onKeydown"])]),_:2},1024),e.createVNode($e,null,{default:e.withCtx(()=>[A(b.id).length===1?(e.openBlock(),e.createElementBlock("p",nr,"Applies to 1 variant")):(e.openBlock(),e.createElementBlock("p",rr,"Applies to all "+e.toDisplayString(A(b.id).length)+" variants",1))]),_:2},1024)]),_:2},1024),xe.value!==b.id?(e.openBlock(),e.createElementBlock("span",lr,e.toDisplayString(Vt(b.id)),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("td",ar,[e.createVNode(Fe,null,{default:e.withCtx(()=>[e.createVNode(Ie,{class:"w-full focus-visible:outline-none",onClick:c[10]||(c[10]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[e.createVNode(Re,null,{default:e.withCtx(()=>[e.createVNode(Ae,null,{default:e.withCtx(()=>[e.createVNode(Me,{value:Xe(b.id),class:"dark:border-ring/50",disabled:""},null,8,["value"])]),_:2},1024)]),_:2},1024)]),_:2},1024),e.createVNode($e,null,{default:e.withCtx(()=>[...c[26]||(c[26]=[e.createElementVNode("p",null,"Update for individual variants only",-1)])]),_:1})]),_:2},1024)])],8,Hn),p.value.includes(b.id)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(A(b.id),T=>(e.openBlock(),e.createElementBlock("tr",{key:T.key,class:"hover:bg-accent/50 cursor-pointer transition-colors duration-200 border-b border-input",onClick:K=>e.unref(y).openVariantDialog(T)},[e.createElementVNode("td",ir,[e.createElementVNode("div",dr,[e.createVNode(Pe,{class:"border-muted-foreground translate-y-0.5","model-value":V.value.includes(T.key),"onUpdate:modelValue":K=>X(T.key,K),onClick:c[11]||(c[11]=e.withModifiers(()=>{},["stop"]))},null,8,["model-value","onUpdate:modelValue"])])]),e.createElementVNode("td",cr,[e.createElementVNode("div",ur,[e.createElementVNode("div",null,[e.createVNode(Ze,{sources:e.unref(i),maxFiles:1,"initial-value":x.value[C(T.options)].image?[x.value[C(T.options)].image]:[],onSubmit:K=>x.value[C(T.options)].image=K},{default:e.withCtx(()=>[e.createElementVNode("button",{onClick:c[12]||(c[12]=e.withModifiers(()=>{},["stop"])),tabindex:"-1",class:"cursor-pointer"},[x.value[C(T.options)].image?(e.openBlock(),e.createElementBlock("img",{key:0,src:x.value[C(T.options)].image,class:"size-10 object-cover rounded-md",draggable:"false"},null,8,pr)):(e.openBlock(),e.createBlock(J,{key:1,variant:"outline",class:"size-10 border-dashed cursor-pointer"},{default:e.withCtx(()=>[e.createVNode(e.unref(I.ImagePlus))]),_:1}))])]),_:2},1032,["sources","initial-value","onSubmit"])]),e.createElementVNode("div",mr,[e.createElementVNode("p",null,e.toDisplayString(T.options.filter(K=>K.optionId!==a.value).map(K=>K.value).join(" / ")),1)])])]),e.createElementVNode("td",fr,[e.createVNode(Re,{"format-options":{style:"currency",currency:"EUR",currencyDisplay:"symbol",currencySign:"standard"},modelValue:x.value[C(T.options)].price,"onUpdate:modelValue":K=>x.value[C(T.options)].price=K,min:0},{default:e.withCtx(()=>[e.createVNode(Ae,null,{default:e.withCtx(()=>[e.createVNode(Me,{class:"dark:border-ring/50"})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("td",gr,[e.createVNode(Re,{modelValue:x.value[C(T.options)].stock,"onUpdate:modelValue":K=>x.value[C(T.options)].stock=K},{default:e.withCtx(()=>[e.createVNode(Ae,null,{default:e.withCtx(()=>[e.createVNode(Bt,{class:"group-hover:opacity-100 opacity-0 transition-opacity duration-200"}),e.createVNode(Me,{class:"dark:border-ring/50"}),e.createVNode(Pt,{class:"group-hover:opacity-100 opacity-0 transition-opacity duration-200"})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])])],8,sr))),128)):e.createCommentVNode("",!0)],64))),128))])]),e.createElementVNode("div",vr,[e.createTextVNode(" Total inventory at Webshop: "+e.toDisplayString(xt())+" ",1),Ke()<0?(e.openBlock(),e.createElementBlock("span",Vr,"("+e.toDisplayString(Ke())+")",1)):e.createCommentVNode("",!0),c[27]||(c[27]=e.createTextVNode(" available ",-1))])],64)):e.createCommentVNode("",!0)])),e.createVNode(En,{ref_key:"variantDialog",ref:y},null,512)],64)}}}),xr=e.defineComponent({__name:"Variants",setup(t){const{params:o}=W.useModuleRoute(),{value:n}=B.useField("options"),{value:r}=B.useField("variants"),l=e.ref([]),s=e.ref([]),i=e.useTemplateRef("optionsEl"),d=e.useTemplateRef("variantsEl");e.watch(l,async u=>{n.value=u?JSON.parse(JSON.stringify(u)):[],await e.nextTick(),d.value?.refreshVariants()},{deep:!0}),e.watch(s,u=>{r.value=u?JSON.parse(JSON.stringify(u)):[]},{deep:!0});const a=e.ref(!1),v=e.ref(!1);e.watch(n,async u=>{o.value.productId=="new"||!u||Array.isArray(u)&&u.length===0||a.value||(a.value=!0,l.value=JSON.parse(JSON.stringify(u)),await e.nextTick(),u.length>1&&i.value?.minifyAll())},{deep:!0,immediate:!0}),e.watch(r,async u=>{o.value.productId=="new"||!u||Array.isArray(u)&&u.length===0||v.value||(v.value=!0,s.value=JSON.parse(JSON.stringify(u)),await e.nextTick(),d.value?.setVariantMap(u))},{deep:!0,immediate:!0});const p=e.computed(()=>{let u=l.value||[],V={};return!u||!Array.isArray(u)||u.forEach(x=>{!x.name.trim()||x.values?.filter(y=>y.value.trim()!=="")?.length===0||(V[x.id]={id:x.id,name:x.name,values:x.values?.map(y=>({id:y.id,value:y.value}))?.filter(y=>y.value.trim()!=="")||[]})}),V});return(u,V)=>{const x=e.resolveComponent("CardContent"),y=e.resolveComponent("Card");return e.openBlock(),e.createBlock(y,null,{default:e.withCtx(()=>[e.createVNode(x,null,{default:e.withCtx(()=>[V[2]||(V[2]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Variants",-1)),e.createVNode(Dn,{modelValue:l.value,"onUpdate:modelValue":V[0]||(V[0]=D=>l.value=D),ref_key:"optionsEl",ref:i},null,8,["modelValue"]),e.createVNode(hr,{ref_key:"variantsEl",ref:d,options:p.value,modelValue:s.value,"onUpdate:modelValue":V[1]||(V[1]=D=>s.value=D),hide:Object.keys(p.value).length===0},null,8,["options","modelValue","hide"])]),_:1})]),_:1})}}}),Cr={class:"bg-white dark:bg-gray-50 border-4 dark:border-gray-600 p-4 rounded-lg mb-4"},Nr={class:"flex items-center gap-2 mb-2"},yr=["src"],br={class:"text-[#1a0dab] text-lg"},_r={class:"text-[#006621] text-[13px]"},kr={class:"text-[#545454] text-[13px]"},wr={class:"flex flex-col gap-4 mb-4"},Dr={class:"flex flex-col"},Sr={key:0,class:"text-red-500 text-sm mt-1"},Er={class:"flex flex-col gap-4 mb-4"},Tr={class:"flex flex-col"},Br={key:0,class:"text-red-500 text-sm mt-1"},Pr={class:"flex flex-col gap-4"},Ir={class:"flex flex-col"},$r={class:"flex gap-2"},Fr={key:0,class:"text-red-500 text-sm mt-1"},Mr={key:1,class:"text-[#545454] text-[13px]"},Ar={key:2,class:"text-orange-500 text-[13px]"},Rr=e.defineComponent({__name:"SEO",setup(t){const{errors:o}=B.useFormContext(),{value:n}=B.useField("title"),{value:r}=B.useField("slug"),{value:l}=B.useField("seo");function s(i){return i?i.normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^\w\s-]/g,"").trim().replace(/[-\s]+/g,"-"):""}return e.watch(n,(i,d)=>{(!r.value||s(d)===r.value)&&(r.value=s(i)),(!l.value.title||d===l.value.title)&&(l.value.title=i)}),(i,d)=>{const a=e.resolveComponent("Label"),v=e.resolveComponent("Input"),p=e.resolveComponent("Textarea"),u=e.resolveComponent("ProgressCircle"),V=e.resolveComponent("CardContent"),x=e.resolveComponent("Card");return e.openBlock(),e.createBlock(x,null,{default:e.withCtx(()=>[e.createVNode(V,null,{default:e.withCtx(()=>[d[7]||(d[7]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Search engine listing",-1)),e.createElementVNode("div",Cr,[e.createElementVNode("div",Nr,[e.createElementVNode("img",{src:e.unref(It.googleImg),alt:"Google",class:"w-16 pointer-events-none",draggable:"false"},null,8,yr),d[3]||(d[3]=e.createElementVNode("span",{class:"text-[#4186f5] font-medium text-xs"},"Preview",-1))]),e.createElementVNode("p",br,e.toDisplayString(e.unref(l).title),1),e.createElementVNode("p",_r,e.toDisplayString(e.unref(r)),1),e.createElementVNode("p",kr,e.toDisplayString(e.unref(l).description?.slice(0,155))+e.toDisplayString(e.unref(l).description?.length>155?" ...":""),1)]),e.createElementVNode("div",wr,[e.createElementVNode("div",Dr,[e.createVNode(a,{for:"slug",class:"text-sm mb-2"},{default:e.withCtx(()=>[...d[4]||(d[4]=[e.createTextVNode("Slug",-1)])]),_:1}),e.createVNode(v,{id:"slug",placeholder:"t-shirt-with-red-heart",modelValue:e.unref(r),"onUpdate:modelValue":d[0]||(d[0]=y=>e.isRef(r)?r.value=y:null)},null,8,["modelValue"]),e.unref(o).slug?(e.openBlock(),e.createElementBlock("p",Sr,e.toDisplayString(e.unref(o).slug),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Er,[e.createElementVNode("div",Tr,[e.createVNode(a,{for:"meta-title",class:"text-sm mb-2"},{default:e.withCtx(()=>[...d[5]||(d[5]=[e.createTextVNode("Title",-1)])]),_:1}),e.createVNode(v,{id:"meta-title",placeholder:"T-shirt with red heart",modelValue:e.unref(l).title,"onUpdate:modelValue":d[1]||(d[1]=y=>e.unref(l).title=y)},null,8,["modelValue"]),e.unref(o).seo?.title?(e.openBlock(),e.createElementBlock("p",Br,e.toDisplayString(e.unref(o).seo.title),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Pr,[e.createElementVNode("div",Ir,[e.createVNode(a,{for:"meta-description",class:"text-sm mb-2"},{default:e.withCtx(()=>[...d[6]||(d[6]=[e.createTextVNode("Description",-1)])]),_:1}),e.createVNode(p,{id:"meta-description",placeholder:"Lovely T-shirt featuring a red heart",modelValue:e.unref(l).description,"onUpdate:modelValue":d[2]||(d[2]=y=>e.unref(l).description=y),class:"mb-2 resize-none"},null,8,["modelValue"]),e.createElementVNode("div",$r,[e.createVNode(u,{progress:(e.unref(l).description?.length??0)/155},null,8,["progress"]),e.unref(o).seo?.description?(e.openBlock(),e.createElementBlock("p",Fr,e.toDisplayString(e.unref(o).seo.description),1)):e.unref(l).description?.length<155?(e.openBlock(),e.createElementBlock("p",Mr,e.toDisplayString(e.unref(l).description.length)+" characters",1)):(e.openBlock(),e.createElementBlock("p",Ar,"Please keep it under 155 characters"))])])])]),_:1})]),_:1})}}}),zr=e.defineComponent({__name:"NewSection",setup(t){return(o,n)=>{const r=e.resolveComponent("Button"),l=e.resolveComponent("CardContent"),s=e.resolveComponent("Card");return e.openBlock(),e.createElementBlock(e.Fragment,null,[n[3]||(n[3]=e.createElementVNode("hr",{class:"my-4"},null,-1)),e.createVNode(s,null,{default:e.withCtx(()=>[e.createVNode(l,null,{default:e.withCtx(()=>[n[1]||(n[1]=e.createElementVNode("h2",{class:"text-lg font-medium"},"New Section",-1)),n[2]||(n[2]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mb-4"},"As an admin, you can define new sections within the product detail page.",-1)),e.createVNode(r,null,{default:e.withCtx(()=>[e.createVNode(e.unref(I.Plus),{class:"size-4"}),n[0]||(n[0]=e.createTextVNode(" Create new section ",-1))]),_:1})]),_:1})]),_:1})],64)}}}),Or={class:"flex items-center gap-2"},Lr={key:0,class:"size-3 rounded-full bg-green-500"},Ur={key:1,class:"size-3 rounded-full bg-blue-500"},jr={key:2,class:"size-3 rounded-full bg-gray-300"},Hr=e.defineComponent({__name:"Status",setup(t){const{errors:o}=B.useFormContext(),{value:n}=B.useField("status");return(r,l)=>{const s=e.resolveComponent("SelectValue"),i=e.resolveComponent("SelectTrigger"),d=e.resolveComponent("SelectItem"),a=e.resolveComponent("SelectGroup"),v=e.resolveComponent("SelectContent"),p=e.resolveComponent("Select"),u=e.resolveComponent("CardContent"),V=e.resolveComponent("Card");return e.openBlock(),e.createBlock(V,null,{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[l[4]||(l[4]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Status",-1)),e.createVNode(p,{modelValue:e.unref(n),"onUpdate:modelValue":l[0]||(l[0]=x=>e.isRef(n)?n.value=x:null),class:"w-full"},{default:e.withCtx(()=>[e.createVNode(i,{class:"w-full"},{default:e.withCtx(()=>[e.createElementVNode("div",Or,[e.unref(n)==="published"?(e.openBlock(),e.createElementBlock("span",Lr)):e.unref(n)==="draft"?(e.openBlock(),e.createElementBlock("span",Ur)):e.unref(n)==="archived"?(e.openBlock(),e.createElementBlock("span",jr)):e.createCommentVNode("",!0),e.createVNode(s,{placeholder:"Status"})])]),_:1}),e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(d,{value:"published"},{default:e.withCtx(()=>[...l[1]||(l[1]=[e.createElementVNode("span",{class:"size-3 rounded-full bg-green-500"},null,-1),e.createTextVNode(" Published ",-1)])]),_:1}),e.createVNode(d,{value:"draft"},{default:e.withCtx(()=>[...l[2]||(l[2]=[e.createElementVNode("span",{class:"size-3 rounded-full bg-blue-500"},null,-1),e.createTextVNode(" Draft ",-1)])]),_:1}),e.createVNode(d,{value:"archived"},{default:e.withCtx(()=>[...l[3]||(l[3]=[e.createElementVNode("span",{class:"size-3 rounded-full bg-gray-300"},null,-1),e.createTextVNode(" Archived ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})}}}),Xr={class:"flex items-center gap-2 truncate"},Kr={key:0,class:"text-muted-foreground"},Yr={key:1,class:"truncate"},qr={key:2,class:"truncate"},Gr={key:3,class:"truncate"},Jr={class:"truncate"},Wr=e.defineComponent({__name:"Collections",props:{config:{type:Object,required:!0}},setup(t){const o=t,n=W.useFirebaseIntegration(o.config.project),r=async()=>{if(!o.config.collectionsCollection)return[];const p=o.config.collectionsCollection.split(":");return p.length!==2?[]:(await n.get(p[0]))?.[p[1]]||[]},l=e.ref([]);(async()=>{const p=await r();l.value=p})();const{value:i}=B.useField("collections"),d=e.computed(()=>l.value.flatMap(p=>{const u=p.status||"draft",V=[{id:p.id,title:p.title,status:u,isSubcollection:!1}];return Array.isArray(p.subcollections)&&V.push(...p.subcollections.map(x=>({id:x.id,title:x.title,status:u==="published"&&x.status||u,isSubcollection:!0,parentTitle:p.title}))),V})),a=e.computed(()=>Array.isArray(i.value)?i.value.map(p=>d.value.find(u=>u.id===p)).filter(Boolean):[]),v=p=>p.isSubcollection?`${p.parentTitle} / ${p.title}`:p.title;return(p,u)=>{const V=e.resolveComponent("SelectTrigger"),x=e.resolveComponent("SelectItem"),y=e.resolveComponent("SelectGroup"),D=e.resolveComponent("SelectContent"),S=e.resolveComponent("Select"),E=e.resolveComponent("CardContent"),h=e.resolveComponent("Card");return e.openBlock(),e.createBlock(h,null,{default:e.withCtx(()=>[e.createVNode(E,null,{default:e.withCtx(()=>[u[1]||(u[1]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Collections",-1)),e.createVNode(S,{modelValue:e.unref(i),"onUpdate:modelValue":u[0]||(u[0]=C=>e.isRef(i)?i.value=C:null),class:"w-full",multiple:!0},{default:e.withCtx(()=>[e.createVNode(V,{class:"w-full"},{default:e.withCtx(()=>[e.createElementVNode("div",Xr,[a.value.length===0?(e.openBlock(),e.createElementBlock("span",Kr,"Collections")):a.value.length===1?(e.openBlock(),e.createElementBlock("span",Yr,e.toDisplayString(v(a.value[0])),1)):a.value.length===2?(e.openBlock(),e.createElementBlock("span",qr,e.toDisplayString(v(a.value[0]))+", "+e.toDisplayString(v(a.value[1])),1)):(e.openBlock(),e.createElementBlock("span",Gr,e.toDisplayString(v(a.value[0]))+", "+e.toDisplayString(v(a.value[1]))+" + "+e.toDisplayString(a.value.length-2),1))])]),_:1}),e.createVNode(D,null,{default:e.withCtx(()=>[e.createVNode(y,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,C=>(e.openBlock(),e.createBlock(x,{key:C.id,value:C.id},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex min-w-0 items-center gap-2",{"pl-4":C.isSubcollection}])},[C.isSubcollection?(e.openBlock(),e.createBlock(e.unref(I.CornerDownRight),{key:0,class:"size-4 shrink-0 text-muted-foreground"})):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["size-2 rounded-full shrink-0",C.status==="published"?"bg-green-500":"bg-blue-500"])},null,2),e.createElementVNode("span",Jr,e.toDisplayString(C.title),1)],2)]),_:2},1032,["value"]))),128))]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})}}}),Zr={class:"relative @container"},Qr={class:"flex flex-row gap-4 justify-between max-w-5xl mx-auto mt-4 mb-6"},el={class:"flex items-center"},tl={class:"text-lg font-semibold mx-2"},ol={key:0,class:"bg-green-500 text-green-950 px-2 py-1 rounded-lg text-xs"},nl={key:1,class:"bg-blue-500 text-blue-950 px-2 py-1 rounded-lg text-xs"},rl={key:2,class:"bg-gray-300 dark:bg-gray-500 text-gray-950 px-2 py-1 rounded-lg text-xs"},ll={class:"flex flex-col @3xl:flex-row gap-4 max-w-5xl mx-auto pb-24"},al={class:"flex flex-col gap-4 w-full @3xl:w-2/3"},sl={class:"flex flex-col gap-4 w-full @3xl:w-1/3"},il={key:0,class:"fixed bottom-4 left-0 md:left-12 right-0 min-w-xs max-w-5xl w-[calc(100%-2rem)] md:w-[calc(100%-5rem)] xl:w-[calc(100%-2rem)] h-16 border border-white/10 backdrop-blur-sm border-t border-border flex items-center justify-center px-4 mx-auto z-[9999] rounded-xl overflow-hidden shadow bg-[radial-gradient(#ffffff80,transparent)] dark:bg-[radial-gradient(#00000080,transparent)]"},dl={class:"w-full max-w-5xl flex items-center justify-end mx-auto"},cl=e.defineComponent({__name:"Detail",props:{config:{type:Object,required:!0}},async setup(t){let o,n;const r=t,{hasPermission:l,hasAnyPermission:s,isAdmin:i}=W.useModulePermissions(),{params:d,navigateTo:a}=W.useModuleRoute(),{confirm:v}=W.useConfirmation(),p=W.useFirebaseIntegration(r.config.project);e.provide("sources",r.config.allowedMediaSources),e.provide("defaultSource",r.config.defaultUploadMediaSource);const u=e.ref(!1),V=e.computed(()=>!d.value.productId||d.value.productId==="new"),x=e.ref(""),y=e.ref([]);y.value=([o,n]=e.withAsyncContext(()=>me()),o=await o,n(),o);const D=B.toTypedSchema(_.objectType({title:_.stringType().min(1,"Title is required"),description:_.stringType().optional(),media:_.arrayType(_.stringType()).optional(),price:_.coerce.number().positive("Must be positive"),compareAtPrice:_.preprocessType(N=>N===""?void 0:N,_.coerce.number().positive("Must be positive").optional()),isTaxable:_.booleanType().optional(),costPerItem:_.preprocessType(N=>N===""?void 0:N,_.coerce.number().positive("Must be positive").optional()),currency:_.stringType(),stock:_.preprocessType(N=>N===""?void 0:N,_.coerce.number().optional()),trackInventory:_.booleanType().optional(),allowBackorder:_.booleanType().optional(),isPhysicalProduct:_.booleanType().optional(),weight:_.preprocessType(N=>N===""?void 0:N,_.coerce.number().optional()),weightUnit:_.stringType().optional(),slug:_.stringType(),seo:_.objectType({title:_.stringType().optional(),description:_.stringType().optional()}).optional(),createdAt:_.dateType(),updatedAt:_.dateType(),status:_.stringType(),options:_.arrayType(_.objectType({id:_.stringType(),name:_.stringType().min(1),values:_.arrayType(_.objectType({id:_.stringType(),value:_.stringType()}))})).optional(),variants:_.arrayType(_.objectType({combinedOptions:_.stringType().min(1),name:_.stringType().min(1),disabled:_.booleanType().optional(),price:_.coerce.number().positive("Must be positive"),stock:_.preprocessType(N=>N===""?void 0:N,_.coerce.number().optional()),image:_.stringType().optional(),options:_.arrayType(_.objectType({optionId:_.stringType(),option:_.stringType(),valueId:_.stringType(),value:_.stringType()}))})).optional(),tags:_.arrayType(_.stringType()).optional(),collections:_.arrayType(_.stringType()).optional()})),{handleSubmit:S,errors:E,values:h,setValues:C}=B.useForm({validationSchema:D,initialValues:{createdAt:new Date,updatedAt:new Date,status:"draft",options:[],variants:[],media:[],isTaxable:!1,trackInventory:!1,allowBackorder:!1,isPhysicalProduct:!0,weight:0,weightUnit:"kg",tags:[],collections:[],currency:r.config.defaultCurrency||"USD",price:1,stock:0,seo:{title:"",description:""}}});W.useModuleBreadcrumbs(()=>[{text:V.value?"New Product":h.title||"Product"}]);const P=N=>{let w={...N,maxPrice:R(),minPrice:$(),maxCompareAtPrice:Y(),minCompareAtPrice:U(),isSingleVariant:!N.variants||N.variants.length===0,variantsTotal:N.variants?.length||1,stock:De(),featuredMedia:N.media?.[0]};return w.isPhysicalProduct?w.type="physical":(w.weight=0,w.weightUnit="kg",w.type="digital"),w},R=()=>!h.variants||h.variants.length===0?h.price:Math.max(...h.variants.map(N=>N.price)),$=()=>!h.variants||h.variants.length===0?h.price:Math.min(...h.variants.map(N=>N.price)),U=()=>h.compareAtPrice,Y=()=>h.compareAtPrice,De=()=>!h.variants||h.variants.length===0?h.stock:h.variants.reduce((N,w)=>w.stock<0?N:N+w.stock,0),ae=S(async N=>{u.value=!0;let w=P(N);if(V.value){if(await ie(w.slug)){q.toast.error("Product slug already exists");return}w.createdAt=new Date,w.updatedAt=new Date;const X=await p.add(r.config.productCollection,w);a(X.id),q.toast.success("Product created")}else{if(x.value!==w.slug&&await ie(w.slug)){q.toast.error("Product slug already exists");return}w.updatedAt=new Date,await p.update(r.config.productCollection,d.value.productId,w),a(`${d.value.productId}`),q.toast.success("Product updated")}u.value=!1}),Se=async()=>{const N=await p.get(r.config.productCollection,d.value.productId);if(!N){q.toast.error("Product not found"),a("");return}N.createdAt=new Date(N.createdAt),N.updatedAt=new Date(N.updatedAt),N.options?.forEach(w=>{w.values.forEach(X=>{X.touched=!0}),w.values.push({id:Math.random().toString(36).substring(2,15),value:""})}),C(N),x.value=N.slug},A=async()=>{try{let N={...h},w=N.slug+"-copy",X=2;for(;await ie(w);)w=N.slug+"-copy-"+X,X++;N.id=void 0,N.createdAt=new Date,N.updatedAt=new Date,N.slug=w,N.status="draft",N.title=N.title+" (copy)";const oe=await p.add(r.config.productCollection,N);a(oe.id),q.toast.success("Product duplicated")}catch{q.toast.error("Failed to duplicate product")}},te=async()=>{try{await p.update(r.config.productCollection,d.value.productId,{status:"archived"}),C({status:"archived"},{force:!1}),q.toast.success("Product archived")}catch{q.toast.error("Failed to archive product")}},se=async()=>{if(await v("Are you sure you want to delete this product?"))try{await p.remove(r.config.productCollection,d.value.productId),a(""),q.toast.success("Product deleted")}catch{q.toast.error("Failed to delete product")}};async function me(){if(!r.config.collectionsCollection)return[];const N=r.config.collectionsCollection.split(":");return N.length!==2?[]:(await p.get(N[0]))?.[N[1]]||[]}async function ie(N){return(await p.find(r.config.productCollection,{filters:[{field:"slug",operator:"==",value:N}]})).length>0}return e.onMounted(()=>{V.value||Se()}),(N,w)=>{const X=e.resolveComponent("Button"),oe=e.resolveComponent("MenubarTrigger"),fe=e.resolveComponent("MenubarMenu"),ve=e.resolveComponent("MenubarItem"),Ee=e.resolveComponent("MenubarContent"),Ve=e.resolveComponent("Menubar");return e.openBlock(),e.createElementBlock("div",Zr,[e.createElementVNode("div",Qr,[e.createElementVNode("div",el,[e.createVNode(X,{variant:"ghost",onClick:w[0]||(w[0]=Te=>e.unref(a)(""))},{default:e.withCtx(()=>[e.createVNode(e.unref(I.Tag),{class:"size-4"})]),_:1}),e.createVNode(e.unref(I.ChevronRight),{class:"size-3"}),e.createElementVNode("h1",tl,e.toDisplayString(V.value?"New Product":e.unref(h).title),1),e.unref(h).status==="published"?(e.openBlock(),e.createElementBlock("span",ol,"Published")):e.unref(h).status==="draft"?(e.openBlock(),e.createElementBlock("span",nl,"Draft")):e.unref(h).status==="archived"?(e.openBlock(),e.createElementBlock("span",rl,"Archived")):e.createCommentVNode("",!0)]),V.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(Ve,{key:0,class:"rounded-lg shadow-xs"},{default:e.withCtx(()=>[e.unref(l)("create-product")?(e.openBlock(),e.createBlock(fe,{key:0},{default:e.withCtx(()=>[e.createVNode(oe,{onClick:A},{default:e.withCtx(()=>[...w[1]||(w[1]=[e.createTextVNode("Duplicate",-1)])]),_:1})]),_:1})):e.createCommentVNode("",!0),e.createVNode(fe,null,{default:e.withCtx(()=>[e.createVNode(oe,null,{default:e.withCtx(()=>[...w[2]||(w[2]=[e.createTextVNode("Preview",-1)])]),_:1})]),_:1}),e.unref(s)("edit-product","delete-product")?(e.openBlock(),e.createBlock(fe,{key:1},{default:e.withCtx(()=>[e.createVNode(oe,null,{default:e.withCtx(()=>[...w[3]||(w[3]=[e.createTextVNode("More actions",-1)])]),_:1}),e.createVNode(Ee,null,{default:e.withCtx(()=>[e.unref(l)("edit-product")?(e.openBlock(),e.createBlock(ve,{key:0,onClick:te},{default:e.withCtx(()=>[e.createVNode(e.unref(I.Archive),{class:"size-4"}),w[4]||(w[4]=e.createTextVNode(" Archive product ",-1))]),_:1})):e.createCommentVNode("",!0),e.unref(l)("delete-product")?(e.openBlock(),e.createBlock(ve,{key:1,variant:"destructive",onClick:se},{default:e.withCtx(()=>[e.createVNode(e.unref(I.Trash),{class:"size-4"}),w[5]||(w[5]=e.createTextVNode(" Delete product ",-1))]),_:1})):e.createCommentVNode("",!0)]),_:1})]),_:1})):e.createCommentVNode("",!0)]),_:1}))]),e.createElementVNode("div",ll,[e.createElementVNode("div",al,[e.createVNode(jt),e.createVNode(eo),e.createVNode(lo),e.createVNode(io),e.createVNode(xr),e.createVNode(Rr),e.unref(i)()?(e.openBlock(),e.createBlock(zr,{key:0})):e.createCommentVNode("",!0)]),e.createElementVNode("div",sl,[e.createVNode(Hr),e.createVNode(Wr,{config:t.config},null,8,["config"])])]),e.unref(s)("create-product","edit-product")?(e.openBlock(),e.createElementBlock("div",il,[e.createElementVNode("div",dl,[V.value&&e.unref(l)("create-product")?(e.openBlock(),e.createBlock(X,{key:0,onClick:e.unref(ae),disabled:u.value},{default:e.withCtx(()=>[u.value?(e.openBlock(),e.createBlock(e.unref(I.Loader2),{key:0,class:"size-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(u.value?"Creating":"Create")+" New Product ",1)]),_:1},8,["onClick","disabled"])):e.unref(l)("edit-product")?(e.openBlock(),e.createBlock(X,{key:1,onClick:e.unref(ae),disabled:u.value},{default:e.withCtx(()=>[u.value?(e.openBlock(),e.createBlock(e.unref(I.Loader2),{key:0,class:"size-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(u.value?"Saving":"Save")+" Changes ",1)]),_:1},8,["onClick","disabled"])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)])}}});exports.default=cl;