@zekidev/schemas 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.cjs +608 -470
  2. package/dist/index.js +583 -445
  3. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -1386,7 +1386,7 @@ var require_react_development = __commonJS({
1386
1386
  var dispatcher = resolveDispatcher();
1387
1387
  return dispatcher.useLayoutEffect(create, deps);
1388
1388
  }
1389
- function useCallback2(callback, deps) {
1389
+ function useCallback3(callback, deps) {
1390
1390
  var dispatcher = resolveDispatcher();
1391
1391
  return dispatcher.useCallback(callback, deps);
1392
1392
  }
@@ -2153,7 +2153,7 @@ var require_react_development = __commonJS({
2153
2153
  exports2.memo = memo2;
2154
2154
  exports2.startTransition = startTransition;
2155
2155
  exports2.unstable_act = act;
2156
- exports2.useCallback = useCallback2;
2156
+ exports2.useCallback = useCallback3;
2157
2157
  exports2.useContext = useContext2;
2158
2158
  exports2.useDebugValue = useDebugValue2;
2159
2159
  exports2.useDeferredValue = useDeferredValue;
@@ -9519,9 +9519,9 @@ var require_react_dom_development = __commonJS({
9519
9519
  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === "function") {
9520
9520
  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
9521
9521
  }
9522
- var React6 = require_react();
9522
+ var React7 = require_react();
9523
9523
  var Scheduler = require_scheduler();
9524
- var ReactSharedInternals = React6.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
9524
+ var ReactSharedInternals = React7.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
9525
9525
  var suppressWarning = false;
9526
9526
  function setSuppressWarning(newSuppressWarning) {
9527
9527
  {
@@ -10891,7 +10891,7 @@ var require_react_dom_development = __commonJS({
10891
10891
  if (node.hasOwnProperty(valueField) || typeof descriptor === "undefined" || typeof descriptor.get !== "function" || typeof descriptor.set !== "function") {
10892
10892
  return;
10893
10893
  }
10894
- var get3 = descriptor.get, set3 = descriptor.set;
10894
+ var get3 = descriptor.get, set4 = descriptor.set;
10895
10895
  Object.defineProperty(node, valueField, {
10896
10896
  configurable: true,
10897
10897
  get: function() {
@@ -10902,7 +10902,7 @@ var require_react_dom_development = __commonJS({
10902
10902
  checkFormFieldValueStringCoercion(value);
10903
10903
  }
10904
10904
  currentValue = "" + value;
10905
- set3.call(this, value);
10905
+ set4.call(this, value);
10906
10906
  }
10907
10907
  });
10908
10908
  Object.defineProperty(node, valueField, {
@@ -11128,7 +11128,7 @@ var require_react_dom_development = __commonJS({
11128
11128
  {
11129
11129
  if (props.value == null) {
11130
11130
  if (typeof props.children === "object" && props.children !== null) {
11131
- React6.Children.forEach(props.children, function(child) {
11131
+ React7.Children.forEach(props.children, function(child) {
11132
11132
  if (child == null) {
11133
11133
  return;
11134
11134
  }
@@ -12817,7 +12817,7 @@ var require_react_dom_development = __commonJS({
12817
12817
  function has(key) {
12818
12818
  return key._reactInternals !== void 0;
12819
12819
  }
12820
- function set2(key, value) {
12820
+ function set3(key, value) {
12821
12821
  key._reactInternals = value;
12822
12822
  }
12823
12823
  var NoFlags = (
@@ -13950,14 +13950,14 @@ var require_react_dom_development = __commonJS({
13950
13950
  function includesSomeLane(a, b) {
13951
13951
  return (a & b) !== NoLanes;
13952
13952
  }
13953
- function isSubsetOfLanes(set3, subset) {
13954
- return (set3 & subset) === subset;
13953
+ function isSubsetOfLanes(set4, subset) {
13954
+ return (set4 & subset) === subset;
13955
13955
  }
13956
13956
  function mergeLanes(a, b) {
13957
13957
  return a | b;
13958
13958
  }
13959
- function removeLanes(set3, subset) {
13960
- return set3 & ~subset;
13959
+ function removeLanes(set4, subset) {
13960
+ return set4 & ~subset;
13961
13961
  }
13962
13962
  function intersectLanes(a, b) {
13963
13963
  return a & b;
@@ -18759,9 +18759,9 @@ var require_react_dom_development = __commonJS({
18759
18759
  }
18760
18760
  return maybeStrictRoot;
18761
18761
  };
18762
- var setToSortedString = function(set3) {
18762
+ var setToSortedString = function(set4) {
18763
18763
  var array = [];
18764
- set3.forEach(function(value) {
18764
+ set4.forEach(function(value) {
18765
18765
  array.push(value);
18766
18766
  });
18767
18767
  return array.sort().join(", ");
@@ -22724,7 +22724,7 @@ var require_react_dom_development = __commonJS({
22724
22724
  function adoptClassInstance(workInProgress2, instance) {
22725
22725
  instance.updater = classComponentUpdater;
22726
22726
  workInProgress2.stateNode = instance;
22727
- set2(instance, workInProgress2);
22727
+ set3(instance, workInProgress2);
22728
22728
  {
22729
22729
  instance._reactInternalInstance = fakeInternalInstance;
22730
22730
  }
@@ -30778,7 +30778,7 @@ var ctaButton = (0, import_sanity.defineType)({
30778
30778
  });
30779
30779
 
30780
30780
  // ../../apps/studio/schemas/sections/hero.ts
30781
- var import_sanity3 = require("sanity");
30781
+ var import_sanity4 = require("sanity");
30782
30782
 
30783
30783
  // ../../apps/studio/components/tiptap-editor.tsx
30784
30784
  var import_react2 = __toESM(require_react());
@@ -31295,21 +31295,21 @@ var Mark = class _Mark {
31295
31295
  [exclusive](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) with this mark are present,
31296
31296
  those are replaced by this one.
31297
31297
  */
31298
- addToSet(set2) {
31298
+ addToSet(set3) {
31299
31299
  let copy2, placed = false;
31300
- for (let i = 0; i < set2.length; i++) {
31301
- let other = set2[i];
31300
+ for (let i = 0; i < set3.length; i++) {
31301
+ let other = set3[i];
31302
31302
  if (this.eq(other))
31303
- return set2;
31303
+ return set3;
31304
31304
  if (this.type.excludes(other.type)) {
31305
31305
  if (!copy2)
31306
- copy2 = set2.slice(0, i);
31306
+ copy2 = set3.slice(0, i);
31307
31307
  } else if (other.type.excludes(this.type)) {
31308
- return set2;
31308
+ return set3;
31309
31309
  } else {
31310
31310
  if (!placed && other.type.rank > this.type.rank) {
31311
31311
  if (!copy2)
31312
- copy2 = set2.slice(0, i);
31312
+ copy2 = set3.slice(0, i);
31313
31313
  copy2.push(this);
31314
31314
  placed = true;
31315
31315
  }
@@ -31318,7 +31318,7 @@ var Mark = class _Mark {
31318
31318
  }
31319
31319
  }
31320
31320
  if (!copy2)
31321
- copy2 = set2.slice();
31321
+ copy2 = set3.slice();
31322
31322
  if (!placed)
31323
31323
  copy2.push(this);
31324
31324
  return copy2;
@@ -31327,18 +31327,18 @@ var Mark = class _Mark {
31327
31327
  Remove this mark from the given set, returning a new set. If this
31328
31328
  mark is not in the set, the set itself is returned.
31329
31329
  */
31330
- removeFromSet(set2) {
31331
- for (let i = 0; i < set2.length; i++)
31332
- if (this.eq(set2[i]))
31333
- return set2.slice(0, i).concat(set2.slice(i + 1));
31334
- return set2;
31330
+ removeFromSet(set3) {
31331
+ for (let i = 0; i < set3.length; i++)
31332
+ if (this.eq(set3[i]))
31333
+ return set3.slice(0, i).concat(set3.slice(i + 1));
31334
+ return set3;
31335
31335
  }
31336
31336
  /**
31337
31337
  Test whether this mark is in the given set of marks.
31338
31338
  */
31339
- isInSet(set2) {
31340
- for (let i = 0; i < set2.length; i++)
31341
- if (this.eq(set2[i]))
31339
+ isInSet(set3) {
31340
+ for (let i = 0; i < set3.length; i++)
31341
+ if (this.eq(set3[i]))
31342
31342
  return true;
31343
31343
  return false;
31344
31344
  }
@@ -32755,15 +32755,15 @@ function dfa(nfa2) {
32755
32755
  nfa2[node].forEach(({ term, to }) => {
32756
32756
  if (!term)
32757
32757
  return;
32758
- let set2;
32758
+ let set3;
32759
32759
  for (let i = 0; i < out.length; i++)
32760
32760
  if (out[i][0] == term)
32761
- set2 = out[i][1];
32761
+ set3 = out[i][1];
32762
32762
  nullFrom(nfa2, to).forEach((node2) => {
32763
- if (!set2)
32764
- out.push([term, set2 = []]);
32765
- if (set2.indexOf(node2) == -1)
32766
- set2.push(node2);
32763
+ if (!set3)
32764
+ out.push([term, set3 = []]);
32765
+ if (set3.indexOf(node2) == -1)
32766
+ set3.push(node2);
32767
32767
  });
32768
32768
  });
32769
32769
  });
@@ -33091,21 +33091,21 @@ var MarkType = class _MarkType {
33091
33091
  When there is a mark of this type in the given set, a new set
33092
33092
  without it is returned. Otherwise, the input set is returned.
33093
33093
  */
33094
- removeFromSet(set2) {
33095
- for (var i = 0; i < set2.length; i++)
33096
- if (set2[i].type == this) {
33097
- set2 = set2.slice(0, i).concat(set2.slice(i + 1));
33094
+ removeFromSet(set3) {
33095
+ for (var i = 0; i < set3.length; i++)
33096
+ if (set3[i].type == this) {
33097
+ set3 = set3.slice(0, i).concat(set3.slice(i + 1));
33098
33098
  i--;
33099
33099
  }
33100
- return set2;
33100
+ return set3;
33101
33101
  }
33102
33102
  /**
33103
33103
  Tests whether there is a mark of this type in the given set.
33104
33104
  */
33105
- isInSet(set2) {
33106
- for (let i = 0; i < set2.length; i++)
33107
- if (set2[i].type == this)
33108
- return set2[i];
33105
+ isInSet(set3) {
33106
+ for (let i = 0; i < set3.length; i++)
33107
+ if (set3[i].type == this)
33108
+ return set3[i];
33109
33109
  }
33110
33110
  /**
33111
33111
  @internal
@@ -34858,10 +34858,10 @@ function removeMark(tr2, from2, to, mark) {
34858
34858
  step++;
34859
34859
  let toRemove = null;
34860
34860
  if (mark instanceof MarkType) {
34861
- let set2 = node.marks, found2;
34862
- while (found2 = mark.isInSet(set2)) {
34861
+ let set3 = node.marks, found2;
34862
+ while (found2 = mark.isInSet(set3)) {
34863
34863
  (toRemove || (toRemove = [])).push(found2);
34864
- set2 = found2.removeFromSet(set2);
34864
+ set3 = found2.removeFromSet(set3);
34865
34865
  }
34866
34866
  } else if (mark) {
34867
34867
  if (mark.isInSet(node.marks))
@@ -35913,10 +35913,10 @@ var Transform = class {
35913
35913
  if (mark.isInSet(node.marks))
35914
35914
  this.step(new RemoveNodeMarkStep(pos, mark));
35915
35915
  } else {
35916
- let set2 = node.marks, found2, steps = [];
35917
- while (found2 = mark.isInSet(set2)) {
35916
+ let set3 = node.marks, found2, steps = [];
35917
+ while (found2 = mark.isInSet(set3)) {
35918
35918
  steps.push(new RemoveNodeMarkStep(pos, found2));
35919
- set2 = found2.removeFromSet(set2);
35919
+ set3 = found2.removeFromSet(set3);
35920
35920
  }
35921
35921
  for (let i = steps.length - 1; i >= 0; i--)
35922
35922
  this.step(steps[i]);
@@ -40864,16 +40864,16 @@ function moveSpans(spans, offset) {
40864
40864
  return result;
40865
40865
  }
40866
40866
  function mapAndGatherRemainingDecorations(children, oldChildren, decorations, mapping, offset, oldOffset, options) {
40867
- function gather(set2, oldOffset2) {
40868
- for (let i = 0; i < set2.local.length; i++) {
40869
- let mapped = set2.local[i].map(mapping, offset, oldOffset2);
40867
+ function gather(set3, oldOffset2) {
40868
+ for (let i = 0; i < set3.local.length; i++) {
40869
+ let mapped = set3.local[i].map(mapping, offset, oldOffset2);
40870
40870
  if (mapped)
40871
40871
  decorations.push(mapped);
40872
40872
  else if (options.onRemove)
40873
- options.onRemove(set2.local[i].spec);
40873
+ options.onRemove(set3.local[i].spec);
40874
40874
  }
40875
- for (let i = 0; i < set2.children.length; i += 3)
40876
- gather(set2.children[i + 2], set2.children[i] + oldOffset2 + 1);
40875
+ for (let i = 0; i < set3.children.length; i += 3)
40876
+ gather(set3.children[i + 2], set3.children[i] + oldOffset2 + 1);
40877
40877
  }
40878
40878
  for (let i = 0; i < children.length; i += 3)
40879
40879
  if (children[i + 1] == -1)
@@ -52056,13 +52056,54 @@ function TipTapEditor({ value, onChange, readOnly }) {
52056
52056
  return /* @__PURE__ */ import_react2.default.createElement("div", { className: "tiptap-wrapper" }, /* @__PURE__ */ import_react2.default.createElement(Toolbar, { editor }), /* @__PURE__ */ import_react2.default.createElement("div", { className: "tiptap-content" }, /* @__PURE__ */ import_react2.default.createElement(EditorContent, { editor })));
52057
52057
  }
52058
52058
 
52059
+ // ../../apps/studio/schemas/shared/section-media-fields.ts
52060
+ var import_sanity3 = require("sanity");
52061
+ var sectionMediaFields = [
52062
+ (0, import_sanity3.defineField)({
52063
+ name: "backgroundImage",
52064
+ title: "Imagen de fondo",
52065
+ type: "image",
52066
+ options: { hotspot: true },
52067
+ fields: [
52068
+ (0, import_sanity3.defineField)({
52069
+ name: "alt",
52070
+ title: "Descripci\xF3n (accesibilidad)",
52071
+ type: "string"
52072
+ })
52073
+ ]
52074
+ }),
52075
+ (0, import_sanity3.defineField)({
52076
+ name: "backgroundVideoUrl",
52077
+ title: "Video de fondo (URL .mp4)",
52078
+ type: "string",
52079
+ description: "URL directa a un archivo .mp4. No se reproduce en mobile \u2014 se recomienda agregar tambi\xE9n una imagen de fondo como poster."
52080
+ }),
52081
+ (0, import_sanity3.defineField)({
52082
+ name: "backgroundOverlay",
52083
+ title: "Overlay oscurecedor (%)",
52084
+ type: "number",
52085
+ description: "Oscurece el fondo para mejorar la legibilidad del texto sobre im\xE1genes o videos (0 = sin overlay, 80 = muy oscuro).",
52086
+ initialValue: 0,
52087
+ validation: (r) => r.min(0).max(100),
52088
+ hidden: ({ parent }) => !parent?.backgroundImage && !parent?.backgroundVideoUrl
52089
+ }),
52090
+ (0, import_sanity3.defineField)({
52091
+ name: "animate",
52092
+ title: "Animaci\xF3n de entrada",
52093
+ type: "boolean",
52094
+ description: "La secci\xF3n aparece con una animaci\xF3n fade-up suave al hacer scroll.",
52095
+ initialValue: false
52096
+ })
52097
+ ];
52098
+
52059
52099
  // ../../apps/studio/schemas/sections/hero.ts
52060
- var heroSection = (0, import_sanity3.defineType)({
52100
+ var heroSection = (0, import_sanity4.defineType)({
52061
52101
  name: "hero",
52062
52102
  title: "Hero",
52063
52103
  type: "object",
52064
52104
  fields: [
52065
- (0, import_sanity3.defineField)({
52105
+ ...sectionMediaFields,
52106
+ (0, import_sanity4.defineField)({
52066
52107
  name: "variant",
52067
52108
  title: "Variante",
52068
52109
  type: "string",
@@ -52081,20 +52122,20 @@ var heroSection = (0, import_sanity3.defineType)({
52081
52122
  initialValue: "centered",
52082
52123
  validation: (r) => r.required()
52083
52124
  }),
52084
- (0, import_sanity3.defineField)({ name: "badge", title: "Badge / Etiqueta superior", type: "string" }),
52085
- (0, import_sanity3.defineField)({ name: "subheading", title: "Subt\xEDtulo", type: "string" }),
52086
- (0, import_sanity3.defineField)({ name: "heading", title: "T\xEDtulo principal", type: "string", validation: (r) => r.required() }),
52087
- (0, import_sanity3.defineField)({ name: "description", title: "Descripci\xF3n / Texto secundario", type: "text", rows: 3 }),
52088
- (0, import_sanity3.defineField)({
52125
+ (0, import_sanity4.defineField)({ name: "badge", title: "Badge / Etiqueta superior", type: "string" }),
52126
+ (0, import_sanity4.defineField)({ name: "subheading", title: "Subt\xEDtulo", type: "string" }),
52127
+ (0, import_sanity4.defineField)({ name: "heading", title: "T\xEDtulo principal", type: "string", validation: (r) => r.required() }),
52128
+ (0, import_sanity4.defineField)({ name: "description", title: "Descripci\xF3n / Texto secundario", type: "text", rows: 3 }),
52129
+ (0, import_sanity4.defineField)({
52089
52130
  name: "content",
52090
52131
  title: "Contenido",
52091
52132
  type: "text",
52092
52133
  description: "Texto enriquecido opcional que se muestra debajo de la descripci\xF3n.",
52093
52134
  components: { input: TipTapEditor }
52094
52135
  }),
52095
- (0, import_sanity3.defineField)({ name: "primaryCTA", title: "Bot\xF3n CTA primario", type: "ctaButton" }),
52096
- (0, import_sanity3.defineField)({ name: "secondaryCTA", title: "Bot\xF3n CTA secundario", type: "ctaButton" }),
52097
- (0, import_sanity3.defineField)({
52136
+ (0, import_sanity4.defineField)({ name: "primaryCTA", title: "Bot\xF3n CTA primario", type: "ctaButton" }),
52137
+ (0, import_sanity4.defineField)({ name: "secondaryCTA", title: "Bot\xF3n CTA secundario", type: "ctaButton" }),
52138
+ (0, import_sanity4.defineField)({
52098
52139
  name: "image",
52099
52140
  title: "Imagen",
52100
52141
  description: "No se usa cuando la variante es 'Video de fondo'.",
@@ -52102,10 +52143,10 @@ var heroSection = (0, import_sanity3.defineType)({
52102
52143
  hidden: ({ parent }) => parent?.variant === "video",
52103
52144
  options: { hotspot: true },
52104
52145
  fields: [
52105
- (0, import_sanity3.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
52146
+ (0, import_sanity4.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
52106
52147
  ]
52107
52148
  }),
52108
- (0, import_sanity3.defineField)({
52149
+ (0, import_sanity4.defineField)({
52109
52150
  name: "videoPoster",
52110
52151
  title: "Poster del video (miniatura mientras carga)",
52111
52152
  description: "Se muestra antes de que el video comience a reproducirse.",
@@ -52113,11 +52154,11 @@ var heroSection = (0, import_sanity3.defineType)({
52113
52154
  hidden: ({ parent }) => parent?.variant !== "video" && parent?.variant !== "card",
52114
52155
  options: { hotspot: true },
52115
52156
  fields: [
52116
- (0, import_sanity3.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
52157
+ (0, import_sanity4.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
52117
52158
  ]
52118
52159
  }),
52119
52160
  /* ── Video: upload a file OR paste an external URL ── */
52120
- (0, import_sanity3.defineField)({
52161
+ (0, import_sanity4.defineField)({
52121
52162
  name: "videoFile",
52122
52163
  title: "Video \u2014 subir archivo (MP4/WebM)",
52123
52164
  description: "Subir directamente a Sanity. Tiene prioridad sobre la URL externa de abajo.",
@@ -52125,14 +52166,14 @@ var heroSection = (0, import_sanity3.defineType)({
52125
52166
  hidden: ({ parent }) => parent?.variant !== "video" && parent?.variant !== "card",
52126
52167
  options: { accept: "video/mp4,video/webm,video/*" }
52127
52168
  }),
52128
- (0, import_sanity3.defineField)({
52169
+ (0, import_sanity4.defineField)({
52129
52170
  name: "videoUrl",
52130
52171
  title: "Video \u2014 URL externa",
52131
52172
  description: "Peg\xE1 una URL directa de .mp4 / .webm (Cloudinary, S3, Vimeo link directo, etc.). Solo se usa si no hay archivo subido arriba.",
52132
52173
  type: "url",
52133
52174
  hidden: ({ parent }) => parent?.variant !== "video" && parent?.variant !== "card"
52134
52175
  }),
52135
- (0, import_sanity3.defineField)({
52176
+ (0, import_sanity4.defineField)({
52136
52177
  name: "overlayOpacity",
52137
52178
  title: "Opacidad del overlay de video / imagen %",
52138
52179
  description: "Usado en las variantes de video y fondo. 0 = sin overlay, 100 = completamente opaco.",
@@ -52140,7 +52181,7 @@ var heroSection = (0, import_sanity3.defineType)({
52140
52181
  initialValue: 50,
52141
52182
  validation: (r) => r.min(0).max(100)
52142
52183
  }),
52143
- (0, import_sanity3.defineField)({
52184
+ (0, import_sanity4.defineField)({
52144
52185
  name: "background",
52145
52186
  title: "Fondo",
52146
52187
  type: "string",
@@ -52159,7 +52200,7 @@ var heroSection = (0, import_sanity3.defineType)({
52159
52200
  },
52160
52201
  initialValue: "default"
52161
52202
  }),
52162
- (0, import_sanity3.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52203
+ (0, import_sanity4.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52163
52204
  ],
52164
52205
  preview: {
52165
52206
  select: { title: "heading", subtitle: "variant" },
@@ -52170,13 +52211,14 @@ var heroSection = (0, import_sanity3.defineType)({
52170
52211
  });
52171
52212
 
52172
52213
  // ../../apps/studio/schemas/sections/faq.ts
52173
- var import_sanity4 = require("sanity");
52174
- var faqSection = (0, import_sanity4.defineType)({
52214
+ var import_sanity5 = require("sanity");
52215
+ var faqSection = (0, import_sanity5.defineType)({
52175
52216
  name: "faq",
52176
52217
  title: "FAQ",
52177
52218
  type: "object",
52178
52219
  fields: [
52179
- (0, import_sanity4.defineField)({
52220
+ ...sectionMediaFields,
52221
+ (0, import_sanity5.defineField)({
52180
52222
  name: "variant",
52181
52223
  title: "Variante",
52182
52224
  type: "string",
@@ -52192,17 +52234,17 @@ var faqSection = (0, import_sanity4.defineType)({
52192
52234
  initialValue: "accordion",
52193
52235
  validation: (r) => r.required()
52194
52236
  }),
52195
- (0, import_sanity4.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52196
- (0, import_sanity4.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52197
- (0, import_sanity4.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52198
- (0, import_sanity4.defineField)({
52237
+ (0, import_sanity5.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52238
+ (0, import_sanity5.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52239
+ (0, import_sanity5.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52240
+ (0, import_sanity5.defineField)({
52199
52241
  name: "content",
52200
52242
  title: "Contenido",
52201
52243
  type: "text",
52202
52244
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52203
52245
  components: { input: TipTapEditor }
52204
52246
  }),
52205
- (0, import_sanity4.defineField)({
52247
+ (0, import_sanity5.defineField)({
52206
52248
  name: "items",
52207
52249
  title: "Elementos FAQ",
52208
52250
  type: "array",
@@ -52210,16 +52252,16 @@ var faqSection = (0, import_sanity4.defineType)({
52210
52252
  {
52211
52253
  type: "object",
52212
52254
  fields: [
52213
- (0, import_sanity4.defineField)({ name: "question", title: "Pregunta", type: "string", validation: (r) => r.required() }),
52214
- (0, import_sanity4.defineField)({ name: "answer", title: "Respuesta", type: "text", rows: 3, validation: (r) => r.required() })
52255
+ (0, import_sanity5.defineField)({ name: "question", title: "Pregunta", type: "string", validation: (r) => r.required() }),
52256
+ (0, import_sanity5.defineField)({ name: "answer", title: "Respuesta", type: "text", rows: 3, validation: (r) => r.required() })
52215
52257
  ],
52216
52258
  preview: { select: { title: "question" } }
52217
52259
  }
52218
52260
  ],
52219
52261
  validation: (r) => r.required().min(1)
52220
52262
  }),
52221
- (0, import_sanity4.defineField)({ name: "cta", title: "Bot\xF3n CTA (opcional)", type: "ctaButton" }),
52222
- (0, import_sanity4.defineField)({
52263
+ (0, import_sanity5.defineField)({ name: "cta", title: "Bot\xF3n CTA (opcional)", type: "ctaButton" }),
52264
+ (0, import_sanity5.defineField)({
52223
52265
  name: "background",
52224
52266
  title: "Fondo",
52225
52267
  type: "string",
@@ -52235,7 +52277,7 @@ var faqSection = (0, import_sanity4.defineType)({
52235
52277
  ], layout: "radio" },
52236
52278
  initialValue: "default"
52237
52279
  }),
52238
- (0, import_sanity4.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52280
+ (0, import_sanity5.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52239
52281
  ],
52240
52282
  preview: {
52241
52283
  select: { title: "title", subtitle: "variant" },
@@ -52246,13 +52288,14 @@ var faqSection = (0, import_sanity4.defineType)({
52246
52288
  });
52247
52289
 
52248
52290
  // ../../apps/studio/schemas/sections/gallery.ts
52249
- var import_sanity5 = require("sanity");
52250
- var gallerySection = (0, import_sanity5.defineType)({
52291
+ var import_sanity6 = require("sanity");
52292
+ var gallerySection = (0, import_sanity6.defineType)({
52251
52293
  name: "gallery",
52252
52294
  title: "Galer\xEDa",
52253
52295
  type: "object",
52254
52296
  fields: [
52255
- (0, import_sanity5.defineField)({
52297
+ ...sectionMediaFields,
52298
+ (0, import_sanity6.defineField)({
52256
52299
  name: "variant",
52257
52300
  title: "Variante",
52258
52301
  type: "string",
@@ -52267,17 +52310,17 @@ var gallerySection = (0, import_sanity5.defineType)({
52267
52310
  initialValue: "grid",
52268
52311
  validation: (r) => r.required()
52269
52312
  }),
52270
- (0, import_sanity5.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52271
- (0, import_sanity5.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52272
- (0, import_sanity5.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52273
- (0, import_sanity5.defineField)({
52313
+ (0, import_sanity6.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52314
+ (0, import_sanity6.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52315
+ (0, import_sanity6.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52316
+ (0, import_sanity6.defineField)({
52274
52317
  name: "content",
52275
52318
  title: "Contenido",
52276
52319
  type: "text",
52277
52320
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52278
52321
  components: { input: TipTapEditor }
52279
52322
  }),
52280
- (0, import_sanity5.defineField)({
52323
+ (0, import_sanity6.defineField)({
52281
52324
  name: "columns",
52282
52325
  title: "Columnas",
52283
52326
  type: "number",
@@ -52291,7 +52334,7 @@ var gallerySection = (0, import_sanity5.defineType)({
52291
52334
  },
52292
52335
  initialValue: 3
52293
52336
  }),
52294
- (0, import_sanity5.defineField)({
52337
+ (0, import_sanity6.defineField)({
52295
52338
  name: "items",
52296
52339
  title: "Im\xE1genes",
52297
52340
  type: "array",
@@ -52299,24 +52342,24 @@ var gallerySection = (0, import_sanity5.defineType)({
52299
52342
  {
52300
52343
  type: "object",
52301
52344
  fields: [
52302
- (0, import_sanity5.defineField)({
52345
+ (0, import_sanity6.defineField)({
52303
52346
  name: "image",
52304
52347
  title: "Imagen",
52305
52348
  type: "image",
52306
52349
  options: { hotspot: true },
52307
52350
  fields: [
52308
- (0, import_sanity5.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
52351
+ (0, import_sanity6.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
52309
52352
  ],
52310
52353
  validation: (r) => r.required()
52311
52354
  }),
52312
- (0, import_sanity5.defineField)({ name: "caption", title: "Leyenda", type: "string" })
52355
+ (0, import_sanity6.defineField)({ name: "caption", title: "Leyenda", type: "string" })
52313
52356
  ],
52314
52357
  preview: { select: { media: "image", title: "caption" } }
52315
52358
  }
52316
52359
  ],
52317
52360
  validation: (r) => r.required().min(1)
52318
52361
  }),
52319
- (0, import_sanity5.defineField)({
52362
+ (0, import_sanity6.defineField)({
52320
52363
  name: "background",
52321
52364
  title: "Fondo",
52322
52365
  type: "string",
@@ -52332,7 +52375,7 @@ var gallerySection = (0, import_sanity5.defineType)({
52332
52375
  ], layout: "radio" },
52333
52376
  initialValue: "default"
52334
52377
  }),
52335
- (0, import_sanity5.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52378
+ (0, import_sanity6.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52336
52379
  ],
52337
52380
  preview: {
52338
52381
  select: { title: "title", subtitle: "variant" },
@@ -52343,13 +52386,14 @@ var gallerySection = (0, import_sanity5.defineType)({
52343
52386
  });
52344
52387
 
52345
52388
  // ../../apps/studio/schemas/sections/kpis.ts
52346
- var import_sanity6 = require("sanity");
52347
- var kpisSection = (0, import_sanity6.defineType)({
52389
+ var import_sanity7 = require("sanity");
52390
+ var kpisSection = (0, import_sanity7.defineType)({
52348
52391
  name: "kpis",
52349
52392
  title: "KPIs / M\xE9tricas",
52350
52393
  type: "object",
52351
52394
  fields: [
52352
- (0, import_sanity6.defineField)({
52395
+ ...sectionMediaFields,
52396
+ (0, import_sanity7.defineField)({
52353
52397
  name: "variant",
52354
52398
  title: "Variante",
52355
52399
  type: "string",
@@ -52365,17 +52409,17 @@ var kpisSection = (0, import_sanity6.defineType)({
52365
52409
  initialValue: "counters",
52366
52410
  validation: (r) => r.required()
52367
52411
  }),
52368
- (0, import_sanity6.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52369
- (0, import_sanity6.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52370
- (0, import_sanity6.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52371
- (0, import_sanity6.defineField)({
52412
+ (0, import_sanity7.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52413
+ (0, import_sanity7.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52414
+ (0, import_sanity7.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52415
+ (0, import_sanity7.defineField)({
52372
52416
  name: "content",
52373
52417
  title: "Contenido",
52374
52418
  type: "text",
52375
52419
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52376
52420
  components: { input: TipTapEditor }
52377
52421
  }),
52378
- (0, import_sanity6.defineField)({
52422
+ (0, import_sanity7.defineField)({
52379
52423
  name: "items",
52380
52424
  title: "Elementos KPI",
52381
52425
  type: "array",
@@ -52383,11 +52427,11 @@ var kpisSection = (0, import_sanity6.defineType)({
52383
52427
  {
52384
52428
  type: "object",
52385
52429
  fields: [
52386
- (0, import_sanity6.defineField)({ name: "value", title: "Valor (ej: 98, 1.2M)", type: "string", validation: (r) => r.required() }),
52387
- (0, import_sanity6.defineField)({ name: "label", title: "Etiqueta", type: "string", validation: (r) => r.required() }),
52388
- (0, import_sanity6.defineField)({ name: "description", title: "Descripci\xF3n (opcional)", type: "string" }),
52389
- (0, import_sanity6.defineField)({ name: "prefix", title: "Prefijo (ej: $, +)", type: "string" }),
52390
- (0, import_sanity6.defineField)({ name: "suffix", title: "Sufijo (ej: %, K, M)", type: "string" })
52430
+ (0, import_sanity7.defineField)({ name: "value", title: "Valor (ej: 98, 1.2M)", type: "string", validation: (r) => r.required() }),
52431
+ (0, import_sanity7.defineField)({ name: "label", title: "Etiqueta", type: "string", validation: (r) => r.required() }),
52432
+ (0, import_sanity7.defineField)({ name: "description", title: "Descripci\xF3n (opcional)", type: "string" }),
52433
+ (0, import_sanity7.defineField)({ name: "prefix", title: "Prefijo (ej: $, +)", type: "string" }),
52434
+ (0, import_sanity7.defineField)({ name: "suffix", title: "Sufijo (ej: %, K, M)", type: "string" })
52391
52435
  ],
52392
52436
  preview: {
52393
52437
  select: { prefix: "prefix", value: "value", suffix: "suffix", title: "label" },
@@ -52399,7 +52443,7 @@ var kpisSection = (0, import_sanity6.defineType)({
52399
52443
  ],
52400
52444
  validation: (r) => r.required().min(1)
52401
52445
  }),
52402
- (0, import_sanity6.defineField)({
52446
+ (0, import_sanity7.defineField)({
52403
52447
  name: "background",
52404
52448
  title: "Fondo",
52405
52449
  type: "string",
@@ -52415,7 +52459,7 @@ var kpisSection = (0, import_sanity6.defineType)({
52415
52459
  ], layout: "radio" },
52416
52460
  initialValue: "default"
52417
52461
  }),
52418
- (0, import_sanity6.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52462
+ (0, import_sanity7.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52419
52463
  ],
52420
52464
  preview: {
52421
52465
  select: { title: "title", subtitle: "variant" },
@@ -52426,13 +52470,14 @@ var kpisSection = (0, import_sanity6.defineType)({
52426
52470
  });
52427
52471
 
52428
52472
  // ../../apps/studio/schemas/sections/cards.ts
52429
- var import_sanity7 = require("sanity");
52430
- var cardsSection = (0, import_sanity7.defineType)({
52473
+ var import_sanity8 = require("sanity");
52474
+ var cardsSection = (0, import_sanity8.defineType)({
52431
52475
  name: "cards",
52432
52476
  title: "Tarjetas",
52433
52477
  type: "object",
52434
52478
  fields: [
52435
- (0, import_sanity7.defineField)({
52479
+ ...sectionMediaFields,
52480
+ (0, import_sanity8.defineField)({
52436
52481
  name: "variant",
52437
52482
  title: "Variante",
52438
52483
  type: "string",
@@ -52448,17 +52493,17 @@ var cardsSection = (0, import_sanity7.defineType)({
52448
52493
  initialValue: "grid",
52449
52494
  validation: (r) => r.required()
52450
52495
  }),
52451
- (0, import_sanity7.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52452
- (0, import_sanity7.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52453
- (0, import_sanity7.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52454
- (0, import_sanity7.defineField)({
52496
+ (0, import_sanity8.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52497
+ (0, import_sanity8.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52498
+ (0, import_sanity8.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52499
+ (0, import_sanity8.defineField)({
52455
52500
  name: "content",
52456
52501
  title: "Contenido",
52457
52502
  type: "text",
52458
52503
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52459
52504
  components: { input: TipTapEditor }
52460
52505
  }),
52461
- (0, import_sanity7.defineField)({
52506
+ (0, import_sanity8.defineField)({
52462
52507
  name: "columns",
52463
52508
  title: "Columnas (variante grilla)",
52464
52509
  type: "number",
@@ -52472,7 +52517,7 @@ var cardsSection = (0, import_sanity7.defineType)({
52472
52517
  },
52473
52518
  initialValue: 3
52474
52519
  }),
52475
- (0, import_sanity7.defineField)({
52520
+ (0, import_sanity8.defineField)({
52476
52521
  name: "items",
52477
52522
  title: "Tarjetas",
52478
52523
  type: "array",
@@ -52480,28 +52525,28 @@ var cardsSection = (0, import_sanity7.defineType)({
52480
52525
  {
52481
52526
  type: "object",
52482
52527
  fields: [
52483
- (0, import_sanity7.defineField)({ name: "title", title: "T\xEDtulo", type: "string", validation: (r) => r.required() }),
52484
- (0, import_sanity7.defineField)({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
52485
- (0, import_sanity7.defineField)({
52528
+ (0, import_sanity8.defineField)({ name: "title", title: "T\xEDtulo", type: "string", validation: (r) => r.required() }),
52529
+ (0, import_sanity8.defineField)({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
52530
+ (0, import_sanity8.defineField)({
52486
52531
  name: "image",
52487
52532
  title: "Imagen",
52488
52533
  type: "image",
52489
52534
  options: { hotspot: true },
52490
52535
  fields: [
52491
- (0, import_sanity7.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
52536
+ (0, import_sanity8.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
52492
52537
  ]
52493
52538
  }),
52494
- (0, import_sanity7.defineField)({ name: "badge", title: "Badge / Etiqueta", type: "string" }),
52495
- (0, import_sanity7.defineField)({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
52496
- (0, import_sanity7.defineField)({ name: "price", title: "Precio (variante precios)", type: "string" }),
52497
- (0, import_sanity7.defineField)({ name: "priceFrequency", title: "Frecuencia de precio (ej: mes)", type: "string" }),
52498
- (0, import_sanity7.defineField)({
52539
+ (0, import_sanity8.defineField)({ name: "badge", title: "Badge / Etiqueta", type: "string" }),
52540
+ (0, import_sanity8.defineField)({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
52541
+ (0, import_sanity8.defineField)({ name: "price", title: "Precio (variante precios)", type: "string" }),
52542
+ (0, import_sanity8.defineField)({ name: "priceFrequency", title: "Frecuencia de precio (ej: mes)", type: "string" }),
52543
+ (0, import_sanity8.defineField)({
52499
52544
  name: "features",
52500
52545
  title: "Lista de caracter\xEDsticas (variante precios)",
52501
52546
  type: "array",
52502
52547
  of: [{ type: "string" }]
52503
52548
  }),
52504
- (0, import_sanity7.defineField)({ name: "highlighted", title: "Destacar esta tarjeta (m\xE1s popular)", type: "boolean", initialValue: false })
52549
+ (0, import_sanity8.defineField)({ name: "highlighted", title: "Destacar esta tarjeta (m\xE1s popular)", type: "boolean", initialValue: false })
52505
52550
  ],
52506
52551
  preview: {
52507
52552
  select: { title: "title", subtitle: "description" }
@@ -52510,7 +52555,7 @@ var cardsSection = (0, import_sanity7.defineType)({
52510
52555
  ],
52511
52556
  validation: (r) => r.required().min(1)
52512
52557
  }),
52513
- (0, import_sanity7.defineField)({
52558
+ (0, import_sanity8.defineField)({
52514
52559
  name: "background",
52515
52560
  title: "Fondo",
52516
52561
  type: "string",
@@ -52526,7 +52571,7 @@ var cardsSection = (0, import_sanity7.defineType)({
52526
52571
  ], layout: "radio" },
52527
52572
  initialValue: "default"
52528
52573
  }),
52529
- (0, import_sanity7.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52574
+ (0, import_sanity8.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52530
52575
  ],
52531
52576
  preview: {
52532
52577
  select: { title: "title", subtitle: "variant" },
@@ -52537,13 +52582,14 @@ var cardsSection = (0, import_sanity7.defineType)({
52537
52582
  });
52538
52583
 
52539
52584
  // ../../apps/studio/schemas/sections/scrollable.ts
52540
- var import_sanity8 = require("sanity");
52541
- var scrollableSection = (0, import_sanity8.defineType)({
52585
+ var import_sanity9 = require("sanity");
52586
+ var scrollableSection = (0, import_sanity9.defineType)({
52542
52587
  name: "scrollable",
52543
52588
  title: "Secci\xF3n desplazable",
52544
52589
  type: "object",
52545
52590
  fields: [
52546
- (0, import_sanity8.defineField)({
52591
+ ...sectionMediaFields,
52592
+ (0, import_sanity9.defineField)({
52547
52593
  name: "variant",
52548
52594
  title: "Variante",
52549
52595
  type: "string",
@@ -52559,17 +52605,17 @@ var scrollableSection = (0, import_sanity8.defineType)({
52559
52605
  initialValue: "horizontal",
52560
52606
  validation: (r) => r.required()
52561
52607
  }),
52562
- (0, import_sanity8.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52563
- (0, import_sanity8.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52564
- (0, import_sanity8.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52565
- (0, import_sanity8.defineField)({
52608
+ (0, import_sanity9.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52609
+ (0, import_sanity9.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52610
+ (0, import_sanity9.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52611
+ (0, import_sanity9.defineField)({
52566
52612
  name: "content",
52567
52613
  title: "Contenido",
52568
52614
  type: "text",
52569
52615
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52570
52616
  components: { input: TipTapEditor }
52571
52617
  }),
52572
- (0, import_sanity8.defineField)({
52618
+ (0, import_sanity9.defineField)({
52573
52619
  name: "speed",
52574
52620
  title: "Velocidad de la marquesina",
52575
52621
  type: "string",
@@ -52584,7 +52630,7 @@ var scrollableSection = (0, import_sanity8.defineType)({
52584
52630
  },
52585
52631
  initialValue: "normal"
52586
52632
  }),
52587
- (0, import_sanity8.defineField)({
52633
+ (0, import_sanity9.defineField)({
52588
52634
  name: "direction",
52589
52635
  title: "Direcci\xF3n de la marquesina",
52590
52636
  type: "string",
@@ -52598,7 +52644,7 @@ var scrollableSection = (0, import_sanity8.defineType)({
52598
52644
  },
52599
52645
  initialValue: "left"
52600
52646
  }),
52601
- (0, import_sanity8.defineField)({
52647
+ (0, import_sanity9.defineField)({
52602
52648
  name: "items",
52603
52649
  title: "Elementos",
52604
52650
  type: "array",
@@ -52606,26 +52652,26 @@ var scrollableSection = (0, import_sanity8.defineType)({
52606
52652
  {
52607
52653
  type: "object",
52608
52654
  fields: [
52609
- (0, import_sanity8.defineField)({ name: "title", title: "T\xEDtulo", type: "string", validation: (r) => r.required() }),
52610
- (0, import_sanity8.defineField)({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
52611
- (0, import_sanity8.defineField)({
52655
+ (0, import_sanity9.defineField)({ name: "title", title: "T\xEDtulo", type: "string", validation: (r) => r.required() }),
52656
+ (0, import_sanity9.defineField)({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
52657
+ (0, import_sanity9.defineField)({
52612
52658
  name: "image",
52613
52659
  title: "Imagen",
52614
52660
  type: "image",
52615
52661
  options: { hotspot: true },
52616
52662
  fields: [
52617
- (0, import_sanity8.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
52663
+ (0, import_sanity9.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
52618
52664
  ]
52619
52665
  }),
52620
- (0, import_sanity8.defineField)({ name: "label", title: "Etiqueta / Tag", type: "string" }),
52621
- (0, import_sanity8.defineField)({ name: "date", title: "Fecha (variante l\xEDnea de tiempo)", type: "string" })
52666
+ (0, import_sanity9.defineField)({ name: "label", title: "Etiqueta / Tag", type: "string" }),
52667
+ (0, import_sanity9.defineField)({ name: "date", title: "Fecha (variante l\xEDnea de tiempo)", type: "string" })
52622
52668
  ],
52623
52669
  preview: { select: { title: "title", subtitle: "label" } }
52624
52670
  }
52625
52671
  ],
52626
52672
  validation: (r) => r.required().min(1)
52627
52673
  }),
52628
- (0, import_sanity8.defineField)({
52674
+ (0, import_sanity9.defineField)({
52629
52675
  name: "background",
52630
52676
  title: "Fondo",
52631
52677
  type: "string",
@@ -52641,7 +52687,7 @@ var scrollableSection = (0, import_sanity8.defineType)({
52641
52687
  ], layout: "radio" },
52642
52688
  initialValue: "default"
52643
52689
  }),
52644
- (0, import_sanity8.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52690
+ (0, import_sanity9.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52645
52691
  ],
52646
52692
  preview: {
52647
52693
  select: { title: "title", subtitle: "variant" },
@@ -52652,13 +52698,14 @@ var scrollableSection = (0, import_sanity8.defineType)({
52652
52698
  });
52653
52699
 
52654
52700
  // ../../apps/studio/schemas/sections/tabs-section.ts
52655
- var import_sanity9 = require("sanity");
52656
- var tabsSection = (0, import_sanity9.defineType)({
52701
+ var import_sanity10 = require("sanity");
52702
+ var tabsSection = (0, import_sanity10.defineType)({
52657
52703
  name: "tabsSection",
52658
52704
  title: "Secci\xF3n de pesta\xF1as",
52659
52705
  type: "object",
52660
52706
  fields: [
52661
- (0, import_sanity9.defineField)({
52707
+ ...sectionMediaFields,
52708
+ (0, import_sanity10.defineField)({
52662
52709
  name: "variant",
52663
52710
  title: "Variante",
52664
52711
  type: "string",
@@ -52674,17 +52721,17 @@ var tabsSection = (0, import_sanity9.defineType)({
52674
52721
  initialValue: "standard",
52675
52722
  validation: (r) => r.required()
52676
52723
  }),
52677
- (0, import_sanity9.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52678
- (0, import_sanity9.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52679
- (0, import_sanity9.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52680
- (0, import_sanity9.defineField)({
52724
+ (0, import_sanity10.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52725
+ (0, import_sanity10.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52726
+ (0, import_sanity10.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52727
+ (0, import_sanity10.defineField)({
52681
52728
  name: "content",
52682
52729
  title: "Contenido",
52683
52730
  type: "text",
52684
52731
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52685
52732
  components: { input: TipTapEditor }
52686
52733
  }),
52687
- (0, import_sanity9.defineField)({
52734
+ (0, import_sanity10.defineField)({
52688
52735
  name: "items",
52689
52736
  title: "Pesta\xF1as",
52690
52737
  type: "array",
@@ -52692,15 +52739,15 @@ var tabsSection = (0, import_sanity9.defineType)({
52692
52739
  {
52693
52740
  type: "object",
52694
52741
  fields: [
52695
- (0, import_sanity9.defineField)({ name: "label", title: "Etiqueta de pesta\xF1a", type: "string", validation: (r) => r.required() }),
52696
- (0, import_sanity9.defineField)({ name: "content", title: "Contenido", type: "text", rows: 4, validation: (r) => r.required() }),
52697
- (0, import_sanity9.defineField)({
52742
+ (0, import_sanity10.defineField)({ name: "label", title: "Etiqueta de pesta\xF1a", type: "string", validation: (r) => r.required() }),
52743
+ (0, import_sanity10.defineField)({ name: "content", title: "Contenido", type: "text", rows: 4, validation: (r) => r.required() }),
52744
+ (0, import_sanity10.defineField)({
52698
52745
  name: "image",
52699
52746
  title: "Imagen",
52700
52747
  type: "image",
52701
52748
  options: { hotspot: true },
52702
52749
  fields: [
52703
- (0, import_sanity9.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
52750
+ (0, import_sanity10.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
52704
52751
  ]
52705
52752
  })
52706
52753
  ],
@@ -52709,7 +52756,7 @@ var tabsSection = (0, import_sanity9.defineType)({
52709
52756
  ],
52710
52757
  validation: (r) => r.required().min(1)
52711
52758
  }),
52712
- (0, import_sanity9.defineField)({
52759
+ (0, import_sanity10.defineField)({
52713
52760
  name: "background",
52714
52761
  title: "Fondo",
52715
52762
  type: "string",
@@ -52725,7 +52772,7 @@ var tabsSection = (0, import_sanity9.defineType)({
52725
52772
  ], layout: "radio" },
52726
52773
  initialValue: "default"
52727
52774
  }),
52728
- (0, import_sanity9.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52775
+ (0, import_sanity10.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52729
52776
  ],
52730
52777
  preview: {
52731
52778
  select: { title: "title", subtitle: "variant" },
@@ -52736,13 +52783,14 @@ var tabsSection = (0, import_sanity9.defineType)({
52736
52783
  });
52737
52784
 
52738
52785
  // ../../apps/studio/schemas/sections/testimonials.ts
52739
- var import_sanity10 = require("sanity");
52740
- var testimonialsSection = (0, import_sanity10.defineType)({
52786
+ var import_sanity11 = require("sanity");
52787
+ var testimonialsSection = (0, import_sanity11.defineType)({
52741
52788
  name: "testimonials",
52742
52789
  title: "Testimonios",
52743
52790
  type: "object",
52744
52791
  fields: [
52745
- (0, import_sanity10.defineField)({
52792
+ ...sectionMediaFields,
52793
+ (0, import_sanity11.defineField)({
52746
52794
  name: "variant",
52747
52795
  title: "Variante",
52748
52796
  type: "string",
@@ -52757,17 +52805,17 @@ var testimonialsSection = (0, import_sanity10.defineType)({
52757
52805
  initialValue: "grid",
52758
52806
  validation: (r) => r.required()
52759
52807
  }),
52760
- (0, import_sanity10.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52761
- (0, import_sanity10.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52762
- (0, import_sanity10.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52763
- (0, import_sanity10.defineField)({
52808
+ (0, import_sanity11.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52809
+ (0, import_sanity11.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52810
+ (0, import_sanity11.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52811
+ (0, import_sanity11.defineField)({
52764
52812
  name: "content",
52765
52813
  title: "Contenido",
52766
52814
  type: "text",
52767
52815
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52768
52816
  components: { input: TipTapEditor }
52769
52817
  }),
52770
- (0, import_sanity10.defineField)({
52818
+ (0, import_sanity11.defineField)({
52771
52819
  name: "items",
52772
52820
  title: "Testimonios",
52773
52821
  type: "array",
@@ -52775,18 +52823,18 @@ var testimonialsSection = (0, import_sanity10.defineType)({
52775
52823
  {
52776
52824
  type: "object",
52777
52825
  fields: [
52778
- (0, import_sanity10.defineField)({ name: "quote", title: "Cita", type: "text", rows: 3, validation: (r) => r.required() }),
52779
- (0, import_sanity10.defineField)({ name: "author", title: "Nombre del autor", type: "string", validation: (r) => r.required() }),
52780
- (0, import_sanity10.defineField)({ name: "role", title: "Rol / T\xEDtulo", type: "string" }),
52781
- (0, import_sanity10.defineField)({ name: "company", title: "Empresa", type: "string" }),
52782
- (0, import_sanity10.defineField)({
52826
+ (0, import_sanity11.defineField)({ name: "quote", title: "Cita", type: "text", rows: 3, validation: (r) => r.required() }),
52827
+ (0, import_sanity11.defineField)({ name: "author", title: "Nombre del autor", type: "string", validation: (r) => r.required() }),
52828
+ (0, import_sanity11.defineField)({ name: "role", title: "Rol / T\xEDtulo", type: "string" }),
52829
+ (0, import_sanity11.defineField)({ name: "company", title: "Empresa", type: "string" }),
52830
+ (0, import_sanity11.defineField)({
52783
52831
  name: "avatar",
52784
52832
  title: "Avatar",
52785
52833
  type: "image",
52786
52834
  options: { hotspot: true },
52787
- fields: [(0, import_sanity10.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })]
52835
+ fields: [(0, import_sanity11.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })]
52788
52836
  }),
52789
- (0, import_sanity10.defineField)({
52837
+ (0, import_sanity11.defineField)({
52790
52838
  name: "rating",
52791
52839
  title: "Puntuaci\xF3n (1\u20135)",
52792
52840
  type: "number",
@@ -52809,7 +52857,7 @@ var testimonialsSection = (0, import_sanity10.defineType)({
52809
52857
  ],
52810
52858
  validation: (r) => r.required().min(1)
52811
52859
  }),
52812
- (0, import_sanity10.defineField)({
52860
+ (0, import_sanity11.defineField)({
52813
52861
  name: "background",
52814
52862
  title: "Fondo",
52815
52863
  type: "string",
@@ -52825,7 +52873,7 @@ var testimonialsSection = (0, import_sanity10.defineType)({
52825
52873
  ], layout: "radio" },
52826
52874
  initialValue: "default"
52827
52875
  }),
52828
- (0, import_sanity10.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52876
+ (0, import_sanity11.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52829
52877
  ],
52830
52878
  preview: {
52831
52879
  select: { title: "title", subtitle: "variant" },
@@ -52836,13 +52884,14 @@ var testimonialsSection = (0, import_sanity10.defineType)({
52836
52884
  });
52837
52885
 
52838
52886
  // ../../apps/studio/schemas/sections/logos.ts
52839
- var import_sanity11 = require("sanity");
52840
- var logosSection = (0, import_sanity11.defineType)({
52887
+ var import_sanity12 = require("sanity");
52888
+ var logosSection = (0, import_sanity12.defineType)({
52841
52889
  name: "logos",
52842
52890
  title: "Logos / Socios",
52843
52891
  type: "object",
52844
52892
  fields: [
52845
- (0, import_sanity11.defineField)({
52893
+ ...sectionMediaFields,
52894
+ (0, import_sanity12.defineField)({
52846
52895
  name: "variant",
52847
52896
  title: "Variante",
52848
52897
  type: "string",
@@ -52857,17 +52906,17 @@ var logosSection = (0, import_sanity11.defineType)({
52857
52906
  initialValue: "grid",
52858
52907
  validation: (r) => r.required()
52859
52908
  }),
52860
- (0, import_sanity11.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52861
- (0, import_sanity11.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52862
- (0, import_sanity11.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52863
- (0, import_sanity11.defineField)({
52909
+ (0, import_sanity12.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52910
+ (0, import_sanity12.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52911
+ (0, import_sanity12.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52912
+ (0, import_sanity12.defineField)({
52864
52913
  name: "content",
52865
52914
  title: "Contenido",
52866
52915
  type: "text",
52867
52916
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52868
52917
  components: { input: TipTapEditor }
52869
52918
  }),
52870
- (0, import_sanity11.defineField)({
52919
+ (0, import_sanity12.defineField)({
52871
52920
  name: "items",
52872
52921
  title: "Logos",
52873
52922
  type: "array",
@@ -52875,16 +52924,16 @@ var logosSection = (0, import_sanity11.defineType)({
52875
52924
  {
52876
52925
  type: "object",
52877
52926
  fields: [
52878
- (0, import_sanity11.defineField)({
52927
+ (0, import_sanity12.defineField)({
52879
52928
  name: "image",
52880
52929
  title: "Imagen del logo",
52881
52930
  type: "image",
52882
52931
  options: { hotspot: true },
52883
- fields: [(0, import_sanity11.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })],
52932
+ fields: [(0, import_sanity12.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })],
52884
52933
  validation: (r) => r.required()
52885
52934
  }),
52886
- (0, import_sanity11.defineField)({ name: "name", title: "Nombre de la empresa", type: "string", validation: (r) => r.required() }),
52887
- (0, import_sanity11.defineField)({ name: "href", title: "URL del enlace", type: "url" })
52935
+ (0, import_sanity12.defineField)({ name: "name", title: "Nombre de la empresa", type: "string", validation: (r) => r.required() }),
52936
+ (0, import_sanity12.defineField)({ name: "href", title: "URL del enlace", type: "url" })
52888
52937
  ],
52889
52938
  preview: {
52890
52939
  select: { title: "name", media: "image" }
@@ -52893,7 +52942,7 @@ var logosSection = (0, import_sanity11.defineType)({
52893
52942
  ],
52894
52943
  validation: (r) => r.required().min(1)
52895
52944
  }),
52896
- (0, import_sanity11.defineField)({
52945
+ (0, import_sanity12.defineField)({
52897
52946
  name: "background",
52898
52947
  title: "Fondo",
52899
52948
  type: "string",
@@ -52909,7 +52958,7 @@ var logosSection = (0, import_sanity11.defineType)({
52909
52958
  ], layout: "radio" },
52910
52959
  initialValue: "default"
52911
52960
  }),
52912
- (0, import_sanity11.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52961
+ (0, import_sanity12.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52913
52962
  ],
52914
52963
  preview: {
52915
52964
  select: { title: "title", subtitle: "variant" },
@@ -52920,13 +52969,14 @@ var logosSection = (0, import_sanity11.defineType)({
52920
52969
  });
52921
52970
 
52922
52971
  // ../../apps/studio/schemas/sections/cta.ts
52923
- var import_sanity12 = require("sanity");
52924
- var ctaSection = (0, import_sanity12.defineType)({
52972
+ var import_sanity13 = require("sanity");
52973
+ var ctaSection = (0, import_sanity13.defineType)({
52925
52974
  name: "cta",
52926
52975
  title: "CTA",
52927
52976
  type: "object",
52928
52977
  fields: [
52929
- (0, import_sanity12.defineField)({
52978
+ ...sectionMediaFields,
52979
+ (0, import_sanity13.defineField)({
52930
52980
  name: "variant",
52931
52981
  title: "Variante",
52932
52982
  type: "string",
@@ -52941,28 +52991,28 @@ var ctaSection = (0, import_sanity12.defineType)({
52941
52991
  initialValue: "centered",
52942
52992
  validation: (r) => r.required()
52943
52993
  }),
52944
- (0, import_sanity12.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52945
- (0, import_sanity12.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n (arriba)", type: "string" }),
52946
- (0, import_sanity12.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n (arriba)", type: "text", rows: 2 }),
52947
- (0, import_sanity12.defineField)({
52994
+ (0, import_sanity13.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52995
+ (0, import_sanity13.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n (arriba)", type: "string" }),
52996
+ (0, import_sanity13.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n (arriba)", type: "text", rows: 2 }),
52997
+ (0, import_sanity13.defineField)({
52948
52998
  name: "content",
52949
52999
  title: "Contenido",
52950
53000
  type: "text",
52951
53001
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52952
53002
  components: { input: TipTapEditor }
52953
53003
  }),
52954
- (0, import_sanity12.defineField)({ name: "heading", title: "Titular del CTA", type: "string", validation: (r) => r.required() }),
52955
- (0, import_sanity12.defineField)({ name: "description", title: "Descripci\xF3n del CTA", type: "text", rows: 2 }),
52956
- (0, import_sanity12.defineField)({ name: "primaryCTA", title: "Bot\xF3n primario", type: "ctaButton" }),
52957
- (0, import_sanity12.defineField)({ name: "secondaryCTA", title: "Bot\xF3n secundario", type: "ctaButton" }),
52958
- (0, import_sanity12.defineField)({
53004
+ (0, import_sanity13.defineField)({ name: "heading", title: "Titular del CTA", type: "string", validation: (r) => r.required() }),
53005
+ (0, import_sanity13.defineField)({ name: "description", title: "Descripci\xF3n del CTA", type: "text", rows: 2 }),
53006
+ (0, import_sanity13.defineField)({ name: "primaryCTA", title: "Bot\xF3n primario", type: "ctaButton" }),
53007
+ (0, import_sanity13.defineField)({ name: "secondaryCTA", title: "Bot\xF3n secundario", type: "ctaButton" }),
53008
+ (0, import_sanity13.defineField)({
52959
53009
  name: "image",
52960
53010
  title: "Imagen (variante dividida)",
52961
53011
  type: "image",
52962
53012
  options: { hotspot: true },
52963
- fields: [(0, import_sanity12.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })]
53013
+ fields: [(0, import_sanity13.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })]
52964
53014
  }),
52965
- (0, import_sanity12.defineField)({
53015
+ (0, import_sanity13.defineField)({
52966
53016
  name: "background",
52967
53017
  title: "Fondo",
52968
53018
  type: "string",
@@ -52978,7 +53028,7 @@ var ctaSection = (0, import_sanity12.defineType)({
52978
53028
  ], layout: "radio" },
52979
53029
  initialValue: "default"
52980
53030
  }),
52981
- (0, import_sanity12.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53031
+ (0, import_sanity13.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
52982
53032
  ],
52983
53033
  preview: {
52984
53034
  select: { title: "heading", subtitle: "variant" },
@@ -52989,13 +53039,14 @@ var ctaSection = (0, import_sanity12.defineType)({
52989
53039
  });
52990
53040
 
52991
53041
  // ../../apps/studio/schemas/sections/features.ts
52992
- var import_sanity13 = require("sanity");
52993
- var featuresSection = (0, import_sanity13.defineType)({
53042
+ var import_sanity14 = require("sanity");
53043
+ var featuresSection = (0, import_sanity14.defineType)({
52994
53044
  name: "features",
52995
53045
  title: "Caracter\xEDsticas",
52996
53046
  type: "object",
52997
53047
  fields: [
52998
- (0, import_sanity13.defineField)({
53048
+ ...sectionMediaFields,
53049
+ (0, import_sanity14.defineField)({
52999
53050
  name: "variant",
53000
53051
  title: "Variante",
53001
53052
  type: "string",
@@ -53010,17 +53061,17 @@ var featuresSection = (0, import_sanity13.defineType)({
53010
53061
  initialValue: "grid",
53011
53062
  validation: (r) => r.required()
53012
53063
  }),
53013
- (0, import_sanity13.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53014
- (0, import_sanity13.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53015
- (0, import_sanity13.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53016
- (0, import_sanity13.defineField)({
53064
+ (0, import_sanity14.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53065
+ (0, import_sanity14.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53066
+ (0, import_sanity14.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53067
+ (0, import_sanity14.defineField)({
53017
53068
  name: "content",
53018
53069
  title: "Contenido",
53019
53070
  type: "text",
53020
53071
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53021
53072
  components: { input: TipTapEditor }
53022
53073
  }),
53023
- (0, import_sanity13.defineField)({
53074
+ (0, import_sanity14.defineField)({
53024
53075
  name: "columns",
53025
53076
  title: "Columnas (variante grilla)",
53026
53077
  type: "number",
@@ -53034,7 +53085,7 @@ var featuresSection = (0, import_sanity13.defineType)({
53034
53085
  },
53035
53086
  initialValue: 3
53036
53087
  }),
53037
- (0, import_sanity13.defineField)({
53088
+ (0, import_sanity14.defineField)({
53038
53089
  name: "items",
53039
53090
  title: "Caracter\xEDsticas",
53040
53091
  type: "array",
@@ -53042,16 +53093,16 @@ var featuresSection = (0, import_sanity13.defineType)({
53042
53093
  {
53043
53094
  type: "object",
53044
53095
  fields: [
53045
- (0, import_sanity13.defineField)({ name: "title", title: "T\xEDtulo", type: "string", validation: (r) => r.required() }),
53046
- (0, import_sanity13.defineField)({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53047
- (0, import_sanity13.defineField)({ name: "icon", title: "\xCDcono (nombre de Lucide, ej: Zap)", type: "string" }),
53048
- (0, import_sanity13.defineField)({ name: "badge", title: "Badge / Etiqueta", type: "string" }),
53049
- (0, import_sanity13.defineField)({
53096
+ (0, import_sanity14.defineField)({ name: "title", title: "T\xEDtulo", type: "string", validation: (r) => r.required() }),
53097
+ (0, import_sanity14.defineField)({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53098
+ (0, import_sanity14.defineField)({ name: "icon", title: "\xCDcono (nombre de Lucide, ej: Zap)", type: "string" }),
53099
+ (0, import_sanity14.defineField)({ name: "badge", title: "Badge / Etiqueta", type: "string" }),
53100
+ (0, import_sanity14.defineField)({
53050
53101
  name: "image",
53051
53102
  title: "Imagen",
53052
53103
  type: "image",
53053
53104
  options: { hotspot: true },
53054
- fields: [(0, import_sanity13.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })]
53105
+ fields: [(0, import_sanity14.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })]
53055
53106
  })
53056
53107
  ],
53057
53108
  preview: {
@@ -53061,7 +53112,7 @@ var featuresSection = (0, import_sanity13.defineType)({
53061
53112
  ],
53062
53113
  validation: (r) => r.required().min(1)
53063
53114
  }),
53064
- (0, import_sanity13.defineField)({
53115
+ (0, import_sanity14.defineField)({
53065
53116
  name: "background",
53066
53117
  title: "Fondo",
53067
53118
  type: "string",
@@ -53077,7 +53128,7 @@ var featuresSection = (0, import_sanity13.defineType)({
53077
53128
  ], layout: "radio" },
53078
53129
  initialValue: "default"
53079
53130
  }),
53080
- (0, import_sanity13.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53131
+ (0, import_sanity14.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53081
53132
  ],
53082
53133
  preview: {
53083
53134
  select: { title: "title", subtitle: "variant" },
@@ -53088,13 +53139,14 @@ var featuresSection = (0, import_sanity13.defineType)({
53088
53139
  });
53089
53140
 
53090
53141
  // ../../apps/studio/schemas/sections/steps.ts
53091
- var import_sanity14 = require("sanity");
53092
- var stepsSection = (0, import_sanity14.defineType)({
53142
+ var import_sanity15 = require("sanity");
53143
+ var stepsSection = (0, import_sanity15.defineType)({
53093
53144
  name: "steps",
53094
53145
  title: "Pasos",
53095
53146
  type: "object",
53096
53147
  fields: [
53097
- (0, import_sanity14.defineField)({
53148
+ ...sectionMediaFields,
53149
+ (0, import_sanity15.defineField)({
53098
53150
  name: "variant",
53099
53151
  title: "Variante",
53100
53152
  type: "string",
@@ -53109,17 +53161,17 @@ var stepsSection = (0, import_sanity14.defineType)({
53109
53161
  initialValue: "numbered",
53110
53162
  validation: (r) => r.required()
53111
53163
  }),
53112
- (0, import_sanity14.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53113
- (0, import_sanity14.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53114
- (0, import_sanity14.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53115
- (0, import_sanity14.defineField)({
53164
+ (0, import_sanity15.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53165
+ (0, import_sanity15.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53166
+ (0, import_sanity15.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53167
+ (0, import_sanity15.defineField)({
53116
53168
  name: "content",
53117
53169
  title: "Contenido",
53118
53170
  type: "text",
53119
53171
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53120
53172
  components: { input: TipTapEditor }
53121
53173
  }),
53122
- (0, import_sanity14.defineField)({
53174
+ (0, import_sanity15.defineField)({
53123
53175
  name: "items",
53124
53176
  title: "Pasos",
53125
53177
  type: "array",
@@ -53127,15 +53179,15 @@ var stepsSection = (0, import_sanity14.defineType)({
53127
53179
  {
53128
53180
  type: "object",
53129
53181
  fields: [
53130
- (0, import_sanity14.defineField)({ name: "title", title: "T\xEDtulo del paso", type: "string", validation: (r) => r.required() }),
53131
- (0, import_sanity14.defineField)({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53132
- (0, import_sanity14.defineField)({ name: "icon", title: "\xCDcono (nombre de Lucide)", type: "string" }),
53133
- (0, import_sanity14.defineField)({
53182
+ (0, import_sanity15.defineField)({ name: "title", title: "T\xEDtulo del paso", type: "string", validation: (r) => r.required() }),
53183
+ (0, import_sanity15.defineField)({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53184
+ (0, import_sanity15.defineField)({ name: "icon", title: "\xCDcono (nombre de Lucide)", type: "string" }),
53185
+ (0, import_sanity15.defineField)({
53134
53186
  name: "image",
53135
53187
  title: "Imagen",
53136
53188
  type: "image",
53137
53189
  options: { hotspot: true },
53138
- fields: [(0, import_sanity14.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })]
53190
+ fields: [(0, import_sanity15.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })]
53139
53191
  })
53140
53192
  ],
53141
53193
  preview: {
@@ -53145,7 +53197,7 @@ var stepsSection = (0, import_sanity14.defineType)({
53145
53197
  ],
53146
53198
  validation: (r) => r.required().min(1)
53147
53199
  }),
53148
- (0, import_sanity14.defineField)({
53200
+ (0, import_sanity15.defineField)({
53149
53201
  name: "background",
53150
53202
  title: "Fondo",
53151
53203
  type: "string",
@@ -53161,7 +53213,7 @@ var stepsSection = (0, import_sanity14.defineType)({
53161
53213
  ], layout: "radio" },
53162
53214
  initialValue: "default"
53163
53215
  }),
53164
- (0, import_sanity14.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53216
+ (0, import_sanity15.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53165
53217
  ],
53166
53218
  preview: {
53167
53219
  select: { title: "title", subtitle: "variant" },
@@ -53172,13 +53224,14 @@ var stepsSection = (0, import_sanity14.defineType)({
53172
53224
  });
53173
53225
 
53174
53226
  // ../../apps/studio/schemas/sections/team.ts
53175
- var import_sanity15 = require("sanity");
53176
- var teamSection = (0, import_sanity15.defineType)({
53227
+ var import_sanity16 = require("sanity");
53228
+ var teamSection = (0, import_sanity16.defineType)({
53177
53229
  name: "team",
53178
53230
  title: "Equipo",
53179
53231
  type: "object",
53180
53232
  fields: [
53181
- (0, import_sanity15.defineField)({
53233
+ ...sectionMediaFields,
53234
+ (0, import_sanity16.defineField)({
53182
53235
  name: "variant",
53183
53236
  title: "Variante",
53184
53237
  type: "string",
@@ -53193,17 +53246,17 @@ var teamSection = (0, import_sanity15.defineType)({
53193
53246
  initialValue: "grid",
53194
53247
  validation: (r) => r.required()
53195
53248
  }),
53196
- (0, import_sanity15.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53197
- (0, import_sanity15.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53198
- (0, import_sanity15.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53199
- (0, import_sanity15.defineField)({
53249
+ (0, import_sanity16.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53250
+ (0, import_sanity16.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53251
+ (0, import_sanity16.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53252
+ (0, import_sanity16.defineField)({
53200
53253
  name: "content",
53201
53254
  title: "Contenido",
53202
53255
  type: "text",
53203
53256
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53204
53257
  components: { input: TipTapEditor }
53205
53258
  }),
53206
- (0, import_sanity15.defineField)({
53259
+ (0, import_sanity16.defineField)({
53207
53260
  name: "columns",
53208
53261
  title: "Columnas (variante grilla)",
53209
53262
  type: "number",
@@ -53217,7 +53270,7 @@ var teamSection = (0, import_sanity15.defineType)({
53217
53270
  },
53218
53271
  initialValue: 3
53219
53272
  }),
53220
- (0, import_sanity15.defineField)({
53273
+ (0, import_sanity16.defineField)({
53221
53274
  name: "items",
53222
53275
  title: "Miembros del equipo",
53223
53276
  type: "array",
@@ -53225,18 +53278,18 @@ var teamSection = (0, import_sanity15.defineType)({
53225
53278
  {
53226
53279
  type: "object",
53227
53280
  fields: [
53228
- (0, import_sanity15.defineField)({ name: "name", title: "Nombre", type: "string", validation: (r) => r.required() }),
53229
- (0, import_sanity15.defineField)({ name: "role", title: "Rol / T\xEDtulo", type: "string" }),
53230
- (0, import_sanity15.defineField)({ name: "bio", title: "Biograf\xEDa", type: "text", rows: 3 }),
53231
- (0, import_sanity15.defineField)({
53281
+ (0, import_sanity16.defineField)({ name: "name", title: "Nombre", type: "string", validation: (r) => r.required() }),
53282
+ (0, import_sanity16.defineField)({ name: "role", title: "Rol / T\xEDtulo", type: "string" }),
53283
+ (0, import_sanity16.defineField)({ name: "bio", title: "Biograf\xEDa", type: "text", rows: 3 }),
53284
+ (0, import_sanity16.defineField)({
53232
53285
  name: "avatar",
53233
53286
  title: "Avatar",
53234
53287
  type: "image",
53235
53288
  options: { hotspot: true },
53236
- fields: [(0, import_sanity15.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })]
53289
+ fields: [(0, import_sanity16.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })]
53237
53290
  }),
53238
- (0, import_sanity15.defineField)({ name: "twitter", title: "URL de Twitter / X", type: "url" }),
53239
- (0, import_sanity15.defineField)({ name: "linkedin", title: "URL de LinkedIn", type: "url" })
53291
+ (0, import_sanity16.defineField)({ name: "twitter", title: "URL de Twitter / X", type: "url" }),
53292
+ (0, import_sanity16.defineField)({ name: "linkedin", title: "URL de LinkedIn", type: "url" })
53240
53293
  ],
53241
53294
  preview: {
53242
53295
  select: { title: "name", subtitle: "role", media: "avatar" }
@@ -53245,7 +53298,7 @@ var teamSection = (0, import_sanity15.defineType)({
53245
53298
  ],
53246
53299
  validation: (r) => r.required().min(1)
53247
53300
  }),
53248
- (0, import_sanity15.defineField)({
53301
+ (0, import_sanity16.defineField)({
53249
53302
  name: "background",
53250
53303
  title: "Fondo",
53251
53304
  type: "string",
@@ -53261,7 +53314,7 @@ var teamSection = (0, import_sanity15.defineType)({
53261
53314
  ], layout: "radio" },
53262
53315
  initialValue: "default"
53263
53316
  }),
53264
- (0, import_sanity15.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53317
+ (0, import_sanity16.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53265
53318
  ],
53266
53319
  preview: {
53267
53320
  select: { title: "title", subtitle: "variant" },
@@ -53272,13 +53325,14 @@ var teamSection = (0, import_sanity15.defineType)({
53272
53325
  });
53273
53326
 
53274
53327
  // ../../apps/studio/schemas/sections/contact.ts
53275
- var import_sanity16 = require("sanity");
53276
- var contactSection = (0, import_sanity16.defineType)({
53328
+ var import_sanity17 = require("sanity");
53329
+ var contactSection = (0, import_sanity17.defineType)({
53277
53330
  name: "contact",
53278
53331
  title: "Contacto",
53279
53332
  type: "object",
53280
53333
  fields: [
53281
- (0, import_sanity16.defineField)({
53334
+ ...sectionMediaFields,
53335
+ (0, import_sanity17.defineField)({
53282
53336
  name: "variant",
53283
53337
  title: "Variante",
53284
53338
  type: "string",
@@ -53292,36 +53346,36 @@ var contactSection = (0, import_sanity16.defineType)({
53292
53346
  initialValue: "simple",
53293
53347
  validation: (r) => r.required()
53294
53348
  }),
53295
- (0, import_sanity16.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53296
- (0, import_sanity16.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53297
- (0, import_sanity16.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53298
- (0, import_sanity16.defineField)({
53349
+ (0, import_sanity17.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53350
+ (0, import_sanity17.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53351
+ (0, import_sanity17.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53352
+ (0, import_sanity17.defineField)({
53299
53353
  name: "content",
53300
53354
  title: "Contenido",
53301
53355
  type: "text",
53302
53356
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53303
53357
  components: { input: TipTapEditor }
53304
53358
  }),
53305
- (0, import_sanity16.defineField)({
53359
+ (0, import_sanity17.defineField)({
53306
53360
  name: "details",
53307
53361
  title: "Datos de contacto",
53308
53362
  type: "object",
53309
53363
  fields: [
53310
- (0, import_sanity16.defineField)({ name: "email", title: "Correo electr\xF3nico", type: "string" }),
53311
- (0, import_sanity16.defineField)({ name: "phone", title: "N\xFAmero de tel\xE9fono", type: "string" }),
53312
- (0, import_sanity16.defineField)({ name: "address", title: "Direcci\xF3n", type: "text", rows: 2 }),
53313
- (0, import_sanity16.defineField)({ name: "hours", title: "Horario de atenci\xF3n", type: "string" })
53364
+ (0, import_sanity17.defineField)({ name: "email", title: "Correo electr\xF3nico", type: "string" }),
53365
+ (0, import_sanity17.defineField)({ name: "phone", title: "N\xFAmero de tel\xE9fono", type: "string" }),
53366
+ (0, import_sanity17.defineField)({ name: "address", title: "Direcci\xF3n", type: "text", rows: 2 }),
53367
+ (0, import_sanity17.defineField)({ name: "hours", title: "Horario de atenci\xF3n", type: "string" })
53314
53368
  ]
53315
53369
  }),
53316
- (0, import_sanity16.defineField)({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
53317
- (0, import_sanity16.defineField)({
53370
+ (0, import_sanity17.defineField)({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
53371
+ (0, import_sanity17.defineField)({
53318
53372
  name: "image",
53319
53373
  title: "Imagen (variante dividida)",
53320
53374
  type: "image",
53321
53375
  options: { hotspot: true },
53322
- fields: [(0, import_sanity16.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })]
53376
+ fields: [(0, import_sanity17.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })]
53323
53377
  }),
53324
- (0, import_sanity16.defineField)({
53378
+ (0, import_sanity17.defineField)({
53325
53379
  name: "background",
53326
53380
  title: "Fondo",
53327
53381
  type: "string",
@@ -53337,7 +53391,7 @@ var contactSection = (0, import_sanity16.defineType)({
53337
53391
  ], layout: "radio" },
53338
53392
  initialValue: "default"
53339
53393
  }),
53340
- (0, import_sanity16.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53394
+ (0, import_sanity17.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53341
53395
  ],
53342
53396
  preview: {
53343
53397
  select: { title: "title", subtitle: "variant" },
@@ -53348,13 +53402,14 @@ var contactSection = (0, import_sanity16.defineType)({
53348
53402
  });
53349
53403
 
53350
53404
  // ../../apps/studio/schemas/sections/banner.ts
53351
- var import_sanity17 = require("sanity");
53352
- var bannerSection = (0, import_sanity17.defineType)({
53405
+ var import_sanity18 = require("sanity");
53406
+ var bannerSection = (0, import_sanity18.defineType)({
53353
53407
  name: "banner",
53354
53408
  title: "Banner",
53355
53409
  type: "object",
53356
53410
  fields: [
53357
- (0, import_sanity17.defineField)({
53411
+ ...sectionMediaFields,
53412
+ (0, import_sanity18.defineField)({
53358
53413
  name: "variant",
53359
53414
  title: "Variante",
53360
53415
  type: "string",
@@ -53368,17 +53423,17 @@ var bannerSection = (0, import_sanity17.defineType)({
53368
53423
  initialValue: "simple",
53369
53424
  validation: (r) => r.required()
53370
53425
  }),
53371
- (0, import_sanity17.defineField)({ name: "badge", title: "Chip de badge", type: "string" }),
53372
- (0, import_sanity17.defineField)({ name: "message", title: "Mensaje", type: "string", validation: (r) => r.required() }),
53373
- (0, import_sanity17.defineField)({
53426
+ (0, import_sanity18.defineField)({ name: "badge", title: "Chip de badge", type: "string" }),
53427
+ (0, import_sanity18.defineField)({ name: "message", title: "Mensaje", type: "string", validation: (r) => r.required() }),
53428
+ (0, import_sanity18.defineField)({
53374
53429
  name: "content",
53375
53430
  title: "Contenido adicional",
53376
53431
  type: "text",
53377
53432
  description: "Texto enriquecido opcional para mostrar junto al banner.",
53378
53433
  components: { input: TipTapEditor }
53379
53434
  }),
53380
- (0, import_sanity17.defineField)({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
53381
- (0, import_sanity17.defineField)({
53435
+ (0, import_sanity18.defineField)({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
53436
+ (0, import_sanity18.defineField)({
53382
53437
  name: "background",
53383
53438
  title: "Fondo",
53384
53439
  type: "string",
@@ -53394,7 +53449,7 @@ var bannerSection = (0, import_sanity17.defineType)({
53394
53449
  ], layout: "radio" },
53395
53450
  initialValue: "default"
53396
53451
  }),
53397
- (0, import_sanity17.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53452
+ (0, import_sanity18.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53398
53453
  ],
53399
53454
  preview: {
53400
53455
  select: { title: "message", subtitle: "variant" },
@@ -53405,13 +53460,14 @@ var bannerSection = (0, import_sanity17.defineType)({
53405
53460
  });
53406
53461
 
53407
53462
  // ../../apps/studio/schemas/sections/maps.ts
53408
- var import_sanity18 = require("sanity");
53409
- var mapsSection = (0, import_sanity18.defineType)({
53463
+ var import_sanity19 = require("sanity");
53464
+ var mapsSection = (0, import_sanity19.defineType)({
53410
53465
  name: "maps",
53411
53466
  title: "Mapa",
53412
53467
  type: "object",
53413
53468
  fields: [
53414
- (0, import_sanity18.defineField)({
53469
+ ...sectionMediaFields,
53470
+ (0, import_sanity19.defineField)({
53415
53471
  name: "variant",
53416
53472
  title: "Variante",
53417
53473
  type: "string",
@@ -53426,7 +53482,7 @@ var mapsSection = (0, import_sanity18.defineType)({
53426
53482
  initialValue: "pins",
53427
53483
  validation: (r) => r.required()
53428
53484
  }),
53429
- (0, import_sanity18.defineField)({
53485
+ (0, import_sanity19.defineField)({
53430
53486
  name: "mapStyle",
53431
53487
  title: "Estilo del mapa",
53432
53488
  type: "string",
@@ -53444,17 +53500,17 @@ var mapsSection = (0, import_sanity18.defineType)({
53444
53500
  },
53445
53501
  initialValue: "standard"
53446
53502
  }),
53447
- (0, import_sanity18.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53448
- (0, import_sanity18.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53449
- (0, import_sanity18.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53450
- (0, import_sanity18.defineField)({
53503
+ (0, import_sanity19.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53504
+ (0, import_sanity19.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53505
+ (0, import_sanity19.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53506
+ (0, import_sanity19.defineField)({
53451
53507
  name: "content",
53452
53508
  title: "Contenido",
53453
53509
  type: "text",
53454
53510
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53455
53511
  components: { input: TipTapEditor }
53456
53512
  }),
53457
- (0, import_sanity18.defineField)({
53513
+ (0, import_sanity19.defineField)({
53458
53514
  name: "embedUrl",
53459
53515
  title: "URL de incrustaci\xF3n de Google Maps",
53460
53516
  type: "string",
@@ -53465,7 +53521,7 @@ var mapsSection = (0, import_sanity18.defineType)({
53465
53521
  return "Debe ser una URL de incrustaci\xF3n de Google Maps que empiece con https://www.google.com/maps/embed";
53466
53522
  })
53467
53523
  }),
53468
- (0, import_sanity18.defineField)({
53524
+ (0, import_sanity19.defineField)({
53469
53525
  name: "locations",
53470
53526
  title: "Ubicaciones",
53471
53527
  type: "array",
@@ -53473,18 +53529,18 @@ var mapsSection = (0, import_sanity18.defineType)({
53473
53529
  {
53474
53530
  type: "object",
53475
53531
  fields: [
53476
- (0, import_sanity18.defineField)({ name: "name", title: "Nombre", type: "string", validation: (r) => r.required() }),
53477
- (0, import_sanity18.defineField)({ name: "address", title: "Direcci\xF3n", type: "string" }),
53478
- (0, import_sanity18.defineField)({ name: "phone", title: "Tel\xE9fono", type: "string" }),
53479
- (0, import_sanity18.defineField)({ name: "hours", title: "Horario", type: "string" }),
53480
- (0, import_sanity18.defineField)({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53481
- (0, import_sanity18.defineField)({
53532
+ (0, import_sanity19.defineField)({ name: "name", title: "Nombre", type: "string", validation: (r) => r.required() }),
53533
+ (0, import_sanity19.defineField)({ name: "address", title: "Direcci\xF3n", type: "string" }),
53534
+ (0, import_sanity19.defineField)({ name: "phone", title: "Tel\xE9fono", type: "string" }),
53535
+ (0, import_sanity19.defineField)({ name: "hours", title: "Horario", type: "string" }),
53536
+ (0, import_sanity19.defineField)({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53537
+ (0, import_sanity19.defineField)({
53482
53538
  name: "lat",
53483
53539
  title: "Latitud (sobreescritura opcional)",
53484
53540
  type: "number",
53485
53541
  description: "Dejalo vac\xEDo \u2014 la direcci\xF3n se geocodifica autom\xE1ticamente. Solo configur\xE1 esto si necesit\xE1s marcar un punto exacto que no se encuentra por direcci\xF3n (ej: clic derecho en Google Maps \u2192 primer n\xFAmero)."
53486
53542
  }),
53487
- (0, import_sanity18.defineField)({
53543
+ (0, import_sanity19.defineField)({
53488
53544
  name: "lng",
53489
53545
  title: "Longitud (sobreescritura opcional)",
53490
53546
  type: "number",
@@ -53497,7 +53553,7 @@ var mapsSection = (0, import_sanity18.defineType)({
53497
53553
  }
53498
53554
  ]
53499
53555
  }),
53500
- (0, import_sanity18.defineField)({
53556
+ (0, import_sanity19.defineField)({
53501
53557
  name: "background",
53502
53558
  title: "Fondo",
53503
53559
  type: "string",
@@ -53516,7 +53572,7 @@ var mapsSection = (0, import_sanity18.defineType)({
53516
53572
  },
53517
53573
  initialValue: "default"
53518
53574
  }),
53519
- (0, import_sanity18.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53575
+ (0, import_sanity19.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53520
53576
  ],
53521
53577
  preview: {
53522
53578
  select: { title: "title", subtitle: "variant" },
@@ -53527,13 +53583,14 @@ var mapsSection = (0, import_sanity18.defineType)({
53527
53583
  });
53528
53584
 
53529
53585
  // ../../apps/studio/schemas/sections/iframe.ts
53530
- var import_sanity19 = require("sanity");
53531
- var iframeSection = (0, import_sanity19.defineType)({
53586
+ var import_sanity20 = require("sanity");
53587
+ var iframeSection = (0, import_sanity20.defineType)({
53532
53588
  name: "iframe",
53533
53589
  title: "Iframe incrustado",
53534
53590
  type: "object",
53535
53591
  fields: [
53536
- (0, import_sanity19.defineField)({
53592
+ ...sectionMediaFields,
53593
+ (0, import_sanity20.defineField)({
53537
53594
  name: "variant",
53538
53595
  title: "Variante",
53539
53596
  type: "string",
@@ -53548,36 +53605,36 @@ var iframeSection = (0, import_sanity19.defineType)({
53548
53605
  initialValue: "simple",
53549
53606
  validation: (r) => r.required()
53550
53607
  }),
53551
- (0, import_sanity19.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53552
- (0, import_sanity19.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53553
- (0, import_sanity19.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53554
- (0, import_sanity19.defineField)({
53608
+ (0, import_sanity20.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53609
+ (0, import_sanity20.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53610
+ (0, import_sanity20.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53611
+ (0, import_sanity20.defineField)({
53555
53612
  name: "content",
53556
53613
  title: "Contenido",
53557
53614
  type: "text",
53558
53615
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53559
53616
  components: { input: TipTapEditor }
53560
53617
  }),
53561
- (0, import_sanity19.defineField)({
53618
+ (0, import_sanity20.defineField)({
53562
53619
  name: "src",
53563
53620
  title: "URL de incrustaci\xF3n",
53564
53621
  type: "url",
53565
53622
  description: "\u26A0\uFE0F Si esta URL contiene datos sensibles (tokens, API keys, subdominios privados), no la pegues directamente aqu\xED. Guardala como variable de entorno en .env.local (ej: NEXT_PUBLIC_EMBED_URL=https://...) y referenciala desde el c\xF3digo.",
53566
53623
  validation: (r) => r.required()
53567
53624
  }),
53568
- (0, import_sanity19.defineField)({
53625
+ (0, import_sanity20.defineField)({
53569
53626
  name: "iframeTitle",
53570
53627
  title: "T\xEDtulo del iframe (accesibilidad)",
53571
53628
  type: "string",
53572
53629
  validation: (r) => r.required()
53573
53630
  }),
53574
- (0, import_sanity19.defineField)({
53631
+ (0, import_sanity20.defineField)({
53575
53632
  name: "height",
53576
53633
  title: "Alto (px)",
53577
53634
  type: "number",
53578
53635
  initialValue: 500
53579
53636
  }),
53580
- (0, import_sanity19.defineField)({
53637
+ (0, import_sanity20.defineField)({
53581
53638
  name: "aspectRatio",
53582
53639
  title: "Relaci\xF3n de aspecto (variante responsiva)",
53583
53640
  type: "string",
@@ -53591,7 +53648,7 @@ var iframeSection = (0, import_sanity19.defineType)({
53591
53648
  },
53592
53649
  initialValue: "auto"
53593
53650
  }),
53594
- (0, import_sanity19.defineField)({
53651
+ (0, import_sanity20.defineField)({
53595
53652
  name: "background",
53596
53653
  title: "Fondo",
53597
53654
  type: "string",
@@ -53610,7 +53667,7 @@ var iframeSection = (0, import_sanity19.defineType)({
53610
53667
  },
53611
53668
  initialValue: "default"
53612
53669
  }),
53613
- (0, import_sanity19.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53670
+ (0, import_sanity20.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53614
53671
  ],
53615
53672
  preview: {
53616
53673
  select: { title: "title", subtitle: "variant" },
@@ -53621,13 +53678,14 @@ var iframeSection = (0, import_sanity19.defineType)({
53621
53678
  });
53622
53679
 
53623
53680
  // ../../apps/studio/schemas/sections/comparison.ts
53624
- var import_sanity20 = require("sanity");
53625
- var comparisonSection = (0, import_sanity20.defineType)({
53681
+ var import_sanity21 = require("sanity");
53682
+ var comparisonSection = (0, import_sanity21.defineType)({
53626
53683
  name: "comparison",
53627
53684
  title: "Comparaci\xF3n",
53628
53685
  type: "object",
53629
53686
  fields: [
53630
- (0, import_sanity20.defineField)({
53687
+ ...sectionMediaFields,
53688
+ (0, import_sanity21.defineField)({
53631
53689
  name: "variant",
53632
53690
  title: "Variante",
53633
53691
  type: "string",
@@ -53642,24 +53700,24 @@ var comparisonSection = (0, import_sanity20.defineType)({
53642
53700
  initialValue: "table",
53643
53701
  validation: (r) => r.required()
53644
53702
  }),
53645
- (0, import_sanity20.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53646
- (0, import_sanity20.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53647
- (0, import_sanity20.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53648
- (0, import_sanity20.defineField)({
53703
+ (0, import_sanity21.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53704
+ (0, import_sanity21.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53705
+ (0, import_sanity21.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53706
+ (0, import_sanity21.defineField)({
53649
53707
  name: "content",
53650
53708
  title: "Contenido",
53651
53709
  type: "text",
53652
53710
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53653
53711
  components: { input: TipTapEditor }
53654
53712
  }),
53655
- (0, import_sanity20.defineField)({
53713
+ (0, import_sanity21.defineField)({
53656
53714
  name: "allFeatures",
53657
53715
  title: "Todas las caracter\xEDsticas (lista maestra)",
53658
53716
  type: "array",
53659
53717
  of: [{ type: "string" }],
53660
53718
  description: "Lista completa de caracter\xEDsticas a comparar en todos los planes"
53661
53719
  }),
53662
- (0, import_sanity20.defineField)({
53720
+ (0, import_sanity21.defineField)({
53663
53721
  name: "columns",
53664
53722
  title: "Planes / Columnas",
53665
53723
  type: "array",
@@ -53667,14 +53725,14 @@ var comparisonSection = (0, import_sanity20.defineType)({
53667
53725
  {
53668
53726
  type: "object",
53669
53727
  fields: [
53670
- (0, import_sanity20.defineField)({ name: "name", title: "Nombre del plan", type: "string", validation: (r) => r.required() }),
53671
- (0, import_sanity20.defineField)({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53672
- (0, import_sanity20.defineField)({ name: "price", title: "Precio", type: "string" }),
53673
- (0, import_sanity20.defineField)({ name: "priceFrequency", title: "Frecuencia de precio (ej: mes)", type: "string" }),
53674
- (0, import_sanity20.defineField)({ name: "badge", title: "Badge (ej: M\xE1s popular)", type: "string" }),
53675
- (0, import_sanity20.defineField)({ name: "highlighted", title: "Destacar este plan", type: "boolean", initialValue: false }),
53676
- (0, import_sanity20.defineField)({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
53677
- (0, import_sanity20.defineField)({
53728
+ (0, import_sanity21.defineField)({ name: "name", title: "Nombre del plan", type: "string", validation: (r) => r.required() }),
53729
+ (0, import_sanity21.defineField)({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53730
+ (0, import_sanity21.defineField)({ name: "price", title: "Precio", type: "string" }),
53731
+ (0, import_sanity21.defineField)({ name: "priceFrequency", title: "Frecuencia de precio (ej: mes)", type: "string" }),
53732
+ (0, import_sanity21.defineField)({ name: "badge", title: "Badge (ej: M\xE1s popular)", type: "string" }),
53733
+ (0, import_sanity21.defineField)({ name: "highlighted", title: "Destacar este plan", type: "boolean", initialValue: false }),
53734
+ (0, import_sanity21.defineField)({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
53735
+ (0, import_sanity21.defineField)({
53678
53736
  name: "cells",
53679
53737
  title: "Valores de celda",
53680
53738
  type: "array",
@@ -53689,7 +53747,7 @@ var comparisonSection = (0, import_sanity20.defineType)({
53689
53747
  ],
53690
53748
  validation: (r) => r.required().min(2)
53691
53749
  }),
53692
- (0, import_sanity20.defineField)({
53750
+ (0, import_sanity21.defineField)({
53693
53751
  name: "background",
53694
53752
  title: "Fondo",
53695
53753
  type: "string",
@@ -53708,7 +53766,7 @@ var comparisonSection = (0, import_sanity20.defineType)({
53708
53766
  },
53709
53767
  initialValue: "default"
53710
53768
  }),
53711
- (0, import_sanity20.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53769
+ (0, import_sanity21.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53712
53770
  ],
53713
53771
  preview: {
53714
53772
  select: { title: "title", subtitle: "variant" },
@@ -53719,13 +53777,14 @@ var comparisonSection = (0, import_sanity20.defineType)({
53719
53777
  });
53720
53778
 
53721
53779
  // ../../apps/studio/schemas/sections/duplex.ts
53722
- var import_sanity21 = require("sanity");
53723
- var duplexSection = (0, import_sanity21.defineType)({
53780
+ var import_sanity22 = require("sanity");
53781
+ var duplexSection = (0, import_sanity22.defineType)({
53724
53782
  name: "duplex",
53725
53783
  title: "Duplex (Imagen + Texto)",
53726
53784
  type: "object",
53727
53785
  fields: [
53728
- (0, import_sanity21.defineField)({
53786
+ ...sectionMediaFields,
53787
+ (0, import_sanity22.defineField)({
53729
53788
  name: "variant",
53730
53789
  title: "Variante",
53731
53790
  type: "string",
@@ -53740,45 +53799,45 @@ var duplexSection = (0, import_sanity21.defineType)({
53740
53799
  initialValue: "image-left",
53741
53800
  validation: (r) => r.required()
53742
53801
  }),
53743
- (0, import_sanity21.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53744
- (0, import_sanity21.defineField)({
53802
+ (0, import_sanity22.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53803
+ (0, import_sanity22.defineField)({
53745
53804
  name: "heading",
53746
53805
  title: "Titular",
53747
53806
  type: "string",
53748
53807
  validation: (r) => r.required()
53749
53808
  }),
53750
- (0, import_sanity21.defineField)({ name: "body", title: "Texto del cuerpo", type: "text", rows: 3 }),
53751
- (0, import_sanity21.defineField)({
53809
+ (0, import_sanity22.defineField)({ name: "body", title: "Texto del cuerpo", type: "text", rows: 3 }),
53810
+ (0, import_sanity22.defineField)({
53752
53811
  name: "content",
53753
53812
  title: "Contenido",
53754
53813
  type: "text",
53755
53814
  description: "Texto enriquecido opcional que se muestra debajo del cuerpo de texto.",
53756
53815
  components: { input: TipTapEditor }
53757
53816
  }),
53758
- (0, import_sanity21.defineField)({
53817
+ (0, import_sanity22.defineField)({
53759
53818
  name: "image",
53760
53819
  title: "Imagen",
53761
53820
  type: "image",
53762
53821
  options: { hotspot: true },
53763
53822
  fields: [
53764
- (0, import_sanity21.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
53823
+ (0, import_sanity22.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
53765
53824
  ]
53766
53825
  }),
53767
- (0, import_sanity21.defineField)({
53826
+ (0, import_sanity22.defineField)({
53768
53827
  name: "videoUrl",
53769
53828
  title: "URL de video",
53770
53829
  type: "url",
53771
53830
  description: "Si se proporciona, se mostrar\xE1 un video en lugar de la imagen"
53772
53831
  }),
53773
- (0, import_sanity21.defineField)({ name: "primaryCTA", title: "Bot\xF3n CTA primario", type: "ctaButton" }),
53774
- (0, import_sanity21.defineField)({ name: "secondaryCTA", title: "Bot\xF3n CTA secundario", type: "ctaButton" }),
53775
- (0, import_sanity21.defineField)({
53832
+ (0, import_sanity22.defineField)({ name: "primaryCTA", title: "Bot\xF3n CTA primario", type: "ctaButton" }),
53833
+ (0, import_sanity22.defineField)({ name: "secondaryCTA", title: "Bot\xF3n CTA secundario", type: "ctaButton" }),
53834
+ (0, import_sanity22.defineField)({
53776
53835
  name: "bullets",
53777
53836
  title: "Puntos de lista",
53778
53837
  type: "array",
53779
53838
  of: [{ type: "string" }]
53780
53839
  }),
53781
- (0, import_sanity21.defineField)({
53840
+ (0, import_sanity22.defineField)({
53782
53841
  name: "background",
53783
53842
  title: "Fondo",
53784
53843
  type: "string",
@@ -53797,7 +53856,7 @@ var duplexSection = (0, import_sanity21.defineType)({
53797
53856
  },
53798
53857
  initialValue: "default"
53799
53858
  }),
53800
- (0, import_sanity21.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53859
+ (0, import_sanity22.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53801
53860
  ],
53802
53861
  preview: {
53803
53862
  select: { title: "heading", subtitle: "variant" },
@@ -53808,13 +53867,14 @@ var duplexSection = (0, import_sanity21.defineType)({
53808
53867
  });
53809
53868
 
53810
53869
  // ../../apps/studio/schemas/sections/richtext.ts
53811
- var import_sanity22 = require("sanity");
53812
- var richtextSection = (0, import_sanity22.defineType)({
53870
+ var import_sanity23 = require("sanity");
53871
+ var richtextSection = (0, import_sanity23.defineType)({
53813
53872
  name: "richtext",
53814
53873
  title: "Texto enriquecido",
53815
53874
  type: "object",
53816
53875
  fields: [
53817
- (0, import_sanity22.defineField)({
53876
+ ...sectionMediaFields,
53877
+ (0, import_sanity23.defineField)({
53818
53878
  name: "variant",
53819
53879
  title: "Variante",
53820
53880
  type: "string",
@@ -53829,17 +53889,17 @@ var richtextSection = (0, import_sanity22.defineType)({
53829
53889
  initialValue: "centered",
53830
53890
  validation: (r) => r.required()
53831
53891
  }),
53832
- (0, import_sanity22.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53833
- (0, import_sanity22.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53834
- (0, import_sanity22.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53835
- (0, import_sanity22.defineField)({
53892
+ (0, import_sanity23.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53893
+ (0, import_sanity23.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53894
+ (0, import_sanity23.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53895
+ (0, import_sanity23.defineField)({
53836
53896
  name: "content",
53837
53897
  title: "Contenido",
53838
53898
  type: "text",
53839
53899
  components: { input: TipTapEditor },
53840
53900
  validation: (r) => r.required()
53841
53901
  }),
53842
- (0, import_sanity22.defineField)({
53902
+ (0, import_sanity23.defineField)({
53843
53903
  name: "background",
53844
53904
  title: "Fondo",
53845
53905
  type: "string",
@@ -53858,7 +53918,7 @@ var richtextSection = (0, import_sanity22.defineType)({
53858
53918
  },
53859
53919
  initialValue: "default"
53860
53920
  }),
53861
- (0, import_sanity22.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53921
+ (0, import_sanity23.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53862
53922
  ],
53863
53923
  preview: {
53864
53924
  select: { title: "title", subtitle: "variant" },
@@ -53869,13 +53929,14 @@ var richtextSection = (0, import_sanity22.defineType)({
53869
53929
  });
53870
53930
 
53871
53931
  // ../../apps/studio/schemas/sections/video-section.ts
53872
- var import_sanity23 = require("sanity");
53873
- var videoSection = (0, import_sanity23.defineType)({
53932
+ var import_sanity24 = require("sanity");
53933
+ var videoSection = (0, import_sanity24.defineType)({
53874
53934
  name: "videoSection",
53875
53935
  title: "Video",
53876
53936
  type: "object",
53877
53937
  fields: [
53878
- (0, import_sanity23.defineField)({
53938
+ ...sectionMediaFields,
53939
+ (0, import_sanity24.defineField)({
53879
53940
  name: "variant",
53880
53941
  title: "Variante",
53881
53942
  type: "string",
@@ -53890,45 +53951,45 @@ var videoSection = (0, import_sanity23.defineType)({
53890
53951
  initialValue: "full",
53891
53952
  validation: (r) => r.required()
53892
53953
  }),
53893
- (0, import_sanity23.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53894
- (0, import_sanity23.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n / Encabezado", type: "string" }),
53895
- (0, import_sanity23.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53896
- (0, import_sanity23.defineField)({
53954
+ (0, import_sanity24.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53955
+ (0, import_sanity24.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n / Encabezado", type: "string" }),
53956
+ (0, import_sanity24.defineField)({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53957
+ (0, import_sanity24.defineField)({
53897
53958
  name: "content",
53898
53959
  title: "Contenido",
53899
53960
  type: "text",
53900
53961
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53901
53962
  components: { input: TipTapEditor }
53902
53963
  }),
53903
- (0, import_sanity23.defineField)({
53964
+ (0, import_sanity24.defineField)({
53904
53965
  name: "videoUrl",
53905
53966
  title: "URL del video",
53906
53967
  type: "url",
53907
53968
  description: "Peg\xE1 una URL de YouTube, Vimeo o sub\xED un archivo de video a Sanity",
53908
53969
  validation: (r) => r.required()
53909
53970
  }),
53910
- (0, import_sanity23.defineField)({
53971
+ (0, import_sanity24.defineField)({
53911
53972
  name: "poster",
53912
53973
  title: "Imagen de poster",
53913
53974
  type: "image",
53914
53975
  options: { hotspot: true },
53915
53976
  fields: [
53916
- (0, import_sanity23.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
53977
+ (0, import_sanity24.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
53917
53978
  ]
53918
53979
  }),
53919
- (0, import_sanity23.defineField)({
53980
+ (0, import_sanity24.defineField)({
53920
53981
  name: "autoplay",
53921
53982
  title: "Reproducci\xF3n autom\xE1tica",
53922
53983
  type: "boolean",
53923
53984
  initialValue: false
53924
53985
  }),
53925
- (0, import_sanity23.defineField)({
53986
+ (0, import_sanity24.defineField)({
53926
53987
  name: "loop",
53927
53988
  title: "Repetir en bucle",
53928
53989
  type: "boolean",
53929
53990
  initialValue: false
53930
53991
  }),
53931
- (0, import_sanity23.defineField)({
53992
+ (0, import_sanity24.defineField)({
53932
53993
  name: "background",
53933
53994
  title: "Fondo",
53934
53995
  type: "string",
@@ -53947,7 +54008,7 @@ var videoSection = (0, import_sanity23.defineType)({
53947
54008
  },
53948
54009
  initialValue: "default"
53949
54010
  }),
53950
- (0, import_sanity23.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
54011
+ (0, import_sanity24.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
53951
54012
  ],
53952
54013
  preview: {
53953
54014
  select: { title: "title", subtitle: "variant" },
@@ -53959,7 +54020,7 @@ var videoSection = (0, import_sanity23.defineType)({
53959
54020
 
53960
54021
  // ../../apps/studio/schemas/sections/event-registration.ts
53961
54022
  var import_react5 = __toESM(require_react());
53962
- var import_sanity24 = require("sanity");
54023
+ var import_sanity25 = require("sanity");
53963
54024
 
53964
54025
  // ../../apps/studio/components/note-input.tsx
53965
54026
  var import_react4 = __toESM(require_react());
@@ -53984,12 +54045,13 @@ function NoteInput({ message, type = "info" }) {
53984
54045
  }
53985
54046
 
53986
54047
  // ../../apps/studio/schemas/sections/event-registration.ts
53987
- var eventRegistrationSection = (0, import_sanity24.defineType)({
54048
+ var eventRegistrationSection = (0, import_sanity25.defineType)({
53988
54049
  name: "eventRegistration",
53989
54050
  title: "Registro de Evento",
53990
54051
  type: "object",
53991
54052
  fields: [
53992
- (0, import_sanity24.defineField)({
54053
+ ...sectionMediaFields,
54054
+ (0, import_sanity25.defineField)({
53993
54055
  name: "setupNote",
53994
54056
  title: " ",
53995
54057
  type: "string",
@@ -54000,7 +54062,7 @@ var eventRegistrationSection = (0, import_sanity24.defineType)({
54000
54062
  })
54001
54063
  }
54002
54064
  }),
54003
- (0, import_sanity24.defineField)({
54065
+ (0, import_sanity25.defineField)({
54004
54066
  name: "variant",
54005
54067
  title: "Variante",
54006
54068
  type: "string",
@@ -54015,17 +54077,17 @@ var eventRegistrationSection = (0, import_sanity24.defineType)({
54015
54077
  initialValue: "card",
54016
54078
  validation: (r) => r.required()
54017
54079
  }),
54018
- (0, import_sanity24.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
54019
- (0, import_sanity24.defineField)({ name: "title", title: "T\xEDtulo", type: "string" }),
54020
- (0, import_sanity24.defineField)({ name: "subtitle", title: "Subt\xEDtulo", type: "text", rows: 2 }),
54021
- (0, import_sanity24.defineField)({
54080
+ (0, import_sanity25.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
54081
+ (0, import_sanity25.defineField)({ name: "title", title: "T\xEDtulo", type: "string" }),
54082
+ (0, import_sanity25.defineField)({ name: "subtitle", title: "Subt\xEDtulo", type: "text", rows: 2 }),
54083
+ (0, import_sanity25.defineField)({
54022
54084
  name: "content",
54023
54085
  title: "Contenido",
54024
54086
  type: "text",
54025
54087
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
54026
54088
  components: { input: TipTapEditor }
54027
54089
  }),
54028
- (0, import_sanity24.defineField)({
54090
+ (0, import_sanity25.defineField)({
54029
54091
  name: "background",
54030
54092
  title: "Fondo",
54031
54093
  type: "string",
@@ -54040,14 +54102,14 @@ var eventRegistrationSection = (0, import_sanity24.defineType)({
54040
54102
  },
54041
54103
  initialValue: "default"
54042
54104
  }),
54043
- (0, import_sanity24.defineField)({
54105
+ (0, import_sanity25.defineField)({
54044
54106
  name: "image",
54045
54107
  title: "Imagen (variante dividida)",
54046
54108
  type: "image",
54047
54109
  options: { hotspot: true },
54048
- fields: [(0, import_sanity24.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })]
54110
+ fields: [(0, import_sanity25.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })]
54049
54111
  }),
54050
- (0, import_sanity24.defineField)({
54112
+ (0, import_sanity25.defineField)({
54051
54113
  name: "formId",
54052
54114
  title: "ID del formulario",
54053
54115
  type: "slug",
@@ -54056,7 +54118,7 @@ var eventRegistrationSection = (0, import_sanity24.defineType)({
54056
54118
  validation: (r) => r.required()
54057
54119
  }),
54058
54120
  /* ─── Campos del formulario ─── */
54059
- (0, import_sanity24.defineField)({
54121
+ (0, import_sanity25.defineField)({
54060
54122
  name: "fields",
54061
54123
  title: "Campos del formulario",
54062
54124
  type: "array",
@@ -54067,13 +54129,13 @@ var eventRegistrationSection = (0, import_sanity24.defineType)({
54067
54129
  name: "formField",
54068
54130
  title: "Campo",
54069
54131
  fields: [
54070
- (0, import_sanity24.defineField)({
54132
+ (0, import_sanity25.defineField)({
54071
54133
  name: "label",
54072
54134
  title: "Nombre del campo",
54073
54135
  type: "string",
54074
54136
  validation: (r) => r.required()
54075
54137
  }),
54076
- (0, import_sanity24.defineField)({
54138
+ (0, import_sanity25.defineField)({
54077
54139
  name: "fieldType",
54078
54140
  title: "Tipo",
54079
54141
  type: "string",
@@ -54093,18 +54155,18 @@ var eventRegistrationSection = (0, import_sanity24.defineType)({
54093
54155
  initialValue: "text",
54094
54156
  validation: (r) => r.required()
54095
54157
  }),
54096
- (0, import_sanity24.defineField)({
54158
+ (0, import_sanity25.defineField)({
54097
54159
  name: "required",
54098
54160
  title: "Obligatorio",
54099
54161
  type: "boolean",
54100
54162
  initialValue: true
54101
54163
  }),
54102
- (0, import_sanity24.defineField)({
54164
+ (0, import_sanity25.defineField)({
54103
54165
  name: "placeholder",
54104
54166
  title: "Texto de ayuda (placeholder)",
54105
54167
  type: "string"
54106
54168
  }),
54107
- (0, import_sanity24.defineField)({
54169
+ (0, import_sanity25.defineField)({
54108
54170
  name: "options",
54109
54171
  title: "Opciones (solo para tipo lista)",
54110
54172
  type: "array",
@@ -54135,19 +54197,19 @@ var eventRegistrationSection = (0, import_sanity24.defineType)({
54135
54197
  validation: (r) => r.min(1).error("Agreg\xE1 al menos un campo al formulario")
54136
54198
  }),
54137
54199
  /* ─── Textos ─── */
54138
- (0, import_sanity24.defineField)({
54200
+ (0, import_sanity25.defineField)({
54139
54201
  name: "buttonLabel",
54140
54202
  title: "Texto del bot\xF3n",
54141
54203
  type: "string",
54142
54204
  initialValue: "Enviar"
54143
54205
  }),
54144
- (0, import_sanity24.defineField)({
54206
+ (0, import_sanity25.defineField)({
54145
54207
  name: "successMessage",
54146
54208
  title: "Mensaje de \xE9xito",
54147
54209
  type: "string",
54148
54210
  initialValue: "\xA1Tu registro fue enviado con \xE9xito!"
54149
54211
  }),
54150
- (0, import_sanity24.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
54212
+ (0, import_sanity25.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
54151
54213
  ],
54152
54214
  preview: {
54153
54215
  select: { title: "title", variant: "variant" },
@@ -54159,13 +54221,14 @@ var eventRegistrationSection = (0, import_sanity24.defineType)({
54159
54221
 
54160
54222
  // ../../apps/studio/schemas/sections/newsletter.ts
54161
54223
  var import_react6 = __toESM(require_react());
54162
- var import_sanity25 = require("sanity");
54163
- var newsletterSection = (0, import_sanity25.defineType)({
54224
+ var import_sanity26 = require("sanity");
54225
+ var newsletterSection = (0, import_sanity26.defineType)({
54164
54226
  name: "newsletter",
54165
54227
  title: "Newsletter",
54166
54228
  type: "object",
54167
54229
  fields: [
54168
- (0, import_sanity25.defineField)({
54230
+ ...sectionMediaFields,
54231
+ (0, import_sanity26.defineField)({
54169
54232
  name: "setupNote",
54170
54233
  title: " ",
54171
54234
  type: "string",
@@ -54176,7 +54239,7 @@ var newsletterSection = (0, import_sanity25.defineType)({
54176
54239
  })
54177
54240
  }
54178
54241
  }),
54179
- (0, import_sanity25.defineField)({
54242
+ (0, import_sanity26.defineField)({
54180
54243
  name: "variant",
54181
54244
  title: "Variante",
54182
54245
  type: "string",
@@ -54191,17 +54254,17 @@ var newsletterSection = (0, import_sanity25.defineType)({
54191
54254
  initialValue: "centered",
54192
54255
  validation: (r) => r.required()
54193
54256
  }),
54194
- (0, import_sanity25.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
54195
- (0, import_sanity25.defineField)({ name: "title", title: "T\xEDtulo", type: "string" }),
54196
- (0, import_sanity25.defineField)({ name: "subtitle", title: "Subt\xEDtulo", type: "text", rows: 2 }),
54197
- (0, import_sanity25.defineField)({
54257
+ (0, import_sanity26.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
54258
+ (0, import_sanity26.defineField)({ name: "title", title: "T\xEDtulo", type: "string" }),
54259
+ (0, import_sanity26.defineField)({ name: "subtitle", title: "Subt\xEDtulo", type: "text", rows: 2 }),
54260
+ (0, import_sanity26.defineField)({
54198
54261
  name: "content",
54199
54262
  title: "Contenido",
54200
54263
  type: "text",
54201
54264
  description: "Texto enriquecido que se muestra debajo del subt\xEDtulo.",
54202
54265
  components: { input: TipTapEditor }
54203
54266
  }),
54204
- (0, import_sanity25.defineField)({
54267
+ (0, import_sanity26.defineField)({
54205
54268
  name: "background",
54206
54269
  title: "Fondo",
54207
54270
  type: "string",
@@ -54216,25 +54279,25 @@ var newsletterSection = (0, import_sanity25.defineType)({
54216
54279
  },
54217
54280
  initialValue: "default"
54218
54281
  }),
54219
- (0, import_sanity25.defineField)({
54282
+ (0, import_sanity26.defineField)({
54220
54283
  name: "placeholder",
54221
54284
  title: "Placeholder del campo email",
54222
54285
  type: "string",
54223
54286
  initialValue: "tu@email.com"
54224
54287
  }),
54225
- (0, import_sanity25.defineField)({
54288
+ (0, import_sanity26.defineField)({
54226
54289
  name: "buttonLabel",
54227
54290
  title: "Texto del bot\xF3n",
54228
54291
  type: "string",
54229
54292
  initialValue: "Suscribirme"
54230
54293
  }),
54231
- (0, import_sanity25.defineField)({
54294
+ (0, import_sanity26.defineField)({
54232
54295
  name: "successMessage",
54233
54296
  title: "Mensaje de \xE9xito",
54234
54297
  type: "string",
54235
54298
  initialValue: "\xA1Gracias! Te avisamos cuando haya novedades."
54236
54299
  }),
54237
- (0, import_sanity25.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
54300
+ (0, import_sanity26.defineField)({ name: "id", title: "ID / Anchor", type: "string", description: 'ID de la secci\xF3n para anclas de scroll (ej: "contacto"). Los botones con href="#contacto" scrollear\xE1n aqu\xED.' })
54238
54301
  ],
54239
54302
  preview: {
54240
54303
  select: { title: "title", variant: "variant" },
@@ -54248,13 +54311,14 @@ var newsletterSection = (0, import_sanity25.defineType)({
54248
54311
  });
54249
54312
 
54250
54313
  // ../../apps/studio/schemas/sections/downloads.ts
54251
- var import_sanity26 = require("sanity");
54252
- var downloadsSection = (0, import_sanity26.defineType)({
54314
+ var import_sanity27 = require("sanity");
54315
+ var downloadsSection = (0, import_sanity27.defineType)({
54253
54316
  name: "downloads",
54254
54317
  title: "Descargas",
54255
54318
  type: "object",
54256
54319
  fields: [
54257
- (0, import_sanity26.defineField)({
54320
+ ...sectionMediaFields,
54321
+ (0, import_sanity27.defineField)({
54258
54322
  name: "variant",
54259
54323
  title: "Variante",
54260
54324
  type: "string",
@@ -54269,10 +54333,10 @@ var downloadsSection = (0, import_sanity26.defineType)({
54269
54333
  initialValue: "grouped",
54270
54334
  validation: (r) => r.required()
54271
54335
  }),
54272
- (0, import_sanity26.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
54273
- (0, import_sanity26.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
54274
- (0, import_sanity26.defineField)({ name: "subtitle", title: "Subt\xEDtulo", type: "text", rows: 2 }),
54275
- (0, import_sanity26.defineField)({
54336
+ (0, import_sanity27.defineField)({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
54337
+ (0, import_sanity27.defineField)({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
54338
+ (0, import_sanity27.defineField)({ name: "subtitle", title: "Subt\xEDtulo", type: "text", rows: 2 }),
54339
+ (0, import_sanity27.defineField)({
54276
54340
  name: "groups",
54277
54341
  title: "Grupos de archivos",
54278
54342
  type: "array",
@@ -54280,14 +54344,14 @@ var downloadsSection = (0, import_sanity26.defineType)({
54280
54344
  {
54281
54345
  type: "object",
54282
54346
  fields: [
54283
- (0, import_sanity26.defineField)({
54347
+ (0, import_sanity27.defineField)({
54284
54348
  name: "title",
54285
54349
  title: "Nombre del grupo",
54286
54350
  type: "string",
54287
54351
  description: 'Ej: "Carrera 1", "Formularios 2024"',
54288
54352
  validation: (r) => r.required()
54289
54353
  }),
54290
- (0, import_sanity26.defineField)({
54354
+ (0, import_sanity27.defineField)({
54291
54355
  name: "files",
54292
54356
  title: "Archivos",
54293
54357
  type: "array",
@@ -54295,14 +54359,14 @@ var downloadsSection = (0, import_sanity26.defineType)({
54295
54359
  {
54296
54360
  type: "object",
54297
54361
  fields: [
54298
- (0, import_sanity26.defineField)({
54362
+ (0, import_sanity27.defineField)({
54299
54363
  name: "label",
54300
54364
  title: "Etiqueta del archivo",
54301
54365
  type: "string",
54302
54366
  description: "Nombre visible para el usuario",
54303
54367
  validation: (r) => r.required()
54304
54368
  }),
54305
- (0, import_sanity26.defineField)({
54369
+ (0, import_sanity27.defineField)({
54306
54370
  name: "file",
54307
54371
  title: "Archivo",
54308
54372
  type: "file",
@@ -54337,7 +54401,7 @@ var downloadsSection = (0, import_sanity26.defineType)({
54337
54401
  ],
54338
54402
  validation: (r) => r.required().min(1)
54339
54403
  }),
54340
- (0, import_sanity26.defineField)({
54404
+ (0, import_sanity27.defineField)({
54341
54405
  name: "background",
54342
54406
  title: "Fondo",
54343
54407
  type: "string",
@@ -54356,7 +54420,7 @@ var downloadsSection = (0, import_sanity26.defineType)({
54356
54420
  },
54357
54421
  initialValue: "default"
54358
54422
  }),
54359
- (0, import_sanity26.defineField)({
54423
+ (0, import_sanity27.defineField)({
54360
54424
  name: "id",
54361
54425
  title: "ID / Anchor",
54362
54426
  type: "string",
@@ -54376,29 +54440,89 @@ var downloadsSection = (0, import_sanity26.defineType)({
54376
54440
  });
54377
54441
 
54378
54442
  // ../../apps/studio/schemas/documents/site-settings.ts
54379
- var import_sanity27 = require("sanity");
54380
- var siteSettings = (0, import_sanity27.defineType)({
54443
+ var import_sanity29 = require("sanity");
54444
+
54445
+ // ../../apps/studio/components/color-input.tsx
54446
+ var import_react7 = __toESM(require_react());
54447
+ var import_sanity28 = require("sanity");
54448
+ function ColorInput({ value, onChange }) {
54449
+ const handleChange = (0, import_react7.useCallback)(
54450
+ (e) => {
54451
+ const val = e.currentTarget.value;
54452
+ onChange(val ? (0, import_sanity28.set)(val) : (0, import_sanity28.unset)());
54453
+ },
54454
+ [onChange]
54455
+ );
54456
+ const handleClear = (0, import_react7.useCallback)(() => onChange((0, import_sanity28.unset)()), [onChange]);
54457
+ const raw = value;
54458
+ if (raw !== void 0 && typeof raw !== "string") {
54459
+ return /* @__PURE__ */ import_react7.default.createElement("div", { style: { display: "flex", alignItems: "center", gap: 10 } }, /* @__PURE__ */ import_react7.default.createElement("span", { style: { fontSize: 12, color: "var(--card-muted-fg-color, #888)" } }, "Formato incompatible"), /* @__PURE__ */ import_react7.default.createElement(
54460
+ "button",
54461
+ {
54462
+ type: "button",
54463
+ onClick: handleClear,
54464
+ style: {
54465
+ fontSize: 12,
54466
+ padding: "4px 10px",
54467
+ cursor: "pointer",
54468
+ borderRadius: 4,
54469
+ border: "1px solid var(--card-border-color, #e2e2e2)",
54470
+ background: "none",
54471
+ color: "inherit"
54472
+ }
54473
+ },
54474
+ "Limpiar"
54475
+ ));
54476
+ }
54477
+ return /* @__PURE__ */ import_react7.default.createElement("div", { style: { display: "flex", alignItems: "center", gap: 10 } }, /* @__PURE__ */ import_react7.default.createElement(
54478
+ "input",
54479
+ {
54480
+ type: "color",
54481
+ value: value || "#000000",
54482
+ onChange: handleChange,
54483
+ style: {
54484
+ width: 44,
54485
+ height: 36,
54486
+ padding: 2,
54487
+ cursor: "pointer",
54488
+ borderRadius: 6,
54489
+ border: "1px solid var(--card-border-color, #e2e2e2)",
54490
+ background: "none",
54491
+ flexShrink: 0
54492
+ }
54493
+ }
54494
+ ), /* @__PURE__ */ import_react7.default.createElement("code", { style: { fontSize: 12, color: "var(--card-muted-fg-color, #888)" } }, value || "\u2014"));
54495
+ }
54496
+
54497
+ // ../../apps/studio/schemas/documents/site-settings.ts
54498
+ var siteSettings = (0, import_sanity29.defineType)({
54381
54499
  name: "siteSettings",
54382
54500
  title: "Configuraci\xF3n del sitio",
54383
54501
  type: "document",
54384
54502
  fields: [
54385
- (0, import_sanity27.defineField)({ name: "siteName", title: "Nombre del sitio", type: "string", validation: (r) => r.required() }),
54386
- (0, import_sanity27.defineField)({
54503
+ (0, import_sanity29.defineField)({ name: "siteName", title: "Nombre del sitio", type: "string", validation: (r) => r.required() }),
54504
+ (0, import_sanity29.defineField)({
54387
54505
  name: "logo",
54388
54506
  title: "Logo",
54389
54507
  type: "image",
54390
54508
  options: { hotspot: true },
54391
54509
  fields: [
54392
- (0, import_sanity27.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
54510
+ (0, import_sanity29.defineField)({ name: "alt", title: "Texto alternativo", type: "string" })
54393
54511
  ]
54394
54512
  }),
54513
+ (0, import_sanity29.defineField)({
54514
+ name: "favicon",
54515
+ title: "Favicon",
54516
+ description: "\xCDcono que aparece en la pesta\xF1a del navegador. Recomendado: PNG cuadrado de 32\xD732 o 64\xD764 px (o SVG).",
54517
+ type: "image"
54518
+ }),
54395
54519
  /* ─── Theme ─── */
54396
- (0, import_sanity27.defineField)({
54520
+ (0, import_sanity29.defineField)({
54397
54521
  name: "theme",
54398
54522
  title: "Tema",
54399
54523
  type: "object",
54400
54524
  fields: [
54401
- (0, import_sanity27.defineField)({
54525
+ (0, import_sanity29.defineField)({
54402
54526
  name: "mode",
54403
54527
  title: "Modo de color",
54404
54528
  type: "string",
@@ -54412,7 +54536,7 @@ var siteSettings = (0, import_sanity27.defineType)({
54412
54536
  },
54413
54537
  initialValue: "light"
54414
54538
  }),
54415
- (0, import_sanity27.defineField)({
54539
+ (0, import_sanity29.defineField)({
54416
54540
  name: "palette",
54417
54541
  title: "Paleta de colores",
54418
54542
  type: "string",
@@ -54432,26 +54556,26 @@ var siteSettings = (0, import_sanity27.defineType)({
54432
54556
  },
54433
54557
  initialValue: "default"
54434
54558
  }),
54435
- (0, import_sanity27.defineField)({
54559
+ (0, import_sanity29.defineField)({
54436
54560
  name: "customPalette",
54437
- title: "Paleta personalizada (valores HSL, ej: 221 83% 53%)",
54561
+ title: "Paleta personalizada",
54438
54562
  type: "object",
54439
54563
  hidden: ({ parent }) => parent?.palette !== "custom",
54440
54564
  fields: [
54441
- (0, import_sanity27.defineField)({ name: "primary", title: "Primario (HSL)", type: "string" }),
54442
- (0, import_sanity27.defineField)({ name: "primaryForeground", title: "Primer plano primario (HSL)", type: "string" }),
54443
- (0, import_sanity27.defineField)({ name: "secondary", title: "Secundario (HSL)", type: "string" }),
54444
- (0, import_sanity27.defineField)({ name: "secondaryForeground", title: "Primer plano secundario (HSL)", type: "string" }),
54445
- (0, import_sanity27.defineField)({ name: "accent", title: "Acento (HSL)", type: "string" }),
54446
- (0, import_sanity27.defineField)({ name: "accentForeground", title: "Primer plano de acento (HSL)", type: "string" }),
54447
- (0, import_sanity27.defineField)({ name: "background", title: "Fondo (HSL)", type: "string" }),
54448
- (0, import_sanity27.defineField)({ name: "foreground", title: "Primer plano (HSL)", type: "string" }),
54449
- (0, import_sanity27.defineField)({ name: "muted", title: "Suave (HSL)", type: "string" }),
54450
- (0, import_sanity27.defineField)({ name: "mutedForeground", title: "Primer plano suave (HSL)", type: "string" }),
54451
- (0, import_sanity27.defineField)({ name: "border", title: "Borde (HSL)", type: "string" })
54565
+ (0, import_sanity29.defineField)({ name: "primary", title: "Primario", type: "string", components: { input: ColorInput } }),
54566
+ (0, import_sanity29.defineField)({ name: "primaryForeground", title: "Primer plano primario", type: "string", components: { input: ColorInput } }),
54567
+ (0, import_sanity29.defineField)({ name: "secondary", title: "Secundario", type: "string", components: { input: ColorInput } }),
54568
+ (0, import_sanity29.defineField)({ name: "secondaryForeground", title: "Primer plano secundario", type: "string", components: { input: ColorInput } }),
54569
+ (0, import_sanity29.defineField)({ name: "accent", title: "Acento", type: "string", components: { input: ColorInput } }),
54570
+ (0, import_sanity29.defineField)({ name: "accentForeground", title: "Primer plano de acento", type: "string", components: { input: ColorInput } }),
54571
+ (0, import_sanity29.defineField)({ name: "background", title: "Fondo", type: "string", components: { input: ColorInput } }),
54572
+ (0, import_sanity29.defineField)({ name: "foreground", title: "Primer plano", type: "string", components: { input: ColorInput } }),
54573
+ (0, import_sanity29.defineField)({ name: "muted", title: "Suave", type: "string", components: { input: ColorInput } }),
54574
+ (0, import_sanity29.defineField)({ name: "mutedForeground", title: "Primer plano suave", type: "string", components: { input: ColorInput } }),
54575
+ (0, import_sanity29.defineField)({ name: "border", title: "Borde", type: "string", components: { input: ColorInput } })
54452
54576
  ]
54453
54577
  }),
54454
- (0, import_sanity27.defineField)({
54578
+ (0, import_sanity29.defineField)({
54455
54579
  name: "radius",
54456
54580
  title: "Radio de borde (rem)",
54457
54581
  description: "0 = anguloso, 0.5 = predeterminado, 1 = muy redondeado",
@@ -54462,7 +54586,7 @@ var siteSettings = (0, import_sanity27.defineType)({
54462
54586
  ]
54463
54587
  }),
54464
54588
  /* ─── Layout ─── */
54465
- (0, import_sanity27.defineField)({
54589
+ (0, import_sanity29.defineField)({
54466
54590
  name: "layoutVariant",
54467
54591
  title: "Dise\xF1o",
54468
54592
  type: "string",
@@ -54479,7 +54603,7 @@ var siteSettings = (0, import_sanity27.defineType)({
54479
54603
  },
54480
54604
  initialValue: "default"
54481
54605
  }),
54482
- (0, import_sanity27.defineField)({
54606
+ (0, import_sanity29.defineField)({
54483
54607
  name: "headerVariant",
54484
54608
  title: "Encabezado",
54485
54609
  type: "string",
@@ -54497,7 +54621,7 @@ var siteSettings = (0, import_sanity27.defineType)({
54497
54621
  },
54498
54622
  initialValue: "default"
54499
54623
  }),
54500
- (0, import_sanity27.defineField)({
54624
+ (0, import_sanity29.defineField)({
54501
54625
  name: "footerVariant",
54502
54626
  title: "Pie de p\xE1gina",
54503
54627
  type: "string",
@@ -54511,13 +54635,27 @@ var siteSettings = (0, import_sanity27.defineType)({
54511
54635
  },
54512
54636
  initialValue: "default"
54513
54637
  }),
54638
+ (0, import_sanity29.defineField)({
54639
+ name: "notFoundVariant",
54640
+ title: "P\xE1gina 404",
54641
+ type: "string",
54642
+ options: {
54643
+ list: [
54644
+ { title: "Centrado \u2014 gran n\xFAmero 404 centrado en pantalla", value: "centered" },
54645
+ { title: "Dividido \u2014 branding a la izquierda, mensaje a la derecha", value: "split" },
54646
+ { title: "Minimalista \u2014 solo texto, sin decoraci\xF3n", value: "minimal" }
54647
+ ],
54648
+ layout: "radio"
54649
+ },
54650
+ initialValue: "centered"
54651
+ }),
54514
54652
  /* ─── Navigation ─── */
54515
- (0, import_sanity27.defineField)({
54653
+ (0, import_sanity29.defineField)({
54516
54654
  name: "navigation",
54517
54655
  title: "Navegaci\xF3n",
54518
54656
  type: "object",
54519
54657
  fields: [
54520
- (0, import_sanity27.defineField)({
54658
+ (0, import_sanity29.defineField)({
54521
54659
  name: "links",
54522
54660
  title: "Enlaces de navegaci\xF3n",
54523
54661
  type: "array",
@@ -54525,8 +54663,8 @@ var siteSettings = (0, import_sanity27.defineType)({
54525
54663
  {
54526
54664
  type: "object",
54527
54665
  fields: [
54528
- (0, import_sanity27.defineField)({ name: "label", title: "Etiqueta", type: "string" }),
54529
- (0, import_sanity27.defineField)({ name: "href", title: "Href", type: "string" })
54666
+ (0, import_sanity29.defineField)({ name: "label", title: "Etiqueta", type: "string" }),
54667
+ (0, import_sanity29.defineField)({ name: "href", title: "Href", type: "string" })
54530
54668
  ],
54531
54669
  preview: { select: { title: "label", subtitle: "href" } }
54532
54670
  }
@@ -54535,14 +54673,14 @@ var siteSettings = (0, import_sanity27.defineType)({
54535
54673
  ]
54536
54674
  }),
54537
54675
  /* ─── Footer ─── */
54538
- (0, import_sanity27.defineField)({
54676
+ (0, import_sanity29.defineField)({
54539
54677
  name: "footer",
54540
54678
  title: "Pie de p\xE1gina",
54541
54679
  type: "object",
54542
54680
  fields: [
54543
- (0, import_sanity27.defineField)({ name: "text", title: "Texto del pie / copyright", type: "string" }),
54544
- (0, import_sanity27.defineField)({ name: "description", title: "Descripci\xF3n del pie (variante columnas)", type: "string" }),
54545
- (0, import_sanity27.defineField)({
54681
+ (0, import_sanity29.defineField)({ name: "text", title: "Texto del pie / copyright", type: "string" }),
54682
+ (0, import_sanity29.defineField)({ name: "description", title: "Descripci\xF3n del pie (variante columnas)", type: "string" }),
54683
+ (0, import_sanity29.defineField)({
54546
54684
  name: "links",
54547
54685
  title: "Enlaces del pie",
54548
54686
  type: "array",
@@ -54550,14 +54688,14 @@ var siteSettings = (0, import_sanity27.defineType)({
54550
54688
  {
54551
54689
  type: "object",
54552
54690
  fields: [
54553
- (0, import_sanity27.defineField)({ name: "label", title: "Etiqueta", type: "string" }),
54554
- (0, import_sanity27.defineField)({ name: "href", title: "Href", type: "string" })
54691
+ (0, import_sanity29.defineField)({ name: "label", title: "Etiqueta", type: "string" }),
54692
+ (0, import_sanity29.defineField)({ name: "href", title: "Href", type: "string" })
54555
54693
  ],
54556
54694
  preview: { select: { title: "label", subtitle: "href" } }
54557
54695
  }
54558
54696
  ]
54559
54697
  }),
54560
- (0, import_sanity27.defineField)({
54698
+ (0, import_sanity29.defineField)({
54561
54699
  name: "columns",
54562
54700
  title: "Columnas de enlaces (variante columnas)",
54563
54701
  type: "array",
@@ -54565,8 +54703,8 @@ var siteSettings = (0, import_sanity27.defineType)({
54565
54703
  {
54566
54704
  type: "object",
54567
54705
  fields: [
54568
- (0, import_sanity27.defineField)({ name: "title", title: "T\xEDtulo de columna", type: "string" }),
54569
- (0, import_sanity27.defineField)({
54706
+ (0, import_sanity29.defineField)({ name: "title", title: "T\xEDtulo de columna", type: "string" }),
54707
+ (0, import_sanity29.defineField)({
54570
54708
  name: "links",
54571
54709
  title: "Enlaces",
54572
54710
  type: "array",
@@ -54574,8 +54712,8 @@ var siteSettings = (0, import_sanity27.defineType)({
54574
54712
  {
54575
54713
  type: "object",
54576
54714
  fields: [
54577
- (0, import_sanity27.defineField)({ name: "label", title: "Etiqueta", type: "string" }),
54578
- (0, import_sanity27.defineField)({ name: "href", title: "Href", type: "string" })
54715
+ (0, import_sanity29.defineField)({ name: "label", title: "Etiqueta", type: "string" }),
54716
+ (0, import_sanity29.defineField)({ name: "href", title: "Href", type: "string" })
54579
54717
  ],
54580
54718
  preview: { select: { title: "label", subtitle: "href" } }
54581
54719
  }