@rebuy/rebuy 2.18.1-rc.2 → 2.18.1

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 (97) hide show
  1. package/dist/index.js +991 -1361
  2. package/dist/index.js.map +3 -3
  3. package/dist/index.mjs +991 -1351
  4. package/dist/index.mjs.map +3 -3
  5. package/dist/schema/checkout-and-beyond.js +350 -547
  6. package/dist/schema/checkout-and-beyond.js.map +3 -3
  7. package/dist/schema/checkout-and-beyond.mjs +350 -537
  8. package/dist/schema/checkout-and-beyond.mjs.map +3 -3
  9. package/dist/schema/metadata.d.ts +659 -659
  10. package/dist/schema/metadata.d.ts.map +1 -1
  11. package/dist/schema/product.d.ts +377 -377
  12. package/dist/schema/product.d.ts.map +1 -1
  13. package/dist/schema/shop-config.js +58 -75
  14. package/dist/schema/shop-config.js.map +2 -2
  15. package/dist/schema/shop-config.mjs +58 -65
  16. package/dist/schema/shop-config.mjs.map +2 -2
  17. package/dist/schema/shopConfig.d.ts +77 -59
  18. package/dist/schema/shopConfig.d.ts.map +1 -1
  19. package/dist/schema/user-config.js +62 -79
  20. package/dist/schema/user-config.js.map +3 -3
  21. package/dist/schema/user-config.mjs +62 -69
  22. package/dist/schema/user-config.mjs.map +3 -3
  23. package/dist/schema/userConfig.d.ts +81 -63
  24. package/dist/schema/userConfig.d.ts.map +1 -1
  25. package/dist/schema/widget-data.js +406 -609
  26. package/dist/schema/widget-data.js.map +3 -3
  27. package/dist/schema/widget-data.mjs +406 -599
  28. package/dist/schema/widget-data.mjs.map +3 -3
  29. package/dist/schema/widgetData.d.ts +377 -195
  30. package/dist/schema/widgetData.d.ts.map +1 -1
  31. package/dist/schema/widgets/abTestingPlaceholder.d.ts +5 -5
  32. package/dist/schema/widgets/abTestingPlaceholder.d.ts.map +1 -1
  33. package/dist/schema/widgets/checkout-and-beyond/button.d.ts +101 -53
  34. package/dist/schema/widgets/checkout-and-beyond/button.d.ts.map +1 -1
  35. package/dist/schema/widgets/checkout-and-beyond/carousel.d.ts +137 -3
  36. package/dist/schema/widgets/checkout-and-beyond/carousel.d.ts.map +1 -1
  37. package/dist/schema/widgets/checkout-and-beyond/cartLine.d.ts +135 -3
  38. package/dist/schema/widgets/checkout-and-beyond/cartLine.d.ts.map +1 -1
  39. package/dist/schema/widgets/checkout-and-beyond/common.d.ts +218 -26
  40. package/dist/schema/widgets/checkout-and-beyond/common.d.ts.map +1 -1
  41. package/dist/schema/widgets/checkout-and-beyond/constants.d.ts +27 -1
  42. package/dist/schema/widgets/checkout-and-beyond/constants.d.ts.map +1 -1
  43. package/dist/schema/widgets/checkout-and-beyond/dataSource.d.ts +38 -34
  44. package/dist/schema/widgets/checkout-and-beyond/dataSource.d.ts.map +1 -1
  45. package/dist/schema/widgets/checkout-and-beyond/image.d.ts +111 -48
  46. package/dist/schema/widgets/checkout-and-beyond/image.d.ts.map +1 -1
  47. package/dist/schema/widgets/checkout-and-beyond/layout.d.ts +138 -67
  48. package/dist/schema/widgets/checkout-and-beyond/layout.d.ts.map +1 -1
  49. package/dist/schema/widgets/checkout-and-beyond/offers.d.ts +135 -3
  50. package/dist/schema/widgets/checkout-and-beyond/offers.d.ts.map +1 -1
  51. package/dist/schema/widgets/checkout-and-beyond/product.d.ts +19 -12
  52. package/dist/schema/widgets/checkout-and-beyond/product.d.ts.map +1 -1
  53. package/dist/schema/widgets/checkout-and-beyond/products.d.ts +23 -26
  54. package/dist/schema/widgets/checkout-and-beyond/products.d.ts.map +1 -1
  55. package/dist/schema/widgets/checkout-and-beyond/quantity.d.ts +67 -45
  56. package/dist/schema/widgets/checkout-and-beyond/quantity.d.ts.map +1 -1
  57. package/dist/schema/widgets/checkout-and-beyond/reviews.d.ts +62 -33
  58. package/dist/schema/widgets/checkout-and-beyond/reviews.d.ts.map +1 -1
  59. package/dist/schema/widgets/checkout-and-beyond/root.d.ts +181 -80
  60. package/dist/schema/widgets/checkout-and-beyond/root.d.ts.map +1 -1
  61. package/dist/schema/widgets/checkout-and-beyond/rule.d.ts +160 -45
  62. package/dist/schema/widgets/checkout-and-beyond/rule.d.ts.map +1 -1
  63. package/dist/schema/widgets/checkout-and-beyond/shared.d.ts +23 -12
  64. package/dist/schema/widgets/checkout-and-beyond/shared.d.ts.map +1 -1
  65. package/dist/schema/widgets/checkout-and-beyond/table.d.ts +134 -2
  66. package/dist/schema/widgets/checkout-and-beyond/table.d.ts.map +1 -1
  67. package/dist/schema/widgets/checkout-and-beyond/text.d.ts +210 -507
  68. package/dist/schema/widgets/checkout-and-beyond/text.d.ts.map +1 -1
  69. package/dist/schema/widgets/checkout-and-beyond/variants.d.ts +65 -33
  70. package/dist/schema/widgets/checkout-and-beyond/variants.d.ts.map +1 -1
  71. package/dist/schema/widgets/checkoutExtension.d.ts +5 -5
  72. package/dist/schema/widgets/checkoutExtension.d.ts.map +1 -1
  73. package/dist/schema/widgets/contentBlock.d.ts +254 -124
  74. package/dist/schema/widgets/contentBlock.d.ts.map +1 -1
  75. package/dist/schema/widgets/giftWithPurchase.d.ts +5 -5
  76. package/dist/schema/widgets/giftWithPurchase.d.ts.map +1 -1
  77. package/dist/schema/widgets/lineItemEditor.d.ts +5 -5
  78. package/dist/schema/widgets/lineItemEditor.d.ts.map +1 -1
  79. package/dist/schema/widgets/post-purchase-offer/common.d.ts +2 -2
  80. package/dist/schema/widgets/post-purchase-offer/common.d.ts.map +1 -1
  81. package/dist/schema/widgets/post-purchase-offer/constants.d.ts +13 -1
  82. package/dist/schema/widgets/post-purchase-offer/constants.d.ts.map +1 -1
  83. package/dist/schema/widgets/post-purchase-offer/postPurchaseBlocks.d.ts +1077 -2455
  84. package/dist/schema/widgets/post-purchase-offer/postPurchaseBlocks.d.ts.map +1 -1
  85. package/dist/schema/widgets/post-purchase-offer/postPurchaseOffer.d.ts +721 -2240
  86. package/dist/schema/widgets/post-purchase-offer/postPurchaseOffer.d.ts.map +1 -1
  87. package/dist/schema/widgets/post-purchase-offer/postPurchaseSettings.d.ts +698 -2228
  88. package/dist/schema/widgets/post-purchase-offer/postPurchaseSettings.d.ts.map +1 -1
  89. package/dist/schema/widgets/post-purchase-offer/postPurchaseWidget.d.ts +717 -2236
  90. package/dist/schema/widgets/post-purchase-offer/postPurchaseWidget.d.ts.map +1 -1
  91. package/dist/schema/widgets/progressBar.d.ts +5 -5
  92. package/dist/schema/widgets/progressBar.d.ts.map +1 -1
  93. package/dist/schema/widgets/rebuyButton.d.ts +166 -88
  94. package/dist/schema/widgets/rebuyButton.d.ts.map +1 -1
  95. package/dist/schema/widgets/rebuyMonetize.d.ts +5 -5
  96. package/dist/schema/widgets/rebuyMonetize.d.ts.map +1 -1
  97. package/package.json +4 -4
package/dist/index.js CHANGED
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
19
 
30
20
  // src/index.ts
@@ -145,7 +135,6 @@ __export(src_exports, {
145
135
  directions: () => directions,
146
136
  editorModes: () => editorModes,
147
137
  enabled: () => enabled,
148
- enumOf: () => enumOf,
149
138
  extensionWidgetTypes: () => extensionWidgetTypes,
150
139
  find: () => find,
151
140
  firstAvailableVariant: () => firstAvailableVariant,
@@ -247,8 +236,8 @@ function stripHtml(str) {
247
236
  }
248
237
  function getIdFromGraphUrl(graphId, objectType) {
249
238
  let id = null;
250
- const regex5 = new RegExp(`gid://shopify/${objectType}/(.*)`);
251
- const matches = graphId.match(regex5);
239
+ const regex = new RegExp(`gid://shopify/${objectType}/(.*)`);
240
+ const matches = graphId.match(regex);
252
241
  if (matches != null) {
253
242
  const matchedId = matches[1];
254
243
  if (!isNaN(Number(matchedId))) {
@@ -257,8 +246,8 @@ function getIdFromGraphUrl(graphId, objectType) {
257
246
  }
258
247
  return id;
259
248
  }
260
- function variantAvailable(variant9) {
261
- return !(variant9.inventory_management && variant9.inventory_policy === "deny" && variant9.inventory_quantity <= 0);
249
+ function variantAvailable(variant) {
250
+ return !(variant.inventory_management && variant.inventory_policy === "deny" && variant.inventory_quantity <= 0);
262
251
  }
263
252
  function firstAvailableVariant(product) {
264
253
  let selectedVariant = product.variants[0];
@@ -304,7 +293,7 @@ function convertProductToStorefrontFormat(product) {
304
293
  const minVariantCompareAtPrice = variantMinMaxPriceObject(product, "compare_at_price", "min");
305
294
  const maxVariantCompareAtPrice = variantMinMaxPriceObject(product, "compare_at_price", "max");
306
295
  const selectedOptions = selectedVariantOptions(product, defaultVariant);
307
- const variants = product.variants.map((variant9) => convertVariantToStorefrontFormat(product, variant9));
296
+ const variants = product.variants.map((variant) => convertVariantToStorefrontFormat(product, variant));
308
297
  return {
309
298
  collections: null,
310
299
  compareAtPriceRange: {
@@ -347,15 +336,15 @@ function convertToNodes(arr) {
347
336
  ]
348
337
  };
349
338
  }
350
- function convertVariantToStorefrontFormat(product, variant9) {
351
- const selectedOptions = selectedVariantOptions(product, variant9);
352
- const image = productImageObject(product, variant9.image_id);
339
+ function convertVariantToStorefrontFormat(product, variant) {
340
+ const selectedOptions = selectedVariantOptions(product, variant);
341
+ const image = productImageObject(product, variant.image_id);
353
342
  return {
354
- availableForSale: variantAvailable(variant9),
355
- compareAtPriceV2: variantPriceObject(variant9, "compare_at_price"),
356
- id: `gid://shopify/ProductVariant/${variant9.id}`,
343
+ availableForSale: variantAvailable(variant),
344
+ compareAtPriceV2: variantPriceObject(variant, "compare_at_price"),
345
+ id: `gid://shopify/ProductVariant/${variant.id}`,
357
346
  image,
358
- priceV2: variantPriceObject(variant9, "price"),
347
+ priceV2: variantPriceObject(variant, "price"),
359
348
  product: {
360
349
  handle: product.handle,
361
350
  id: product.id,
@@ -363,8 +352,8 @@ function convertVariantToStorefrontFormat(product, variant9) {
363
352
  vendor: product.vendor
364
353
  },
365
354
  selectedOptions: [selectedOptions],
366
- sku: variant9.sku,
367
- title: variant9.title
355
+ sku: variant.sku,
356
+ title: variant.title
368
357
  };
369
358
  }
370
359
  function variantMinMaxPriceObject(product, key = "price", operator = "min") {
@@ -381,25 +370,25 @@ function variantMinMaxPriceObject(product, key = "price", operator = "min") {
381
370
  }
382
371
  return priceObject;
383
372
  }
384
- function variantPriceObject(variant9, key = "price") {
385
- if (variant9[key] != null) {
373
+ function variantPriceObject(variant, key = "price") {
374
+ if (variant[key] != null) {
386
375
  return {
387
- amount: variant9[key],
376
+ amount: variant[key],
388
377
  currencyCode: "USD"
389
378
  };
390
379
  }
391
380
  return null;
392
381
  }
393
- function selectedVariantOptions(product, variant9) {
382
+ function selectedVariantOptions(product, variant) {
394
383
  const selectedOptions = {};
395
- if (variant9.option1 != null) {
396
- selectedOptions[product.options[0].name] = variant9.option1;
384
+ if (variant.option1 != null) {
385
+ selectedOptions[product.options[0].name] = variant.option1;
397
386
  }
398
- if (variant9.option2 != null) {
399
- selectedOptions[product.options[1].name] = variant9.option2;
387
+ if (variant.option2 != null) {
388
+ selectedOptions[product.options[1].name] = variant.option2;
400
389
  }
401
- if (variant9.option3 != null) {
402
- selectedOptions[product.options[2].name] = variant9.option3;
390
+ if (variant.option3 != null) {
391
+ selectedOptions[product.options[2].name] = variant.option3;
403
392
  }
404
393
  return selectedOptions;
405
394
  }
@@ -435,8 +424,8 @@ function queryStringToObject(str) {
435
424
  function utmObjectFromString(str) {
436
425
  const utmKeys = ["utm_campaign", "utm_medium", "utm_source", "utm_term", "utm_content"];
437
426
  const matches = {};
438
- const url6 = new URL(str);
439
- const queryObject = queryStringToObject(url6.search);
427
+ const url = new URL(str);
428
+ const queryObject = queryStringToObject(url.search);
440
429
  for (const [key, value] of Object.entries(queryObject)) {
441
430
  if (utmKeys.includes(key)) {
442
431
  matches[key] = value;
@@ -521,8 +510,8 @@ var stagingDomains = [
521
510
  "dash-ext-hoke.myshopify.com"
522
511
  ];
523
512
  var makeCall = async (key, method, path, data, origin, options = {}) => {
524
- const url6 = `${origin}${path}`;
525
- const requestUrl = new URL(url6);
513
+ const url = `${origin}${path}`;
514
+ const requestUrl = new URL(url);
526
515
  const fetchOptions = options?.fetch ?? {};
527
516
  const requestData = {};
528
517
  if (typeof data == "object" && data != null) {
@@ -952,303 +941,289 @@ var RebuyClient = class {
952
941
  };
953
942
 
954
943
  // src/schema/metadata.ts
955
- var v2 = __toESM(require("valibot"), 1);
944
+ var import_v42 = require("zod/v4");
956
945
 
957
946
  // src/schema/product.ts
958
- var v = __toESM(require("valibot"), 1);
959
- var vDatetime = v.pipe(v.string(), v.isoTimestamp());
960
- var CacheInfo = v.object({
961
- cachedAtTime: v.union([v.string(), v.number()]),
962
- cacheExpires: v.optional(v.union([v.string(), v.number()])),
963
- cacheKey: v.string(),
964
- cacheKeyReadable: v.string(),
965
- cacheType: v.optional(v.string()),
966
- loadedOptions: v.optional(v.record(v.string(), v.boolean()))
947
+ var import_v4 = require("zod/v4");
948
+ var zDatetime = import_v4.z.iso.datetime({ offset: true });
949
+ var CacheInfo = import_v4.z.object({
950
+ cachedAtTime: import_v4.z.union([import_v4.z.string(), import_v4.z.number()]),
951
+ cacheExpires: import_v4.z.union([import_v4.z.string(), import_v4.z.number()]).optional(),
952
+ cacheKey: import_v4.z.string(),
953
+ cacheKeyReadable: import_v4.z.string(),
954
+ cacheType: import_v4.z.string().optional(),
955
+ loadedOptions: import_v4.z.record(import_v4.z.string(), import_v4.z.boolean()).optional()
967
956
  });
968
- var Category = v.object({
969
- adminGraphqlApiId: v.string(),
970
- fullName: v.string(),
971
- name: v.string()
957
+ var Category = import_v4.z.object({
958
+ adminGraphqlApiId: import_v4.z.string(),
959
+ fullName: import_v4.z.string(),
960
+ name: import_v4.z.string()
972
961
  });
973
- var Metafield = v.object({
974
- key: v.string(),
975
- namespace: v.string(),
976
- type: v.string(),
977
- value: v.string()
962
+ var Metafield = import_v4.z.object({
963
+ key: import_v4.z.string(),
964
+ namespace: import_v4.z.string(),
965
+ type: import_v4.z.string(),
966
+ value: import_v4.z.string()
978
967
  });
979
- var Image = v.object({
980
- adminGraphqlApiId: v.string(),
981
- alt: v.nullable(v.string()),
982
- createdAt: v.optional(vDatetime),
983
- height: v.number(),
984
- id: v.number(),
985
- metafields: v.optional(v.array(Metafield)),
986
- position: v.number(),
987
- productId: v.number(),
988
- src: v.pipe(v.string(), v.url()),
989
- updatedAt: v.optional(vDatetime),
990
- variantIds: v.array(v.number()),
991
- width: v.number()
968
+ var Image = import_v4.z.object({
969
+ adminGraphqlApiId: import_v4.z.string(),
970
+ alt: import_v4.z.string().nullable(),
971
+ createdAt: zDatetime.optional(),
972
+ height: import_v4.z.number(),
973
+ id: import_v4.z.number(),
974
+ metafields: import_v4.z.array(Metafield).optional(),
975
+ position: import_v4.z.number(),
976
+ productId: import_v4.z.number(),
977
+ src: import_v4.z.url(),
978
+ updatedAt: zDatetime.optional(),
979
+ variantIds: import_v4.z.array(import_v4.z.number()),
980
+ width: import_v4.z.number()
992
981
  });
993
- var Media = v.object({
994
- adminGraphqlApiId: v.string(),
995
- alt: v.nullable(v.string()),
996
- createdAt: vDatetime,
997
- id: v.number(),
998
- mediaContentType: v.string(),
999
- position: v.number(),
1000
- previewImage: v.object({
1001
- height: v.number(),
1002
- src: v.pipe(v.string(), v.url()),
1003
- status: v.string(),
1004
- width: v.number()
1005
- }),
1006
- productId: v.number(),
1007
- status: v.string(),
1008
- updatedAt: vDatetime,
1009
- variantIds: v.array(v.number())
982
+ var Media = import_v4.z.object({
983
+ adminGraphqlApiId: import_v4.z.string(),
984
+ alt: import_v4.z.string().nullable(),
985
+ createdAt: zDatetime,
986
+ id: import_v4.z.number(),
987
+ mediaContentType: import_v4.z.string(),
988
+ position: import_v4.z.number(),
989
+ previewImage: import_v4.z.object({ height: import_v4.z.number(), src: import_v4.z.url(), status: import_v4.z.string(), width: import_v4.z.number() }),
990
+ productId: import_v4.z.number(),
991
+ status: import_v4.z.string(),
992
+ updatedAt: zDatetime,
993
+ variantIds: import_v4.z.array(import_v4.z.number())
1010
994
  });
1011
- var Option = v.object({
1012
- id: v.number(),
1013
- name: v.string(),
1014
- position: v.number(),
1015
- productId: v.number(),
1016
- values: v.array(v.string())
995
+ var Option = import_v4.z.object({
996
+ id: import_v4.z.number(),
997
+ name: import_v4.z.string(),
998
+ position: import_v4.z.number(),
999
+ productId: import_v4.z.number(),
1000
+ values: import_v4.z.array(import_v4.z.string())
1017
1001
  });
1018
- var PriceAdjustment = v.object({
1019
- orderCount: v.optional(v.number()),
1020
- position: v.number(),
1021
- value: v.string(),
1022
- valueType: v.string()
1002
+ var PriceAdjustment = import_v4.z.object({
1003
+ orderCount: import_v4.z.number().optional(),
1004
+ position: import_v4.z.number(),
1005
+ value: import_v4.z.string(),
1006
+ valueType: import_v4.z.string()
1023
1007
  });
1024
- var Ratings = v.union([
1025
- v.object({ judgemeAverageStarRating: v.number(), judgemeTotalReviews: v.number() }),
1026
- v.object({ junipAverageStarRating: v.number(), junipTotalReviews: v.number() }),
1027
- v.object({ klaviyoAverageStarRating: v.number(), klaviyoTotalReviews: v.number() }),
1028
- v.object({ looxAverageStarRating: v.number(), looxTotalReviews: v.number() }),
1029
- v.object({ okendoAverageStarRating: v.number(), okendoTotalReviews: v.number() }),
1030
- v.object({ opinewAverageStarRating: v.number(), opinewTotalReviews: v.number() }),
1031
- v.object({ reviewsioAverageStarRating: v.number(), reviewsioTotalReviews: v.number() }),
1032
- v.object({ stampedAverageStarRating: v.number(), stampedTotalReviews: v.number() }),
1033
- v.object({ yotpoAverageStarRating: v.number(), yotpoTotalReviews: v.number() })
1008
+ var Ratings = import_v4.z.union([
1009
+ import_v4.z.object({ judgemeAverageStarRating: import_v4.z.number(), judgemeTotalReviews: import_v4.z.number() }),
1010
+ import_v4.z.object({ junipAverageStarRating: import_v4.z.number(), junipTotalReviews: import_v4.z.number() }),
1011
+ import_v4.z.object({ klaviyoAverageStarRating: import_v4.z.number(), klaviyoTotalReviews: import_v4.z.number() }),
1012
+ import_v4.z.object({ looxAverageStarRating: import_v4.z.number(), looxTotalReviews: import_v4.z.number() }),
1013
+ import_v4.z.object({ okendoAverageStarRating: import_v4.z.number(), okendoTotalReviews: import_v4.z.number() }),
1014
+ import_v4.z.object({ opinewAverageStarRating: import_v4.z.number(), opinewTotalReviews: import_v4.z.number() }),
1015
+ import_v4.z.object({ reviewsioAverageStarRating: import_v4.z.number(), reviewsioTotalReviews: import_v4.z.number() }),
1016
+ import_v4.z.object({ stampedAverageStarRating: import_v4.z.number(), stampedTotalReviews: import_v4.z.number() }),
1017
+ import_v4.z.object({ yotpoAverageStarRating: import_v4.z.number(), yotpoTotalReviews: import_v4.z.number() })
1034
1018
  ]);
1035
- var SellingPlan = v.object({
1036
- description: v.optional(v.string()),
1037
- id: v.number(),
1038
- name: v.string(),
1039
- options: v.array(v.object({ name: v.string(), position: v.number(), value: v.string() })),
1040
- orderIntervalFrequency: v.optional(v.string()),
1041
- orderIntervalUnitType: v.optional(v.string()),
1042
- position: v.optional(v.number()),
1043
- priceAdjustments: v.array(PriceAdjustment),
1044
- shopifyVariantId: v.optional(v.string())
1019
+ var SellingPlan = import_v4.z.object({
1020
+ description: import_v4.z.string().optional(),
1021
+ id: import_v4.z.number(),
1022
+ name: import_v4.z.string(),
1023
+ options: import_v4.z.array(import_v4.z.object({ name: import_v4.z.string(), position: import_v4.z.number(), value: import_v4.z.string() })),
1024
+ orderIntervalFrequency: import_v4.z.string().optional(),
1025
+ orderIntervalUnitType: import_v4.z.string().optional(),
1026
+ position: import_v4.z.number().optional(),
1027
+ priceAdjustments: import_v4.z.array(PriceAdjustment),
1028
+ shopifyVariantId: import_v4.z.string().optional()
1045
1029
  });
1046
- var SellingPlanAllocation = v.object({
1047
- compareAtPrice: v.number(),
1048
- perDeliveryPrice: v.number(),
1049
- price: v.number(),
1050
- priceAdjustments: v.array(PriceAdjustment),
1051
- sellingPlanGroupId: v.string(),
1052
- sellingPlanId: v.number()
1030
+ var SellingPlanAllocation = import_v4.z.object({
1031
+ compareAtPrice: import_v4.z.number(),
1032
+ perDeliveryPrice: import_v4.z.number(),
1033
+ price: import_v4.z.number(),
1034
+ priceAdjustments: import_v4.z.array(PriceAdjustment),
1035
+ sellingPlanGroupId: import_v4.z.string(),
1036
+ sellingPlanId: import_v4.z.number()
1053
1037
  });
1054
- var SellingPlanGroup = v.object({
1055
- appId: v.optional(v.string()),
1056
- description: v.optional(v.string()),
1057
- discountAmount: v.optional(v.number()),
1058
- discountType: v.optional(v.string()),
1059
- id: v.string(),
1060
- name: v.string(),
1061
- options: v.array(Option),
1062
- requiresSellingPlan: v.optional(v.boolean()),
1063
- sellingPlans: v.array(SellingPlan),
1064
- variants: v.array(v.number())
1038
+ var SellingPlanGroup = import_v4.z.object({
1039
+ appId: import_v4.z.string().optional(),
1040
+ description: import_v4.z.string().optional(),
1041
+ discountAmount: import_v4.z.number().optional(),
1042
+ discountType: import_v4.z.string().optional(),
1043
+ id: import_v4.z.string(),
1044
+ name: import_v4.z.string(),
1045
+ options: import_v4.z.array(Option),
1046
+ requiresSellingPlan: import_v4.z.boolean().optional(),
1047
+ sellingPlans: import_v4.z.array(SellingPlan),
1048
+ variants: import_v4.z.array(import_v4.z.number())
1065
1049
  });
1066
- var Variant = v.object({
1067
- adminGraphqlApiId: v.string(),
1068
- barcode: v.nullable(v.string()),
1069
- compareAtPrice: v.nullable(v.string()),
1070
- createdAt: vDatetime,
1071
- fulfillmentService: v.nullish(v.string()),
1072
- grams: v.number(),
1073
- id: v.number(),
1074
- imageId: v.nullable(v.number()),
1075
- inventoryItemId: v.optional(v.number()),
1076
- inventoryManagement: v.nullable(v.string()),
1077
- inventoryPolicy: v.string(),
1078
- inventoryQuantity: v.number(),
1079
- link: v.pipe(v.string(), v.url()),
1080
- oldInventoryQuantity: v.optional(v.number()),
1081
- option1: v.string(),
1082
- option2: v.nullable(v.string()),
1083
- option3: v.nullable(v.string()),
1084
- position: v.number(),
1085
- price: v.string(),
1086
- productId: v.number(),
1087
- requiresShipping: v.boolean(),
1088
- sellingPlanAllocations: v.optional(v.array(SellingPlanAllocation)),
1089
- sku: v.nullable(v.string()),
1090
- taxable: v.boolean(),
1091
- taxCode: v.optional(v.string()),
1092
- title: v.string(),
1093
- updatedAt: vDatetime,
1094
- weight: v.number(),
1095
- weightUnit: v.optional(v.string())
1050
+ var Variant = import_v4.z.object({
1051
+ adminGraphqlApiId: import_v4.z.string(),
1052
+ barcode: import_v4.z.string().nullable(),
1053
+ compareAtPrice: import_v4.z.string().nullable(),
1054
+ createdAt: zDatetime,
1055
+ fulfillmentService: import_v4.z.string().nullish(),
1056
+ grams: import_v4.z.number(),
1057
+ id: import_v4.z.number(),
1058
+ imageId: import_v4.z.number().nullable(),
1059
+ inventoryItemId: import_v4.z.number().optional(),
1060
+ inventoryManagement: import_v4.z.string().nullable(),
1061
+ inventoryPolicy: import_v4.z.string(),
1062
+ inventoryQuantity: import_v4.z.number(),
1063
+ link: import_v4.z.url(),
1064
+ oldInventoryQuantity: import_v4.z.number().optional(),
1065
+ option1: import_v4.z.string(),
1066
+ option2: import_v4.z.string().nullable(),
1067
+ option3: import_v4.z.string().nullable(),
1068
+ position: import_v4.z.number(),
1069
+ price: import_v4.z.string(),
1070
+ productId: import_v4.z.number(),
1071
+ requiresShipping: import_v4.z.boolean(),
1072
+ sellingPlanAllocations: import_v4.z.array(SellingPlanAllocation).optional(),
1073
+ sku: import_v4.z.string().nullable(),
1074
+ taxable: import_v4.z.boolean(),
1075
+ taxCode: import_v4.z.string().optional(),
1076
+ title: import_v4.z.string(),
1077
+ updatedAt: zDatetime,
1078
+ weight: import_v4.z.number(),
1079
+ weightUnit: import_v4.z.string().optional()
1096
1080
  });
1097
- var Product = v.object({
1098
- adminGraphqlApiId: v.string(),
1099
- bodyHtml: v.nullable(v.string()),
1081
+ var Product = import_v4.z.object({
1082
+ adminGraphqlApiId: import_v4.z.string(),
1083
+ bodyHtml: import_v4.z.string().nullable(),
1100
1084
  cacheInfo: CacheInfo,
1101
- category: v.nullish(Category),
1102
- collectionIds: v.array(v.number()),
1103
- createdAt: vDatetime,
1104
- description: v.string(),
1105
- handle: v.string(),
1106
- hasVariantsThatRequiresComponents: v.optional(v.boolean()),
1107
- id: v.number(),
1108
- image: v.nullable(Image),
1109
- images: v.nullable(v.array(Image)),
1110
- link: v.pipe(v.string(), v.url()),
1111
- media: v.optional(v.array(Media)),
1112
- metafields: v.optional(v.array(Metafield)),
1113
- options: v.array(Option),
1114
- owner: v.union([v.string(), v.number()]),
1115
- productType: v.string(),
1116
- publishedAt: v.nullable(vDatetime),
1117
- publishedScope: v.optional(v.string()),
1118
- purchaseOptions: v.optional(v.array(v.object({ discountOptions: v.array(v.never()) }))),
1119
- ratings: v.optional(Ratings),
1120
- selectedIndexPurchasedOption: v.optional(v.number()),
1121
- sellingPlanAllocation: v.optional(SellingPlanAllocation),
1122
- sellingPlanGroups: v.optional(v.array(SellingPlanGroup)),
1123
- status: v.string(),
1124
- tags: v.string(),
1125
- templateSuffix: v.nullable(v.string()),
1126
- title: v.string(),
1127
- updatedAt: vDatetime,
1128
- variantGids: v.optional(v.array(v.object({ adminGraphqlApiId: v.string(), updatedAt: vDatetime }))),
1129
- variantIds: v.optional(v.array(v.object({ id: v.number() }))),
1130
- variants: v.array(Variant),
1131
- vendor: v.string()
1085
+ category: Category.nullish(),
1086
+ collectionIds: import_v4.z.array(import_v4.z.number()),
1087
+ createdAt: zDatetime,
1088
+ description: import_v4.z.string(),
1089
+ handle: import_v4.z.string(),
1090
+ hasVariantsThatRequiresComponents: import_v4.z.boolean().optional(),
1091
+ id: import_v4.z.number(),
1092
+ image: Image.nullable(),
1093
+ images: import_v4.z.array(Image).nullable(),
1094
+ link: import_v4.z.url(),
1095
+ media: import_v4.z.array(Media).optional(),
1096
+ metafields: import_v4.z.array(Metafield).optional(),
1097
+ options: import_v4.z.array(Option),
1098
+ owner: import_v4.z.union([import_v4.z.string(), import_v4.z.number()]),
1099
+ productType: import_v4.z.string(),
1100
+ publishedAt: zDatetime.nullable(),
1101
+ publishedScope: import_v4.z.string().optional(),
1102
+ purchaseOptions: import_v4.z.array(import_v4.z.object({ discountOptions: import_v4.z.array(import_v4.z.never()) })).optional(),
1103
+ ratings: Ratings.optional(),
1104
+ selectedIndexPurchasedOption: import_v4.z.number().optional(),
1105
+ sellingPlanAllocation: SellingPlanAllocation.optional(),
1106
+ sellingPlanGroups: import_v4.z.array(SellingPlanGroup).optional(),
1107
+ status: import_v4.z.string(),
1108
+ tags: import_v4.z.string(),
1109
+ templateSuffix: import_v4.z.string().nullable(),
1110
+ title: import_v4.z.string(),
1111
+ updatedAt: zDatetime,
1112
+ variantGids: import_v4.z.array(import_v4.z.object({ adminGraphqlApiId: import_v4.z.string(), updatedAt: zDatetime })).optional(),
1113
+ variantIds: import_v4.z.array(import_v4.z.object({ id: import_v4.z.number() })).optional(),
1114
+ variants: import_v4.z.array(Variant),
1115
+ vendor: import_v4.z.string()
1132
1116
  });
1133
1117
 
1134
1118
  // src/schema/metadata.ts
1135
- var BaseRule = v2.object({
1136
- operator: v2.string(),
1137
- type: v2.string(),
1138
- value: v2.union([v2.string(), v2.number()])
1119
+ var BaseRule = import_v42.z.object({
1120
+ operator: import_v42.z.string(),
1121
+ type: import_v42.z.string(),
1122
+ value: import_v42.z.union([import_v42.z.string(), import_v42.z.number()])
1139
1123
  });
1140
- var Rule = v2.object({
1141
- ...BaseRule.entries,
1142
- conditions: v2.optional(v2.array(v2.object({ type: v2.string(), value: v2.union([v2.string(), v2.number()]) }))),
1143
- products: v2.optional(
1144
- v2.array(
1145
- v2.object({
1146
- productId: v2.number(),
1147
- subRules: v2.optional(v2.object({ logic: v2.array(v2.object({ rules: v2.array(BaseRule) })) })),
1148
- variantIds: v2.array(v2.number())
1149
- })
1150
- )
1151
- )
1124
+ var Rule = BaseRule.extend({
1125
+ conditions: import_v42.z.array(import_v42.z.object({ type: import_v42.z.string(), value: import_v42.z.union([import_v42.z.string(), import_v42.z.number()]) })).optional(),
1126
+ products: import_v42.z.array(
1127
+ import_v42.z.object({
1128
+ productId: import_v42.z.number(),
1129
+ subRules: import_v42.z.object({ logic: import_v42.z.array(import_v42.z.object({ rules: import_v42.z.array(BaseRule) })) }).optional(),
1130
+ variantIds: import_v42.z.array(import_v42.z.number())
1131
+ })
1132
+ ).optional()
1152
1133
  });
1153
- var Output = v2.object({
1154
- channel: v2.optional(v2.string()),
1155
- collectionId: v2.optional(v2.number()),
1156
- collectionSort: v2.optional(v2.string()),
1157
- collectionSortType: v2.nullish(v2.string()),
1158
- days: v2.optional(v2.string()),
1159
- discount: v2.optional(v2.object({ amount: v2.string(), type: v2.string() })),
1160
- endpoint: v2.optional(v2.string()),
1161
- key: v2.optional(v2.string()),
1162
- operator: v2.optional(v2.string()),
1163
- productPrice: v2.optional(v2.object({ amount: v2.string(), type: v2.string() })),
1164
- products: v2.optional(v2.array(v2.object({ productId: v2.number(), variantIds: v2.array(v2.number()) }))),
1165
- productWithTagsSort: v2.optional(v2.string()),
1166
- trendingSort: v2.optional(v2.string()),
1167
- type: v2.string(),
1168
- value: v2.optional(v2.union([v2.string(), v2.number(), v2.boolean()]))
1134
+ var Output = import_v42.z.object({
1135
+ channel: import_v42.z.string().optional(),
1136
+ collectionId: import_v42.z.number().optional(),
1137
+ collectionSort: import_v42.z.string().optional(),
1138
+ collectionSortType: import_v42.z.string().nullish(),
1139
+ days: import_v42.z.string().optional(),
1140
+ discount: import_v42.z.object({ amount: import_v42.z.string(), type: import_v42.z.string() }).optional(),
1141
+ endpoint: import_v42.z.string().optional(),
1142
+ key: import_v42.z.string().optional(),
1143
+ operator: import_v42.z.string().optional(),
1144
+ productPrice: import_v42.z.object({ amount: import_v42.z.string(), type: import_v42.z.string() }).optional(),
1145
+ products: import_v42.z.array(import_v42.z.object({ productId: import_v42.z.number(), variantIds: import_v42.z.array(import_v42.z.number()) })).optional(),
1146
+ productWithTagsSort: import_v42.z.string().optional(),
1147
+ trendingSort: import_v42.z.string().optional(),
1148
+ type: import_v42.z.string(),
1149
+ value: import_v42.z.union([import_v42.z.string(), import_v42.z.number(), import_v42.z.boolean()]).optional()
1169
1150
  });
1170
- var MatchedRule = v2.object({
1171
- collapsed: v2.optional(v2.boolean()),
1172
- exitIfMatched: v2.boolean(),
1173
- index: v2.number(),
1174
- logic: v2.array(v2.object({ rules: v2.array(Rule) })),
1175
- output: v2.array(Output)
1151
+ var MatchedRule = import_v42.z.object({
1152
+ collapsed: import_v42.z.boolean().optional(),
1153
+ exitIfMatched: import_v42.z.boolean(),
1154
+ index: import_v42.z.number(),
1155
+ logic: import_v42.z.array(import_v42.z.object({ rules: import_v42.z.array(Rule) })),
1156
+ output: import_v42.z.array(Output)
1176
1157
  });
1177
- var Metadata = v2.object({
1178
- cacheInfo: v2.optional(CacheInfo),
1179
- cartItems: v2.optional(v2.array(v2.never())),
1180
- errors: v2.optional(v2.array(v2.never())),
1181
- filteredInputProducts: v2.optional(v2.array(v2.never())),
1182
- filteredOosProducts: v2.optional(v2.array(Product)),
1183
- globalExcludedProducts: v2.optional(v2.array(Product)),
1184
- inputProducts: v2.optional(v2.array(v2.never())),
1185
- matchedRules: v2.optional(v2.array(MatchedRule)),
1186
- topSellersFilled: v2.optional(v2.boolean()),
1187
- unevaluatedRules: v2.optional(v2.array(MatchedRule)),
1188
- unmatchedRules: v2.optional(v2.array(MatchedRule)),
1189
- widget: v2.optional(
1190
- v2.object({
1191
- discount: v2.optional(v2.object({ amount: v2.string(), type: v2.string() })),
1192
- language: v2.optional(v2.record(v2.string(), v2.string()))
1193
- })
1194
- )
1158
+ var Metadata = import_v42.z.object({
1159
+ cacheInfo: CacheInfo.optional(),
1160
+ cartItems: import_v42.z.array(import_v42.z.never()).optional(),
1161
+ errors: import_v42.z.array(import_v42.z.never()).optional(),
1162
+ filteredInputProducts: import_v42.z.array(import_v42.z.never()).optional(),
1163
+ filteredOosProducts: import_v42.z.array(Product).optional(),
1164
+ globalExcludedProducts: import_v42.z.array(Product).optional(),
1165
+ inputProducts: import_v42.z.array(import_v42.z.never()).optional(),
1166
+ matchedRules: import_v42.z.array(MatchedRule).optional(),
1167
+ topSellersFilled: import_v42.z.boolean().optional(),
1168
+ unevaluatedRules: import_v42.z.array(MatchedRule).optional(),
1169
+ unmatchedRules: import_v42.z.array(MatchedRule).optional(),
1170
+ widget: import_v42.z.object({
1171
+ discount: import_v42.z.object({ amount: import_v42.z.string(), type: import_v42.z.string() }).optional(),
1172
+ language: import_v42.z.record(import_v42.z.string(), import_v42.z.string()).optional()
1173
+ }).optional()
1195
1174
  });
1196
1175
 
1197
1176
  // src/schema/shopConfig.ts
1198
- var v3 = __toESM(require("valibot"), 1);
1199
- var coerceNumber = v3.pipe(
1200
- v3.unknown(),
1201
- v3.transform((value) => Number(value))
1202
- );
1203
- var ShopConfig = v3.object({
1204
- activeExperiments: v3.array(
1205
- v3.object({
1206
- data: v3.array(
1207
- v3.object({
1208
- aliasName: v3.string(),
1209
- cssInput: v3.nullish(v3.string()),
1210
- elementId: coerceNumber,
1211
- id: coerceNumber,
1212
- javascriptInput: v3.nullish(v3.string()),
1213
- traffic: coerceNumber
1177
+ var import_v43 = require("zod/v4");
1178
+ var ShopConfig = import_v43.z.object({
1179
+ activeExperiments: import_v43.z.array(
1180
+ import_v43.z.object({
1181
+ data: import_v43.z.array(
1182
+ import_v43.z.object({
1183
+ aliasName: import_v43.z.string(),
1184
+ cssInput: import_v43.z.string().nullish(),
1185
+ elementId: import_v43.z.coerce.number(),
1186
+ id: import_v43.z.coerce.number(),
1187
+ javascriptInput: import_v43.z.string().nullish(),
1188
+ traffic: import_v43.z.coerce.number()
1214
1189
  })
1215
1190
  ),
1216
- id: coerceNumber,
1217
- name: v3.string(),
1218
- pageTarget: v3.nullable(v3.string()),
1219
- pageTargetUrl: v3.nullable(v3.string()),
1220
- placeholderId: v3.nullable(coerceNumber),
1221
- type: v3.string()
1191
+ id: import_v43.z.coerce.number(),
1192
+ name: import_v43.z.string(),
1193
+ pageTarget: import_v43.z.string().nullable(),
1194
+ pageTargetUrl: import_v43.z.string().nullable(),
1195
+ placeholderId: import_v43.z.coerce.number().nullable(),
1196
+ type: import_v43.z.string()
1222
1197
  })
1223
1198
  ),
1224
- activePackages: v3.array(
1225
- v3.object({
1226
- cancelledAt: v3.nullable(v3.string()),
1227
- id: v3.number(),
1228
- installedAt: v3.nullable(v3.string()),
1229
- isActive: v3.boolean(),
1230
- isBillable: v3.boolean(),
1231
- packageId: v3.number(),
1232
- packageName: v3.string(),
1233
- shortName: v3.string(),
1234
- trialDays: v3.number(),
1235
- uninstalledAt: v3.nullable(v3.string())
1199
+ activePackages: import_v43.z.array(
1200
+ import_v43.z.object({
1201
+ cancelledAt: import_v43.z.string().nullable(),
1202
+ id: import_v43.z.number(),
1203
+ installedAt: import_v43.z.string().nullable(),
1204
+ isActive: import_v43.z.boolean(),
1205
+ isBillable: import_v43.z.boolean(),
1206
+ packageId: import_v43.z.number(),
1207
+ packageName: import_v43.z.string(),
1208
+ shortName: import_v43.z.string(),
1209
+ trialDays: import_v43.z.number(),
1210
+ uninstalledAt: import_v43.z.string().nullable()
1236
1211
  })
1237
1212
  ),
1238
- apiKey: v3.string(),
1239
- billingVersion: v3.nullable(v3.string()),
1240
- cacheKey: coerceNumber,
1241
- carousel: v3.picklist(["flickity", "splide"]),
1242
- currency: v3.string(),
1243
- currencySymbol: v3.string(),
1244
- domain: v3.string(),
1245
- enabledJquery: v3.boolean(),
1246
- enabledPresentmentCurrencies: v3.array(v3.string()),
1247
- hasSmartCollectionsEnabled: v3.boolean(),
1248
- hasSmartSearchEnabled: v3.boolean(),
1249
- id: coerceNumber,
1250
- integrations: v3.record(
1251
- v3.picklist([
1213
+ apiKey: import_v43.z.string(),
1214
+ billingVersion: import_v43.z.string().nullable(),
1215
+ cacheKey: import_v43.z.coerce.number(),
1216
+ carousel: import_v43.z.enum(["flickity", "splide"]),
1217
+ currency: import_v43.z.string(),
1218
+ currencySymbol: import_v43.z.string(),
1219
+ domain: import_v43.z.string(),
1220
+ enabledJquery: import_v43.z.boolean(),
1221
+ enabledPresentmentCurrencies: import_v43.z.array(import_v43.z.string()),
1222
+ hasSmartCollectionsEnabled: import_v43.z.boolean(),
1223
+ hasSmartSearchEnabled: import_v43.z.boolean(),
1224
+ id: import_v43.z.coerce.number(),
1225
+ integrations: import_v43.z.record(
1226
+ import_v43.z.enum([
1252
1227
  "attentive",
1253
1228
  "judgeme",
1254
1229
  "junip",
@@ -1261,55 +1236,56 @@ var ShopConfig = v3.object({
1261
1236
  "stamped",
1262
1237
  "yotpo"
1263
1238
  ]),
1264
- v3.union([v3.boolean(), v3.unknown()])
1239
+ import_v43.z.union([import_v43.z.boolean(), import_v43.z.unknown()])
1265
1240
  ),
1266
- markets: v3.object({
1267
- enabled: v3.boolean()
1241
+ markets: import_v43.z.object({
1242
+ enabled: import_v43.z.boolean()
1268
1243
  }),
1269
- moneyFormat: v3.string(),
1270
- myshopifyDomain: v3.string(),
1271
- primaryLocale: v3.string(),
1272
- productGroupsEnabled: v3.pipe(
1273
- v3.picklist(["no", "yes"]),
1274
- v3.transform((value) => value === "yes")
1275
- ),
1276
- rechargeCustomDomain: v3.nullable(v3.string()),
1277
- sellingPlansEnabled: v3.boolean(),
1278
- shopId: v3.number(),
1279
- shopifySellingPlansEnabled: v3.boolean(),
1280
- shopName: v3.string(),
1281
- storefrontAccessToken: v3.nullable(v3.string()),
1282
- useRebuyIcons: v3.boolean()
1244
+ moneyFormat: import_v43.z.string(),
1245
+ myshopifyDomain: import_v43.z.string(),
1246
+ primaryLocale: import_v43.z.string(),
1247
+ productGroupsEnabled: import_v43.z.enum(["no", "yes"]).transform((value) => value === "yes"),
1248
+ rechargeCustomDomain: import_v43.z.string().nullable(),
1249
+ sellingPlansEnabled: import_v43.z.boolean(),
1250
+ shopId: import_v43.z.number(),
1251
+ shopifySellingPlansEnabled: import_v43.z.boolean(),
1252
+ shopName: import_v43.z.string(),
1253
+ storefrontAccessToken: import_v43.z.string().nullable(),
1254
+ useRebuyIcons: import_v43.z.boolean()
1283
1255
  });
1284
1256
 
1285
1257
  // src/schema/userConfig.ts
1286
- var v4 = __toESM(require("valibot"), 1);
1287
- var UserConfig = v4.object({
1258
+ var import_v44 = require("zod/v4");
1259
+ var UserConfig = import_v44.z.object({
1288
1260
  shop: ShopConfig,
1289
- smartCart: v4.unknown(),
1290
- smartFlows: v4.array(v4.unknown())
1261
+ smartCart: import_v44.z.unknown(),
1262
+ smartFlows: import_v44.z.array(import_v44.z.unknown())
1291
1263
  });
1292
1264
 
1293
1265
  // src/schema/widgetData.ts
1294
- var v30 = __toESM(require("valibot"), 1);
1266
+ var import_v432 = require("zod/v4");
1295
1267
 
1296
1268
  // src/schema/widgets/abTestingPlaceholder.ts
1297
- var v5 = __toESM(require("valibot"), 1);
1298
- var ABTestingPlaceholder = v5.looseObject({
1299
- type: v5.literal("placeholder")
1269
+ var import_v45 = require("zod/v4");
1270
+ var ABTestingPlaceholder = import_v45.z.looseObject({
1271
+ type: import_v45.z.literal("placeholder")
1300
1272
  });
1301
1273
 
1302
1274
  // src/schema/widgets/checkout-and-beyond/constants.ts
1303
1275
  var import_es_toolkit = require("es-toolkit");
1276
+ var import_v47 = require("zod/v4");
1304
1277
 
1305
1278
  // src/schema/widgets/checkout-and-beyond/common.ts
1306
- var enumOf = (values) => Object.fromEntries(values.map((value) => [value, value]));
1279
+ var import_v46 = require("zod/v4");
1307
1280
  var borderRadii = ["none", "small", "base", "large", "fullyRounded"];
1308
- var BorderRadius = enumOf(borderRadii);
1281
+ var borderRadius = import_v46.z.enum(borderRadii);
1282
+ var BorderRadius = borderRadius.enum;
1309
1283
  var borderStyles = ["none", "base", "dotted", "dashed"];
1310
- var BorderStyle = enumOf(borderStyles);
1284
+ var borderStyle = import_v46.z.enum(borderStyles);
1285
+ var BorderStyle = borderStyle.enum;
1311
1286
  var borderWidths = ["base", "medium", "thick"];
1312
- var BorderWidth = enumOf(borderWidths);
1287
+ var borderWidth = import_v46.z.enum(borderWidths);
1288
+ var BorderWidth = borderWidth.enum;
1313
1289
  var buttonActions = [
1314
1290
  "addToOrder",
1315
1291
  "declineAllOffers",
@@ -1327,7 +1303,8 @@ var buttonActions = [
1327
1303
  "showVariants",
1328
1304
  "switchToSubscription"
1329
1305
  ];
1330
- var ButtonAction = enumOf(buttonActions);
1306
+ var buttonAction = import_v46.z.enum(buttonActions);
1307
+ var ButtonAction = buttonAction.enum;
1331
1308
  var buttonFields = [
1332
1309
  "activePage",
1333
1310
  "addedToCart",
@@ -1348,11 +1325,14 @@ var buttonFields = [
1348
1325
  "switchToSubscriptionNoDiscount",
1349
1326
  "switchToSubscriptionWithDiscount"
1350
1327
  ];
1351
- var ButtonField = enumOf(buttonFields);
1328
+ var buttonField = import_v46.z.enum(buttonFields);
1329
+ var ButtonField = buttonField.enum;
1352
1330
  var buttonStyles = ["primary", "secondary", "plain", "custom"];
1353
- var ButtonStyle = enumOf(buttonStyles);
1331
+ var buttonStyle = import_v46.z.enum(buttonStyles);
1332
+ var ButtonStyle = buttonStyle.enum;
1354
1333
  var directions = ["columns", "rows", "grid"];
1355
- var Direction = enumOf(directions);
1334
+ var direction = import_v46.z.enum(directions);
1335
+ var Direction = direction.enum;
1356
1336
  var editorModes = [
1357
1337
  "checkoutExtension",
1358
1338
  "postPurchaseOffer",
@@ -1361,9 +1341,11 @@ var editorModes = [
1361
1341
  "ordersIndexPage",
1362
1342
  "customerProfilePage"
1363
1343
  ];
1364
- var EditorMode = enumOf(editorModes);
1344
+ var editorMode = import_v46.z.enum(editorModes);
1345
+ var EditorMode = editorMode.enum;
1365
1346
  var horizontalAlignments = ["start", "center", "end"];
1366
- var HorizontalAlignment = enumOf(horizontalAlignments);
1347
+ var horizontalAlignment = import_v46.z.enum(horizontalAlignments);
1348
+ var HorizontalAlignment = horizontalAlignment.enum;
1367
1349
  var languageKeys = [
1368
1350
  "ar",
1369
1351
  "cs",
@@ -1392,11 +1374,14 @@ var languageKeys = [
1392
1374
  "vi",
1393
1375
  "zh"
1394
1376
  ];
1395
- var LanguageKey = enumOf(languageKeys);
1377
+ var languageKey = import_v46.z.enum(languageKeys);
1378
+ var LanguageKey = languageKey.enum;
1396
1379
  var objectFits = ["cover", "contain"];
1397
- var ObjectFit = enumOf(objectFits);
1380
+ var objectFit = import_v46.z.enum(objectFits);
1381
+ var ObjectFit = objectFit.enum;
1398
1382
  var popoverPositions = ["inlineStart", "inlineEnd", "blockStart", "blockEnd"];
1399
- var PopoverPosition = enumOf(popoverPositions);
1383
+ var popoverPosition = import_v46.z.enum(popoverPositions);
1384
+ var PopoverPosition = popoverPosition.enum;
1400
1385
  var popoverPositionMap = {
1401
1386
  bottom: "blockEnd",
1402
1387
  left: "inlineStart",
@@ -1404,9 +1389,11 @@ var popoverPositionMap = {
1404
1389
  top: "blockStart"
1405
1390
  };
1406
1391
  var productTypes = ["one-time", "subscription", "both"];
1407
- var ProductType = enumOf(productTypes);
1392
+ var productType = import_v46.z.enum(productTypes);
1393
+ var ProductType = productType.enum;
1408
1394
  var quantityInputs = ["select", "number"];
1409
- var QuantityInput = enumOf(quantityInputs);
1395
+ var quantityInput = import_v46.z.enum(quantityInputs);
1396
+ var QuantityInput = quantityInput.enum;
1410
1397
  var sectionTypes = [
1411
1398
  "button",
1412
1399
  "carousel",
@@ -1423,23 +1410,32 @@ var sectionTypes = [
1423
1410
  "text",
1424
1411
  "variants"
1425
1412
  ];
1426
- var SectionType = enumOf(sectionTypes);
1413
+ var sectionType = import_v46.z.enum(sectionTypes);
1414
+ var SectionType = sectionType.enum;
1427
1415
  var spacings = ["none", "extraTight", "tight", "base", "loose", "extraLoose"];
1428
- var Spacing = enumOf(spacings);
1416
+ var spacing = import_v46.z.enum(spacings);
1417
+ var Spacing = spacing.enum;
1429
1418
  var textAlignments = ["start", "center", "end"];
1430
- var TextAlignment = enumOf(textAlignments);
1419
+ var textAlignment = import_v46.z.enum(textAlignments);
1420
+ var TextAlignment = textAlignment.enum;
1431
1421
  var textColorNames = ["base", "subdued", "accent", "decorative", "success", "warning", "critical"];
1432
- var TextColorName = enumOf(textColorNames);
1422
+ var textColorName = import_v46.z.enum(textColorNames);
1423
+ var TextColorName = textColorName.enum;
1433
1424
  var textSizeNames = ["extraSmall", "small", "base", "medium", "large", "extraLarge"];
1434
- var TextSizeName = enumOf(textSizeNames);
1425
+ var textSizeName = import_v46.z.enum(textSizeNames);
1426
+ var TextSizeName = textSizeName.enum;
1435
1427
  var variantSelectors = ["menu", "radio", "button"];
1436
- var VariantSelector = enumOf(variantSelectors);
1428
+ var variantSelector = import_v46.z.enum(variantSelectors);
1429
+ var VariantSelector = variantSelector.enum;
1437
1430
  var reviewsSizes = ["small", "default", "large"];
1438
- var ReviewsSize = enumOf(reviewsSizes);
1431
+ var reviewsSize = import_v46.z.enum(reviewsSizes);
1432
+ var ReviewsSize = reviewsSize.enum;
1439
1433
  var variantModes = ["multiple", "single"];
1440
- var VariantMode = enumOf(variantModes);
1434
+ var variantMode = import_v46.z.enum(variantModes);
1435
+ var VariantMode = variantMode.enum;
1441
1436
  var verticalAlignments = ["top", "middle", "bottom"];
1442
- var VerticalAlignment = enumOf(verticalAlignments);
1437
+ var verticalAlignment = import_v46.z.enum(verticalAlignments);
1438
+ var VerticalAlignment = verticalAlignment.enum;
1443
1439
 
1444
1440
  // src/schema/widgets/checkout-and-beyond/constants.ts
1445
1441
  var DEFAULT_ENDPOINTS = [
@@ -1514,26 +1510,27 @@ var widgetTypes = [
1514
1510
  "ui_extension_line_item_editor",
1515
1511
  "ui_extension_progress_bar"
1516
1512
  ];
1517
- var WidgetType = enumOf(widgetTypes);
1513
+ var widgetType = import_v47.z.enum(widgetTypes);
1514
+ var WidgetType = widgetType.enum;
1518
1515
 
1519
1516
  // src/schema/widgets/checkoutExtension.ts
1520
- var v6 = __toESM(require("valibot"), 1);
1521
- var CheckoutExtension = v6.looseObject({
1522
- type: v6.optional(v6.literal(WidgetType.shopify_checkout_extension), WidgetType.shopify_checkout_extension)
1517
+ var import_v48 = require("zod/v4");
1518
+ var CheckoutExtension = import_v48.z.looseObject({
1519
+ type: import_v48.z.literal(WidgetType.shopify_checkout_extension).default(WidgetType.shopify_checkout_extension)
1523
1520
  });
1524
1521
 
1525
1522
  // src/schema/widgets/contentBlock.ts
1526
- var v24 = __toESM(require("valibot"), 1);
1523
+ var import_v426 = require("zod/v4");
1527
1524
 
1528
1525
  // src/schema/widgets/checkout-and-beyond/root.ts
1529
- var v23 = __toESM(require("valibot"), 1);
1526
+ var import_v425 = require("zod/v4");
1530
1527
 
1531
1528
  // src/schema/widgets/checkout-and-beyond/layout.ts
1532
1529
  var import_uuid10 = require("uuid");
1533
- var v22 = __toESM(require("valibot"), 1);
1530
+ var import_v424 = require("zod/v4");
1534
1531
 
1535
1532
  // src/schema/widgets/checkout-and-beyond/rule.ts
1536
- var v7 = __toESM(require("valibot"), 1);
1533
+ var import_v49 = require("zod/v4");
1537
1534
  var ruleTypes = [
1538
1535
  "cart",
1539
1536
  "cart_count",
@@ -1552,7 +1549,8 @@ var ruleTypes = [
1552
1549
  "product_type",
1553
1550
  "product_vendor"
1554
1551
  ];
1555
- var RuleType = enumOf(ruleTypes);
1552
+ var ruleType = import_v49.z.enum(ruleTypes);
1553
+ var RuleType = ruleType.enum;
1556
1554
  var ruleOperators = [
1557
1555
  "after",
1558
1556
  "anything",
@@ -1566,71 +1564,48 @@ var ruleOperators = [
1566
1564
  "greater_than",
1567
1565
  "less_than"
1568
1566
  ];
1569
- var RuleOperator = enumOf(ruleOperators);
1570
- var RuleCondition = v7.object({
1571
- operator: v7.optional(v7.picklist(ruleOperators), RuleOperator.anything),
1572
- products: v7.optional(
1573
- v7.union([
1574
- v7.array(v7.unknown()),
1575
- v7.pipe(
1576
- v7.strictObject({}),
1577
- v7.transform(() => [])
1578
- )
1579
- ]),
1580
- () => []
1581
- ),
1582
- type: v7.optional(v7.picklist(ruleTypes), RuleType.cart_subtotal),
1583
- value: v7.optional(
1584
- v7.pipe(
1585
- v7.unknown(),
1586
- v7.transform((value) => String(value))
1587
- ),
1588
- ""
1589
- )
1567
+ var ruleOperator = import_v49.z.enum(ruleOperators);
1568
+ var RuleOperator = ruleOperator.enum;
1569
+ var RuleCondition = import_v49.z.object({
1570
+ operator: import_v49.z.enum(ruleOperators).default(RuleOperator.anything),
1571
+ products: import_v49.z.union([import_v49.z.array(import_v49.z.unknown()), import_v49.z.strictObject({}).transform(() => [])]).default(() => []),
1572
+ type: import_v49.z.enum(ruleTypes).default(RuleType.cart_subtotal),
1573
+ value: import_v49.z.coerce.string().default("")
1590
1574
  });
1591
- var RuleLogicBlock = v7.object({
1592
- rules: v7.optional(v7.array(RuleCondition), () => [])
1575
+ var RuleLogicBlock = import_v49.z.object({
1576
+ rules: import_v49.z.array(RuleCondition).default(() => [])
1593
1577
  });
1594
- var CABRule = v7.object({
1595
- dataSourceId: v7.optional(v7.nullable(v7.number()), null),
1596
- enabled: v7.optional(v7.boolean(), false),
1597
- ruleset: v7.optional(
1598
- v7.union([
1599
- v7.array(
1600
- v7.object({
1601
- exitIfMatched: v7.optional(v7.boolean(), true),
1602
- logic: v7.optional(v7.array(RuleLogicBlock), () => []),
1603
- output: v7.optional(
1604
- v7.array(
1605
- v7.object({
1606
- key: v7.optional(v7.string(), "should_show"),
1607
- type: v7.optional(v7.literal("data_json"), "data_json"),
1608
- value: v7.optional(v7.string(), "true")
1609
- })
1610
- ),
1611
- () => [{ key: "should_show", type: "data_json", value: "true" }]
1612
- )
1613
- })
1614
- ),
1615
- v7.pipe(
1616
- v7.strictObject({}),
1617
- v7.transform(() => [])
1618
- )
1619
- ]),
1620
- () => []
1621
- )
1578
+ var CABRule = import_v49.z.object({
1579
+ dataSourceId: import_v49.z.number().nullable().default(null),
1580
+ enabled: import_v49.z.boolean().default(false),
1581
+ ruleset: import_v49.z.union([
1582
+ import_v49.z.array(
1583
+ import_v49.z.object({
1584
+ exitIfMatched: import_v49.z.boolean().default(true),
1585
+ logic: import_v49.z.array(RuleLogicBlock).default(() => []),
1586
+ output: import_v49.z.array(
1587
+ import_v49.z.object({
1588
+ key: import_v49.z.string().default("should_show"),
1589
+ type: import_v49.z.literal("data_json").default("data_json"),
1590
+ value: import_v49.z.string().default("true")
1591
+ })
1592
+ ).default(() => [{ key: "should_show", type: "data_json", value: "true" }])
1593
+ })
1594
+ ),
1595
+ import_v49.z.strictObject({}).transform(() => [])
1596
+ ]).default(() => [])
1622
1597
  });
1623
1598
 
1624
1599
  // src/schema/widgets/checkout-and-beyond/shared.ts
1625
- var v21 = __toESM(require("valibot"), 1);
1600
+ var import_v423 = require("zod/v4");
1626
1601
 
1627
1602
  // src/schema/widgets/checkout-and-beyond/button.ts
1628
1603
  var import_uuid3 = require("uuid");
1629
- var v10 = __toESM(require("valibot"), 1);
1604
+ var import_v412 = require("zod/v4");
1630
1605
 
1631
1606
  // src/schema/widgets/checkout-and-beyond/image.ts
1632
1607
  var import_uuid = require("uuid");
1633
- var v8 = __toESM(require("valibot"), 1);
1608
+ var import_v410 = require("zod/v4");
1634
1609
 
1635
1610
  // src/schema/widgets/checkout-and-beyond/regex.ts
1636
1611
  var ARRAY_INDEX_STRING = /^(0|[1-9]\d*)$/;
@@ -1680,617 +1655,421 @@ var convertNumericObjects = (input) => {
1680
1655
  };
1681
1656
 
1682
1657
  // src/schema/widgets/checkout-and-beyond/image.ts
1683
- var CABImageSection = v8.object({
1684
- altText: v8.optional(
1685
- v8.pipe(
1686
- v8.string(),
1687
- v8.check((value) => checkForHTML(value), NO_HTML.message)
1688
- ),
1689
- ""
1690
- ),
1691
- aspectRatio: v8.optional(v8.nullable(v8.literal(1)), null),
1692
- border: v8.lazy(() => CABBorder),
1693
- buttonField: v8.optional(v8.picklist(buttonFields)),
1694
- category: v8.optional(v8.nullable(v8.picklist(["gallery", "icons", "payment-methods", "secure-checkout"])), null),
1695
- name: v8.optional(v8.string()),
1696
- naturalHeight: v8.optional(v8.number(), 0),
1697
- naturalWidth: v8.optional(v8.number(), 0),
1698
- objectFit: v8.optional(v8.picklist(objectFits), ObjectFit.cover),
1699
- rule: v8.optional(CABRule),
1700
- sectionId: v8.optional(v8.pipe(v8.string(), v8.uuid()), () => (0, import_uuid.v7)()),
1701
- sectionType: v8.optional(v8.literal(SectionType.image), SectionType.image),
1702
- source: v8.optional(
1703
- v8.union([v8.pipe(v8.string(), v8.url()), v8.literal(""), v8.pipe(v8.string(), v8.regex(DYNAMIC_TOKEN_REGEX))]),
1704
- ""
1705
- ),
1706
- width: v8.optional(v8.number(), 100)
1658
+ var CABImageSection = import_v410.z.object({
1659
+ altText: import_v410.z.string().refine(checkForHTML, NO_HTML).default(""),
1660
+ aspectRatio: import_v410.z.literal(1).nullable().default(null),
1661
+ border: import_v410.z.lazy(() => CABBorder),
1662
+ buttonField: import_v410.z.enum(buttonFields).optional(),
1663
+ category: import_v410.z.enum(["gallery", "icons", "payment-methods", "secure-checkout"]).nullable().default(null),
1664
+ name: import_v410.z.string().optional(),
1665
+ naturalHeight: import_v410.z.number().default(0),
1666
+ naturalWidth: import_v410.z.number().default(0),
1667
+ objectFit: import_v410.z.enum(objectFits).default(ObjectFit.cover),
1668
+ rule: CABRule.optional(),
1669
+ sectionId: import_v410.z.uuid().default(() => (0, import_uuid.v7)()),
1670
+ sectionType: import_v410.z.literal(SectionType.image).default(SectionType.image),
1671
+ source: import_v410.z.union([import_v410.z.url(), import_v410.z.literal(""), import_v410.z.string().regex(DYNAMIC_TOKEN_REGEX)]).default(""),
1672
+ width: import_v410.z.number().default(100)
1707
1673
  });
1708
1674
 
1709
1675
  // src/schema/widgets/checkout-and-beyond/text.ts
1710
1676
  var import_compat2 = require("es-toolkit/compat");
1711
1677
  var import_uuid2 = require("uuid");
1712
- var v9 = __toESM(require("valibot"), 1);
1713
- var enumOrOmit = (...vals) => v9.optional(
1714
- v9.pipe(
1715
- v9.string(),
1716
- v9.transform(
1717
- (val) => vals.includes(val) ? val : void 0
1718
- )
1719
- )
1720
- );
1721
- var TiptapText = v9.object({
1722
- marks: v9.optional(
1723
- v9.union([
1724
- v9.array(
1725
- v9.variant("type", [
1726
- v9.object({ type: v9.literal("bold") }),
1727
- v9.object({ type: v9.literal("italic") }),
1728
- v9.object({
1729
- attrs: v9.object({
1730
- class: v9.nullable(v9.string()),
1731
- href: v9.union([
1732
- v9.pipe(v9.string(), v9.url()),
1733
- v9.literal("#"),
1734
- v9.pipe(v9.string(), v9.regex(DYNAMIC_TOKEN_REGEX))
1735
- ]),
1736
- rel: v9.optional(v9.string(), "noopener noreferrer nofollow"),
1737
- target: v9.optional(v9.string(), "_blank")
1738
- }),
1739
- type: v9.literal("link")
1678
+ var import_v411 = require("zod/v4");
1679
+ var enumOrOmit = (...vals) => import_v411.z.string().transform((val) => vals.includes(val) ? val : void 0).optional();
1680
+ var TiptapText = import_v411.z.object({
1681
+ marks: import_v411.z.union([
1682
+ import_v411.z.array(
1683
+ import_v411.z.discriminatedUnion("type", [
1684
+ import_v411.z.object({ type: import_v411.z.literal("bold") }),
1685
+ import_v411.z.object({ type: import_v411.z.literal("italic") }),
1686
+ import_v411.z.object({
1687
+ attrs: import_v411.z.object({
1688
+ class: import_v411.z.string().nullable(),
1689
+ href: import_v411.z.union([import_v411.z.url(), import_v411.z.literal("#"), import_v411.z.string().regex(DYNAMIC_TOKEN_REGEX)]),
1690
+ rel: import_v411.z.string().default("noopener noreferrer nofollow"),
1691
+ target: import_v411.z.string().default("_blank")
1740
1692
  }),
1741
- v9.object({ type: v9.literal("strike") }),
1742
- v9.object({
1743
- attrs: v9.object({
1744
- color: v9.optional(enumOrOmit(...textColorNames), TextColorName.base),
1745
- fontSize: v9.optional(enumOrOmit(...textSizeNames), TextSizeName.base)
1746
- }),
1747
- type: v9.literal("textStyle")
1748
- })
1749
- ])
1750
- ),
1751
- v9.pipe(
1752
- v9.strictObject({}),
1753
- v9.transform(() => [])
1754
- )
1755
- ])
1756
- ),
1757
- text: v9.optional(v9.string(), ""),
1758
- type: v9.optional(v9.literal("text"), "text")
1693
+ type: import_v411.z.literal("link")
1694
+ }),
1695
+ import_v411.z.object({ type: import_v411.z.literal("strike") }),
1696
+ import_v411.z.object({
1697
+ attrs: import_v411.z.object({
1698
+ color: enumOrOmit(...textColorNames).default(TextColorName.base),
1699
+ fontSize: enumOrOmit(...textSizeNames).default(TextSizeName.base)
1700
+ }),
1701
+ type: import_v411.z.literal("textStyle")
1702
+ })
1703
+ ])
1704
+ ),
1705
+ import_v411.z.strictObject({}).transform(() => [])
1706
+ ]).optional(),
1707
+ text: import_v411.z.string().default(""),
1708
+ type: import_v411.z.literal("text").default("text")
1759
1709
  });
1760
- var TiptapParagraph = v9.object({
1761
- attrs: v9.optional(
1762
- v9.object({
1763
- textAlign: enumOrOmit(...textAlignments)
1764
- }),
1765
- { textAlign: TextAlignment.start }
1766
- ),
1767
- content: v9.optional(
1768
- v9.union([
1769
- v9.array(TiptapText),
1770
- v9.pipe(
1771
- v9.strictObject({}),
1772
- v9.transform(() => [])
1773
- )
1774
- ]),
1775
- () => []
1776
- ),
1777
- type: v9.optional(v9.literal("paragraph"), "paragraph")
1710
+ var TiptapParagraph = import_v411.z.object({
1711
+ attrs: import_v411.z.object({
1712
+ textAlign: enumOrOmit(...textAlignments)
1713
+ }).default({ textAlign: TextAlignment.start }),
1714
+ content: import_v411.z.union([import_v411.z.array(TiptapText), import_v411.z.strictObject({}).transform(() => [])]).default(() => []),
1715
+ type: import_v411.z.literal("paragraph").default("paragraph")
1778
1716
  });
1779
- var TiptapDocument = v9.object({
1780
- attrs: v9.optional(
1781
- v9.object({
1782
- blockSpacing: enumOrOmit(...spacings)
1783
- }),
1784
- { blockSpacing: Spacing.base }
1785
- ),
1786
- content: v9.optional(
1787
- v9.union([
1788
- v9.array(TiptapParagraph),
1789
- v9.pipe(
1790
- v9.strictObject({}),
1791
- v9.transform(() => [])
1792
- )
1793
- ]),
1794
- () => [v9.parse(TiptapParagraph, {})]
1795
- ),
1796
- type: v9.optional(v9.literal("doc"), "doc")
1717
+ var TiptapDocument = import_v411.z.object({
1718
+ attrs: import_v411.z.object({
1719
+ blockSpacing: enumOrOmit(...spacings)
1720
+ }).default({ blockSpacing: Spacing.base }),
1721
+ content: import_v411.z.union([import_v411.z.array(TiptapParagraph), import_v411.z.strictObject({}).transform(() => [])]).default(() => [TiptapParagraph.parse({})]),
1722
+ type: import_v411.z.literal("doc").default("doc")
1797
1723
  });
1798
- var CABTextSection = v9.pipe(
1799
- v9.object({
1800
- buttonField: v9.optional(v9.picklist(buttonFields)),
1801
- content: v9.optional(
1802
- v9.optional(
1803
- v9.record(
1804
- v9.string(),
1805
- v9.optional(
1806
- v9.pipe(
1807
- v9.union([v9.string(), TiptapDocument]),
1808
- v9.check(checkForHTML, NO_HTML.message)
1809
- )
1810
- )
1811
- ),
1812
- { en: v9.parse(TiptapDocument, {}) }
1813
- )
1814
- ),
1815
- name: v9.optional(v9.string()),
1816
- optionId: v9.optional(v9.number()),
1817
- rule: v9.optional(CABRule),
1818
- sectionId: v9.optional(v9.pipe(v9.string(), v9.uuid()), () => (0, import_uuid2.v7)()),
1819
- sectionType: v9.optional(v9.literal(SectionType.text), SectionType.text)
1820
- }),
1821
- v9.check(({ buttonField, content }) => {
1822
- if (buttonField !== ButtonField.destinationUrl || !content) return true;
1823
- let valid = true;
1824
- (0, import_compat2.forEach)(content, (value) => {
1724
+ var CABTextSection = import_v411.z.object({
1725
+ buttonField: import_v411.z.enum(buttonFields).optional(),
1726
+ content: import_v411.z.record(import_v411.z.string(), import_v411.z.union([import_v411.z.string(), TiptapDocument]).refine(checkForHTML, NO_HTML).optional()).default({ en: TiptapDocument.parse({}) }).optional(),
1727
+ name: import_v411.z.string().optional(),
1728
+ optionId: import_v411.z.number().optional(),
1729
+ rule: CABRule.optional(),
1730
+ sectionId: import_v411.z.uuid().default(() => (0, import_uuid2.v7)()),
1731
+ sectionType: import_v411.z.literal(SectionType.text).default(SectionType.text)
1732
+ }).superRefine(({ buttonField: buttonField2, content }, ctx) => {
1733
+ if (buttonField2 === ButtonField.destinationUrl && content) {
1734
+ (0, import_compat2.forEach)(content, (value, lang) => {
1825
1735
  if (value && (0, import_compat2.isString)(value)) {
1826
1736
  if (DYNAMIC_TOKEN_REGEX.test(value)) return;
1827
1737
  try {
1828
1738
  new URL(value);
1829
1739
  } catch {
1830
- valid = false;
1740
+ ctx.addIssue({
1741
+ code: "custom",
1742
+ message: "Invalid URL",
1743
+ path: ["content", lang]
1744
+ });
1831
1745
  }
1832
1746
  }
1833
1747
  });
1834
- return valid;
1835
- }, "Invalid URL")
1836
- );
1748
+ }
1749
+ });
1837
1750
 
1838
1751
  // src/schema/widgets/checkout-and-beyond/button.ts
1839
- var CABButtonContent = v10.lazy(
1840
- () => v10.variant("sectionType", [CABImageSection, CABLayoutSection, CABTextSection])
1752
+ var CABButtonContent = import_v412.z.lazy(
1753
+ () => import_v412.z.discriminatedUnion("sectionType", [CABImageSection, CABLayoutSection, CABTextSection])
1841
1754
  );
1842
- var CABButtonSection = v10.object({
1843
- action: v10.optional(v10.union([v10.literal(""), v10.picklist(buttonActions)]), ""),
1844
- buttonStyle: v10.optional(v10.picklist(buttonStyles), ButtonStyle.primary),
1845
- custom: v10.optional(
1846
- v10.object({
1847
- color: v10.optional(v10.pipe(v10.string(), v10.regex(HEX_COLOR_REGEX)), "#005bd3"),
1848
- height: v10.optional(v10.number(), 52),
1849
- width: v10.optional(v10.number(), 300)
1850
- }),
1851
- {
1852
- color: "#005bd3",
1853
- height: 52,
1854
- width: 300
1855
- }
1856
- ),
1857
- disableDowngrade: v10.optional(v10.boolean(), false),
1858
- name: v10.optional(v10.string()),
1859
- optionId: v10.optional(v10.number()),
1860
- popover: v10.optional(
1861
- v10.optional(
1862
- v10.object({
1863
- alignment: v10.optional(v10.picklist(textAlignments), TextAlignment.center),
1864
- position: v10.optional(v10.picklist(popoverPositions), PopoverPosition.blockStart)
1865
- })
1866
- ),
1867
- () => ({
1868
- alignment: TextAlignment.center,
1869
- position: PopoverPosition.blockStart
1870
- })
1871
- ),
1872
- rule: v10.optional(CABRule),
1873
- sectionId: v10.optional(v10.pipe(v10.string(), v10.uuid()), () => (0, import_uuid3.v7)()),
1874
- sections: v10.optional(
1875
- v10.union([
1876
- v10.array(CABButtonContent),
1877
- v10.pipe(
1878
- v10.strictObject({}),
1879
- v10.transform(() => [])
1880
- )
1881
- ]),
1882
- () => []
1883
- ),
1884
- sectionType: v10.optional(v10.literal(SectionType.button), SectionType.button)
1755
+ var CABButtonSection = import_v412.z.object({
1756
+ action: import_v412.z.union([import_v412.z.literal(""), import_v412.z.enum(buttonActions)]).default(""),
1757
+ buttonStyle: import_v412.z.enum(buttonStyles).default(ButtonStyle.primary),
1758
+ custom: import_v412.z.object({
1759
+ color: import_v412.z.string().regex(HEX_COLOR_REGEX).default("#005bd3"),
1760
+ height: import_v412.z.number().default(52),
1761
+ width: import_v412.z.number().default(300)
1762
+ }).default({
1763
+ color: "#005bd3",
1764
+ height: 52,
1765
+ width: 300
1766
+ }),
1767
+ disableDowngrade: import_v412.z.boolean().default(false),
1768
+ name: import_v412.z.string().optional(),
1769
+ optionId: import_v412.z.number().optional(),
1770
+ popover: import_v412.z.object({
1771
+ alignment: import_v412.z.enum(textAlignments).default(TextAlignment.center),
1772
+ position: import_v412.z.enum(popoverPositions).default(PopoverPosition.blockStart)
1773
+ }).optional().default(() => ({
1774
+ alignment: TextAlignment.center,
1775
+ position: PopoverPosition.blockStart
1776
+ })),
1777
+ rule: CABRule.optional(),
1778
+ sectionId: import_v412.z.uuid().default(() => (0, import_uuid3.v7)()),
1779
+ sections: import_v412.z.union([import_v412.z.array(CABButtonContent), import_v412.z.strictObject({}).transform(() => [])]).default(() => []),
1780
+ sectionType: import_v412.z.literal(SectionType.button).default(SectionType.button)
1885
1781
  });
1886
1782
 
1887
1783
  // src/schema/widgets/checkout-and-beyond/carousel.ts
1888
- var v15 = __toESM(require("valibot"), 1);
1784
+ var import_v417 = require("zod/v4");
1889
1785
 
1890
1786
  // src/schema/widgets/checkout-and-beyond/offers.ts
1891
- var v14 = __toESM(require("valibot"), 1);
1787
+ var import_v416 = require("zod/v4");
1892
1788
 
1893
1789
  // src/schema/widgets/checkout-and-beyond/dataSource.ts
1894
1790
  var import_uuid4 = require("uuid");
1895
- var v11 = __toESM(require("valibot"), 1);
1896
- var CABIntegrations = v11.object({
1897
- judgeme: v11.optional(v11.boolean(), false),
1898
- junip: v11.optional(v11.boolean(), false),
1899
- klaviyo: v11.optional(v11.boolean(), false),
1900
- loox: v11.optional(v11.boolean(), false),
1901
- okendo: v11.optional(v11.boolean(), false),
1902
- opinew: v11.optional(v11.boolean(), false),
1903
- reviewsio: v11.optional(v11.boolean(), false),
1904
- stamped: v11.optional(v11.boolean(), false),
1905
- yotpo: v11.optional(v11.boolean(), false)
1791
+ var import_v413 = require("zod/v4");
1792
+ var CABIntegrations = import_v413.z.object({
1793
+ judgeme: import_v413.z.boolean().default(false),
1794
+ junip: import_v413.z.boolean().default(false),
1795
+ klaviyo: import_v413.z.boolean().default(false),
1796
+ loox: import_v413.z.boolean().default(false),
1797
+ okendo: import_v413.z.boolean().default(false),
1798
+ opinew: import_v413.z.boolean().default(false),
1799
+ reviewsio: import_v413.z.boolean().default(false),
1800
+ stamped: import_v413.z.boolean().default(false),
1801
+ yotpo: import_v413.z.boolean().default(false)
1906
1802
  });
1907
- var CABDataSourceSection = v11.object({
1908
- dataSourceId: v11.optional(v11.nullable(v11.number()), null),
1909
- dataSourcePath: v11.optional(v11.string(), DEFAULT_ENDPOINTS[0].value),
1910
- integrations: v11.optional(CABIntegrations),
1911
- limit: v11.optional(v11.number(), 1),
1912
- name: v11.optional(v11.string(), DEFAULT_ENDPOINTS[0].label),
1913
- productType: v11.optional(v11.picklist(productTypes)),
1914
- sectionId: v11.optional(v11.pipe(v11.string(), v11.uuid()), () => (0, import_uuid4.v7)()),
1915
- sectionType: v11.optional(v11.literal(SectionType.dataSource), SectionType.dataSource)
1803
+ var CABDataSourceSection = import_v413.z.object({
1804
+ dataSourceId: import_v413.z.number().nullable().default(null),
1805
+ dataSourcePath: import_v413.z.string().default(DEFAULT_ENDPOINTS[0].value),
1806
+ integrations: CABIntegrations.optional(),
1807
+ limit: import_v413.z.number().default(1),
1808
+ name: import_v413.z.string().default(DEFAULT_ENDPOINTS[0].label),
1809
+ productType: import_v413.z.enum(productTypes).optional(),
1810
+ sectionId: import_v413.z.uuid().default(() => (0, import_uuid4.v7)()),
1811
+ sectionType: import_v413.z.literal(SectionType.dataSource).default(SectionType.dataSource)
1916
1812
  });
1917
1813
 
1918
1814
  // src/schema/widgets/checkout-and-beyond/products.ts
1919
1815
  var import_uuid6 = require("uuid");
1920
- var v13 = __toESM(require("valibot"), 1);
1816
+ var import_v415 = require("zod/v4");
1921
1817
 
1922
1818
  // src/schema/widgets/checkout-and-beyond/product.ts
1923
1819
  var import_uuid5 = require("uuid");
1924
- var v12 = __toESM(require("valibot"), 1);
1925
- var CABVariantContent = v12.lazy(
1926
- () => v12.variant("sectionType", [CABButtonSection, CABTextSection])
1820
+ var import_v414 = require("zod/v4");
1821
+ var CABVariantContent = import_v414.z.lazy(
1822
+ () => import_v414.z.discriminatedUnion("sectionType", [CABButtonSection, CABTextSection])
1927
1823
  );
1928
- var CABProductSection = v12.object({
1929
- name: v12.optional(v12.string()),
1930
- productId: v12.optional(v12.nullable(v12.number()), null),
1931
- sectionId: v12.optional(v12.pipe(v12.string(), v12.uuid()), () => (0, import_uuid5.v7)()),
1932
- sections: v12.optional(
1933
- v12.union([
1934
- v12.array(CABVariantContent),
1935
- v12.pipe(
1936
- v12.strictObject({}),
1937
- v12.transform(() => [])
1938
- )
1939
- ]),
1940
- () => []
1941
- ),
1942
- sectionType: v12.optional(v12.literal(SectionType.product), SectionType.product),
1943
- selectors: v12.optional(
1944
- v12.record(v12.string(), v12.optional(v12.picklist(variantSelectors), VariantSelector.menu)),
1945
- () => ({})
1946
- ),
1947
- variantMode: v12.optional(v12.picklist(variantModes), VariantMode.multiple)
1824
+ var CABProductSection = import_v414.z.object({
1825
+ name: import_v414.z.string().optional(),
1826
+ productId: import_v414.z.number().nullable().default(null),
1827
+ sectionId: import_v414.z.uuid().default(() => (0, import_uuid5.v7)()),
1828
+ sections: import_v414.z.union([import_v414.z.array(CABVariantContent), import_v414.z.strictObject({}).transform(() => [])]).default(() => []),
1829
+ sectionType: import_v414.z.literal(SectionType.product).default(SectionType.product),
1830
+ selectors: import_v414.z.record(import_v414.z.string(), import_v414.z.enum(variantSelectors).default(VariantSelector.menu)).default(() => ({})),
1831
+ variantMode: import_v414.z.enum(variantModes).default(VariantMode.multiple)
1948
1832
  });
1949
1833
 
1950
1834
  // src/schema/widgets/checkout-and-beyond/products.ts
1951
- var CABProductsSection = v13.object({
1952
- name: v13.optional(v13.string()),
1953
- sectionId: v13.optional(v13.pipe(v13.string(), v13.uuid()), () => (0, import_uuid6.v7)()),
1954
- sections: v13.optional(
1955
- v13.union([
1956
- v13.array(v13.lazy(() => CABProductSection)),
1957
- v13.pipe(
1958
- v13.strictObject({}),
1959
- v13.transform(() => [])
1960
- )
1961
- ]),
1962
- () => []
1963
- ),
1964
- sectionType: v13.optional(v13.literal(SectionType.products), SectionType.products)
1835
+ var CABProductsSection = import_v415.z.object({
1836
+ name: import_v415.z.string().optional(),
1837
+ sectionId: import_v415.z.uuid().default(() => (0, import_uuid6.v7)()),
1838
+ sections: import_v415.z.union([import_v415.z.array(import_v415.z.lazy(() => CABProductSection)), import_v415.z.strictObject({}).transform(() => [])]).default(() => []),
1839
+ sectionType: import_v415.z.literal(SectionType.products).default(SectionType.products)
1965
1840
  });
1966
1841
 
1967
1842
  // src/schema/widgets/checkout-and-beyond/offers.ts
1968
- var CABOffersSection = v14.lazy(
1969
- () => v14.object({
1970
- ...CABLayoutSection.entries,
1971
- sections: v14.optional(
1972
- v14.union([
1973
- v14.array(v14.lazy(() => CABSection)),
1974
- v14.pipe(
1975
- v14.strictObject({}),
1976
- v14.transform(() => [])
1977
- )
1978
- ]),
1979
- () => [v14.parse(CABDataSourceSection, {}), v14.parse(CABProductsSection, {})]
1980
- ),
1981
- sectionType: v14.optional(v14.literal(SectionType.offers), SectionType.offers)
1843
+ var CABOffersSection = import_v416.z.lazy(
1844
+ () => CABLayoutSection.omit({ sections: true, sectionType: true }).extend({
1845
+ sections: import_v416.z.union([import_v416.z.array(import_v416.z.lazy(() => CABSection)), import_v416.z.strictObject({}).transform(() => [])]).default(() => [CABDataSourceSection.parse({}), CABProductsSection.parse({})]),
1846
+ sectionType: import_v416.z.literal(SectionType.offers).default(SectionType.offers)
1982
1847
  })
1983
1848
  );
1984
1849
 
1985
1850
  // src/schema/widgets/checkout-and-beyond/carousel.ts
1986
- var CABCarouselSection = v15.lazy(
1987
- () => v15.object({
1988
- ...CABLayoutSection.entries,
1989
- autoAdvanceInterval: v15.optional(v15.number(), 0),
1990
- itemsAtOnce: v15.optional(v15.pipe(v15.number(), v15.minValue(1)), 1),
1991
- sections: v15.optional(
1992
- v15.union([
1993
- v15.array(v15.lazy(() => CABSection)),
1994
- v15.pipe(
1995
- v15.strictObject({}),
1996
- v15.transform(() => [])
1997
- )
1998
- ]),
1999
- () => [v15.parse(CABOffersSection, {})]
2000
- ),
2001
- sectionType: v15.optional(v15.literal(SectionType.carousel), SectionType.carousel)
1851
+ var CABCarouselSection = import_v417.z.lazy(
1852
+ () => CABLayoutSection.omit({ sections: true, sectionType: true }).extend({
1853
+ autoAdvanceInterval: import_v417.z.number().default(0),
1854
+ itemsAtOnce: import_v417.z.number().min(1).default(1),
1855
+ sections: import_v417.z.union([import_v417.z.array(import_v417.z.lazy(() => CABSection)), import_v417.z.strictObject({}).transform(() => [])]).default(() => [CABOffersSection.parse({})]),
1856
+ sectionType: import_v417.z.literal(SectionType.carousel).default(SectionType.carousel)
2002
1857
  })
2003
1858
  );
2004
1859
 
2005
1860
  // src/schema/widgets/checkout-and-beyond/cartLine.ts
2006
- var v16 = __toESM(require("valibot"), 1);
2007
- var CABCartLineSection = v16.lazy(
2008
- () => v16.object({
2009
- ...CABLayoutSection.entries,
2010
- sections: v16.optional(
2011
- v16.union([
2012
- v16.array(v16.lazy(() => CABSection)),
2013
- v16.pipe(
2014
- v16.strictObject({}),
2015
- v16.transform(() => [])
2016
- )
2017
- ]),
2018
- () => [v16.parse(CABButtonSection, { action: ButtonAction.switchToSubscription })]
2019
- ),
2020
- sectionType: v16.optional(v16.literal(SectionType.cartLine), SectionType.cartLine)
1861
+ var import_v418 = require("zod/v4");
1862
+ var CABCartLineSection = import_v418.z.lazy(
1863
+ () => CABLayoutSection.omit({ sections: true, sectionType: true }).extend({
1864
+ sections: import_v418.z.union([import_v418.z.array(import_v418.z.lazy(() => CABSection)), import_v418.z.strictObject({}).transform(() => [])]).default(() => [CABButtonSection.parse({ action: ButtonAction.switchToSubscription })]),
1865
+ sectionType: import_v418.z.literal(SectionType.cartLine).default(SectionType.cartLine)
2021
1866
  })
2022
1867
  );
2023
1868
 
2024
1869
  // src/schema/widgets/checkout-and-beyond/quantity.ts
2025
1870
  var import_uuid7 = require("uuid");
2026
- var v17 = __toESM(require("valibot"), 1);
2027
- var CABQuantitySection = v17.object({
2028
- errorMessages: v17.optional(
2029
- v17.record(
2030
- v17.string(),
2031
- v17.object({
2032
- max: v17.optional(v17.string()),
2033
- min: v17.optional(v17.string()),
2034
- neg: v17.optional(v17.string())
2035
- })
2036
- ),
2037
- {
2038
- en: {
2039
- max: "Maximum quantity allowed is {{max}}",
2040
- min: "Minimum quantity required is {{min}}",
2041
- neg: "Quantity cannot be negative"
2042
- }
1871
+ var import_v419 = require("zod/v4");
1872
+ var CABQuantitySection = import_v419.z.object({
1873
+ errorMessages: import_v419.z.record(
1874
+ import_v419.z.string(),
1875
+ import_v419.z.object({
1876
+ max: import_v419.z.string().optional(),
1877
+ min: import_v419.z.string().optional(),
1878
+ neg: import_v419.z.string().optional()
1879
+ })
1880
+ ).default({
1881
+ en: {
1882
+ max: "Maximum quantity allowed is {{max}}",
1883
+ min: "Minimum quantity required is {{min}}",
1884
+ neg: "Quantity cannot be negative"
2043
1885
  }
2044
- ),
2045
- inputType: v17.optional(v17.picklist(quantityInputs), QuantityInput.select),
2046
- max: v17.optional(v17.pipe(v17.number(), v17.minValue(1), v17.maxValue(100)), 10),
2047
- min: v17.optional(v17.pipe(v17.number(), v17.minValue(1)), 1),
2048
- name: v17.optional(v17.string()),
2049
- rule: v17.optional(CABRule),
2050
- sectionId: v17.optional(v17.pipe(v17.string(), v17.uuid()), () => (0, import_uuid7.v7)()),
2051
- sectionType: v17.optional(v17.literal(SectionType.quantity), SectionType.quantity)
1886
+ }),
1887
+ inputType: import_v419.z.enum(quantityInputs).default(QuantityInput.select),
1888
+ max: import_v419.z.number().min(1).max(100).default(10),
1889
+ min: import_v419.z.number().min(1).default(1),
1890
+ name: import_v419.z.string().optional(),
1891
+ rule: CABRule.optional(),
1892
+ sectionId: import_v419.z.uuid().default(() => (0, import_uuid7.v7)()),
1893
+ sectionType: import_v419.z.literal(SectionType.quantity).default(SectionType.quantity)
2052
1894
  });
2053
1895
 
2054
1896
  // src/schema/widgets/checkout-and-beyond/reviews.ts
2055
1897
  var import_uuid8 = require("uuid");
2056
- var v18 = __toESM(require("valibot"), 1);
2057
- var CABReviewsSection = v18.object({
2058
- color: v18.optional(v18.string(), "#fadb14"),
2059
- name: v18.optional(v18.string()),
2060
- rule: v18.optional(CABRule),
2061
- sectionId: v18.optional(v18.pipe(v18.string(), v18.uuid()), () => (0, import_uuid8.v7)()),
2062
- sectionType: v18.optional(v18.literal(SectionType.reviews), SectionType.reviews),
2063
- size: v18.optional(v18.picklist(reviewsSizes), ReviewsSize.default)
1898
+ var import_v420 = require("zod/v4");
1899
+ var CABReviewsSection = import_v420.z.object({
1900
+ color: import_v420.z.string().default("#fadb14"),
1901
+ name: import_v420.z.string().optional(),
1902
+ rule: CABRule.optional(),
1903
+ sectionId: import_v420.z.uuid().default(() => (0, import_uuid8.v7)()),
1904
+ sectionType: import_v420.z.literal(SectionType.reviews).default(SectionType.reviews),
1905
+ size: import_v420.z.enum(reviewsSizes).default(ReviewsSize.default)
2064
1906
  });
2065
1907
 
2066
1908
  // src/schema/widgets/checkout-and-beyond/table.ts
2067
- var v19 = __toESM(require("valibot"), 1);
2068
- var CABTableSection = v19.lazy(
2069
- () => v19.object({
2070
- ...CABLayoutSection.entries,
2071
- sectionType: v19.optional(v19.literal(SectionType.table), SectionType.table)
1909
+ var import_v421 = require("zod/v4");
1910
+ var CABTableSection = import_v421.z.lazy(
1911
+ () => CABLayoutSection.omit({ sectionType: true }).extend({
1912
+ sectionType: import_v421.z.literal(SectionType.table).default(SectionType.table)
2072
1913
  })
2073
1914
  );
2074
1915
 
2075
1916
  // src/schema/widgets/checkout-and-beyond/variants.ts
2076
1917
  var import_compat3 = require("es-toolkit/compat");
2077
1918
  var import_uuid9 = require("uuid");
2078
- var v20 = __toESM(require("valibot"), 1);
2079
- var CABVariantsSection = v20.object({
2080
- name: v20.optional(v20.string()),
2081
- rule: v20.optional(CABRule),
2082
- sectionId: v20.optional(v20.pipe(v20.string(), v20.uuid()), () => (0, import_uuid9.v7)()),
2083
- sectionType: v20.optional(v20.literal(SectionType.variants), SectionType.variants),
2084
- selector: v20.optional(v20.picklist((0, import_compat3.slice)(variantSelectors, 0, 3)), VariantSelector.menu),
2085
- variantMode: v20.optional(v20.picklist(variantModes), VariantMode.multiple)
1919
+ var import_v422 = require("zod/v4");
1920
+ var CABVariantsSection = import_v422.z.object({
1921
+ name: import_v422.z.string().optional(),
1922
+ rule: CABRule.optional(),
1923
+ sectionId: import_v422.z.uuid().default(() => (0, import_uuid9.v7)()),
1924
+ sectionType: import_v422.z.literal(SectionType.variants).default(SectionType.variants),
1925
+ selector: import_v422.z.enum((0, import_compat3.slice)(variantSelectors, 0, 3)).default(VariantSelector.menu),
1926
+ variantMode: import_v422.z.enum(variantModes).default(VariantMode.multiple)
2086
1927
  });
2087
1928
 
2088
1929
  // src/schema/widgets/checkout-and-beyond/shared.ts
2089
- var CABBorder = v21.optional(
2090
- v21.object({
2091
- radius: v21.optional(v21.picklist(borderRadii), BorderRadius.base),
2092
- style: v21.optional(v21.picklist(borderStyles), BorderStyle.none),
2093
- width: v21.optional(v21.picklist(borderWidths), BorderWidth.base)
2094
- }),
2095
- {
2096
- radius: BorderRadius.base,
2097
- style: BorderStyle.none,
2098
- width: BorderWidth.base
2099
- }
2100
- );
2101
- var isSectionLike = (input) => typeof input === "object" && input !== null && "sectionType" in input;
2102
- var CABSection = v21.lazy(
2103
- () => v21.pipe(
2104
- v21.custom(isSectionLike, "Invalid section"),
2105
- v21.transform((input) => {
2106
- const section = input;
2107
- switch (section.sectionType) {
2108
- case "button":
2109
- return v21.parse(CABButtonSection, section);
2110
- case "carousel":
2111
- return v21.parse(CABCarouselSection, section);
2112
- case "cartLine":
2113
- return v21.parse(CABCartLineSection, section);
2114
- case "dataSource":
2115
- return v21.parse(CABDataSourceSection, section);
2116
- case "image":
2117
- return v21.parse(CABImageSection, section);
2118
- case "layout":
2119
- return v21.parse(CABLayoutSection, section);
2120
- case "offers":
2121
- return v21.parse(CABOffersSection, section);
2122
- case "product":
2123
- return v21.parse(CABProductSection, section);
2124
- case "products":
2125
- return v21.parse(CABProductsSection, section);
2126
- case "quantity":
2127
- return v21.parse(CABQuantitySection, section);
2128
- case "reviews":
2129
- return v21.parse(CABReviewsSection, section);
2130
- case "table":
2131
- return v21.parse(CABTableSection, section);
2132
- case "text":
2133
- return v21.parse(CABTextSection, section);
2134
- case "variants":
2135
- return v21.parse(CABVariantsSection, section);
2136
- default:
2137
- throw new Error("Invalid section type");
2138
- }
2139
- })
2140
- )
1930
+ var CABBorder = import_v423.z.object({
1931
+ radius: import_v423.z.enum(borderRadii).default(BorderRadius.base),
1932
+ style: import_v423.z.enum(borderStyles).default(BorderStyle.none),
1933
+ width: import_v423.z.enum(borderWidths).default(BorderWidth.base)
1934
+ }).default({
1935
+ radius: BorderRadius.base,
1936
+ style: BorderStyle.none,
1937
+ width: BorderWidth.base
1938
+ });
1939
+ var CABSection = import_v423.z.lazy(
1940
+ () => import_v423.z.discriminatedUnion("sectionType", [
1941
+ CABButtonSection,
1942
+ CABCarouselSection,
1943
+ CABCartLineSection,
1944
+ CABDataSourceSection,
1945
+ CABImageSection,
1946
+ CABLayoutSection,
1947
+ CABOffersSection,
1948
+ CABProductSection,
1949
+ CABProductsSection,
1950
+ CABQuantitySection,
1951
+ CABReviewsSection,
1952
+ CABTableSection,
1953
+ CABTextSection,
1954
+ CABVariantsSection
1955
+ ])
2141
1956
  );
2142
1957
 
2143
1958
  // src/schema/widgets/checkout-and-beyond/layout.ts
2144
- var GridItem = v22.union([
2145
- v22.literal("auto"),
2146
- v22.literal("fill"),
2147
- v22.pipe(v22.string(), v22.regex(/^\d+%$/)),
2148
- v22.number()
2149
- ]);
2150
- var CABLayoutSection = v22.object({
2151
- alignment: v22.optional(
2152
- v22.object({
2153
- horizontal: v22.optional(v22.picklist(horizontalAlignments), HorizontalAlignment.start),
2154
- vertical: v22.optional(v22.picklist(verticalAlignments), VerticalAlignment.top)
2155
- }),
2156
- {
2157
- horizontal: HorizontalAlignment.start,
2158
- vertical: VerticalAlignment.top
2159
- }
2160
- ),
2161
- border: v22.optional(
2162
- v22.lazy(() => CABBorder),
2163
- () => v22.parse(CABBorder, void 0)
2164
- ),
2165
- buttonField: v22.optional(v22.picklist(buttonFields)),
2166
- direction: v22.optional(v22.picklist(directions), Direction.rows),
2167
- grid: v22.optional(
2168
- v22.optional(
2169
- v22.object({
2170
- columns: v22.optional(v22.union([v22.array(GridItem), v22.undefined()]), () => ["auto"]),
2171
- rows: v22.optional(v22.union([v22.array(GridItem), v22.undefined()]), () => ["auto"])
2172
- }),
2173
- { columns: ["auto"], rows: ["auto"] }
2174
- )
2175
- ),
2176
- name: v22.optional(v22.string()),
2177
- padding: v22.optional(v22.picklist(spacings), Spacing.none),
2178
- rule: v22.optional(CABRule),
2179
- sectionId: v22.optional(v22.pipe(v22.string(), v22.uuid()), () => (0, import_uuid10.v7)()),
2180
- sections: v22.optional(
2181
- v22.union([
2182
- v22.array(v22.lazy(() => CABSection)),
2183
- v22.pipe(
2184
- v22.strictObject({}),
2185
- v22.transform(() => [])
2186
- )
2187
- ]),
2188
- () => []
2189
- ),
2190
- sectionType: v22.optional(v22.literal(SectionType.layout), SectionType.layout),
2191
- spacing: v22.optional(v22.picklist(spacings), Spacing.base),
2192
- width: v22.optional(v22.number(), 100)
1959
+ var GridItem = import_v424.z.union([import_v424.z.literal("auto"), import_v424.z.literal("fill"), import_v424.z.string().regex(/^\d+%$/), import_v424.z.number()]);
1960
+ var CABLayoutSection = import_v424.z.object({
1961
+ alignment: import_v424.z.object({
1962
+ horizontal: import_v424.z.enum(horizontalAlignments).default(HorizontalAlignment.start),
1963
+ vertical: import_v424.z.enum(verticalAlignments).default(VerticalAlignment.top)
1964
+ }).default({
1965
+ horizontal: HorizontalAlignment.start,
1966
+ vertical: VerticalAlignment.top
1967
+ }),
1968
+ border: import_v424.z.lazy(() => CABBorder),
1969
+ buttonField: import_v424.z.enum(buttonFields).optional(),
1970
+ direction: import_v424.z.enum(directions).default(Direction.rows),
1971
+ grid: import_v424.z.object({
1972
+ columns: import_v424.z.union([import_v424.z.array(GridItem), import_v424.z.undefined()]).default(() => ["auto"]),
1973
+ rows: import_v424.z.union([import_v424.z.array(GridItem), import_v424.z.undefined()]).default(() => ["auto"])
1974
+ }).default({ columns: ["auto"], rows: ["auto"] }).optional(),
1975
+ name: import_v424.z.string().optional(),
1976
+ padding: import_v424.z.enum(spacings).default(Spacing.none),
1977
+ rule: CABRule.optional(),
1978
+ sectionId: import_v424.z.uuid().default(() => (0, import_uuid10.v7)()),
1979
+ sections: import_v424.z.union([import_v424.z.array(import_v424.z.lazy(() => CABSection)), import_v424.z.strictObject({}).transform(() => [])]).default(() => []),
1980
+ sectionType: import_v424.z.literal(SectionType.layout).default(SectionType.layout),
1981
+ spacing: import_v424.z.enum(spacings).default(Spacing.base),
1982
+ width: import_v424.z.number().default(100)
2193
1983
  });
2194
1984
 
2195
1985
  // src/schema/widgets/checkout-and-beyond/root.ts
2196
- var TargetArea = v23.optional(
2197
- v23.object({
2198
- fill: v23.optional(v23.boolean()),
2199
- flip: v23.optional(v23.picklist(["both", "horizontal", "vertical"])),
2200
- icon: v23.string(),
2201
- label: v23.string(),
2202
- width: v23.string()
2203
- }),
2204
- targetAreas[EditorMode.checkoutExtension][1]
2205
- );
2206
- var CABRootSection = v23.object({
2207
- ...CABLayoutSection.entries,
2208
- editorMode: v23.optional(v23.picklist(editorModes), EditorMode.checkoutExtension),
2209
- previewMode: v23.optional(v23.boolean(), false),
2210
- storeId: v23.optional(v23.nullable(v23.number()), null),
2211
- targetArea: v23.nullable(TargetArea),
2212
- type: v23.optional(v23.picklist(widgetTypes), WidgetType.ui_extension_content_block),
2213
- version: v23.optional(v23.literal(2), 2),
2214
- widgetId: v23.optional(v23.nullable(v23.number()), null)
1986
+ var TargetArea = import_v425.z.object({
1987
+ fill: import_v425.z.boolean().optional(),
1988
+ flip: import_v425.z.enum(["both", "horizontal", "vertical"]).optional(),
1989
+ icon: import_v425.z.string(),
1990
+ label: import_v425.z.string(),
1991
+ width: import_v425.z.string()
1992
+ }).default(targetAreas[EditorMode.checkoutExtension][1]);
1993
+ var CABRootSection = CABLayoutSection.extend({
1994
+ editorMode: import_v425.z.enum(editorModes).default(EditorMode.checkoutExtension),
1995
+ previewMode: import_v425.z.boolean().default(false),
1996
+ storeId: import_v425.z.number().nullable().default(null),
1997
+ targetArea: TargetArea.nullable(),
1998
+ type: import_v425.z.enum(widgetTypes).default(WidgetType.ui_extension_content_block),
1999
+ version: import_v425.z.literal(2).default(2),
2000
+ widgetId: import_v425.z.number().nullable().default(null)
2215
2001
  });
2216
2002
 
2217
2003
  // src/schema/widgets/contentBlock.ts
2218
- var ContentBlockV1 = v24.object({
2219
- blockSpacing: v24.optional(v24.picklist(spacings)),
2220
- imageBlocks: v24.optional(
2221
- v24.union([
2222
- v24.array(
2223
- v24.object({
2224
- altText: v24.nullable(v24.string()),
2225
- description: v24.nullable(v24.string()),
2226
- id: v24.pipe(v24.string(), v24.uuid()),
2227
- imagePlacement: v24.picklist(["top", "right", "bottom", "left"]),
2228
- imageSize: v24.number(),
2229
- imageUrl: v24.pipe(v24.string(), v24.url()),
2230
- textAlignment: v24.picklist(["left", "center", "right"]),
2231
- textSize: v24.picklist(textSizeNames)
2232
- })
2233
- ),
2234
- v24.pipe(
2235
- v24.strictObject({}),
2236
- v24.transform(() => [])
2237
- )
2238
- ])
2239
- ),
2240
- imageLayout: v24.optional(v24.picklist(["row", "column"])),
2241
- language: v24.object({
2242
- description: v24.string(),
2243
- superTitle: v24.string(),
2244
- title: v24.string()
2004
+ var ContentBlockV1 = import_v426.z.object({
2005
+ blockSpacing: import_v426.z.enum(spacings).optional(),
2006
+ imageBlocks: import_v426.z.union([
2007
+ import_v426.z.array(
2008
+ import_v426.z.object({
2009
+ altText: import_v426.z.string().nullable(),
2010
+ description: import_v426.z.string().nullable(),
2011
+ id: import_v426.z.uuid(),
2012
+ imagePlacement: import_v426.z.enum(["top", "right", "bottom", "left"]),
2013
+ imageSize: import_v426.z.number(),
2014
+ imageUrl: import_v426.z.url(),
2015
+ textAlignment: import_v426.z.enum(["left", "center", "right"]),
2016
+ textSize: import_v426.z.enum(textSizeNames)
2017
+ })
2018
+ ),
2019
+ import_v426.z.strictObject({}).transform(() => [])
2020
+ ]).optional(),
2021
+ imageLayout: import_v426.z.enum(["row", "column"]).optional(),
2022
+ language: import_v426.z.object({
2023
+ description: import_v426.z.string(),
2024
+ superTitle: import_v426.z.string(),
2025
+ title: import_v426.z.string()
2245
2026
  }),
2246
- previewMode: v24.boolean(),
2247
- type: v24.optional(v24.literal(WidgetType.ui_extension_content_block), WidgetType.ui_extension_content_block),
2248
- version: v24.literal(1)
2027
+ previewMode: import_v426.z.boolean(),
2028
+ type: import_v426.z.literal(WidgetType.ui_extension_content_block).default(WidgetType.ui_extension_content_block),
2029
+ version: import_v426.z.literal(1)
2249
2030
  });
2250
- var ContentBlock = v24.variant("version", [
2031
+ var ContentBlock = import_v426.z.discriminatedUnion("version", [
2251
2032
  ContentBlockV1,
2252
- v24.object({
2253
- ...CABRootSection.entries,
2254
- type: v24.optional(v24.literal(WidgetType.ui_extension_content_block), WidgetType.ui_extension_content_block)
2033
+ CABRootSection.extend({
2034
+ type: import_v426.z.literal(WidgetType.ui_extension_content_block).default(WidgetType.ui_extension_content_block)
2255
2035
  })
2256
2036
  ]);
2257
2037
 
2258
2038
  // src/schema/widgets/giftWithPurchase.ts
2259
- var v25 = __toESM(require("valibot"), 1);
2260
- var GiftWithPurchase = v25.looseObject({
2261
- type: v25.optional(v25.literal(WidgetType.gift_with_purchase), WidgetType.gift_with_purchase)
2039
+ var import_v427 = require("zod/v4");
2040
+ var GiftWithPurchase = import_v427.z.looseObject({
2041
+ type: import_v427.z.literal(WidgetType.gift_with_purchase).default(WidgetType.gift_with_purchase)
2262
2042
  });
2263
2043
 
2264
2044
  // src/schema/widgets/lineItemEditor.ts
2265
- var v26 = __toESM(require("valibot"), 1);
2266
- var LineItemEditor = v26.looseObject({
2267
- type: v26.optional(v26.literal(WidgetType.ui_extension_line_item_editor), WidgetType.ui_extension_line_item_editor)
2045
+ var import_v428 = require("zod/v4");
2046
+ var LineItemEditor = import_v428.z.looseObject({
2047
+ type: import_v428.z.literal(WidgetType.ui_extension_line_item_editor).default(WidgetType.ui_extension_line_item_editor)
2268
2048
  });
2269
2049
 
2270
2050
  // src/schema/widgets/progressBar.ts
2271
- var v27 = __toESM(require("valibot"), 1);
2272
- var ProgressBar = v27.looseObject({
2273
- type: v27.optional(v27.literal(WidgetType.ui_extension_progress_bar), WidgetType.ui_extension_progress_bar)
2051
+ var import_v429 = require("zod/v4");
2052
+ var ProgressBar = import_v429.z.looseObject({
2053
+ type: import_v429.z.literal(WidgetType.ui_extension_progress_bar).default(WidgetType.ui_extension_progress_bar)
2274
2054
  });
2275
2055
 
2276
2056
  // src/schema/widgets/rebuyButton.ts
2277
- var v28 = __toESM(require("valibot"), 1);
2278
- var RebuyButtonV1 = v28.looseObject({
2279
- type: v28.optional(v28.literal(WidgetType.ui_extension_button), WidgetType.ui_extension_button),
2280
- version: v28.literal(1)
2057
+ var import_v430 = require("zod/v4");
2058
+ var RebuyButtonV1 = import_v430.z.looseObject({
2059
+ type: import_v430.z.literal(WidgetType.ui_extension_button).default(WidgetType.ui_extension_button),
2060
+ version: import_v430.z.literal(1)
2281
2061
  });
2282
- var RebuyButton = v28.variant("version", [
2062
+ var RebuyButton = import_v430.z.discriminatedUnion("version", [
2283
2063
  RebuyButtonV1,
2284
- v28.object({
2285
- ...CABRootSection.entries,
2286
- type: v28.optional(v28.literal(WidgetType.ui_extension_button), WidgetType.ui_extension_button)
2064
+ CABRootSection.extend({
2065
+ type: import_v430.z.literal(WidgetType.ui_extension_button).default(WidgetType.ui_extension_button)
2287
2066
  })
2288
2067
  ]);
2289
2068
 
2290
2069
  // src/schema/widgets/rebuyMonetize.ts
2291
- var v29 = __toESM(require("valibot"), 1);
2292
- var RebuyMonetize = v29.looseObject({
2293
- type: v29.optional(v29.literal(WidgetType.ui_extension_ad), WidgetType.ui_extension_ad)
2070
+ var import_v431 = require("zod/v4");
2071
+ var RebuyMonetize = import_v431.z.looseObject({
2072
+ type: import_v431.z.literal(WidgetType.ui_extension_ad).default(WidgetType.ui_extension_ad)
2294
2073
  });
2295
2074
 
2296
2075
  // src/schema/widgetData.ts
@@ -2304,7 +2083,7 @@ var extensionWidgetTypes = [
2304
2083
  WidgetType.ui_extension_line_item_editor,
2305
2084
  WidgetType.ui_extension_progress_bar
2306
2085
  ];
2307
- var WidgetData = v30.variant("type", [
2086
+ var WidgetData = import_v432.z.discriminatedUnion("type", [
2308
2087
  ABTestingPlaceholder,
2309
2088
  CheckoutExtension,
2310
2089
  ContentBlock,
@@ -2317,20 +2096,15 @@ var WidgetData = v30.variant("type", [
2317
2096
 
2318
2097
  // src/schema/widgets/post-purchase-offer/common.ts
2319
2098
  var import_compat4 = require("es-toolkit/compat");
2320
- var v31 = __toESM(require("valibot"), 1);
2321
- var strictNumber = v31.union([
2322
- v31.number(),
2323
- v31.pipe(
2324
- v31.string(),
2325
- v31.transform((value) => (0, import_compat4.toNumber)((0, import_compat4.replace)((0, import_compat4.toString)(value), /[^0-9.]/g, "")) || 0)
2326
- ),
2327
- v31.pipe(
2328
- v31.unknown(),
2329
- v31.transform(() => 0)
2330
- )
2099
+ var import_v433 = require("zod/v4");
2100
+ var strictNumber = import_v433.z.union([
2101
+ import_v433.z.number(),
2102
+ import_v433.z.string().transform((value) => (0, import_compat4.toNumber)((0, import_compat4.replace)((0, import_compat4.toString)(value), /[^0-9.]/g, "")) || 0),
2103
+ import_v433.z.unknown().transform(() => 0)
2331
2104
  ]);
2332
2105
 
2333
2106
  // src/schema/widgets/post-purchase-offer/constants.ts
2107
+ var import_v434 = require("zod/v4");
2334
2108
  var blockTypes = [
2335
2109
  "callout_banner",
2336
2110
  "image",
@@ -2341,190 +2115,144 @@ var blockTypes = [
2341
2115
  "text",
2342
2116
  "timer"
2343
2117
  ];
2344
- var BlockType = enumOf(blockTypes);
2118
+ var blockType = import_v434.z.enum(blockTypes);
2119
+ var BlockType = blockType.enum;
2345
2120
 
2346
2121
  // src/schema/widgets/post-purchase-offer/postPurchaseBlocks.ts
2347
2122
  var import_compat5 = require("es-toolkit/compat");
2348
2123
  var import_uuid11 = require("uuid");
2349
- var v32 = __toESM(require("valibot"), 1);
2350
- var TextAlignment2 = v32.union([
2351
- v32.picklist(["leading", "center", "trailing"]),
2352
- v32.pipe(
2353
- v32.unknown(),
2354
- v32.transform(() => "leading")
2355
- )
2356
- ]);
2357
- var TextSize = v32.union([
2358
- v32.picklist(["xsmall", "small", "base", "default", "medium", "large", "xlarge"]),
2359
- v32.pipe(
2360
- v32.unknown(),
2361
- v32.transform(() => "medium")
2362
- )
2124
+ var import_v435 = require("zod/v4");
2125
+ var TextAlignment2 = import_v435.z.union([import_v435.z.enum(["leading", "center", "trailing"]), import_v435.z.unknown().transform(() => "leading")]);
2126
+ var TextSize = import_v435.z.union([
2127
+ import_v435.z.enum(["xsmall", "small", "base", "default", "medium", "large", "xlarge"]),
2128
+ import_v435.z.unknown().transform(() => "medium")
2363
2129
  ]);
2364
- var CalloutBannerBlock = v32.object({
2365
- id: v32.optional(v32.string(), () => (0, import_uuid11.v4)()),
2366
- name: v32.optional(v32.string()),
2367
- settings: v32.object({
2368
- superTitle: v32.optional(v32.union([v32.string(), TiptapDocument]), () => "Limited-time Offer"),
2369
- title: v32.optional(v32.union([v32.string(), TiptapDocument]), () => "Add this customer favorite to your order")
2130
+ var CalloutBannerBlock = import_v435.z.object({
2131
+ id: import_v435.z.string().optional().default(() => (0, import_uuid11.v4)()),
2132
+ name: import_v435.z.string().optional(),
2133
+ settings: import_v435.z.object({
2134
+ superTitle: import_v435.z.union([import_v435.z.string(), TiptapDocument]).default(() => "Limited-time Offer"),
2135
+ title: import_v435.z.union([import_v435.z.string(), TiptapDocument]).default(() => "Add this customer favorite to your order")
2370
2136
  }),
2371
- styles: v32.object({
2372
- superTitleEmphasized: v32.optional(v32.boolean(), false),
2373
- superTitleSize: v32.optional(TextSize, "large"),
2374
- textAlignment: v32.optional(TextAlignment2, "center"),
2375
- titleEmphasized: v32.optional(v32.boolean(), true),
2376
- titleSize: v32.optional(TextSize, "large")
2137
+ styles: import_v435.z.object({
2138
+ superTitleEmphasized: import_v435.z.boolean().default(false),
2139
+ superTitleSize: TextSize.default("large"),
2140
+ textAlignment: TextAlignment2.default("center"),
2141
+ titleEmphasized: import_v435.z.boolean().default(true),
2142
+ titleSize: TextSize.default("large")
2377
2143
  }),
2378
- type: v32.optional(v32.literal(BlockType.callout_banner), BlockType.callout_banner)
2144
+ type: import_v435.z.literal(BlockType.callout_banner).default(BlockType.callout_banner)
2379
2145
  });
2380
- var ImageBlock = v32.object({
2381
- id: v32.optional(v32.string(), () => (0, import_uuid11.v4)()),
2382
- name: v32.optional(v32.string()),
2383
- settings: v32.union([
2384
- v32.object({
2146
+ var ImageBlock = import_v435.z.object({
2147
+ id: import_v435.z.string().optional().default(() => (0, import_uuid11.v4)()),
2148
+ name: import_v435.z.string().optional(),
2149
+ settings: import_v435.z.union([
2150
+ import_v435.z.object({
2385
2151
  /** This isn't used in the post-purchase offer widget */
2386
- alt: v32.optional(v32.string(), ""),
2387
- image: v32.optional(v32.union([v32.literal(""), v32.pipe(v32.string(), v32.url())]), ""),
2388
- imageSize: v32.optional(v32.number(), 20),
2389
- imageType: v32.optional(v32.picklist(["URL", "UPLOAD"]), "URL")
2152
+ alt: import_v435.z.string().optional().default(""),
2153
+ image: import_v435.z.union([import_v435.z.literal(""), import_v435.z.url()]).default(""),
2154
+ imageSize: import_v435.z.number().default(20),
2155
+ imageType: import_v435.z.enum(["URL", "UPLOAD"]).default("URL")
2390
2156
  }),
2391
- v32.pipe(
2392
- v32.array(v32.never()),
2393
- v32.transform(() => ({}))
2394
- )
2157
+ import_v435.z.array(import_v435.z.never()).transform(() => ({}))
2395
2158
  ]),
2396
- type: v32.optional(v32.literal(BlockType.image), BlockType.image)
2159
+ type: import_v435.z.literal(BlockType.image).default(BlockType.image)
2397
2160
  });
2398
- var ImageContentBlock = v32.object({
2399
- id: v32.optional(v32.string(), () => (0, import_uuid11.v4)()),
2400
- name: v32.optional(v32.string()),
2401
- settings: v32.object({
2402
- alt: v32.optional(v32.string(), ""),
2403
- description: v32.optional(
2404
- v32.union([v32.string(), TiptapDocument, v32.null_()]),
2161
+ var ImageContentBlock = import_v435.z.object({
2162
+ id: import_v435.z.string().optional().default(() => (0, import_uuid11.v4)()),
2163
+ name: import_v435.z.string().optional(),
2164
+ settings: import_v435.z.object({
2165
+ alt: import_v435.z.string().optional().default(""),
2166
+ description: import_v435.z.union([import_v435.z.string(), TiptapDocument, import_v435.z.null()]).default(
2405
2167
  "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
2406
2168
  ),
2407
- descriptionSize: v32.optional(TextSize, "medium"),
2408
- horizontalAlignment: v32.optional(TextAlignment2, "leading"),
2409
- image: v32.optional(v32.union([v32.literal(""), v32.pipe(v32.string(), v32.url())]), ""),
2410
- imagePlacement: v32.optional(v32.picklist(["bottom", "left", "right", "top"]), "left"),
2411
- imageSize: v32.optional(v32.number(), 20),
2412
- superTitle: v32.optional(v32.union([v32.string(), TiptapDocument]), "Lorem Ipsum!"),
2413
- superTitleSize: v32.optional(TextSize, "medium"),
2169
+ descriptionSize: TextSize.default("medium"),
2170
+ horizontalAlignment: TextAlignment2.default("leading"),
2171
+ image: import_v435.z.union([import_v435.z.literal(""), import_v435.z.url()]).default(""),
2172
+ imagePlacement: import_v435.z.enum(["bottom", "left", "right", "top"]).optional().default("left"),
2173
+ imageSize: import_v435.z.number().default(20),
2174
+ superTitle: import_v435.z.union([import_v435.z.string(), TiptapDocument]).default("Lorem Ipsum!"),
2175
+ superTitleSize: TextSize.default("medium"),
2414
2176
  /** This isn't configurable in the admin-nextjs editor */
2415
- swapContent: v32.optional(v32.boolean(), false),
2416
- title: v32.optional(v32.nullable(v32.union([v32.string(), TiptapDocument])), "Lorem ipsum dolor sit amet"),
2417
- titleSize: v32.optional(TextSize, "medium")
2177
+ swapContent: import_v435.z.boolean().optional().default(false),
2178
+ title: import_v435.z.union([import_v435.z.string(), TiptapDocument]).nullable().default("Lorem ipsum dolor sit amet"),
2179
+ titleSize: TextSize.default("medium")
2418
2180
  }),
2419
- type: v32.optional(v32.literal(BlockType.image_content), BlockType.image_content)
2181
+ type: import_v435.z.literal(BlockType.image_content).default(BlockType.image_content)
2420
2182
  });
2421
- var PayButtonBlock = v32.object({
2422
- id: v32.optional(v32.string(), () => (0, import_uuid11.v4)()),
2423
- name: v32.optional(v32.string()),
2424
- settings: v32.union([
2425
- v32.object({
2426
- label: v32.optional(v32.string(), "Pay Now")
2183
+ var PayButtonBlock = import_v435.z.object({
2184
+ id: import_v435.z.string().optional().default(() => (0, import_uuid11.v4)()),
2185
+ name: import_v435.z.string().optional(),
2186
+ settings: import_v435.z.union([
2187
+ import_v435.z.object({
2188
+ label: import_v435.z.string().default("Pay Now")
2427
2189
  }),
2428
- v32.pipe(
2429
- v32.array(v32.never()),
2430
- v32.transform(() => ({
2431
- label: "Pay Now"
2432
- }))
2433
- )
2190
+ import_v435.z.array(import_v435.z.never()).transform(() => ({
2191
+ label: "Pay Now"
2192
+ }))
2434
2193
  ]),
2435
- styles: v32.union([
2436
- v32.object({
2437
- buttonWidth: v32.optional(v32.pipe(v32.number(), v32.minValue(10), v32.maxValue(100)), 50)
2194
+ styles: import_v435.z.union([
2195
+ import_v435.z.object({
2196
+ buttonWidth: import_v435.z.number().min(10).max(100).default(50)
2438
2197
  }),
2439
- v32.pipe(
2440
- v32.array(v32.never()),
2441
- v32.transform(() => ({
2442
- buttonWidth: 50
2443
- }))
2444
- )
2198
+ import_v435.z.array(import_v435.z.never()).transform(() => ({
2199
+ buttonWidth: 50
2200
+ }))
2445
2201
  ]),
2446
- type: v32.optional(v32.literal(BlockType.pay_button), BlockType.pay_button)
2202
+ type: import_v435.z.literal(BlockType.pay_button).default(BlockType.pay_button)
2447
2203
  });
2448
- var ProductInformationBlock = v32.object({
2204
+ var ProductInformationBlock = import_v435.z.object({
2449
2205
  /** This isn't configurable in the admin-nextjs editor */
2450
- hideProductImage: v32.optional(v32.boolean(), false),
2451
- id: v32.optional(v32.string(), () => (0, import_uuid11.v4)()),
2452
- name: v32.optional(v32.string()),
2453
- type: v32.optional(v32.literal(BlockType.product_information), BlockType.product_information)
2206
+ hideProductImage: import_v435.z.boolean().optional().default(false),
2207
+ id: import_v435.z.string().optional().default(() => (0, import_uuid11.v4)()),
2208
+ name: import_v435.z.string().optional(),
2209
+ type: import_v435.z.literal(BlockType.product_information).default(BlockType.product_information)
2454
2210
  });
2455
- var SeparatorBlock = v32.object({
2456
- id: v32.optional(v32.string(), () => (0, import_uuid11.v4)()),
2457
- name: v32.optional(v32.string()),
2458
- type: v32.optional(v32.literal(BlockType.separator), BlockType.separator)
2211
+ var SeparatorBlock = import_v435.z.object({
2212
+ id: import_v435.z.string().optional().default(() => (0, import_uuid11.v4)()),
2213
+ name: import_v435.z.string().optional(),
2214
+ type: import_v435.z.literal(BlockType.separator).default(BlockType.separator)
2459
2215
  });
2460
- var TextBlock = v32.object({
2461
- id: v32.optional(v32.string(), () => (0, import_uuid11.v4)()),
2462
- name: v32.optional(v32.string()),
2463
- settings: v32.object({
2464
- description: v32.optional(
2465
- v32.union([v32.string(), TiptapDocument]),
2216
+ var TextBlock = import_v435.z.object({
2217
+ id: import_v435.z.string().optional().default(() => (0, import_uuid11.v4)()),
2218
+ name: import_v435.z.string().optional(),
2219
+ settings: import_v435.z.object({
2220
+ description: import_v435.z.union([import_v435.z.string(), TiptapDocument]).optional().default(
2466
2221
  "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
2467
2222
  ),
2468
2223
  /** This isn't used in the post-purchase offer widget */
2469
- descriptionSize: v32.optional(TextSize, "medium"),
2470
- horizontalAlignment: v32.optional(TextAlignment2, "leading"),
2471
- superTitle: v32.optional(v32.union([v32.string(), TiptapDocument]), "Super Title"),
2224
+ descriptionSize: TextSize.default("medium"),
2225
+ horizontalAlignment: TextAlignment2.default("leading"),
2226
+ superTitle: import_v435.z.union([import_v435.z.string(), TiptapDocument]).default("Super Title"),
2472
2227
  /** This isn't used in the post-purchase offer widget */
2473
- superTitleSize: v32.optional(TextSize, "medium"),
2474
- title: v32.optional(v32.nullable(v32.union([v32.string(), TiptapDocument])), "Lorem ipsum dolor sit amet."),
2228
+ superTitleSize: TextSize.default("medium"),
2229
+ title: import_v435.z.union([import_v435.z.string(), TiptapDocument]).nullable().default("Lorem ipsum dolor sit amet."),
2475
2230
  /** This isn't used in the post-purchase offer widget */
2476
- titleSize: v32.optional(TextSize, "medium")
2231
+ titleSize: TextSize.default("medium")
2477
2232
  }),
2478
- type: v32.optional(v32.literal(BlockType.text), BlockType.text)
2233
+ type: import_v435.z.literal(BlockType.text).default(BlockType.text)
2479
2234
  });
2480
- var TimerBlock = v32.object({
2481
- id: v32.optional(v32.string(), () => (0, import_uuid11.v4)()),
2482
- name: v32.optional(v32.string()),
2483
- settings: v32.object({
2484
- durationMinutes: v32.optional(v32.pipe(v32.number(), v32.minValue(0)), 10),
2485
- durationSeconds: v32.optional(
2486
- v32.union([
2487
- v32.pipe(v32.number(), v32.minValue(0)),
2488
- v32.pipe(
2489
- v32.unknown(),
2490
- v32.transform(() => 0)
2491
- )
2492
- ]),
2493
- 0
2494
- ),
2495
- endOffer: v32.optional(v32.boolean(), true),
2496
- title: v32.optional(v32.union([v32.string(), TiptapDocument]), "Hurry \u2014 your special offer ends in:")
2235
+ var TimerBlock = import_v435.z.object({
2236
+ id: import_v435.z.string().optional().default(() => (0, import_uuid11.v4)()),
2237
+ name: import_v435.z.string().optional(),
2238
+ settings: import_v435.z.object({
2239
+ durationMinutes: import_v435.z.number().min(0).default(10),
2240
+ durationSeconds: import_v435.z.union([import_v435.z.number().min(0), import_v435.z.unknown().transform(() => 0)]).default(0),
2241
+ endOffer: import_v435.z.boolean().default(true),
2242
+ title: import_v435.z.union([import_v435.z.string(), TiptapDocument]).default("Hurry \u2014 your special offer ends in:")
2497
2243
  }),
2498
- styles: v32.object({
2499
- textAlignment: v32.optional(TextAlignment2, "center"),
2500
- timerBackgroundColor: v32.optional(v32.picklist(["info", "warning", "success", "critical"]), "warning"),
2501
- timerEmphasized: v32.optional(
2502
- v32.union([
2503
- v32.boolean(),
2504
- v32.pipe(
2505
- v32.unknown(),
2506
- v32.transform(() => true)
2507
- )
2508
- ]),
2509
- true
2510
- ),
2511
- timerSize: v32.optional(TextSize, "medium"),
2512
- timerWidth: v32.optional(v32.pipe(v32.number(), v32.minValue(10), v32.maxValue(100)), 100),
2513
- titleEmphasized: v32.optional(
2514
- v32.union([
2515
- v32.boolean(),
2516
- v32.pipe(
2517
- v32.unknown(),
2518
- v32.transform(() => true)
2519
- )
2520
- ]),
2521
- false
2522
- ),
2523
- titleSize: v32.optional(TextSize, "medium")
2244
+ styles: import_v435.z.object({
2245
+ textAlignment: TextAlignment2.default("center"),
2246
+ timerBackgroundColor: import_v435.z.enum(["info", "warning", "success", "critical"]).default("warning"),
2247
+ timerEmphasized: import_v435.z.union([import_v435.z.boolean(), import_v435.z.unknown().transform(() => true)]).default(true),
2248
+ timerSize: TextSize.default("medium"),
2249
+ timerWidth: import_v435.z.number().min(10).max(100).optional().default(100),
2250
+ titleEmphasized: import_v435.z.union([import_v435.z.boolean(), import_v435.z.unknown().transform(() => true)]).default(false),
2251
+ titleSize: TextSize.default("medium")
2524
2252
  }),
2525
- type: v32.optional(v32.literal(BlockType.timer), BlockType.timer)
2253
+ type: import_v435.z.literal(BlockType.timer).default(BlockType.timer)
2526
2254
  });
2527
- var PostPurchaseBlock = v32.variant("type", [
2255
+ var PostPurchaseBlock = import_v435.z.discriminatedUnion("type", [
2528
2256
  CalloutBannerBlock,
2529
2257
  ImageBlock,
2530
2258
  ImageContentBlock,
@@ -2544,309 +2272,211 @@ var isTextBlock = (block) => (0, import_compat5.isEqual)((0, import_compat5.get)
2544
2272
  var isTimerBlock = (block) => (0, import_compat5.isEqual)((0, import_compat5.get)(block, "type"), BlockType.timer);
2545
2273
 
2546
2274
  // src/schema/widgets/post-purchase-offer/postPurchaseOffer.ts
2547
- var v35 = __toESM(require("valibot"), 1);
2275
+ var import_v438 = require("zod/v4");
2548
2276
 
2549
2277
  // src/schema/widgets/post-purchase-offer/postPurchaseWidget.ts
2550
- var v34 = __toESM(require("valibot"), 1);
2278
+ var import_v437 = require("zod/v4");
2551
2279
 
2552
2280
  // src/schema/widgets/post-purchase-offer/postPurchaseSettings.ts
2553
- var v33 = __toESM(require("valibot"), 1);
2554
- var PostPurchaseSettings = v33.object({
2555
- advance: v33.optional(v33.optional(v33.object({ removePartialOrder: v33.optional(v33.boolean(), true) })), () => ({
2556
- removePartialOrder: true
2557
- })),
2558
- blocks: v33.optional(
2559
- v33.union([
2560
- v33.array(PostPurchaseBlock),
2561
- v33.pipe(
2562
- v33.unknown(),
2563
- v33.transform(() => [])
2564
- )
2565
- ]),
2566
- () => [
2567
- v33.parse(PostPurchaseBlock, { settings: {}, styles: {}, type: BlockType.timer }),
2568
- v33.parse(PostPurchaseBlock, { settings: {}, styles: {}, type: BlockType.callout_banner }),
2569
- v33.parse(PostPurchaseBlock, { type: BlockType.product_information })
2570
- ]
2571
- ),
2572
- columnLayout: v33.optional(v33.boolean()),
2573
- discount: v33.object({
2574
- amount: v33.optional(strictNumber, 30),
2575
- shouldShowSavingText: v33.optional(v33.boolean(), true),
2576
- type: v33.optional(v33.picklist(["none", "fixed_amount", "percentage"]), "none")
2281
+ var import_v436 = require("zod/v4");
2282
+ var PostPurchaseSettings = import_v436.z.object({
2283
+ advance: import_v436.z.object({ removePartialOrder: import_v436.z.boolean().default(true) }).optional().default(() => ({ removePartialOrder: true })),
2284
+ blocks: import_v436.z.union([import_v436.z.array(PostPurchaseBlock), import_v436.z.unknown().transform(() => [])]).default(() => [
2285
+ PostPurchaseBlock.parse({ settings: {}, styles: {}, type: BlockType.timer }),
2286
+ PostPurchaseBlock.parse({ settings: {}, styles: {}, type: BlockType.callout_banner }),
2287
+ PostPurchaseBlock.parse({ type: BlockType.product_information })
2288
+ ]),
2289
+ columnLayout: import_v436.z.boolean().optional(),
2290
+ discount: import_v436.z.object({
2291
+ amount: strictNumber.default(30),
2292
+ shouldShowSavingText: import_v436.z.boolean().optional().default(true),
2293
+ type: import_v436.z.enum(["none", "fixed_amount", "percentage"]).default("none")
2577
2294
  }),
2578
- discountedFrom: v33.optional(v33.picklist(["price", "compare_at_price"]), "price"),
2579
- endpoint: v33.optional(v33.string()),
2580
- integrations: v33.object({
2581
- judgeme: v33.optional(v33.boolean(), false),
2582
- junip: v33.optional(v33.boolean(), false),
2583
- klaviyo: v33.optional(v33.boolean(), false),
2584
- loox: v33.optional(v33.boolean(), false),
2585
- okendo: v33.optional(v33.boolean(), false),
2586
- opinew: v33.optional(v33.boolean(), false),
2587
- reviewsio: v33.optional(v33.boolean(), false),
2588
- stamped: v33.optional(v33.boolean(), false),
2589
- yotpo: v33.optional(v33.boolean(), false)
2295
+ discountedFrom: import_v436.z.enum(["price", "compare_at_price"]).optional().default("price"),
2296
+ endpoint: import_v436.z.string().optional(),
2297
+ integrations: import_v436.z.object({
2298
+ judgeme: import_v436.z.boolean().default(false),
2299
+ junip: import_v436.z.boolean().optional().default(false),
2300
+ klaviyo: import_v436.z.boolean().default(false),
2301
+ loox: import_v436.z.boolean().default(false),
2302
+ okendo: import_v436.z.boolean().default(false),
2303
+ opinew: import_v436.z.boolean().optional().default(false),
2304
+ reviewsio: import_v436.z.boolean().optional().default(false),
2305
+ stamped: import_v436.z.boolean().default(false),
2306
+ yotpo: import_v436.z.boolean().default(false)
2590
2307
  }),
2591
- key: v33.optional(v33.string()),
2592
- language: v33.object({
2593
- description: v33.optional(
2594
- v33.union([
2595
- v33.string(),
2596
- v33.pipe(
2597
- v33.unknown(),
2598
- v33.transform(() => "")
2599
- )
2600
- ]),
2601
- ""
2602
- ),
2603
- descriptionEnabled: v33.optional(v33.boolean(), false),
2604
- descriptionRte: v33.optional(
2605
- v33.object({
2606
- content: v33.array(v33.unknown()),
2607
- type: v33.string()
2608
- })
2609
- ),
2610
- descriptionSpacing: v33.optional(v33.picklist(["none", "xtight", "tight", "default", "loose", "xloose"])),
2611
- displayCtaPrice: v33.optional(v33.boolean(), true),
2612
- global: v33.optional(
2613
- v33.optional(
2614
- v33.object({
2615
- declineAll: v33.optional(v33.string(), "Decline All"),
2616
- declineThisOffer: v33.optional(v33.string(), "Decline this offer"),
2617
- free: v33.optional(v33.string(), "Free"),
2618
- notAvailable: v33.optional(v33.string(), "Not available"),
2619
- payNow: v33.optional(v33.string(), "Pay Now"),
2620
- payNowUpgradeToSubscription: v33.optional(v33.string(), "Upgrade to Subscription"),
2621
- quantity: v33.optional(v33.string(), "Quantity"),
2622
- /** This isn't configurable in the admin-nextjs editor */
2623
- recurringShipping: v33.optional(v33.string(), "Recurring shipping"),
2624
- recurringSubtotal: v33.optional(v33.string(), "Recurring subtotal"),
2625
- reviewsPlural: v33.optional(v33.string(), "Reviews"),
2626
- reviewsSingular: v33.optional(v33.string(), "Review"),
2627
- save: v33.optional(
2628
- v33.union([
2629
- v33.string(),
2630
- v33.pipe(
2631
- v33.unknown(),
2632
- v33.transform(() => "Save")
2633
- )
2634
- ]),
2635
- "Save"
2636
- ),
2637
- shipping: v33.optional(v33.string(), "Shipping"),
2638
- subtotal: v33.optional(v33.string(), "Subtotal"),
2639
- taxes: v33.optional(v33.string(), "Taxes"),
2640
- total: v33.optional(v33.string(), "Total")
2641
- })
2642
- ),
2643
- () => ({
2644
- declineAll: "Decline All",
2645
- declineThisOffer: "Decline this offer",
2646
- free: "Free",
2647
- notAvailable: "Not available",
2648
- payNow: "Pay Now",
2649
- payNowUpgradeToSubscription: "Upgrade to Subscription",
2650
- quantity: "Quantity",
2651
- /** This isn't configurable in the admin-nextjs editor */
2652
- recurringShipping: "Recurring shipping",
2653
- recurringSubtotal: "Recurring subtotal",
2654
- reviewsPlural: "Reviews",
2655
- reviewsSingular: "Review",
2656
- save: "Save",
2657
- shipping: "Shipping",
2658
- subtotal: "Subtotal",
2659
- taxes: "Taxes",
2660
- total: "Total"
2661
- })
2662
- ),
2663
- globalTranslation: v33.optional(v33.string(), "english")
2308
+ key: import_v436.z.string().optional(),
2309
+ language: import_v436.z.object({
2310
+ description: import_v436.z.union([import_v436.z.string(), import_v436.z.unknown().transform(() => "")]).default(""),
2311
+ descriptionEnabled: import_v436.z.boolean().optional().default(false),
2312
+ descriptionRte: import_v436.z.object({
2313
+ content: import_v436.z.array(import_v436.z.unknown()),
2314
+ type: import_v436.z.string()
2315
+ }).optional(),
2316
+ descriptionSpacing: import_v436.z.enum(["none", "xtight", "tight", "default", "loose", "xloose"]).optional(),
2317
+ displayCtaPrice: import_v436.z.boolean().default(true),
2318
+ global: import_v436.z.object({
2319
+ declineAll: import_v436.z.string().optional().default("Decline All"),
2320
+ declineThisOffer: import_v436.z.string().default("Decline this offer"),
2321
+ free: import_v436.z.string().optional().default("Free"),
2322
+ notAvailable: import_v436.z.string().optional().default("Not available"),
2323
+ payNow: import_v436.z.string().default("Pay Now"),
2324
+ payNowUpgradeToSubscription: import_v436.z.string().optional().default("Upgrade to Subscription"),
2325
+ quantity: import_v436.z.string().default("Quantity"),
2326
+ /** This isn't configurable in the admin-nextjs editor */
2327
+ recurringShipping: import_v436.z.string().optional().default("Recurring shipping"),
2328
+ recurringSubtotal: import_v436.z.string().default("Recurring subtotal"),
2329
+ reviewsPlural: import_v436.z.string().optional().default("Reviews"),
2330
+ reviewsSingular: import_v436.z.string().optional().default("Review"),
2331
+ save: import_v436.z.union([import_v436.z.string(), import_v436.z.unknown().transform(() => "Save")]).optional().default("Save"),
2332
+ shipping: import_v436.z.string().default("Shipping"),
2333
+ subtotal: import_v436.z.string().default("Subtotal"),
2334
+ taxes: import_v436.z.string().default("Taxes"),
2335
+ total: import_v436.z.string().default("Total")
2336
+ }).optional().default(() => ({
2337
+ declineAll: "Decline All",
2338
+ declineThisOffer: "Decline this offer",
2339
+ free: "Free",
2340
+ notAvailable: "Not available",
2341
+ payNow: "Pay Now",
2342
+ payNowUpgradeToSubscription: "Upgrade to Subscription",
2343
+ quantity: "Quantity",
2344
+ /** This isn't configurable in the admin-nextjs editor */
2345
+ recurringShipping: "Recurring shipping",
2346
+ recurringSubtotal: "Recurring subtotal",
2347
+ reviewsPlural: "Reviews",
2348
+ reviewsSingular: "Review",
2349
+ save: "Save",
2350
+ shipping: "Shipping",
2351
+ subtotal: "Subtotal",
2352
+ taxes: "Taxes",
2353
+ total: "Total"
2354
+ })),
2355
+ globalTranslation: import_v436.z.string().optional().default("english")
2664
2356
  }),
2665
- metafields: v33.optional(v33.boolean(), false),
2357
+ metafields: import_v436.z.boolean().default(false),
2666
2358
  /** This isn't configurable in the admin-nextjs editor */
2667
- offer: v33.object({
2668
- count: v33.optional(v33.number(), 1)
2359
+ offer: import_v436.z.object({
2360
+ count: import_v436.z.number().default(1)
2361
+ }),
2362
+ offersLayout: import_v436.z.object({
2363
+ itemsPerPage: import_v436.z.number().optional(),
2364
+ type: import_v436.z.enum(["list", "grid", "carousel"]).default("list")
2365
+ }).optional().default({
2366
+ type: "list"
2669
2367
  }),
2670
- offersLayout: v33.optional(
2671
- v33.optional(
2672
- v33.object({
2673
- itemsPerPage: v33.optional(v33.number()),
2674
- type: v33.optional(v33.picklist(["list", "grid", "carousel"]), "list")
2675
- })
2676
- ),
2677
- {
2678
- type: "list"
2679
- }
2680
- ),
2681
2368
  /** This isn't configurable in the admin-nextjs editor */
2682
- previewMode: v33.optional(v33.boolean(), false),
2683
- productLimit: v33.optional(v33.number(), 1),
2684
- productOptions: v33.object({
2369
+ previewMode: import_v436.z.boolean().default(false),
2370
+ productLimit: import_v436.z.number().optional().default(1),
2371
+ productOptions: import_v436.z.object({
2685
2372
  /** This isn't configurable in the admin-nextjs editor */
2686
- hideOutOfStockVariants: v33.optional(v33.boolean(), false),
2687
- matchVariant: v33.optional(v33.boolean(), true),
2688
- showDeclineAll: v33.optional(v33.picklist(["above", "below", "both", "none"])),
2689
- showShipping: v33.optional(v33.boolean(), true),
2690
- showSubtotal: v33.optional(v33.boolean(), true),
2691
- showTaxes: v33.optional(v33.boolean(), true),
2692
- showTotal: v33.optional(v33.boolean(), true),
2693
- showVariantSelectors: v33.optional(v33.boolean(), true),
2694
- variantSelectorDisplayMode: v33.optional(v33.picklist(["separate", "single"]), "separate")
2373
+ hideOutOfStockVariants: import_v436.z.boolean().optional().default(false),
2374
+ matchVariant: import_v436.z.boolean().optional().default(true),
2375
+ showDeclineAll: import_v436.z.enum(["above", "below", "both", "none"]).optional(),
2376
+ showShipping: import_v436.z.boolean().optional().default(true),
2377
+ showSubtotal: import_v436.z.boolean().optional().default(true),
2378
+ showTaxes: import_v436.z.boolean().optional().default(true),
2379
+ showTotal: import_v436.z.boolean().optional().default(true),
2380
+ showVariantSelectors: import_v436.z.boolean().optional().default(true),
2381
+ variantSelectorDisplayMode: import_v436.z.enum(["separate", "single"]).optional().default("separate")
2695
2382
  }),
2696
- productType: v33.optional(
2697
- v33.union([
2698
- v33.picklist(["one-time", "subscription", "both"]),
2699
- v33.pipe(
2700
- v33.literal(""),
2701
- v33.transform(() => "one-time")
2702
- )
2703
- ]),
2704
- "one-time"
2705
- ),
2706
- productTypeSelector: v33.optional(v33.picklist(["dropdown", "radio"]), "radio"),
2707
- quantityInputs: v33.object({
2708
- defaultQuantity: v33.optional(
2709
- v33.union([
2710
- v33.number(),
2711
- v33.pipe(
2712
- v33.null_(),
2713
- v33.transform(() => 1)
2714
- )
2715
- ]),
2716
- 1
2717
- ),
2718
- enabled: v33.optional(v33.boolean(), true),
2719
- maxValue: v33.optional(
2720
- v33.union([
2721
- v33.number(),
2722
- v33.pipe(
2723
- v33.null_(),
2724
- v33.transform(() => 15)
2725
- )
2726
- ]),
2727
- 15
2728
- ),
2729
- minValue: v33.optional(
2730
- v33.union([
2731
- v33.pipe(v33.number(), v33.minValue(0)),
2732
- v33.pipe(
2733
- v33.unknown(),
2734
- v33.transform(() => 0)
2735
- )
2736
- ]),
2737
- 1
2738
- )
2383
+ productType: import_v436.z.union([import_v436.z.enum(["one-time", "subscription", "both"]), import_v436.z.literal("").transform(() => "one-time")]).default("one-time"),
2384
+ productTypeSelector: import_v436.z.enum(["dropdown", "radio"]).optional().default("radio"),
2385
+ quantityInputs: import_v436.z.object({
2386
+ defaultQuantity: import_v436.z.union([import_v436.z.number(), import_v436.z.null().transform(() => 1)]).default(1),
2387
+ enabled: import_v436.z.boolean().default(true),
2388
+ maxValue: import_v436.z.union([import_v436.z.number(), import_v436.z.null().transform(() => 15)]).default(15),
2389
+ minValue: import_v436.z.union([import_v436.z.number().min(0), import_v436.z.unknown().transform(() => 0)]).default(1)
2739
2390
  }),
2740
- shipping: v33.object({
2741
- amount: v33.optional(strictNumber, 10),
2391
+ shipping: import_v436.z.object({
2392
+ amount: strictNumber.default(10),
2742
2393
  /** This isn't configurable in the admin-nextjs editor */
2743
- enabled: v33.optional(v33.boolean(), true),
2744
- title: v33.optional(v33.string(), "Shipping Fees"),
2745
- type: v33.optional(v33.picklist(["free", "fixed_amount"]), "free")
2394
+ enabled: import_v436.z.boolean().default(true),
2395
+ title: import_v436.z.string().optional().default("Shipping Fees"),
2396
+ type: import_v436.z.enum(["free", "fixed_amount"]).default("free")
2746
2397
  }),
2747
- styles: v33.optional(
2748
- v33.object({
2749
- starColor: v33.optional(v33.string(), "#fadb14"),
2750
- starSize: v33.optional(
2751
- v33.union([
2752
- v33.picklist(["small", "medium", "large"]),
2753
- v33.pipe(
2754
- v33.unknown(),
2755
- v33.transform(() => "large")
2756
- )
2757
- ]),
2758
- "large"
2759
- ),
2760
- starStrokeColor: v33.optional(v33.string(), "#fadb14"),
2761
- strokeWidth: v33.optional(v33.string(), "1")
2398
+ styles: import_v436.z.object({
2399
+ starColor: import_v436.z.string().optional().default("#fadb14"),
2400
+ starSize: import_v436.z.union([import_v436.z.enum(["small", "medium", "large"]), import_v436.z.unknown().transform(() => "large")]).optional().default("large"),
2401
+ starStrokeColor: import_v436.z.string().optional().default("#fadb14"),
2402
+ strokeWidth: import_v436.z.string().optional().default("1")
2403
+ }).optional(),
2404
+ subImages: import_v436.z.number().nullish().default(8),
2405
+ subscription: import_v436.z.object({
2406
+ discount: import_v436.z.object({
2407
+ amount: strictNumber.default(30),
2408
+ shouldShowSavingText: import_v436.z.boolean().optional().default(true),
2409
+ type: import_v436.z.enum(["none", "fixed_amount", "percentage"]).default("none")
2410
+ }),
2411
+ shipping: import_v436.z.object({
2412
+ amount: strictNumber.default(1),
2413
+ /** This isn't configurable in the admin-nextjs editor */
2414
+ enabled: import_v436.z.boolean().default(true),
2415
+ /** This isn't configurable in the admin-nextjs editor */
2416
+ recurringAmount: strictNumber.default(2),
2417
+ shippingTitle: import_v436.z.string().default("Shipping Fees"),
2418
+ type: import_v436.z.enum(["free", "fixed_amount"]).default("free")
2762
2419
  })
2763
- ),
2764
- subImages: v33.optional(v33.nullable(v33.number()), 8),
2765
- subscription: v33.optional(
2766
- v33.optional(
2767
- v33.object({
2768
- discount: v33.object({
2769
- amount: v33.optional(strictNumber, 30),
2770
- shouldShowSavingText: v33.optional(v33.boolean(), true),
2771
- type: v33.optional(v33.picklist(["none", "fixed_amount", "percentage"]), "none")
2772
- }),
2773
- shipping: v33.object({
2774
- amount: v33.optional(strictNumber, 1),
2775
- /** This isn't configurable in the admin-nextjs editor */
2776
- enabled: v33.optional(v33.boolean(), true),
2777
- /** This isn't configurable in the admin-nextjs editor */
2778
- recurringAmount: v33.optional(strictNumber, 2),
2779
- shippingTitle: v33.optional(v33.string(), "Shipping Fees"),
2780
- type: v33.optional(v33.picklist(["free", "fixed_amount"]), "free")
2781
- })
2782
- })
2783
- ),
2784
- {
2785
- discount: {
2786
- amount: 30,
2787
- shouldShowSavingText: true,
2788
- type: "none"
2789
- },
2790
- shipping: {
2791
- amount: 1,
2792
- /** This isn't configurable in the admin-nextjs editor */
2793
- enabled: true,
2794
- /** This isn't configurable in the admin-nextjs editor */
2795
- recurringAmount: 2,
2796
- shippingTitle: "Shipping Fees",
2797
- type: "free"
2798
- }
2420
+ }).optional().default({
2421
+ discount: {
2422
+ amount: 30,
2423
+ shouldShowSavingText: true,
2424
+ type: "none"
2425
+ },
2426
+ shipping: {
2427
+ amount: 1,
2428
+ /** This isn't configurable in the admin-nextjs editor */
2429
+ enabled: true,
2430
+ /** This isn't configurable in the admin-nextjs editor */
2431
+ recurringAmount: 2,
2432
+ shippingTitle: "Shipping Fees",
2433
+ type: "free"
2799
2434
  }
2800
- ),
2801
- subscriptionIsDefault: v33.optional(v33.boolean()),
2435
+ }),
2436
+ subscriptionIsDefault: import_v436.z.boolean().optional(),
2802
2437
  /** This isn't configurable in the admin-nextjs editor */
2803
- template: v33.optional(v33.string(), ""),
2804
- type: v33.optional(v33.literal("shopify_post_purchase_extension"), "shopify_post_purchase_extension"),
2805
- upgradeToSubscription: v33.optional(
2806
- v33.optional(
2807
- v33.object({
2808
- acceptButtonText: v33.optional(v33.string(), "Upgrade"),
2809
- allow: v33.optional(v33.boolean(), false),
2810
- emailRefundNotice: v33.optional(v33.boolean(), false),
2811
- errorBannerText: v33.optional(v33.string(), "This subscription cannot be added - limit one per order")
2812
- })
2813
- ),
2814
- () => ({
2815
- acceptButtonText: "Upgrade",
2816
- allow: false,
2817
- emailRefundNotice: false,
2818
- errorBannerText: "This subscription cannot be added - limit one per order"
2819
- })
2820
- )
2438
+ template: import_v436.z.string().optional().default(""),
2439
+ type: import_v436.z.literal("shopify_post_purchase_extension").default("shopify_post_purchase_extension"),
2440
+ upgradeToSubscription: import_v436.z.object({
2441
+ acceptButtonText: import_v436.z.string().optional().default("Upgrade"),
2442
+ allow: import_v436.z.boolean().optional().default(false),
2443
+ emailRefundNotice: import_v436.z.boolean().optional().default(false),
2444
+ errorBannerText: import_v436.z.string().optional().default("This subscription cannot be added - limit one per order")
2445
+ }).optional().default(() => ({
2446
+ acceptButtonText: "Upgrade",
2447
+ allow: false,
2448
+ emailRefundNotice: false,
2449
+ errorBannerText: "This subscription cannot be added - limit one per order"
2450
+ }))
2821
2451
  });
2822
2452
 
2823
2453
  // src/schema/widgets/post-purchase-offer/postPurchaseWidget.ts
2824
- var PostPurchaseWidgetLinkedFlow = v34.object({
2825
- id: v34.number(),
2826
- name: v34.string()
2454
+ var PostPurchaseWidgetLinkedFlow = import_v437.z.object({
2455
+ id: import_v437.z.number(),
2456
+ name: import_v437.z.string()
2827
2457
  });
2828
- var PostPurchaseWidget = v34.object({
2829
- classification: v34.optional(v34.literal("post_purchase_offer_page"), "post_purchase_offer_page"),
2830
- createdAtTime: v34.optional(v34.pipe(v34.string(), v34.isoTimestamp())),
2831
- customEndpointName: v34.nullish(v34.string()),
2832
- id: v34.optional(v34.number(), 0),
2833
- lastViewed: v34.nullish(v34.pipe(v34.string(), v34.isoTimestamp())),
2834
- linkedCustomEndpointId: v34.nullish(v34.number()),
2835
- linkedFlows: v34.optional(v34.array(PostPurchaseWidgetLinkedFlow)),
2836
- name: v34.optional(v34.string(), ""),
2837
- owner: v34.nullish(v34.number()),
2458
+ var PostPurchaseWidget = import_v437.z.object({
2459
+ classification: import_v437.z.literal("post_purchase_offer_page").default("post_purchase_offer_page"),
2460
+ createdAtTime: import_v437.z.iso.datetime({ offset: true }).optional(),
2461
+ customEndpointName: import_v437.z.string().nullish(),
2462
+ id: import_v437.z.number().default(0),
2463
+ lastViewed: import_v437.z.iso.datetime({ offset: true }).nullish(),
2464
+ linkedCustomEndpointId: import_v437.z.number().nullish(),
2465
+ linkedFlows: import_v437.z.array(PostPurchaseWidgetLinkedFlow).optional(),
2466
+ name: import_v437.z.string().default(""),
2467
+ owner: import_v437.z.number().nullish(),
2838
2468
  settings: PostPurchaseSettings
2839
2469
  });
2840
2470
 
2841
2471
  // src/schema/widgets/post-purchase-offer/postPurchaseOffer.ts
2842
- var PostPurchaseOffer = v35.variant("successful", [
2843
- v35.strictObject({
2844
- errors: v35.array(v35.object({ message: v35.string() })),
2845
- message: v35.string(),
2846
- successful: v35.literal(false)
2472
+ var PostPurchaseOffer = import_v438.z.discriminatedUnion("successful", [
2473
+ import_v438.z.strictObject({
2474
+ errors: import_v438.z.array(import_v438.z.object({ message: import_v438.z.string() })),
2475
+ message: import_v438.z.string(),
2476
+ successful: import_v438.z.literal(false)
2847
2477
  }),
2848
- v35.strictObject({
2849
- successful: v35.literal(true),
2478
+ import_v438.z.strictObject({
2479
+ successful: import_v438.z.literal(true),
2850
2480
  widget: PostPurchaseWidget
2851
2481
  })
2852
2482
  ]);