@zekidev/schemas 2.0.0 → 2.2.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 +669 -589
  2. package/dist/index.js +644 -564
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -558,7 +558,7 @@ var require_react_development = __commonJS({
558
558
  pureComponentPrototype.constructor = PureComponent;
559
559
  assign(pureComponentPrototype, Component.prototype);
560
560
  pureComponentPrototype.isPureReactComponent = true;
561
- function createRef2() {
561
+ function createRef() {
562
562
  var refObject = {
563
563
  current: null
564
564
  };
@@ -782,7 +782,7 @@ var require_react_development = __commonJS({
782
782
  }
783
783
  return element;
784
784
  };
785
- function createElement2(type, config, children) {
785
+ function createElement(type, config, children) {
786
786
  var propName;
787
787
  var props = {};
788
788
  var key = null;
@@ -1304,7 +1304,7 @@ var require_react_development = __commonJS({
1304
1304
  }
1305
1305
  return false;
1306
1306
  }
1307
- function memo2(type, compare) {
1307
+ function memo(type, compare) {
1308
1308
  {
1309
1309
  if (!isValidElementType(type)) {
1310
1310
  error("memo: The first argument must be a component. Instead received: %s", type === null ? "null" : typeof type);
@@ -1380,7 +1380,7 @@ var require_react_development = __commonJS({
1380
1380
  var dispatcher = resolveDispatcher();
1381
1381
  return dispatcher.useLayoutEffect(create, deps);
1382
1382
  }
1383
- function useCallback2(callback, deps) {
1383
+ function useCallback3(callback, deps) {
1384
1384
  var dispatcher = resolveDispatcher();
1385
1385
  return dispatcher.useCallback(callback, deps);
1386
1386
  }
@@ -1881,7 +1881,7 @@ var require_react_development = __commonJS({
1881
1881
  error("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", typeString, info);
1882
1882
  }
1883
1883
  }
1884
- var element = createElement2.apply(this, arguments);
1884
+ var element = createElement.apply(this, arguments);
1885
1885
  if (element == null) {
1886
1886
  return element;
1887
1887
  }
@@ -2140,14 +2140,14 @@ var require_react_development = __commonJS({
2140
2140
  exports.createContext = createContext2;
2141
2141
  exports.createElement = createElement$1;
2142
2142
  exports.createFactory = createFactory;
2143
- exports.createRef = createRef2;
2143
+ exports.createRef = createRef;
2144
2144
  exports.forwardRef = forwardRef2;
2145
2145
  exports.isValidElement = isValidElement;
2146
2146
  exports.lazy = lazy;
2147
- exports.memo = memo2;
2147
+ exports.memo = memo;
2148
2148
  exports.startTransition = startTransition;
2149
2149
  exports.unstable_act = act;
2150
- exports.useCallback = useCallback2;
2150
+ exports.useCallback = useCallback3;
2151
2151
  exports.useContext = useContext2;
2152
2152
  exports.useDebugValue = useDebugValue2;
2153
2153
  exports.useDeferredValue = useDeferredValue;
@@ -9513,9 +9513,9 @@ var require_react_dom_development = __commonJS({
9513
9513
  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === "function") {
9514
9514
  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
9515
9515
  }
9516
- var React6 = require_react();
9516
+ var React7 = require_react();
9517
9517
  var Scheduler = require_scheduler();
9518
- var ReactSharedInternals = React6.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
9518
+ var ReactSharedInternals = React7.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
9519
9519
  var suppressWarning = false;
9520
9520
  function setSuppressWarning(newSuppressWarning) {
9521
9521
  {
@@ -10885,7 +10885,7 @@ var require_react_dom_development = __commonJS({
10885
10885
  if (node.hasOwnProperty(valueField) || typeof descriptor === "undefined" || typeof descriptor.get !== "function" || typeof descriptor.set !== "function") {
10886
10886
  return;
10887
10887
  }
10888
- var get3 = descriptor.get, set3 = descriptor.set;
10888
+ var get3 = descriptor.get, set4 = descriptor.set;
10889
10889
  Object.defineProperty(node, valueField, {
10890
10890
  configurable: true,
10891
10891
  get: function() {
@@ -10896,7 +10896,7 @@ var require_react_dom_development = __commonJS({
10896
10896
  checkFormFieldValueStringCoercion(value);
10897
10897
  }
10898
10898
  currentValue = "" + value;
10899
- set3.call(this, value);
10899
+ set4.call(this, value);
10900
10900
  }
10901
10901
  });
10902
10902
  Object.defineProperty(node, valueField, {
@@ -11122,7 +11122,7 @@ var require_react_dom_development = __commonJS({
11122
11122
  {
11123
11123
  if (props.value == null) {
11124
11124
  if (typeof props.children === "object" && props.children !== null) {
11125
- React6.Children.forEach(props.children, function(child) {
11125
+ React7.Children.forEach(props.children, function(child) {
11126
11126
  if (child == null) {
11127
11127
  return;
11128
11128
  }
@@ -12811,7 +12811,7 @@ var require_react_dom_development = __commonJS({
12811
12811
  function has(key) {
12812
12812
  return key._reactInternals !== void 0;
12813
12813
  }
12814
- function set2(key, value) {
12814
+ function set3(key, value) {
12815
12815
  key._reactInternals = value;
12816
12816
  }
12817
12817
  var NoFlags = (
@@ -13944,14 +13944,14 @@ var require_react_dom_development = __commonJS({
13944
13944
  function includesSomeLane(a, b) {
13945
13945
  return (a & b) !== NoLanes;
13946
13946
  }
13947
- function isSubsetOfLanes(set3, subset) {
13948
- return (set3 & subset) === subset;
13947
+ function isSubsetOfLanes(set4, subset) {
13948
+ return (set4 & subset) === subset;
13949
13949
  }
13950
13950
  function mergeLanes(a, b) {
13951
13951
  return a | b;
13952
13952
  }
13953
- function removeLanes(set3, subset) {
13954
- return set3 & ~subset;
13953
+ function removeLanes(set4, subset) {
13954
+ return set4 & ~subset;
13955
13955
  }
13956
13956
  function intersectLanes(a, b) {
13957
13957
  return a & b;
@@ -16546,7 +16546,7 @@ var require_react_dom_development = __commonJS({
16546
16546
  }
16547
16547
  }
16548
16548
  }
16549
- function createElement2(type, props, rootContainerElement, parentNamespace) {
16549
+ function createElement(type, props, rootContainerElement, parentNamespace) {
16550
16550
  var isCustomComponentTag;
16551
16551
  var ownerDocument = getOwnerDocumentFromRootContainer(rootContainerElement);
16552
16552
  var domElement;
@@ -17416,7 +17416,7 @@ var require_react_dom_development = __commonJS({
17416
17416
  }
17417
17417
  parentNamespace = hostContextDev.namespace;
17418
17418
  }
17419
- var domElement = createElement2(type, props, rootContainerInstance, parentNamespace);
17419
+ var domElement = createElement(type, props, rootContainerInstance, parentNamespace);
17420
17420
  precacheFiberNode(internalInstanceHandle, domElement);
17421
17421
  updateFiberProps(domElement, props);
17422
17422
  return domElement;
@@ -18753,9 +18753,9 @@ var require_react_dom_development = __commonJS({
18753
18753
  }
18754
18754
  return maybeStrictRoot;
18755
18755
  };
18756
- var setToSortedString = function(set3) {
18756
+ var setToSortedString = function(set4) {
18757
18757
  var array = [];
18758
- set3.forEach(function(value) {
18758
+ set4.forEach(function(value) {
18759
18759
  array.push(value);
18760
18760
  });
18761
18761
  return array.sort().join(", ");
@@ -20504,11 +20504,11 @@ var require_react_dom_development = __commonJS({
20504
20504
  }
20505
20505
  function registerMutableSourceForHydration(root2, mutableSource) {
20506
20506
  var getVersion = mutableSource._getVersion;
20507
- var version2 = getVersion(mutableSource._source);
20507
+ var version = getVersion(mutableSource._source);
20508
20508
  if (root2.mutableSourceEagerHydrationData == null) {
20509
- root2.mutableSourceEagerHydrationData = [mutableSource, version2];
20509
+ root2.mutableSourceEagerHydrationData = [mutableSource, version];
20510
20510
  } else {
20511
- root2.mutableSourceEagerHydrationData.push(mutableSource, version2);
20511
+ root2.mutableSourceEagerHydrationData.push(mutableSource, version);
20512
20512
  }
20513
20513
  }
20514
20514
  var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher, ReactCurrentBatchConfig$2 = ReactSharedInternals.ReactCurrentBatchConfig;
@@ -22718,7 +22718,7 @@ var require_react_dom_development = __commonJS({
22718
22718
  function adoptClassInstance(workInProgress2, instance) {
22719
22719
  instance.updater = classComponentUpdater;
22720
22720
  workInProgress2.stateNode = instance;
22721
- set2(instance, workInProgress2);
22721
+ set3(instance, workInProgress2);
22722
22722
  {
22723
22723
  instance._reactInternalInstance = fakeInternalInstance;
22724
22724
  }
@@ -30740,7 +30740,7 @@ var ctaButton = defineType({
30740
30740
  });
30741
30741
 
30742
30742
  // ../../apps/studio/schemas/sections/hero.ts
30743
- import { defineField as defineField2, defineType as defineType2 } from "sanity";
30743
+ import { defineField as defineField3, defineType as defineType2 } from "sanity";
30744
30744
 
30745
30745
  // ../../apps/studio/components/tiptap-editor.tsx
30746
30746
  var import_react2 = __toESM(require_react());
@@ -31257,21 +31257,21 @@ var Mark = class _Mark {
31257
31257
  [exclusive](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) with this mark are present,
31258
31258
  those are replaced by this one.
31259
31259
  */
31260
- addToSet(set2) {
31260
+ addToSet(set3) {
31261
31261
  let copy2, placed = false;
31262
- for (let i = 0; i < set2.length; i++) {
31263
- let other = set2[i];
31262
+ for (let i = 0; i < set3.length; i++) {
31263
+ let other = set3[i];
31264
31264
  if (this.eq(other))
31265
- return set2;
31265
+ return set3;
31266
31266
  if (this.type.excludes(other.type)) {
31267
31267
  if (!copy2)
31268
- copy2 = set2.slice(0, i);
31268
+ copy2 = set3.slice(0, i);
31269
31269
  } else if (other.type.excludes(this.type)) {
31270
- return set2;
31270
+ return set3;
31271
31271
  } else {
31272
31272
  if (!placed && other.type.rank > this.type.rank) {
31273
31273
  if (!copy2)
31274
- copy2 = set2.slice(0, i);
31274
+ copy2 = set3.slice(0, i);
31275
31275
  copy2.push(this);
31276
31276
  placed = true;
31277
31277
  }
@@ -31280,7 +31280,7 @@ var Mark = class _Mark {
31280
31280
  }
31281
31281
  }
31282
31282
  if (!copy2)
31283
- copy2 = set2.slice();
31283
+ copy2 = set3.slice();
31284
31284
  if (!placed)
31285
31285
  copy2.push(this);
31286
31286
  return copy2;
@@ -31289,18 +31289,18 @@ var Mark = class _Mark {
31289
31289
  Remove this mark from the given set, returning a new set. If this
31290
31290
  mark is not in the set, the set itself is returned.
31291
31291
  */
31292
- removeFromSet(set2) {
31293
- for (let i = 0; i < set2.length; i++)
31294
- if (this.eq(set2[i]))
31295
- return set2.slice(0, i).concat(set2.slice(i + 1));
31296
- return set2;
31292
+ removeFromSet(set3) {
31293
+ for (let i = 0; i < set3.length; i++)
31294
+ if (this.eq(set3[i]))
31295
+ return set3.slice(0, i).concat(set3.slice(i + 1));
31296
+ return set3;
31297
31297
  }
31298
31298
  /**
31299
31299
  Test whether this mark is in the given set of marks.
31300
31300
  */
31301
- isInSet(set2) {
31302
- for (let i = 0; i < set2.length; i++)
31303
- if (this.eq(set2[i]))
31301
+ isInSet(set3) {
31302
+ for (let i = 0; i < set3.length; i++)
31303
+ if (this.eq(set3[i]))
31304
31304
  return true;
31305
31305
  return false;
31306
31306
  }
@@ -32717,15 +32717,15 @@ function dfa(nfa2) {
32717
32717
  nfa2[node].forEach(({ term, to }) => {
32718
32718
  if (!term)
32719
32719
  return;
32720
- let set2;
32720
+ let set3;
32721
32721
  for (let i = 0; i < out.length; i++)
32722
32722
  if (out[i][0] == term)
32723
- set2 = out[i][1];
32723
+ set3 = out[i][1];
32724
32724
  nullFrom(nfa2, to).forEach((node2) => {
32725
- if (!set2)
32726
- out.push([term, set2 = []]);
32727
- if (set2.indexOf(node2) == -1)
32728
- set2.push(node2);
32725
+ if (!set3)
32726
+ out.push([term, set3 = []]);
32727
+ if (set3.indexOf(node2) == -1)
32728
+ set3.push(node2);
32729
32729
  });
32730
32730
  });
32731
32731
  });
@@ -33053,21 +33053,21 @@ var MarkType = class _MarkType {
33053
33053
  When there is a mark of this type in the given set, a new set
33054
33054
  without it is returned. Otherwise, the input set is returned.
33055
33055
  */
33056
- removeFromSet(set2) {
33057
- for (var i = 0; i < set2.length; i++)
33058
- if (set2[i].type == this) {
33059
- set2 = set2.slice(0, i).concat(set2.slice(i + 1));
33056
+ removeFromSet(set3) {
33057
+ for (var i = 0; i < set3.length; i++)
33058
+ if (set3[i].type == this) {
33059
+ set3 = set3.slice(0, i).concat(set3.slice(i + 1));
33060
33060
  i--;
33061
33061
  }
33062
- return set2;
33062
+ return set3;
33063
33063
  }
33064
33064
  /**
33065
33065
  Tests whether there is a mark of this type in the given set.
33066
33066
  */
33067
- isInSet(set2) {
33068
- for (let i = 0; i < set2.length; i++)
33069
- if (set2[i].type == this)
33070
- return set2[i];
33067
+ isInSet(set3) {
33068
+ for (let i = 0; i < set3.length; i++)
33069
+ if (set3[i].type == this)
33070
+ return set3[i];
33071
33071
  }
33072
33072
  /**
33073
33073
  @internal
@@ -34820,10 +34820,10 @@ function removeMark(tr2, from2, to, mark) {
34820
34820
  step++;
34821
34821
  let toRemove = null;
34822
34822
  if (mark instanceof MarkType) {
34823
- let set2 = node.marks, found2;
34824
- while (found2 = mark.isInSet(set2)) {
34823
+ let set3 = node.marks, found2;
34824
+ while (found2 = mark.isInSet(set3)) {
34825
34825
  (toRemove || (toRemove = [])).push(found2);
34826
- set2 = found2.removeFromSet(set2);
34826
+ set3 = found2.removeFromSet(set3);
34827
34827
  }
34828
34828
  } else if (mark) {
34829
34829
  if (mark.isInSet(node.marks))
@@ -35875,10 +35875,10 @@ var Transform = class {
35875
35875
  if (mark.isInSet(node.marks))
35876
35876
  this.step(new RemoveNodeMarkStep(pos, mark));
35877
35877
  } else {
35878
- let set2 = node.marks, found2, steps = [];
35879
- while (found2 = mark.isInSet(set2)) {
35878
+ let set3 = node.marks, found2, steps = [];
35879
+ while (found2 = mark.isInSet(set3)) {
35880
35880
  steps.push(new RemoveNodeMarkStep(pos, found2));
35881
- set2 = found2.removeFromSet(set2);
35881
+ set3 = found2.removeFromSet(set3);
35882
35882
  }
35883
35883
  for (let i = steps.length - 1; i >= 0; i--)
35884
35884
  this.step(steps[i]);
@@ -40826,16 +40826,16 @@ function moveSpans(spans, offset) {
40826
40826
  return result;
40827
40827
  }
40828
40828
  function mapAndGatherRemainingDecorations(children, oldChildren, decorations, mapping, offset, oldOffset, options) {
40829
- function gather(set2, oldOffset2) {
40830
- for (let i = 0; i < set2.local.length; i++) {
40831
- let mapped = set2.local[i].map(mapping, offset, oldOffset2);
40829
+ function gather(set3, oldOffset2) {
40830
+ for (let i = 0; i < set3.local.length; i++) {
40831
+ let mapped = set3.local[i].map(mapping, offset, oldOffset2);
40832
40832
  if (mapped)
40833
40833
  decorations.push(mapped);
40834
40834
  else if (options.onRemove)
40835
- options.onRemove(set2.local[i].spec);
40835
+ options.onRemove(set3.local[i].spec);
40836
40836
  }
40837
- for (let i = 0; i < set2.children.length; i += 3)
40838
- gather(set2.children[i + 2], set2.children[i] + oldOffset2 + 1);
40837
+ for (let i = 0; i < set3.children.length; i += 3)
40838
+ gather(set3.children[i + 2], set3.children[i] + oldOffset2 + 1);
40839
40839
  }
40840
40840
  for (let i = 0; i < children.length; i += 3)
40841
40841
  if (children[i + 1] == -1)
@@ -42916,7 +42916,7 @@ function sinkListItem(itemType) {
42916
42916
  };
42917
42917
  }
42918
42918
 
42919
- // ../../node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/index.js
42919
+ // ../../node_modules/.pnpm/@tiptap+core@2.11.7_@tiptap+pm@2.11.7/node_modules/@tiptap/core/dist/index.js
42920
42920
  function createChainableState(config) {
42921
42921
  const { state, transaction } = config;
42922
42922
  let { selection } = transaction;
@@ -43864,7 +43864,7 @@ function pasteRulesPlugin(props) {
43864
43864
  dropEvent = event;
43865
43865
  if (!isDroppedFromProseMirror) {
43866
43866
  const dragFromOtherEditor = tiptapDragFromOtherEditor;
43867
- if (dragFromOtherEditor === null || dragFromOtherEditor === void 0 ? void 0 : dragFromOtherEditor.isEditable) {
43867
+ if (dragFromOtherEditor) {
43868
43868
  setTimeout(() => {
43869
43869
  const selection = dragFromOtherEditor.state.selection;
43870
43870
  if (selection) {
@@ -44352,7 +44352,7 @@ var cut = (originRange, targetPos) => ({ editor, tr: tr2 }) => {
44352
44352
  tr2.deleteRange(originRange.from, originRange.to);
44353
44353
  const newPos = tr2.mapping.map(targetPos);
44354
44354
  tr2.insert(newPos, contentSlice.content);
44355
- tr2.setSelection(new TextSelection(tr2.doc.resolve(Math.max(newPos - 1, 0))));
44355
+ tr2.setSelection(new TextSelection(tr2.doc.resolve(newPos - 1)));
44356
44356
  return true;
44357
44357
  };
44358
44358
  var deleteCurrentNode = () => ({ tr: tr2, dispatch }) => {
@@ -44537,9 +44537,6 @@ function isiOS() {
44537
44537
  "iPod"
44538
44538
  ].includes(navigator.platform) || navigator.userAgent.includes("Mac") && "ontouchend" in document;
44539
44539
  }
44540
- function isSafari() {
44541
- return typeof navigator !== "undefined" ? /^((?!chrome|android).)*safari/i.test(navigator.userAgent) : false;
44542
- }
44543
44540
  var focus = (position = null, options = {}) => ({ editor, view, tr: tr2, dispatch }) => {
44544
44541
  options = {
44545
44542
  scrollIntoView: true,
@@ -44552,8 +44549,8 @@ var focus = (position = null, options = {}) => ({ editor, view, tr: tr2, dispatc
44552
44549
  requestAnimationFrame(() => {
44553
44550
  if (!editor.isDestroyed) {
44554
44551
  view.focus();
44555
- if (isSafari() && !isiOS() && !isAndroid()) {
44556
- view.dom.focus({ preventScroll: true });
44552
+ if (options === null || options === void 0 ? void 0 : options.scrollIntoView) {
44553
+ editor.commands.scrollIntoView();
44557
44554
  }
44558
44555
  }
44559
44556
  });
@@ -44706,38 +44703,24 @@ var insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, editor
44706
44703
  ...options
44707
44704
  };
44708
44705
  let content;
44709
- const emitContentError = (error) => {
44706
+ try {
44707
+ content = createNodeFromContent(value, editor.schema, {
44708
+ parseOptions: {
44709
+ preserveWhitespace: "full",
44710
+ ...options.parseOptions
44711
+ },
44712
+ errorOnInvalidContent: (_a = options.errorOnInvalidContent) !== null && _a !== void 0 ? _a : editor.options.enableContentCheck
44713
+ });
44714
+ } catch (e) {
44710
44715
  editor.emit("contentError", {
44711
44716
  editor,
44712
- error,
44717
+ error: e,
44713
44718
  disableCollaboration: () => {
44714
44719
  if (editor.storage.collaboration) {
44715
44720
  editor.storage.collaboration.isDisabled = true;
44716
44721
  }
44717
44722
  }
44718
44723
  });
44719
- };
44720
- const parseOptions = {
44721
- preserveWhitespace: "full",
44722
- ...options.parseOptions
44723
- };
44724
- if (!options.errorOnInvalidContent && !editor.options.enableContentCheck && editor.options.emitContentError) {
44725
- try {
44726
- createNodeFromContent(value, editor.schema, {
44727
- parseOptions,
44728
- errorOnInvalidContent: true
44729
- });
44730
- } catch (e) {
44731
- emitContentError(e);
44732
- }
44733
- }
44734
- try {
44735
- content = createNodeFromContent(value, editor.schema, {
44736
- parseOptions,
44737
- errorOnInvalidContent: (_a = options.errorOnInvalidContent) !== null && _a !== void 0 ? _a : editor.options.enableContentCheck
44738
- });
44739
- } catch (e) {
44740
- emitContentError(e);
44741
44724
  return false;
44742
44725
  }
44743
44726
  let { from: from2, to } = typeof position === "number" ? { from: position, to: position } : { from: position.from, to: position.to };
@@ -46249,9 +46232,6 @@ var NodePos = class _NodePos {
46249
46232
  const isBlock = node.isBlock && !node.isTextblock;
46250
46233
  const isNonTextAtom = node.isAtom && !node.isText;
46251
46234
  const targetPos = this.pos + offset + (isNonTextAtom ? 0 : 1);
46252
- if (targetPos < 0 || targetPos > this.resolvedPos.doc.nodeSize - 2) {
46253
- return;
46254
- }
46255
46235
  const $pos = this.resolvedPos.doc.resolve(targetPos);
46256
46236
  if (!isBlock && $pos.depth <= this.depth) {
46257
46237
  return;
@@ -46438,7 +46418,6 @@ var Editor = class extends EventEmitter {
46438
46418
  enablePasteRules: true,
46439
46419
  enableCoreExtensions: true,
46440
46420
  enableContentCheck: false,
46441
- emitContentError: false,
46442
46421
  onBeforeCreate: () => null,
46443
46422
  onCreate: () => null,
46444
46423
  onUpdate: () => null,
@@ -46580,7 +46559,7 @@ var Editor = class extends EventEmitter {
46580
46559
  let plugins = prevPlugins;
46581
46560
  [].concat(nameOrPluginKeyToRemove).forEach((nameOrPluginKey) => {
46582
46561
  const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
46583
- plugins = plugins.filter((plugin) => !plugin.key.startsWith(name));
46562
+ plugins = prevPlugins.filter((plugin) => !plugin.key.startsWith(name));
46584
46563
  });
46585
46564
  if (prevPlugins.length === plugins.length) {
46586
46565
  return void 0;
@@ -47061,28 +47040,8 @@ function markPasteRule(config) {
47061
47040
  }
47062
47041
  });
47063
47042
  }
47064
- function canInsertNode(state, nodeType) {
47065
- const { selection } = state;
47066
- const { $from } = selection;
47067
- if (selection instanceof NodeSelection) {
47068
- const index = $from.index();
47069
- const parent = $from.parent;
47070
- return parent.canReplaceWith(index, index + 1, nodeType);
47071
- }
47072
- let depth = $from.depth;
47073
- while (depth >= 0) {
47074
- const index = $from.index(depth);
47075
- const parent = $from.node(depth);
47076
- const match = parent.contentMatchAt(index);
47077
- if (match.matchType(nodeType)) {
47078
- return true;
47079
- }
47080
- depth -= 1;
47081
- }
47082
- return false;
47083
- }
47084
47043
 
47085
- // ../../node_modules/.pnpm/@tiptap+react@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2__@tiptap+pm@2.27.2_react-dom@18.3._dapneixe4e7qjjnfvramineoae/node_modules/@tiptap/react/dist/index.js
47044
+ // ../../node_modules/.pnpm/@tiptap+react@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7__@tiptap+pm@2.11.7_react-dom@18.3._anbgcunlwqk5at6s4gn5quxr7a/node_modules/@tiptap/react/dist/index.js
47086
47045
  var import_react = __toESM(require_react(), 1);
47087
47046
  var import_react_dom = __toESM(require_react_dom(), 1);
47088
47047
  function getDefaultExportFromCjs(x) {
@@ -47929,7 +47888,7 @@ var NodeViewWrapper = import_react.default.forwardRef((props, ref) => {
47929
47888
  );
47930
47889
  });
47931
47890
 
47932
- // ../../node_modules/.pnpm/@tiptap+extension-blockquote@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-blockquote/dist/index.js
47891
+ // ../../node_modules/.pnpm/@tiptap+extension-blockquote@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-blockquote/dist/index.js
47933
47892
  var inputRegex = /^\s*>\s$/;
47934
47893
  var Blockquote = Node2.create({
47935
47894
  name: "blockquote",
@@ -47977,7 +47936,7 @@ var Blockquote = Node2.create({
47977
47936
  }
47978
47937
  });
47979
47938
 
47980
- // ../../node_modules/.pnpm/@tiptap+extension-bold@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-bold/dist/index.js
47939
+ // ../../node_modules/.pnpm/@tiptap+extension-bold@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-bold/dist/index.js
47981
47940
  var starInputRegex = /(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/;
47982
47941
  var starPasteRegex = /(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g;
47983
47942
  var underscoreInputRegex = /(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/;
@@ -48056,7 +48015,7 @@ var Bold = Mark2.create({
48056
48015
  }
48057
48016
  });
48058
48017
 
48059
- // ../../node_modules/.pnpm/@tiptap+extension-bullet-list@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-bullet-list/dist/index.js
48018
+ // ../../node_modules/.pnpm/@tiptap+extension-bullet-list@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-bullet-list/dist/index.js
48060
48019
  var ListItemName = "listItem";
48061
48020
  var TextStyleName = "textStyle";
48062
48021
  var inputRegex2 = /^\s*([-+*])\s$/;
@@ -48120,7 +48079,7 @@ var BulletList = Node2.create({
48120
48079
  }
48121
48080
  });
48122
48081
 
48123
- // ../../node_modules/.pnpm/@tiptap+extension-code@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-code/dist/index.js
48082
+ // ../../node_modules/.pnpm/@tiptap+extension-code@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-code/dist/index.js
48124
48083
  var inputRegex3 = /(^|[^`])`([^`]+)`(?!`)/;
48125
48084
  var pasteRegex = /(^|[^`])`([^`]+)`(?!`)/g;
48126
48085
  var Code = Mark2.create({
@@ -48177,7 +48136,7 @@ var Code = Mark2.create({
48177
48136
  }
48178
48137
  });
48179
48138
 
48180
- // ../../node_modules/.pnpm/@tiptap+extension-code-block@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2__@tiptap+pm@2.27.2/node_modules/@tiptap/extension-code-block/dist/index.js
48139
+ // ../../node_modules/.pnpm/@tiptap+extension-code-block@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7__@tiptap+pm@2.11.7/node_modules/@tiptap/extension-code-block/dist/index.js
48181
48140
  var backtickInputRegex = /^```([a-z]+)?[\s\n]$/;
48182
48141
  var tildeInputRegex = /^~~~([a-z]+)?[\s\n]$/;
48183
48142
  var CodeBlock = Node2.create({
@@ -48367,7 +48326,7 @@ var CodeBlock = Node2.create({
48367
48326
  }
48368
48327
  });
48369
48328
 
48370
- // ../../node_modules/.pnpm/@tiptap+extension-document@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-document/dist/index.js
48329
+ // ../../node_modules/.pnpm/@tiptap+extension-document@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-document/dist/index.js
48371
48330
  var Document = Node2.create({
48372
48331
  name: "doc",
48373
48332
  topNode: true,
@@ -48507,7 +48466,7 @@ var DropCursorView = class {
48507
48466
  }
48508
48467
  };
48509
48468
 
48510
- // ../../node_modules/.pnpm/@tiptap+extension-dropcursor@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2__@tiptap+pm@2.27.2/node_modules/@tiptap/extension-dropcursor/dist/index.js
48469
+ // ../../node_modules/.pnpm/@tiptap+extension-dropcursor@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7__@tiptap+pm@2.11.7/node_modules/@tiptap/extension-dropcursor/dist/index.js
48511
48470
  var Dropcursor = Extension.create({
48512
48471
  name: "dropCursor",
48513
48472
  addOptions() {
@@ -48738,7 +48697,7 @@ function drawGapCursor(state) {
48738
48697
  return DecorationSet.create(state.doc, [Decoration.widget(state.selection.head, node, { key: "gapcursor" })]);
48739
48698
  }
48740
48699
 
48741
- // ../../node_modules/.pnpm/@tiptap+extension-gapcursor@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2__@tiptap+pm@2.27.2/node_modules/@tiptap/extension-gapcursor/dist/index.js
48700
+ // ../../node_modules/.pnpm/@tiptap+extension-gapcursor@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7__@tiptap+pm@2.11.7/node_modules/@tiptap/extension-gapcursor/dist/index.js
48742
48701
  var Gapcursor = Extension.create({
48743
48702
  name: "gapCursor",
48744
48703
  addProseMirrorPlugins() {
@@ -48759,7 +48718,7 @@ var Gapcursor = Extension.create({
48759
48718
  }
48760
48719
  });
48761
48720
 
48762
- // ../../node_modules/.pnpm/@tiptap+extension-hard-break@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-hard-break/dist/index.js
48721
+ // ../../node_modules/.pnpm/@tiptap+extension-hard-break@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-hard-break/dist/index.js
48763
48722
  var HardBreak = Node2.create({
48764
48723
  name: "hardBreak",
48765
48724
  addOptions() {
@@ -48816,7 +48775,7 @@ var HardBreak = Node2.create({
48816
48775
  }
48817
48776
  });
48818
48777
 
48819
- // ../../node_modules/.pnpm/@tiptap+extension-heading@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-heading/dist/index.js
48778
+ // ../../node_modules/.pnpm/@tiptap+extension-heading@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-heading/dist/index.js
48820
48779
  var Heading = Node2.create({
48821
48780
  name: "heading",
48822
48781
  addOptions() {
@@ -49420,7 +49379,7 @@ var redo = buildCommand(true, true);
49420
49379
  var undoNoScroll = buildCommand(false, false);
49421
49380
  var redoNoScroll = buildCommand(true, false);
49422
49381
 
49423
- // ../../node_modules/.pnpm/@tiptap+extension-history@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2__@tiptap+pm@2.27.2/node_modules/@tiptap/extension-history/dist/index.js
49382
+ // ../../node_modules/.pnpm/@tiptap+extension-history@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7__@tiptap+pm@2.11.7/node_modules/@tiptap/extension-history/dist/index.js
49424
49383
  var History = Extension.create({
49425
49384
  name: "history",
49426
49385
  addOptions() {
@@ -49456,7 +49415,7 @@ var History = Extension.create({
49456
49415
  }
49457
49416
  });
49458
49417
 
49459
- // ../../node_modules/.pnpm/@tiptap+extension-horizontal-rule@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2__@tiptap+pm@2.27.2/node_modules/@tiptap/extension-horizontal-rule/dist/index.js
49418
+ // ../../node_modules/.pnpm/@tiptap+extension-horizontal-rule@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7__@tiptap+pm@2.11.7/node_modules/@tiptap/extension-horizontal-rule/dist/index.js
49460
49419
  var HorizontalRule = Node2.create({
49461
49420
  name: "horizontalRule",
49462
49421
  addOptions() {
@@ -49474,9 +49433,6 @@ var HorizontalRule = Node2.create({
49474
49433
  addCommands() {
49475
49434
  return {
49476
49435
  setHorizontalRule: () => ({ chain, state }) => {
49477
- if (!canInsertNode(state, state.schema.nodes[this.name])) {
49478
- return false;
49479
- }
49480
49436
  const { selection } = state;
49481
49437
  const { $from: $originFrom, $to: $originTo } = selection;
49482
49438
  const currentChain = chain();
@@ -49531,7 +49487,7 @@ var HorizontalRule = Node2.create({
49531
49487
  }
49532
49488
  });
49533
49489
 
49534
- // ../../node_modules/.pnpm/@tiptap+extension-italic@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-italic/dist/index.js
49490
+ // ../../node_modules/.pnpm/@tiptap+extension-italic@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-italic/dist/index.js
49535
49491
  var starInputRegex2 = /(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/;
49536
49492
  var starPasteRegex2 = /(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g;
49537
49493
  var underscoreInputRegex2 = /(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/;
@@ -49609,7 +49565,7 @@ var Italic = Mark2.create({
49609
49565
  }
49610
49566
  });
49611
49567
 
49612
- // ../../node_modules/.pnpm/@tiptap+extension-list-item@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-list-item/dist/index.js
49568
+ // ../../node_modules/.pnpm/@tiptap+extension-list-item@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-list-item/dist/index.js
49613
49569
  var ListItem = Node2.create({
49614
49570
  name: "listItem",
49615
49571
  addOptions() {
@@ -49640,7 +49596,7 @@ var ListItem = Node2.create({
49640
49596
  }
49641
49597
  });
49642
49598
 
49643
- // ../../node_modules/.pnpm/@tiptap+extension-ordered-list@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-ordered-list/dist/index.js
49599
+ // ../../node_modules/.pnpm/@tiptap+extension-ordered-list@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-ordered-list/dist/index.js
49644
49600
  var ListItemName2 = "listItem";
49645
49601
  var TextStyleName2 = "textStyle";
49646
49602
  var inputRegex4 = /^(\d+)\.\s$/;
@@ -49722,7 +49678,7 @@ var OrderedList = Node2.create({
49722
49678
  }
49723
49679
  });
49724
49680
 
49725
- // ../../node_modules/.pnpm/@tiptap+extension-paragraph@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-paragraph/dist/index.js
49681
+ // ../../node_modules/.pnpm/@tiptap+extension-paragraph@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-paragraph/dist/index.js
49726
49682
  var Paragraph = Node2.create({
49727
49683
  name: "paragraph",
49728
49684
  priority: 1e3,
@@ -49755,7 +49711,7 @@ var Paragraph = Node2.create({
49755
49711
  }
49756
49712
  });
49757
49713
 
49758
- // ../../node_modules/.pnpm/@tiptap+extension-strike@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-strike/dist/index.js
49714
+ // ../../node_modules/.pnpm/@tiptap+extension-strike@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-strike/dist/index.js
49759
49715
  var inputRegex5 = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/;
49760
49716
  var pasteRegex2 = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g;
49761
49717
  var Strike = Mark2.create({
@@ -49822,13 +49778,13 @@ var Strike = Mark2.create({
49822
49778
  }
49823
49779
  });
49824
49780
 
49825
- // ../../node_modules/.pnpm/@tiptap+extension-text@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-text/dist/index.js
49781
+ // ../../node_modules/.pnpm/@tiptap+extension-text@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-text/dist/index.js
49826
49782
  var Text = Node2.create({
49827
49783
  name: "text",
49828
49784
  group: "inline"
49829
49785
  });
49830
49786
 
49831
- // ../../node_modules/.pnpm/@tiptap+starter-kit@2.27.2/node_modules/@tiptap/starter-kit/dist/index.js
49787
+ // ../../node_modules/.pnpm/@tiptap+starter-kit@2.11.7/node_modules/@tiptap/starter-kit/dist/index.js
49832
49788
  var StarterKit = Extension.create({
49833
49789
  name: "starterKit",
49834
49790
  addExtensions() {
@@ -49891,7 +49847,7 @@ var StarterKit = Extension.create({
49891
49847
  }
49892
49848
  });
49893
49849
 
49894
- // ../../node_modules/.pnpm/@tiptap+extension-underline@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-underline/dist/index.js
49850
+ // ../../node_modules/.pnpm/@tiptap+extension-underline@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-underline/dist/index.js
49895
49851
  var Underline = Mark2.create({
49896
49852
  name: "underline",
49897
49853
  addOptions() {
@@ -49935,7 +49891,7 @@ var Underline = Mark2.create({
49935
49891
  }
49936
49892
  });
49937
49893
 
49938
- // ../../node_modules/.pnpm/@tiptap+extension-text-style@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-text-style/dist/index.js
49894
+ // ../../node_modules/.pnpm/@tiptap+extension-text-style@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-text-style/dist/index.js
49939
49895
  var mergeNestedSpanStyles = (element) => {
49940
49896
  if (!element.children.length) {
49941
49897
  return;
@@ -49998,7 +49954,7 @@ var TextStyle = Mark2.create({
49998
49954
  }
49999
49955
  });
50000
49956
 
50001
- // ../../node_modules/.pnpm/@tiptap+extension-color@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2__@tiptap+extension-text-_nwipyjl2zzg6jzm7vhuho2a42m/node_modules/@tiptap/extension-color/dist/index.js
49957
+ // ../../node_modules/.pnpm/@tiptap+extension-color@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7__@tiptap+extension-text-_6inr4ropszdjmgoexhyzt7zmf4/node_modules/@tiptap/extension-color/dist/index.js
50002
49958
  var Color = Extension.create({
50003
49959
  name: "color",
50004
49960
  addOptions() {
@@ -50042,7 +49998,7 @@ var Color = Extension.create({
50042
49998
  }
50043
49999
  });
50044
50000
 
50045
- // ../../node_modules/.pnpm/@tiptap+extension-highlight@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-highlight/dist/index.js
50001
+ // ../../node_modules/.pnpm/@tiptap+extension-highlight@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-highlight/dist/index.js
50046
50002
  var inputRegex6 = /(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))$/;
50047
50003
  var pasteRegex3 = /(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))/g;
50048
50004
  var Highlight = Mark2.create({
@@ -50119,7 +50075,7 @@ var Highlight = Mark2.create({
50119
50075
  }
50120
50076
  });
50121
50077
 
50122
- // ../../node_modules/.pnpm/@tiptap+extension-text-align@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-text-align/dist/index.js
50078
+ // ../../node_modules/.pnpm/@tiptap+extension-text-align@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7_/node_modules/@tiptap/extension-text-align/dist/index.js
50123
50079
  var TextAlign = Extension.create({
50124
50080
  name: "textAlign",
50125
50081
  addOptions() {
@@ -50161,15 +50117,6 @@ var TextAlign = Extension.create({
50161
50117
  },
50162
50118
  unsetTextAlign: () => ({ commands: commands2 }) => {
50163
50119
  return this.options.types.map((type) => commands2.resetAttributes(type, "textAlign")).every((response) => response);
50164
- },
50165
- toggleTextAlign: (alignment) => ({ editor, commands: commands2 }) => {
50166
- if (!this.options.alignments.includes(alignment)) {
50167
- return false;
50168
- }
50169
- if (editor.isActive({ textAlign: alignment })) {
50170
- return commands2.unsetTextAlign();
50171
- }
50172
- return commands2.setTextAlign(alignment);
50173
50120
  }
50174
50121
  };
50175
50122
  },
@@ -51330,11 +51277,7 @@ function find(str, type = null, opts = null) {
51330
51277
  return filtered;
51331
51278
  }
51332
51279
 
51333
- // ../../node_modules/.pnpm/@tiptap+extension-link@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2__@tiptap+pm@2.27.2/node_modules/@tiptap/extension-link/dist/index.js
51334
- var UNICODE_WHITESPACE_PATTERN = "[\0- \xA0\u1680\u180E\u2000-\u2029\u205F\u3000]";
51335
- var UNICODE_WHITESPACE_REGEX = new RegExp(UNICODE_WHITESPACE_PATTERN);
51336
- var UNICODE_WHITESPACE_REGEX_END = new RegExp(`${UNICODE_WHITESPACE_PATTERN}$`);
51337
- var UNICODE_WHITESPACE_REGEX_GLOBAL = new RegExp(UNICODE_WHITESPACE_PATTERN, "g");
51280
+ // ../../node_modules/.pnpm/@tiptap+extension-link@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7__@tiptap+pm@2.11.7/node_modules/@tiptap/extension-link/dist/index.js
51338
51281
  function isValidLinkStructure(tokens) {
51339
51282
  if (tokens.length === 1) {
51340
51283
  return tokens[0].isLink;
@@ -51363,16 +51306,12 @@ function autolink(options) {
51363
51306
  if (nodesInChangedRanges.length > 1) {
51364
51307
  textBlock = nodesInChangedRanges[0];
51365
51308
  textBeforeWhitespace = newState.doc.textBetween(textBlock.pos, textBlock.pos + textBlock.node.nodeSize, void 0, " ");
51366
- } else if (nodesInChangedRanges.length) {
51367
- const endText = newState.doc.textBetween(newRange.from, newRange.to, " ", " ");
51368
- if (!UNICODE_WHITESPACE_REGEX_END.test(endText)) {
51369
- return;
51370
- }
51309
+ } else if (nodesInChangedRanges.length && newState.doc.textBetween(newRange.from, newRange.to, " ", " ").endsWith(" ")) {
51371
51310
  textBlock = nodesInChangedRanges[0];
51372
51311
  textBeforeWhitespace = newState.doc.textBetween(textBlock.pos, newRange.to, void 0, " ");
51373
51312
  }
51374
51313
  if (textBlock && textBeforeWhitespace) {
51375
- const wordsBeforeWhitespace = textBeforeWhitespace.split(UNICODE_WHITESPACE_REGEX).filter(Boolean);
51314
+ const wordsBeforeWhitespace = textBeforeWhitespace.split(" ").filter((s) => s !== "");
51376
51315
  if (wordsBeforeWhitespace.length <= 0) {
51377
51316
  return false;
51378
51317
  }
@@ -51471,6 +51410,7 @@ function pasteHandler(options) {
51471
51410
  }
51472
51411
  });
51473
51412
  }
51413
+ var ATTR_WHITESPACE = /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g;
51474
51414
  function isAllowedUri(uri, protocols) {
51475
51415
  const allowedProtocols = [
51476
51416
  "http",
@@ -51492,7 +51432,7 @@ function isAllowedUri(uri, protocols) {
51492
51432
  }
51493
51433
  });
51494
51434
  }
51495
- return !uri || uri.replace(UNICODE_WHITESPACE_REGEX_GLOBAL, "").match(new RegExp(
51435
+ return !uri || uri.replace(ATTR_WHITESPACE, "").match(new RegExp(
51496
51436
  // eslint-disable-next-line no-useless-escape
51497
51437
  `^(?:(?:${allowedProtocols.join("|")}):|[^a-z]|[a-z0-9+.-]+(?:[^a-z+.-:]|$))`,
51498
51438
  "i"
@@ -51684,7 +51624,7 @@ var Link = Mark2.create({
51684
51624
  }
51685
51625
  });
51686
51626
 
51687
- // ../../node_modules/.pnpm/@tiptap+extension-placeholder@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2__@tiptap+pm@2.27.2/node_modules/@tiptap/extension-placeholder/dist/index.js
51627
+ // ../../node_modules/.pnpm/@tiptap+extension-placeholder@2.11.7_@tiptap+core@2.11.7_@tiptap+pm@2.11.7__@tiptap+pm@2.11.7/node_modules/@tiptap/extension-placeholder/dist/index.js
51688
51628
  var Placeholder = Extension.create({
51689
51629
  name: "placeholder",
51690
51630
  addOptions() {
@@ -52018,13 +51958,54 @@ function TipTapEditor({ value, onChange, readOnly }) {
52018
51958
  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 })));
52019
51959
  }
52020
51960
 
51961
+ // ../../apps/studio/schemas/shared/section-media-fields.ts
51962
+ import { defineField as defineField2 } from "sanity";
51963
+ var sectionMediaFields = [
51964
+ defineField2({
51965
+ name: "backgroundImage",
51966
+ title: "Imagen de fondo",
51967
+ type: "image",
51968
+ options: { hotspot: true },
51969
+ fields: [
51970
+ defineField2({
51971
+ name: "alt",
51972
+ title: "Descripci\xF3n (accesibilidad)",
51973
+ type: "string"
51974
+ })
51975
+ ]
51976
+ }),
51977
+ defineField2({
51978
+ name: "backgroundVideoUrl",
51979
+ title: "Video de fondo (URL .mp4)",
51980
+ type: "string",
51981
+ description: "URL directa a un archivo .mp4. No se reproduce en mobile \u2014 se recomienda agregar tambi\xE9n una imagen de fondo como poster."
51982
+ }),
51983
+ defineField2({
51984
+ name: "backgroundOverlay",
51985
+ title: "Overlay oscurecedor (%)",
51986
+ type: "number",
51987
+ description: "Oscurece el fondo para mejorar la legibilidad del texto sobre im\xE1genes o videos (0 = sin overlay, 80 = muy oscuro).",
51988
+ initialValue: 0,
51989
+ validation: (r) => r.min(0).max(100),
51990
+ hidden: ({ parent }) => !parent?.backgroundImage && !parent?.backgroundVideoUrl
51991
+ }),
51992
+ defineField2({
51993
+ name: "animate",
51994
+ title: "Animaci\xF3n de entrada",
51995
+ type: "boolean",
51996
+ description: "La secci\xF3n aparece con una animaci\xF3n fade-up suave al hacer scroll.",
51997
+ initialValue: false
51998
+ })
51999
+ ];
52000
+
52021
52001
  // ../../apps/studio/schemas/sections/hero.ts
52022
52002
  var heroSection = defineType2({
52023
52003
  name: "hero",
52024
52004
  title: "Hero",
52025
52005
  type: "object",
52026
52006
  fields: [
52027
- defineField2({
52007
+ ...sectionMediaFields,
52008
+ defineField3({
52028
52009
  name: "variant",
52029
52010
  title: "Variante",
52030
52011
  type: "string",
@@ -52043,20 +52024,20 @@ var heroSection = defineType2({
52043
52024
  initialValue: "centered",
52044
52025
  validation: (r) => r.required()
52045
52026
  }),
52046
- defineField2({ name: "badge", title: "Badge / Etiqueta superior", type: "string" }),
52047
- defineField2({ name: "subheading", title: "Subt\xEDtulo", type: "string" }),
52048
- defineField2({ name: "heading", title: "T\xEDtulo principal", type: "string", validation: (r) => r.required() }),
52049
- defineField2({ name: "description", title: "Descripci\xF3n / Texto secundario", type: "text", rows: 3 }),
52050
- defineField2({
52027
+ defineField3({ name: "badge", title: "Badge / Etiqueta superior", type: "string" }),
52028
+ defineField3({ name: "subheading", title: "Subt\xEDtulo", type: "string" }),
52029
+ defineField3({ name: "heading", title: "T\xEDtulo principal", type: "string", validation: (r) => r.required() }),
52030
+ defineField3({ name: "description", title: "Descripci\xF3n / Texto secundario", type: "text", rows: 3 }),
52031
+ defineField3({
52051
52032
  name: "content",
52052
52033
  title: "Contenido",
52053
52034
  type: "text",
52054
52035
  description: "Texto enriquecido opcional que se muestra debajo de la descripci\xF3n.",
52055
52036
  components: { input: TipTapEditor }
52056
52037
  }),
52057
- defineField2({ name: "primaryCTA", title: "Bot\xF3n CTA primario", type: "ctaButton" }),
52058
- defineField2({ name: "secondaryCTA", title: "Bot\xF3n CTA secundario", type: "ctaButton" }),
52059
- defineField2({
52038
+ defineField3({ name: "primaryCTA", title: "Bot\xF3n CTA primario", type: "ctaButton" }),
52039
+ defineField3({ name: "secondaryCTA", title: "Bot\xF3n CTA secundario", type: "ctaButton" }),
52040
+ defineField3({
52060
52041
  name: "image",
52061
52042
  title: "Imagen",
52062
52043
  description: "No se usa cuando la variante es 'Video de fondo'.",
@@ -52064,10 +52045,10 @@ var heroSection = defineType2({
52064
52045
  hidden: ({ parent }) => parent?.variant === "video",
52065
52046
  options: { hotspot: true },
52066
52047
  fields: [
52067
- defineField2({ name: "alt", title: "Texto alternativo", type: "string" })
52048
+ defineField3({ name: "alt", title: "Texto alternativo", type: "string" })
52068
52049
  ]
52069
52050
  }),
52070
- defineField2({
52051
+ defineField3({
52071
52052
  name: "videoPoster",
52072
52053
  title: "Poster del video (miniatura mientras carga)",
52073
52054
  description: "Se muestra antes de que el video comience a reproducirse.",
@@ -52075,11 +52056,11 @@ var heroSection = defineType2({
52075
52056
  hidden: ({ parent }) => parent?.variant !== "video" && parent?.variant !== "card",
52076
52057
  options: { hotspot: true },
52077
52058
  fields: [
52078
- defineField2({ name: "alt", title: "Texto alternativo", type: "string" })
52059
+ defineField3({ name: "alt", title: "Texto alternativo", type: "string" })
52079
52060
  ]
52080
52061
  }),
52081
52062
  /* ── Video: upload a file OR paste an external URL ── */
52082
- defineField2({
52063
+ defineField3({
52083
52064
  name: "videoFile",
52084
52065
  title: "Video \u2014 subir archivo (MP4/WebM)",
52085
52066
  description: "Subir directamente a Sanity. Tiene prioridad sobre la URL externa de abajo.",
@@ -52087,14 +52068,14 @@ var heroSection = defineType2({
52087
52068
  hidden: ({ parent }) => parent?.variant !== "video" && parent?.variant !== "card",
52088
52069
  options: { accept: "video/mp4,video/webm,video/*" }
52089
52070
  }),
52090
- defineField2({
52071
+ defineField3({
52091
52072
  name: "videoUrl",
52092
52073
  title: "Video \u2014 URL externa",
52093
52074
  description: "Peg\xE1 una URL directa de .mp4 / .webm (Cloudinary, S3, Vimeo link directo, etc.). Solo se usa si no hay archivo subido arriba.",
52094
52075
  type: "url",
52095
52076
  hidden: ({ parent }) => parent?.variant !== "video" && parent?.variant !== "card"
52096
52077
  }),
52097
- defineField2({
52078
+ defineField3({
52098
52079
  name: "overlayOpacity",
52099
52080
  title: "Opacidad del overlay de video / imagen %",
52100
52081
  description: "Usado en las variantes de video y fondo. 0 = sin overlay, 100 = completamente opaco.",
@@ -52102,7 +52083,7 @@ var heroSection = defineType2({
52102
52083
  initialValue: 50,
52103
52084
  validation: (r) => r.min(0).max(100)
52104
52085
  }),
52105
- defineField2({
52086
+ defineField3({
52106
52087
  name: "background",
52107
52088
  title: "Fondo",
52108
52089
  type: "string",
@@ -52121,7 +52102,7 @@ var heroSection = defineType2({
52121
52102
  },
52122
52103
  initialValue: "default"
52123
52104
  }),
52124
- defineField2({ 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.' })
52105
+ defineField3({ 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.' })
52125
52106
  ],
52126
52107
  preview: {
52127
52108
  select: { title: "heading", subtitle: "variant" },
@@ -52132,13 +52113,14 @@ var heroSection = defineType2({
52132
52113
  });
52133
52114
 
52134
52115
  // ../../apps/studio/schemas/sections/faq.ts
52135
- import { defineField as defineField3, defineType as defineType3 } from "sanity";
52116
+ import { defineField as defineField4, defineType as defineType3 } from "sanity";
52136
52117
  var faqSection = defineType3({
52137
52118
  name: "faq",
52138
52119
  title: "FAQ",
52139
52120
  type: "object",
52140
52121
  fields: [
52141
- defineField3({
52122
+ ...sectionMediaFields,
52123
+ defineField4({
52142
52124
  name: "variant",
52143
52125
  title: "Variante",
52144
52126
  type: "string",
@@ -52154,17 +52136,17 @@ var faqSection = defineType3({
52154
52136
  initialValue: "accordion",
52155
52137
  validation: (r) => r.required()
52156
52138
  }),
52157
- defineField3({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52158
- defineField3({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52159
- defineField3({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52160
- defineField3({
52139
+ defineField4({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52140
+ defineField4({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52141
+ defineField4({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52142
+ defineField4({
52161
52143
  name: "content",
52162
52144
  title: "Contenido",
52163
52145
  type: "text",
52164
52146
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52165
52147
  components: { input: TipTapEditor }
52166
52148
  }),
52167
- defineField3({
52149
+ defineField4({
52168
52150
  name: "items",
52169
52151
  title: "Elementos FAQ",
52170
52152
  type: "array",
@@ -52172,16 +52154,16 @@ var faqSection = defineType3({
52172
52154
  {
52173
52155
  type: "object",
52174
52156
  fields: [
52175
- defineField3({ name: "question", title: "Pregunta", type: "string", validation: (r) => r.required() }),
52176
- defineField3({ name: "answer", title: "Respuesta", type: "text", rows: 3, validation: (r) => r.required() })
52157
+ defineField4({ name: "question", title: "Pregunta", type: "string", validation: (r) => r.required() }),
52158
+ defineField4({ name: "answer", title: "Respuesta", type: "text", rows: 3, validation: (r) => r.required() })
52177
52159
  ],
52178
52160
  preview: { select: { title: "question" } }
52179
52161
  }
52180
52162
  ],
52181
52163
  validation: (r) => r.required().min(1)
52182
52164
  }),
52183
- defineField3({ name: "cta", title: "Bot\xF3n CTA (opcional)", type: "ctaButton" }),
52184
- defineField3({
52165
+ defineField4({ name: "cta", title: "Bot\xF3n CTA (opcional)", type: "ctaButton" }),
52166
+ defineField4({
52185
52167
  name: "background",
52186
52168
  title: "Fondo",
52187
52169
  type: "string",
@@ -52197,7 +52179,7 @@ var faqSection = defineType3({
52197
52179
  ], layout: "radio" },
52198
52180
  initialValue: "default"
52199
52181
  }),
52200
- defineField3({ 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.' })
52182
+ defineField4({ 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.' })
52201
52183
  ],
52202
52184
  preview: {
52203
52185
  select: { title: "title", subtitle: "variant" },
@@ -52208,13 +52190,14 @@ var faqSection = defineType3({
52208
52190
  });
52209
52191
 
52210
52192
  // ../../apps/studio/schemas/sections/gallery.ts
52211
- import { defineField as defineField4, defineType as defineType4 } from "sanity";
52193
+ import { defineField as defineField5, defineType as defineType4 } from "sanity";
52212
52194
  var gallerySection = defineType4({
52213
52195
  name: "gallery",
52214
52196
  title: "Galer\xEDa",
52215
52197
  type: "object",
52216
52198
  fields: [
52217
- defineField4({
52199
+ ...sectionMediaFields,
52200
+ defineField5({
52218
52201
  name: "variant",
52219
52202
  title: "Variante",
52220
52203
  type: "string",
@@ -52229,17 +52212,17 @@ var gallerySection = defineType4({
52229
52212
  initialValue: "grid",
52230
52213
  validation: (r) => r.required()
52231
52214
  }),
52232
- defineField4({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52233
- defineField4({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52234
- defineField4({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52235
- defineField4({
52215
+ defineField5({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52216
+ defineField5({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52217
+ defineField5({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52218
+ defineField5({
52236
52219
  name: "content",
52237
52220
  title: "Contenido",
52238
52221
  type: "text",
52239
52222
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52240
52223
  components: { input: TipTapEditor }
52241
52224
  }),
52242
- defineField4({
52225
+ defineField5({
52243
52226
  name: "columns",
52244
52227
  title: "Columnas",
52245
52228
  type: "number",
@@ -52253,7 +52236,7 @@ var gallerySection = defineType4({
52253
52236
  },
52254
52237
  initialValue: 3
52255
52238
  }),
52256
- defineField4({
52239
+ defineField5({
52257
52240
  name: "items",
52258
52241
  title: "Im\xE1genes",
52259
52242
  type: "array",
@@ -52261,24 +52244,24 @@ var gallerySection = defineType4({
52261
52244
  {
52262
52245
  type: "object",
52263
52246
  fields: [
52264
- defineField4({
52247
+ defineField5({
52265
52248
  name: "image",
52266
52249
  title: "Imagen",
52267
52250
  type: "image",
52268
52251
  options: { hotspot: true },
52269
52252
  fields: [
52270
- defineField4({ name: "alt", title: "Texto alternativo", type: "string" })
52253
+ defineField5({ name: "alt", title: "Texto alternativo", type: "string" })
52271
52254
  ],
52272
52255
  validation: (r) => r.required()
52273
52256
  }),
52274
- defineField4({ name: "caption", title: "Leyenda", type: "string" })
52257
+ defineField5({ name: "caption", title: "Leyenda", type: "string" })
52275
52258
  ],
52276
52259
  preview: { select: { media: "image", title: "caption" } }
52277
52260
  }
52278
52261
  ],
52279
52262
  validation: (r) => r.required().min(1)
52280
52263
  }),
52281
- defineField4({
52264
+ defineField5({
52282
52265
  name: "background",
52283
52266
  title: "Fondo",
52284
52267
  type: "string",
@@ -52294,7 +52277,7 @@ var gallerySection = defineType4({
52294
52277
  ], layout: "radio" },
52295
52278
  initialValue: "default"
52296
52279
  }),
52297
- defineField4({ 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
+ defineField5({ 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.' })
52298
52281
  ],
52299
52282
  preview: {
52300
52283
  select: { title: "title", subtitle: "variant" },
@@ -52305,13 +52288,14 @@ var gallerySection = defineType4({
52305
52288
  });
52306
52289
 
52307
52290
  // ../../apps/studio/schemas/sections/kpis.ts
52308
- import { defineField as defineField5, defineType as defineType5 } from "sanity";
52291
+ import { defineField as defineField6, defineType as defineType5 } from "sanity";
52309
52292
  var kpisSection = defineType5({
52310
52293
  name: "kpis",
52311
52294
  title: "KPIs / M\xE9tricas",
52312
52295
  type: "object",
52313
52296
  fields: [
52314
- defineField5({
52297
+ ...sectionMediaFields,
52298
+ defineField6({
52315
52299
  name: "variant",
52316
52300
  title: "Variante",
52317
52301
  type: "string",
@@ -52327,17 +52311,17 @@ var kpisSection = defineType5({
52327
52311
  initialValue: "counters",
52328
52312
  validation: (r) => r.required()
52329
52313
  }),
52330
- defineField5({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52331
- defineField5({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52332
- defineField5({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52333
- defineField5({
52314
+ defineField6({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52315
+ defineField6({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52316
+ defineField6({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52317
+ defineField6({
52334
52318
  name: "content",
52335
52319
  title: "Contenido",
52336
52320
  type: "text",
52337
52321
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52338
52322
  components: { input: TipTapEditor }
52339
52323
  }),
52340
- defineField5({
52324
+ defineField6({
52341
52325
  name: "items",
52342
52326
  title: "Elementos KPI",
52343
52327
  type: "array",
@@ -52345,11 +52329,11 @@ var kpisSection = defineType5({
52345
52329
  {
52346
52330
  type: "object",
52347
52331
  fields: [
52348
- defineField5({ name: "value", title: "Valor (ej: 98, 1.2M)", type: "string", validation: (r) => r.required() }),
52349
- defineField5({ name: "label", title: "Etiqueta", type: "string", validation: (r) => r.required() }),
52350
- defineField5({ name: "description", title: "Descripci\xF3n (opcional)", type: "string" }),
52351
- defineField5({ name: "prefix", title: "Prefijo (ej: $, +)", type: "string" }),
52352
- defineField5({ name: "suffix", title: "Sufijo (ej: %, K, M)", type: "string" })
52332
+ defineField6({ name: "value", title: "Valor (ej: 98, 1.2M)", type: "string", validation: (r) => r.required() }),
52333
+ defineField6({ name: "label", title: "Etiqueta", type: "string", validation: (r) => r.required() }),
52334
+ defineField6({ name: "description", title: "Descripci\xF3n (opcional)", type: "string" }),
52335
+ defineField6({ name: "prefix", title: "Prefijo (ej: $, +)", type: "string" }),
52336
+ defineField6({ name: "suffix", title: "Sufijo (ej: %, K, M)", type: "string" })
52353
52337
  ],
52354
52338
  preview: {
52355
52339
  select: { prefix: "prefix", value: "value", suffix: "suffix", title: "label" },
@@ -52361,7 +52345,7 @@ var kpisSection = defineType5({
52361
52345
  ],
52362
52346
  validation: (r) => r.required().min(1)
52363
52347
  }),
52364
- defineField5({
52348
+ defineField6({
52365
52349
  name: "background",
52366
52350
  title: "Fondo",
52367
52351
  type: "string",
@@ -52377,7 +52361,7 @@ var kpisSection = defineType5({
52377
52361
  ], layout: "radio" },
52378
52362
  initialValue: "default"
52379
52363
  }),
52380
- defineField5({ 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.' })
52364
+ defineField6({ 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.' })
52381
52365
  ],
52382
52366
  preview: {
52383
52367
  select: { title: "title", subtitle: "variant" },
@@ -52388,13 +52372,14 @@ var kpisSection = defineType5({
52388
52372
  });
52389
52373
 
52390
52374
  // ../../apps/studio/schemas/sections/cards.ts
52391
- import { defineField as defineField6, defineType as defineType6 } from "sanity";
52375
+ import { defineField as defineField7, defineType as defineType6 } from "sanity";
52392
52376
  var cardsSection = defineType6({
52393
52377
  name: "cards",
52394
52378
  title: "Tarjetas",
52395
52379
  type: "object",
52396
52380
  fields: [
52397
- defineField6({
52381
+ ...sectionMediaFields,
52382
+ defineField7({
52398
52383
  name: "variant",
52399
52384
  title: "Variante",
52400
52385
  type: "string",
@@ -52410,17 +52395,17 @@ var cardsSection = defineType6({
52410
52395
  initialValue: "grid",
52411
52396
  validation: (r) => r.required()
52412
52397
  }),
52413
- defineField6({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52414
- defineField6({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52415
- defineField6({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52416
- defineField6({
52398
+ defineField7({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52399
+ defineField7({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52400
+ defineField7({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52401
+ defineField7({
52417
52402
  name: "content",
52418
52403
  title: "Contenido",
52419
52404
  type: "text",
52420
52405
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52421
52406
  components: { input: TipTapEditor }
52422
52407
  }),
52423
- defineField6({
52408
+ defineField7({
52424
52409
  name: "columns",
52425
52410
  title: "Columnas (variante grilla)",
52426
52411
  type: "number",
@@ -52434,7 +52419,7 @@ var cardsSection = defineType6({
52434
52419
  },
52435
52420
  initialValue: 3
52436
52421
  }),
52437
- defineField6({
52422
+ defineField7({
52438
52423
  name: "items",
52439
52424
  title: "Tarjetas",
52440
52425
  type: "array",
@@ -52442,28 +52427,28 @@ var cardsSection = defineType6({
52442
52427
  {
52443
52428
  type: "object",
52444
52429
  fields: [
52445
- defineField6({ name: "title", title: "T\xEDtulo", type: "string", validation: (r) => r.required() }),
52446
- defineField6({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
52447
- defineField6({
52430
+ defineField7({ name: "title", title: "T\xEDtulo", type: "string", validation: (r) => r.required() }),
52431
+ defineField7({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
52432
+ defineField7({
52448
52433
  name: "image",
52449
52434
  title: "Imagen",
52450
52435
  type: "image",
52451
52436
  options: { hotspot: true },
52452
52437
  fields: [
52453
- defineField6({ name: "alt", title: "Texto alternativo", type: "string" })
52438
+ defineField7({ name: "alt", title: "Texto alternativo", type: "string" })
52454
52439
  ]
52455
52440
  }),
52456
- defineField6({ name: "badge", title: "Badge / Etiqueta", type: "string" }),
52457
- defineField6({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
52458
- defineField6({ name: "price", title: "Precio (variante precios)", type: "string" }),
52459
- defineField6({ name: "priceFrequency", title: "Frecuencia de precio (ej: mes)", type: "string" }),
52460
- defineField6({
52441
+ defineField7({ name: "badge", title: "Badge / Etiqueta", type: "string" }),
52442
+ defineField7({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
52443
+ defineField7({ name: "price", title: "Precio (variante precios)", type: "string" }),
52444
+ defineField7({ name: "priceFrequency", title: "Frecuencia de precio (ej: mes)", type: "string" }),
52445
+ defineField7({
52461
52446
  name: "features",
52462
52447
  title: "Lista de caracter\xEDsticas (variante precios)",
52463
52448
  type: "array",
52464
52449
  of: [{ type: "string" }]
52465
52450
  }),
52466
- defineField6({ name: "highlighted", title: "Destacar esta tarjeta (m\xE1s popular)", type: "boolean", initialValue: false })
52451
+ defineField7({ name: "highlighted", title: "Destacar esta tarjeta (m\xE1s popular)", type: "boolean", initialValue: false })
52467
52452
  ],
52468
52453
  preview: {
52469
52454
  select: { title: "title", subtitle: "description" }
@@ -52472,7 +52457,7 @@ var cardsSection = defineType6({
52472
52457
  ],
52473
52458
  validation: (r) => r.required().min(1)
52474
52459
  }),
52475
- defineField6({
52460
+ defineField7({
52476
52461
  name: "background",
52477
52462
  title: "Fondo",
52478
52463
  type: "string",
@@ -52488,7 +52473,7 @@ var cardsSection = defineType6({
52488
52473
  ], layout: "radio" },
52489
52474
  initialValue: "default"
52490
52475
  }),
52491
- defineField6({ 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.' })
52476
+ defineField7({ 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.' })
52492
52477
  ],
52493
52478
  preview: {
52494
52479
  select: { title: "title", subtitle: "variant" },
@@ -52499,13 +52484,14 @@ var cardsSection = defineType6({
52499
52484
  });
52500
52485
 
52501
52486
  // ../../apps/studio/schemas/sections/scrollable.ts
52502
- import { defineField as defineField7, defineType as defineType7 } from "sanity";
52487
+ import { defineField as defineField8, defineType as defineType7 } from "sanity";
52503
52488
  var scrollableSection = defineType7({
52504
52489
  name: "scrollable",
52505
52490
  title: "Secci\xF3n desplazable",
52506
52491
  type: "object",
52507
52492
  fields: [
52508
- defineField7({
52493
+ ...sectionMediaFields,
52494
+ defineField8({
52509
52495
  name: "variant",
52510
52496
  title: "Variante",
52511
52497
  type: "string",
@@ -52521,17 +52507,17 @@ var scrollableSection = defineType7({
52521
52507
  initialValue: "horizontal",
52522
52508
  validation: (r) => r.required()
52523
52509
  }),
52524
- defineField7({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52525
- defineField7({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52526
- defineField7({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52527
- defineField7({
52510
+ defineField8({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52511
+ defineField8({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52512
+ defineField8({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52513
+ defineField8({
52528
52514
  name: "content",
52529
52515
  title: "Contenido",
52530
52516
  type: "text",
52531
52517
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52532
52518
  components: { input: TipTapEditor }
52533
52519
  }),
52534
- defineField7({
52520
+ defineField8({
52535
52521
  name: "speed",
52536
52522
  title: "Velocidad de la marquesina",
52537
52523
  type: "string",
@@ -52546,7 +52532,7 @@ var scrollableSection = defineType7({
52546
52532
  },
52547
52533
  initialValue: "normal"
52548
52534
  }),
52549
- defineField7({
52535
+ defineField8({
52550
52536
  name: "direction",
52551
52537
  title: "Direcci\xF3n de la marquesina",
52552
52538
  type: "string",
@@ -52560,7 +52546,7 @@ var scrollableSection = defineType7({
52560
52546
  },
52561
52547
  initialValue: "left"
52562
52548
  }),
52563
- defineField7({
52549
+ defineField8({
52564
52550
  name: "items",
52565
52551
  title: "Elementos",
52566
52552
  type: "array",
@@ -52568,26 +52554,26 @@ var scrollableSection = defineType7({
52568
52554
  {
52569
52555
  type: "object",
52570
52556
  fields: [
52571
- defineField7({ name: "title", title: "T\xEDtulo", type: "string", validation: (r) => r.required() }),
52572
- defineField7({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
52573
- defineField7({
52557
+ defineField8({ name: "title", title: "T\xEDtulo", type: "string", validation: (r) => r.required() }),
52558
+ defineField8({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
52559
+ defineField8({
52574
52560
  name: "image",
52575
52561
  title: "Imagen",
52576
52562
  type: "image",
52577
52563
  options: { hotspot: true },
52578
52564
  fields: [
52579
- defineField7({ name: "alt", title: "Texto alternativo", type: "string" })
52565
+ defineField8({ name: "alt", title: "Texto alternativo", type: "string" })
52580
52566
  ]
52581
52567
  }),
52582
- defineField7({ name: "label", title: "Etiqueta / Tag", type: "string" }),
52583
- defineField7({ name: "date", title: "Fecha (variante l\xEDnea de tiempo)", type: "string" })
52568
+ defineField8({ name: "label", title: "Etiqueta / Tag", type: "string" }),
52569
+ defineField8({ name: "date", title: "Fecha (variante l\xEDnea de tiempo)", type: "string" })
52584
52570
  ],
52585
52571
  preview: { select: { title: "title", subtitle: "label" } }
52586
52572
  }
52587
52573
  ],
52588
52574
  validation: (r) => r.required().min(1)
52589
52575
  }),
52590
- defineField7({
52576
+ defineField8({
52591
52577
  name: "background",
52592
52578
  title: "Fondo",
52593
52579
  type: "string",
@@ -52603,7 +52589,7 @@ var scrollableSection = defineType7({
52603
52589
  ], layout: "radio" },
52604
52590
  initialValue: "default"
52605
52591
  }),
52606
- defineField7({ 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.' })
52592
+ defineField8({ 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.' })
52607
52593
  ],
52608
52594
  preview: {
52609
52595
  select: { title: "title", subtitle: "variant" },
@@ -52614,13 +52600,14 @@ var scrollableSection = defineType7({
52614
52600
  });
52615
52601
 
52616
52602
  // ../../apps/studio/schemas/sections/tabs-section.ts
52617
- import { defineField as defineField8, defineType as defineType8 } from "sanity";
52603
+ import { defineField as defineField9, defineType as defineType8 } from "sanity";
52618
52604
  var tabsSection = defineType8({
52619
52605
  name: "tabsSection",
52620
52606
  title: "Secci\xF3n de pesta\xF1as",
52621
52607
  type: "object",
52622
52608
  fields: [
52623
- defineField8({
52609
+ ...sectionMediaFields,
52610
+ defineField9({
52624
52611
  name: "variant",
52625
52612
  title: "Variante",
52626
52613
  type: "string",
@@ -52636,17 +52623,17 @@ var tabsSection = defineType8({
52636
52623
  initialValue: "standard",
52637
52624
  validation: (r) => r.required()
52638
52625
  }),
52639
- defineField8({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52640
- defineField8({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52641
- defineField8({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52642
- defineField8({
52626
+ defineField9({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52627
+ defineField9({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52628
+ defineField9({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52629
+ defineField9({
52643
52630
  name: "content",
52644
52631
  title: "Contenido",
52645
52632
  type: "text",
52646
52633
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52647
52634
  components: { input: TipTapEditor }
52648
52635
  }),
52649
- defineField8({
52636
+ defineField9({
52650
52637
  name: "items",
52651
52638
  title: "Pesta\xF1as",
52652
52639
  type: "array",
@@ -52654,15 +52641,15 @@ var tabsSection = defineType8({
52654
52641
  {
52655
52642
  type: "object",
52656
52643
  fields: [
52657
- defineField8({ name: "label", title: "Etiqueta de pesta\xF1a", type: "string", validation: (r) => r.required() }),
52658
- defineField8({ name: "content", title: "Contenido", type: "text", rows: 4, validation: (r) => r.required() }),
52659
- defineField8({
52644
+ defineField9({ name: "label", title: "Etiqueta de pesta\xF1a", type: "string", validation: (r) => r.required() }),
52645
+ defineField9({ name: "content", title: "Contenido", type: "text", rows: 4, validation: (r) => r.required() }),
52646
+ defineField9({
52660
52647
  name: "image",
52661
52648
  title: "Imagen",
52662
52649
  type: "image",
52663
52650
  options: { hotspot: true },
52664
52651
  fields: [
52665
- defineField8({ name: "alt", title: "Texto alternativo", type: "string" })
52652
+ defineField9({ name: "alt", title: "Texto alternativo", type: "string" })
52666
52653
  ]
52667
52654
  })
52668
52655
  ],
@@ -52671,7 +52658,7 @@ var tabsSection = defineType8({
52671
52658
  ],
52672
52659
  validation: (r) => r.required().min(1)
52673
52660
  }),
52674
- defineField8({
52661
+ defineField9({
52675
52662
  name: "background",
52676
52663
  title: "Fondo",
52677
52664
  type: "string",
@@ -52687,7 +52674,7 @@ var tabsSection = defineType8({
52687
52674
  ], layout: "radio" },
52688
52675
  initialValue: "default"
52689
52676
  }),
52690
- defineField8({ 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.' })
52677
+ defineField9({ 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.' })
52691
52678
  ],
52692
52679
  preview: {
52693
52680
  select: { title: "title", subtitle: "variant" },
@@ -52698,13 +52685,14 @@ var tabsSection = defineType8({
52698
52685
  });
52699
52686
 
52700
52687
  // ../../apps/studio/schemas/sections/testimonials.ts
52701
- import { defineField as defineField9, defineType as defineType9 } from "sanity";
52688
+ import { defineField as defineField10, defineType as defineType9 } from "sanity";
52702
52689
  var testimonialsSection = defineType9({
52703
52690
  name: "testimonials",
52704
52691
  title: "Testimonios",
52705
52692
  type: "object",
52706
52693
  fields: [
52707
- defineField9({
52694
+ ...sectionMediaFields,
52695
+ defineField10({
52708
52696
  name: "variant",
52709
52697
  title: "Variante",
52710
52698
  type: "string",
@@ -52719,17 +52707,17 @@ var testimonialsSection = defineType9({
52719
52707
  initialValue: "grid",
52720
52708
  validation: (r) => r.required()
52721
52709
  }),
52722
- defineField9({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52723
- defineField9({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52724
- defineField9({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52725
- defineField9({
52710
+ defineField10({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52711
+ defineField10({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52712
+ defineField10({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52713
+ defineField10({
52726
52714
  name: "content",
52727
52715
  title: "Contenido",
52728
52716
  type: "text",
52729
52717
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52730
52718
  components: { input: TipTapEditor }
52731
52719
  }),
52732
- defineField9({
52720
+ defineField10({
52733
52721
  name: "items",
52734
52722
  title: "Testimonios",
52735
52723
  type: "array",
@@ -52737,18 +52725,18 @@ var testimonialsSection = defineType9({
52737
52725
  {
52738
52726
  type: "object",
52739
52727
  fields: [
52740
- defineField9({ name: "quote", title: "Cita", type: "text", rows: 3, validation: (r) => r.required() }),
52741
- defineField9({ name: "author", title: "Nombre del autor", type: "string", validation: (r) => r.required() }),
52742
- defineField9({ name: "role", title: "Rol / T\xEDtulo", type: "string" }),
52743
- defineField9({ name: "company", title: "Empresa", type: "string" }),
52744
- defineField9({
52728
+ defineField10({ name: "quote", title: "Cita", type: "text", rows: 3, validation: (r) => r.required() }),
52729
+ defineField10({ name: "author", title: "Nombre del autor", type: "string", validation: (r) => r.required() }),
52730
+ defineField10({ name: "role", title: "Rol / T\xEDtulo", type: "string" }),
52731
+ defineField10({ name: "company", title: "Empresa", type: "string" }),
52732
+ defineField10({
52745
52733
  name: "avatar",
52746
52734
  title: "Avatar",
52747
52735
  type: "image",
52748
52736
  options: { hotspot: true },
52749
- fields: [defineField9({ name: "alt", title: "Texto alternativo", type: "string" })]
52737
+ fields: [defineField10({ name: "alt", title: "Texto alternativo", type: "string" })]
52750
52738
  }),
52751
- defineField9({
52739
+ defineField10({
52752
52740
  name: "rating",
52753
52741
  title: "Puntuaci\xF3n (1\u20135)",
52754
52742
  type: "number",
@@ -52771,7 +52759,7 @@ var testimonialsSection = defineType9({
52771
52759
  ],
52772
52760
  validation: (r) => r.required().min(1)
52773
52761
  }),
52774
- defineField9({
52762
+ defineField10({
52775
52763
  name: "background",
52776
52764
  title: "Fondo",
52777
52765
  type: "string",
@@ -52787,7 +52775,7 @@ var testimonialsSection = defineType9({
52787
52775
  ], layout: "radio" },
52788
52776
  initialValue: "default"
52789
52777
  }),
52790
- defineField9({ 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.' })
52778
+ defineField10({ 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.' })
52791
52779
  ],
52792
52780
  preview: {
52793
52781
  select: { title: "title", subtitle: "variant" },
@@ -52798,13 +52786,14 @@ var testimonialsSection = defineType9({
52798
52786
  });
52799
52787
 
52800
52788
  // ../../apps/studio/schemas/sections/logos.ts
52801
- import { defineField as defineField10, defineType as defineType10 } from "sanity";
52789
+ import { defineField as defineField11, defineType as defineType10 } from "sanity";
52802
52790
  var logosSection = defineType10({
52803
52791
  name: "logos",
52804
52792
  title: "Logos / Socios",
52805
52793
  type: "object",
52806
52794
  fields: [
52807
- defineField10({
52795
+ ...sectionMediaFields,
52796
+ defineField11({
52808
52797
  name: "variant",
52809
52798
  title: "Variante",
52810
52799
  type: "string",
@@ -52819,17 +52808,17 @@ var logosSection = defineType10({
52819
52808
  initialValue: "grid",
52820
52809
  validation: (r) => r.required()
52821
52810
  }),
52822
- defineField10({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52823
- defineField10({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52824
- defineField10({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52825
- defineField10({
52811
+ defineField11({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52812
+ defineField11({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52813
+ defineField11({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52814
+ defineField11({
52826
52815
  name: "content",
52827
52816
  title: "Contenido",
52828
52817
  type: "text",
52829
52818
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52830
52819
  components: { input: TipTapEditor }
52831
52820
  }),
52832
- defineField10({
52821
+ defineField11({
52833
52822
  name: "items",
52834
52823
  title: "Logos",
52835
52824
  type: "array",
@@ -52837,16 +52826,16 @@ var logosSection = defineType10({
52837
52826
  {
52838
52827
  type: "object",
52839
52828
  fields: [
52840
- defineField10({
52829
+ defineField11({
52841
52830
  name: "image",
52842
52831
  title: "Imagen del logo",
52843
52832
  type: "image",
52844
52833
  options: { hotspot: true },
52845
- fields: [defineField10({ name: "alt", title: "Texto alternativo", type: "string" })],
52834
+ fields: [defineField11({ name: "alt", title: "Texto alternativo", type: "string" })],
52846
52835
  validation: (r) => r.required()
52847
52836
  }),
52848
- defineField10({ name: "name", title: "Nombre de la empresa", type: "string", validation: (r) => r.required() }),
52849
- defineField10({ name: "href", title: "URL del enlace", type: "url" })
52837
+ defineField11({ name: "name", title: "Nombre de la empresa", type: "string", validation: (r) => r.required() }),
52838
+ defineField11({ name: "href", title: "URL del enlace", type: "url" })
52850
52839
  ],
52851
52840
  preview: {
52852
52841
  select: { title: "name", media: "image" }
@@ -52855,7 +52844,7 @@ var logosSection = defineType10({
52855
52844
  ],
52856
52845
  validation: (r) => r.required().min(1)
52857
52846
  }),
52858
- defineField10({
52847
+ defineField11({
52859
52848
  name: "background",
52860
52849
  title: "Fondo",
52861
52850
  type: "string",
@@ -52871,7 +52860,7 @@ var logosSection = defineType10({
52871
52860
  ], layout: "radio" },
52872
52861
  initialValue: "default"
52873
52862
  }),
52874
- defineField10({ 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.' })
52863
+ defineField11({ 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.' })
52875
52864
  ],
52876
52865
  preview: {
52877
52866
  select: { title: "title", subtitle: "variant" },
@@ -52882,13 +52871,14 @@ var logosSection = defineType10({
52882
52871
  });
52883
52872
 
52884
52873
  // ../../apps/studio/schemas/sections/cta.ts
52885
- import { defineField as defineField11, defineType as defineType11 } from "sanity";
52874
+ import { defineField as defineField12, defineType as defineType11 } from "sanity";
52886
52875
  var ctaSection = defineType11({
52887
52876
  name: "cta",
52888
52877
  title: "CTA",
52889
52878
  type: "object",
52890
52879
  fields: [
52891
- defineField11({
52880
+ ...sectionMediaFields,
52881
+ defineField12({
52892
52882
  name: "variant",
52893
52883
  title: "Variante",
52894
52884
  type: "string",
@@ -52903,28 +52893,28 @@ var ctaSection = defineType11({
52903
52893
  initialValue: "centered",
52904
52894
  validation: (r) => r.required()
52905
52895
  }),
52906
- defineField11({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52907
- defineField11({ name: "title", title: "T\xEDtulo de secci\xF3n (arriba)", type: "string" }),
52908
- defineField11({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n (arriba)", type: "text", rows: 2 }),
52909
- defineField11({
52896
+ defineField12({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52897
+ defineField12({ name: "title", title: "T\xEDtulo de secci\xF3n (arriba)", type: "string" }),
52898
+ defineField12({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n (arriba)", type: "text", rows: 2 }),
52899
+ defineField12({
52910
52900
  name: "content",
52911
52901
  title: "Contenido",
52912
52902
  type: "text",
52913
52903
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52914
52904
  components: { input: TipTapEditor }
52915
52905
  }),
52916
- defineField11({ name: "heading", title: "Titular del CTA", type: "string", validation: (r) => r.required() }),
52917
- defineField11({ name: "description", title: "Descripci\xF3n del CTA", type: "text", rows: 2 }),
52918
- defineField11({ name: "primaryCTA", title: "Bot\xF3n primario", type: "ctaButton" }),
52919
- defineField11({ name: "secondaryCTA", title: "Bot\xF3n secundario", type: "ctaButton" }),
52920
- defineField11({
52906
+ defineField12({ name: "heading", title: "Titular del CTA", type: "string", validation: (r) => r.required() }),
52907
+ defineField12({ name: "description", title: "Descripci\xF3n del CTA", type: "text", rows: 2 }),
52908
+ defineField12({ name: "primaryCTA", title: "Bot\xF3n primario", type: "ctaButton" }),
52909
+ defineField12({ name: "secondaryCTA", title: "Bot\xF3n secundario", type: "ctaButton" }),
52910
+ defineField12({
52921
52911
  name: "image",
52922
52912
  title: "Imagen (variante dividida)",
52923
52913
  type: "image",
52924
52914
  options: { hotspot: true },
52925
- fields: [defineField11({ name: "alt", title: "Texto alternativo", type: "string" })]
52915
+ fields: [defineField12({ name: "alt", title: "Texto alternativo", type: "string" })]
52926
52916
  }),
52927
- defineField11({
52917
+ defineField12({
52928
52918
  name: "background",
52929
52919
  title: "Fondo",
52930
52920
  type: "string",
@@ -52940,7 +52930,7 @@ var ctaSection = defineType11({
52940
52930
  ], layout: "radio" },
52941
52931
  initialValue: "default"
52942
52932
  }),
52943
- defineField11({ 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.' })
52933
+ defineField12({ 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.' })
52944
52934
  ],
52945
52935
  preview: {
52946
52936
  select: { title: "heading", subtitle: "variant" },
@@ -52951,13 +52941,14 @@ var ctaSection = defineType11({
52951
52941
  });
52952
52942
 
52953
52943
  // ../../apps/studio/schemas/sections/features.ts
52954
- import { defineField as defineField12, defineType as defineType12 } from "sanity";
52944
+ import { defineField as defineField13, defineType as defineType12 } from "sanity";
52955
52945
  var featuresSection = defineType12({
52956
52946
  name: "features",
52957
52947
  title: "Caracter\xEDsticas",
52958
52948
  type: "object",
52959
52949
  fields: [
52960
- defineField12({
52950
+ ...sectionMediaFields,
52951
+ defineField13({
52961
52952
  name: "variant",
52962
52953
  title: "Variante",
52963
52954
  type: "string",
@@ -52972,17 +52963,17 @@ var featuresSection = defineType12({
52972
52963
  initialValue: "grid",
52973
52964
  validation: (r) => r.required()
52974
52965
  }),
52975
- defineField12({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52976
- defineField12({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52977
- defineField12({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52978
- defineField12({
52966
+ defineField13({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
52967
+ defineField13({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
52968
+ defineField13({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
52969
+ defineField13({
52979
52970
  name: "content",
52980
52971
  title: "Contenido",
52981
52972
  type: "text",
52982
52973
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
52983
52974
  components: { input: TipTapEditor }
52984
52975
  }),
52985
- defineField12({
52976
+ defineField13({
52986
52977
  name: "columns",
52987
52978
  title: "Columnas (variante grilla)",
52988
52979
  type: "number",
@@ -52996,7 +52987,7 @@ var featuresSection = defineType12({
52996
52987
  },
52997
52988
  initialValue: 3
52998
52989
  }),
52999
- defineField12({
52990
+ defineField13({
53000
52991
  name: "items",
53001
52992
  title: "Caracter\xEDsticas",
53002
52993
  type: "array",
@@ -53004,16 +52995,16 @@ var featuresSection = defineType12({
53004
52995
  {
53005
52996
  type: "object",
53006
52997
  fields: [
53007
- defineField12({ name: "title", title: "T\xEDtulo", type: "string", validation: (r) => r.required() }),
53008
- defineField12({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53009
- defineField12({ name: "icon", title: "\xCDcono (nombre de Lucide, ej: Zap)", type: "string" }),
53010
- defineField12({ name: "badge", title: "Badge / Etiqueta", type: "string" }),
53011
- defineField12({
52998
+ defineField13({ name: "title", title: "T\xEDtulo", type: "string", validation: (r) => r.required() }),
52999
+ defineField13({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53000
+ defineField13({ name: "icon", title: "\xCDcono (nombre de Lucide, ej: Zap)", type: "string" }),
53001
+ defineField13({ name: "badge", title: "Badge / Etiqueta", type: "string" }),
53002
+ defineField13({
53012
53003
  name: "image",
53013
53004
  title: "Imagen",
53014
53005
  type: "image",
53015
53006
  options: { hotspot: true },
53016
- fields: [defineField12({ name: "alt", title: "Texto alternativo", type: "string" })]
53007
+ fields: [defineField13({ name: "alt", title: "Texto alternativo", type: "string" })]
53017
53008
  })
53018
53009
  ],
53019
53010
  preview: {
@@ -53023,7 +53014,7 @@ var featuresSection = defineType12({
53023
53014
  ],
53024
53015
  validation: (r) => r.required().min(1)
53025
53016
  }),
53026
- defineField12({
53017
+ defineField13({
53027
53018
  name: "background",
53028
53019
  title: "Fondo",
53029
53020
  type: "string",
@@ -53039,7 +53030,7 @@ var featuresSection = defineType12({
53039
53030
  ], layout: "radio" },
53040
53031
  initialValue: "default"
53041
53032
  }),
53042
- defineField12({ 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.' })
53033
+ defineField13({ 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.' })
53043
53034
  ],
53044
53035
  preview: {
53045
53036
  select: { title: "title", subtitle: "variant" },
@@ -53050,13 +53041,14 @@ var featuresSection = defineType12({
53050
53041
  });
53051
53042
 
53052
53043
  // ../../apps/studio/schemas/sections/steps.ts
53053
- import { defineField as defineField13, defineType as defineType13 } from "sanity";
53044
+ import { defineField as defineField14, defineType as defineType13 } from "sanity";
53054
53045
  var stepsSection = defineType13({
53055
53046
  name: "steps",
53056
53047
  title: "Pasos",
53057
53048
  type: "object",
53058
53049
  fields: [
53059
- defineField13({
53050
+ ...sectionMediaFields,
53051
+ defineField14({
53060
53052
  name: "variant",
53061
53053
  title: "Variante",
53062
53054
  type: "string",
@@ -53071,17 +53063,17 @@ var stepsSection = defineType13({
53071
53063
  initialValue: "numbered",
53072
53064
  validation: (r) => r.required()
53073
53065
  }),
53074
- defineField13({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53075
- defineField13({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53076
- defineField13({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53077
- defineField13({
53066
+ defineField14({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53067
+ defineField14({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53068
+ defineField14({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53069
+ defineField14({
53078
53070
  name: "content",
53079
53071
  title: "Contenido",
53080
53072
  type: "text",
53081
53073
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53082
53074
  components: { input: TipTapEditor }
53083
53075
  }),
53084
- defineField13({
53076
+ defineField14({
53085
53077
  name: "items",
53086
53078
  title: "Pasos",
53087
53079
  type: "array",
@@ -53089,15 +53081,15 @@ var stepsSection = defineType13({
53089
53081
  {
53090
53082
  type: "object",
53091
53083
  fields: [
53092
- defineField13({ name: "title", title: "T\xEDtulo del paso", type: "string", validation: (r) => r.required() }),
53093
- defineField13({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53094
- defineField13({ name: "icon", title: "\xCDcono (nombre de Lucide)", type: "string" }),
53095
- defineField13({
53084
+ defineField14({ name: "title", title: "T\xEDtulo del paso", type: "string", validation: (r) => r.required() }),
53085
+ defineField14({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53086
+ defineField14({ name: "icon", title: "\xCDcono (nombre de Lucide)", type: "string" }),
53087
+ defineField14({
53096
53088
  name: "image",
53097
53089
  title: "Imagen",
53098
53090
  type: "image",
53099
53091
  options: { hotspot: true },
53100
- fields: [defineField13({ name: "alt", title: "Texto alternativo", type: "string" })]
53092
+ fields: [defineField14({ name: "alt", title: "Texto alternativo", type: "string" })]
53101
53093
  })
53102
53094
  ],
53103
53095
  preview: {
@@ -53107,7 +53099,7 @@ var stepsSection = defineType13({
53107
53099
  ],
53108
53100
  validation: (r) => r.required().min(1)
53109
53101
  }),
53110
- defineField13({
53102
+ defineField14({
53111
53103
  name: "background",
53112
53104
  title: "Fondo",
53113
53105
  type: "string",
@@ -53123,7 +53115,7 @@ var stepsSection = defineType13({
53123
53115
  ], layout: "radio" },
53124
53116
  initialValue: "default"
53125
53117
  }),
53126
- defineField13({ 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.' })
53118
+ defineField14({ 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.' })
53127
53119
  ],
53128
53120
  preview: {
53129
53121
  select: { title: "title", subtitle: "variant" },
@@ -53134,13 +53126,14 @@ var stepsSection = defineType13({
53134
53126
  });
53135
53127
 
53136
53128
  // ../../apps/studio/schemas/sections/team.ts
53137
- import { defineField as defineField14, defineType as defineType14 } from "sanity";
53129
+ import { defineField as defineField15, defineType as defineType14 } from "sanity";
53138
53130
  var teamSection = defineType14({
53139
53131
  name: "team",
53140
53132
  title: "Equipo",
53141
53133
  type: "object",
53142
53134
  fields: [
53143
- defineField14({
53135
+ ...sectionMediaFields,
53136
+ defineField15({
53144
53137
  name: "variant",
53145
53138
  title: "Variante",
53146
53139
  type: "string",
@@ -53155,17 +53148,17 @@ var teamSection = defineType14({
53155
53148
  initialValue: "grid",
53156
53149
  validation: (r) => r.required()
53157
53150
  }),
53158
- defineField14({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53159
- defineField14({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53160
- defineField14({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53161
- defineField14({
53151
+ defineField15({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53152
+ defineField15({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53153
+ defineField15({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53154
+ defineField15({
53162
53155
  name: "content",
53163
53156
  title: "Contenido",
53164
53157
  type: "text",
53165
53158
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53166
53159
  components: { input: TipTapEditor }
53167
53160
  }),
53168
- defineField14({
53161
+ defineField15({
53169
53162
  name: "columns",
53170
53163
  title: "Columnas (variante grilla)",
53171
53164
  type: "number",
@@ -53179,7 +53172,7 @@ var teamSection = defineType14({
53179
53172
  },
53180
53173
  initialValue: 3
53181
53174
  }),
53182
- defineField14({
53175
+ defineField15({
53183
53176
  name: "items",
53184
53177
  title: "Miembros del equipo",
53185
53178
  type: "array",
@@ -53187,18 +53180,18 @@ var teamSection = defineType14({
53187
53180
  {
53188
53181
  type: "object",
53189
53182
  fields: [
53190
- defineField14({ name: "name", title: "Nombre", type: "string", validation: (r) => r.required() }),
53191
- defineField14({ name: "role", title: "Rol / T\xEDtulo", type: "string" }),
53192
- defineField14({ name: "bio", title: "Biograf\xEDa", type: "text", rows: 3 }),
53193
- defineField14({
53183
+ defineField15({ name: "name", title: "Nombre", type: "string", validation: (r) => r.required() }),
53184
+ defineField15({ name: "role", title: "Rol / T\xEDtulo", type: "string" }),
53185
+ defineField15({ name: "bio", title: "Biograf\xEDa", type: "text", rows: 3 }),
53186
+ defineField15({
53194
53187
  name: "avatar",
53195
53188
  title: "Avatar",
53196
53189
  type: "image",
53197
53190
  options: { hotspot: true },
53198
- fields: [defineField14({ name: "alt", title: "Texto alternativo", type: "string" })]
53191
+ fields: [defineField15({ name: "alt", title: "Texto alternativo", type: "string" })]
53199
53192
  }),
53200
- defineField14({ name: "twitter", title: "URL de Twitter / X", type: "url" }),
53201
- defineField14({ name: "linkedin", title: "URL de LinkedIn", type: "url" })
53193
+ defineField15({ name: "twitter", title: "URL de Twitter / X", type: "url" }),
53194
+ defineField15({ name: "linkedin", title: "URL de LinkedIn", type: "url" })
53202
53195
  ],
53203
53196
  preview: {
53204
53197
  select: { title: "name", subtitle: "role", media: "avatar" }
@@ -53207,7 +53200,7 @@ var teamSection = defineType14({
53207
53200
  ],
53208
53201
  validation: (r) => r.required().min(1)
53209
53202
  }),
53210
- defineField14({
53203
+ defineField15({
53211
53204
  name: "background",
53212
53205
  title: "Fondo",
53213
53206
  type: "string",
@@ -53223,7 +53216,7 @@ var teamSection = defineType14({
53223
53216
  ], layout: "radio" },
53224
53217
  initialValue: "default"
53225
53218
  }),
53226
- defineField14({ 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.' })
53219
+ defineField15({ 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.' })
53227
53220
  ],
53228
53221
  preview: {
53229
53222
  select: { title: "title", subtitle: "variant" },
@@ -53234,13 +53227,14 @@ var teamSection = defineType14({
53234
53227
  });
53235
53228
 
53236
53229
  // ../../apps/studio/schemas/sections/contact.ts
53237
- import { defineField as defineField15, defineType as defineType15 } from "sanity";
53230
+ import { defineField as defineField16, defineType as defineType15 } from "sanity";
53238
53231
  var contactSection = defineType15({
53239
53232
  name: "contact",
53240
53233
  title: "Contacto",
53241
53234
  type: "object",
53242
53235
  fields: [
53243
- defineField15({
53236
+ ...sectionMediaFields,
53237
+ defineField16({
53244
53238
  name: "variant",
53245
53239
  title: "Variante",
53246
53240
  type: "string",
@@ -53254,36 +53248,36 @@ var contactSection = defineType15({
53254
53248
  initialValue: "simple",
53255
53249
  validation: (r) => r.required()
53256
53250
  }),
53257
- defineField15({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53258
- defineField15({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53259
- defineField15({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53260
- defineField15({
53251
+ defineField16({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53252
+ defineField16({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53253
+ defineField16({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53254
+ defineField16({
53261
53255
  name: "content",
53262
53256
  title: "Contenido",
53263
53257
  type: "text",
53264
53258
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53265
53259
  components: { input: TipTapEditor }
53266
53260
  }),
53267
- defineField15({
53261
+ defineField16({
53268
53262
  name: "details",
53269
53263
  title: "Datos de contacto",
53270
53264
  type: "object",
53271
53265
  fields: [
53272
- defineField15({ name: "email", title: "Correo electr\xF3nico", type: "string" }),
53273
- defineField15({ name: "phone", title: "N\xFAmero de tel\xE9fono", type: "string" }),
53274
- defineField15({ name: "address", title: "Direcci\xF3n", type: "text", rows: 2 }),
53275
- defineField15({ name: "hours", title: "Horario de atenci\xF3n", type: "string" })
53266
+ defineField16({ name: "email", title: "Correo electr\xF3nico", type: "string" }),
53267
+ defineField16({ name: "phone", title: "N\xFAmero de tel\xE9fono", type: "string" }),
53268
+ defineField16({ name: "address", title: "Direcci\xF3n", type: "text", rows: 2 }),
53269
+ defineField16({ name: "hours", title: "Horario de atenci\xF3n", type: "string" })
53276
53270
  ]
53277
53271
  }),
53278
- defineField15({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
53279
- defineField15({
53272
+ defineField16({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
53273
+ defineField16({
53280
53274
  name: "image",
53281
53275
  title: "Imagen (variante dividida)",
53282
53276
  type: "image",
53283
53277
  options: { hotspot: true },
53284
- fields: [defineField15({ name: "alt", title: "Texto alternativo", type: "string" })]
53278
+ fields: [defineField16({ name: "alt", title: "Texto alternativo", type: "string" })]
53285
53279
  }),
53286
- defineField15({
53280
+ defineField16({
53287
53281
  name: "background",
53288
53282
  title: "Fondo",
53289
53283
  type: "string",
@@ -53299,7 +53293,7 @@ var contactSection = defineType15({
53299
53293
  ], layout: "radio" },
53300
53294
  initialValue: "default"
53301
53295
  }),
53302
- defineField15({ 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.' })
53296
+ defineField16({ 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.' })
53303
53297
  ],
53304
53298
  preview: {
53305
53299
  select: { title: "title", subtitle: "variant" },
@@ -53310,13 +53304,14 @@ var contactSection = defineType15({
53310
53304
  });
53311
53305
 
53312
53306
  // ../../apps/studio/schemas/sections/banner.ts
53313
- import { defineField as defineField16, defineType as defineType16 } from "sanity";
53307
+ import { defineField as defineField17, defineType as defineType16 } from "sanity";
53314
53308
  var bannerSection = defineType16({
53315
53309
  name: "banner",
53316
53310
  title: "Banner",
53317
53311
  type: "object",
53318
53312
  fields: [
53319
- defineField16({
53313
+ ...sectionMediaFields,
53314
+ defineField17({
53320
53315
  name: "variant",
53321
53316
  title: "Variante",
53322
53317
  type: "string",
@@ -53330,17 +53325,17 @@ var bannerSection = defineType16({
53330
53325
  initialValue: "simple",
53331
53326
  validation: (r) => r.required()
53332
53327
  }),
53333
- defineField16({ name: "badge", title: "Chip de badge", type: "string" }),
53334
- defineField16({ name: "message", title: "Mensaje", type: "string", validation: (r) => r.required() }),
53335
- defineField16({
53328
+ defineField17({ name: "badge", title: "Chip de badge", type: "string" }),
53329
+ defineField17({ name: "message", title: "Mensaje", type: "string", validation: (r) => r.required() }),
53330
+ defineField17({
53336
53331
  name: "content",
53337
53332
  title: "Contenido adicional",
53338
53333
  type: "text",
53339
53334
  description: "Texto enriquecido opcional para mostrar junto al banner.",
53340
53335
  components: { input: TipTapEditor }
53341
53336
  }),
53342
- defineField16({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
53343
- defineField16({
53337
+ defineField17({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
53338
+ defineField17({
53344
53339
  name: "background",
53345
53340
  title: "Fondo",
53346
53341
  type: "string",
@@ -53356,7 +53351,7 @@ var bannerSection = defineType16({
53356
53351
  ], layout: "radio" },
53357
53352
  initialValue: "default"
53358
53353
  }),
53359
- defineField16({ 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.' })
53354
+ defineField17({ 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.' })
53360
53355
  ],
53361
53356
  preview: {
53362
53357
  select: { title: "message", subtitle: "variant" },
@@ -53367,13 +53362,14 @@ var bannerSection = defineType16({
53367
53362
  });
53368
53363
 
53369
53364
  // ../../apps/studio/schemas/sections/maps.ts
53370
- import { defineField as defineField17, defineType as defineType17 } from "sanity";
53365
+ import { defineField as defineField18, defineType as defineType17 } from "sanity";
53371
53366
  var mapsSection = defineType17({
53372
53367
  name: "maps",
53373
53368
  title: "Mapa",
53374
53369
  type: "object",
53375
53370
  fields: [
53376
- defineField17({
53371
+ ...sectionMediaFields,
53372
+ defineField18({
53377
53373
  name: "variant",
53378
53374
  title: "Variante",
53379
53375
  type: "string",
@@ -53388,7 +53384,7 @@ var mapsSection = defineType17({
53388
53384
  initialValue: "pins",
53389
53385
  validation: (r) => r.required()
53390
53386
  }),
53391
- defineField17({
53387
+ defineField18({
53392
53388
  name: "mapStyle",
53393
53389
  title: "Estilo del mapa",
53394
53390
  type: "string",
@@ -53406,17 +53402,17 @@ var mapsSection = defineType17({
53406
53402
  },
53407
53403
  initialValue: "standard"
53408
53404
  }),
53409
- defineField17({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53410
- defineField17({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53411
- defineField17({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53412
- defineField17({
53405
+ defineField18({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53406
+ defineField18({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53407
+ defineField18({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53408
+ defineField18({
53413
53409
  name: "content",
53414
53410
  title: "Contenido",
53415
53411
  type: "text",
53416
53412
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53417
53413
  components: { input: TipTapEditor }
53418
53414
  }),
53419
- defineField17({
53415
+ defineField18({
53420
53416
  name: "embedUrl",
53421
53417
  title: "URL de incrustaci\xF3n de Google Maps",
53422
53418
  type: "string",
@@ -53427,7 +53423,7 @@ var mapsSection = defineType17({
53427
53423
  return "Debe ser una URL de incrustaci\xF3n de Google Maps que empiece con https://www.google.com/maps/embed";
53428
53424
  })
53429
53425
  }),
53430
- defineField17({
53426
+ defineField18({
53431
53427
  name: "locations",
53432
53428
  title: "Ubicaciones",
53433
53429
  type: "array",
@@ -53435,18 +53431,18 @@ var mapsSection = defineType17({
53435
53431
  {
53436
53432
  type: "object",
53437
53433
  fields: [
53438
- defineField17({ name: "name", title: "Nombre", type: "string", validation: (r) => r.required() }),
53439
- defineField17({ name: "address", title: "Direcci\xF3n", type: "string" }),
53440
- defineField17({ name: "phone", title: "Tel\xE9fono", type: "string" }),
53441
- defineField17({ name: "hours", title: "Horario", type: "string" }),
53442
- defineField17({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53443
- defineField17({
53434
+ defineField18({ name: "name", title: "Nombre", type: "string", validation: (r) => r.required() }),
53435
+ defineField18({ name: "address", title: "Direcci\xF3n", type: "string" }),
53436
+ defineField18({ name: "phone", title: "Tel\xE9fono", type: "string" }),
53437
+ defineField18({ name: "hours", title: "Horario", type: "string" }),
53438
+ defineField18({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53439
+ defineField18({
53444
53440
  name: "lat",
53445
53441
  title: "Latitud (sobreescritura opcional)",
53446
53442
  type: "number",
53447
53443
  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)."
53448
53444
  }),
53449
- defineField17({
53445
+ defineField18({
53450
53446
  name: "lng",
53451
53447
  title: "Longitud (sobreescritura opcional)",
53452
53448
  type: "number",
@@ -53459,7 +53455,7 @@ var mapsSection = defineType17({
53459
53455
  }
53460
53456
  ]
53461
53457
  }),
53462
- defineField17({
53458
+ defineField18({
53463
53459
  name: "background",
53464
53460
  title: "Fondo",
53465
53461
  type: "string",
@@ -53478,7 +53474,7 @@ var mapsSection = defineType17({
53478
53474
  },
53479
53475
  initialValue: "default"
53480
53476
  }),
53481
- defineField17({ 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.' })
53477
+ defineField18({ 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.' })
53482
53478
  ],
53483
53479
  preview: {
53484
53480
  select: { title: "title", subtitle: "variant" },
@@ -53489,13 +53485,14 @@ var mapsSection = defineType17({
53489
53485
  });
53490
53486
 
53491
53487
  // ../../apps/studio/schemas/sections/iframe.ts
53492
- import { defineField as defineField18, defineType as defineType18 } from "sanity";
53488
+ import { defineField as defineField19, defineType as defineType18 } from "sanity";
53493
53489
  var iframeSection = defineType18({
53494
53490
  name: "iframe",
53495
53491
  title: "Iframe incrustado",
53496
53492
  type: "object",
53497
53493
  fields: [
53498
- defineField18({
53494
+ ...sectionMediaFields,
53495
+ defineField19({
53499
53496
  name: "variant",
53500
53497
  title: "Variante",
53501
53498
  type: "string",
@@ -53510,36 +53507,36 @@ var iframeSection = defineType18({
53510
53507
  initialValue: "simple",
53511
53508
  validation: (r) => r.required()
53512
53509
  }),
53513
- defineField18({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53514
- defineField18({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53515
- defineField18({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53516
- defineField18({
53510
+ defineField19({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53511
+ defineField19({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53512
+ defineField19({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53513
+ defineField19({
53517
53514
  name: "content",
53518
53515
  title: "Contenido",
53519
53516
  type: "text",
53520
53517
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53521
53518
  components: { input: TipTapEditor }
53522
53519
  }),
53523
- defineField18({
53520
+ defineField19({
53524
53521
  name: "src",
53525
53522
  title: "URL de incrustaci\xF3n",
53526
53523
  type: "url",
53527
53524
  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.",
53528
53525
  validation: (r) => r.required()
53529
53526
  }),
53530
- defineField18({
53527
+ defineField19({
53531
53528
  name: "iframeTitle",
53532
53529
  title: "T\xEDtulo del iframe (accesibilidad)",
53533
53530
  type: "string",
53534
53531
  validation: (r) => r.required()
53535
53532
  }),
53536
- defineField18({
53533
+ defineField19({
53537
53534
  name: "height",
53538
53535
  title: "Alto (px)",
53539
53536
  type: "number",
53540
53537
  initialValue: 500
53541
53538
  }),
53542
- defineField18({
53539
+ defineField19({
53543
53540
  name: "aspectRatio",
53544
53541
  title: "Relaci\xF3n de aspecto (variante responsiva)",
53545
53542
  type: "string",
@@ -53553,7 +53550,7 @@ var iframeSection = defineType18({
53553
53550
  },
53554
53551
  initialValue: "auto"
53555
53552
  }),
53556
- defineField18({
53553
+ defineField19({
53557
53554
  name: "background",
53558
53555
  title: "Fondo",
53559
53556
  type: "string",
@@ -53572,7 +53569,7 @@ var iframeSection = defineType18({
53572
53569
  },
53573
53570
  initialValue: "default"
53574
53571
  }),
53575
- defineField18({ 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.' })
53572
+ defineField19({ 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.' })
53576
53573
  ],
53577
53574
  preview: {
53578
53575
  select: { title: "title", subtitle: "variant" },
@@ -53583,13 +53580,14 @@ var iframeSection = defineType18({
53583
53580
  });
53584
53581
 
53585
53582
  // ../../apps/studio/schemas/sections/comparison.ts
53586
- import { defineField as defineField19, defineType as defineType19 } from "sanity";
53583
+ import { defineField as defineField20, defineType as defineType19 } from "sanity";
53587
53584
  var comparisonSection = defineType19({
53588
53585
  name: "comparison",
53589
53586
  title: "Comparaci\xF3n",
53590
53587
  type: "object",
53591
53588
  fields: [
53592
- defineField19({
53589
+ ...sectionMediaFields,
53590
+ defineField20({
53593
53591
  name: "variant",
53594
53592
  title: "Variante",
53595
53593
  type: "string",
@@ -53604,24 +53602,24 @@ var comparisonSection = defineType19({
53604
53602
  initialValue: "table",
53605
53603
  validation: (r) => r.required()
53606
53604
  }),
53607
- defineField19({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53608
- defineField19({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53609
- defineField19({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53610
- defineField19({
53605
+ defineField20({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53606
+ defineField20({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53607
+ defineField20({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53608
+ defineField20({
53611
53609
  name: "content",
53612
53610
  title: "Contenido",
53613
53611
  type: "text",
53614
53612
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53615
53613
  components: { input: TipTapEditor }
53616
53614
  }),
53617
- defineField19({
53615
+ defineField20({
53618
53616
  name: "allFeatures",
53619
53617
  title: "Todas las caracter\xEDsticas (lista maestra)",
53620
53618
  type: "array",
53621
53619
  of: [{ type: "string" }],
53622
53620
  description: "Lista completa de caracter\xEDsticas a comparar en todos los planes"
53623
53621
  }),
53624
- defineField19({
53622
+ defineField20({
53625
53623
  name: "columns",
53626
53624
  title: "Planes / Columnas",
53627
53625
  type: "array",
@@ -53629,14 +53627,14 @@ var comparisonSection = defineType19({
53629
53627
  {
53630
53628
  type: "object",
53631
53629
  fields: [
53632
- defineField19({ name: "name", title: "Nombre del plan", type: "string", validation: (r) => r.required() }),
53633
- defineField19({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53634
- defineField19({ name: "price", title: "Precio", type: "string" }),
53635
- defineField19({ name: "priceFrequency", title: "Frecuencia de precio (ej: mes)", type: "string" }),
53636
- defineField19({ name: "badge", title: "Badge (ej: M\xE1s popular)", type: "string" }),
53637
- defineField19({ name: "highlighted", title: "Destacar este plan", type: "boolean", initialValue: false }),
53638
- defineField19({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
53639
- defineField19({
53630
+ defineField20({ name: "name", title: "Nombre del plan", type: "string", validation: (r) => r.required() }),
53631
+ defineField20({ name: "description", title: "Descripci\xF3n", type: "text", rows: 2 }),
53632
+ defineField20({ name: "price", title: "Precio", type: "string" }),
53633
+ defineField20({ name: "priceFrequency", title: "Frecuencia de precio (ej: mes)", type: "string" }),
53634
+ defineField20({ name: "badge", title: "Badge (ej: M\xE1s popular)", type: "string" }),
53635
+ defineField20({ name: "highlighted", title: "Destacar este plan", type: "boolean", initialValue: false }),
53636
+ defineField20({ name: "cta", title: "Bot\xF3n CTA", type: "ctaButton" }),
53637
+ defineField20({
53640
53638
  name: "cells",
53641
53639
  title: "Valores de celda",
53642
53640
  type: "array",
@@ -53651,7 +53649,7 @@ var comparisonSection = defineType19({
53651
53649
  ],
53652
53650
  validation: (r) => r.required().min(2)
53653
53651
  }),
53654
- defineField19({
53652
+ defineField20({
53655
53653
  name: "background",
53656
53654
  title: "Fondo",
53657
53655
  type: "string",
@@ -53670,7 +53668,7 @@ var comparisonSection = defineType19({
53670
53668
  },
53671
53669
  initialValue: "default"
53672
53670
  }),
53673
- defineField19({ 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.' })
53671
+ defineField20({ 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.' })
53674
53672
  ],
53675
53673
  preview: {
53676
53674
  select: { title: "title", subtitle: "variant" },
@@ -53681,13 +53679,14 @@ var comparisonSection = defineType19({
53681
53679
  });
53682
53680
 
53683
53681
  // ../../apps/studio/schemas/sections/duplex.ts
53684
- import { defineField as defineField20, defineType as defineType20 } from "sanity";
53682
+ import { defineField as defineField21, defineType as defineType20 } from "sanity";
53685
53683
  var duplexSection = defineType20({
53686
53684
  name: "duplex",
53687
53685
  title: "Duplex (Imagen + Texto)",
53688
53686
  type: "object",
53689
53687
  fields: [
53690
- defineField20({
53688
+ ...sectionMediaFields,
53689
+ defineField21({
53691
53690
  name: "variant",
53692
53691
  title: "Variante",
53693
53692
  type: "string",
@@ -53702,45 +53701,45 @@ var duplexSection = defineType20({
53702
53701
  initialValue: "image-left",
53703
53702
  validation: (r) => r.required()
53704
53703
  }),
53705
- defineField20({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53706
- defineField20({
53704
+ defineField21({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53705
+ defineField21({
53707
53706
  name: "heading",
53708
53707
  title: "Titular",
53709
53708
  type: "string",
53710
53709
  validation: (r) => r.required()
53711
53710
  }),
53712
- defineField20({ name: "body", title: "Texto del cuerpo", type: "text", rows: 3 }),
53713
- defineField20({
53711
+ defineField21({ name: "body", title: "Texto del cuerpo", type: "text", rows: 3 }),
53712
+ defineField21({
53714
53713
  name: "content",
53715
53714
  title: "Contenido",
53716
53715
  type: "text",
53717
53716
  description: "Texto enriquecido opcional que se muestra debajo del cuerpo de texto.",
53718
53717
  components: { input: TipTapEditor }
53719
53718
  }),
53720
- defineField20({
53719
+ defineField21({
53721
53720
  name: "image",
53722
53721
  title: "Imagen",
53723
53722
  type: "image",
53724
53723
  options: { hotspot: true },
53725
53724
  fields: [
53726
- defineField20({ name: "alt", title: "Texto alternativo", type: "string" })
53725
+ defineField21({ name: "alt", title: "Texto alternativo", type: "string" })
53727
53726
  ]
53728
53727
  }),
53729
- defineField20({
53728
+ defineField21({
53730
53729
  name: "videoUrl",
53731
53730
  title: "URL de video",
53732
53731
  type: "url",
53733
53732
  description: "Si se proporciona, se mostrar\xE1 un video en lugar de la imagen"
53734
53733
  }),
53735
- defineField20({ name: "primaryCTA", title: "Bot\xF3n CTA primario", type: "ctaButton" }),
53736
- defineField20({ name: "secondaryCTA", title: "Bot\xF3n CTA secundario", type: "ctaButton" }),
53737
- defineField20({
53734
+ defineField21({ name: "primaryCTA", title: "Bot\xF3n CTA primario", type: "ctaButton" }),
53735
+ defineField21({ name: "secondaryCTA", title: "Bot\xF3n CTA secundario", type: "ctaButton" }),
53736
+ defineField21({
53738
53737
  name: "bullets",
53739
53738
  title: "Puntos de lista",
53740
53739
  type: "array",
53741
53740
  of: [{ type: "string" }]
53742
53741
  }),
53743
- defineField20({
53742
+ defineField21({
53744
53743
  name: "background",
53745
53744
  title: "Fondo",
53746
53745
  type: "string",
@@ -53759,7 +53758,7 @@ var duplexSection = defineType20({
53759
53758
  },
53760
53759
  initialValue: "default"
53761
53760
  }),
53762
- defineField20({ 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.' })
53761
+ defineField21({ 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.' })
53763
53762
  ],
53764
53763
  preview: {
53765
53764
  select: { title: "heading", subtitle: "variant" },
@@ -53770,13 +53769,14 @@ var duplexSection = defineType20({
53770
53769
  });
53771
53770
 
53772
53771
  // ../../apps/studio/schemas/sections/richtext.ts
53773
- import { defineField as defineField21, defineType as defineType21 } from "sanity";
53772
+ import { defineField as defineField22, defineType as defineType21 } from "sanity";
53774
53773
  var richtextSection = defineType21({
53775
53774
  name: "richtext",
53776
53775
  title: "Texto enriquecido",
53777
53776
  type: "object",
53778
53777
  fields: [
53779
- defineField21({
53778
+ ...sectionMediaFields,
53779
+ defineField22({
53780
53780
  name: "variant",
53781
53781
  title: "Variante",
53782
53782
  type: "string",
@@ -53791,17 +53791,17 @@ var richtextSection = defineType21({
53791
53791
  initialValue: "centered",
53792
53792
  validation: (r) => r.required()
53793
53793
  }),
53794
- defineField21({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53795
- defineField21({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53796
- defineField21({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53797
- defineField21({
53794
+ defineField22({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53795
+ defineField22({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
53796
+ defineField22({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53797
+ defineField22({
53798
53798
  name: "content",
53799
53799
  title: "Contenido",
53800
53800
  type: "text",
53801
53801
  components: { input: TipTapEditor },
53802
53802
  validation: (r) => r.required()
53803
53803
  }),
53804
- defineField21({
53804
+ defineField22({
53805
53805
  name: "background",
53806
53806
  title: "Fondo",
53807
53807
  type: "string",
@@ -53820,7 +53820,7 @@ var richtextSection = defineType21({
53820
53820
  },
53821
53821
  initialValue: "default"
53822
53822
  }),
53823
- defineField21({ 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.' })
53823
+ defineField22({ 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.' })
53824
53824
  ],
53825
53825
  preview: {
53826
53826
  select: { title: "title", subtitle: "variant" },
@@ -53831,13 +53831,14 @@ var richtextSection = defineType21({
53831
53831
  });
53832
53832
 
53833
53833
  // ../../apps/studio/schemas/sections/video-section.ts
53834
- import { defineField as defineField22, defineType as defineType22 } from "sanity";
53834
+ import { defineField as defineField23, defineType as defineType22 } from "sanity";
53835
53835
  var videoSection = defineType22({
53836
53836
  name: "videoSection",
53837
53837
  title: "Video",
53838
53838
  type: "object",
53839
53839
  fields: [
53840
- defineField22({
53840
+ ...sectionMediaFields,
53841
+ defineField23({
53841
53842
  name: "variant",
53842
53843
  title: "Variante",
53843
53844
  type: "string",
@@ -53852,45 +53853,45 @@ var videoSection = defineType22({
53852
53853
  initialValue: "full",
53853
53854
  validation: (r) => r.required()
53854
53855
  }),
53855
- defineField22({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53856
- defineField22({ name: "title", title: "T\xEDtulo de secci\xF3n / Encabezado", type: "string" }),
53857
- defineField22({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53858
- defineField22({
53856
+ defineField23({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53857
+ defineField23({ name: "title", title: "T\xEDtulo de secci\xF3n / Encabezado", type: "string" }),
53858
+ defineField23({ name: "subtitle", title: "Subt\xEDtulo de secci\xF3n", type: "text", rows: 2 }),
53859
+ defineField23({
53859
53860
  name: "content",
53860
53861
  title: "Contenido",
53861
53862
  type: "text",
53862
53863
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53863
53864
  components: { input: TipTapEditor }
53864
53865
  }),
53865
- defineField22({
53866
+ defineField23({
53866
53867
  name: "videoUrl",
53867
53868
  title: "URL del video",
53868
53869
  type: "url",
53869
53870
  description: "Peg\xE1 una URL de YouTube, Vimeo o sub\xED un archivo de video a Sanity",
53870
53871
  validation: (r) => r.required()
53871
53872
  }),
53872
- defineField22({
53873
+ defineField23({
53873
53874
  name: "poster",
53874
53875
  title: "Imagen de poster",
53875
53876
  type: "image",
53876
53877
  options: { hotspot: true },
53877
53878
  fields: [
53878
- defineField22({ name: "alt", title: "Texto alternativo", type: "string" })
53879
+ defineField23({ name: "alt", title: "Texto alternativo", type: "string" })
53879
53880
  ]
53880
53881
  }),
53881
- defineField22({
53882
+ defineField23({
53882
53883
  name: "autoplay",
53883
53884
  title: "Reproducci\xF3n autom\xE1tica",
53884
53885
  type: "boolean",
53885
53886
  initialValue: false
53886
53887
  }),
53887
- defineField22({
53888
+ defineField23({
53888
53889
  name: "loop",
53889
53890
  title: "Repetir en bucle",
53890
53891
  type: "boolean",
53891
53892
  initialValue: false
53892
53893
  }),
53893
- defineField22({
53894
+ defineField23({
53894
53895
  name: "background",
53895
53896
  title: "Fondo",
53896
53897
  type: "string",
@@ -53909,7 +53910,7 @@ var videoSection = defineType22({
53909
53910
  },
53910
53911
  initialValue: "default"
53911
53912
  }),
53912
- defineField22({ 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.' })
53913
+ defineField23({ 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.' })
53913
53914
  ],
53914
53915
  preview: {
53915
53916
  select: { title: "title", subtitle: "variant" },
@@ -53921,7 +53922,7 @@ var videoSection = defineType22({
53921
53922
 
53922
53923
  // ../../apps/studio/schemas/sections/event-registration.ts
53923
53924
  var import_react5 = __toESM(require_react());
53924
- import { defineField as defineField23, defineType as defineType23 } from "sanity";
53925
+ import { defineField as defineField24, defineType as defineType23 } from "sanity";
53925
53926
 
53926
53927
  // ../../apps/studio/components/note-input.tsx
53927
53928
  var import_react4 = __toESM(require_react());
@@ -53951,7 +53952,8 @@ var eventRegistrationSection = defineType23({
53951
53952
  title: "Registro de Evento",
53952
53953
  type: "object",
53953
53954
  fields: [
53954
- defineField23({
53955
+ ...sectionMediaFields,
53956
+ defineField24({
53955
53957
  name: "setupNote",
53956
53958
  title: " ",
53957
53959
  type: "string",
@@ -53962,7 +53964,7 @@ var eventRegistrationSection = defineType23({
53962
53964
  })
53963
53965
  }
53964
53966
  }),
53965
- defineField23({
53967
+ defineField24({
53966
53968
  name: "variant",
53967
53969
  title: "Variante",
53968
53970
  type: "string",
@@ -53977,17 +53979,17 @@ var eventRegistrationSection = defineType23({
53977
53979
  initialValue: "card",
53978
53980
  validation: (r) => r.required()
53979
53981
  }),
53980
- defineField23({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53981
- defineField23({ name: "title", title: "T\xEDtulo", type: "string" }),
53982
- defineField23({ name: "subtitle", title: "Subt\xEDtulo", type: "text", rows: 2 }),
53983
- defineField23({
53982
+ defineField24({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
53983
+ defineField24({ name: "title", title: "T\xEDtulo", type: "string" }),
53984
+ defineField24({ name: "subtitle", title: "Subt\xEDtulo", type: "text", rows: 2 }),
53985
+ defineField24({
53984
53986
  name: "content",
53985
53987
  title: "Contenido",
53986
53988
  type: "text",
53987
53989
  description: "Texto enriquecido opcional que se muestra debajo del subt\xEDtulo.",
53988
53990
  components: { input: TipTapEditor }
53989
53991
  }),
53990
- defineField23({
53992
+ defineField24({
53991
53993
  name: "background",
53992
53994
  title: "Fondo",
53993
53995
  type: "string",
@@ -54002,14 +54004,14 @@ var eventRegistrationSection = defineType23({
54002
54004
  },
54003
54005
  initialValue: "default"
54004
54006
  }),
54005
- defineField23({
54007
+ defineField24({
54006
54008
  name: "image",
54007
54009
  title: "Imagen (variante dividida)",
54008
54010
  type: "image",
54009
54011
  options: { hotspot: true },
54010
- fields: [defineField23({ name: "alt", title: "Texto alternativo", type: "string" })]
54012
+ fields: [defineField24({ name: "alt", title: "Texto alternativo", type: "string" })]
54011
54013
  }),
54012
- defineField23({
54014
+ defineField24({
54013
54015
  name: "formId",
54014
54016
  title: "ID del formulario",
54015
54017
  type: "slug",
@@ -54018,7 +54020,7 @@ var eventRegistrationSection = defineType23({
54018
54020
  validation: (r) => r.required()
54019
54021
  }),
54020
54022
  /* ─── Campos del formulario ─── */
54021
- defineField23({
54023
+ defineField24({
54022
54024
  name: "fields",
54023
54025
  title: "Campos del formulario",
54024
54026
  type: "array",
@@ -54029,13 +54031,13 @@ var eventRegistrationSection = defineType23({
54029
54031
  name: "formField",
54030
54032
  title: "Campo",
54031
54033
  fields: [
54032
- defineField23({
54034
+ defineField24({
54033
54035
  name: "label",
54034
54036
  title: "Nombre del campo",
54035
54037
  type: "string",
54036
54038
  validation: (r) => r.required()
54037
54039
  }),
54038
- defineField23({
54040
+ defineField24({
54039
54041
  name: "fieldType",
54040
54042
  title: "Tipo",
54041
54043
  type: "string",
@@ -54055,18 +54057,18 @@ var eventRegistrationSection = defineType23({
54055
54057
  initialValue: "text",
54056
54058
  validation: (r) => r.required()
54057
54059
  }),
54058
- defineField23({
54060
+ defineField24({
54059
54061
  name: "required",
54060
54062
  title: "Obligatorio",
54061
54063
  type: "boolean",
54062
54064
  initialValue: true
54063
54065
  }),
54064
- defineField23({
54066
+ defineField24({
54065
54067
  name: "placeholder",
54066
54068
  title: "Texto de ayuda (placeholder)",
54067
54069
  type: "string"
54068
54070
  }),
54069
- defineField23({
54071
+ defineField24({
54070
54072
  name: "options",
54071
54073
  title: "Opciones (solo para tipo lista)",
54072
54074
  type: "array",
@@ -54097,19 +54099,19 @@ var eventRegistrationSection = defineType23({
54097
54099
  validation: (r) => r.min(1).error("Agreg\xE1 al menos un campo al formulario")
54098
54100
  }),
54099
54101
  /* ─── Textos ─── */
54100
- defineField23({
54102
+ defineField24({
54101
54103
  name: "buttonLabel",
54102
54104
  title: "Texto del bot\xF3n",
54103
54105
  type: "string",
54104
54106
  initialValue: "Enviar"
54105
54107
  }),
54106
- defineField23({
54108
+ defineField24({
54107
54109
  name: "successMessage",
54108
54110
  title: "Mensaje de \xE9xito",
54109
54111
  type: "string",
54110
54112
  initialValue: "\xA1Tu registro fue enviado con \xE9xito!"
54111
54113
  }),
54112
- defineField23({ 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.' })
54114
+ defineField24({ 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.' })
54113
54115
  ],
54114
54116
  preview: {
54115
54117
  select: { title: "title", variant: "variant" },
@@ -54121,13 +54123,14 @@ var eventRegistrationSection = defineType23({
54121
54123
 
54122
54124
  // ../../apps/studio/schemas/sections/newsletter.ts
54123
54125
  var import_react6 = __toESM(require_react());
54124
- import { defineField as defineField24, defineType as defineType24 } from "sanity";
54126
+ import { defineField as defineField25, defineType as defineType24 } from "sanity";
54125
54127
  var newsletterSection = defineType24({
54126
54128
  name: "newsletter",
54127
54129
  title: "Newsletter",
54128
54130
  type: "object",
54129
54131
  fields: [
54130
- defineField24({
54132
+ ...sectionMediaFields,
54133
+ defineField25({
54131
54134
  name: "setupNote",
54132
54135
  title: " ",
54133
54136
  type: "string",
@@ -54138,7 +54141,7 @@ var newsletterSection = defineType24({
54138
54141
  })
54139
54142
  }
54140
54143
  }),
54141
- defineField24({
54144
+ defineField25({
54142
54145
  name: "variant",
54143
54146
  title: "Variante",
54144
54147
  type: "string",
@@ -54153,17 +54156,17 @@ var newsletterSection = defineType24({
54153
54156
  initialValue: "centered",
54154
54157
  validation: (r) => r.required()
54155
54158
  }),
54156
- defineField24({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
54157
- defineField24({ name: "title", title: "T\xEDtulo", type: "string" }),
54158
- defineField24({ name: "subtitle", title: "Subt\xEDtulo", type: "text", rows: 2 }),
54159
- defineField24({
54159
+ defineField25({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
54160
+ defineField25({ name: "title", title: "T\xEDtulo", type: "string" }),
54161
+ defineField25({ name: "subtitle", title: "Subt\xEDtulo", type: "text", rows: 2 }),
54162
+ defineField25({
54160
54163
  name: "content",
54161
54164
  title: "Contenido",
54162
54165
  type: "text",
54163
54166
  description: "Texto enriquecido que se muestra debajo del subt\xEDtulo.",
54164
54167
  components: { input: TipTapEditor }
54165
54168
  }),
54166
- defineField24({
54169
+ defineField25({
54167
54170
  name: "background",
54168
54171
  title: "Fondo",
54169
54172
  type: "string",
@@ -54178,25 +54181,25 @@ var newsletterSection = defineType24({
54178
54181
  },
54179
54182
  initialValue: "default"
54180
54183
  }),
54181
- defineField24({
54184
+ defineField25({
54182
54185
  name: "placeholder",
54183
54186
  title: "Placeholder del campo email",
54184
54187
  type: "string",
54185
54188
  initialValue: "tu@email.com"
54186
54189
  }),
54187
- defineField24({
54190
+ defineField25({
54188
54191
  name: "buttonLabel",
54189
54192
  title: "Texto del bot\xF3n",
54190
54193
  type: "string",
54191
54194
  initialValue: "Suscribirme"
54192
54195
  }),
54193
- defineField24({
54196
+ defineField25({
54194
54197
  name: "successMessage",
54195
54198
  title: "Mensaje de \xE9xito",
54196
54199
  type: "string",
54197
54200
  initialValue: "\xA1Gracias! Te avisamos cuando haya novedades."
54198
54201
  }),
54199
- defineField24({ 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.' })
54202
+ defineField25({ 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.' })
54200
54203
  ],
54201
54204
  preview: {
54202
54205
  select: { title: "title", variant: "variant" },
@@ -54210,13 +54213,14 @@ var newsletterSection = defineType24({
54210
54213
  });
54211
54214
 
54212
54215
  // ../../apps/studio/schemas/sections/downloads.ts
54213
- import { defineField as defineField25, defineType as defineType25 } from "sanity";
54216
+ import { defineField as defineField26, defineType as defineType25 } from "sanity";
54214
54217
  var downloadsSection = defineType25({
54215
54218
  name: "downloads",
54216
54219
  title: "Descargas",
54217
54220
  type: "object",
54218
54221
  fields: [
54219
- defineField25({
54222
+ ...sectionMediaFields,
54223
+ defineField26({
54220
54224
  name: "variant",
54221
54225
  title: "Variante",
54222
54226
  type: "string",
@@ -54224,17 +54228,19 @@ var downloadsSection = defineType25({
54224
54228
  list: [
54225
54229
  { title: "Grilla \u2014 grupos como cards en grilla", value: "grouped" },
54226
54230
  { title: "Acorde\xF3n \u2014 grupos colapsables", value: "accordion" },
54227
- { title: "Lista plana \u2014 con separadores de grupo", value: "flat" }
54231
+ { title: "Lista plana \u2014 con separadores de grupo", value: "flat" },
54232
+ { title: "Nube \u2014 todos los archivos como chips, sin grupos", value: "cloud" },
54233
+ { title: "Burbujas \u2014 \xEDcono en c\xEDrculo y nombre debajo, sin grupos", value: "bubbles" }
54228
54234
  ],
54229
54235
  layout: "radio"
54230
54236
  },
54231
54237
  initialValue: "grouped",
54232
54238
  validation: (r) => r.required()
54233
54239
  }),
54234
- defineField25({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
54235
- defineField25({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
54236
- defineField25({ name: "subtitle", title: "Subt\xEDtulo", type: "text", rows: 2 }),
54237
- defineField25({
54240
+ defineField26({ name: "badge", title: "Etiqueta / Badge", type: "string" }),
54241
+ defineField26({ name: "title", title: "T\xEDtulo de secci\xF3n", type: "string" }),
54242
+ defineField26({ name: "subtitle", title: "Subt\xEDtulo", type: "text", rows: 2 }),
54243
+ defineField26({
54238
54244
  name: "groups",
54239
54245
  title: "Grupos de archivos",
54240
54246
  type: "array",
@@ -54242,14 +54248,14 @@ var downloadsSection = defineType25({
54242
54248
  {
54243
54249
  type: "object",
54244
54250
  fields: [
54245
- defineField25({
54251
+ defineField26({
54246
54252
  name: "title",
54247
54253
  title: "Nombre del grupo",
54248
54254
  type: "string",
54249
54255
  description: 'Ej: "Carrera 1", "Formularios 2024"',
54250
54256
  validation: (r) => r.required()
54251
54257
  }),
54252
- defineField25({
54258
+ defineField26({
54253
54259
  name: "files",
54254
54260
  title: "Archivos",
54255
54261
  type: "array",
@@ -54257,14 +54263,14 @@ var downloadsSection = defineType25({
54257
54263
  {
54258
54264
  type: "object",
54259
54265
  fields: [
54260
- defineField25({
54266
+ defineField26({
54261
54267
  name: "label",
54262
54268
  title: "Etiqueta del archivo",
54263
54269
  type: "string",
54264
54270
  description: "Nombre visible para el usuario",
54265
54271
  validation: (r) => r.required()
54266
54272
  }),
54267
- defineField25({
54273
+ defineField26({
54268
54274
  name: "file",
54269
54275
  title: "Archivo",
54270
54276
  type: "file",
@@ -54299,7 +54305,7 @@ var downloadsSection = defineType25({
54299
54305
  ],
54300
54306
  validation: (r) => r.required().min(1)
54301
54307
  }),
54302
- defineField25({
54308
+ defineField26({
54303
54309
  name: "background",
54304
54310
  title: "Fondo",
54305
54311
  type: "string",
@@ -54318,7 +54324,7 @@ var downloadsSection = defineType25({
54318
54324
  },
54319
54325
  initialValue: "default"
54320
54326
  }),
54321
- defineField25({
54327
+ defineField26({
54322
54328
  name: "id",
54323
54329
  title: "ID / Anchor",
54324
54330
  type: "string",
@@ -54338,29 +54344,89 @@ var downloadsSection = defineType25({
54338
54344
  });
54339
54345
 
54340
54346
  // ../../apps/studio/schemas/documents/site-settings.ts
54341
- import { defineField as defineField26, defineType as defineType26 } from "sanity";
54347
+ import { defineField as defineField27, defineType as defineType26 } from "sanity";
54348
+
54349
+ // ../../apps/studio/components/color-input.tsx
54350
+ var import_react7 = __toESM(require_react());
54351
+ import { set as set2, unset as unset2 } from "sanity";
54352
+ function ColorInput({ value, onChange }) {
54353
+ const handleChange = (0, import_react7.useCallback)(
54354
+ (e) => {
54355
+ const val = e.currentTarget.value;
54356
+ onChange(val ? set2(val) : unset2());
54357
+ },
54358
+ [onChange]
54359
+ );
54360
+ const handleClear = (0, import_react7.useCallback)(() => onChange(unset2()), [onChange]);
54361
+ const raw = value;
54362
+ if (raw !== void 0 && typeof raw !== "string") {
54363
+ 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(
54364
+ "button",
54365
+ {
54366
+ type: "button",
54367
+ onClick: handleClear,
54368
+ style: {
54369
+ fontSize: 12,
54370
+ padding: "4px 10px",
54371
+ cursor: "pointer",
54372
+ borderRadius: 4,
54373
+ border: "1px solid var(--card-border-color, #e2e2e2)",
54374
+ background: "none",
54375
+ color: "inherit"
54376
+ }
54377
+ },
54378
+ "Limpiar"
54379
+ ));
54380
+ }
54381
+ return /* @__PURE__ */ import_react7.default.createElement("div", { style: { display: "flex", alignItems: "center", gap: 10 } }, /* @__PURE__ */ import_react7.default.createElement(
54382
+ "input",
54383
+ {
54384
+ type: "color",
54385
+ value: value || "#000000",
54386
+ onChange: handleChange,
54387
+ style: {
54388
+ width: 44,
54389
+ height: 36,
54390
+ padding: 2,
54391
+ cursor: "pointer",
54392
+ borderRadius: 6,
54393
+ border: "1px solid var(--card-border-color, #e2e2e2)",
54394
+ background: "none",
54395
+ flexShrink: 0
54396
+ }
54397
+ }
54398
+ ), /* @__PURE__ */ import_react7.default.createElement("code", { style: { fontSize: 12, color: "var(--card-muted-fg-color, #888)" } }, value || "\u2014"));
54399
+ }
54400
+
54401
+ // ../../apps/studio/schemas/documents/site-settings.ts
54342
54402
  var siteSettings = defineType26({
54343
54403
  name: "siteSettings",
54344
54404
  title: "Configuraci\xF3n del sitio",
54345
54405
  type: "document",
54346
54406
  fields: [
54347
- defineField26({ name: "siteName", title: "Nombre del sitio", type: "string", validation: (r) => r.required() }),
54348
- defineField26({
54407
+ defineField27({ name: "siteName", title: "Nombre del sitio", type: "string", validation: (r) => r.required() }),
54408
+ defineField27({
54349
54409
  name: "logo",
54350
54410
  title: "Logo",
54351
54411
  type: "image",
54352
54412
  options: { hotspot: true },
54353
54413
  fields: [
54354
- defineField26({ name: "alt", title: "Texto alternativo", type: "string" })
54414
+ defineField27({ name: "alt", title: "Texto alternativo", type: "string" })
54355
54415
  ]
54356
54416
  }),
54417
+ defineField27({
54418
+ name: "favicon",
54419
+ title: "Favicon",
54420
+ description: "\xCDcono que aparece en la pesta\xF1a del navegador. Recomendado: PNG cuadrado de 32\xD732 o 64\xD764 px (o SVG).",
54421
+ type: "image"
54422
+ }),
54357
54423
  /* ─── Theme ─── */
54358
- defineField26({
54424
+ defineField27({
54359
54425
  name: "theme",
54360
54426
  title: "Tema",
54361
54427
  type: "object",
54362
54428
  fields: [
54363
- defineField26({
54429
+ defineField27({
54364
54430
  name: "mode",
54365
54431
  title: "Modo de color",
54366
54432
  type: "string",
@@ -54374,7 +54440,7 @@ var siteSettings = defineType26({
54374
54440
  },
54375
54441
  initialValue: "light"
54376
54442
  }),
54377
- defineField26({
54443
+ defineField27({
54378
54444
  name: "palette",
54379
54445
  title: "Paleta de colores",
54380
54446
  type: "string",
@@ -54394,26 +54460,26 @@ var siteSettings = defineType26({
54394
54460
  },
54395
54461
  initialValue: "default"
54396
54462
  }),
54397
- defineField26({
54463
+ defineField27({
54398
54464
  name: "customPalette",
54399
- title: "Paleta personalizada (valores HSL, ej: 221 83% 53%)",
54465
+ title: "Paleta personalizada",
54400
54466
  type: "object",
54401
54467
  hidden: ({ parent }) => parent?.palette !== "custom",
54402
54468
  fields: [
54403
- defineField26({ name: "primary", title: "Primario (HSL)", type: "string" }),
54404
- defineField26({ name: "primaryForeground", title: "Primer plano primario (HSL)", type: "string" }),
54405
- defineField26({ name: "secondary", title: "Secundario (HSL)", type: "string" }),
54406
- defineField26({ name: "secondaryForeground", title: "Primer plano secundario (HSL)", type: "string" }),
54407
- defineField26({ name: "accent", title: "Acento (HSL)", type: "string" }),
54408
- defineField26({ name: "accentForeground", title: "Primer plano de acento (HSL)", type: "string" }),
54409
- defineField26({ name: "background", title: "Fondo (HSL)", type: "string" }),
54410
- defineField26({ name: "foreground", title: "Primer plano (HSL)", type: "string" }),
54411
- defineField26({ name: "muted", title: "Suave (HSL)", type: "string" }),
54412
- defineField26({ name: "mutedForeground", title: "Primer plano suave (HSL)", type: "string" }),
54413
- defineField26({ name: "border", title: "Borde (HSL)", type: "string" })
54469
+ defineField27({ name: "primary", title: "Primario", type: "string", components: { input: ColorInput } }),
54470
+ defineField27({ name: "primaryForeground", title: "Primer plano primario", type: "string", components: { input: ColorInput } }),
54471
+ defineField27({ name: "secondary", title: "Secundario", type: "string", components: { input: ColorInput } }),
54472
+ defineField27({ name: "secondaryForeground", title: "Primer plano secundario", type: "string", components: { input: ColorInput } }),
54473
+ defineField27({ name: "accent", title: "Acento", type: "string", components: { input: ColorInput } }),
54474
+ defineField27({ name: "accentForeground", title: "Primer plano de acento", type: "string", components: { input: ColorInput } }),
54475
+ defineField27({ name: "background", title: "Fondo", type: "string", components: { input: ColorInput } }),
54476
+ defineField27({ name: "foreground", title: "Primer plano", type: "string", components: { input: ColorInput } }),
54477
+ defineField27({ name: "muted", title: "Suave", type: "string", components: { input: ColorInput } }),
54478
+ defineField27({ name: "mutedForeground", title: "Primer plano suave", type: "string", components: { input: ColorInput } }),
54479
+ defineField27({ name: "border", title: "Borde", type: "string", components: { input: ColorInput } })
54414
54480
  ]
54415
54481
  }),
54416
- defineField26({
54482
+ defineField27({
54417
54483
  name: "radius",
54418
54484
  title: "Radio de borde (rem)",
54419
54485
  description: "0 = anguloso, 0.5 = predeterminado, 1 = muy redondeado",
@@ -54424,7 +54490,7 @@ var siteSettings = defineType26({
54424
54490
  ]
54425
54491
  }),
54426
54492
  /* ─── Layout ─── */
54427
- defineField26({
54493
+ defineField27({
54428
54494
  name: "layoutVariant",
54429
54495
  title: "Dise\xF1o",
54430
54496
  type: "string",
@@ -54441,7 +54507,7 @@ var siteSettings = defineType26({
54441
54507
  },
54442
54508
  initialValue: "default"
54443
54509
  }),
54444
- defineField26({
54510
+ defineField27({
54445
54511
  name: "headerVariant",
54446
54512
  title: "Encabezado",
54447
54513
  type: "string",
@@ -54459,7 +54525,7 @@ var siteSettings = defineType26({
54459
54525
  },
54460
54526
  initialValue: "default"
54461
54527
  }),
54462
- defineField26({
54528
+ defineField27({
54463
54529
  name: "footerVariant",
54464
54530
  title: "Pie de p\xE1gina",
54465
54531
  type: "string",
@@ -54473,13 +54539,27 @@ var siteSettings = defineType26({
54473
54539
  },
54474
54540
  initialValue: "default"
54475
54541
  }),
54542
+ defineField27({
54543
+ name: "notFoundVariant",
54544
+ title: "P\xE1gina 404",
54545
+ type: "string",
54546
+ options: {
54547
+ list: [
54548
+ { title: "Centrado \u2014 gran n\xFAmero 404 centrado en pantalla", value: "centered" },
54549
+ { title: "Dividido \u2014 branding a la izquierda, mensaje a la derecha", value: "split" },
54550
+ { title: "Minimalista \u2014 solo texto, sin decoraci\xF3n", value: "minimal" }
54551
+ ],
54552
+ layout: "radio"
54553
+ },
54554
+ initialValue: "centered"
54555
+ }),
54476
54556
  /* ─── Navigation ─── */
54477
- defineField26({
54557
+ defineField27({
54478
54558
  name: "navigation",
54479
54559
  title: "Navegaci\xF3n",
54480
54560
  type: "object",
54481
54561
  fields: [
54482
- defineField26({
54562
+ defineField27({
54483
54563
  name: "links",
54484
54564
  title: "Enlaces de navegaci\xF3n",
54485
54565
  type: "array",
@@ -54487,8 +54567,8 @@ var siteSettings = defineType26({
54487
54567
  {
54488
54568
  type: "object",
54489
54569
  fields: [
54490
- defineField26({ name: "label", title: "Etiqueta", type: "string" }),
54491
- defineField26({ name: "href", title: "Href", type: "string" })
54570
+ defineField27({ name: "label", title: "Etiqueta", type: "string" }),
54571
+ defineField27({ name: "href", title: "Href", type: "string" })
54492
54572
  ],
54493
54573
  preview: { select: { title: "label", subtitle: "href" } }
54494
54574
  }
@@ -54497,14 +54577,14 @@ var siteSettings = defineType26({
54497
54577
  ]
54498
54578
  }),
54499
54579
  /* ─── Footer ─── */
54500
- defineField26({
54580
+ defineField27({
54501
54581
  name: "footer",
54502
54582
  title: "Pie de p\xE1gina",
54503
54583
  type: "object",
54504
54584
  fields: [
54505
- defineField26({ name: "text", title: "Texto del pie / copyright", type: "string" }),
54506
- defineField26({ name: "description", title: "Descripci\xF3n del pie (variante columnas)", type: "string" }),
54507
- defineField26({
54585
+ defineField27({ name: "text", title: "Texto del pie / copyright", type: "string" }),
54586
+ defineField27({ name: "description", title: "Descripci\xF3n del pie (variante columnas)", type: "string" }),
54587
+ defineField27({
54508
54588
  name: "links",
54509
54589
  title: "Enlaces del pie",
54510
54590
  type: "array",
@@ -54512,14 +54592,14 @@ var siteSettings = defineType26({
54512
54592
  {
54513
54593
  type: "object",
54514
54594
  fields: [
54515
- defineField26({ name: "label", title: "Etiqueta", type: "string" }),
54516
- defineField26({ name: "href", title: "Href", type: "string" })
54595
+ defineField27({ name: "label", title: "Etiqueta", type: "string" }),
54596
+ defineField27({ name: "href", title: "Href", type: "string" })
54517
54597
  ],
54518
54598
  preview: { select: { title: "label", subtitle: "href" } }
54519
54599
  }
54520
54600
  ]
54521
54601
  }),
54522
- defineField26({
54602
+ defineField27({
54523
54603
  name: "columns",
54524
54604
  title: "Columnas de enlaces (variante columnas)",
54525
54605
  type: "array",
@@ -54527,8 +54607,8 @@ var siteSettings = defineType26({
54527
54607
  {
54528
54608
  type: "object",
54529
54609
  fields: [
54530
- defineField26({ name: "title", title: "T\xEDtulo de columna", type: "string" }),
54531
- defineField26({
54610
+ defineField27({ name: "title", title: "T\xEDtulo de columna", type: "string" }),
54611
+ defineField27({
54532
54612
  name: "links",
54533
54613
  title: "Enlaces",
54534
54614
  type: "array",
@@ -54536,8 +54616,8 @@ var siteSettings = defineType26({
54536
54616
  {
54537
54617
  type: "object",
54538
54618
  fields: [
54539
- defineField26({ name: "label", title: "Etiqueta", type: "string" }),
54540
- defineField26({ name: "href", title: "Href", type: "string" })
54619
+ defineField27({ name: "label", title: "Etiqueta", type: "string" }),
54620
+ defineField27({ name: "href", title: "Href", type: "string" })
54541
54621
  ],
54542
54622
  preview: { select: { title: "label", subtitle: "href" } }
54543
54623
  }