lf-pagebuilder-vue 0.0.9 → 0.0.10

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.
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
- import { defineComponent as W, ref as C, computed as Y, createElementBlock as d, openBlock as i, createCommentVNode as S, createElementVNode as t, withModifiers as le, withDirectives as O, vModelText as Q, normalizeClass as G, toDisplayString as v, Fragment as A, renderList as V, vModelSelect as J, vModelCheckbox as ne, createBlock as ue, createTextVNode as E, unref as q, onMounted as ae, createVNode as L, watch as oe, nextTick as ve, withCtx as ce, vShow as xe, reactive as he } from "vue";
2
- import { listComponents as we } from "libreria-astro-lefebvre";
3
- import { QuillEditor as ye } from "@vueup/vue-quill";
1
+ import { defineComponent as W, ref as k, computed as Y, createElementBlock as d, openBlock as s, createCommentVNode as $, createElementVNode as t, withModifiers as le, withDirectives as R, vModelText as Q, normalizeClass as G, toDisplayString as x, Fragment as B, renderList as z, vModelSelect as H, vModelCheckbox as ne, createBlock as ue, createTextVNode as D, unref as q, onMounted as ae, createVNode as L, watch as oe, nextTick as xe, withCtx as ce, vShow as he, reactive as we } from "vue";
2
+ import { listComponents as ye } from "libreria-astro-lefebvre";
3
+ import { QuillEditor as Ce } from "@vueup/vue-quill";
4
4
  import me from "vuedraggable";
5
- const Ce = W({
5
+ const $e = W({
6
6
  props: {
7
7
  isComponentMode: Boolean,
8
8
  fullwidthMode: Boolean,
@@ -30,113 +30,113 @@ const Ce = W({
30
30
  "update:parametersPageConfiguration.seo.description"
31
31
  ],
32
32
  setup(e) {
33
- const o = e.renderApiDomain || "http://localhost:8003", b = C(""), $ = C(!1), p = C(!1), u = C(null), s = Y({
33
+ const o = e.renderApiDomain || "http://localhost:8003", g = k(""), F = k(!1), p = k(!1), u = k(null), i = Y({
34
34
  get() {
35
- var g, n;
36
- const P = (g = e.globalPageConfiguration) == null ? void 0 : g.find((a) => a.section === e.sectionSelected);
35
+ var b, n;
36
+ const P = (b = e.globalPageConfiguration) == null ? void 0 : b.find((l) => l.section === e.sectionSelected);
37
37
  return ((n = P == null ? void 0 : P.config) == null ? void 0 : n.width) || "";
38
38
  },
39
39
  set(P) {
40
40
  var n;
41
- const g = (n = e.globalPageConfiguration) == null ? void 0 : n.find((a) => a.section === e.sectionSelected);
42
- g && (g.config || (g.config = {}), g.config.width = P);
41
+ const b = (n = e.globalPageConfiguration) == null ? void 0 : n.find((l) => l.section === e.sectionSelected);
42
+ b && (b.config || (b.config = {}), b.config.width = P);
43
43
  }
44
44
  }), m = () => {
45
45
  const P = {
46
46
  pageConfig: e.globalPageConfiguration,
47
47
  paramsConfig: e.parametersPageConfiguration
48
- }, g = JSON.stringify(P), n = new CustomEvent("lf-pagebuilder:export", {
48
+ }, b = JSON.stringify(P), n = new CustomEvent("lf-pagebuilder:export", {
49
49
  detail: { ...P, inputId: e.inputId }
50
50
  });
51
51
  document.dispatchEvent(n);
52
- const a = window.open("", "Preview", "width='100vw',height='100vh'");
53
- a && (a.document.body.innerText = g, a.document.close());
54
- }, w = () => {
52
+ const l = window.open("", "Preview", "width='100vw',height='100vh'");
53
+ l && (l.document.body.innerText = b, l.document.close());
54
+ }, y = () => {
55
55
  const P = {
56
56
  pageConfig: e.globalPageConfiguration,
57
57
  paramsConfig: e.parametersPageConfiguration
58
- }, g = JSON.stringify(P);
59
- I(g);
58
+ }, b = JSON.stringify(P);
59
+ I(b);
60
60
  const n = new CustomEvent("lf-pagebuilder:save", {
61
61
  detail: { ...P, inputId: e.inputId }
62
62
  });
63
63
  if (document.dispatchEvent(n), e.inputId) {
64
- const a = document.getElementById(e.inputId);
65
- a && (a.value = g);
64
+ const l = document.getElementById(e.inputId);
65
+ l && (l.value = b);
66
66
  }
67
67
  if (p.value = !0, setTimeout(() => {
68
68
  p.value = !1;
69
69
  }, 3e3), e.submitForm && u.value) {
70
- const a = u.value.closest("form");
71
- a && a.submit();
70
+ const l = u.value.closest("form");
71
+ l && l.submit();
72
72
  }
73
73
  }, I = (P) => {
74
- const g = e.inputId ? `pageBuilderConfig_${e.inputId}` : "pageBuilderConfig";
75
- localStorage.setItem(g, P);
74
+ const b = e.inputId ? `pageBuilderConfig_${e.inputId}` : "pageBuilderConfig";
75
+ localStorage.setItem(b, P);
76
76
  };
77
77
  return {
78
78
  validateSeo: () => {
79
79
  const P = {
80
80
  pageConfig: e.globalPageConfiguration,
81
81
  paramsConfig: e.parametersPageConfiguration
82
- }, g = JSON.stringify(P, null, 2);
82
+ }, b = JSON.stringify(P, null, 2);
83
83
  fetch(o + "/api/render-html/", {
84
84
  method: "POST",
85
85
  headers: {
86
86
  "Content-Type": "application/json"
87
87
  },
88
- body: g
88
+ body: b
89
89
  }).then((n) => n.text()).then((n) => {
90
- const a = window.open("", "Preview", "width='100vw',height='100vh'");
91
- if (!a) return;
92
- const j = new DOMParser().parseFromString(n, "text/html"), B = [];
93
- function N(H, _ = 0) {
94
- if (!H || H.nodeType !== 1) return;
95
- const ee = H.tagName.toLowerCase();
96
- ["h1", "h2", "h3", "h4", "h5", "h6", "a", "p", "article", "section", "header", "footer"].includes(ee) && B.push({
90
+ const l = window.open("", "Preview", "width='100vw',height='100vh'");
91
+ if (!l) return;
92
+ const j = new DOMParser().parseFromString(n, "text/html"), E = [];
93
+ function N(J, _ = 0) {
94
+ if (!J || J.nodeType !== 1) return;
95
+ const ee = J.tagName.toLowerCase();
96
+ ["h1", "h2", "h3", "h4", "h5", "h6", "a", "p", "article", "section", "header", "footer"].includes(ee) && E.push({
97
97
  tag: ee,
98
- text: (H.textContent || "").trim().slice(0, 80),
98
+ text: (J.textContent || "").trim().slice(0, 80),
99
99
  depth: _
100
- }), Array.from(H.children).forEach((te) => N(te, _ + 1));
100
+ }), Array.from(J.children).forEach((te) => N(te, _ + 1));
101
101
  }
102
102
  N(j.body);
103
103
  let X = '<h2>Estructura SEO</h2><ul style="font-family:monospace">';
104
- B.forEach((H) => {
105
- X += `<li style="margin-left:${H.depth * 20}px"><b>${H.tag}</b>: ${H.text}</li>`;
106
- }), X += "</ul>", a.document.body.innerHTML = X, a.document.close();
104
+ E.forEach((J) => {
105
+ X += `<li style="margin-left:${J.depth * 20}px"><b>${J.tag}</b>: ${J.text}</li>`;
106
+ }), X += "</ul>", l.document.body.innerHTML = X, l.document.close();
107
107
  });
108
108
  },
109
- importConfig: b,
110
- showAdvancedConfig: $,
109
+ importConfig: g,
110
+ showAdvancedConfig: F,
111
111
  previewFunction: () => {
112
112
  const P = {
113
113
  pageConfig: e.globalPageConfiguration,
114
114
  paramsConfig: e.parametersPageConfiguration
115
- }, g = JSON.stringify(P, null, 2);
115
+ }, b = JSON.stringify(P, null, 2);
116
116
  fetch(o + "/api/render-html/", {
117
117
  method: "POST",
118
118
  headers: {
119
119
  "Content-Type": "application/json"
120
120
  },
121
- body: g
121
+ body: b
122
122
  }).then((n) => n.text()).then((n) => {
123
- const a = window.open("", "Preview", "width='100vw',height='100vh'");
124
- a && (a.document.body.innerHTML = n, a.document.querySelectorAll("script").forEach((j) => {
123
+ const l = window.open("", "Preview", "width='100vw',height='100vh'");
124
+ l && (l.document.body.innerHTML = n, l.document.querySelectorAll("script").forEach((j) => {
125
125
  var N;
126
- const B = a.document.createElement("script");
127
- j.src ? B.src = j.src : B.textContent = j.textContent, (N = j.parentNode) == null || N.replaceChild(B, j);
128
- }), a.document.close());
126
+ const E = l.document.createElement("script");
127
+ j.src ? E.src = j.src : E.textContent = j.textContent, (N = j.parentNode) == null || N.replaceChild(E, j);
128
+ }), l.document.close());
129
129
  });
130
130
  },
131
131
  importFunction: () => {
132
- e.importConfigurationFunction && e.importConfigurationFunction(b.value), b.value = "";
132
+ e.importConfigurationFunction && e.importConfigurationFunction(g.value), g.value = "";
133
133
  },
134
134
  exportFunction: m,
135
- saveButtonAction: w,
135
+ saveButtonAction: y,
136
136
  loadFromLocalStorage: () => {
137
- const P = e.inputId ? `pageBuilderConfig_${e.inputId}` : "pageBuilderConfig", g = localStorage.getItem(P);
138
- if (g && e.importConfigurationFunction) {
139
- const n = JSON.parse(g);
137
+ const P = e.inputId ? `pageBuilderConfig_${e.inputId}` : "pageBuilderConfig", b = localStorage.getItem(P);
138
+ if (b && e.importConfigurationFunction) {
139
+ const n = JSON.parse(b);
140
140
  e.importConfigurationFunction(n);
141
141
  }
142
142
  },
@@ -144,35 +144,35 @@ const Ce = W({
144
144
  const P = document.querySelector(".lf-page-builder");
145
145
  P && P.classList.toggle("expanded-page-builder");
146
146
  },
147
- sectionWidth: s,
147
+ sectionWidth: i,
148
148
  isSaved: p,
149
149
  componentRoot: u
150
150
  };
151
151
  }
152
- }), $e = (e, o) => {
153
- const b = e.__vccOpts || e;
154
- for (const [$, p] of o)
155
- b[$] = p;
156
- return b;
157
- }, ke = { ref: "componentRoot" }, Se = {
152
+ }), ke = (e, o) => {
153
+ const g = e.__vccOpts || e;
154
+ for (const [F, p] of o)
155
+ g[F] = p;
156
+ return g;
157
+ }, Se = { ref: "componentRoot" }, Fe = {
158
158
  key: 0,
159
159
  class: "flex justify-end items-center w-full p-3 gap-3"
160
- }, Fe = { class: "flex justify-end items-center p-2 gap-3 bg-gradient-to-l from-lime-50 to-green-100 border border-lime-400 rounded-lg w-auto" }, Pe = { class: "flex justify-between gap-3 px-5 py-3 bg-white mx-3 rounded-xl border border-slate-200 mb-6 sticky top-2 z-9999 shadow-lg backdrop-blur-sm" }, je = { class: "flex gap-2" }, Me = { class: "flex gap-2" }, Ie = ["value"], Ae = ["value"], Be = { value: "full" }, Ee = { value: "1/2" }, Te = { value: "1/3" }, De = { value: "2/3" }, Oe = { value: "1/4" }, Re = { value: "3/4" }, Ve = { value: "1/5" }, ze = { value: "2/5" }, Ne = { value: "3/5" }, Ue = { value: "4/5" }, qe = { key: 0 }, Le = { key: 1 }, Ge = { class: "flex items-center gap-2" }, He = {
160
+ }, Pe = { class: "flex justify-end items-center p-2 gap-3 bg-gradient-to-l from-lime-50 to-green-100 border border-lime-400 rounded-lg w-auto" }, je = { class: "flex justify-between gap-3 px-5 py-3 bg-white mx-3 rounded-xl border border-slate-200 mb-6 sticky top-2 z-9999 shadow-lg backdrop-blur-sm" }, Me = { class: "flex gap-2" }, Ie = { class: "flex gap-2" }, Ae = ["value"], Be = ["value"], Ee = { value: "full" }, Te = { value: "1/2" }, De = { value: "1/3" }, Oe = { value: "2/3" }, Re = { value: "1/4" }, Ve = { value: "3/4" }, ze = { value: "1/5" }, Ne = { value: "2/5" }, Ue = { value: "3/5" }, qe = { value: "4/5" }, Le = { key: 0 }, Ge = { key: 1 }, Je = { class: "flex items-center gap-2" }, He = {
161
161
  key: 1,
162
162
  class: "bg-white border border-slate-200 rounded-2xl p-5 mx-3 mb-6 shadow-lg"
163
- }, Je = { class: "flex flex-row gap-4 w-full" }, We = { class: "border border-slate-200 rounded-xl p-5 w-full bg-gradient-to-br from-slate-50 to-white" }, Ye = { class: "flex flex-col gap-3 border-b border-slate-200 pb-4 w-full" }, Ke = { class: "mb-3" }, Qe = { class: "flex items-center gap-3 cursor-pointer group" }, Xe = { class: "mb-3" }, Ze = { class: "flex items-center gap-3 cursor-pointer group" }, _e = { class: "mb-3" }, et = { class: "mb-3" }, tt = { class: "mb-3" }, ot = { class: "border border-slate-200 rounded-xl p-5 w-full bg-gradient-to-br from-slate-50 to-white" }, nt = { class: "flex justify-between items-center mb-4" }, lt = { class: "flex flex-col gap-3 border-b border-slate-200 pb-4 w-full" }, at = { class: "mb-3" }, rt = { class: "mb-3" }, st = { class: "mb-3" };
164
- function it(e, o, b, $, p, u) {
165
- return i(), d("div", ke, [
166
- e.debugMode ? (i(), d("div", Se, [
167
- t("div", Fe, [
163
+ }, We = { class: "flex flex-row gap-4 w-full" }, Ye = { class: "border border-slate-200 rounded-xl p-5 w-full bg-gradient-to-br from-slate-50 to-white" }, Ke = { class: "flex flex-col gap-3 border-b border-slate-200 pb-4 w-full" }, Qe = { class: "mb-3" }, Xe = { class: "flex items-center gap-3 cursor-pointer group" }, Ze = { class: "mb-3" }, _e = { class: "flex items-center gap-3 cursor-pointer group" }, et = { class: "mb-3" }, tt = { class: "mb-3" }, ot = { class: "mb-3" }, nt = { class: "border border-slate-200 rounded-xl p-5 w-full bg-gradient-to-br from-slate-50 to-white" }, lt = { class: "flex justify-between items-center mb-4" }, at = { class: "flex flex-col gap-3 border-b border-slate-200 pb-4 w-full" }, rt = { class: "mb-3" }, st = { class: "mb-3" }, it = { class: "mb-3" };
164
+ function dt(e, o, g, F, p, u) {
165
+ return s(), d("div", Se, [
166
+ e.debugMode ? (s(), d("div", Fe, [
167
+ t("div", Pe, [
168
168
  o[30] || (o[30] = t("span", { class: "bg-gradient-to-r from-lime-200 to-green-300 px-3 py-1 rounded-full border border-lime-600 text-lime-800 text-xs font-medium me-4 italic" }, "MODO DEBUG 🐞", -1)),
169
169
  t("form", {
170
170
  onSubmit: o[2] || (o[2] = le(() => {
171
171
  }, ["prevent"])),
172
172
  class: "flex gap-2"
173
173
  }, [
174
- O(t("input", {
175
- "onUpdate:modelValue": o[0] || (o[0] = (s) => e.importConfig = s),
174
+ R(t("input", {
175
+ "onUpdate:modelValue": o[0] || (o[0] = (i) => e.importConfig = i),
176
176
  type: "text",
177
177
  class: "bg-white border border-slate-200 rounded-lg px-3 py-1.5 text-sm focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400",
178
178
  name: "",
@@ -183,67 +183,67 @@ function it(e, o, b, $, p, u) {
183
183
  ]),
184
184
  t("button", {
185
185
  type: "button",
186
- onClick: o[1] || (o[1] = (s) => e.importFunction()),
186
+ onClick: o[1] || (o[1] = (i) => e.importFunction()),
187
187
  class: "cursor-pointer bg-white hover:bg-slate-700 hover:text-white border border-slate-200 hover:border-slate-700 rounded-lg px-3 py-1.5 text-sm font-medium transition-all duration-200 shadow-sm hover:shadow-md"
188
188
  }, "🏯 Importar")
189
189
  ], 32),
190
190
  t("button", {
191
191
  type: "button",
192
- onClick: o[3] || (o[3] = (s) => e.exportFunction()),
192
+ onClick: o[3] || (o[3] = (i) => e.exportFunction()),
193
193
  class: "cursor-pointer bg-white hover:bg-slate-700 hover:text-white border border-slate-200 hover:border-slate-700 rounded-lg px-3 py-1.5 text-sm font-medium transition-all duration-200 shadow-sm hover:shadow-md"
194
194
  }, "🚀 Exportar")
195
195
  ])
196
- ])) : S("", !0),
197
- t("div", Pe, [
198
- t("div", je, [
196
+ ])) : $("", !0),
197
+ t("div", je, [
198
+ t("div", Me, [
199
199
  t("button", {
200
200
  type: "button",
201
201
  class: G([[e.isComponentMode ? "bg-gradient-to-r from-slate-600 to-slate-700 border-slate-700 text-white shadow-md" : "bg-white hover:bg-slate-100"], "cursor-pointer border border-slate-200 rounded-lg py-1.5 px-3 text-sm font-medium transition-all duration-200"]),
202
- onClick: o[4] || (o[4] = (s) => {
202
+ onClick: o[4] || (o[4] = (i) => {
203
203
  var m;
204
204
  return (m = e.toggleComponentModeFunction) == null ? void 0 : m.call(e);
205
205
  })
206
- }, v(e.isComponentMode ? "⚒️ Modo Configuración" : "👁️ Modo Visual"), 3),
206
+ }, x(e.isComponentMode ? "⚒️ Modo Configuración" : "👁️ Modo Visual"), 3),
207
207
  t("button", {
208
208
  type: "button",
209
209
  class: G([[e.fullwidthMode ? "bg-white hover:bg-slate-100" : "bg-gradient-to-r from-slate-600 to-slate-700 border-slate-700 text-white shadow-md"], "cursor-pointer border border-slate-200 rounded-lg py-1.5 px-3 text-sm font-medium transition-all duration-200"]),
210
- onClick: o[5] || (o[5] = (s) => {
210
+ onClick: o[5] || (o[5] = (i) => {
211
211
  var m;
212
212
  return (m = e.toggleFullwidthMode) == null ? void 0 : m.call(e);
213
213
  })
214
- }, v(e.fullwidthMode ? "⚒️ Comps. Plegados" : "👁️ Comps. Desplegados"), 3)
214
+ }, x(e.fullwidthMode ? "⚒️ Comps. Plegados" : "👁️ Comps. Desplegados"), 3)
215
215
  ]),
216
- t("div", Me, [
216
+ t("div", Ie, [
217
217
  t("select", {
218
218
  value: e.sectionSelected,
219
- onChange: o[6] || (o[6] = (s) => e.$emit("update:sectionSelected", s.target.value)),
219
+ onChange: o[6] || (o[6] = (i) => e.$emit("update:sectionSelected", i.target.value)),
220
220
  class: "bg-white border border-slate-200 rounded-lg px-3 py-1.5 cursor-pointer text-sm focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 transition-colors"
221
221
  }, [
222
- (i(!0), d(A, null, V(e.availableSections, (s, m) => (i(), d("option", {
222
+ (s(!0), d(B, null, z(e.availableSections, (i, m) => (s(), d("option", {
223
223
  key: m,
224
- value: s
225
- }, v(s), 9, Ae))), 128))
226
- ], 40, Ie),
227
- O(t("select", {
224
+ value: i
225
+ }, x(i), 9, Be))), 128))
226
+ ], 40, Ae),
227
+ R(t("select", {
228
228
  class: "bg-white border border-slate-200 rounded-lg px-3 py-1.5 cursor-pointer text-sm focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 transition-colors",
229
- "onUpdate:modelValue": o[7] || (o[7] = (s) => e.sectionWidth = s)
229
+ "onUpdate:modelValue": o[7] || (o[7] = (i) => e.sectionWidth = i)
230
230
  }, [
231
231
  o[31] || (o[31] = t("option", {
232
232
  disabled: "",
233
233
  value: ""
234
234
  }, "Selecciona el ancho de la sección", -1)),
235
- t("option", Be, "Sección " + v(e.sectionSelected) + " ocupa todo el ancho de la página", 1),
236
- t("option", Ee, "Sección " + v(e.sectionSelected) + " ocupa 1/2 del ancho de la página", 1),
237
- t("option", Te, "Sección " + v(e.sectionSelected) + " ocupa 1/3 del ancho de la página", 1),
238
- t("option", De, "Sección " + v(e.sectionSelected) + " ocupa 2/3 del ancho de la página", 1),
239
- t("option", Oe, "Sección " + v(e.sectionSelected) + " ocupa 1/4 del ancho de la página", 1),
240
- t("option", Re, "Sección " + v(e.sectionSelected) + " ocupa 3/4 del ancho de la página", 1),
241
- t("option", Ve, "Sección " + v(e.sectionSelected) + " ocupa 1/5 del ancho de la página", 1),
242
- t("option", ze, "Sección " + v(e.sectionSelected) + " ocupa 2/5 del ancho de la página", 1),
243
- t("option", Ne, "Sección " + v(e.sectionSelected) + " ocupa 3/5 del ancho de la página", 1),
244
- t("option", Ue, "Sección " + v(e.sectionSelected) + " ocupa 4/5 del ancho de la página", 1)
235
+ t("option", Ee, "Sección " + x(e.sectionSelected) + " ocupa todo el ancho de la página", 1),
236
+ t("option", Te, "Sección " + x(e.sectionSelected) + " ocupa 1/2 del ancho de la página", 1),
237
+ t("option", De, "Sección " + x(e.sectionSelected) + " ocupa 1/3 del ancho de la página", 1),
238
+ t("option", Oe, "Sección " + x(e.sectionSelected) + " ocupa 2/3 del ancho de la página", 1),
239
+ t("option", Re, "Sección " + x(e.sectionSelected) + " ocupa 1/4 del ancho de la página", 1),
240
+ t("option", Ve, "Sección " + x(e.sectionSelected) + " ocupa 3/4 del ancho de la página", 1),
241
+ t("option", ze, "Sección " + x(e.sectionSelected) + " ocupa 1/5 del ancho de la página", 1),
242
+ t("option", Ne, "Sección " + x(e.sectionSelected) + " ocupa 2/5 del ancho de la página", 1),
243
+ t("option", Ue, "Sección " + x(e.sectionSelected) + " ocupa 3/5 del ancho de la página", 1),
244
+ t("option", qe, "Sección " + x(e.sectionSelected) + " ocupa 4/5 del ancho de la página", 1)
245
245
  ], 512), [
246
- [J, e.sectionWidth]
246
+ [H, e.sectionWidth]
247
247
  ]),
248
248
  t("button", {
249
249
  type: "button",
@@ -251,50 +251,50 @@ function it(e, o, b, $, p, u) {
251
251
  "cursor-pointer border rounded-lg py-1.5 px-3 text-sm font-medium transition-all duration-200 flex items-center gap-2",
252
252
  e.showAdvancedConfig ? "bg-gradient-to-r from-amber-500 to-orange-500 border-amber-500 text-white shadow-md" : "bg-white border-slate-200 hover:bg-slate-100"
253
253
  ]),
254
- onClick: o[8] || (o[8] = (s) => e.showAdvancedConfig = !e.showAdvancedConfig)
254
+ onClick: o[8] || (o[8] = (i) => e.showAdvancedConfig = !e.showAdvancedConfig)
255
255
  }, [
256
256
  o[32] || (o[32] = t("span", null, "⚙️ Página", -1)),
257
- e.showAdvancedConfig ? (i(), d("span", qe, "▲")) : (i(), d("span", Le, "▼"))
257
+ e.showAdvancedConfig ? (s(), d("span", Le, "▲")) : (s(), d("span", Ge, "▼"))
258
258
  ], 2)
259
259
  ]),
260
- t("div", Ge, [
260
+ t("div", Je, [
261
261
  t("button", {
262
262
  type: "button",
263
- onClick: o[9] || (o[9] = (s) => e.previewFunction()),
263
+ onClick: o[9] || (o[9] = (i) => e.previewFunction()),
264
264
  class: "cursor-pointer bg-white hover:bg-violet-500 hover:text-white hover:border-violet-500 border border-slate-200 rounded-lg px-3 py-1.5 text-sm font-medium transition-all duration-200 shadow-sm hover:shadow-md"
265
265
  }, "🔎 Preview"),
266
266
  t("button", {
267
267
  type: "button",
268
- onClick: o[10] || (o[10] = (s) => e.saveButtonAction()),
268
+ onClick: o[10] || (o[10] = (i) => e.saveButtonAction()),
269
269
  title: "Guardar configuración en localStorage y disparar evento global",
270
270
  class: "cursor-pointer bg-gradient-to-r from-emerald-500 to-teal-500 hover:from-emerald-600 hover:to-teal-600 text-white border border-emerald-500 rounded-lg px-3 py-1.5 text-sm font-medium transition-all duration-200 shadow-sm hover:shadow-md"
271
- }, v(e.isSaved ? e.submitForm ? "⏳ Submiteando formulario" : "✅ Se ha guardado correctamente" : "💾 Guardar"), 1),
272
- e.debugMode ? (i(), d("button", {
271
+ }, x(e.isSaved ? e.submitForm ? "⏳ Submiteando formulario" : "✅ Se ha guardado correctamente" : "💾 Guardar"), 1),
272
+ e.debugMode ? (s(), d("button", {
273
273
  key: 0,
274
274
  type: "button",
275
- onClick: o[11] || (o[11] = (s) => e.loadFromLocalStorage()),
275
+ onClick: o[11] || (o[11] = (i) => e.loadFromLocalStorage()),
276
276
  class: "cursor-pointer bg-white hover:bg-blue-500 hover:text-white hover:border-blue-500 border border-slate-200 rounded-lg px-3 py-1.5 text-sm font-medium transition-all duration-200 shadow-sm hover:shadow-md"
277
- }, "⤵️ Cargar")) : S("", !0),
277
+ }, "⤵️ Cargar")) : $("", !0),
278
278
  t("button", {
279
279
  type: "button",
280
- onClick: o[12] || (o[12] = (s) => e.toggleExpandScreen()),
280
+ onClick: o[12] || (o[12] = (i) => e.toggleExpandScreen()),
281
281
  title: "Expandir / Contraer Pagebuilder",
282
282
  class: "cursor-pointer bg-white hover:bg-slate-700 hover:text-white hover:border-slate-700 border border-slate-200 rounded-lg px-3 py-1.5 text-xl transition-all duration-200 shadow-sm hover:shadow-md ms-2"
283
283
  }, "◳")
284
284
  ])
285
285
  ]),
286
- e.showAdvancedConfig && e.parametersPageConfiguration ? (i(), d("div", He, [
287
- t("div", Je, [
288
- t("div", We, [
286
+ e.showAdvancedConfig && e.parametersPageConfiguration ? (s(), d("div", He, [
287
+ t("div", We, [
288
+ t("div", Ye, [
289
289
  o[38] || (o[38] = t("h2", { class: "text-lg font-bold mb-4 text-slate-700" }, "Configuración Avanzada", -1)),
290
290
  o[39] || (o[39] = t("h3", { class: "font-semibold mb-3 text-slate-600" }, "Configuración Global", -1)),
291
- t("div", Ye, [
292
- t("div", Ke, [
293
- t("label", Qe, [
294
- O(t("input", {
291
+ t("div", Ke, [
292
+ t("div", Qe, [
293
+ t("label", Xe, [
294
+ R(t("input", {
295
295
  type: "checkbox",
296
- "onUpdate:modelValue": o[13] || (o[13] = (s) => e.parametersPageConfiguration.global.sidebarEnabled = s),
297
- onChange: o[14] || (o[14] = (s) => e.$emit("update:parametersPageConfiguration.global.sidebarEnabled", s.target.value)),
296
+ "onUpdate:modelValue": o[13] || (o[13] = (i) => e.parametersPageConfiguration.global.sidebarEnabled = i),
297
+ onChange: o[14] || (o[14] = (i) => e.$emit("update:parametersPageConfiguration.global.sidebarEnabled", i.target.value)),
298
298
  class: "w-5 h-5 rounded border-slate-300 text-emerald-500 focus:ring-emerald-500 cursor-pointer"
299
299
  }, null, 544), [
300
300
  [ne, e.parametersPageConfiguration.global.sidebarEnabled]
@@ -302,12 +302,12 @@ function it(e, o, b, $, p, u) {
302
302
  o[33] || (o[33] = t("span", { class: "text-slate-600 group-hover:text-slate-800 transition-colors" }, "Sidebar Habilitado", -1))
303
303
  ])
304
304
  ]),
305
- t("div", Xe, [
306
- t("label", Ze, [
307
- O(t("input", {
305
+ t("div", Ze, [
306
+ t("label", _e, [
307
+ R(t("input", {
308
308
  type: "checkbox",
309
- "onUpdate:modelValue": o[15] || (o[15] = (s) => e.parametersPageConfiguration.global.renderAsBodyPart = s),
310
- onChange: o[16] || (o[16] = (s) => e.$emit("update:parametersPageConfiguration.global.renderAsBodyPart", s.target.value)),
309
+ "onUpdate:modelValue": o[15] || (o[15] = (i) => e.parametersPageConfiguration.global.renderAsBodyPart = i),
310
+ onChange: o[16] || (o[16] = (i) => e.$emit("update:parametersPageConfiguration.global.renderAsBodyPart", i.target.value)),
311
311
  class: "w-5 h-5 rounded border-slate-300 text-emerald-500 focus:ring-emerald-500 cursor-pointer"
312
312
  }, null, 544), [
313
313
  [ne, e.parametersPageConfiguration.global.renderAsBodyPart]
@@ -315,15 +315,15 @@ function it(e, o, b, $, p, u) {
315
315
  o[34] || (o[34] = t("span", { class: "text-slate-600 group-hover:text-slate-800 transition-colors" }, "Renderizar como parte del BODY (Sin etiquetas HTML, HEAD, BODY)", -1))
316
316
  ])
317
317
  ]),
318
- t("div", _e, [
318
+ t("div", et, [
319
319
  o[35] || (o[35] = t("label", {
320
320
  for: "headSlot",
321
321
  class: "block text-sm font-medium text-slate-600 mb-2"
322
322
  }, " Código al final de la sección <head> ", -1)),
323
- O(t("textarea", {
323
+ R(t("textarea", {
324
324
  id: "headSlot",
325
- "onUpdate:modelValue": o[17] || (o[17] = (s) => e.parametersPageConfiguration.global.headSlot = s),
326
- onInput: o[18] || (o[18] = (s) => e.$emit("update:parametersPageConfiguration.global.headSlot", s.target.value)),
325
+ "onUpdate:modelValue": o[17] || (o[17] = (i) => e.parametersPageConfiguration.global.headSlot = i),
326
+ onInput: o[18] || (o[18] = (i) => e.$emit("update:parametersPageConfiguration.global.headSlot", i.target.value)),
327
327
  class: "w-full px-4 py-3 border border-slate-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 bg-white text-sm font-mono transition-colors",
328
328
  placeholder: "Contenido para el head",
329
329
  rows: "3"
@@ -331,15 +331,15 @@ function it(e, o, b, $, p, u) {
331
331
  [Q, e.parametersPageConfiguration.global.headSlot]
332
332
  ])
333
333
  ]),
334
- t("div", et, [
334
+ t("div", tt, [
335
335
  o[36] || (o[36] = t("label", {
336
336
  for: "bodyBeginSlot",
337
337
  class: "block text-sm font-medium text-slate-600 mb-2"
338
338
  }, " Código al principio de la sección <body> ", -1)),
339
- O(t("textarea", {
339
+ R(t("textarea", {
340
340
  id: "bodyBeginSlot",
341
- "onUpdate:modelValue": o[19] || (o[19] = (s) => e.parametersPageConfiguration.global.bodyBeginSlot = s),
342
- onInput: o[20] || (o[20] = (s) => e.$emit("update:parametersPageConfiguration.global.bodyBeginSlot", s.target.value)),
341
+ "onUpdate:modelValue": o[19] || (o[19] = (i) => e.parametersPageConfiguration.global.bodyBeginSlot = i),
342
+ onInput: o[20] || (o[20] = (i) => e.$emit("update:parametersPageConfiguration.global.bodyBeginSlot", i.target.value)),
343
343
  class: "w-full px-4 py-3 border border-slate-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 bg-white text-sm font-mono transition-colors",
344
344
  placeholder: "Contenido para el inicio del body",
345
345
  rows: "3"
@@ -347,15 +347,15 @@ function it(e, o, b, $, p, u) {
347
347
  [Q, e.parametersPageConfiguration.global.bodyBeginSlot]
348
348
  ])
349
349
  ]),
350
- t("div", tt, [
350
+ t("div", ot, [
351
351
  o[37] || (o[37] = t("label", {
352
352
  for: "footerSlot",
353
353
  class: "block text-sm font-medium text-slate-600 mb-2"
354
354
  }, " Código al final de la sección <body>, dentro de la etiqueta <footer> ", -1)),
355
- O(t("textarea", {
355
+ R(t("textarea", {
356
356
  id: "footerSlot",
357
- "onUpdate:modelValue": o[21] || (o[21] = (s) => e.parametersPageConfiguration.global.footerSlot = s),
358
- onInput: o[22] || (o[22] = (s) => e.$emit("update:parametersPageConfiguration.global.footerSlot", s.target.value)),
357
+ "onUpdate:modelValue": o[21] || (o[21] = (i) => e.parametersPageConfiguration.global.footerSlot = i),
358
+ onInput: o[22] || (o[22] = (i) => e.$emit("update:parametersPageConfiguration.global.footerSlot", i.target.value)),
359
359
  class: "w-full px-4 py-3 border border-slate-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 bg-white text-sm font-mono transition-colors",
360
360
  placeholder: "Contenido para el footer",
361
361
  rows: "3"
@@ -365,58 +365,58 @@ function it(e, o, b, $, p, u) {
365
365
  ])
366
366
  ])
367
367
  ]),
368
- t("div", ot, [
369
- t("div", nt, [
368
+ t("div", nt, [
369
+ t("div", lt, [
370
370
  o[40] || (o[40] = t("h2", { class: "text-lg font-bold text-slate-700" }, "Configuración SEO", -1)),
371
371
  t("button", {
372
372
  type: "button",
373
- onClick: o[23] || (o[23] = (s) => e.validateSeo()),
373
+ onClick: o[23] || (o[23] = (i) => e.validateSeo()),
374
374
  class: "cursor-pointer bg-gradient-to-r from-violet-500 to-purple-500 hover:from-violet-600 hover:to-purple-600 text-white border border-violet-500 rounded-lg px-4 py-1.5 text-sm font-medium transition-all duration-200 shadow-sm hover:shadow-md"
375
375
  }, "🦄 Validar SEO")
376
376
  ]),
377
- t("div", lt, [
378
- t("div", at, [
377
+ t("div", at, [
378
+ t("div", rt, [
379
379
  o[42] || (o[42] = t("label", {
380
380
  for: "robotsIndex",
381
381
  class: "block text-sm font-medium text-slate-600 mb-2"
382
382
  }, " Indexación de robots ", -1)),
383
- O(t("select", {
383
+ R(t("select", {
384
384
  id: "robotsIndex",
385
- "onUpdate:modelValue": o[24] || (o[24] = (s) => e.parametersPageConfiguration.seo.robots = s),
386
- onChange: o[25] || (o[25] = (s) => e.$emit("update:parametersPageConfiguration.seo.robots", s.target.value)),
385
+ "onUpdate:modelValue": o[24] || (o[24] = (i) => e.parametersPageConfiguration.seo.robots = i),
386
+ onChange: o[25] || (o[25] = (i) => e.$emit("update:parametersPageConfiguration.seo.robots", i.target.value)),
387
387
  class: "w-full px-4 py-2.5 border border-slate-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 bg-white text-sm transition-colors cursor-pointer"
388
388
  }, [...o[41] || (o[41] = [
389
389
  t("option", { value: "index, follow" }, "Index Follow", -1),
390
390
  t("option", { value: "noindex, nofollow" }, "Noindex Nofollow", -1)
391
391
  ])], 544), [
392
- [J, e.parametersPageConfiguration.seo.robots]
392
+ [H, e.parametersPageConfiguration.seo.robots]
393
393
  ])
394
394
  ]),
395
- t("div", rt, [
395
+ t("div", st, [
396
396
  o[43] || (o[43] = t("label", {
397
397
  for: "pageTitle",
398
398
  class: "block text-sm font-medium text-slate-600 mb-2"
399
399
  }, " Título de la página ", -1)),
400
- O(t("input", {
400
+ R(t("input", {
401
401
  id: "pageTitle",
402
402
  type: "text",
403
- "onUpdate:modelValue": o[26] || (o[26] = (s) => e.parametersPageConfiguration.seo.title = s),
404
- onInput: o[27] || (o[27] = (s) => e.$emit("update:parametersPageConfiguration.seo.title", s.target.value)),
403
+ "onUpdate:modelValue": o[26] || (o[26] = (i) => e.parametersPageConfiguration.seo.title = i),
404
+ onInput: o[27] || (o[27] = (i) => e.$emit("update:parametersPageConfiguration.seo.title", i.target.value)),
405
405
  class: "w-full px-4 py-2.5 border border-slate-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 bg-white text-sm transition-colors",
406
406
  placeholder: "Ingresa el título de la página"
407
407
  }, null, 544), [
408
408
  [Q, e.parametersPageConfiguration.seo.title]
409
409
  ])
410
410
  ]),
411
- t("div", st, [
411
+ t("div", it, [
412
412
  o[44] || (o[44] = t("label", {
413
413
  for: "pageDescription",
414
414
  class: "block text-sm font-medium text-slate-600 mb-2"
415
415
  }, " Descripción de la página ", -1)),
416
- O(t("textarea", {
416
+ R(t("textarea", {
417
417
  id: "pageDescription",
418
- "onUpdate:modelValue": o[28] || (o[28] = (s) => e.parametersPageConfiguration.seo.description = s),
419
- onInput: o[29] || (o[29] = (s) => e.$emit("update:parametersPageConfiguration.seo.description", s.target.value)),
418
+ "onUpdate:modelValue": o[28] || (o[28] = (i) => e.parametersPageConfiguration.seo.description = i),
419
+ onInput: o[29] || (o[29] = (i) => e.$emit("update:parametersPageConfiguration.seo.description", i.target.value)),
420
420
  class: "w-full px-4 py-3 border border-slate-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 bg-white text-sm transition-colors",
421
421
  placeholder: "Ingresa la descripción de la página",
422
422
  rows: "3"
@@ -427,16 +427,16 @@ function it(e, o, b, $, p, u) {
427
427
  ])
428
428
  ])
429
429
  ])
430
- ])) : S("", !0)
430
+ ])) : $("", !0)
431
431
  ], 512);
432
432
  }
433
- const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
433
+ const ut = /* @__PURE__ */ ke($e, [["render", dt]]), ct = {
434
434
  key: 0,
435
435
  class: "absolute top-0 left-0 bg-white/90 w-full h-full z-100"
436
- }, ct = { class: "w-full flex justify-end p-4" }, mt = ["for"], bt = {
436
+ }, mt = { class: "w-full flex justify-end p-4" }, bt = ["for"], gt = {
437
437
  key: 0,
438
438
  class: "text-red-500"
439
- }, gt = ["id", "name", "placeholder", "required", "value", "onInput"], ft = ["id", "name", "data-mandatoryCrops", "placeholder", "required", "value", "onInput"], pt = ["id", "name", "required", "value", "onInput"], vt = ["value"], xt = ["id", "name", "required", "checked", "onChange"], ie = /* @__PURE__ */ W({
439
+ }, ft = ["id", "name", "placeholder", "required", "value", "onInput"], pt = ["id", "name", "data-mandatoryCrops", "placeholder", "required", "value", "onInput"], vt = ["id", "name", "required", "value", "onInput"], xt = ["value"], ht = ["id", "name", "required", "checked", "onChange"], ie = /* @__PURE__ */ W({
440
440
  __name: "FieldsForm",
441
441
  props: {
442
442
  object: {
@@ -453,16 +453,16 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
453
453
  }
454
454
  },
455
455
  setup(e) {
456
- const o = e, b = ($, p) => {
457
- const u = (o.object.fields || []).find((s) => s.name === $);
456
+ const o = e, g = (F, p) => {
457
+ const u = (o.object.fields || []).find((i) => i.name === F);
458
458
  u && (u.example_value = p);
459
459
  };
460
- return ($, p) => (i(), d(A, null, [
461
- e.showForm ? (i(), d("div", ut)) : S("", !0),
460
+ return (F, p) => (s(), d(B, null, [
461
+ e.showForm ? (s(), d("div", ct)) : $("", !0),
462
462
  t("div", {
463
463
  class: G(e.showForm ? "relative top-0 w-full text-slate-600 border-1 my-2 px-4 pt-2 pb-3 w-full border-slate-200 bg-slate-50 inline-block rounded-lg flex flex-col z-101" : "hidden")
464
464
  }, [
465
- t("div", ct, [
465
+ t("div", mt, [
466
466
  t("span", {
467
467
  onClick: p[0] || (p[0] = //@ts-ignore
468
468
  (...u) => e.toggleShowForm && e.toggleShowForm(...u)),
@@ -470,94 +470,94 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
470
470
  }, "❌")
471
471
  ]),
472
472
  t("form", null, [
473
- (i(!0), d(A, null, V(e.object.fields, (u, s) => (i(), d("div", {
474
- key: s,
473
+ (s(!0), d(B, null, z(e.object.fields, (u, i) => (s(), d("div", {
474
+ key: i,
475
475
  class: "mb-4"
476
476
  }, [
477
477
  t("label", {
478
- for: `${e.object.id}-${u.name}-${s}`,
478
+ for: `${e.object.id}-${u.name}-${i}`,
479
479
  class: "block text-sm font-medium mb-1"
480
480
  }, [
481
- E(v(u.label) + " ", 1),
482
- u.mandatory ? (i(), d("span", bt, "*")) : S("", !0)
483
- ], 8, mt),
484
- u.type === "text" ? (i(), d("input", {
481
+ D(x(u.label) + " ", 1),
482
+ u.mandatory ? (s(), d("span", gt, "*")) : $("", !0)
483
+ ], 8, bt),
484
+ u.type === "text" ? (s(), d("input", {
485
485
  key: 0,
486
- id: `${e.object.id}-${u.name}-${s}`,
487
- name: `${e.object.id}-${u.name}-${s}`,
486
+ id: `${e.object.id}-${u.name}-${i}`,
487
+ name: `${e.object.id}-${u.name}-${i}`,
488
488
  type: "text",
489
489
  class: "w-full px-3 py-2 border border-slate-300 rounded focus:outline-none focus:ring-2 focus:ring-blue-400",
490
490
  placeholder: u.label,
491
491
  required: u.mandatory,
492
492
  value: u.example_value,
493
- onInput: (m) => b(u.name, m.target.value)
494
- }, null, 40, gt)) : S("", !0),
495
- u.type === "image" ? (i(), d("input", {
493
+ onInput: (m) => g(u.name, m.target.value)
494
+ }, null, 40, ft)) : $("", !0),
495
+ u.type === "image" ? (s(), d("input", {
496
496
  key: 1,
497
- id: `${e.object.id}-${u.name}-${s}`,
498
- name: `${e.object.id}-${u.name}-${s}`,
497
+ id: `${e.object.id}-${u.name}-${i}`,
498
+ name: `${e.object.id}-${u.name}-${i}`,
499
499
  "data-mandatoryCrops": u.image_cuts ? JSON.stringify(u.image_cuts) : null,
500
500
  type: "text",
501
501
  class: "js-limbo w-full px-3 py-2 border border-slate-300 rounded focus:outline-none focus:ring-2 focus:ring-blue-400",
502
502
  placeholder: u.label,
503
503
  required: u.mandatory,
504
504
  value: u.example_value,
505
- onInput: (m) => b(u.name, m.target.value)
506
- }, null, 40, ft)) : u.type === "textArea" ? (i(), ue(q(ye), {
505
+ onInput: (m) => g(u.name, m.target.value)
506
+ }, null, 40, pt)) : u.type === "textArea" ? (s(), ue(q(Ce), {
507
507
  key: 2,
508
508
  theme: "snow",
509
- id: `${e.object.id}-${u.name}-${s}`,
510
- name: `${e.object.id}-${u.name}-${s}`,
509
+ id: `${e.object.id}-${u.name}-${i}`,
510
+ name: `${e.object.id}-${u.name}-${i}`,
511
511
  rows: "3",
512
512
  class: "w-full px-3 py-2 border border-slate-300 rounded focus:outline-none focus:ring-2 focus:ring-blue-400 z-9999",
513
513
  placeholder: u.label,
514
514
  required: u.mandatory,
515
515
  "onUpdate:content": (m) => {
516
- b(u.name, m);
516
+ g(u.name, m);
517
517
  },
518
518
  content: u.example_value,
519
519
  modelValue: u.example_value,
520
520
  "onUpdate:modelValue": (m) => u.example_value = m,
521
521
  contentType: "html"
522
- }, null, 8, ["id", "name", "placeholder", "required", "onUpdate:content", "content", "modelValue", "onUpdate:modelValue"])) : u.type === "select" ? (i(), d("select", {
522
+ }, null, 8, ["id", "name", "placeholder", "required", "onUpdate:content", "content", "modelValue", "onUpdate:modelValue"])) : u.type === "select" ? (s(), d("select", {
523
523
  key: 3,
524
- id: `${e.object.id}-${u.name}-${s}`,
525
- name: `${e.object.id}-${u.name}-${s}`,
524
+ id: `${e.object.id}-${u.name}-${i}`,
525
+ name: `${e.object.id}-${u.name}-${i}`,
526
526
  class: "w-full px-3 py-2 border border-slate-300 rounded focus:outline-none focus:ring-2 focus:ring-blue-400",
527
527
  required: u.mandatory,
528
528
  value: u.example_value,
529
- onInput: (m) => b(u.name, m.target.value)
529
+ onInput: (m) => g(u.name, m.target.value)
530
530
  }, [
531
531
  p[1] || (p[1] = t("option", {
532
532
  disabled: "",
533
533
  value: ""
534
534
  }, "Seleccione una opción", -1)),
535
- (i(!0), d(A, null, V(u.options || [], (m, w) => (i(), d("option", {
536
- key: w,
535
+ (s(!0), d(B, null, z(u.options || [], (m, y) => (s(), d("option", {
536
+ key: y,
537
537
  value: m
538
- }, v(m), 9, vt))), 128))
539
- ], 40, pt)) : u.type === "boolean" ? (i(), d("input", {
538
+ }, x(m), 9, xt))), 128))
539
+ ], 40, vt)) : u.type === "boolean" ? (s(), d("input", {
540
540
  key: 4,
541
- id: `${e.object.id}-${u.name}-${s}`,
542
- name: `${e.object.id}-${u.name}-${s}`,
541
+ id: `${e.object.id}-${u.name}-${i}`,
542
+ name: `${e.object.id}-${u.name}-${i}`,
543
543
  type: "checkbox",
544
544
  class: "h-4 w-4 text-blue-600 focus:ring-blue-500 border-slate-300 rounded inline-block",
545
545
  required: u.mandatory,
546
546
  checked: u.example_value,
547
- onChange: (m) => b(u.name, m.target.checked)
548
- }, null, 40, xt)) : S("", !0)
547
+ onChange: (m) => g(u.name, m.target.checked)
548
+ }, null, 40, ht)) : $("", !0)
549
549
  ]))), 128))
550
550
  ])
551
551
  ], 2)
552
552
  ], 64));
553
553
  }
554
- }), ht = { class: "space-y-4" }, wt = ["disabled"], yt = ["value"], Ct = { class: "space-y-3" }, $t = {
554
+ }), wt = { class: "space-y-4" }, yt = ["disabled"], Ct = ["value"], $t = { class: "space-y-3" }, kt = {
555
555
  key: 0,
556
556
  class: "overflow-y-auto space-y-3"
557
- }, kt = { class: "block text-sm font-semibold text-slate-600 mb-2" }, St = ["onChange", "disabled"], Ft = ["value"], Pt = ["onChange", "disabled"], jt = ["onInput", "disabled", "placeholder"], Mt = ["disabled"], It = {
557
+ }, St = { class: "block text-sm font-semibold text-slate-600 mb-2" }, Ft = ["onChange", "disabled"], Pt = ["value"], jt = ["onChange", "disabled"], Mt = ["onInput", "disabled", "placeholder"], It = ["disabled"], At = {
558
558
  key: 0,
559
559
  class: "animate-spin"
560
- }, At = { key: 1 }, Bt = /* @__PURE__ */ W({
560
+ }, Bt = { key: 1 }, Et = /* @__PURE__ */ W({
561
561
  __name: "SourceFilter",
562
562
  props: {
563
563
  onSubmit: {
@@ -574,7 +574,7 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
574
574
  }
575
575
  },
576
576
  setup(e) {
577
- const o = e, b = C(!1), $ = C(null), p = C({}), u = Y(() => {
577
+ const o = e, g = k(!1), F = k(null), p = k({}), u = Y(() => {
578
578
  const c = o.isProduction;
579
579
  return [
580
580
  {
@@ -622,137 +622,137 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
622
622
  filters: []
623
623
  }
624
624
  ];
625
- }), s = Y(() => {
626
- if (!$.value)
625
+ }), i = Y(() => {
626
+ if (!F.value)
627
627
  return [];
628
- const c = u.value.find((l) => l.id === $.value);
628
+ const c = u.value.find((a) => a.id === F.value);
629
629
  return c ? c.filters : [];
630
- }), m = (c, l) => {
631
- p.value[c] = l;
632
- }, w = () => {
630
+ }), m = (c, a) => {
631
+ p.value[c] = a;
632
+ }, y = () => {
633
633
  p.value = {};
634
634
  }, I = async () => {
635
- b.value = !0;
636
- const c = u.value.find((r) => r.id === $.value);
635
+ g.value = !0;
636
+ const c = u.value.find((r) => r.id === F.value);
637
637
  if (!c) {
638
- console.error("Origen no encontrado"), b.value = !1;
638
+ console.error("Origen no encontrado"), g.value = !1;
639
639
  return;
640
640
  }
641
- const l = new URL(c.apiUrl);
641
+ const a = new URL(c.apiUrl);
642
642
  Object.keys(p.value).forEach((r) => {
643
- p.value[r] && l.searchParams.append(r, p.value[r]);
643
+ p.value[r] && a.searchParams.append(r, p.value[r]);
644
644
  });
645
645
  try {
646
- const f = await (await fetch(l.toString(), {
646
+ const f = await (await fetch(a.toString(), {
647
647
  method: "GET",
648
648
  headers: {
649
649
  Accept: "text/xml, application/xml"
650
650
  }
651
- })).text(), P = new DOMParser().parseFromString(f, "text/xml"), g = Array.from(P.querySelectorAll("item")).map((n) => {
652
- const a = {};
653
- return Array.from(n.children).forEach((F) => {
654
- F.children.length > 0 ? Array.from(F.children).forEach((j) => {
655
- const B = `${F.nodeName}_${j.nodeName}`;
656
- a[B] = j.textContent || "";
657
- }) : a[F.nodeName] = F.textContent || "";
658
- }), a;
651
+ })).text(), P = new DOMParser().parseFromString(f, "text/xml"), b = Array.from(P.querySelectorAll("item")).map((n) => {
652
+ const l = {};
653
+ return Array.from(n.children).forEach((S) => {
654
+ S.children.length > 0 ? Array.from(S.children).forEach((j) => {
655
+ const E = `${S.nodeName}_${j.nodeName}`;
656
+ l[E] = j.textContent || "";
657
+ }) : l[S.nodeName] = S.textContent || "";
658
+ }), l;
659
659
  });
660
- o.onSubmit(g);
660
+ o.onSubmit(b);
661
661
  } catch (r) {
662
662
  console.error("Error al aplicar filtros:", r), o.onSubmit([]);
663
663
  } finally {
664
664
  const r = {
665
665
  name: c.name,
666
- url: l.toString()
666
+ url: a.toString()
667
667
  };
668
- o.updateFeedCriteria(r), b.value = !1;
668
+ o.updateFeedCriteria(r), g.value = !1;
669
669
  }
670
670
  };
671
- return (c, l) => (i(), d("div", ht, [
671
+ return (c, a) => (s(), d("div", wt, [
672
672
  t("div", null, [
673
- l[1] || (l[1] = t("label", { class: "block text-sm font-semibold text-slate-600 mb-2" }, "Seleccionar origen:", -1)),
674
- O(t("select", {
675
- "onUpdate:modelValue": l[0] || (l[0] = (r) => $.value = r),
673
+ a[1] || (a[1] = t("label", { class: "block text-sm font-semibold text-slate-600 mb-2" }, "Seleccionar origen:", -1)),
674
+ R(t("select", {
675
+ "onUpdate:modelValue": a[0] || (a[0] = (r) => F.value = r),
676
676
  class: "w-full px-3 py-2.5 bg-white border border-slate-200 rounded-lg shadow-sm focus:border-emerald-400 focus:ring-2 focus:ring-emerald-500/20 transition-all duration-200 disabled:bg-slate-100 disabled:cursor-not-allowed cursor-pointer",
677
- onChange: w,
678
- disabled: b.value
677
+ onChange: y,
678
+ disabled: g.value
679
679
  }, [
680
- (i(!0), d(A, null, V(u.value, (r) => (i(), d("option", {
680
+ (s(!0), d(B, null, z(u.value, (r) => (s(), d("option", {
681
681
  key: r.id,
682
682
  value: r.id
683
- }, v(r.name), 9, yt))), 128))
684
- ], 40, wt), [
685
- [J, $.value]
683
+ }, x(r.name), 9, Ct))), 128))
684
+ ], 40, yt), [
685
+ [H, F.value]
686
686
  ])
687
687
  ]),
688
- t("div", Ct, [
689
- s.value.length > 0 ? (i(), d("div", $t, [
690
- (i(!0), d(A, null, V(s.value, (r) => (i(), d("div", {
688
+ t("div", $t, [
689
+ i.value.length > 0 ? (s(), d("div", kt, [
690
+ (s(!0), d(B, null, z(i.value, (r) => (s(), d("div", {
691
691
  key: r.id,
692
692
  class: "bg-gradient-to-br from-slate-50 to-white p-4 rounded-xl border border-slate-200"
693
693
  }, [
694
- t("label", kt, v(r.label) + ":", 1),
695
- r.type === "select" ? (i(), d("select", {
694
+ t("label", St, x(r.label) + ":", 1),
695
+ r.type === "select" ? (s(), d("select", {
696
696
  key: 0,
697
697
  class: "w-full px-3 py-2.5 bg-white border border-slate-200 rounded-lg shadow-sm focus:border-emerald-400 focus:ring-2 focus:ring-emerald-500/20 transition-all duration-200 disabled:bg-slate-100 disabled:cursor-not-allowed cursor-pointer",
698
698
  onChange: (f) => m(r.id, f.target.value),
699
- disabled: b.value
699
+ disabled: g.value
700
700
  }, [
701
- l[2] || (l[2] = t("option", { value: "" }, "Seleccionar...", -1)),
702
- (i(!0), d(A, null, V(r.options, (f) => (i(), d("option", {
701
+ a[2] || (a[2] = t("option", { value: "" }, "Seleccionar...", -1)),
702
+ (s(!0), d(B, null, z(r.options, (f) => (s(), d("option", {
703
703
  key: f,
704
704
  value: f
705
- }, v(f), 9, Ft))), 128))
706
- ], 40, St)) : r.type === "date" ? (i(), d("input", {
705
+ }, x(f), 9, Pt))), 128))
706
+ ], 40, Ft)) : r.type === "date" ? (s(), d("input", {
707
707
  key: 1,
708
708
  type: "date",
709
709
  class: "w-full px-3 py-2.5 bg-white border border-slate-200 rounded-lg shadow-sm focus:border-emerald-400 focus:ring-2 focus:ring-emerald-500/20 transition-all duration-200 disabled:bg-slate-100 disabled:cursor-not-allowed",
710
710
  onChange: (f) => m(r.id, f.target.value),
711
- disabled: b.value
712
- }, null, 40, Pt)) : r.type === "text" ? (i(), d("input", {
711
+ disabled: g.value
712
+ }, null, 40, jt)) : r.type === "text" ? (s(), d("input", {
713
713
  key: 2,
714
714
  type: "text",
715
715
  class: "w-full px-3 py-2.5 bg-white border border-slate-200 rounded-lg shadow-sm focus:border-emerald-400 focus:ring-2 focus:ring-emerald-500/20 transition-all duration-200 disabled:bg-slate-100 disabled:cursor-not-allowed",
716
716
  onInput: (f) => m(r.id, f.target.value),
717
- disabled: b.value,
717
+ disabled: g.value,
718
718
  placeholder: r.label
719
- }, null, 40, jt)) : S("", !0)
719
+ }, null, 40, Mt)) : $("", !0)
720
720
  ]))), 128))
721
- ])) : S("", !0),
721
+ ])) : $("", !0),
722
722
  t("button", {
723
723
  type: "button",
724
724
  onClick: I,
725
725
  class: "cursor-pointer w-full bg-gradient-to-r from-emerald-500 to-teal-500 text-white font-semibold px-4 py-3 rounded-xl shadow-md hover:from-emerald-600 hover:to-teal-600 hover:shadow-lg transform hover:-translate-y-0.5 transition-all duration-200 disabled:from-slate-300 disabled:to-slate-400 disabled:cursor-not-allowed disabled:transform-none disabled:shadow-none flex items-center justify-center gap-2",
726
- disabled: b.value
726
+ disabled: g.value
727
727
  }, [
728
- b.value ? (i(), d("span", It, "⏳")) : (i(), d("span", At, "🔍")),
729
- E(" " + v(b.value ? "Conectando con el feed..." : "Aplicar Filtros"), 1)
730
- ], 8, Mt)
728
+ g.value ? (s(), d("span", At, "⏳")) : (s(), d("span", Bt, "🔍")),
729
+ D(" " + x(g.value ? "Conectando con el feed..." : "Aplicar Filtros"), 1)
730
+ ], 8, It)
731
731
  ])
732
732
  ]));
733
733
  }
734
- }), Et = { class: "fixed top-0 left-0 w-full h-full bg-gradient-to-br from-slate-50 via-white to-slate-100 flex flex-col z-9999 p-6" }, Tt = { class: "w-full flex justify-between items-center mb-4" }, Dt = { class: "w-full flex-1 bg-white/60 rounded-2xl flex gap-5 p-5 overflow-hidden backdrop-blur-sm border border-slate-200 shadow-inner" }, Ot = { class: "flex-1 flex flex-col gap-5" }, Rt = { class: "flex flex-col bg-white rounded-2xl shadow-lg border border-slate-200 p-5 overflow-y-auto" }, Vt = {
734
+ }), Tt = { class: "fixed top-0 left-0 w-full h-full bg-gradient-to-br from-slate-50 via-white to-slate-100 flex flex-col z-9999 p-6" }, Dt = { class: "w-full flex justify-between items-center mb-4" }, Ot = { class: "w-full flex-1 bg-white/60 rounded-2xl flex gap-5 p-5 overflow-hidden backdrop-blur-sm border border-slate-200 shadow-inner" }, Rt = { class: "flex-1 flex flex-col gap-5" }, Vt = { class: "flex flex-col bg-white rounded-2xl shadow-lg border border-slate-200 p-5 overflow-y-auto" }, zt = {
735
735
  key: 0,
736
736
  class: "mb-4 p-4 bg-gradient-to-br from-emerald-50 to-teal-50 rounded-xl border border-emerald-200 w-full flex-shrink-0 text-sm font-medium text-emerald-700"
737
- }, zt = { class: "list-none mt-3 space-y-2 text-slate-600" }, Nt = { class: "flex items-start gap-2" }, Ut = { class: "font-semibold text-slate-700" }, qt = { class: "flex items-start gap-2" }, Lt = { class: "font-semibold text-slate-700" }, Gt = { class: "font-semibold text-slate-700" }, Ht = { class: "flex items-start gap-2" }, Jt = { class: "flex flex-wrap gap-2 mt-1" }, Wt = { class: "font-semibold text-slate-700" }, Yt = { class: "text-emerald-600" }, Kt = { class: "flex flex-col gap-4 w-full" }, Qt = { class: "flex items-center gap-3 cursor-pointer group" }, Xt = {
737
+ }, Nt = { class: "list-none mt-3 space-y-2 text-slate-600" }, Ut = { class: "flex items-start gap-2" }, qt = { class: "font-semibold text-slate-700" }, Lt = { class: "flex items-start gap-2" }, Gt = { class: "font-semibold text-slate-700" }, Jt = { class: "font-semibold text-slate-700" }, Ht = { class: "flex items-start gap-2" }, Wt = { class: "flex flex-wrap gap-2 mt-1" }, Yt = { class: "font-semibold text-slate-700" }, Kt = { class: "text-emerald-600" }, Qt = { class: "flex flex-col gap-4 w-full" }, Xt = { class: "flex items-center gap-3 cursor-pointer group" }, Zt = {
738
738
  key: 0,
739
739
  class: "flex flex-col gap-4 ml-8 p-4 bg-gradient-to-br from-slate-50 to-white rounded-xl border border-slate-200"
740
- }, Zt = { class: "flex flex-col gap-2" }, _t = { class: "flex flex-col gap-2" }, eo = { class: "flex-1 flex flex-col bg-white rounded-2xl shadow-lg border border-slate-200 p-5 overflow-y-auto" }, to = { class: "flex-1 flex flex-col bg-white rounded-2xl shadow-lg border border-slate-200 p-5 overflow-y-auto" }, oo = {
740
+ }, _t = { class: "flex flex-col gap-2" }, eo = { class: "flex flex-col gap-2" }, to = { class: "flex-1 flex flex-col bg-white rounded-2xl shadow-lg border border-slate-200 p-5 overflow-y-auto" }, oo = { class: "flex-1 flex flex-col bg-white rounded-2xl shadow-lg border border-slate-200 p-5 overflow-y-auto" }, no = {
741
741
  key: 0,
742
742
  class: "flex-1 flex flex-col items-center justify-center text-slate-400"
743
- }, no = {
743
+ }, lo = {
744
744
  key: 1,
745
745
  class: "space-y-3"
746
- }, lo = ["onClick"], ao = { class: "font-bold text-slate-800 mb-2" }, ro = { class: "text-sm text-slate-600 line-clamp-2" }, so = { class: "flex-1 flex flex-col bg-white rounded-2xl shadow-lg border border-slate-200 p-5 overflow-y-auto" }, io = {
746
+ }, ao = ["onClick"], ro = { class: "font-bold text-slate-800 mb-2" }, so = { class: "text-sm text-slate-600 line-clamp-2" }, io = { class: "flex-1 flex flex-col bg-white rounded-2xl shadow-lg border border-slate-200 p-5 overflow-y-auto" }, uo = {
747
747
  key: 0,
748
748
  class: "flex-1 flex flex-col items-center justify-center text-slate-400"
749
- }, uo = {
749
+ }, co = {
750
750
  key: 1,
751
751
  class: "space-y-3"
752
- }, co = { class: "block text-sm font-bold text-slate-700 mb-2 flex items-center gap-2" }, mo = ["onUpdate:modelValue"], bo = ["value"], go = {
752
+ }, mo = { class: "block text-sm font-bold text-slate-700 mb-2 flex items-center gap-2" }, bo = ["onUpdate:modelValue"], go = ["value"], fo = {
753
753
  key: 0,
754
754
  class: "mt-3 p-3 bg-gradient-to-br from-emerald-50 to-teal-50 rounded-lg border border-emerald-200"
755
- }, fo = { class: "mt-1 text-sm font-medium text-slate-700 break-words" }, po = /* @__PURE__ */ W({
755
+ }, po = { class: "mt-1 text-sm font-medium text-slate-700 break-words" }, vo = /* @__PURE__ */ W({
756
756
  __name: "FeedComponent",
757
757
  props: {
758
758
  object: {
@@ -773,73 +773,73 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
773
773
  }
774
774
  },
775
775
  setup(e) {
776
- const o = e, b = C(null), $ = C(null), p = C(!1), u = C(1), s = C("horizontal"), m = C({}), w = C(null), I = (g) => {
777
- b.value = g;
778
- }, c = (g) => {
779
- $.value = g;
780
- }, l = () => {
781
- const g = o.object.fields.filter((n) => n.mappedTo).map((n) => {
782
- var a;
776
+ const o = e, g = k(null), F = k(null), p = k(!1), u = k(1), i = k("horizontal"), m = k({}), y = k(null), I = (b) => {
777
+ g.value = b;
778
+ }, c = (b) => {
779
+ F.value = b;
780
+ }, a = () => {
781
+ const b = o.object.fields.filter((n) => n.mappedTo).map((n) => {
782
+ var l;
783
783
  return {
784
784
  fieldName: n.name,
785
785
  mappedTo: n.mappedTo,
786
- value: ((a = $.value) == null ? void 0 : a[n.mappedTo]) ?? null
786
+ value: ((l = F.value) == null ? void 0 : l[n.mappedTo]) ?? null
787
787
  };
788
788
  });
789
- w.value = {
789
+ y.value = {
790
790
  ...m.value,
791
791
  dynamicUpdate: p.value,
792
792
  elementCount: u.value,
793
- orientation: s.value,
794
- mapping: g.map(({ fieldName: n, mappedTo: a }) => ({ fieldName: n, mappedTo: a }))
795
- }, o.updateObjectByFeedContent && o.updateObjectByFeedContent(g, w.value), o.toggleFeedSection();
796
- }, r = (g) => {
797
- m.value = g;
793
+ orientation: i.value,
794
+ mapping: b.map(({ fieldName: n, mappedTo: l }) => ({ fieldName: n, mappedTo: l }))
795
+ }, o.updateObjectByFeedContent && o.updateObjectByFeedContent(b, y.value), o.toggleFeedSection();
796
+ }, r = (b) => {
797
+ m.value = b;
798
798
  }, f = () => {
799
- var g;
800
- (g = o.object) != null && g.repeat_data && (w.value = o.object.repeat_data, p.value = o.object.repeat_data.dynamicUpdate || !1, u.value = o.object.repeat_data.elementCount || 1, s.value = o.object.repeat_data.orientation || "horizontal", m.value = {
799
+ var b;
800
+ (b = o.object) != null && b.repeat_data && (y.value = o.object.repeat_data, p.value = o.object.repeat_data.dynamicUpdate || !1, u.value = o.object.repeat_data.elementCount || 1, i.value = o.object.repeat_data.orientation || "horizontal", m.value = {
801
801
  name: o.object.repeat_data.name,
802
802
  url: o.object.repeat_data.url
803
803
  });
804
- }, R = () => {
805
- w.value = null, p.value = !1, u.value = 1, s.value = "horizontal", m.value = {}, o.updateObjectByFeedContent && o.updateObjectByFeedContent([], null);
804
+ }, V = () => {
805
+ y.value = null, p.value = !1, u.value = 1, i.value = "horizontal", m.value = {}, o.updateObjectByFeedContent && o.updateObjectByFeedContent([], null);
806
806
  }, P = () => {
807
- var g;
808
- w.value && (w.value = {
809
- ...w.value,
807
+ var b;
808
+ y.value && (y.value = {
809
+ ...y.value,
810
810
  dynamicUpdate: p.value,
811
811
  elementCount: u.value,
812
- orientation: s.value
813
- }, o.updateObjectByFeedContent && o.updateObjectByFeedContent(((g = w.value.mapping) == null ? void 0 : g.map((n) => ({
812
+ orientation: i.value
813
+ }, o.updateObjectByFeedContent && o.updateObjectByFeedContent(((b = y.value.mapping) == null ? void 0 : b.map((n) => ({
814
814
  fieldName: n.fieldName,
815
815
  mappedTo: n.mappedTo,
816
816
  value: null
817
- }))) || [], w.value));
817
+ }))) || [], y.value));
818
818
  };
819
819
  return ae(() => {
820
820
  f();
821
- }), (g, n) => (i(), d("div", Et, [
822
- t("div", Tt, [
821
+ }), (b, n) => (s(), d("div", Tt, [
822
+ t("div", Dt, [
823
823
  n[5] || (n[5] = t("h2", { class: "text-xl font-bold bg-gradient-to-r from-slate-700 to-slate-500 bg-clip-text text-transparent flex items-center gap-3" }, [
824
824
  t("span", { class: "text-xl" }, "🍺"),
825
- E(" Configuración de Feed ")
825
+ D(" Configuración de Feed ")
826
826
  ], -1)),
827
827
  t("button", {
828
828
  onClick: n[0] || (n[0] = //@ts-ignore
829
- (...a) => e.toggleFeedSection && e.toggleFeedSection(...a)),
829
+ (...l) => e.toggleFeedSection && e.toggleFeedSection(...l)),
830
830
  class: "cursor-pointer group w-10 h-10 flex items-center justify-center bg-white hover:bg-red-50 border border-red-200 hover:border-red-400 text-red-400 hover:text-red-600 rounded-full font-semibold shadow-sm hover:shadow-lg transition-all duration-200"
831
831
  }, [...n[4] || (n[4] = [
832
832
  t("span", { class: "text-lg" }, "✕", -1)
833
833
  ])])
834
834
  ]),
835
- t("div", Dt, [
836
- t("div", Ot, [
837
- t("div", Rt, [
838
- w.value && w.value.dynamicUpdate ? (i(), d("div", Vt, [
835
+ t("div", Ot, [
836
+ t("div", Rt, [
837
+ t("div", Vt, [
838
+ y.value && y.value.dynamicUpdate ? (s(), d("div", zt, [
839
839
  t("div", { class: "flex justify-between items-start" }, [
840
840
  n[8] || (n[8] = t("p", { class: "flex items-center gap-2" }, [
841
841
  t("span", { class: "text-emerald-500" }, "✓"),
842
- E(" Hay un criterio de feed establecido: ")
842
+ D(" Hay un criterio de feed establecido: ")
843
843
  ], -1)),
844
844
  t("div", { class: "flex items-center gap-2" }, [
845
845
  t("button", {
@@ -847,75 +847,75 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
847
847
  class: "cursor-pointer px-3 py-1.5 bg-white hover:bg-emerald-50 text-emerald-500 hover:text-emerald-600 border border-emerald-200 hover:border-emerald-300 rounded-lg text-xs font-semibold transition-all duration-200 flex items-center gap-1 shadow-sm"
848
848
  }, [...n[6] || (n[6] = [
849
849
  t("span", null, "💾", -1),
850
- E(" Guardar ", -1)
850
+ D(" Guardar ", -1)
851
851
  ])]),
852
852
  t("button", {
853
- onClick: R,
853
+ onClick: V,
854
854
  class: "cursor-pointer px-3 py-1.5 bg-white hover:bg-red-50 text-red-500 hover:text-red-600 border border-red-200 hover:border-red-300 rounded-lg text-xs font-semibold transition-all duration-200 flex items-center gap-1 shadow-sm"
855
855
  }, [...n[7] || (n[7] = [
856
856
  t("span", null, "✕", -1),
857
- E(" Borrar ", -1)
857
+ D(" Borrar ", -1)
858
858
  ])])
859
859
  ])
860
860
  ]),
861
- t("ul", zt, [
862
- t("li", Nt, [
861
+ t("ul", Nt, [
862
+ t("li", Ut, [
863
863
  n[9] || (n[9] = t("span", { class: "text-emerald-400" }, "→", -1)),
864
- n[10] || (n[10] = E(" Conectar con ", -1)),
865
- t("span", Ut, v(w.value.name), 1)
864
+ n[10] || (n[10] = D(" Conectar con ", -1)),
865
+ t("span", qt, x(y.value.name), 1)
866
866
  ]),
867
- t("li", qt, [
867
+ t("li", Lt, [
868
868
  n[11] || (n[11] = t("span", { class: "text-emerald-400" }, "→", -1)),
869
- n[12] || (n[12] = E(" Recuperar ", -1)),
870
- t("span", Lt, v(w.value.elementCount), 1),
871
- n[13] || (n[13] = E(" items (", -1)),
872
- t("span", Gt, v(w.value.orientation), 1),
873
- n[14] || (n[14] = E(")", -1))
869
+ n[12] || (n[12] = D(" Recuperar ", -1)),
870
+ t("span", Gt, x(y.value.elementCount), 1),
871
+ n[13] || (n[13] = D(" items (", -1)),
872
+ t("span", Jt, x(y.value.orientation), 1),
873
+ n[14] || (n[14] = D(")", -1))
874
874
  ]),
875
875
  t("li", Ht, [
876
876
  n[17] || (n[17] = t("span", { class: "text-emerald-400" }, "→", -1)),
877
877
  t("div", null, [
878
- n[16] || (n[16] = E(" Mapeo: ", -1)),
879
- t("div", Jt, [
880
- (i(!0), d(A, null, V(w.value.mapping, (a, F) => (i(), d("span", {
881
- key: F,
878
+ n[16] || (n[16] = D(" Mapeo: ", -1)),
879
+ t("div", Wt, [
880
+ (s(!0), d(B, null, z(y.value.mapping, (l, S) => (s(), d("span", {
881
+ key: S,
882
882
  class: "inline-flex items-center gap-1 px-2 py-0.5 bg-white rounded-full text-xs border border-slate-200"
883
883
  }, [
884
- t("span", Wt, v(a.fieldName), 1),
884
+ t("span", Yt, x(l.fieldName), 1),
885
885
  n[15] || (n[15] = t("span", { class: "text-slate-400" }, "←", -1)),
886
- t("span", Yt, v(a.mappedTo), 1)
886
+ t("span", Kt, x(l.mappedTo), 1)
887
887
  ]))), 128))
888
888
  ])
889
889
  ])
890
890
  ])
891
891
  ])
892
- ])) : S("", !0),
893
- t("div", Kt, [
894
- t("label", Qt, [
895
- O(t("input", {
892
+ ])) : $("", !0),
893
+ t("div", Qt, [
894
+ t("label", Xt, [
895
+ R(t("input", {
896
896
  type: "checkbox",
897
- "onUpdate:modelValue": n[1] || (n[1] = (a) => p.value = a),
897
+ "onUpdate:modelValue": n[1] || (n[1] = (l) => p.value = l),
898
898
  class: "w-5 h-5 text-emerald-500 border-2 border-slate-300 rounded focus:ring-emerald-500 cursor-pointer"
899
899
  }, null, 512), [
900
900
  [ne, p.value]
901
901
  ]),
902
902
  n[18] || (n[18] = t("span", { class: "font-medium text-slate-700 group-hover:text-slate-900 transition-colors" }, "Actualizar dinámicamente según criterios del feed", -1))
903
903
  ]),
904
- p.value ? (i(), d("div", Xt, [
904
+ p.value ? (s(), d("div", Zt, [
905
905
  n[22] || (n[22] = t("div", { class: "p-3 bg-gradient-to-r from-amber-50 to-yellow-50 rounded-lg border border-amber-200 text-sm text-amber-700" }, [
906
906
  t("div", { class: "flex items-start gap-2" }, [
907
907
  t("span", { class: "text-amber-500 mt-0.5" }, "ℹ️"),
908
908
  t("p", null, [
909
909
  t("strong", null, "Nota:"),
910
- E(" Los valores que verás al relacionar campos son solo un ejemplo de referencia. En el momento de renderizar, se mostrarán los datos reales obtenidos del feed según los criterios configurados. ")
910
+ D(" Los valores que verás al relacionar campos son solo un ejemplo de referencia. En el momento de renderizar, se mostrarán los datos reales obtenidos del feed según los criterios configurados. ")
911
911
  ])
912
912
  ])
913
913
  ], -1)),
914
- t("div", Zt, [
914
+ t("div", _t, [
915
915
  n[19] || (n[19] = t("label", { class: "text-sm font-semibold text-slate-600" }, "Cantidad de elementos:", -1)),
916
- O(t("input", {
916
+ R(t("input", {
917
917
  type: "number",
918
- "onUpdate:modelValue": n[2] || (n[2] = (a) => u.value = a),
918
+ "onUpdate:modelValue": n[2] || (n[2] = (l) => u.value = l),
919
919
  min: "1",
920
920
  class: "w-32 px-3 py-2 border border-slate-200 rounded-lg focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 transition-colors"
921
921
  }, null, 512), [
@@ -927,10 +927,10 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
927
927
  ]
928
928
  ])
929
929
  ]),
930
- t("div", _t, [
930
+ t("div", eo, [
931
931
  n[21] || (n[21] = t("label", { class: "text-sm font-semibold text-slate-600" }, "Orientación:", -1)),
932
- O(t("select", {
933
- "onUpdate:modelValue": n[3] || (n[3] = (a) => s.value = a),
932
+ R(t("select", {
933
+ "onUpdate:modelValue": n[3] || (n[3] = (l) => i.value = l),
934
934
  class: "w-48 px-3 py-2 border border-slate-200 rounded-lg focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 bg-white transition-colors cursor-pointer"
935
935
  }, [...n[20] || (n[20] = [
936
936
  t("option", {
@@ -939,117 +939,117 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
939
939
  }, "Horizontal", -1),
940
940
  t("option", { value: "vertical" }, "Vertical", -1)
941
941
  ])], 512), [
942
- [J, s.value]
942
+ [H, i.value]
943
943
  ])
944
944
  ])
945
- ])) : S("", !0)
945
+ ])) : $("", !0)
946
946
  ])
947
947
  ]),
948
- t("div", eo, [
948
+ t("div", to, [
949
949
  n[23] || (n[23] = t("h3", { class: "text-lg font-bold mb-5 text-slate-700 pb-2 flex items-center gap-2 border-b border-slate-100" }, [
950
950
  t("span", { class: "text-xl" }, "🔍"),
951
- E(" Orígenes y Filtros ")
951
+ D(" Orígenes y Filtros ")
952
952
  ], -1)),
953
- L(Bt, {
953
+ L(Et, {
954
954
  onSubmit: I,
955
955
  updateFeedCriteria: r,
956
956
  isProduction: e.isProduction
957
957
  }, null, 8, ["isProduction"])
958
958
  ])
959
959
  ]),
960
- t("div", to, [
960
+ t("div", oo, [
961
961
  n[25] || (n[25] = t("h3", { class: "text-lg font-bold mb-5 text-slate-700 pb-2 flex items-center gap-2 border-b border-slate-100" }, [
962
962
  t("span", { class: "text-xl" }, "📰"),
963
- E(" Contenidos ")
963
+ D(" Contenidos ")
964
964
  ], -1)),
965
- !b.value || b.value.length === 0 ? (i(), d("div", oo, [...n[24] || (n[24] = [
965
+ !g.value || g.value.length === 0 ? (s(), d("div", no, [...n[24] || (n[24] = [
966
966
  t("span", { class: "text-5xl mb-3 opacity-50" }, "📭", -1),
967
967
  t("p", { class: "text-sm font-medium" }, "No hay contenidos disponibles", -1),
968
968
  t("p", { class: "text-xs mt-1 text-slate-300" }, "Selecciona un origen para cargar contenidos", -1)
969
- ])])) : (i(), d("ul", no, [
970
- (i(!0), d(A, null, V(b.value, (a, F) => (i(), d("li", {
971
- key: F,
969
+ ])])) : (s(), d("ul", lo, [
970
+ (s(!0), d(B, null, z(g.value, (l, S) => (s(), d("li", {
971
+ key: S,
972
972
  class: "p-4 bg-gradient-to-br from-slate-50 to-white rounded-xl shadow-sm hover:shadow-md cursor-pointer hover:scale-[1.01] transition-all duration-200 border border-slate-200 hover:border-emerald-300",
973
- onClick: (j) => c(a)
973
+ onClick: (j) => c(l)
974
974
  }, [
975
- t("h4", ao, v(a.title || a.titulo || "Sin título"), 1),
976
- t("p", ro, v(a.description || a.descripcion || a.content || "Sin descripción"), 1)
977
- ], 8, lo))), 128))
975
+ t("h4", ro, x(l.title || l.titulo || "Sin título"), 1),
976
+ t("p", so, x(l.description || l.descripcion || l.content || "Sin descripción"), 1)
977
+ ], 8, ao))), 128))
978
978
  ]))
979
979
  ]),
980
- t("div", so, [
980
+ t("div", io, [
981
981
  n[31] || (n[31] = t("h3", { class: "text-lg font-bold mb-5 text-slate-700 pb-2 flex items-center gap-2 border-b border-slate-100" }, [
982
982
  t("span", { class: "text-xl" }, "🔗"),
983
- E(" Relacionar Contenido ")
983
+ D(" Relacionar Contenido ")
984
984
  ], -1)),
985
- $.value ? (i(), d("div", uo, [
986
- (i(!0), d(A, null, V(e.object.fields, (a, F) => (i(), d("div", {
987
- key: F,
985
+ F.value ? (s(), d("div", co, [
986
+ (s(!0), d(B, null, z(e.object.fields, (l, S) => (s(), d("div", {
987
+ key: S,
988
988
  class: "p-4 bg-gradient-to-br from-slate-50 to-white rounded-xl border border-slate-200"
989
989
  }, [
990
- t("label", co, [
990
+ t("label", mo, [
991
991
  n[27] || (n[27] = t("span", { class: "text-base" }, "⚙️", -1)),
992
- E(" " + v(a.name), 1)
992
+ D(" " + x(l.name), 1)
993
993
  ]),
994
- O(t("select", {
995
- "onUpdate:modelValue": (j) => a.mappedTo = j,
994
+ R(t("select", {
995
+ "onUpdate:modelValue": (j) => l.mappedTo = j,
996
996
  class: "w-full px-3 py-2.5 border border-slate-200 rounded-lg focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 transition-all bg-white cursor-pointer"
997
997
  }, [
998
998
  n[28] || (n[28] = t("option", { value: "" }, "-- Seleccionar campo --", -1)),
999
- (i(!0), d(A, null, V($.value, (j, B) => (i(), d("option", {
1000
- key: B,
1001
- value: B
1002
- }, v(B), 9, bo))), 128))
1003
- ], 8, mo), [
1004
- [J, a.mappedTo]
999
+ (s(!0), d(B, null, z(F.value, (j, E) => (s(), d("option", {
1000
+ key: E,
1001
+ value: E
1002
+ }, x(E), 9, go))), 128))
1003
+ ], 8, bo), [
1004
+ [H, l.mappedTo]
1005
1005
  ]),
1006
- a.mappedTo ? (i(), d("div", go, [
1006
+ l.mappedTo ? (s(), d("div", fo, [
1007
1007
  n[29] || (n[29] = t("span", { class: "text-xs font-semibold text-emerald-600 uppercase tracking-wide" }, "Vista previa:", -1)),
1008
- t("p", fo, v($.value[a.mappedTo]), 1)
1009
- ])) : S("", !0)
1008
+ t("p", po, x(F.value[l.mappedTo]), 1)
1009
+ ])) : $("", !0)
1010
1010
  ]))), 128)),
1011
1011
  t("button", {
1012
- onClick: l,
1012
+ onClick: a,
1013
1013
  class: "cursor-pointer w-full mt-4 px-5 py-3 bg-gradient-to-r from-emerald-500 to-teal-500 hover:from-emerald-600 hover:to-teal-600 text-white font-semibold rounded-xl shadow-md hover:shadow-lg transition-all duration-200 transform hover:scale-[1.01] flex items-center justify-center gap-2"
1014
1014
  }, [...n[30] || (n[30] = [
1015
1015
  t("span", { class: "text-lg" }, "✓", -1),
1016
1016
  t("span", null, "Alimentar el componente", -1)
1017
1017
  ])])
1018
- ])) : (i(), d("div", io, [...n[26] || (n[26] = [
1018
+ ])) : (s(), d("div", uo, [...n[26] || (n[26] = [
1019
1019
  t("span", { class: "text-5xl mb-3 opacity-50" }, "👆", -1),
1020
1020
  t("p", { class: "text-sm font-medium text-center" }, [
1021
- E("Selecciona un contenido"),
1021
+ D("Selecciona un contenido"),
1022
1022
  t("br"),
1023
- E("para relacionar")
1023
+ D("para relacionar")
1024
1024
  ], -1)
1025
1025
  ])]))
1026
1026
  ])
1027
1027
  ])
1028
1028
  ]));
1029
1029
  }
1030
- }), vo = { class: "absolute -top-2.5 left-3 text-[11px] font-medium tracking-wide bg-gradient-to-r from-slate-700 to-slate-600 text-white px-3 py-0.5 rounded-full shadow-sm" }, xo = { class: "w-full text-right flex justify-between items-center mt-1" }, ho = { class: "flex gap-3 items-center" }, wo = { class: "bg-rose-50 border border-rose-200 text-rose-500 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wider rounded-md" }, yo = {
1030
+ }), xo = { class: "absolute -top-2.5 left-3 text-[11px] font-medium tracking-wide bg-gradient-to-r from-slate-700 to-slate-600 text-white px-3 py-0.5 rounded-full shadow-sm" }, ho = { class: "w-full text-right flex justify-between items-center mt-1" }, wo = { class: "flex gap-3 items-center" }, yo = { class: "bg-rose-50 border border-rose-200 text-rose-500 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wider rounded-md" }, Co = {
1031
1031
  key: 0,
1032
1032
  class: "flex-1 flex justify-center"
1033
- }, Co = { class: "flex justify-end items-center gap-3" }, $o = { class: "bg-violet-50 border border-violet-200 text-violet-600 rounded-md px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wider" }, ko = {
1033
+ }, $o = { class: "flex justify-end items-center gap-3" }, ko = { class: "bg-violet-50 border border-violet-200 text-violet-600 rounded-md px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wider" }, So = {
1034
1034
  key: 0,
1035
1035
  class: "flex gap-1 bg-slate-50 rounded-lg p-1"
1036
- }, So = {
1036
+ }, Fo = {
1037
1037
  key: 0,
1038
1038
  class: "text-[10px] bg-amber-100 text-amber-700 px-1.5 rounded-full font-medium"
1039
- }, Fo = { class: "mt-2 flex items-center" }, Po = { class: "font-medium text-slate-700" }, jo = { key: 0 }, Mo = { key: 1 }, Io = {
1039
+ }, Po = { class: "mt-2 flex items-center" }, jo = { class: "font-medium text-slate-700" }, Mo = { key: 0 }, Io = { key: 1 }, Ao = {
1040
1040
  key: 0,
1041
1041
  class: "mt-3 p-3 bg-gradient-to-r from-sky-50 to-blue-50 rounded-lg text-sm text-slate-600 border border-sky-100"
1042
- }, Ao = { class: "mt-3 flex gap-1.5 flex-wrap" }, Bo = { class: "absolute top-0 left-0 w-full h-full opacity-0 group-hover:opacity-100 bg-gradient-to-br from-white/90 via-slate-50/95 to-slate-100/90 backdrop-blur-[2px] z-99 transition-all duration-300 rounded-xl" }, Eo = { class: "absolute top-2 right-2 group/info z-10" }, To = { class: "absolute top-6 right-0 w-64 p-3 bg-white rounded-lg shadow-lg border border-slate-200 opacity-0 invisible group-hover/info:opacity-100 group-hover/info:visible transition-all duration-200 text-xs text-slate-600 leading-relaxed" }, Do = { class: "flex justify-center h-full items-center p-4 gap-3" }, Oo = {
1042
+ }, Bo = { class: "mt-3 flex gap-1.5 flex-wrap" }, Eo = { class: "absolute top-0 left-0 w-full h-full opacity-0 group-hover/component:opacity-100 bg-gradient-to-br from-white/90 via-slate-50/95 to-slate-100/90 backdrop-blur-[2px] z-99 transition-all duration-300 rounded-xl" }, To = { class: "absolute top-2 right-2 group/info z-10" }, Do = { class: "absolute top-6 right-0 w-64 p-3 bg-white rounded-lg shadow-lg border border-slate-200 opacity-0 invisible group-hover/info:opacity-100 group-hover/info:visible transition-all duration-200 text-xs text-slate-600 leading-relaxed" }, Oo = { class: "flex justify-center h-full items-center p-4 gap-3" }, Ro = {
1043
1043
  key: 0,
1044
1044
  title: "Mover componente",
1045
1045
  class: "handle cursor-grab flex items-center bg-white border border-slate-200 px-4 py-2 rounded-xl hover:bg-slate-700 hover:border-slate-700 hover:text-white shadow-sm hover:shadow-md transition-all duration-200 group/btn"
1046
- }, Ro = {
1046
+ }, Vo = {
1047
1047
  key: 1,
1048
1048
  class: "flex-1 flex justify-center items-center"
1049
- }, Vo = { class: "flex flex-col items-center" }, zo = {
1049
+ }, zo = { class: "flex flex-col items-center" }, No = {
1050
1050
  key: 0,
1051
1051
  class: "text-[10px] mt-0.5 opacity-70"
1052
- }, No = ["id"], be = /* @__PURE__ */ W({
1052
+ }, Uo = ["id"], be = /* @__PURE__ */ W({
1053
1053
  __name: "InitialComponent",
1054
1054
  props: {
1055
1055
  object: {
@@ -1061,6 +1061,7 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1061
1061
  fullwidthMode: Boolean,
1062
1062
  addComponentToColumn: Function,
1063
1063
  removeComponent: Function,
1064
+ cloneComponent: Function,
1064
1065
  section: String,
1065
1066
  renderApiDomain: String,
1066
1067
  insideComponentBox: {
@@ -1073,91 +1074,91 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1073
1074
  }
1074
1075
  },
1075
1076
  setup(e) {
1076
- const o = e, b = Math.random().toString(36).substring(2, 15), $ = C(!1), p = C(!1), u = C(null), s = C(null), m = C(!1), w = C(!1);
1077
+ const o = e, g = Math.random().toString(36).substring(2, 15), F = k(!1), p = k(!1), u = k(null), i = k(null), m = k(!1), y = k(!1);
1077
1078
  oe(() => o.isComponentMode, (n) => {
1078
1079
  n || I();
1079
1080
  }), oe(() => o.object, () => {
1080
1081
  I();
1081
1082
  }, { deep: !0 }), oe(m, async (n) => {
1082
- n && (await ve(), g());
1083
+ n && (await xe(), b());
1083
1084
  });
1084
1085
  const I = () => {
1085
1086
  u.value && clearTimeout(u.value), u.value = setTimeout(() => {
1086
- g();
1087
+ b();
1087
1088
  }, 500);
1088
1089
  }, c = () => {
1089
1090
  if (o.isComponentMode) return;
1090
- const n = new IntersectionObserver((a) => {
1091
- a.forEach((F) => {
1092
- F.isIntersecting && !m.value && (m.value = !0, n.disconnect());
1091
+ const n = new IntersectionObserver((l) => {
1092
+ l.forEach((S) => {
1093
+ S.isIntersecting && !m.value && (m.value = !0, n.disconnect());
1093
1094
  });
1094
1095
  }, { threshold: 0.1 });
1095
- s.value && n.observe(s.value);
1096
- }, l = (n, a) => {
1097
- const F = (o.object.fields || []).find((j) => j.name === n);
1098
- F && (F.example_value = a);
1099
- }, r = (n, a) => {
1100
- n.forEach((F) => {
1101
- F.value !== void 0 && l(F.fieldName, F.value);
1102
- }), o.object.repeat_data = a;
1096
+ i.value && n.observe(i.value);
1097
+ }, a = (n, l) => {
1098
+ const S = (o.object.fields || []).find((j) => j.name === n);
1099
+ S && (S.example_value = l);
1100
+ }, r = (n, l) => {
1101
+ n.forEach((S) => {
1102
+ S.value !== void 0 && a(S.fieldName, S.value);
1103
+ }), o.object.repeat_data = l;
1103
1104
  }, f = () => {
1104
1105
  p.value = !p.value;
1105
- }, R = () => {
1106
- w.value = !w.value;
1106
+ }, V = () => {
1107
+ y.value = !y.value;
1107
1108
  }, P = () => {
1108
- g(!0).then((n) => {
1109
- const a = window.open("", "Preview", "width=1200,height=800");
1110
- if (!a) {
1109
+ b(!0).then((n) => {
1110
+ const l = window.open("", "Preview", "width=1200,height=800");
1111
+ if (!l) {
1111
1112
  alert("El navegador bloqueó la ventana emergente. Por favor, permite los popups para este sitio.");
1112
1113
  return;
1113
1114
  }
1114
- a.document.body.innerHTML = n, a.document.querySelectorAll("script").forEach((j) => {
1115
+ l.document.body.innerHTML = n, l.document.querySelectorAll("script").forEach((j) => {
1115
1116
  var N;
1116
- const B = a.document.createElement("script");
1117
- j.src ? B.src = j.src : B.textContent = j.textContent, (N = j.parentNode) == null || N.replaceChild(B, j);
1118
- }), a.document.close();
1117
+ const E = l.document.createElement("script");
1118
+ j.src ? E.src = j.src : E.textContent = j.textContent, (N = j.parentNode) == null || N.replaceChild(E, j);
1119
+ }), l.document.close();
1119
1120
  });
1120
- }, g = (n = !1) => {
1121
+ }, b = (n = !1) => {
1121
1122
  var j;
1122
1123
  if (!((j = o.object) != null && j.category) || o.object.category === "Repetidor") {
1123
- const B = '<div style="color:white; padding: 1em 2em;background-color:#001978;border-radius:1em;border:4px solid #711978;">Componente que contiene elementos repetidos: TODO: GENERAR PREVIEW DE REPETIDORES</div>';
1124
+ const E = '<div style="color:white; padding: 1em 2em;background-color:#001978;border-radius:1em;border:4px solid #711978;">Componente que contiene elementos repetidos: TODO: GENERAR PREVIEW DE REPETIDORES</div>';
1124
1125
  if (n)
1125
- return Promise.resolve(B);
1126
- const N = document.getElementById(b);
1127
- return N && (N.innerHTML = B), Promise.resolve("");
1126
+ return Promise.resolve(E);
1127
+ const N = document.getElementById(g);
1128
+ return N && (N.innerHTML = E), Promise.resolve("");
1128
1129
  }
1129
- const a = o.renderApiDomain ? o.renderApiDomain + "/api/preview-comp/" : "http://localhost:8003/api/preview-comp/", F = JSON.stringify({ obj: o.object }, null, 2);
1130
- return fetch(a, {
1130
+ const l = o.renderApiDomain ? o.renderApiDomain + "/api/preview-comp/" : "http://localhost:8003/api/preview-comp/", S = JSON.stringify({ obj: o.object }, null, 2);
1131
+ return fetch(l, {
1131
1132
  method: "POST",
1132
1133
  headers: { "Content-Type": "application/json" },
1133
- body: F
1134
- }).then((B) => B.text()).then((B) => {
1134
+ body: S
1135
+ }).then((E) => E.text()).then((E) => {
1135
1136
  if (n)
1136
- return B;
1137
- const N = document.getElementById(b);
1138
- return N && (N.innerHTML = B), "";
1137
+ return E;
1138
+ const N = document.getElementById(g);
1139
+ return N && (N.innerHTML = E), "";
1139
1140
  });
1140
1141
  };
1141
1142
  return ae(() => {
1142
1143
  c();
1143
- }), (n, a) => (i(), d("div", null, [
1144
- w.value ? (i(), ue(po, {
1144
+ }), (n, l) => (s(), d("div", null, [
1145
+ y.value ? (s(), ue(vo, {
1145
1146
  key: 0,
1146
1147
  updateObjectByFeedContent: r,
1147
- toggleFeedSection: R,
1148
+ toggleFeedSection: V,
1148
1149
  object: e.object,
1149
1150
  isProduction: e.isProduction
1150
- }, null, 8, ["object", "isProduction"])) : S("", !0),
1151
+ }, null, 8, ["object", "isProduction"])) : $("", !0),
1151
1152
  t("div", {
1152
1153
  ref_key: "rootElement",
1153
- ref: s,
1154
- class: G(["min-h-[100px] relative group hover:shadow-lg hover:shadow-slate-200/50 duration-300 ease-out js-draggable-element text-slate-600 border border-slate-200 hover:border-slate-300 px-5 pt-3 pb-4 w-full bg-white inline-block rounded-xl flex flex-col mb-3 z-0 shadow-sm", { "overflow-hidden": !e.isComponentMode }])
1154
+ ref: i,
1155
+ class: G(["min-h-[100px] relative group/component hover:shadow-lg hover:shadow-slate-200/50 duration-300 ease-out js-draggable-element text-slate-600 border border-slate-200 hover:border-slate-300 px-5 pt-3 pb-4 w-full bg-white inline-block rounded-xl flex flex-col mb-3 z-0 shadow-sm", { "overflow-hidden": !e.isComponentMode }])
1155
1156
  }, [
1156
- e.isComponentMode ? (i(), d(A, { key: 0 }, [
1157
- t("span", vo, v(e.object.component_name), 1),
1158
- t("div", xo, [
1159
- t("div", ho, [
1160
- a[8] || (a[8] = t("div", { class: "handle cursor-grab text-slate-400 hover:text-slate-600 text-lg transition-colors" }, [
1157
+ e.isComponentMode ? (s(), d(B, { key: 0 }, [
1158
+ t("span", xo, x(e.object.component_name), 1),
1159
+ t("div", ho, [
1160
+ t("div", wo, [
1161
+ l[10] || (l[10] = t("div", { class: "handle cursor-grab text-slate-400 hover:text-slate-600 text-lg transition-colors" }, [
1161
1162
  t("svg", {
1162
1163
  class: "w-5 h-5",
1163
1164
  fill: "currentColor",
@@ -1166,44 +1167,50 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1166
1167
  t("path", { d: "M7 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 2zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 14zm6-8a2 2 0 1 0-.001-4.001A2 2 0 0 0 13 6zm0 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 14z" })
1167
1168
  ])
1168
1169
  ], -1)),
1169
- t("span", wo, v(e.object.category), 1)
1170
+ t("span", yo, x(e.object.category), 1)
1170
1171
  ]),
1171
- e.fullwidthMode ? (i(), d("div", yo, [
1172
+ e.fullwidthMode ? (s(), d("div", Co, [
1172
1173
  t("div", {
1173
1174
  class: "bg-gradient-to-r from-emerald-500 to-teal-500 hover:from-emerald-600 hover:to-teal-600 text-white rounded-lg px-4 py-1.5 text-xs font-medium cursor-pointer shadow-sm hover:shadow transition-all duration-200",
1174
- onClick: a[0] || (a[0] = (F) => {
1175
+ onClick: l[0] || (l[0] = (S) => {
1175
1176
  var j;
1176
1177
  return (j = e.addComponentToColumn) == null ? void 0 : j.call(e, e.object);
1177
1178
  })
1178
1179
  }, "Seleccionar")
1179
- ])) : S("", !0),
1180
- t("div", Co, [
1181
- t("span", $o, v(e.object.framework), 1),
1182
- e.insideComponentBox ? S("", !0) : (i(), d("div", ko, [
1180
+ ])) : $("", !0),
1181
+ t("div", $o, [
1182
+ t("span", ko, x(e.object.framework), 1),
1183
+ e.insideComponentBox ? $("", !0) : (s(), d("div", So, [
1183
1184
  t("div", {
1184
1185
  title: "Previsualizar Dummy",
1185
- onClick: a[1] || (a[1] = (F) => P()),
1186
+ onClick: l[1] || (l[1] = (S) => P()),
1186
1187
  class: "p-1.5 rounded-md hover:bg-white hover:shadow-sm cursor-pointer transition-all duration-200 text-base"
1187
1188
  }, "🔍"),
1188
1189
  t("div", {
1189
1190
  title: "Editar configuración",
1190
- onClick: a[2] || (a[2] = (F) => p.value = !p.value),
1191
+ onClick: l[2] || (l[2] = (S) => p.value = !p.value),
1191
1192
  class: "p-1.5 rounded-md hover:bg-white hover:shadow-sm cursor-pointer transition-all duration-200 text-base"
1192
1193
  }, "⚙️"),
1193
1194
  t("div", {
1194
1195
  title: "Beber de contenido",
1195
- onClick: R,
1196
+ onClick: V,
1196
1197
  class: "p-1.5 rounded-md hover:bg-white hover:shadow-sm cursor-pointer transition-all duration-200 text-base flex items-center gap-1"
1197
1198
  }, [
1198
- a[9] || (a[9] = E("⚡ ", -1)),
1199
- e.object.repeat_data ? (i(), d("span", So, v(e.object.repeat_data.elementCount), 1)) : S("", !0)
1199
+ l[11] || (l[11] = D("⚡ ", -1)),
1200
+ e.object.repeat_data ? (s(), d("span", Fo, x(e.object.repeat_data.elementCount), 1)) : $("", !0)
1200
1201
  ]),
1201
- e.removeComponent ? (i(), d("div", {
1202
+ e.cloneComponent ? (s(), d("div", {
1202
1203
  key: 0,
1204
+ title: "Clonar componente",
1205
+ onClick: l[3] || (l[3] = (S) => e.cloneComponent(e.object, e.section || "")),
1206
+ class: "p-1.5 rounded-md hover:bg-sky-50 hover:shadow-sm cursor-pointer transition-all duration-200 text-base"
1207
+ }, "📋")) : $("", !0),
1208
+ e.removeComponent ? (s(), d("div", {
1209
+ key: 1,
1203
1210
  title: "Eliminar componente",
1204
- onClick: a[3] || (a[3] = (F) => e.removeComponent(e.object, e.section || "")),
1211
+ onClick: l[4] || (l[4] = (S) => e.removeComponent(e.object, e.section || "")),
1205
1212
  class: "p-1.5 rounded-md hover:bg-red-50 hover:shadow-sm cursor-pointer transition-all duration-200 text-base"
1206
- }, "🗑️")) : S("", !0)
1213
+ }, "🗑️")) : $("", !0)
1207
1214
  ]))
1208
1215
  ])
1209
1216
  ]),
@@ -1212,27 +1219,27 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1212
1219
  object: e.object,
1213
1220
  showForm: p.value
1214
1221
  }, null, 8, ["object", "showForm"]),
1215
- t("div", Fo, [
1216
- t("span", Po, v(e.object.name), 1),
1222
+ t("div", Po, [
1223
+ t("span", jo, x(e.object.name), 1),
1217
1224
  t("button", {
1218
1225
  type: "button",
1219
- onClick: a[4] || (a[4] = (F) => $.value = !$.value),
1226
+ onClick: l[5] || (l[5] = (S) => F.value = !F.value),
1220
1227
  class: "ms-2 cursor-pointer text-xs text-slate-400 hover:text-slate-600 transition-colors w-5 h-5 rounded-full hover:bg-slate-100 flex items-center justify-center"
1221
1228
  }, [
1222
- $.value ? (i(), d("span", Mo, "▲")) : (i(), d("span", jo, "▼"))
1229
+ F.value ? (s(), d("span", Io, "▲")) : (s(), d("span", Mo, "▼"))
1223
1230
  ])
1224
1231
  ]),
1225
- $.value ? (i(), d("div", Io, v(e.object.description), 1)) : S("", !0),
1226
- t("div", Ao, [
1227
- (i(!0), d(A, null, V(e.object.tags, (F, j) => (i(), d("span", {
1232
+ F.value ? (s(), d("div", Ao, x(e.object.description), 1)) : $("", !0),
1233
+ t("div", Bo, [
1234
+ (s(!0), d(B, null, z(e.object.tags, (S, j) => (s(), d("span", {
1228
1235
  key: j,
1229
1236
  class: "bg-slate-50 text-slate-500 px-2.5 py-1 rounded-full text-[11px] font-medium border border-slate-100 hover:border-slate-200 hover:bg-slate-100 transition-colors cursor-default"
1230
- }, v(F), 1))), 128))
1237
+ }, x(S), 1))), 128))
1231
1238
  ])
1232
- ], 64)) : m.value ? (i(), d(A, { key: 1 }, [
1233
- t("div", Bo, [
1234
- t("div", Eo, [
1235
- a[10] || (a[10] = t("div", { class: "w-5 h-5 rounded-full bg-slate-100 hover:bg-sky-100 border border-slate-200 hover:border-sky-300 flex items-center justify-center cursor-help transition-colors duration-200" }, [
1239
+ ], 64)) : m.value ? (s(), d(B, { key: 1 }, [
1240
+ t("div", Eo, [
1241
+ t("div", To, [
1242
+ l[12] || (l[12] = t("div", { class: "w-5 h-5 rounded-full bg-slate-100 hover:bg-sky-100 border border-slate-200 hover:border-sky-300 flex items-center justify-center cursor-help transition-colors duration-200" }, [
1236
1243
  t("svg", {
1237
1244
  class: "w-3 h-3 text-slate-400 group-hover/info:text-sky-500",
1238
1245
  fill: "currentColor",
@@ -1245,10 +1252,10 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1245
1252
  })
1246
1253
  ])
1247
1254
  ], -1)),
1248
- t("div", To, v(e.object.description), 1)
1255
+ t("div", Do, x(e.object.description), 1)
1249
1256
  ]),
1250
- t("div", Do, [
1251
- e.insideComponentBox && !e.fullwidthMode || !e.insideComponentBox ? (i(), d("div", Oo, [...a[11] || (a[11] = [
1257
+ t("div", Oo, [
1258
+ e.insideComponentBox && !e.fullwidthMode || !e.insideComponentBox ? (s(), d("div", Ro, [...l[13] || (l[13] = [
1252
1259
  t("div", { class: "flex flex-col items-center" }, [
1253
1260
  t("svg", {
1254
1261
  class: "w-6 h-6 mb-1 text-slate-400 group-hover/btn:text-white",
@@ -1259,28 +1266,28 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1259
1266
  ]),
1260
1267
  t("span", { class: "text-xs font-medium" }, "Mover")
1261
1268
  ], -1)
1262
- ])])) : S("", !0),
1263
- e.insideComponentBox && e.fullwidthMode ? (i(), d("div", Ro, [
1269
+ ])])) : $("", !0),
1270
+ e.insideComponentBox && e.fullwidthMode ? (s(), d("div", Vo, [
1264
1271
  t("div", {
1265
1272
  title: "Agregar componente a la columna",
1266
- onClick: a[5] || (a[5] = (F) => {
1273
+ onClick: l[6] || (l[6] = (S) => {
1267
1274
  var j;
1268
1275
  return (j = e.addComponentToColumn) == null ? void 0 : j.call(e, e.object);
1269
1276
  }),
1270
1277
  class: "cursor-pointer flex items-center bg-gradient-to-r from-emerald-500 to-teal-500 hover:from-emerald-600 hover:to-teal-600 text-white px-6 py-3 rounded-xl shadow-md hover:shadow-lg transition-all duration-200"
1271
- }, [...a[12] || (a[12] = [
1278
+ }, [...l[14] || (l[14] = [
1272
1279
  t("div", { class: "flex flex-col items-center" }, [
1273
1280
  t("span", { class: "text-2xl mb-1" }, "🚀"),
1274
1281
  t("span", { class: "text-sm font-medium" }, "Seleccionar")
1275
1282
  ], -1)
1276
1283
  ])])
1277
- ])) : S("", !0),
1278
- e.insideComponentBox ? S("", !0) : (i(), d(A, { key: 2 }, [
1284
+ ])) : $("", !0),
1285
+ e.insideComponentBox ? $("", !0) : (s(), d(B, { key: 2 }, [
1279
1286
  t("div", {
1280
1287
  title: "Configurar componente",
1281
- onClick: a[6] || (a[6] = (F) => p.value = !p.value),
1288
+ onClick: l[7] || (l[7] = (S) => p.value = !p.value),
1282
1289
  class: "cursor-pointer flex items-center bg-white border border-slate-200 px-4 py-2 rounded-xl hover:bg-slate-700 hover:border-slate-700 hover:text-white shadow-sm hover:shadow-md transition-all duration-200 group/btn"
1283
- }, [...a[13] || (a[13] = [
1290
+ }, [...l[15] || (l[15] = [
1284
1291
  t("div", { class: "flex flex-col items-center" }, [
1285
1292
  t("span", { class: "text-xl mb-1" }, "⚙️"),
1286
1293
  t("span", { class: "text-xs font-medium" }, "Configurar")
@@ -1288,26 +1295,37 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1288
1295
  ])]),
1289
1296
  t("div", {
1290
1297
  title: "Configurar componente",
1291
- onClick: R,
1298
+ onClick: V,
1292
1299
  class: "cursor-pointer flex items-center bg-white border border-slate-200 px-4 py-2 rounded-xl hover:bg-amber-500 hover:border-amber-500 hover:text-white shadow-sm hover:shadow-md transition-all duration-200 group/btn"
1293
1300
  }, [
1294
- t("div", Vo, [
1295
- a[14] || (a[14] = t("span", { class: "text-xl mb-1" }, "⚡", -1)),
1296
- a[15] || (a[15] = t("span", { class: "text-xs font-medium" }, "Beber de contenido", -1)),
1297
- e.object.repeat_data && e.object.repeat_data.dynamicUpdate ? (i(), d("span", zo, "Carga " + v(e.object.repeat_data.elementCount) + " elementos", 1)) : S("", !0)
1301
+ t("div", zo, [
1302
+ l[16] || (l[16] = t("span", { class: "text-xl mb-1" }, "⚡", -1)),
1303
+ l[17] || (l[17] = t("span", { class: "text-xs font-medium" }, "Beber de contenido", -1)),
1304
+ e.object.repeat_data && e.object.repeat_data.dynamicUpdate ? (s(), d("span", No, "Carga " + x(e.object.repeat_data.elementCount) + " elementos", 1)) : $("", !0)
1298
1305
  ])
1299
1306
  ]),
1300
- e.removeComponent ? (i(), d("div", {
1307
+ e.cloneComponent ? (s(), d("div", {
1301
1308
  key: 0,
1309
+ title: "Clonar componente",
1310
+ onClick: l[8] || (l[8] = (S) => e.cloneComponent(e.object, e.section || "")),
1311
+ class: "cursor-pointer flex items-center bg-white border border-slate-200 px-4 py-2 rounded-xl hover:bg-sky-500 hover:border-sky-500 hover:text-white shadow-sm hover:shadow-md transition-all duration-200 group/btn"
1312
+ }, [...l[18] || (l[18] = [
1313
+ t("div", { class: "flex flex-col items-center" }, [
1314
+ t("span", { class: "text-xl mb-1" }, "📋"),
1315
+ t("span", { class: "text-xs font-medium" }, "Clonar")
1316
+ ], -1)
1317
+ ])])) : $("", !0),
1318
+ e.removeComponent ? (s(), d("div", {
1319
+ key: 1,
1302
1320
  title: "Eliminar componente",
1303
- onClick: a[7] || (a[7] = (F) => e.removeComponent(e.object, e.section || "")),
1321
+ onClick: l[9] || (l[9] = (S) => e.removeComponent(e.object, e.section || "")),
1304
1322
  class: "cursor-pointer flex items-center bg-white border border-slate-200 px-4 py-2 rounded-xl hover:bg-red-500 hover:border-red-500 hover:text-white shadow-sm hover:shadow-md transition-all duration-200 group/btn"
1305
- }, [...a[16] || (a[16] = [
1323
+ }, [...l[19] || (l[19] = [
1306
1324
  t("div", { class: "flex flex-col items-center" }, [
1307
1325
  t("span", { class: "text-xl mb-1" }, "🗑️"),
1308
1326
  t("span", { class: "text-xs font-medium" }, "Eliminar")
1309
1327
  ], -1)
1310
- ])])) : S("", !0)
1328
+ ])])) : $("", !0)
1311
1329
  ], 64))
1312
1330
  ])
1313
1331
  ]),
@@ -1317,26 +1335,26 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1317
1335
  showForm: p.value
1318
1336
  }, null, 8, ["object", "showForm"]),
1319
1337
  t("div", {
1320
- id: q(b),
1338
+ id: q(g),
1321
1339
  class: "w-full h-full flex items-center justify-center"
1322
- }, null, 8, No)
1323
- ], 64)) : S("", !0)
1340
+ }, null, 8, Uo)
1341
+ ], 64)) : $("", !0)
1324
1342
  ], 2)
1325
1343
  ]));
1326
1344
  }
1327
- }), Uo = { class: "absolute top-1 left-2 px-2 flex gap-3 items-center" }, qo = {
1345
+ }), qo = { class: "absolute top-1 left-2 px-2 flex gap-3 items-center" }, Lo = {
1328
1346
  key: 0,
1329
1347
  class: "text-[10px] font-medium text-slate-400 bg-white/80 backdrop-blur-sm px-2 py-0.5 rounded-full shadow-sm"
1330
- }, Lo = { class: "text-slate-600" }, Go = {
1348
+ }, Go = { class: "text-slate-600" }, Jo = {
1331
1349
  key: 1,
1332
1350
  class: "text-[10px] font-medium text-slate-400 bg-white/80 backdrop-blur-sm px-2 py-0.5 rounded-full shadow-sm"
1333
- }, Ho = { class: "text-slate-600" }, Jo = {
1351
+ }, Ho = { class: "text-slate-600" }, Wo = {
1334
1352
  key: 2,
1335
1353
  class: "text-[10px] font-medium text-slate-400 bg-white/80 backdrop-blur-sm px-2 py-0.5 rounded-full shadow-sm"
1336
- }, Wo = { class: "text-slate-600" }, Yo = {
1354
+ }, Yo = { class: "text-slate-600" }, Ko = {
1337
1355
  key: 0,
1338
1356
  class: "my-4 w-full rounded-xl bg-white border border-slate-200 p-4 z-10 hidden group-hover:block shadow-lg"
1339
- }, Ko = { class: "p-4 bg-gradient-to-br from-slate-50 to-white rounded-lg w-full" }, Qo = { class: "flex flex-col" }, Xo = ["for"], Zo = ["id"], _o = ["value"], en = { class: "flex flex-col" }, tn = ["for"], on = ["id"], nn = ["value"], ln = { class: "flex flex-col" }, an = ["for"], rn = ["id"], sn = ["value"], dn = { class: "absolute bottom-0 flex flex-col gap-1 w-full opacity-0 transition-all duration-300 group-hover:opacity-100" }, un = { class: "flex justify-between gap-2 bg-white/90 backdrop-blur-sm rounded-t-xl px-3 py-1.5 shadow-sm border border-b-0 border-slate-200" }, cn = { class: "flex gap-1" }, mn = /* @__PURE__ */ W({
1357
+ }, Qo = { class: "p-4 bg-gradient-to-br from-slate-50 to-white rounded-lg w-full" }, Xo = { class: "flex flex-col" }, Zo = ["for"], _o = ["id"], en = ["value"], tn = { class: "flex flex-col" }, on = ["for"], nn = ["id"], ln = ["value"], an = { class: "flex flex-col" }, rn = ["for"], sn = ["id"], dn = ["value"], un = { class: "absolute bottom-0 flex flex-col gap-1 w-full opacity-0 transition-all duration-300 group-hover:opacity-100" }, cn = { class: "flex justify-between gap-2 bg-white/90 backdrop-blur-sm rounded-t-xl px-3 py-1.5 shadow-sm border border-b-0 border-slate-200" }, mn = { class: "flex gap-1" }, bn = /* @__PURE__ */ W({
1340
1358
  __name: "ColConfig",
1341
1359
  props: {
1342
1360
  globalPageConfiguration: Array,
@@ -1357,7 +1375,7 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1357
1375
  section: String
1358
1376
  },
1359
1377
  setup(e) {
1360
- const o = e, b = {
1378
+ const o = e, g = {
1361
1379
  width: [
1362
1380
  { label: "Ancho completo", value: "full" },
1363
1381
  { label: "1/2", value: "1/2" },
@@ -1381,193 +1399,193 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1381
1399
  { label: "Columna (componentes unos encima de otros)", value: "flex-col" },
1382
1400
  { label: "Fila (componentes unos al lado de otros)", value: "flex-row" }
1383
1401
  ]
1384
- }, $ = C(""), p = C(""), u = C(""), s = C(!1), m = Y(() => {
1385
- var l, r, f, R;
1386
- const I = (l = o.globalPageConfiguration) == null ? void 0 : l.find(
1402
+ }, F = k(""), p = k(""), u = k(""), i = k(!1), m = Y(() => {
1403
+ var a, r, f, V;
1404
+ const I = (a = o.globalPageConfiguration) == null ? void 0 : a.find(
1387
1405
  (P) => P.section === o.section
1388
- ), c = (R = (f = (r = I == null ? void 0 : I.rows) == null ? void 0 : r[o.rowIndex]) == null ? void 0 : f.columns) == null ? void 0 : R[o.columnIndex];
1406
+ ), c = (V = (f = (r = I == null ? void 0 : I.rows) == null ? void 0 : r[o.rowIndex]) == null ? void 0 : f.columns) == null ? void 0 : V[o.columnIndex];
1389
1407
  return (c == null ? void 0 : c.config) || {};
1390
- }), w = (I, c) => {
1391
- var R;
1392
- const l = $.value || b.width[0].value, r = p.value || b.gap[0].value, f = u.value || "";
1393
- (R = o.updateColConfig) == null || R.call(o, I, c, o.section || "", l, r, f), s.value = !1;
1408
+ }), y = (I, c) => {
1409
+ var V;
1410
+ const a = F.value || g.width[0].value, r = p.value || g.gap[0].value, f = u.value || "";
1411
+ (V = o.updateColConfig) == null || V.call(o, I, c, o.section || "", a, r, f), i.value = !1;
1394
1412
  };
1395
- return (I, c) => (i(), d(A, null, [
1396
- t("div", Uo, [
1397
- m.value.width !== void 0 ? (i(), d("span", qo, [
1398
- c[12] || (c[12] = E(" Ancho: ", -1)),
1399
- t("span", Lo, v(m.value.width), 1)
1400
- ])) : S("", !0),
1401
- m.value.gap !== void 0 ? (i(), d("span", Go, [
1402
- c[13] || (c[13] = E(" Gap: ", -1)),
1403
- t("span", Ho, v(m.value.gap), 1)
1404
- ])) : S("", !0),
1405
- m.value.flexDirection !== void 0 ? (i(), d("span", Jo, [
1406
- c[14] || (c[14] = E(" Flex: ", -1)),
1407
- t("span", Wo, v(m.value.flexDirection), 1)
1408
- ])) : S("", !0)
1413
+ return (I, c) => (s(), d(B, null, [
1414
+ t("div", qo, [
1415
+ m.value.width !== void 0 ? (s(), d("span", Lo, [
1416
+ c[12] || (c[12] = D(" Ancho: ", -1)),
1417
+ t("span", Go, x(m.value.width), 1)
1418
+ ])) : $("", !0),
1419
+ m.value.gap !== void 0 ? (s(), d("span", Jo, [
1420
+ c[13] || (c[13] = D(" Gap: ", -1)),
1421
+ t("span", Ho, x(m.value.gap), 1)
1422
+ ])) : $("", !0),
1423
+ m.value.flexDirection !== void 0 ? (s(), d("span", Wo, [
1424
+ c[14] || (c[14] = D(" Flex: ", -1)),
1425
+ t("span", Yo, x(m.value.flexDirection), 1)
1426
+ ])) : $("", !0)
1409
1427
  ]),
1410
- s.value ? (i(), d("div", Yo, [
1411
- t("div", Ko, [
1428
+ i.value ? (s(), d("div", Ko, [
1429
+ t("div", Qo, [
1412
1430
  t("form", {
1413
1431
  onSubmit: c[4] || (c[4] = le(() => {
1414
1432
  }, ["prevent"])),
1415
1433
  class: "flex gap-5 w-full justify-center items-end flex-wrap"
1416
1434
  }, [
1417
- t("div", Qo, [
1435
+ t("div", Xo, [
1418
1436
  t("label", {
1419
1437
  for: `colwidth-${e.rowIndex}-${e.columnIndex}`,
1420
1438
  class: "block text-sm font-medium text-slate-600 mb-1.5"
1421
- }, "Ancho:", 8, Xo),
1422
- O(t("select", {
1423
- "onUpdate:modelValue": c[0] || (c[0] = (l) => $.value = l),
1439
+ }, "Ancho:", 8, Zo),
1440
+ R(t("select", {
1441
+ "onUpdate:modelValue": c[0] || (c[0] = (a) => F.value = a),
1424
1442
  id: `colwidth-${e.rowIndex}-${e.columnIndex}`,
1425
1443
  class: "block w-full border border-slate-200 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 bg-white hover:border-slate-300 transition-colors"
1426
1444
  }, [
1427
1445
  c[15] || (c[15] = t("option", { value: "" }, "Selecciona...", -1)),
1428
- (i(!0), d(A, null, V(b.width, (l) => (i(), d("option", {
1429
- key: l.value,
1430
- value: l.value
1431
- }, v(l.label), 9, _o))), 128))
1432
- ], 8, Zo), [
1433
- [J, $.value]
1446
+ (s(!0), d(B, null, z(g.width, (a) => (s(), d("option", {
1447
+ key: a.value,
1448
+ value: a.value
1449
+ }, x(a.label), 9, en))), 128))
1450
+ ], 8, _o), [
1451
+ [H, F.value]
1434
1452
  ])
1435
1453
  ]),
1436
- t("div", en, [
1454
+ t("div", tn, [
1437
1455
  t("label", {
1438
1456
  for: `colgap-${e.rowIndex}-${e.columnIndex}`,
1439
1457
  class: "block text-sm font-medium text-slate-600 mb-1.5"
1440
- }, "Gap:", 8, tn),
1441
- O(t("select", {
1442
- "onUpdate:modelValue": c[1] || (c[1] = (l) => p.value = l),
1458
+ }, "Gap:", 8, on),
1459
+ R(t("select", {
1460
+ "onUpdate:modelValue": c[1] || (c[1] = (a) => p.value = a),
1443
1461
  id: `colgap-${e.rowIndex}-${e.columnIndex}`,
1444
1462
  class: "block w-full border border-slate-200 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 bg-white hover:border-slate-300 transition-colors"
1445
1463
  }, [
1446
1464
  c[16] || (c[16] = t("option", { value: "" }, "Selecciona...", -1)),
1447
- (i(!0), d(A, null, V(b.gap, (l) => (i(), d("option", {
1448
- key: l.value,
1449
- value: l.value
1450
- }, v(l.label), 9, nn))), 128))
1451
- ], 8, on), [
1452
- [J, p.value]
1465
+ (s(!0), d(B, null, z(g.gap, (a) => (s(), d("option", {
1466
+ key: a.value,
1467
+ value: a.value
1468
+ }, x(a.label), 9, ln))), 128))
1469
+ ], 8, nn), [
1470
+ [H, p.value]
1453
1471
  ])
1454
1472
  ]),
1455
- t("div", ln, [
1473
+ t("div", an, [
1456
1474
  t("label", {
1457
1475
  for: `flexdir-${e.rowIndex}-${e.columnIndex}`,
1458
1476
  class: "block text-sm font-medium text-slate-600 mb-1.5"
1459
- }, "Dirección:", 8, an),
1460
- O(t("select", {
1461
- "onUpdate:modelValue": c[2] || (c[2] = (l) => u.value = l),
1477
+ }, "Dirección:", 8, rn),
1478
+ R(t("select", {
1479
+ "onUpdate:modelValue": c[2] || (c[2] = (a) => u.value = a),
1462
1480
  id: `flexdir-${e.rowIndex}-${e.columnIndex}`,
1463
1481
  class: "block w-full border border-slate-200 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 bg-white hover:border-slate-300 transition-colors"
1464
1482
  }, [
1465
1483
  c[17] || (c[17] = t("option", { value: "" }, "Selecciona...", -1)),
1466
- (i(!0), d(A, null, V(b.flexDirection, (l) => (i(), d("option", {
1467
- key: l.value,
1468
- value: l.value
1469
- }, v(l.label), 9, sn))), 128))
1470
- ], 8, rn), [
1471
- [J, u.value]
1484
+ (s(!0), d(B, null, z(g.flexDirection, (a) => (s(), d("option", {
1485
+ key: a.value,
1486
+ value: a.value
1487
+ }, x(a.label), 9, dn))), 128))
1488
+ ], 8, sn), [
1489
+ [H, u.value]
1472
1490
  ])
1473
1491
  ]),
1474
1492
  t("button", {
1475
1493
  type: "button",
1476
1494
  class: "bg-gradient-to-r from-emerald-500 to-teal-500 hover:from-emerald-600 hover:to-teal-600 text-white px-5 py-2 rounded-lg font-medium shadow-sm hover:shadow-md transition-all duration-200 cursor-pointer",
1477
- onClick: c[3] || (c[3] = (l) => {
1478
- w(e.rowIndex, e.columnIndex), s.value = !1;
1495
+ onClick: c[3] || (c[3] = (a) => {
1496
+ y(e.rowIndex, e.columnIndex), i.value = !1;
1479
1497
  })
1480
1498
  }, " Guardar ")
1481
1499
  ], 32)
1482
1500
  ])
1483
- ])) : S("", !0),
1484
- t("div", dn, [
1501
+ ])) : $("", !0),
1502
+ t("div", un, [
1485
1503
  t("div", {
1486
1504
  class: G(["flex flex-row", { "justify-between": e.section && e.section !== "Sidebar", "justify-center": e.section === "Sidebar" }])
1487
1505
  }, [
1488
- e.section && e.section !== "Sidebar" ? (i(), d("button", {
1506
+ e.section && e.section !== "Sidebar" ? (s(), d("button", {
1489
1507
  key: 0,
1490
1508
  type: "button",
1491
1509
  title: "Añadir columna a la izquierda",
1492
- onClick: c[5] || (c[5] = (l) => {
1510
+ onClick: c[5] || (c[5] = (a) => {
1493
1511
  var r;
1494
1512
  return (r = e.addCol) == null ? void 0 : r.call(e, e.rowIndex, e.columnIndex, e.section, "left");
1495
1513
  }),
1496
1514
  class: "ms-2 bg-white px-3 py-1 cursor-pointer rounded-t-lg border border-b-0 border-slate-200 hover:bg-emerald-500 hover:border-emerald-500 hover:text-white text-slate-600 transition-all duration-200 shadow-sm hover:shadow-md font-medium"
1497
- }, "+")) : S("", !0),
1498
- t("div", un, [
1515
+ }, "+")) : $("", !0),
1516
+ t("div", cn, [
1499
1517
  t("button", {
1500
1518
  type: "button",
1501
1519
  title: "Configurar columna",
1502
- onClick: c[6] || (c[6] = (l) => s.value = !s.value),
1503
- class: G(["px-2.5 py-1 rounded-lg cursor-pointer transition-all duration-200", s.value ? "bg-amber-100 text-amber-700 shadow-sm" : "bg-slate-100 text-slate-600 hover:bg-amber-500 hover:text-white"])
1520
+ onClick: c[6] || (c[6] = (a) => i.value = !i.value),
1521
+ class: G(["px-2.5 py-1 rounded-lg cursor-pointer transition-all duration-200", i.value ? "bg-amber-100 text-amber-700 shadow-sm" : "bg-slate-100 text-slate-600 hover:bg-amber-500 hover:text-white"])
1504
1522
  }, "⚙️", 2),
1505
- t("div", cn, [
1506
- e.section && e.section !== "Sidebar" ? (i(), d("span", {
1523
+ t("div", mn, [
1524
+ e.section && e.section !== "Sidebar" ? (s(), d("span", {
1507
1525
  key: 0,
1508
1526
  title: "Mover columna a la izquierda",
1509
- onClick: c[7] || (c[7] = (l) => {
1527
+ onClick: c[7] || (c[7] = (a) => {
1510
1528
  var r;
1511
1529
  return (r = e.moveCol) == null ? void 0 : r.call(e, e.rowIndex, e.columnIndex, e.section, "left");
1512
1530
  }),
1513
1531
  class: "bg-slate-100 px-2.5 py-1 cursor-pointer rounded-lg transition-all duration-200 text-slate-400 hover:bg-blue-500 hover:text-white"
1514
- }, "◁")) : S("", !0),
1515
- e.fullwidthMode ? (i(), d("span", {
1532
+ }, "◁")) : $("", !0),
1533
+ e.fullwidthMode ? (s(), d("span", {
1516
1534
  key: 1,
1517
1535
  title: "Añadir componente",
1518
- onClick: c[8] || (c[8] = (l) => {
1536
+ onClick: c[8] || (c[8] = (a) => {
1519
1537
  var r;
1520
1538
  return (r = e.addComponentFunction) == null ? void 0 : r.call(e, e.rowIndex, e.columnIndex, e.section || "");
1521
1539
  }),
1522
1540
  class: "bg-slate-100 px-2.5 py-1 cursor-pointer rounded-lg transition-all duration-200 text-slate-400 hover:bg-violet-500 hover:text-white"
1523
- }, " 📦 ")) : S("", !0),
1524
- e.section && e.section !== "Sidebar" ? (i(), d("span", {
1541
+ }, " 📦 ")) : $("", !0),
1542
+ e.section && e.section !== "Sidebar" ? (s(), d("span", {
1525
1543
  key: 2,
1526
1544
  title: "Mover columna a la derecha",
1527
- onClick: c[9] || (c[9] = (l) => {
1545
+ onClick: c[9] || (c[9] = (a) => {
1528
1546
  var r;
1529
1547
  return (r = e.moveCol) == null ? void 0 : r.call(e, e.rowIndex, e.columnIndex, e.section, "right");
1530
1548
  }),
1531
1549
  class: "bg-slate-100 px-2.5 py-1 cursor-pointer rounded-lg transition-all duration-200 text-slate-400 hover:bg-blue-500 hover:text-white"
1532
- }, "▷ ")) : S("", !0)
1550
+ }, "▷ ")) : $("", !0)
1533
1551
  ]),
1534
1552
  t("button", {
1535
1553
  type: "button",
1536
1554
  title: "Eliminar columna",
1537
- onClick: c[10] || (c[10] = (l) => {
1555
+ onClick: c[10] || (c[10] = (a) => {
1538
1556
  var r;
1539
1557
  return (r = e.removeCol) == null ? void 0 : r.call(e, e.rowIndex, e.columnIndex, e.section || "");
1540
1558
  }),
1541
1559
  class: "bg-slate-100 px-2.5 py-1 rounded-lg cursor-pointer transition-all duration-200 text-slate-600 hover:bg-red-500 hover:text-white"
1542
1560
  }, "🗑️")
1543
1561
  ]),
1544
- e.section && e.section !== "Sidebar" ? (i(), d("button", {
1562
+ e.section && e.section !== "Sidebar" ? (s(), d("button", {
1545
1563
  key: 1,
1546
1564
  type: "button",
1547
1565
  title: "Añadir columna a la derecha",
1548
- onClick: c[11] || (c[11] = (l) => {
1566
+ onClick: c[11] || (c[11] = (a) => {
1549
1567
  var r;
1550
1568
  return (r = e.addCol) == null ? void 0 : r.call(e, e.rowIndex, e.columnIndex, e.section, "right");
1551
1569
  }),
1552
1570
  class: "me-2 bg-white px-3 py-1 cursor-pointer rounded-t-lg border border-b-0 border-slate-200 hover:bg-emerald-500 hover:border-emerald-500 hover:text-white text-slate-600 transition-all duration-200 shadow-sm hover:shadow-md font-medium"
1553
- }, "+")) : S("", !0)
1571
+ }, "+")) : $("", !0)
1554
1572
  ], 2)
1555
1573
  ])
1556
1574
  ], 64));
1557
1575
  }
1558
- }), bn = { class: "absolute -top-1 px-2 gap-4 w-full justify-between hidden group-hover/row:flex css-pb-row-config" }, gn = { class: "flex gap-1.5" }, fn = { class: "flex gap-4 items-center" }, pn = { class: "inline-block" }, vn = {
1576
+ }), gn = { class: "absolute -top-1 px-2 gap-4 w-full justify-between hidden group-hover/row:flex css-pb-row-config" }, fn = { class: "flex gap-1.5" }, pn = { class: "flex gap-4 items-center" }, vn = { class: "inline-block" }, xn = {
1559
1577
  key: 0,
1560
1578
  class: "text-xs font-medium text-slate-400 bg-slate-50 px-2 py-1 rounded-full"
1561
- }, xn = { class: "text-slate-600" }, hn = {
1579
+ }, hn = { class: "text-slate-600" }, wn = {
1562
1580
  key: 1,
1563
1581
  class: "text-xs font-medium text-slate-400 bg-slate-50 px-2 py-1 rounded-full"
1564
- }, wn = { class: "text-slate-600" }, yn = {
1582
+ }, yn = { class: "text-slate-600" }, Cn = {
1565
1583
  key: 2,
1566
1584
  class: "text-xs font-medium text-slate-400 bg-slate-50 px-2 py-1 rounded-full"
1567
- }, Cn = { class: "text-slate-600" }, $n = { class: "flex gap-1.5" }, kn = {
1585
+ }, $n = { class: "text-slate-600" }, kn = { class: "flex gap-1.5" }, Sn = {
1568
1586
  key: 0,
1569
1587
  class: "z-1"
1570
- }, Sn = { class: "p-5 bg-white rounded-xl shadow-lg border border-slate-100 w-full mt-8" }, Fn = { class: "flex flex-col" }, Pn = ["for"], jn = ["id"], Mn = ["value"], In = { class: "flex flex-col" }, An = ["for"], Bn = ["id"], En = ["value"], Tn = { class: "flex flex-col" }, Dn = ["for"], On = ["id"], Rn = ["value"], Vn = /* @__PURE__ */ W({
1588
+ }, Fn = { class: "p-5 bg-white rounded-xl shadow-lg border border-slate-100 w-full mt-8" }, Pn = { class: "flex flex-col" }, jn = ["for"], Mn = ["id"], In = ["value"], An = { class: "flex flex-col" }, Bn = ["for"], En = ["id"], Tn = ["value"], Dn = { class: "flex flex-col" }, On = ["for"], Rn = ["id"], Vn = ["value"], zn = /* @__PURE__ */ W({
1571
1589
  __name: "RowConfig",
1572
1590
  props: {
1573
1591
  rowIndex: {
@@ -1582,7 +1600,7 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1582
1600
  moveRow: Function
1583
1601
  },
1584
1602
  setup(e) {
1585
- const o = e, b = {
1603
+ const o = e, g = {
1586
1604
  padding: [
1587
1605
  { label: "Ninguno", value: "0" },
1588
1606
  { label: "Leve", value: "4" },
@@ -1608,25 +1626,25 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1608
1626
  { label: "3/5", value: "3/5" },
1609
1627
  { label: "4/5", value: "4/5" }
1610
1628
  ]
1611
- }, $ = C(""), p = C(""), u = C(""), s = C(!1), m = C(!1), w = Y(() => {
1612
- var l, r;
1613
- const c = (l = o.globalPageConfiguration) == null ? void 0 : l.find(
1629
+ }, F = k(""), p = k(""), u = k(""), i = k(!1), m = k(!1), y = Y(() => {
1630
+ var a, r;
1631
+ const c = (a = o.globalPageConfiguration) == null ? void 0 : a.find(
1614
1632
  (f) => f.section === o.section
1615
1633
  );
1616
1634
  return (r = c == null ? void 0 : c.rows) != null && r[o.rowIndex] ? c.rows[o.rowIndex].config || {} : {};
1617
1635
  }), I = (c) => {
1618
- var R;
1619
- const l = $.value || b.padding[0].value, r = p.value || b.gap[0].value, f = u.value || b.width[0].value;
1620
- (R = o.updateRowConfig) == null || R.call(o, c, o.section || "", l, r, f), s.value = !1;
1636
+ var V;
1637
+ const a = F.value || g.padding[0].value, r = p.value || g.gap[0].value, f = u.value || g.width[0].value;
1638
+ (V = o.updateRowConfig) == null || V.call(o, c, o.section || "", a, r, f), i.value = !1;
1621
1639
  };
1622
- return (c, l) => (i(), d(A, null, [
1623
- t("div", bn, [
1640
+ return (c, a) => (s(), d(B, null, [
1641
+ t("div", gn, [
1624
1642
  t("div", null, [
1625
- t("div", gn, [
1643
+ t("div", fn, [
1626
1644
  t("button", {
1627
1645
  type: "button",
1628
1646
  title: "Agregar fila",
1629
- onClick: l[0] || (l[0] = (r) => {
1647
+ onClick: a[0] || (a[0] = (r) => {
1630
1648
  var f;
1631
1649
  (f = e.addRow) == null || f.call(e, e.rowIndex, e.section || ""), m.value = !1;
1632
1650
  }),
@@ -1635,7 +1653,7 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1635
1653
  t("button", {
1636
1654
  type: "button",
1637
1655
  title: "Mover fila hacia arriba",
1638
- onClick: l[1] || (l[1] = (r) => {
1656
+ onClick: a[1] || (a[1] = (r) => {
1639
1657
  var f;
1640
1658
  (f = e.moveRow) == null || f.call(e, e.rowIndex, e.section || "", "up"), m.value = !1;
1641
1659
  }),
@@ -1644,7 +1662,7 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1644
1662
  t("button", {
1645
1663
  type: "button",
1646
1664
  title: "Mover fila hacia abajo",
1647
- onClick: l[2] || (l[2] = (r) => {
1665
+ onClick: a[2] || (a[2] = (r) => {
1648
1666
  var f;
1649
1667
  (f = e.moveRow) == null || f.call(e, e.rowIndex, e.section || "", "down"), m.value = !1;
1650
1668
  }),
@@ -1652,34 +1670,34 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1652
1670
  }, "▽")
1653
1671
  ])
1654
1672
  ]),
1655
- t("div", fn, [
1656
- t("div", pn, [
1673
+ t("div", pn, [
1674
+ t("div", vn, [
1657
1675
  t("button", {
1658
1676
  type: "button",
1659
1677
  title: "Configurar la fila",
1660
- onClick: l[3] || (l[3] = (r) => s.value = !s.value),
1661
- class: G(["cursor-pointer rounded-b-lg border border-t-0 px-3 py-1 transition-all duration-200 shadow-sm hover:shadow-md", s.value ? "bg-amber-100 border-amber-300 text-amber-700" : "bg-white border-slate-200 text-slate-600 hover:bg-amber-500 hover:border-amber-500 hover:text-white"])
1678
+ onClick: a[3] || (a[3] = (r) => i.value = !i.value),
1679
+ class: G(["cursor-pointer rounded-b-lg border border-t-0 px-3 py-1 transition-all duration-200 shadow-sm hover:shadow-md", i.value ? "bg-amber-100 border-amber-300 text-amber-700" : "bg-white border-slate-200 text-slate-600 hover:bg-amber-500 hover:border-amber-500 hover:text-white"])
1662
1680
  }, "⚙️", 2)
1663
1681
  ]),
1664
- w.value.padding !== void 0 ? (i(), d("span", vn, [
1665
- l[10] || (l[10] = E(" Padding: ", -1)),
1666
- t("span", xn, v(w.value.padding), 1)
1667
- ])) : S("", !0),
1668
- w.value.gap !== void 0 ? (i(), d("span", hn, [
1669
- l[11] || (l[11] = E(" Gap: ", -1)),
1670
- t("span", wn, v(w.value.gap), 1)
1671
- ])) : S("", !0),
1672
- w.value.width !== void 0 ? (i(), d("span", yn, [
1673
- l[12] || (l[12] = E(" Ancho: ", -1)),
1674
- t("span", Cn, v(w.value.width), 1)
1675
- ])) : S("", !0)
1682
+ y.value.padding !== void 0 ? (s(), d("span", xn, [
1683
+ a[10] || (a[10] = D(" Padding: ", -1)),
1684
+ t("span", hn, x(y.value.padding), 1)
1685
+ ])) : $("", !0),
1686
+ y.value.gap !== void 0 ? (s(), d("span", wn, [
1687
+ a[11] || (a[11] = D(" Gap: ", -1)),
1688
+ t("span", yn, x(y.value.gap), 1)
1689
+ ])) : $("", !0),
1690
+ y.value.width !== void 0 ? (s(), d("span", Cn, [
1691
+ a[12] || (a[12] = D(" Ancho: ", -1)),
1692
+ t("span", $n, x(y.value.width), 1)
1693
+ ])) : $("", !0)
1676
1694
  ]),
1677
1695
  t("div", null, [
1678
- t("div", $n, [
1696
+ t("div", kn, [
1679
1697
  t("button", {
1680
1698
  type: "button",
1681
1699
  title: "Eliminar fila",
1682
- onClick: l[4] || (l[4] = (r) => {
1700
+ onClick: a[4] || (a[4] = (r) => {
1683
1701
  var f;
1684
1702
  (f = e.removeRow) == null || f.call(e, e.rowIndex, e.section || ""), m.value = !1;
1685
1703
  }),
@@ -1688,83 +1706,83 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1688
1706
  ])
1689
1707
  ])
1690
1708
  ]),
1691
- s.value ? (i(), d("div", kn, [
1692
- t("div", Sn, [
1709
+ i.value ? (s(), d("div", Sn, [
1710
+ t("div", Fn, [
1693
1711
  t("form", {
1694
- onSubmit: l[9] || (l[9] = le(() => {
1712
+ onSubmit: a[9] || (a[9] = le(() => {
1695
1713
  }, ["prevent"])),
1696
1714
  class: "flex gap-6 w-full justify-center items-end flex-wrap"
1697
1715
  }, [
1698
- t("div", Fn, [
1716
+ t("div", Pn, [
1699
1717
  t("label", {
1700
1718
  for: `padding-${e.rowIndex}`,
1701
1719
  class: "block text-sm font-medium text-slate-600 mb-1.5"
1702
- }, "Padding:", 8, Pn),
1703
- O(t("select", {
1704
- "onUpdate:modelValue": l[5] || (l[5] = (r) => $.value = r),
1720
+ }, "Padding:", 8, jn),
1721
+ R(t("select", {
1722
+ "onUpdate:modelValue": a[5] || (a[5] = (r) => F.value = r),
1705
1723
  id: `padding-${e.rowIndex}`,
1706
1724
  class: "block w-full border border-slate-200 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 bg-slate-50 hover:bg-white transition-colors"
1707
1725
  }, [
1708
- l[13] || (l[13] = t("option", { value: "" }, "Selecciona...", -1)),
1709
- (i(!0), d(A, null, V(b.padding, (r) => (i(), d("option", {
1726
+ a[13] || (a[13] = t("option", { value: "" }, "Selecciona...", -1)),
1727
+ (s(!0), d(B, null, z(g.padding, (r) => (s(), d("option", {
1710
1728
  key: r.value,
1711
1729
  value: r.value
1712
- }, v(r.label), 9, Mn))), 128))
1713
- ], 8, jn), [
1714
- [J, $.value]
1730
+ }, x(r.label), 9, In))), 128))
1731
+ ], 8, Mn), [
1732
+ [H, F.value]
1715
1733
  ])
1716
1734
  ]),
1717
- t("div", In, [
1735
+ t("div", An, [
1718
1736
  t("label", {
1719
1737
  for: `gap-${e.rowIndex}`,
1720
1738
  class: "block text-sm font-medium text-slate-600 mb-1.5"
1721
- }, "Gap:", 8, An),
1722
- O(t("select", {
1723
- "onUpdate:modelValue": l[6] || (l[6] = (r) => p.value = r),
1739
+ }, "Gap:", 8, Bn),
1740
+ R(t("select", {
1741
+ "onUpdate:modelValue": a[6] || (a[6] = (r) => p.value = r),
1724
1742
  id: `gap-${e.rowIndex}`,
1725
1743
  class: "block w-full border border-slate-200 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 bg-slate-50 hover:bg-white transition-colors"
1726
1744
  }, [
1727
- l[14] || (l[14] = t("option", { value: "" }, "Selecciona...", -1)),
1728
- (i(!0), d(A, null, V(b.gap, (r) => (i(), d("option", {
1745
+ a[14] || (a[14] = t("option", { value: "" }, "Selecciona...", -1)),
1746
+ (s(!0), d(B, null, z(g.gap, (r) => (s(), d("option", {
1729
1747
  key: r.value,
1730
1748
  value: r.value
1731
- }, v(r.label), 9, En))), 128))
1732
- ], 8, Bn), [
1733
- [J, p.value]
1749
+ }, x(r.label), 9, Tn))), 128))
1750
+ ], 8, En), [
1751
+ [H, p.value]
1734
1752
  ])
1735
1753
  ]),
1736
- t("div", Tn, [
1754
+ t("div", Dn, [
1737
1755
  t("label", {
1738
1756
  for: `width-${e.rowIndex}`,
1739
1757
  class: "block text-sm font-medium text-slate-600 mb-1.5"
1740
- }, "Ancho:", 8, Dn),
1741
- O(t("select", {
1742
- "onUpdate:modelValue": l[7] || (l[7] = (r) => u.value = r),
1758
+ }, "Ancho:", 8, On),
1759
+ R(t("select", {
1760
+ "onUpdate:modelValue": a[7] || (a[7] = (r) => u.value = r),
1743
1761
  id: `width-${e.rowIndex}`,
1744
1762
  class: "block w-full border border-slate-200 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 bg-slate-50 hover:bg-white transition-colors"
1745
1763
  }, [
1746
- l[15] || (l[15] = t("option", { value: "" }, "Selecciona...", -1)),
1747
- (i(!0), d(A, null, V(b.width, (r) => (i(), d("option", {
1764
+ a[15] || (a[15] = t("option", { value: "" }, "Selecciona...", -1)),
1765
+ (s(!0), d(B, null, z(g.width, (r) => (s(), d("option", {
1748
1766
  key: r.value,
1749
1767
  value: r.value
1750
- }, v(r.label), 9, Rn))), 128))
1751
- ], 8, On), [
1752
- [J, u.value]
1768
+ }, x(r.label), 9, Vn))), 128))
1769
+ ], 8, Rn), [
1770
+ [H, u.value]
1753
1771
  ])
1754
1772
  ]),
1755
1773
  t("button", {
1756
1774
  type: "button",
1757
1775
  class: "bg-gradient-to-r from-emerald-500 to-teal-500 hover:from-emerald-600 hover:to-teal-600 text-white px-5 py-2 rounded-lg font-medium shadow-sm hover:shadow-md transition-all duration-200 cursor-pointer",
1758
- onClick: l[8] || (l[8] = (r) => {
1776
+ onClick: a[8] || (a[8] = (r) => {
1759
1777
  I(e.rowIndex), m.value = !1;
1760
1778
  })
1761
1779
  }, " Guardar ")
1762
1780
  ], 32)
1763
1781
  ])
1764
- ])) : S("", !0)
1782
+ ])) : $("", !0)
1765
1783
  ], 64));
1766
1784
  }
1767
- }), zn = ["id"], Nn = { class: "flex flex-row w-full gap-3 mt-6" }, Un = ["id"], qn = /* @__PURE__ */ W({
1785
+ }), Nn = ["id"], Un = { class: "flex flex-row w-full gap-3 mt-6" }, qn = ["id"], Ln = /* @__PURE__ */ W({
1768
1786
  __name: "BodySection",
1769
1787
  props: {
1770
1788
  isComponentMode: Boolean,
@@ -1772,6 +1790,7 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1772
1790
  globalPageConfiguration: Array,
1773
1791
  sectionSelected: String,
1774
1792
  removeComponent: Function,
1793
+ cloneComponent: Function,
1775
1794
  addComponentFunction: Function,
1776
1795
  addCol: Function,
1777
1796
  addRow: Function,
@@ -1788,19 +1807,19 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1788
1807
  }
1789
1808
  },
1790
1809
  setup(e) {
1791
- const o = e, b = C(!1), $ = Y(() => {
1810
+ const o = e, g = k(!1), F = Y(() => {
1792
1811
  var u;
1793
1812
  const p = (u = o.globalPageConfiguration) == null ? void 0 : u.find(
1794
- (s) => s.section === o.sectionSelected
1813
+ (i) => i.section === o.sectionSelected
1795
1814
  );
1796
1815
  return (p == null ? void 0 : p.rows) || [];
1797
1816
  });
1798
- return (p, u) => (i(!0), d(A, null, V($.value, (s, m) => (i(), d("div", {
1817
+ return (p, u) => (s(!0), d(B, null, z(F.value, (i, m) => (s(), d("div", {
1799
1818
  key: "row-" + m,
1800
1819
  id: "row-" + e.sectionSelected + "-" + m,
1801
1820
  class: "flex flex-col gap-3 w-full p-5 bg-white border border-slate-200 rounded-2xl js-row relative items-center hover:border-slate-300 hover:shadow-lg transition-all duration-300 css-pb-row group/row"
1802
1821
  }, [
1803
- L(Vn, {
1822
+ L(zn, {
1804
1823
  moveRow: e.moveRow,
1805
1824
  addRow: e.addRow,
1806
1825
  removeRow: e.removeRow,
@@ -1809,23 +1828,23 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1809
1828
  rowIndex: m,
1810
1829
  section: e.sectionSelected
1811
1830
  }, null, 8, ["moveRow", "addRow", "removeRow", "globalPageConfiguration", "updateRowConfig", "rowIndex", "section"]),
1812
- t("div", Nn, [
1813
- (i(!0), d(A, null, V(s.columns, (w, I) => (i(), d("div", {
1831
+ t("div", Un, [
1832
+ (s(!0), d(B, null, z(i.columns, (y, I) => (s(), d("div", {
1814
1833
  class: G([
1815
1834
  "hover:shadow-md overflow-hidden dragging-zone border relative border-slate-200 shadow-sm w-full p-5 pt-10 min-h-[200px] rounded-xl flex flex-col gap-3 items-center before:content-['Columna'] before:absolute before:text-slate-300 before:text-7xl before:font-bold before:bottom-4 before:left-2 before:-rotate-12 before:opacity-30 before:duration-300 before:transition-opacity group hover:before:opacity-50 transition-all duration-300",
1816
- b.value ? "bg-gradient-to-b from-emerald-50 to-emerald-100 border-emerald-300 shadow-emerald-100" : "bg-gradient-to-b from-slate-50 to-slate-100"
1835
+ g.value ? "bg-gradient-to-b from-emerald-50 to-emerald-100 border-emerald-300 shadow-emerald-100" : "bg-gradient-to-b from-slate-50 to-slate-100"
1817
1836
  ]),
1818
1837
  key: "column-" + I,
1819
1838
  id: "col-" + e.sectionSelected + "-" + m + "-" + I
1820
1839
  }, [
1821
1840
  L(q(me), {
1822
1841
  class: "h-full w-full mb-4",
1823
- list: w.components,
1842
+ list: y.components,
1824
1843
  group: { name: "draggingGroup", pull: !0, put: !0 },
1825
- "item-key": "name",
1844
+ "item-key": "id",
1826
1845
  handle: ".handle",
1827
- onStart: u[0] || (u[0] = (c) => b.value = !0),
1828
- onEnd: u[1] || (u[1] = (c) => b.value = !1)
1846
+ onStart: u[0] || (u[0] = (c) => g.value = !0),
1847
+ onEnd: u[1] || (u[1] = (c) => g.value = !1)
1829
1848
  }, {
1830
1849
  item: ce(({ element: c }) => [
1831
1850
  L(be, {
@@ -1833,13 +1852,14 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1833
1852
  object: c,
1834
1853
  "is-component-mode": e.isComponentMode,
1835
1854
  removeComponent: e.removeComponent,
1855
+ cloneComponent: e.cloneComponent,
1836
1856
  section: e.sectionSelected,
1837
1857
  isProduction: e.isProduction
1838
- }, null, 8, ["renderApiDomain", "object", "is-component-mode", "removeComponent", "section", "isProduction"])
1858
+ }, null, 8, ["renderApiDomain", "object", "is-component-mode", "removeComponent", "cloneComponent", "section", "isProduction"])
1839
1859
  ]),
1840
1860
  _: 1
1841
1861
  }, 8, ["list"]),
1842
- L(mn, {
1862
+ L(bn, {
1843
1863
  section: e.sectionSelected,
1844
1864
  globalPageConfiguration: e.globalPageConfiguration,
1845
1865
  updateColConfig: e.updateColConfig,
@@ -1851,11 +1871,11 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1851
1871
  rowIndex: m,
1852
1872
  columnIndex: I
1853
1873
  }, null, 8, ["section", "globalPageConfiguration", "updateColConfig", "addComponentFunction", "fullwidthMode", "addCol", "removeCol", "moveCol", "rowIndex", "columnIndex"])
1854
- ], 10, Un))), 128))
1874
+ ], 10, qn))), 128))
1855
1875
  ])
1856
- ], 8, zn))), 128));
1876
+ ], 8, Nn))), 128));
1857
1877
  }
1858
- }), Ln = { class: "flex justify-between items-center mb-4" }, Gn = { class: "text-xs" }, Hn = { class: "flex flex-wrap gap-2 mb-4 bg-white border border-slate-200 p-4 rounded-xl shadow-sm" }, Jn = ["value", "checked"], Wn = { class: "my-3" }, Yn = { class: "relative" }, Kn = { class: "component-library dragging-zone w-full p-5 min-h-[200px] border border-slate-200 bg-white rounded-xl flex flex-col gap-4 items-center shadow-sm" }, Qn = {
1878
+ }), Gn = { class: "flex justify-between items-center mb-4" }, Jn = { class: "text-xs" }, Hn = { class: "flex flex-wrap gap-2 mb-4 bg-white border border-slate-200 p-4 rounded-xl shadow-sm" }, Wn = ["value", "checked"], Yn = { class: "my-3" }, Kn = { class: "relative" }, Qn = { class: "component-library dragging-zone w-full p-5 min-h-[200px] border border-slate-200 bg-white rounded-xl flex flex-col gap-4 items-center shadow-sm" }, Xn = {
1859
1879
  key: 0,
1860
1880
  class: "text-center py-8 text-slate-400"
1861
1881
  }, de = /* @__PURE__ */ W({
@@ -1872,7 +1892,7 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1872
1892
  excludedCategories: {}
1873
1893
  },
1874
1894
  setup(e) {
1875
- const o = e, b = [
1895
+ const o = e, g = [
1876
1896
  "Call to Action",
1877
1897
  "Contenido",
1878
1898
  "Separador",
@@ -1884,26 +1904,26 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1884
1904
  "Formulario",
1885
1905
  "Título",
1886
1906
  "SEO"
1887
- ], $ = Y(() => !o.excludedCategories || o.excludedCategories.length === 0 ? b : b.filter((c) => !o.excludedCategories.includes(c))), p = C(!0), u = C([]), s = C(""), m = Y(() => {
1888
- const c = s.value.toLowerCase(), l = Object.values(o.components), r = (f) => (f.name.toLowerCase() + f.description.toLowerCase() + f.tags.join(" ").toLowerCase()).includes(c);
1889
- return u.value.length > 0 ? l.filter(
1907
+ ], F = Y(() => !o.excludedCategories || o.excludedCategories.length === 0 ? g : g.filter((c) => !o.excludedCategories.includes(c))), p = k(!0), u = k([]), i = k(""), m = Y(() => {
1908
+ const c = i.value.toLowerCase(), a = Object.values(o.components), r = (f) => (f.name.toLowerCase() + f.description.toLowerCase() + f.tags.join(" ").toLowerCase()).includes(c);
1909
+ return u.value.length > 0 ? a.filter(
1890
1910
  (f) => u.value.includes(f.category) && r(f)
1891
- ) : l.filter(r);
1892
- }), w = (c) => {
1893
- s.value = c.target.value;
1911
+ ) : a.filter(r);
1912
+ }), y = (c) => {
1913
+ i.value = c.target.value;
1894
1914
  }, I = (c) => {
1895
- const l = c.target, r = l.value;
1896
- l.checked ? u.value.includes(r) || u.value.push(r) : u.value = u.value.filter((f) => f !== r);
1915
+ const a = c.target, r = a.value;
1916
+ a.checked ? u.value.includes(r) || u.value.push(r) : u.value = u.value.filter((f) => f !== r);
1897
1917
  };
1898
- return (c, l) => (i(), d(A, null, [
1899
- l[6] || (l[6] = t("h1", { class: "text-center text-2xl font-semibold mb-4 text-slate-700 tracking-tight" }, "Componentes", -1)),
1900
- t("div", Ln, [
1918
+ return (c, a) => (s(), d(B, null, [
1919
+ a[6] || (a[6] = t("h1", { class: "text-center text-2xl font-semibold mb-4 text-slate-700 tracking-tight" }, "Componentes", -1)),
1920
+ t("div", Gn, [
1901
1921
  t("button", {
1902
1922
  type: "button",
1903
- onClick: l[0] || (l[0] = (r) => p.value = !p.value),
1923
+ onClick: a[0] || (a[0] = (r) => p.value = !p.value),
1904
1924
  class: "mb-3 px-4 py-2 bg-white rounded-lg border border-slate-200 hover:border-slate-300 hover:shadow-sm transition-all duration-200 cursor-pointer text-slate-600 font-medium flex items-center gap-2"
1905
1925
  }, [
1906
- l[2] || (l[2] = t("svg", {
1926
+ a[2] || (a[2] = t("svg", {
1907
1927
  class: "w-4 h-4",
1908
1928
  fill: "none",
1909
1929
  stroke: "currentColor",
@@ -1916,20 +1936,20 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1916
1936
  d: "M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"
1917
1937
  })
1918
1938
  ], -1)),
1919
- l[3] || (l[3] = t("span", null, "Filtros", -1)),
1920
- t("span", Gn, v(p.value ? "▲" : "▼"), 1)
1939
+ a[3] || (a[3] = t("span", null, "Filtros", -1)),
1940
+ t("span", Jn, x(p.value ? "▲" : "▼"), 1)
1921
1941
  ]),
1922
1942
  t("button", {
1923
1943
  type: "button",
1924
1944
  class: G([[e.isComponentMode ? "bg-gradient-to-r from-slate-600 to-slate-700 border-slate-700 text-white shadow-md" : "bg-white hover:bg-slate-100"], "cursor-pointer border border-slate-200 rounded-lg py-1.5 px-3 text-sm font-medium transition-all duration-200"]),
1925
- onClick: l[1] || (l[1] = (r) => {
1945
+ onClick: a[1] || (a[1] = (r) => {
1926
1946
  var f;
1927
1947
  return (f = e.toggleComponentModeFunction) == null ? void 0 : f.call(e);
1928
1948
  })
1929
- }, v(e.isComponentMode ? "⚒️ Modo Configuración" : "👁️ Modo Visual"), 3)
1949
+ }, x(e.isComponentMode ? "⚒️ Modo Configuración" : "👁️ Modo Visual"), 3)
1930
1950
  ]),
1931
- O(t("div", Hn, [
1932
- (i(!0), d(A, null, V($.value, (r) => (i(), d("label", {
1951
+ R(t("div", Hn, [
1952
+ (s(!0), d(B, null, z(F.value, (r) => (s(), d("label", {
1933
1953
  key: r,
1934
1954
  class: G(["flex items-center gap-2 text-xs bg-slate-50 hover:bg-slate-100 px-3 py-2 rounded-lg cursor-pointer transition-colors duration-200 border border-transparent hover:border-slate-200", { "bg-emerald-50 border-emerald-200 text-emerald-700": u.value.includes(r) }])
1935
1955
  }, [
@@ -1939,15 +1959,15 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1939
1959
  checked: u.value.includes(r),
1940
1960
  onInput: I,
1941
1961
  class: "w-4 h-4 rounded border-slate-300 text-emerald-500 focus:ring-emerald-500"
1942
- }, null, 40, Jn),
1943
- E(" " + v(r), 1)
1962
+ }, null, 40, Wn),
1963
+ D(" " + x(r), 1)
1944
1964
  ], 2))), 128))
1945
1965
  ], 512), [
1946
- [xe, p.value]
1966
+ [he, p.value]
1947
1967
  ]),
1948
- t("div", Wn, [
1949
- t("div", Yn, [
1950
- l[4] || (l[4] = t("svg", {
1968
+ t("div", Yn, [
1969
+ t("div", Kn, [
1970
+ a[4] || (a[4] = t("svg", {
1951
1971
  class: "absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-slate-400",
1952
1972
  fill: "none",
1953
1973
  stroke: "currentColor",
@@ -1961,14 +1981,14 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1961
1981
  })
1962
1982
  ], -1)),
1963
1983
  t("input", {
1964
- onInput: w,
1984
+ onInput: y,
1965
1985
  type: "text",
1966
1986
  placeholder: "Buscar componente...",
1967
1987
  class: "duration-300 border border-slate-200 bg-white rounded-xl py-3 px-4 pl-11 w-full focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-400 hover:border-slate-300 shadow-sm"
1968
1988
  }, null, 32)
1969
1989
  ])
1970
1990
  ]),
1971
- t("div", Kn, [
1991
+ t("div", Qn, [
1972
1992
  L(q(me), {
1973
1993
  class: "w-full flex flex-col gap-4",
1974
1994
  list: m.value,
@@ -1990,7 +2010,7 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
1990
2010
  ]),
1991
2011
  _: 1
1992
2012
  }, 8, ["list", "clone"]),
1993
- m.value.length === 0 ? (i(), d("div", Qn, [...l[5] || (l[5] = [
2013
+ m.value.length === 0 ? (s(), d("div", Xn, [...a[5] || (a[5] = [
1994
2014
  t("svg", {
1995
2015
  class: "w-12 h-12 mx-auto mb-3 opacity-50",
1996
2016
  fill: "none",
@@ -2006,14 +2026,14 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
2006
2026
  ], -1),
2007
2027
  t("p", { class: "text-sm font-medium" }, "No se encontraron componentes", -1),
2008
2028
  t("p", { class: "text-xs mt-1" }, "Intenta con otros filtros o términos de búsqueda", -1)
2009
- ])])) : S("", !0)
2029
+ ])])) : $("", !0)
2010
2030
  ])
2011
2031
  ], 64));
2012
2032
  }
2013
- }), Xn = { class: "flex flex-col w-full transition-all duration-300 lf-page-builder bg-gradient-to-br from-slate-50 to-slate-100 min-h-screen" }, Zn = { class: "relative flex flex-row flex-wrap" }, _n = { class: "w-full flex justify-end py-4 pe-4" }, el = { class: "w-3/4" }, tl = {
2033
+ }), Zn = { class: "flex flex-col w-full transition-all duration-300 lf-page-builder bg-gradient-to-br from-slate-50 to-slate-100 min-h-screen" }, _n = { class: "relative flex flex-row flex-wrap" }, el = { class: "w-full flex justify-end py-4 pe-4" }, tl = { class: "w-3/4" }, ol = {
2014
2034
  key: 1,
2015
2035
  class: "w-1/4 px-3 overflow-y-auto h-screen sticky top-0"
2016
- }, rl = /* @__PURE__ */ W({
2036
+ }, sl = /* @__PURE__ */ W({
2017
2037
  __name: "Pagebuilder",
2018
2038
  props: {
2019
2039
  isProduction: { type: Boolean },
@@ -2023,19 +2043,19 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
2023
2043
  excludeComponentTypes: {}
2024
2044
  },
2025
2045
  setup(e) {
2026
- const o = e, b = o.isProduction ?? !1, $ = o.debugMode ?? !1, p = o.submitForm ?? !1, u = o.inputId ?? null, s = [
2046
+ const o = e, g = o.isProduction ?? !1, F = o.debugMode ?? !1, p = o.submitForm ?? !1, u = o.inputId ?? null, i = [
2027
2047
  "Repetidor",
2028
2048
  // Siempre excluido
2029
2049
  ...o.excludeComponentTypes ?? []
2030
- ], m = b ? "https://render-api.lefebvre.es" : "https://led-dev-astro-render-api-dev.eu.els.local", w = C(!0), I = C(void 0), c = C([]), l = C({ rowIndex: null, columnIndex: null, section: null }), r = C(!1), f = C(!1), R = Y(() => {
2031
- const y = we();
2032
- if (s.length === 0)
2033
- return y;
2050
+ ], m = g ? "https://render-api.lefebvre.es" : "https://led-dev-astro-render-api-dev.eu.els.local", y = k(!0), I = k(void 0), c = k([]), a = k({ rowIndex: null, columnIndex: null, section: null }), r = k(!1), f = k(!1), V = Y(() => {
2051
+ const w = ye();
2052
+ if (i.length === 0)
2053
+ return w;
2034
2054
  const h = {};
2035
- for (const [x, k] of Object.entries(y))
2036
- s.includes(k.category) || (h[x] = k);
2055
+ for (const [v, C] of Object.entries(w))
2056
+ i.includes(C.category) || (h[v] = C);
2037
2057
  return h;
2038
- }), P = C({
2058
+ }), P = k({
2039
2059
  global: {
2040
2060
  sidebarEnabled: !1,
2041
2061
  renderAsBodyPart: !1,
@@ -2048,7 +2068,7 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
2048
2068
  description: "",
2049
2069
  robots: "index, follow"
2050
2070
  }
2051
- }), g = he([
2071
+ }), b = we([
2052
2072
  {
2053
2073
  section: "Header",
2054
2074
  config: { width: "full" },
@@ -2075,188 +2095,203 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
2075
2095
  });
2076
2096
  const n = () => {
2077
2097
  if (c.value = ["Header", "Footer", "Body", "Sidebar"], I.value = "Body", u) {
2078
- const y = document.getElementById(u);
2079
- if (y) {
2080
- const h = y.value;
2098
+ const w = document.getElementById(u);
2099
+ if (w) {
2100
+ const h = w.value;
2081
2101
  if (h)
2082
2102
  try {
2083
- const x = typeof h == "string" ? JSON.parse(h) : h;
2084
- (x && typeof x == "object" && !Array.isArray(x) ? Object.keys(x).length > 0 : Array.isArray(x) ? x.length > 0 : !1) && se(h);
2085
- } catch (x) {
2086
- console.error("Error parsing input value:", x);
2103
+ const v = typeof h == "string" ? JSON.parse(h) : h;
2104
+ (v && typeof v == "object" && !Array.isArray(v) ? Object.keys(v).length > 0 : Array.isArray(v) ? v.length > 0 : !1) && se(h);
2105
+ } catch (v) {
2106
+ console.error("Error parsing input value:", v);
2087
2107
  }
2088
2108
  }
2089
2109
  }
2090
- }, a = () => {
2110
+ }, l = () => {
2091
2111
  f.value = !f.value;
2092
- }, F = () => {
2093
- w.value = !w.value;
2094
- }, j = (y, h, x, k, M) => {
2095
- var D;
2096
- const T = g.find((z) => z.section === h);
2097
- (D = T == null ? void 0 : T.rows) != null && D[y] && (T.rows[y].config = {
2098
- padding: x,
2099
- gap: k,
2112
+ }, S = () => {
2113
+ y.value = !y.value;
2114
+ }, j = (w, h, v, C, M) => {
2115
+ var T;
2116
+ const A = b.find((O) => O.section === h);
2117
+ (T = A == null ? void 0 : A.rows) != null && T[w] && (A.rows[w].config = {
2118
+ padding: v,
2119
+ gap: C,
2100
2120
  width: M
2101
2121
  });
2102
- }, B = (y, h, x, k, M, T) => {
2103
- var z, U, K;
2104
- const D = g.find((Z) => Z.section === x);
2105
- (K = (U = (z = D == null ? void 0 : D.rows) == null ? void 0 : z[y]) == null ? void 0 : U.columns) != null && K[h] && (D.rows[y].columns[h].config = {
2106
- width: k,
2122
+ }, E = (w, h, v, C, M, A) => {
2123
+ var O, U, K;
2124
+ const T = b.find((Z) => Z.section === v);
2125
+ (K = (U = (O = T == null ? void 0 : T.rows) == null ? void 0 : O[w]) == null ? void 0 : U.columns) != null && K[h] && (T.rows[w].columns[h].config = {
2126
+ width: C,
2107
2127
  gap: M,
2108
- flexDirection: T
2128
+ flexDirection: A
2109
2129
  });
2110
- }, N = async (y, h) => {
2111
- const x = g.find((k) => k.section === h);
2112
- if (x) {
2113
- const k = {
2130
+ }, N = async (w, h) => {
2131
+ const v = b.find((C) => C.section === h);
2132
+ if (v) {
2133
+ const C = {
2114
2134
  config: {},
2115
2135
  columns: [{ config: {}, components: [] }]
2116
2136
  };
2117
- y !== null && y >= 0 && y < x.rows.length ? x.rows.splice(y + 1, 0, k) : x.rows.push(k);
2137
+ w !== null && w >= 0 && w < v.rows.length ? v.rows.splice(w + 1, 0, C) : v.rows.push(C);
2118
2138
  }
2119
- await new Promise((k) => {
2139
+ await new Promise((C) => {
2120
2140
  setTimeout(() => {
2121
- const M = document.getElementById(`row-${h}-${(y ?? 0) + 1}`);
2141
+ const M = document.getElementById(`row-${h}-${(w ?? 0) + 1}`);
2122
2142
  M ? (M.scrollIntoView({ behavior: "smooth", block: "center" }), M.classList.add("selected-delay"), setTimeout(() => {
2123
- M.classList.remove("selected-delay"), k();
2124
- }, 3e3)) : k();
2143
+ M.classList.remove("selected-delay"), C();
2144
+ }, 3e3)) : C();
2125
2145
  }, 0);
2126
2146
  });
2127
- }, X = (y, h) => {
2128
- const x = g.find((k) => k.section === h);
2129
- !(x != null && x.rows) || x.rows.length <= 1 || x.rows.splice(y, 1);
2130
- }, H = (y, h, x = "down") => {
2131
- var z;
2132
- const k = g.find((U) => U.section === h);
2133
- if (!((z = k == null ? void 0 : k.rows) != null && z[y]) || x === "up" && y === 0 || x === "down" && y === k.rows.length - 1)
2147
+ }, X = (w, h) => {
2148
+ const v = b.find((C) => C.section === h);
2149
+ !(v != null && v.rows) || v.rows.length <= 1 || v.rows.splice(w, 1);
2150
+ }, J = (w, h, v = "down") => {
2151
+ var O;
2152
+ const C = b.find((U) => U.section === h);
2153
+ if (!((O = C == null ? void 0 : C.rows) != null && O[w]) || v === "up" && w === 0 || v === "down" && w === C.rows.length - 1)
2134
2154
  return;
2135
- const M = k.rows, T = M.splice(y, 1)[0], D = x === "down" ? y + 1 : y - 1;
2136
- M.splice(D, 0, T);
2137
- }, _ = async (y, h, x, k = "right") => {
2138
- var D;
2139
- const M = k === "left" ? h : h + 1, T = g.find((z) => z.section === x);
2140
- (D = T == null ? void 0 : T.rows) != null && D[y] && T.rows[y].columns.splice(M, 0, {
2155
+ const M = C.rows, A = M.splice(w, 1)[0], T = v === "down" ? w + 1 : w - 1;
2156
+ M.splice(T, 0, A);
2157
+ }, _ = async (w, h, v, C = "right") => {
2158
+ var T;
2159
+ const M = C === "left" ? h : h + 1, A = b.find((O) => O.section === v);
2160
+ (T = A == null ? void 0 : A.rows) != null && T[w] && A.rows[w].columns.splice(M, 0, {
2141
2161
  config: {},
2142
2162
  components: []
2143
- }), await new Promise((z) => {
2163
+ }), await new Promise((O) => {
2144
2164
  setTimeout(() => {
2145
- const U = document.getElementById(`col-${x}-${y}-${M}`);
2165
+ const U = document.getElementById(`col-${v}-${w}-${M}`);
2146
2166
  U ? (U.scrollIntoView({ behavior: "smooth", block: "center" }), U.classList.add("selected-delay"), setTimeout(() => {
2147
- U.classList.remove("selected-delay"), z();
2148
- }, 3e3)) : z();
2167
+ U.classList.remove("selected-delay"), O();
2168
+ }, 3e3)) : O();
2149
2169
  }, 0);
2150
2170
  });
2151
- }, ee = (y, h, x) => {
2152
- var T, D;
2153
- const k = g.find((z) => z.section === x), M = (D = (T = k == null ? void 0 : k.rows) == null ? void 0 : T[y]) == null ? void 0 : D.columns;
2171
+ }, ee = (w, h, v) => {
2172
+ var A, T;
2173
+ const C = b.find((O) => O.section === v), M = (T = (A = C == null ? void 0 : C.rows) == null ? void 0 : A[w]) == null ? void 0 : T.columns;
2154
2174
  !M || M.length <= 1 || M.splice(h, 1);
2155
- }, te = (y, h, x, k = "right") => {
2175
+ }, te = (w, h, v, C = "right") => {
2156
2176
  var U;
2157
- const M = g.find((K) => K.section === x);
2158
- if (!((U = M == null ? void 0 : M.rows) != null && U[y]) || k === "left" && h === 0 || k === "right" && h === M.rows[y].columns.length - 1)
2177
+ const M = b.find((K) => K.section === v);
2178
+ if (!((U = M == null ? void 0 : M.rows) != null && U[w]) || C === "left" && h === 0 || C === "right" && h === M.rows[w].columns.length - 1)
2159
2179
  return;
2160
- const T = M.rows[y].columns, D = T.splice(h, 1)[0], z = k === "right" ? h + 1 : h - 1;
2161
- T.splice(z, 0, D);
2162
- }, ge = (y, h) => {
2163
- var k;
2164
- const x = g.find((M) => M.section === h);
2165
- (k = x == null ? void 0 : x.rows) == null || k.forEach((M) => {
2166
- M.columns.forEach((T) => {
2167
- const D = T.components.indexOf(y);
2168
- D !== -1 && T.components.splice(D, 1);
2180
+ const A = M.rows[w].columns, T = A.splice(h, 1)[0], O = C === "right" ? h + 1 : h - 1;
2181
+ A.splice(O, 0, T);
2182
+ }, ge = (w, h) => {
2183
+ var C;
2184
+ const v = b.find((M) => M.section === h);
2185
+ (C = v == null ? void 0 : v.rows) == null || C.forEach((M) => {
2186
+ M.columns.forEach((A) => {
2187
+ const T = A.components.indexOf(w);
2188
+ T !== -1 && A.components.splice(T, 1);
2169
2189
  });
2170
2190
  });
2171
- }, fe = (y, h, x) => {
2172
- r.value = !0, l.value = { rowIndex: y, columnIndex: h, section: x };
2173
- }, re = (y) => {
2174
- var M, T, D, z;
2175
- const { rowIndex: h, columnIndex: x, section: k } = l.value;
2176
- if (h !== null && x !== null) {
2177
- const U = JSON.parse(JSON.stringify(y)), K = g.find((pe) => pe.section === k), Z = (z = (D = (T = (M = K == null ? void 0 : K.rows) == null ? void 0 : M[h]) == null ? void 0 : T.columns) == null ? void 0 : D[x]) == null ? void 0 : z.components;
2191
+ }, fe = (w, h) => {
2192
+ var C;
2193
+ const v = b.find((M) => M.section === h);
2194
+ (C = v == null ? void 0 : v.rows) == null || C.forEach((M) => {
2195
+ M.columns.forEach((A) => {
2196
+ const T = A.components.indexOf(w);
2197
+ if (T !== -1) {
2198
+ const O = JSON.parse(JSON.stringify(w));
2199
+ O.id = Math.random().toString(36).substring(2, 15) + Date.now().toString(36), A.components.splice(T + 1, 0, O);
2200
+ }
2201
+ });
2202
+ });
2203
+ }, pe = (w, h, v) => {
2204
+ r.value = !0, a.value = { rowIndex: w, columnIndex: h, section: v };
2205
+ }, re = (w) => {
2206
+ var M, A, T, O;
2207
+ const { rowIndex: h, columnIndex: v, section: C } = a.value;
2208
+ if (h !== null && v !== null) {
2209
+ const U = JSON.parse(JSON.stringify(w));
2210
+ U.id = Math.random().toString(36).substring(2, 15) + Date.now().toString(36);
2211
+ const K = b.find((ve) => ve.section === C), Z = (O = (T = (A = (M = K == null ? void 0 : K.rows) == null ? void 0 : M[h]) == null ? void 0 : A.columns) == null ? void 0 : T[v]) == null ? void 0 : O.components;
2178
2212
  Z == null || Z.push(U);
2179
2213
  }
2180
2214
  r.value = !1;
2181
- }, se = (y) => {
2182
- const h = typeof y == "string" ? JSON.parse(y) : y;
2183
- g.length = 0, g.push(...h.pageConfig || []), h.paramsConfig && (P.value = { ...P.value, ...h.paramsConfig });
2215
+ }, se = (w) => {
2216
+ const h = typeof w == "string" ? JSON.parse(w) : w;
2217
+ b.length = 0, b.push(...h.pageConfig || []), h.paramsConfig && (P.value = { ...P.value, ...h.paramsConfig });
2184
2218
  };
2185
- return (y, h) => (i(), d("div", Xn, [
2186
- L(dt, {
2219
+ return (w, h) => (s(), d("div", Zn, [
2220
+ L(ut, {
2187
2221
  sectionSelected: I.value,
2188
- "onUpdate:sectionSelected": h[0] || (h[0] = (x) => I.value = x),
2222
+ "onUpdate:sectionSelected": h[0] || (h[0] = (v) => I.value = v),
2189
2223
  parametersPageConfiguration: P.value,
2190
- "onUpdate:parametersPageConfiguration": h[1] || (h[1] = (x) => P.value = x),
2191
- globalPageConfiguration: g,
2224
+ "onUpdate:parametersPageConfiguration": h[1] || (h[1] = (v) => P.value = v),
2225
+ globalPageConfiguration: b,
2192
2226
  availableSections: c.value,
2193
2227
  importConfigurationFunction: se,
2194
2228
  isComponentMode: f.value,
2195
- toggleComponentModeFunction: a,
2196
- fullwidthMode: w.value,
2197
- toggleFullwidthMode: F,
2229
+ toggleComponentModeFunction: l,
2230
+ fullwidthMode: y.value,
2231
+ toggleFullwidthMode: S,
2198
2232
  renderApiDomain: q(m),
2199
2233
  inputId: q(u),
2200
- debugMode: q($),
2234
+ debugMode: q(F),
2201
2235
  submitForm: q(p)
2202
2236
  }, null, 8, ["sectionSelected", "parametersPageConfiguration", "globalPageConfiguration", "availableSections", "isComponentMode", "fullwidthMode", "renderApiDomain", "inputId", "debugMode", "submitForm"]),
2203
- t("div", Zn, [
2204
- w.value ? (i(), d("div", {
2237
+ t("div", _n, [
2238
+ y.value ? (s(), d("div", {
2205
2239
  key: 0,
2206
2240
  class: G(["w-full overflow-y-auto fixed top-0 left-0 h-full bg-gradient-to-br from-slate-100 via-white to-slate-50 z-9999 px-4 flex justify-start flex flex-col items-center backdrop-blur-sm", r.value ? "" : "hidden"])
2207
2241
  }, [
2208
- t("div", _n, [
2242
+ t("div", el, [
2209
2243
  t("div", {
2210
2244
  class: "cursor-pointer w-10 h-10 flex items-center justify-center rounded-full bg-white shadow-md hover:shadow-lg hover:bg-red-50 text-slate-400 hover:text-red-500 transition-all duration-200 text-xl font-light",
2211
- onClick: h[2] || (h[2] = (x) => r.value = !1)
2245
+ onClick: h[2] || (h[2] = (v) => r.value = !1)
2212
2246
  }, "✕")
2213
2247
  ]),
2214
- t("div", el, [
2248
+ t("div", tl, [
2215
2249
  L(de, {
2216
2250
  renderApiDomain: q(m),
2217
2251
  isComponentMode: f.value,
2218
- fullwidthMode: w.value,
2219
- columnToInsert: l.value,
2252
+ fullwidthMode: y.value,
2253
+ columnToInsert: a.value,
2220
2254
  addComponentToColumn: re,
2221
- toggleComponentModeFunction: a,
2222
- isProduction: q(b),
2223
- components: R.value,
2224
- excludedCategories: s
2255
+ toggleComponentModeFunction: l,
2256
+ isProduction: q(g),
2257
+ components: V.value,
2258
+ excludedCategories: i
2225
2259
  }, null, 8, ["renderApiDomain", "isComponentMode", "fullwidthMode", "columnToInsert", "isProduction", "components"])
2226
2260
  ])
2227
- ], 2)) : (i(), d("div", tl, [
2261
+ ], 2)) : (s(), d("div", ol, [
2228
2262
  L(de, {
2229
2263
  renderApiDomain: q(m),
2230
2264
  isComponentMode: f.value,
2231
- fullwidthMode: w.value,
2232
- columnToInsert: l.value,
2265
+ fullwidthMode: y.value,
2266
+ columnToInsert: a.value,
2233
2267
  addComponentToColumn: re,
2234
- toggleComponentModeFunction: a,
2235
- isProduction: q(b),
2236
- components: R.value,
2237
- excludedCategories: s
2268
+ toggleComponentModeFunction: l,
2269
+ isProduction: q(g),
2270
+ components: V.value,
2271
+ excludedCategories: i
2238
2272
  }, null, 8, ["renderApiDomain", "isComponentMode", "fullwidthMode", "columnToInsert", "isProduction", "components"])
2239
2273
  ])),
2240
2274
  t("div", {
2241
- class: G([w.value ? "w-full px-4" : "w-3/4 ps-3", "flex flex-col gap-5"])
2275
+ class: G([y.value ? "w-full px-4" : "w-3/4 ps-3", "flex flex-col gap-5"])
2242
2276
  }, [
2243
- L(qn, {
2244
- globalPageConfiguration: g,
2277
+ L(Ln, {
2278
+ globalPageConfiguration: b,
2245
2279
  isComponentMode: f.value,
2246
2280
  removeComponent: ge,
2247
- addComponentFunction: fe,
2248
- fullwidthMode: w.value,
2281
+ cloneComponent: fe,
2282
+ addComponentFunction: pe,
2283
+ fullwidthMode: y.value,
2249
2284
  addCol: _,
2250
2285
  addRow: N,
2251
2286
  removeRow: X,
2252
2287
  removeCol: ee,
2253
2288
  moveCol: te,
2254
2289
  updateRowConfig: j,
2255
- updateColConfig: B,
2256
- moveRow: H,
2290
+ updateColConfig: E,
2291
+ moveRow: J,
2257
2292
  sectionSelected: I.value,
2258
2293
  renderApiDomain: q(m),
2259
- isProduction: q(b)
2294
+ isProduction: q(g)
2260
2295
  }, null, 8, ["globalPageConfiguration", "isComponentMode", "fullwidthMode", "sectionSelected", "renderApiDomain", "isProduction"])
2261
2296
  ], 2)
2262
2297
  ])
@@ -2264,15 +2299,15 @@ const dt = /* @__PURE__ */ $e(Ce, [["render", it]]), ut = {
2264
2299
  }
2265
2300
  });
2266
2301
  export {
2267
- qn as BodySection,
2268
- mn as ColConfig,
2302
+ Ln as BodySection,
2303
+ bn as ColConfig,
2269
2304
  de as ComponentsBox,
2270
- po as FeedComponent,
2305
+ vo as FeedComponent,
2271
2306
  ie as FieldsForm,
2272
- dt as GlobalConfig,
2307
+ ut as GlobalConfig,
2273
2308
  be as InitialComponent,
2274
- rl as Pagebuilder,
2275
- Vn as RowConfig,
2276
- Bt as SourceFilter,
2277
- rl as default
2309
+ sl as Pagebuilder,
2310
+ zn as RowConfig,
2311
+ Et as SourceFilter,
2312
+ sl as default
2278
2313
  };