@rebuy/rebuy 2.25.0-rc.5 → 2.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/dist/index.js +536 -896
  2. package/dist/index.js.map +4 -4
  3. package/dist/index.mjs +535 -895
  4. package/dist/index.mjs.map +4 -4
  5. package/dist/schema/checkout-and-beyond/index.js +28 -340
  6. package/dist/schema/checkout-and-beyond/index.js.map +4 -4
  7. package/dist/schema/checkout-and-beyond/index.mjs +28 -340
  8. package/dist/schema/checkout-and-beyond/index.mjs.map +4 -4
  9. package/dist/schema/user-config.js +4 -50
  10. package/dist/schema/user-config.js.map +4 -4
  11. package/dist/schema/user-config.mjs +4 -50
  12. package/dist/schema/user-config.mjs.map +4 -4
  13. package/dist/schema/userConfig.d.ts +1 -47
  14. package/dist/schema/userConfig.d.ts.map +1 -1
  15. package/dist/schema/widget-data.js +29 -339
  16. package/dist/schema/widget-data.js.map +4 -4
  17. package/dist/schema/widget-data.mjs +29 -339
  18. package/dist/schema/widget-data.mjs.map +4 -4
  19. package/dist/schema/widgetData.d.ts +0 -12
  20. package/dist/schema/widgetData.d.ts.map +1 -1
  21. package/dist/schema/widgets/checkout-and-beyond/banner.d.ts +1 -2
  22. package/dist/schema/widgets/checkout-and-beyond/banner.d.ts.map +1 -1
  23. package/dist/schema/widgets/checkout-and-beyond/offers.d.ts.map +1 -1
  24. package/dist/schema/widgets/checkout-and-beyond/progressBar.d.ts +128 -136
  25. package/dist/schema/widgets/checkout-and-beyond/progressBar.d.ts.map +1 -1
  26. package/dist/schema/widgets/checkout-and-beyond/root.d.ts +0 -19
  27. package/dist/schema/widgets/checkout-and-beyond/root.d.ts.map +1 -1
  28. package/dist/schema/widgets/checkout-and-beyond/text.d.ts +23 -2
  29. package/dist/schema/widgets/checkout-and-beyond/text.d.ts.map +1 -1
  30. package/dist/schema/widgets/checkout-and-beyond/utils.d.ts.map +1 -1
  31. package/dist/schema/widgets/contentBlock.d.ts +0 -6
  32. package/dist/schema/widgets/contentBlock.d.ts.map +1 -1
  33. package/dist/schema/widgets/rebuyButton.d.ts +0 -6
  34. package/dist/schema/widgets/rebuyButton.d.ts.map +1 -1
  35. package/dist/transforms/contentBlockV1/convertContentBlockImageToV2.d.ts +3 -3
  36. package/dist/transforms/contentBlockV1/convertContentBlockTextToV2.d.ts +2 -2
  37. package/dist/transforms/contentBlockV1/convertContentBlockToV2.d.ts +2 -2
  38. package/dist/transforms/contentBlockV1/convertTextToTiptapParagraph.d.ts +1 -1
  39. package/dist/transforms/htmlToTiptap/buildDefaultTextStyleMark.d.ts +2 -2
  40. package/dist/transforms/htmlToTiptap/buildLinkMark.d.ts +1 -1
  41. package/dist/transforms/htmlToTiptap/closeTag.d.ts +1 -1
  42. package/dist/transforms/htmlToTiptap/flushParagraph.d.ts +1 -1
  43. package/dist/transforms/htmlToTiptap/htmlToTiptap.d.ts +2 -2
  44. package/dist/transforms/htmlToTiptap/isSkipping.d.ts +1 -1
  45. package/dist/transforms/htmlToTiptap/makeDoc.d.ts +2 -2
  46. package/dist/transforms/htmlToTiptap/makeParagraph.d.ts +1 -1
  47. package/dist/transforms/htmlToTiptap/openTag.d.ts +1 -1
  48. package/dist/transforms/htmlToTiptap/pushText.d.ts +1 -1
  49. package/dist/transforms/htmlToTiptap/types.d.ts +1 -1
  50. package/dist/transforms/index.d.ts +12 -22
  51. package/dist/transforms/index.d.ts.map +1 -1
  52. package/dist/transforms/index.js +309 -875
  53. package/dist/transforms/index.js.map +4 -4
  54. package/dist/transforms/index.mjs +309 -875
  55. package/dist/transforms/index.mjs.map +4 -4
  56. package/dist/transforms/isCABRootSection.d.ts +1 -2
  57. package/dist/transforms/isCABRootSection.d.ts.map +1 -1
  58. package/dist/transforms/normalizeTextContent.d.ts +6 -7
  59. package/dist/transforms/normalizeTextContent.d.ts.map +1 -1
  60. package/dist/transforms/normalizeTokens.d.ts.map +1 -1
  61. package/package.json +2 -23
  62. package/dist/gwp/getValidGwpProductIds.d.ts +0 -8
  63. package/dist/gwp/getValidGwpProductIds.d.ts.map +0 -1
  64. package/dist/gwp/hasUnsupportedRuleTypes.d.ts +0 -7
  65. package/dist/gwp/hasUnsupportedRuleTypes.d.ts.map +0 -1
  66. package/dist/gwp/index.d.ts +0 -5
  67. package/dist/gwp/index.d.ts.map +0 -1
  68. package/dist/gwp/index.js +0 -43
  69. package/dist/gwp/index.js.map +0 -7
  70. package/dist/gwp/index.mjs +0 -20
  71. package/dist/gwp/index.mjs.map +0 -7
  72. package/dist/gwp/shouldRemoveGift.d.ts +0 -9
  73. package/dist/gwp/shouldRemoveGift.d.ts.map +0 -1
  74. package/dist/gwp/types.d.ts +0 -35
  75. package/dist/gwp/types.d.ts.map +0 -1
  76. package/dist/pricing/amountToCents.d.ts +0 -7
  77. package/dist/pricing/amountToCents.d.ts.map +0 -1
  78. package/dist/pricing/computeCompareAtPrice.d.ts +0 -10
  79. package/dist/pricing/computeCompareAtPrice.d.ts.map +0 -1
  80. package/dist/pricing/computeDisplayPrice.d.ts +0 -10
  81. package/dist/pricing/computeDisplayPrice.d.ts.map +0 -1
  82. package/dist/pricing/index.d.ts +0 -6
  83. package/dist/pricing/index.d.ts.map +0 -1
  84. package/dist/pricing/index.js +0 -79
  85. package/dist/pricing/index.js.map +0 -7
  86. package/dist/pricing/index.mjs +0 -56
  87. package/dist/pricing/index.mjs.map +0 -7
  88. package/dist/pricing/priceVariant.d.ts +0 -8
  89. package/dist/pricing/priceVariant.d.ts.map +0 -1
  90. package/dist/pricing/types.d.ts +0 -27
  91. package/dist/pricing/types.d.ts.map +0 -1
  92. package/dist/routes.d.ts +0 -36
  93. package/dist/routes.d.ts.map +0 -1
  94. package/dist/routes.js +0 -41
  95. package/dist/routes.js.map +0 -7
  96. package/dist/routes.mjs +0 -20
  97. package/dist/routes.mjs.map +0 -7
  98. package/dist/schema/smartCart.d.ts +0 -201
  99. package/dist/schema/smartCart.d.ts.map +0 -1
  100. package/dist/server/adsEngine.d.ts +0 -31
  101. package/dist/server/adsEngine.d.ts.map +0 -1
  102. package/dist/server/analytics.d.ts +0 -26
  103. package/dist/server/analytics.d.ts.map +0 -1
  104. package/dist/server/composeOffer.d.ts +0 -11
  105. package/dist/server/composeOffer.d.ts.map +0 -1
  106. package/dist/server/dataSourceResults.d.ts +0 -17
  107. package/dist/server/dataSourceResults.d.ts.map +0 -1
  108. package/dist/server/giftValidation.d.ts +0 -11
  109. package/dist/server/giftValidation.d.ts.map +0 -1
  110. package/dist/server/index.d.ts +0 -10
  111. package/dist/server/index.d.ts.map +0 -1
  112. package/dist/server/index.js +0 -2378
  113. package/dist/server/index.js.map +0 -7
  114. package/dist/server/index.mjs +0 -2355
  115. package/dist/server/index.mjs.map +0 -7
  116. package/dist/server/monetizeOffers.d.ts +0 -11
  117. package/dist/server/monetizeOffers.d.ts.map +0 -1
  118. package/dist/server/shared.d.ts +0 -119
  119. package/dist/server/shared.d.ts.map +0 -1
  120. package/dist/server/userConfig.d.ts +0 -8
  121. package/dist/server/userConfig.d.ts.map +0 -1
  122. package/dist/server/widgetSettings.d.ts +0 -16
  123. package/dist/server/widgetSettings.d.ts.map +0 -1
  124. package/dist/transforms/experiments/resolveExperiment.d.ts +0 -20
  125. package/dist/transforms/experiments/resolveExperiment.d.ts.map +0 -1
  126. package/dist/transforms/lineItemEditorV1/convertLineItemEditorToV2.d.ts +0 -4
  127. package/dist/transforms/lineItemEditorV1/convertLineItemEditorToV2.d.ts.map +0 -1
  128. package/dist/transforms/lineItemEditorV1/switchLabels.d.ts +0 -93
  129. package/dist/transforms/lineItemEditorV1/switchLabels.d.ts.map +0 -1
  130. package/dist/transforms/lineItemEditorV1/types.d.ts +0 -25
  131. package/dist/transforms/lineItemEditorV1/types.d.ts.map +0 -1
  132. package/dist/transforms/offerV1/convertOfferToV2.d.ts +0 -16
  133. package/dist/transforms/offerV1/convertOfferToV2.d.ts.map +0 -1
  134. package/dist/transforms/offerV1/offerCard.d.ts +0 -17
  135. package/dist/transforms/offerV1/offerCard.d.ts.map +0 -1
  136. package/dist/transforms/offerV1/types.d.ts +0 -84
  137. package/dist/transforms/offerV1/types.d.ts.map +0 -1
  138. package/dist/transforms/progressBarV1/convertProgressBarToV2.d.ts +0 -24
  139. package/dist/transforms/progressBarV1/convertProgressBarToV2.d.ts.map +0 -1
  140. package/dist/transforms/progressBarV1/types.d.ts +0 -42
  141. package/dist/transforms/progressBarV1/types.d.ts.map +0 -1
  142. package/dist/transforms/smartCart/convertSmartCartProgressBarToV2.d.ts +0 -17
  143. package/dist/transforms/smartCart/convertSmartCartProgressBarToV2.d.ts.map +0 -1
  144. package/dist/transforms/smartCart/extractSmartCartBars.d.ts +0 -15
  145. package/dist/transforms/smartCart/extractSmartCartBars.d.ts.map +0 -1
package/dist/index.js CHANGED
@@ -39,7 +39,6 @@ __export(src_exports, {
39
39
  CABCartLineSection: () => CABCartLineSection,
40
40
  CABDataSourceSection: () => CABDataSourceSection,
41
41
  CABDiscount: () => CABDiscount,
42
- CABExperiment: () => CABExperiment,
43
42
  CABImageSection: () => CABImageSection,
44
43
  CABIntegrations: () => CABIntegrations,
45
44
  CABLayoutSection: () => CABLayoutSection,
@@ -1276,68 +1275,20 @@ var ShopConfig = import_v43.z.object({
1276
1275
  });
1277
1276
 
1278
1277
  // src/schema/userConfig.ts
1279
- var import_v45 = require("zod/v4");
1280
-
1281
- // src/schema/smartCart.ts
1282
1278
  var import_v44 = require("zod/v4");
1283
- var SmartCartTierProduct = import_v44.z.looseObject({
1284
- handle: import_v44.z.string().optional(),
1285
- id: import_v44.z.coerce.number().optional(),
1286
- productId: import_v44.z.coerce.number().optional(),
1287
- title: import_v44.z.string().optional(),
1288
- variantIds: import_v44.z.array(import_v44.z.coerce.number()).optional()
1289
- });
1290
- var SmartCartTier = import_v44.z.looseObject({
1291
- allProducts: import_v44.z.array(SmartCartTierProduct).optional(),
1292
- /** Merchant-set tier label (e.g. "Free gift", "$100 reward"), shown above the bar when enabled. */
1293
- customTierLabel: import_v44.z.boolean().optional(),
1294
- customTierLabelText: import_v44.z.string().optional(),
1295
- filterOosVariants: import_v44.z.boolean().optional(),
1296
- id: import_v44.z.string().optional(),
1297
- minimum: import_v44.z.coerce.number().optional(),
1298
- presentmentCurrencies: import_v44.z.looseObject({ enabled: import_v44.z.boolean().optional() }).optional(),
1299
- products: import_v44.z.array(SmartCartTierProduct).optional(),
1300
- type: import_v44.z.string().optional()
1301
- });
1302
- var SmartCartBar = import_v44.z.looseObject({
1303
- countryCodes: import_v44.z.array(import_v44.z.string()).optional(),
1304
- /** Products excluded from the progress subtotal; the client subtracts their variants' cart cost. */
1305
- excludedProducts: import_v44.z.array(import_v44.z.looseObject({ variantIds: import_v44.z.array(import_v44.z.coerce.number()).optional() })).optional(),
1306
- freeShippingOnSubscription: import_v44.z.boolean().optional(),
1307
- geolocationEnabled: import_v44.z.boolean().optional(),
1308
- id: import_v44.z.string().optional(),
1309
- language: import_v44.z.looseObject({
1310
- freeShippingReached: import_v44.z.string().optional(),
1311
- freeShippingRemaining: import_v44.z.string().optional(),
1312
- giftAreaTitle: import_v44.z.string().optional()
1313
- }).optional(),
1314
- name: import_v44.z.string().optional(),
1315
- tiers: import_v44.z.array(SmartCartTier).optional()
1316
- });
1317
- var SmartCartComponent = import_v44.z.looseObject({
1318
- settings: import_v44.z.looseObject({ bars: import_v44.z.array(SmartCartBar).optional() }).optional(),
1319
- type: import_v44.z.string().optional()
1320
- });
1321
- var SmartCartConfig = import_v44.z.looseObject({
1322
- components: import_v44.z.array(SmartCartComponent).optional()
1323
- });
1324
-
1325
- // src/schema/userConfig.ts
1326
- var UserConfig = import_v45.z.object({
1279
+ var UserConfig = import_v44.z.object({
1327
1280
  shop: ShopConfig,
1328
- // `.catch(undefined)`: smart-cart shape drift must never fail this parse — `fetchUserConfig`
1329
- // resolves the apiKey for every offers/monetize/analytics/gift request. Worst case: no bar.
1330
- smartCart: SmartCartConfig.nullish().catch(void 0),
1331
- smartFlows: import_v45.z.array(import_v45.z.unknown())
1281
+ smartCart: import_v44.z.unknown(),
1282
+ smartFlows: import_v44.z.array(import_v44.z.unknown())
1332
1283
  });
1333
1284
 
1334
1285
  // src/schema/widgetData.ts
1335
- var import_v433 = require("zod/v4");
1286
+ var import_v432 = require("zod/v4");
1336
1287
 
1337
1288
  // src/schema/widgets/abTestingPlaceholder.ts
1338
- var import_v46 = require("zod/v4");
1339
- var ABTestingPlaceholder = import_v46.z.looseObject({
1340
- type: import_v46.z.literal("placeholder")
1289
+ var import_v45 = require("zod/v4");
1290
+ var ABTestingPlaceholder = import_v45.z.looseObject({
1291
+ type: import_v45.z.literal("placeholder")
1341
1292
  });
1342
1293
 
1343
1294
  // src/schema/widgets/checkout-and-beyond/constants.ts
@@ -1570,23 +1521,23 @@ var widgetTypes = [
1570
1521
  var WidgetType = freezeEnum(widgetTypes);
1571
1522
 
1572
1523
  // src/schema/widgets/checkoutExtension.ts
1573
- var import_v47 = require("zod/v4");
1574
- var CheckoutExtension = import_v47.z.looseObject({
1575
- type: import_v47.z.literal(WidgetType.shopify_checkout_extension).default(WidgetType.shopify_checkout_extension)
1524
+ var import_v46 = require("zod/v4");
1525
+ var CheckoutExtension = import_v46.z.looseObject({
1526
+ type: import_v46.z.literal(WidgetType.shopify_checkout_extension).default(WidgetType.shopify_checkout_extension)
1576
1527
  });
1577
1528
 
1578
1529
  // src/schema/widgets/contentBlock.ts
1579
- var import_v427 = require("zod/v4");
1530
+ var import_v426 = require("zod/v4");
1580
1531
 
1581
1532
  // src/schema/widgets/checkout-and-beyond/root.ts
1582
- var import_v426 = require("zod/v4");
1533
+ var import_v425 = require("zod/v4");
1583
1534
 
1584
1535
  // src/schema/widgets/checkout-and-beyond/layout.ts
1585
- var import_uuid11 = require("uuid");
1586
- var import_v425 = require("zod/v4");
1536
+ var import_uuid12 = require("uuid");
1537
+ var import_v424 = require("zod/v4");
1587
1538
 
1588
1539
  // src/schema/widgets/checkout-and-beyond/rule.ts
1589
- var import_v48 = require("zod/v4");
1540
+ var import_v47 = require("zod/v4");
1590
1541
  var ruleTypes = [
1591
1542
  "cart",
1592
1543
  "cart_count",
@@ -1605,7 +1556,7 @@ var ruleTypes = [
1605
1556
  "product_type",
1606
1557
  "product_vendor"
1607
1558
  ];
1608
- var ruleType = import_v48.z.enum(ruleTypes);
1559
+ var ruleType = import_v47.z.enum(ruleTypes);
1609
1560
  var RuleType = ruleType.enum;
1610
1561
  var ruleOperators = [
1611
1562
  "after",
@@ -1620,59 +1571,59 @@ var ruleOperators = [
1620
1571
  "greater_than",
1621
1572
  "less_than"
1622
1573
  ];
1623
- var ruleOperator = import_v48.z.enum(ruleOperators);
1574
+ var ruleOperator = import_v47.z.enum(ruleOperators);
1624
1575
  var RuleOperator = ruleOperator.enum;
1625
- var RuleCondition = import_v48.z.object({
1626
- operator: import_v48.z.enum(ruleOperators).default(RuleOperator.anything),
1627
- products: import_v48.z.union([import_v48.z.array(import_v48.z.unknown()), import_v48.z.strictObject({}).transform(() => [])]).default(() => []),
1628
- type: import_v48.z.enum(ruleTypes).default(RuleType.cart_subtotal),
1629
- value: import_v48.z.coerce.string().default("")
1630
- });
1631
- var RuleLogicBlock = import_v48.z.object({
1632
- rules: import_v48.z.array(RuleCondition).default(() => [])
1633
- });
1634
- var CABRule = import_v48.z.object({
1635
- dataSourceId: import_v48.z.number().nullable().default(null),
1636
- enabled: import_v48.z.boolean().default(false),
1637
- ruleset: import_v48.z.union([
1638
- import_v48.z.array(
1639
- import_v48.z.object({
1640
- exitIfMatched: import_v48.z.boolean().default(true),
1641
- logic: import_v48.z.array(RuleLogicBlock).default(() => []),
1642
- output: import_v48.z.array(
1643
- import_v48.z.object({
1644
- key: import_v48.z.string().default("should_show"),
1645
- type: import_v48.z.literal("data_json").default("data_json"),
1646
- value: import_v48.z.string().default("true")
1576
+ var RuleCondition = import_v47.z.object({
1577
+ operator: import_v47.z.enum(ruleOperators).default(RuleOperator.anything),
1578
+ products: import_v47.z.union([import_v47.z.array(import_v47.z.unknown()), import_v47.z.strictObject({}).transform(() => [])]).default(() => []),
1579
+ type: import_v47.z.enum(ruleTypes).default(RuleType.cart_subtotal),
1580
+ value: import_v47.z.coerce.string().default("")
1581
+ });
1582
+ var RuleLogicBlock = import_v47.z.object({
1583
+ rules: import_v47.z.array(RuleCondition).default(() => [])
1584
+ });
1585
+ var CABRule = import_v47.z.object({
1586
+ dataSourceId: import_v47.z.number().nullable().default(null),
1587
+ enabled: import_v47.z.boolean().default(false),
1588
+ ruleset: import_v47.z.union([
1589
+ import_v47.z.array(
1590
+ import_v47.z.object({
1591
+ exitIfMatched: import_v47.z.boolean().default(true),
1592
+ logic: import_v47.z.array(RuleLogicBlock).default(() => []),
1593
+ output: import_v47.z.array(
1594
+ import_v47.z.object({
1595
+ key: import_v47.z.string().default("should_show"),
1596
+ type: import_v47.z.literal("data_json").default("data_json"),
1597
+ value: import_v47.z.string().default("true")
1647
1598
  })
1648
1599
  ).default(() => [{ key: "should_show", type: "data_json", value: "true" }])
1649
1600
  })
1650
1601
  ),
1651
- import_v48.z.strictObject({}).transform(() => [])
1602
+ import_v47.z.strictObject({}).transform(() => [])
1652
1603
  ]).default(() => [])
1653
1604
  });
1654
1605
 
1655
1606
  // src/schema/widgets/checkout-and-beyond/shared.ts
1656
- var import_v424 = require("zod/v4");
1607
+ var import_v423 = require("zod/v4");
1657
1608
 
1658
1609
  // src/schema/widgets/checkout-and-beyond/banner.ts
1659
- var import_v49 = require("zod/v4");
1660
- var CABBannerSection = import_v49.z.lazy(
1610
+ var import_v48 = require("zod/v4");
1611
+ var CABBannerSection = import_v48.z.lazy(
1661
1612
  () => CABLayoutSection.omit({ sectionType: true }).extend({
1662
- buttonField: import_v49.z.enum(buttonFields).optional(),
1663
- color: import_v49.z.enum(bannerColors).default("info"),
1664
- dismissible: import_v49.z.boolean().default(false),
1665
- sectionType: import_v49.z.literal(SectionType.banner).default(SectionType.banner)
1613
+ buttonField: import_v48.z.enum(buttonFields).optional(),
1614
+ color: import_v48.z.enum(bannerColors).default("info"),
1615
+ dismissible: import_v48.z.boolean().default(true),
1616
+ sectionType: import_v48.z.literal(SectionType.banner).default(SectionType.banner)
1666
1617
  })
1667
1618
  );
1668
1619
 
1669
1620
  // src/schema/widgets/checkout-and-beyond/button.ts
1670
1621
  var import_uuid3 = require("uuid");
1671
- var import_v412 = require("zod/v4");
1622
+ var import_v411 = require("zod/v4");
1672
1623
 
1673
1624
  // src/schema/widgets/checkout-and-beyond/image.ts
1674
1625
  var import_uuid = require("uuid");
1675
- var import_v410 = require("zod/v4");
1626
+ var import_v49 = require("zod/v4");
1676
1627
 
1677
1628
  // src/schema/widgets/checkout-and-beyond/regex.ts
1678
1629
  var ARRAY_INDEX_STRING = /^(0|[1-9]\d*)$/;
@@ -1690,7 +1641,7 @@ var isHTML = (html = "") => {
1690
1641
  const hasHTML = (nodeList) => Array.from(nodeList).some((node) => node.nodeType === 1);
1691
1642
  return hasHTML(doc.body.childNodes) || hasHTML(doc.head.childNodes);
1692
1643
  }
1693
- return /<\/?[^>]+>/.test(html);
1644
+ return HTML_TAGS_REGEX.test(html);
1694
1645
  };
1695
1646
  var hasHTMLInDoc = (doc) => doc.content.some(({ content = [] }) => content.some(({ text }) => isHTML(text)));
1696
1647
  var checkForHTML = (input) => !((0, import_compat.isString)(input) && isHTML(input) || (0, import_es_toolkit2.isPlainObject)(input) && hasHTMLInDoc(input));
@@ -1724,342 +1675,86 @@ var convertNumericObjects = (input) => {
1724
1675
  };
1725
1676
 
1726
1677
  // src/schema/widgets/checkout-and-beyond/image.ts
1727
- var CABImageSection = import_v410.z.object({
1728
- altText: import_v410.z.string().refine(checkForHTML, NO_HTML).default(""),
1729
- aspectRatio: import_v410.z.literal(1).nullable().default(null),
1730
- border: import_v410.z.lazy(() => CABBorder),
1731
- buttonField: import_v410.z.enum(buttonFields).optional(),
1732
- category: import_v410.z.enum(["gallery", "icons", "payment-methods", "secure-checkout"]).nullable().default(null),
1733
- name: import_v410.z.string().optional(),
1734
- naturalHeight: import_v410.z.number().default(0),
1735
- naturalWidth: import_v410.z.number().default(0),
1736
- objectFit: import_v410.z.enum(objectFits).default(ObjectFit.cover),
1678
+ var CABImageSection = import_v49.z.object({
1679
+ altText: import_v49.z.string().refine(checkForHTML, NO_HTML).default(""),
1680
+ aspectRatio: import_v49.z.literal(1).nullable().default(null),
1681
+ border: import_v49.z.lazy(() => CABBorder),
1682
+ buttonField: import_v49.z.enum(buttonFields).optional(),
1683
+ category: import_v49.z.enum(["gallery", "icons", "payment-methods", "secure-checkout"]).nullable().default(null),
1684
+ name: import_v49.z.string().optional(),
1685
+ naturalHeight: import_v49.z.number().default(0),
1686
+ naturalWidth: import_v49.z.number().default(0),
1687
+ objectFit: import_v49.z.enum(objectFits).default(ObjectFit.cover),
1737
1688
  rule: CABRule.optional(),
1738
- sectionId: import_v410.z.uuid().default(() => (0, import_uuid.v7)()),
1739
- sectionType: import_v410.z.literal(SectionType.image).default(SectionType.image),
1740
- source: import_v410.z.union([import_v410.z.url(), import_v410.z.literal(""), import_v410.z.string().regex(DYNAMIC_TOKEN_REGEX)]).default(""),
1741
- width: import_v410.z.number().default(100)
1689
+ sectionId: import_v49.z.uuid().default(() => (0, import_uuid.v7)()),
1690
+ sectionType: import_v49.z.literal(SectionType.image).default(SectionType.image),
1691
+ source: import_v49.z.union([import_v49.z.url(), import_v49.z.literal(""), import_v49.z.string().regex(DYNAMIC_TOKEN_REGEX)]).default(""),
1692
+ width: import_v49.z.number().default(100)
1742
1693
  });
1743
1694
 
1744
1695
  // src/schema/widgets/checkout-and-beyond/text.ts
1745
1696
  var import_compat2 = require("es-toolkit/compat");
1746
1697
  var import_uuid2 = require("uuid");
1747
- var import_v411 = require("zod/v4");
1748
-
1749
- // src/transforms/htmlToTiptap/buildDefaultTextStyleMark.ts
1750
- var buildDefaultTextStyleMark = (style) => {
1751
- if (!style || style.color === void 0 && style.fontSize === void 0) return null;
1752
- return {
1753
- attrs: {
1754
- color: style.color ?? "base",
1755
- fontSize: style.fontSize ?? "base"
1756
- },
1757
- type: "textStyle"
1758
- };
1759
- };
1760
-
1761
- // src/transforms/htmlToTiptap/closeTag.ts
1762
- var closeTag = (stack, name) => {
1763
- for (let index = stack.length - 1; index >= 0; index--) {
1764
- if (stack[index].tag === name) {
1765
- stack.length = index;
1766
- break;
1767
- }
1768
- }
1769
- };
1770
-
1771
- // src/transforms/htmlToTiptap/constants.ts
1772
- var TAG_RE = /<(\/)?([a-zA-Z][a-zA-Z0-9]*)((?:\s+[^>]*?)?)\s*(\/)?>/g;
1773
- var BLOCK_TAGS = /* @__PURE__ */ new Set([
1774
- "article",
1775
- "aside",
1776
- "blockquote",
1777
- "dd",
1778
- "div",
1779
- "dt",
1780
- "figcaption",
1781
- "figure",
1782
- "footer",
1783
- "h1",
1784
- "h2",
1785
- "h3",
1786
- "h4",
1787
- "h5",
1788
- "h6",
1789
- "header",
1790
- "hr",
1791
- "li",
1792
- "main",
1793
- "nav",
1794
- "p",
1795
- "pre",
1796
- "section"
1797
- ]);
1798
-
1799
- // src/transforms/htmlToTiptap/makeParagraph.ts
1800
- var makeParagraph = (content) => TiptapParagraph.parse({ content });
1801
-
1802
- // src/transforms/htmlToTiptap/flushParagraph.ts
1803
- var flushParagraph = (state) => {
1804
- state.paragraphs.push(makeParagraph(state.currentRuns));
1805
- state.currentRuns = [];
1806
- };
1807
-
1808
- // src/transforms/htmlToTiptap/isSkipping.ts
1809
- var isSkipping = (stack = []) => stack.some(({ skip }) => skip);
1810
-
1811
- // src/transforms/htmlToTiptap/makeDoc.ts
1812
- var makeDoc = (content, blockSpacing) => TiptapDocument.parse({ attrs: { blockSpacing }, content });
1813
-
1814
- // src/transforms/htmlToTiptap/isValidHref.ts
1815
- var DYNAMIC_TOKEN_REGEX2 = /^\{\{\s*[A-Za-z]+\s*\}\}$/;
1816
- var ALLOWED_PROTOCOLS = /* @__PURE__ */ new Set(["http:", "https:", "mailto:", "tel:"]);
1817
- var isValidHref = (href) => {
1818
- if (!href) return false;
1819
- if (href === "#") return true;
1820
- if (DYNAMIC_TOKEN_REGEX2.test(href)) return true;
1821
- try {
1822
- const url = new URL(href);
1823
- return ALLOWED_PROTOCOLS.has(url.protocol);
1824
- } catch {
1825
- return false;
1826
- }
1827
- };
1828
-
1829
- // src/transforms/htmlToTiptap/buildLinkMark.ts
1830
- var DEFAULT_TARGET = "_blank";
1831
- var DEFAULT_REL = "noopener noreferrer nofollow";
1832
- var ensureSafeRel = (rel, target) => {
1833
- if (target !== "_blank") return rel;
1834
- const sourceTokens = (rel ?? "").split(/\s+/).filter(Boolean);
1835
- if (sourceTokens.length === 0) return DEFAULT_REL;
1836
- const tokens = new Set(sourceTokens.filter((token) => token.toLowerCase() !== "opener"));
1837
- tokens.add("noopener");
1838
- tokens.add("noreferrer");
1839
- return Array.from(tokens).join(" ");
1840
- };
1841
- var buildLinkMark = (attrs = {}) => {
1842
- const { href } = attrs;
1843
- if (!href || !isValidHref(href)) return null;
1844
- const target = attrs.target ?? DEFAULT_TARGET;
1845
- return {
1846
- attrs: {
1847
- class: null,
1848
- href,
1849
- rel: ensureSafeRel(attrs.rel, target),
1850
- target
1851
- },
1852
- type: "link"
1853
- };
1854
- };
1855
-
1856
- // src/transforms/htmlToTiptap/decodeEntities.ts
1857
- var NAMED_ENTITIES = {
1858
- amp: "&",
1859
- apos: "'",
1860
- copy: "\xA9",
1861
- gt: ">",
1862
- hellip: "\u2026",
1863
- ldquo: "\u201C",
1864
- lsquo: "\u2018",
1865
- lt: "<",
1866
- mdash: "\u2014",
1867
- nbsp: " ",
1868
- ndash: "\u2013",
1869
- quot: '"',
1870
- rdquo: "\u201D",
1871
- reg: "\xAE",
1872
- rsquo: "\u2019",
1873
- trade: "\u2122"
1874
- };
1875
- var decodeEntities = (input = "") => input.replace(/&(#x[\da-f]+|#\d+|[a-z][a-z\d]*);/gi, (match, code) => {
1876
- if (code[0] !== "#") return NAMED_ENTITIES[code.toLowerCase()] ?? match;
1877
- const isHex = /^#x/i.test(code);
1878
- const cp = parseInt(code.slice(isHex ? 2 : 1), isHex ? 16 : 10);
1879
- return Number.isInteger(cp) && cp >= 0 && cp <= 1114111 ? String.fromCodePoint(cp) : match;
1880
- });
1881
-
1882
- // src/transforms/htmlToTiptap/parseAttribs.ts
1883
- var ATTRIB_RE = /([a-zA-Z_:][\w:.-]*)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'`=<>]+)))?/g;
1884
- var parseAttribs = (attrString) => {
1885
- const result = {};
1886
- let match;
1887
- ATTRIB_RE.lastIndex = 0;
1888
- while ((match = ATTRIB_RE.exec(attrString)) !== null) {
1889
- result[match[1].toLowerCase()] = decodeEntities(match[2] ?? match[3] ?? match[4] ?? "");
1890
- }
1891
- return result;
1892
- };
1893
-
1894
- // src/transforms/htmlToTiptap/openTag.ts
1895
- var INLINE_MARK_TAGS = {
1896
- b: "bold",
1897
- del: "strike",
1898
- em: "italic",
1899
- i: "italic",
1900
- s: "strike",
1901
- strike: "strike",
1902
- strong: "bold"
1903
- };
1904
- var HEADING_FONT_SIZE = {
1905
- h1: "extraLarge",
1906
- h2: "large",
1907
- h3: "medium",
1908
- h4: "base",
1909
- h5: "small",
1910
- h6: "small"
1911
- };
1912
- var STRIPPED_TAGS = ["embed", "iframe", "noscript", "object", "script", "style", "template"];
1913
- var marksForTag = (name, attrs) => {
1914
- if (INLINE_MARK_TAGS[name]) return [{ type: INLINE_MARK_TAGS[name] }];
1915
- if (HEADING_FONT_SIZE[name]) {
1916
- return [{ type: "bold" }, { attrs: { color: "base", fontSize: HEADING_FONT_SIZE[name] }, type: "textStyle" }];
1917
- }
1918
- if (name === "a") {
1919
- const link = buildLinkMark(parseAttribs(attrs));
1920
- return link ? [link] : [];
1921
- }
1922
- return [];
1923
- };
1924
- var openTag = (stack, name, attrs) => {
1925
- stack.push({
1926
- marks: marksForTag(name, attrs),
1927
- skip: STRIPPED_TAGS.includes(name),
1928
- tag: name
1929
- });
1930
- };
1931
-
1932
- // src/transforms/htmlToTiptap/pushText.ts
1933
- var pushText = (state, rawText) => {
1934
- if (!rawText || isSkipping(state.stack)) return;
1935
- decodeEntities(rawText).split("\n").forEach((segment, index) => {
1936
- if (index > 0) flushParagraph(state);
1937
- if (!segment) return;
1938
- const marks = state.stack.flatMap((entry) => entry.marks);
1939
- if (state.defaultTextStyleMark && !marks.some((mark) => mark.type === "textStyle")) {
1940
- marks.push(state.defaultTextStyleMark);
1941
- }
1942
- state.currentRuns.push(TiptapText.parse(marks.length > 0 ? { marks, text: segment } : { text: segment }));
1943
- });
1944
- };
1945
-
1946
- // src/transforms/htmlToTiptap/stripHtmlComments.ts
1947
- var HTML_COMMENT_RE = /<!--[\s\S]*?-->/g;
1948
- var stripHtmlComments = (html = "") => html.replace(HTML_COMMENT_RE, "");
1949
-
1950
- // src/transforms/htmlToTiptap/htmlToTiptap.ts
1951
- var maybeFlushParagraph = (state) => {
1952
- if (state.currentRuns.length > 0) flushParagraph(state);
1953
- };
1954
- var htmlToTiptap = (html, options = {}) => {
1955
- const state = {
1956
- currentRuns: [],
1957
- defaultTextStyleMark: buildDefaultTextStyleMark(options.defaultTextStyle),
1958
- listStack: [],
1959
- paragraphs: [],
1960
- stack: []
1961
- };
1962
- const blockSpacing = options.blockSpacing ?? "base";
1963
- if (typeof html !== "string" || !html) return makeDoc([makeParagraph([])], blockSpacing);
1964
- const htmlWithoutComments = stripHtmlComments(html);
1965
- let lastIndex = 0;
1966
- let match;
1967
- TAG_RE.lastIndex = 0;
1968
- while ((match = TAG_RE.exec(htmlWithoutComments)) !== null) {
1969
- const [full, slash, rawName, attrs, selfClose] = match;
1970
- if (match.index > lastIndex) pushText(state, htmlWithoutComments.slice(lastIndex, match.index));
1971
- lastIndex = match.index + full.length;
1972
- const name = rawName.toLowerCase();
1973
- if (slash) {
1974
- closeTag(state.stack, name);
1975
- if (name === "ul" || name === "ol") state.listStack.pop();
1976
- if (BLOCK_TAGS.has(name) && !isSkipping(state.stack)) maybeFlushParagraph(state);
1977
- } else if (name === "br") {
1978
- if (!isSkipping(state.stack)) flushParagraph(state);
1979
- } else if (name === "hr") {
1980
- if (!isSkipping(state.stack)) {
1981
- maybeFlushParagraph(state);
1982
- pushText(state, "\u2014\u2014\u2014");
1983
- flushParagraph(state);
1984
- }
1985
- } else if (!selfClose) {
1986
- if (BLOCK_TAGS.has(name) && !isSkipping(state.stack)) maybeFlushParagraph(state);
1987
- if (name === "ul" || name === "ol") state.listStack.push({ counter: 0, ordered: name === "ol" });
1988
- openTag(state.stack, name, attrs);
1989
- if (name === "li" && state.listStack.length > 0) {
1990
- const top = state.listStack[state.listStack.length - 1];
1991
- if (top.ordered) top.counter += 1;
1992
- pushText(state, top.ordered ? `${top.counter}. ` : "\u2022 ");
1993
- }
1994
- }
1995
- }
1996
- if (lastIndex < htmlWithoutComments.length) pushText(state, htmlWithoutComments.slice(lastIndex));
1997
- maybeFlushParagraph(state);
1998
- if (state.paragraphs.length === 0) flushParagraph(state);
1999
- return makeDoc(state.paragraphs, blockSpacing);
2000
- };
2001
-
2002
- // src/schema/widgets/checkout-and-beyond/text.ts
2003
- var enumOrOmit = (...vals) => import_v411.z.string().transform((val) => vals.includes(val) ? val : void 0).optional();
2004
- var TiptapText = import_v411.z.object({
2005
- marks: import_v411.z.union([
2006
- import_v411.z.array(
2007
- import_v411.z.discriminatedUnion("type", [
2008
- import_v411.z.object({ type: import_v411.z.literal("bold") }),
2009
- import_v411.z.object({ type: import_v411.z.literal("italic") }),
2010
- import_v411.z.object({
2011
- attrs: import_v411.z.object({
2012
- class: import_v411.z.string().nullable(),
2013
- href: import_v411.z.union([import_v411.z.url(), import_v411.z.literal("#"), import_v411.z.string().regex(DYNAMIC_TOKEN_REGEX)]),
2014
- rel: import_v411.z.string().default("noopener noreferrer nofollow"),
2015
- target: import_v411.z.string().default("_blank")
1698
+ var import_v410 = require("zod/v4");
1699
+ var enumOrOmit = (...vals) => import_v410.z.string().transform((val) => vals.includes(val) ? val : void 0).optional();
1700
+ var TiptapText = import_v410.z.object({
1701
+ marks: import_v410.z.union([
1702
+ import_v410.z.array(
1703
+ import_v410.z.discriminatedUnion("type", [
1704
+ import_v410.z.object({ type: import_v410.z.literal("bold") }),
1705
+ import_v410.z.object({ type: import_v410.z.literal("italic") }),
1706
+ import_v410.z.object({
1707
+ attrs: import_v410.z.object({
1708
+ class: import_v410.z.string().nullable(),
1709
+ href: import_v410.z.union([import_v410.z.url(), import_v410.z.literal("#"), import_v410.z.string().regex(DYNAMIC_TOKEN_REGEX)]),
1710
+ rel: import_v410.z.string().default("noopener noreferrer nofollow"),
1711
+ target: import_v410.z.string().default("_blank")
2016
1712
  }),
2017
- type: import_v411.z.literal("link")
1713
+ type: import_v410.z.literal("link")
2018
1714
  }),
2019
- import_v411.z.object({ type: import_v411.z.literal("strike") }),
2020
- import_v411.z.object({
2021
- attrs: import_v411.z.object({
1715
+ import_v410.z.object({ type: import_v410.z.literal("strike") }),
1716
+ import_v410.z.object({
1717
+ attrs: import_v410.z.object({
2022
1718
  color: enumOrOmit(...textColorNames).default(TextColorName.base),
2023
1719
  fontSize: enumOrOmit(...textSizeNames).default(TextSizeName.base)
2024
1720
  }),
2025
- type: import_v411.z.literal("textStyle")
1721
+ type: import_v410.z.literal("textStyle")
2026
1722
  })
2027
1723
  ])
2028
1724
  ),
2029
- import_v411.z.strictObject({}).transform(() => [])
1725
+ import_v410.z.strictObject({}).transform(() => [])
2030
1726
  ]).optional(),
2031
- text: import_v411.z.string().default(""),
2032
- type: import_v411.z.literal("text").default("text")
1727
+ text: import_v410.z.string().default(""),
1728
+ type: import_v410.z.literal("text").default("text")
2033
1729
  });
2034
- var TiptapParagraph = import_v411.z.object({
2035
- attrs: import_v411.z.object({
1730
+ var TiptapParagraph = import_v410.z.object({
1731
+ attrs: import_v410.z.object({
2036
1732
  textAlign: enumOrOmit(...textAlignments)
2037
1733
  }).default({ textAlign: TextAlignment.start }),
2038
- content: import_v411.z.union([import_v411.z.array(TiptapText), import_v411.z.strictObject({}).transform(() => [])]).default(() => []),
2039
- type: import_v411.z.literal("paragraph").default("paragraph")
1734
+ content: import_v410.z.union([import_v410.z.array(TiptapText), import_v410.z.strictObject({}).transform(() => [])]).default(() => []),
1735
+ type: import_v410.z.literal("paragraph").default("paragraph")
2040
1736
  });
2041
- var TiptapDocument = import_v411.z.object({
2042
- attrs: import_v411.z.object({
1737
+ var TiptapDocument = import_v410.z.object({
1738
+ attrs: import_v410.z.object({
2043
1739
  blockSpacing: enumOrOmit(...spacings)
2044
1740
  }).default({ blockSpacing: Spacing.base }),
2045
- content: import_v411.z.union([import_v411.z.array(TiptapParagraph), import_v411.z.strictObject({}).transform(() => [])]).default(() => [TiptapParagraph.parse({})]),
2046
- type: import_v411.z.literal("doc").default("doc")
1741
+ content: import_v410.z.union([import_v410.z.array(TiptapParagraph), import_v410.z.strictObject({}).transform(() => [])]).default(() => [TiptapParagraph.parse({})]),
1742
+ type: import_v410.z.literal("doc").default("doc")
2047
1743
  });
2048
- var coerceTextContent = (value) => typeof value === "string" && isHTML(value) ? htmlToTiptap(value) : value;
2049
- var CABTextSection = import_v411.z.object({
2050
- buttonField: import_v411.z.enum(buttonFields).optional(),
2051
- content: import_v411.z.record(
2052
- import_v411.z.string(),
2053
- import_v411.z.preprocess(
2054
- coerceTextContent,
2055
- import_v411.z.union([import_v411.z.string(), TiptapDocument]).refine(checkForHTML, NO_HTML).optional()
2056
- )
2057
- ).default({ en: TiptapDocument.parse({}) }).optional(),
2058
- name: import_v411.z.string().optional(),
2059
- optionId: import_v411.z.number().optional(),
1744
+ var CABProgressTier = import_v410.z.object({
1745
+ threshold: import_v410.z.number().int().nonnegative(),
1746
+ thresholds: import_v410.z.record(import_v410.z.string(), import_v410.z.number().int().nonnegative()).default(() => ({})),
1747
+ tierType: import_v410.z.enum(progressTierTypes).default(ProgressTierType.shipping)
1748
+ });
1749
+ var CABTextSection = import_v410.z.object({
1750
+ buttonField: import_v410.z.enum(buttonFields).optional(),
1751
+ content: import_v410.z.record(import_v410.z.string(), import_v410.z.union([import_v410.z.string(), TiptapDocument]).refine(checkForHTML, NO_HTML).optional()).default({ en: TiptapDocument.parse({}) }).optional(),
1752
+ name: import_v410.z.string().optional(),
1753
+ optionId: import_v410.z.number().optional(),
2060
1754
  rule: CABRule.optional(),
2061
- sectionId: import_v411.z.uuid().default(() => (0, import_uuid2.v7)()),
2062
- sectionType: import_v411.z.literal(SectionType.text).default(SectionType.text)
1755
+ sectionId: import_v410.z.uuid().default(() => (0, import_uuid2.v7)()),
1756
+ sectionType: import_v410.z.literal(SectionType.text).default(SectionType.text),
1757
+ tier: CABProgressTier.optional()
2063
1758
  }).superRefine(({ buttonField, content }, ctx) => {
2064
1759
  if (buttonField === ButtonField.destinationUrl && content) {
2065
1760
  (0, import_compat2.forEach)(content, (value, lang) => {
@@ -2080,116 +1775,117 @@ var CABTextSection = import_v411.z.object({
2080
1775
  });
2081
1776
 
2082
1777
  // src/schema/widgets/checkout-and-beyond/button.ts
2083
- var CABButtonContent = import_v412.z.lazy(
2084
- () => import_v412.z.discriminatedUnion("sectionType", [CABImageSection, CABLayoutSection, CABTextSection])
1778
+ var CABButtonContent = import_v411.z.lazy(
1779
+ () => import_v411.z.discriminatedUnion("sectionType", [CABImageSection, CABLayoutSection, CABTextSection])
2085
1780
  );
2086
- var CABButtonSection = import_v412.z.object({
2087
- action: import_v412.z.union([import_v412.z.literal(""), import_v412.z.enum(buttonActions)]).default(""),
2088
- buttonStyle: import_v412.z.enum(buttonStyles).default(ButtonStyle.primary),
2089
- custom: import_v412.z.object({
2090
- color: import_v412.z.string().regex(HEX_COLOR_REGEX).default("#005bd3"),
2091
- height: import_v412.z.number().default(52),
2092
- width: import_v412.z.number().default(300)
1781
+ var CABButtonSection = import_v411.z.object({
1782
+ action: import_v411.z.union([import_v411.z.literal(""), import_v411.z.enum(buttonActions)]).default(""),
1783
+ buttonStyle: import_v411.z.enum(buttonStyles).default(ButtonStyle.primary),
1784
+ custom: import_v411.z.object({
1785
+ color: import_v411.z.string().regex(HEX_COLOR_REGEX).default("#005bd3"),
1786
+ height: import_v411.z.number().default(52),
1787
+ width: import_v411.z.number().default(300)
2093
1788
  }).default({
2094
1789
  color: "#005bd3",
2095
1790
  height: 52,
2096
1791
  width: 300
2097
1792
  }),
2098
- disableDowngrade: import_v412.z.boolean().default(false),
2099
- name: import_v412.z.string().optional(),
2100
- optionId: import_v412.z.number().optional(),
2101
- popover: import_v412.z.object({
2102
- alignment: import_v412.z.enum(textAlignments).default(TextAlignment.center),
2103
- position: import_v412.z.enum(popoverPositions).default(PopoverPosition.blockStart)
1793
+ disableDowngrade: import_v411.z.boolean().default(false),
1794
+ name: import_v411.z.string().optional(),
1795
+ optionId: import_v411.z.number().optional(),
1796
+ popover: import_v411.z.object({
1797
+ alignment: import_v411.z.enum(textAlignments).default(TextAlignment.center),
1798
+ position: import_v411.z.enum(popoverPositions).default(PopoverPosition.blockStart)
2104
1799
  }).optional().default(() => ({
2105
1800
  alignment: TextAlignment.center,
2106
1801
  position: PopoverPosition.blockStart
2107
1802
  })),
2108
1803
  rule: CABRule.optional(),
2109
- sectionId: import_v412.z.uuid().default(() => (0, import_uuid3.v7)()),
2110
- sections: import_v412.z.union([import_v412.z.array(CABButtonContent), import_v412.z.strictObject({}).transform(() => [])]).default(() => []),
2111
- sectionType: import_v412.z.literal(SectionType.button).default(SectionType.button),
1804
+ sectionId: import_v411.z.uuid().default(() => (0, import_uuid3.v7)()),
1805
+ sections: import_v411.z.union([import_v411.z.array(CABButtonContent), import_v411.z.strictObject({}).transform(() => [])]).default(() => []),
1806
+ sectionType: import_v411.z.literal(SectionType.button).default(SectionType.button),
2112
1807
  /** Fire-and-forget pixel POSTed when the button is clicked (e.g. a Monetize decline). */
2113
- trackingUrl: import_v412.z.string().optional()
1808
+ trackingUrl: import_v411.z.string().optional()
2114
1809
  });
2115
1810
 
2116
1811
  // src/schema/widgets/checkout-and-beyond/carousel.ts
2117
- var import_v417 = require("zod/v4");
1812
+ var import_v416 = require("zod/v4");
2118
1813
 
2119
1814
  // src/schema/widgets/checkout-and-beyond/offers.ts
2120
- var import_v416 = require("zod/v4");
1815
+ var import_v415 = require("zod/v4");
2121
1816
 
2122
1817
  // src/schema/widgets/checkout-and-beyond/dataSource.ts
2123
1818
  var import_uuid4 = require("uuid");
2124
- var import_v413 = require("zod/v4");
2125
- var CABDiscount = import_v413.z.object({
2126
- amount: import_v413.z.union([import_v413.z.number(), import_v413.z.string()]).catch(0),
2127
- discountedBy: import_v413.z.string().optional(),
2128
- discountedFrom: import_v413.z.enum(discountSources).optional().catch(void 0),
2129
- type: import_v413.z.enum(discountTypes).catch("none")
2130
- });
2131
- var CABIntegrations = import_v413.z.object({
2132
- judgeme: import_v413.z.boolean().default(false),
2133
- junip: import_v413.z.boolean().default(false),
2134
- klaviyo: import_v413.z.boolean().default(false),
2135
- loox: import_v413.z.boolean().default(false),
2136
- okendo: import_v413.z.boolean().default(false),
2137
- opinew: import_v413.z.boolean().default(false),
2138
- reviewsio: import_v413.z.boolean().default(false),
2139
- stamped: import_v413.z.boolean().default(false),
2140
- yotpo: import_v413.z.boolean().default(false)
2141
- });
2142
- var CABDataSourceSection = import_v413.z.object({
2143
- dataSourceId: import_v413.z.number().nullable().default(null),
2144
- dataSourcePath: import_v413.z.string().default(DEFAULT_ENDPOINTS[0].value),
1819
+ var import_v412 = require("zod/v4");
1820
+ var CABDiscount = import_v412.z.object({
1821
+ amount: import_v412.z.union([import_v412.z.number(), import_v412.z.string()]).catch(0),
1822
+ discountedBy: import_v412.z.string().optional(),
1823
+ discountedFrom: import_v412.z.enum(discountSources).optional().catch(void 0),
1824
+ type: import_v412.z.enum(discountTypes).catch("none")
1825
+ });
1826
+ var CABIntegrations = import_v412.z.object({
1827
+ judgeme: import_v412.z.boolean().default(false),
1828
+ junip: import_v412.z.boolean().default(false),
1829
+ klaviyo: import_v412.z.boolean().default(false),
1830
+ loox: import_v412.z.boolean().default(false),
1831
+ okendo: import_v412.z.boolean().default(false),
1832
+ opinew: import_v412.z.boolean().default(false),
1833
+ reviewsio: import_v412.z.boolean().default(false),
1834
+ stamped: import_v412.z.boolean().default(false),
1835
+ yotpo: import_v412.z.boolean().default(false)
1836
+ });
1837
+ var CABDataSourceSection = import_v412.z.object({
1838
+ dataSourceId: import_v412.z.number().nullable().default(null),
1839
+ dataSourcePath: import_v412.z.string().default(DEFAULT_ENDPOINTS[0].value),
2145
1840
  discount: CABDiscount.optional(),
2146
1841
  integrations: CABIntegrations.optional(),
2147
- limit: import_v413.z.number().default(1),
2148
- matchVariant: import_v413.z.boolean().default(false),
2149
- matchVariantOutOfStock: import_v413.z.boolean().default(false),
2150
- name: import_v413.z.string().default(DEFAULT_ENDPOINTS[0].label),
2151
- productType: import_v413.z.enum(productTypes).optional(),
2152
- sectionId: import_v413.z.uuid().default(() => (0, import_uuid4.v7)()),
2153
- sectionType: import_v413.z.literal(SectionType.dataSource).default(SectionType.dataSource),
2154
- treatAsGwp: import_v413.z.boolean().default(false)
1842
+ limit: import_v412.z.number().default(1),
1843
+ matchVariant: import_v412.z.boolean().default(false),
1844
+ matchVariantOutOfStock: import_v412.z.boolean().default(false),
1845
+ name: import_v412.z.string().default(DEFAULT_ENDPOINTS[0].label),
1846
+ productType: import_v412.z.enum(productTypes).optional(),
1847
+ sectionId: import_v412.z.uuid().default(() => (0, import_uuid4.v7)()),
1848
+ sectionType: import_v412.z.literal(SectionType.dataSource).default(SectionType.dataSource),
1849
+ treatAsGwp: import_v412.z.boolean().default(false)
2155
1850
  });
2156
1851
 
2157
1852
  // src/schema/widgets/checkout-and-beyond/products.ts
2158
1853
  var import_uuid6 = require("uuid");
2159
- var import_v415 = require("zod/v4");
1854
+ var import_v414 = require("zod/v4");
2160
1855
 
2161
1856
  // src/schema/widgets/checkout-and-beyond/product.ts
2162
1857
  var import_uuid5 = require("uuid");
2163
- var import_v414 = require("zod/v4");
2164
- var CABVariantContent = import_v414.z.lazy(
2165
- () => import_v414.z.discriminatedUnion("sectionType", [CABButtonSection, CABTextSection])
1858
+ var import_v413 = require("zod/v4");
1859
+ var CABVariantContent = import_v413.z.lazy(
1860
+ () => import_v413.z.discriminatedUnion("sectionType", [CABButtonSection, CABTextSection])
2166
1861
  );
2167
- var CABProductSection = import_v414.z.object({
2168
- name: import_v414.z.string().optional(),
2169
- productId: import_v414.z.number().nullable().default(null),
2170
- sectionId: import_v414.z.uuid().default(() => (0, import_uuid5.v7)()),
2171
- sections: import_v414.z.union([import_v414.z.array(CABVariantContent), import_v414.z.strictObject({}).transform(() => [])]).default(() => []),
2172
- sectionType: import_v414.z.literal(SectionType.product).default(SectionType.product),
2173
- selectors: import_v414.z.record(import_v414.z.string(), import_v414.z.enum(variantSelectors).default(VariantSelector.menu)).default(() => ({})),
2174
- variantMode: import_v414.z.enum(variantModes).default(VariantMode.multiple)
1862
+ var CABProductSection = import_v413.z.object({
1863
+ name: import_v413.z.string().optional(),
1864
+ productId: import_v413.z.number().nullable().default(null),
1865
+ sectionId: import_v413.z.uuid().default(() => (0, import_uuid5.v7)()),
1866
+ sections: import_v413.z.union([import_v413.z.array(CABVariantContent), import_v413.z.strictObject({}).transform(() => [])]).default(() => []),
1867
+ sectionType: import_v413.z.literal(SectionType.product).default(SectionType.product),
1868
+ selectors: import_v413.z.record(import_v413.z.string(), import_v413.z.enum(variantSelectors).default(VariantSelector.menu)).default(() => ({})),
1869
+ variantMode: import_v413.z.enum(variantModes).default(VariantMode.multiple)
2175
1870
  });
2176
1871
 
2177
1872
  // src/schema/widgets/checkout-and-beyond/products.ts
2178
- var CABProductsSection = import_v415.z.object({
2179
- name: import_v415.z.string().optional(),
2180
- sectionId: import_v415.z.uuid().default(() => (0, import_uuid6.v7)()),
2181
- sections: import_v415.z.union([import_v415.z.array(import_v415.z.lazy(() => CABProductSection)), import_v415.z.strictObject({}).transform(() => [])]).default(() => []),
2182
- sectionType: import_v415.z.literal(SectionType.products).default(SectionType.products)
1873
+ var CABProductsSection = import_v414.z.object({
1874
+ name: import_v414.z.string().optional(),
1875
+ sectionId: import_v414.z.uuid().default(() => (0, import_uuid6.v7)()),
1876
+ sections: import_v414.z.union([import_v414.z.array(import_v414.z.lazy(() => CABProductSection)), import_v414.z.strictObject({}).transform(() => [])]).default(() => []),
1877
+ sectionType: import_v414.z.literal(SectionType.products).default(SectionType.products)
2183
1878
  });
2184
1879
 
2185
1880
  // src/schema/widgets/checkout-and-beyond/offers.ts
2186
- var CABOffersSection = import_v416.z.lazy(
1881
+ var CABOffersSection = import_v415.z.lazy(
2187
1882
  () => CABLayoutSection.omit({ sections: true, sectionType: true }).extend({
2188
- sections: import_v416.z.union([import_v416.z.array(import_v416.z.lazy(() => CABSection)), import_v416.z.strictObject({}).transform(() => [])]).default(() => [
1883
+ sections: import_v415.z.union([import_v415.z.array(import_v415.z.lazy(() => CABSection)), import_v415.z.strictObject({}).transform(() => [])]).default(() => [
2189
1884
  CABBannerSection.parse({
2190
1885
  buttonField: "undoAddToOrder",
2191
1886
  color: "success",
2192
1887
  dismissible: true,
1888
+ name: "Success Banner",
2193
1889
  sections: [
2194
1890
  CABTextSection.parse({ content: { en: "{{quantity}} {{productTitle}} added to cart." } }),
2195
1891
  CABButtonSection.parse({ action: "undoAddToOrder", buttonStyle: ButtonStyle.plain })
@@ -2198,111 +1894,62 @@ var CABOffersSection = import_v416.z.lazy(
2198
1894
  CABDataSourceSection.parse({}),
2199
1895
  CABProductsSection.parse({})
2200
1896
  ]),
2201
- sectionType: import_v416.z.literal(SectionType.offers).default(SectionType.offers)
1897
+ sectionType: import_v415.z.literal(SectionType.offers).default(SectionType.offers)
2202
1898
  })
2203
1899
  );
2204
1900
 
2205
1901
  // src/schema/widgets/checkout-and-beyond/carousel.ts
2206
- var CABCarouselSection = import_v417.z.lazy(
1902
+ var CABCarouselSection = import_v416.z.lazy(
2207
1903
  () => CABLayoutSection.omit({ sections: true, sectionType: true }).extend({
2208
- autoAdvanceInterval: import_v417.z.number().default(0),
2209
- itemsAtOnce: import_v417.z.number().min(1).default(1),
2210
- sections: import_v417.z.union([import_v417.z.array(import_v417.z.lazy(() => CABSection)), import_v417.z.strictObject({}).transform(() => [])]).default(() => [CABOffersSection.parse({})]),
2211
- sectionType: import_v417.z.literal(SectionType.carousel).default(SectionType.carousel)
1904
+ autoAdvanceInterval: import_v416.z.number().default(0),
1905
+ itemsAtOnce: import_v416.z.number().min(1).default(1),
1906
+ sections: import_v416.z.union([import_v416.z.array(import_v416.z.lazy(() => CABSection)), import_v416.z.strictObject({}).transform(() => [])]).default(() => [CABOffersSection.parse({})]),
1907
+ sectionType: import_v416.z.literal(SectionType.carousel).default(SectionType.carousel)
2212
1908
  })
2213
1909
  );
2214
1910
 
2215
1911
  // src/schema/widgets/checkout-and-beyond/cartLine.ts
2216
- var import_v418 = require("zod/v4");
2217
- var CABCartLineSection = import_v418.z.lazy(
1912
+ var import_v417 = require("zod/v4");
1913
+ var CABCartLineSection = import_v417.z.lazy(
2218
1914
  () => CABLayoutSection.omit({ sections: true, sectionType: true }).extend({
2219
- 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 })]),
2220
- sectionType: import_v418.z.literal(SectionType.cartLine).default(SectionType.cartLine)
1915
+ sections: import_v417.z.union([import_v417.z.array(import_v417.z.lazy(() => CABSection)), import_v417.z.strictObject({}).transform(() => [])]).default(() => [CABButtonSection.parse({ action: ButtonAction.switchToSubscription })]),
1916
+ sectionType: import_v417.z.literal(SectionType.cartLine).default(SectionType.cartLine)
2221
1917
  })
2222
1918
  );
2223
1919
 
2224
1920
  // src/schema/widgets/checkout-and-beyond/monetize.ts
2225
1921
  var import_uuid7 = require("uuid");
2226
- var import_v419 = require("zod/v4");
2227
- var CABMonetizeSection = import_v419.z.object({
2228
- name: import_v419.z.string().optional(),
1922
+ var import_v418 = require("zod/v4");
1923
+ var CABMonetizeSection = import_v418.z.object({
1924
+ name: import_v418.z.string().optional(),
2229
1925
  rule: CABRule.optional(),
2230
- sectionId: import_v419.z.uuid().default(() => (0, import_uuid7.v7)()),
2231
- sectionType: import_v419.z.literal(SectionType.monetize).default(SectionType.monetize)
1926
+ sectionId: import_v418.z.uuid().default(() => (0, import_uuid7.v7)()),
1927
+ sectionType: import_v418.z.literal(SectionType.monetize).default(SectionType.monetize)
2232
1928
  });
2233
1929
 
2234
1930
  // src/schema/widgets/checkout-and-beyond/progressBar.ts
2235
- var import_v420 = require("zod/v4");
2236
- var CABProgressTier = import_v420.z.object({
2237
- /**
2238
- * Smart-cart product (gift) tiers only: the reward unlocked at this tier. The client enriches
2239
- * `productId`/`variantIds` to live variants (availability, price) and adds the chosen one to the cart
2240
- * when the tier is reached (attribution `_tier` = {@link CABProgressTier.tierId}). Absent on shipping
2241
- * tiers and on tiers with no configured product. Cart add/remove is a later stage; carried here so the
2242
- * tree is complete.
2243
- */
2244
- gift: import_v420.z.object({
2245
- productId: import_v420.z.number().int().positive(),
2246
- title: import_v420.z.string().optional(),
2247
- variantIds: import_v420.z.array(import_v420.z.number().int().positive()).default(() => [])
2248
- }).optional(),
2249
- /**
2250
- * The tier's goal in the SHOP's base currency, in cents. Always present — the canonical fallback:
2251
- * when the buyer's presentment currency has no entry in `thresholds`, the client multiplies this by
2252
- * the live FX rate. (Converter maps the v1 `unlock_price`, e.g. `75` → `7500`.)
2253
- */
2254
- threshold: import_v420.z.number().int().nonnegative(),
2255
- /**
2256
- * Per-presentment-currency goal overrides — lowercased ISO currency code → cents (e.g. `{ cad: 9900 }`).
2257
- * When the buyer's currency has an entry, the client uses it verbatim INSTEAD of FX-converting
2258
- * `threshold`, so merchants show intentional, clean per-market amounts (Shopify Markets) rather than a
2259
- * converted base. Defaults to `{}` — no overrides means always fall back to `threshold`.
2260
- */
2261
- thresholds: import_v420.z.record(import_v420.z.string(), import_v420.z.number().int().nonnegative()).default(() => ({})),
2262
- /**
2263
- * Smart-cart tier identifier, mirrored onto the gift cart line's `_tier` attribute so the client can
2264
- * match an in-cart gift back to its tier (add on reach, remove on downgrade/decline). Absent on the
2265
- * shipping bar (single unlabeled tier, no gift).
2266
- */
2267
- tierId: import_v420.z.string().optional(),
2268
- tierType: import_v420.z.enum(progressTierTypes).default(ProgressTierType.shipping)
1931
+ var import_uuid8 = require("uuid");
1932
+ var import_v419 = require("zod/v4");
1933
+ var CABProgressBarSection = import_v419.z.object({
1934
+ /** Empty = shown everywhere; otherwise uppercase ISO country codes. */
1935
+ countryCodes: import_v419.z.array(import_v419.z.string()).default(() => []),
1936
+ name: import_v419.z.string().optional(),
1937
+ rule: CABRule.optional(),
1938
+ sectionId: import_v419.z.uuid().default(() => (0, import_uuid8.v7)()),
1939
+ sections: import_v419.z.union([import_v419.z.array(CABTextSection), import_v419.z.strictObject({}).transform(() => [])]).default(() => []),
1940
+ sectionType: import_v419.z.literal(SectionType.progressBar).default(SectionType.progressBar)
2269
1941
  });
2270
- var CABProgressBarSection = import_v420.z.lazy(
2271
- () => CABLayoutSection.omit({ sectionType: true }).extend({
2272
- /** Empty = shown everywhere; otherwise uppercase ISO country codes. */
2273
- countryCodes: import_v420.z.array(import_v420.z.string().transform((code) => code.trim().toUpperCase())).default(() => []),
2274
- /**
2275
- * Uppercase ISO codes where a higher-precedence geo bar applies, so this (default, non-geo) bar is
2276
- * hidden there — replicates React `getbar`'s geo-match-over-default precedence. Empty = never excluded.
2277
- */
2278
- excludeCountryCodes: import_v420.z.array(import_v420.z.string().transform((code) => code.trim().toUpperCase())).default(() => []),
2279
- /** Variant ids the client subtracts from the adjusted subtotal (React `bar.excluded_products`). */
2280
- excludedVariantIds: import_v420.z.array(import_v420.z.number().int().positive()).default(() => []),
2281
- /**
2282
- * When the cart holds a subscription item, treat the bar as reached regardless of subtotal (React
2283
- * `free_shipping_on_subscription(s)`). `freeShippingOnAll` is already a zero-threshold tier instead.
2284
- */
2285
- freeShippingOnSubscription: import_v420.z.boolean().default(false),
2286
- sectionType: import_v420.z.literal(SectionType.progressBar).default(SectionType.progressBar),
2287
- /**
2288
- * The bar's milestones, in any order — the renderer sorts by resolved threshold. Drives the fill
2289
- * (even slot per tier) and, for smart-cart product tiers, the gift add/remove. The visual tier
2290
- * display lives in `sections` (composable), NOT here.
2291
- */
2292
- tiers: import_v420.z.union([import_v420.z.array(CABProgressTier), import_v420.z.strictObject({}).transform(() => [])]).default(() => [])
2293
- })
2294
- );
2295
1942
 
2296
1943
  // src/schema/widgets/checkout-and-beyond/quantity.ts
2297
- var import_uuid8 = require("uuid");
2298
- var import_v421 = require("zod/v4");
2299
- var CABQuantitySection = import_v421.z.object({
2300
- errorMessages: import_v421.z.record(
2301
- import_v421.z.string(),
2302
- import_v421.z.object({
2303
- max: import_v421.z.string().optional(),
2304
- min: import_v421.z.string().optional(),
2305
- neg: import_v421.z.string().optional()
1944
+ var import_uuid9 = require("uuid");
1945
+ var import_v420 = require("zod/v4");
1946
+ var CABQuantitySection = import_v420.z.object({
1947
+ errorMessages: import_v420.z.record(
1948
+ import_v420.z.string(),
1949
+ import_v420.z.object({
1950
+ max: import_v420.z.string().optional(),
1951
+ min: import_v420.z.string().optional(),
1952
+ neg: import_v420.z.string().optional()
2306
1953
  })
2307
1954
  ).default({
2308
1955
  en: {
@@ -2311,53 +1958,53 @@ var CABQuantitySection = import_v421.z.object({
2311
1958
  neg: "Quantity cannot be negative"
2312
1959
  }
2313
1960
  }),
2314
- inputType: import_v421.z.enum(quantityInputs).default(QuantityInput.select),
2315
- max: import_v421.z.number().min(1).max(100).default(10),
2316
- min: import_v421.z.number().min(1).default(1),
2317
- name: import_v421.z.string().optional(),
1961
+ inputType: import_v420.z.enum(quantityInputs).default(QuantityInput.select),
1962
+ max: import_v420.z.number().min(1).max(100).default(10),
1963
+ min: import_v420.z.number().min(1).default(1),
1964
+ name: import_v420.z.string().optional(),
2318
1965
  rule: CABRule.optional(),
2319
- sectionId: import_v421.z.uuid().default(() => (0, import_uuid8.v7)()),
2320
- sectionType: import_v421.z.literal(SectionType.quantity).default(SectionType.quantity)
1966
+ sectionId: import_v420.z.uuid().default(() => (0, import_uuid9.v7)()),
1967
+ sectionType: import_v420.z.literal(SectionType.quantity).default(SectionType.quantity)
2321
1968
  });
2322
1969
 
2323
1970
  // src/schema/widgets/checkout-and-beyond/reviews.ts
2324
- var import_uuid9 = require("uuid");
2325
- var import_v422 = require("zod/v4");
2326
- var CABReviewsSection = import_v422.z.object({
2327
- color: import_v422.z.string().default("#fadb14"),
2328
- name: import_v422.z.string().optional(),
1971
+ var import_uuid10 = require("uuid");
1972
+ var import_v421 = require("zod/v4");
1973
+ var CABReviewsSection = import_v421.z.object({
1974
+ color: import_v421.z.string().default("#fadb14"),
1975
+ name: import_v421.z.string().optional(),
2329
1976
  rule: CABRule.optional(),
2330
- sectionId: import_v422.z.uuid().default(() => (0, import_uuid9.v7)()),
2331
- sectionType: import_v422.z.literal(SectionType.reviews).default(SectionType.reviews),
2332
- size: import_v422.z.enum(reviewsSizes).default(ReviewsSize.default)
1977
+ sectionId: import_v421.z.uuid().default(() => (0, import_uuid10.v7)()),
1978
+ sectionType: import_v421.z.literal(SectionType.reviews).default(SectionType.reviews),
1979
+ size: import_v421.z.enum(reviewsSizes).default(ReviewsSize.default)
2333
1980
  });
2334
1981
 
2335
1982
  // src/schema/widgets/checkout-and-beyond/variants.ts
2336
1983
  var import_compat3 = require("es-toolkit/compat");
2337
- var import_uuid10 = require("uuid");
2338
- var import_v423 = require("zod/v4");
2339
- var CABVariantsSection = import_v423.z.object({
2340
- hideOutOfStockVariants: import_v423.z.boolean().default(false),
2341
- name: import_v423.z.string().optional(),
1984
+ var import_uuid11 = require("uuid");
1985
+ var import_v422 = require("zod/v4");
1986
+ var CABVariantsSection = import_v422.z.object({
1987
+ hideOutOfStockVariants: import_v422.z.boolean().default(false),
1988
+ name: import_v422.z.string().optional(),
2342
1989
  rule: CABRule.optional(),
2343
- sectionId: import_v423.z.uuid().default(() => (0, import_uuid10.v7)()),
2344
- sectionType: import_v423.z.literal(SectionType.variants).default(SectionType.variants),
2345
- selector: import_v423.z.enum((0, import_compat3.slice)(variantSelectors, 0, 3)).default(VariantSelector.menu),
2346
- variantMode: import_v423.z.enum(variantModes).default(VariantMode.multiple)
1990
+ sectionId: import_v422.z.uuid().default(() => (0, import_uuid11.v7)()),
1991
+ sectionType: import_v422.z.literal(SectionType.variants).default(SectionType.variants),
1992
+ selector: import_v422.z.enum((0, import_compat3.slice)(variantSelectors, 0, 3)).default(VariantSelector.menu),
1993
+ variantMode: import_v422.z.enum(variantModes).default(VariantMode.multiple)
2347
1994
  });
2348
1995
 
2349
1996
  // src/schema/widgets/checkout-and-beyond/shared.ts
2350
- var CABBorder = import_v424.z.object({
2351
- radius: import_v424.z.enum(borderRadii).default(BorderRadius.base),
2352
- style: import_v424.z.enum(borderStyles).default(BorderStyle.none),
2353
- width: import_v424.z.enum(borderWidths).default(BorderWidth.base)
1997
+ var CABBorder = import_v423.z.object({
1998
+ radius: import_v423.z.enum(borderRadii).default(BorderRadius.base),
1999
+ style: import_v423.z.enum(borderStyles).default(BorderStyle.none),
2000
+ width: import_v423.z.enum(borderWidths).default(BorderWidth.base)
2354
2001
  }).default({
2355
2002
  radius: BorderRadius.base,
2356
2003
  style: BorderStyle.none,
2357
2004
  width: BorderWidth.base
2358
2005
  });
2359
- var CABSection = import_v424.z.lazy(
2360
- () => import_v424.z.discriminatedUnion("sectionType", [
2006
+ var CABSection = import_v423.z.lazy(
2007
+ () => import_v423.z.discriminatedUnion("sectionType", [
2361
2008
  CABBannerSection,
2362
2009
  CABButtonSection,
2363
2010
  CABCarouselSection,
@@ -2378,135 +2025,128 @@ var CABSection = import_v424.z.lazy(
2378
2025
  );
2379
2026
 
2380
2027
  // src/schema/widgets/checkout-and-beyond/layout.ts
2381
- var GridItem = import_v425.z.union([import_v425.z.literal("auto"), import_v425.z.literal("fill"), import_v425.z.string().regex(/^\d+%$/), import_v425.z.number()]);
2382
- var CABLayoutSection = import_v425.z.object({
2383
- alignment: import_v425.z.object({
2384
- horizontal: import_v425.z.enum(horizontalAlignments).default(HorizontalAlignment.start),
2385
- vertical: import_v425.z.enum(verticalAlignments).default(VerticalAlignment.top)
2028
+ 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()]);
2029
+ var CABLayoutSection = import_v424.z.object({
2030
+ alignment: import_v424.z.object({
2031
+ horizontal: import_v424.z.enum(horizontalAlignments).default(HorizontalAlignment.start),
2032
+ vertical: import_v424.z.enum(verticalAlignments).default(VerticalAlignment.top)
2386
2033
  }).default({
2387
2034
  horizontal: HorizontalAlignment.start,
2388
2035
  vertical: VerticalAlignment.top
2389
2036
  }),
2390
- border: import_v425.z.lazy(() => CABBorder),
2391
- buttonField: import_v425.z.enum(buttonFields).optional(),
2392
- direction: import_v425.z.enum(directions).default(Direction.rows),
2393
- grid: import_v425.z.object({
2394
- columns: import_v425.z.union([import_v425.z.array(GridItem), import_v425.z.undefined()]).default(() => ["auto"]),
2395
- rows: import_v425.z.union([import_v425.z.array(GridItem), import_v425.z.undefined()]).default(() => ["auto"])
2037
+ border: import_v424.z.lazy(() => CABBorder),
2038
+ buttonField: import_v424.z.enum(buttonFields).optional(),
2039
+ direction: import_v424.z.enum(directions).default(Direction.rows),
2040
+ grid: import_v424.z.object({
2041
+ columns: import_v424.z.union([import_v424.z.array(GridItem), import_v424.z.undefined()]).default(() => ["auto"]),
2042
+ rows: import_v424.z.union([import_v424.z.array(GridItem), import_v424.z.undefined()]).default(() => ["auto"])
2396
2043
  }).default({ columns: ["auto"], rows: ["auto"] }).optional(),
2397
- name: import_v425.z.string().optional(),
2398
- padding: import_v425.z.enum(spacings).default(Spacing.none),
2044
+ name: import_v424.z.string().optional(),
2045
+ padding: import_v424.z.enum(spacings).default(Spacing.none),
2399
2046
  rule: CABRule.optional(),
2400
- sectionId: import_v425.z.uuid().default(() => (0, import_uuid11.v7)()),
2401
- sections: import_v425.z.union([import_v425.z.array(import_v425.z.lazy(() => CABSection)), import_v425.z.strictObject({}).transform(() => [])]).default(() => []),
2402
- sectionType: import_v425.z.literal(SectionType.layout).default(SectionType.layout),
2403
- spacing: import_v425.z.enum(spacings).default(Spacing.base),
2047
+ sectionId: import_v424.z.uuid().default(() => (0, import_uuid12.v7)()),
2048
+ sections: import_v424.z.union([import_v424.z.array(import_v424.z.lazy(() => CABSection)), import_v424.z.strictObject({}).transform(() => [])]).default(() => []),
2049
+ sectionType: import_v424.z.literal(SectionType.layout).default(SectionType.layout),
2050
+ spacing: import_v424.z.enum(spacings).default(Spacing.base),
2404
2051
  /** Fire-and-forget impression pixel POSTed once when the section is shown (e.g. a Monetize offer view). */
2405
- viewUrl: import_v425.z.string().optional(),
2406
- width: import_v425.z.number().default(100)
2052
+ viewUrl: import_v424.z.string().optional(),
2053
+ width: import_v424.z.number().default(100)
2407
2054
  });
2408
2055
 
2409
2056
  // src/schema/widgets/checkout-and-beyond/root.ts
2410
- var TargetArea = import_v426.z.object({
2411
- fill: import_v426.z.boolean().optional(),
2412
- flip: import_v426.z.enum(["both", "horizontal", "vertical"]).optional(),
2413
- icon: import_v426.z.string(),
2414
- label: import_v426.z.string(),
2415
- width: import_v426.z.string()
2057
+ var TargetArea = import_v425.z.object({
2058
+ fill: import_v425.z.boolean().optional(),
2059
+ flip: import_v425.z.enum(["both", "horizontal", "vertical"]).optional(),
2060
+ icon: import_v425.z.string(),
2061
+ label: import_v425.z.string(),
2062
+ width: import_v425.z.string()
2416
2063
  }).default(targetAreas[EditorMode.checkoutExtension][1]);
2417
- var CABTracking = import_v426.z.object({
2418
- enableAttribution: import_v426.z.boolean().default(true),
2419
- enableSource: import_v426.z.boolean().default(true),
2420
- enableWidget: import_v426.z.boolean().default(true)
2064
+ var CABTracking = import_v425.z.object({
2065
+ enableAttribution: import_v425.z.boolean().default(true),
2066
+ enableSource: import_v425.z.boolean().default(true),
2067
+ enableWidget: import_v425.z.boolean().default(true)
2421
2068
  }).default({ enableAttribution: true, enableSource: true, enableWidget: true });
2422
- var CABExperiment = import_v426.z.object({
2423
- elementId: import_v426.z.number(),
2424
- experimentId: import_v426.z.number(),
2425
- experimentType: import_v426.z.string(),
2426
- selectedId: import_v426.z.number()
2427
- });
2428
2069
  var CABRootSection = CABLayoutSection.extend({
2429
- editorMode: import_v426.z.enum(editorModes).default(EditorMode.checkoutExtension),
2430
- experiment: CABExperiment.optional(),
2431
- previewMode: import_v426.z.boolean().default(false),
2432
- storeId: import_v426.z.number().nullable().default(null),
2070
+ editorMode: import_v425.z.enum(editorModes).default(EditorMode.checkoutExtension),
2071
+ previewMode: import_v425.z.boolean().default(false),
2072
+ storeId: import_v425.z.number().nullable().default(null),
2433
2073
  targetArea: TargetArea.nullable(),
2434
2074
  tracking: CABTracking,
2435
- type: import_v426.z.enum(widgetTypes).default(WidgetType.ui_extension_content_block),
2436
- version: import_v426.z.literal(2).default(2),
2437
- widgetId: import_v426.z.number().nullable().default(null)
2075
+ type: import_v425.z.enum(widgetTypes).default(WidgetType.ui_extension_content_block),
2076
+ version: import_v425.z.literal(2).default(2),
2077
+ widgetId: import_v425.z.number().nullable().default(null)
2438
2078
  });
2439
2079
 
2440
2080
  // src/schema/widgets/contentBlock.ts
2441
- var ContentBlockV1 = import_v427.z.object({
2442
- blockSpacing: import_v427.z.enum(spacings).optional(),
2443
- imageBlocks: import_v427.z.union([
2444
- import_v427.z.array(
2445
- import_v427.z.object({
2446
- altText: import_v427.z.string().nullable(),
2447
- description: import_v427.z.string().nullable(),
2448
- id: import_v427.z.uuid(),
2449
- imagePlacement: import_v427.z.enum(["top", "right", "bottom", "left"]),
2450
- imageSize: import_v427.z.number(),
2451
- imageUrl: import_v427.z.url(),
2452
- textAlignment: import_v427.z.enum(["left", "center", "right"]),
2453
- textSize: import_v427.z.enum(textSizeNames)
2081
+ var ContentBlockV1 = import_v426.z.object({
2082
+ blockSpacing: import_v426.z.enum(spacings).optional(),
2083
+ imageBlocks: import_v426.z.union([
2084
+ import_v426.z.array(
2085
+ import_v426.z.object({
2086
+ altText: import_v426.z.string().nullable(),
2087
+ description: import_v426.z.string().nullable(),
2088
+ id: import_v426.z.uuid(),
2089
+ imagePlacement: import_v426.z.enum(["top", "right", "bottom", "left"]),
2090
+ imageSize: import_v426.z.number(),
2091
+ imageUrl: import_v426.z.url(),
2092
+ textAlignment: import_v426.z.enum(["left", "center", "right"]),
2093
+ textSize: import_v426.z.enum(textSizeNames)
2454
2094
  })
2455
2095
  ),
2456
- import_v427.z.strictObject({}).transform(() => [])
2096
+ import_v426.z.strictObject({}).transform(() => [])
2457
2097
  ]).optional(),
2458
- imageLayout: import_v427.z.enum(["row", "column"]).optional(),
2459
- language: import_v427.z.object({
2460
- description: import_v427.z.string(),
2461
- superTitle: import_v427.z.string(),
2462
- title: import_v427.z.string()
2098
+ imageLayout: import_v426.z.enum(["row", "column"]).optional(),
2099
+ language: import_v426.z.object({
2100
+ description: import_v426.z.string(),
2101
+ superTitle: import_v426.z.string(),
2102
+ title: import_v426.z.string()
2463
2103
  }),
2464
- previewMode: import_v427.z.boolean(),
2465
- type: import_v427.z.literal(WidgetType.ui_extension_content_block).default(WidgetType.ui_extension_content_block),
2466
- version: import_v427.z.literal(1)
2104
+ previewMode: import_v426.z.boolean(),
2105
+ type: import_v426.z.literal(WidgetType.ui_extension_content_block).default(WidgetType.ui_extension_content_block),
2106
+ version: import_v426.z.literal(1)
2467
2107
  });
2468
- var ContentBlock = import_v427.z.discriminatedUnion("version", [
2108
+ var ContentBlock = import_v426.z.discriminatedUnion("version", [
2469
2109
  ContentBlockV1,
2470
2110
  CABRootSection.extend({
2471
- type: import_v427.z.literal(WidgetType.ui_extension_content_block).default(WidgetType.ui_extension_content_block)
2111
+ type: import_v426.z.literal(WidgetType.ui_extension_content_block).default(WidgetType.ui_extension_content_block)
2472
2112
  })
2473
2113
  ]);
2474
2114
 
2475
2115
  // src/schema/widgets/giftWithPurchase.ts
2476
- var import_v428 = require("zod/v4");
2477
- var GiftWithPurchase = import_v428.z.looseObject({
2478
- type: import_v428.z.literal(WidgetType.gift_with_purchase).default(WidgetType.gift_with_purchase)
2116
+ var import_v427 = require("zod/v4");
2117
+ var GiftWithPurchase = import_v427.z.looseObject({
2118
+ type: import_v427.z.literal(WidgetType.gift_with_purchase).default(WidgetType.gift_with_purchase)
2479
2119
  });
2480
2120
 
2481
2121
  // src/schema/widgets/lineItemEditor.ts
2482
- var import_v429 = require("zod/v4");
2483
- var LineItemEditor = import_v429.z.looseObject({
2484
- type: import_v429.z.literal(WidgetType.ui_extension_line_item_editor).default(WidgetType.ui_extension_line_item_editor)
2122
+ var import_v428 = require("zod/v4");
2123
+ var LineItemEditor = import_v428.z.looseObject({
2124
+ type: import_v428.z.literal(WidgetType.ui_extension_line_item_editor).default(WidgetType.ui_extension_line_item_editor)
2485
2125
  });
2486
2126
 
2487
2127
  // src/schema/widgets/progressBar.ts
2488
- var import_v430 = require("zod/v4");
2489
- var ProgressBar = import_v430.z.looseObject({
2490
- type: import_v430.z.literal(WidgetType.ui_extension_progress_bar).default(WidgetType.ui_extension_progress_bar)
2128
+ var import_v429 = require("zod/v4");
2129
+ var ProgressBar = import_v429.z.looseObject({
2130
+ type: import_v429.z.literal(WidgetType.ui_extension_progress_bar).default(WidgetType.ui_extension_progress_bar)
2491
2131
  });
2492
2132
 
2493
2133
  // src/schema/widgets/rebuyButton.ts
2494
- var import_v431 = require("zod/v4");
2495
- var RebuyButtonV1 = import_v431.z.looseObject({
2496
- type: import_v431.z.literal(WidgetType.ui_extension_button).default(WidgetType.ui_extension_button),
2497
- version: import_v431.z.literal(1)
2134
+ var import_v430 = require("zod/v4");
2135
+ var RebuyButtonV1 = import_v430.z.looseObject({
2136
+ type: import_v430.z.literal(WidgetType.ui_extension_button).default(WidgetType.ui_extension_button),
2137
+ version: import_v430.z.literal(1)
2498
2138
  });
2499
- var RebuyButton = import_v431.z.discriminatedUnion("version", [
2139
+ var RebuyButton = import_v430.z.discriminatedUnion("version", [
2500
2140
  RebuyButtonV1,
2501
2141
  CABRootSection.extend({
2502
- type: import_v431.z.literal(WidgetType.ui_extension_button).default(WidgetType.ui_extension_button)
2142
+ type: import_v430.z.literal(WidgetType.ui_extension_button).default(WidgetType.ui_extension_button)
2503
2143
  })
2504
2144
  ]);
2505
2145
 
2506
2146
  // src/schema/widgets/rebuyMonetize.ts
2507
- var import_v432 = require("zod/v4");
2508
- var RebuyMonetize = import_v432.z.looseObject({
2509
- type: import_v432.z.literal(WidgetType.ui_extension_ad).default(WidgetType.ui_extension_ad)
2147
+ var import_v431 = require("zod/v4");
2148
+ var RebuyMonetize = import_v431.z.looseObject({
2149
+ type: import_v431.z.literal(WidgetType.ui_extension_ad).default(WidgetType.ui_extension_ad)
2510
2150
  });
2511
2151
 
2512
2152
  // src/schema/widgetData.ts
@@ -2520,7 +2160,7 @@ var extensionWidgetTypes = [
2520
2160
  WidgetType.ui_extension_line_item_editor,
2521
2161
  WidgetType.ui_extension_progress_bar
2522
2162
  ];
2523
- var WidgetData = import_v433.z.discriminatedUnion("type", [
2163
+ var WidgetData = import_v432.z.discriminatedUnion("type", [
2524
2164
  ABTestingPlaceholder,
2525
2165
  CheckoutExtension,
2526
2166
  ContentBlock,
@@ -2533,15 +2173,15 @@ var WidgetData = import_v433.z.discriminatedUnion("type", [
2533
2173
 
2534
2174
  // src/schema/widgets/post-purchase-offer/common.ts
2535
2175
  var import_compat4 = require("es-toolkit/compat");
2536
- var import_v434 = require("zod/v4");
2537
- var strictNumber = import_v434.z.union([
2538
- import_v434.z.number(),
2539
- import_v434.z.string().transform((value) => (0, import_compat4.toNumber)((0, import_compat4.replace)((0, import_compat4.toString)(value), /[^0-9.]/g, "")) || 0),
2540
- import_v434.z.unknown().transform(() => 0)
2176
+ var import_v433 = require("zod/v4");
2177
+ var strictNumber = import_v433.z.union([
2178
+ import_v433.z.number(),
2179
+ import_v433.z.string().transform((value) => (0, import_compat4.toNumber)((0, import_compat4.replace)((0, import_compat4.toString)(value), /[^0-9.]/g, "")) || 0),
2180
+ import_v433.z.unknown().transform(() => 0)
2541
2181
  ]);
2542
2182
 
2543
2183
  // src/schema/widgets/post-purchase-offer/constants.ts
2544
- var import_v435 = require("zod/v4");
2184
+ var import_v434 = require("zod/v4");
2545
2185
  var blockTypes = [
2546
2186
  "callout_banner",
2547
2187
  "image",
@@ -2552,144 +2192,144 @@ var blockTypes = [
2552
2192
  "text",
2553
2193
  "timer"
2554
2194
  ];
2555
- var blockType = import_v435.z.enum(blockTypes);
2195
+ var blockType = import_v434.z.enum(blockTypes);
2556
2196
  var BlockType = blockType.enum;
2557
2197
 
2558
2198
  // src/schema/widgets/post-purchase-offer/postPurchaseBlocks.ts
2559
2199
  var import_compat5 = require("es-toolkit/compat");
2560
- var import_uuid12 = require("uuid");
2561
- var import_v436 = require("zod/v4");
2562
- var TextAlignment2 = import_v436.z.union([import_v436.z.enum(["leading", "center", "trailing"]), import_v436.z.unknown().transform(() => "leading")]);
2563
- var TextSize = import_v436.z.union([
2564
- import_v436.z.enum(["xsmall", "small", "base", "default", "medium", "large", "xlarge"]),
2565
- import_v436.z.unknown().transform(() => "medium")
2200
+ var import_uuid13 = require("uuid");
2201
+ var import_v435 = require("zod/v4");
2202
+ var TextAlignment2 = import_v435.z.union([import_v435.z.enum(["leading", "center", "trailing"]), import_v435.z.unknown().transform(() => "leading")]);
2203
+ var TextSize = import_v435.z.union([
2204
+ import_v435.z.enum(["xsmall", "small", "base", "default", "medium", "large", "xlarge"]),
2205
+ import_v435.z.unknown().transform(() => "medium")
2566
2206
  ]);
2567
- var CalloutBannerBlock = import_v436.z.object({
2568
- id: import_v436.z.string().optional().default(() => (0, import_uuid12.v4)()),
2569
- name: import_v436.z.string().optional(),
2570
- settings: import_v436.z.object({
2571
- superTitle: import_v436.z.union([import_v436.z.string(), TiptapDocument]).default(() => "Limited-time Offer"),
2572
- title: import_v436.z.union([import_v436.z.string(), TiptapDocument]).default(() => "Add this customer favorite to your order")
2207
+ var CalloutBannerBlock = import_v435.z.object({
2208
+ id: import_v435.z.string().optional().default(() => (0, import_uuid13.v4)()),
2209
+ name: import_v435.z.string().optional(),
2210
+ settings: import_v435.z.object({
2211
+ superTitle: import_v435.z.union([import_v435.z.string(), TiptapDocument]).default(() => "Limited-time Offer"),
2212
+ title: import_v435.z.union([import_v435.z.string(), TiptapDocument]).default(() => "Add this customer favorite to your order")
2573
2213
  }),
2574
- styles: import_v436.z.object({
2575
- superTitleEmphasized: import_v436.z.boolean().default(false),
2214
+ styles: import_v435.z.object({
2215
+ superTitleEmphasized: import_v435.z.boolean().default(false),
2576
2216
  superTitleSize: TextSize.default("large"),
2577
2217
  textAlignment: TextAlignment2.default("center"),
2578
- titleEmphasized: import_v436.z.boolean().default(true),
2218
+ titleEmphasized: import_v435.z.boolean().default(true),
2579
2219
  titleSize: TextSize.default("large")
2580
2220
  }),
2581
- type: import_v436.z.literal(BlockType.callout_banner).default(BlockType.callout_banner)
2221
+ type: import_v435.z.literal(BlockType.callout_banner).default(BlockType.callout_banner)
2582
2222
  });
2583
- var ImageBlock = import_v436.z.object({
2584
- id: import_v436.z.string().optional().default(() => (0, import_uuid12.v4)()),
2585
- name: import_v436.z.string().optional(),
2586
- settings: import_v436.z.union([
2587
- import_v436.z.object({
2223
+ var ImageBlock = import_v435.z.object({
2224
+ id: import_v435.z.string().optional().default(() => (0, import_uuid13.v4)()),
2225
+ name: import_v435.z.string().optional(),
2226
+ settings: import_v435.z.union([
2227
+ import_v435.z.object({
2588
2228
  /** This isn't used in the post-purchase offer widget */
2589
- alt: import_v436.z.string().optional().default(""),
2590
- image: import_v436.z.union([import_v436.z.literal(""), import_v436.z.url()]).default(""),
2591
- imageSize: import_v436.z.number().default(20),
2592
- imageType: import_v436.z.enum(["URL", "UPLOAD"]).default("URL")
2229
+ alt: import_v435.z.string().optional().default(""),
2230
+ image: import_v435.z.union([import_v435.z.literal(""), import_v435.z.url()]).default(""),
2231
+ imageSize: import_v435.z.number().default(20),
2232
+ imageType: import_v435.z.enum(["URL", "UPLOAD"]).default("URL")
2593
2233
  }),
2594
- import_v436.z.array(import_v436.z.never()).transform(() => ({}))
2234
+ import_v435.z.array(import_v435.z.never()).transform(() => ({}))
2595
2235
  ]),
2596
- type: import_v436.z.literal(BlockType.image).default(BlockType.image)
2597
- });
2598
- var ImageContentBlock = import_v436.z.object({
2599
- id: import_v436.z.string().optional().default(() => (0, import_uuid12.v4)()),
2600
- name: import_v436.z.string().optional(),
2601
- settings: import_v436.z.object({
2602
- alt: import_v436.z.string().optional().default(""),
2603
- description: import_v436.z.union([import_v436.z.string(), TiptapDocument, import_v436.z.null()]).default(
2236
+ type: import_v435.z.literal(BlockType.image).default(BlockType.image)
2237
+ });
2238
+ var ImageContentBlock = import_v435.z.object({
2239
+ id: import_v435.z.string().optional().default(() => (0, import_uuid13.v4)()),
2240
+ name: import_v435.z.string().optional(),
2241
+ settings: import_v435.z.object({
2242
+ alt: import_v435.z.string().optional().default(""),
2243
+ description: import_v435.z.union([import_v435.z.string(), TiptapDocument, import_v435.z.null()]).default(
2604
2244
  "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."
2605
2245
  ),
2606
2246
  descriptionSize: TextSize.default("medium"),
2607
2247
  horizontalAlignment: TextAlignment2.default("leading"),
2608
- image: import_v436.z.union([import_v436.z.literal(""), import_v436.z.url()]).default(""),
2609
- imagePlacement: import_v436.z.enum(["bottom", "left", "right", "top"]).optional().default("left"),
2610
- imageSize: import_v436.z.number().default(20),
2611
- superTitle: import_v436.z.union([import_v436.z.string(), TiptapDocument]).default("Lorem Ipsum!"),
2248
+ image: import_v435.z.union([import_v435.z.literal(""), import_v435.z.url()]).default(""),
2249
+ imagePlacement: import_v435.z.enum(["bottom", "left", "right", "top"]).optional().default("left"),
2250
+ imageSize: import_v435.z.number().default(20),
2251
+ superTitle: import_v435.z.union([import_v435.z.string(), TiptapDocument]).default("Lorem Ipsum!"),
2612
2252
  superTitleSize: TextSize.default("medium"),
2613
2253
  /** This isn't configurable in the admin-nextjs editor */
2614
- swapContent: import_v436.z.boolean().optional().default(false),
2615
- title: import_v436.z.union([import_v436.z.string(), TiptapDocument]).nullable().default("Lorem ipsum dolor sit amet"),
2254
+ swapContent: import_v435.z.boolean().optional().default(false),
2255
+ title: import_v435.z.union([import_v435.z.string(), TiptapDocument]).nullable().default("Lorem ipsum dolor sit amet"),
2616
2256
  titleSize: TextSize.default("medium")
2617
2257
  }),
2618
- type: import_v436.z.literal(BlockType.image_content).default(BlockType.image_content)
2619
- });
2620
- var PayButtonBlock = import_v436.z.object({
2621
- id: import_v436.z.string().optional().default(() => (0, import_uuid12.v4)()),
2622
- name: import_v436.z.string().optional(),
2623
- settings: import_v436.z.union([
2624
- import_v436.z.object({
2625
- label: import_v436.z.string().default("Pay Now")
2258
+ type: import_v435.z.literal(BlockType.image_content).default(BlockType.image_content)
2259
+ });
2260
+ var PayButtonBlock = import_v435.z.object({
2261
+ id: import_v435.z.string().optional().default(() => (0, import_uuid13.v4)()),
2262
+ name: import_v435.z.string().optional(),
2263
+ settings: import_v435.z.union([
2264
+ import_v435.z.object({
2265
+ label: import_v435.z.string().default("Pay Now")
2626
2266
  }),
2627
- import_v436.z.array(import_v436.z.never()).transform(() => ({
2267
+ import_v435.z.array(import_v435.z.never()).transform(() => ({
2628
2268
  label: "Pay Now"
2629
2269
  }))
2630
2270
  ]),
2631
- styles: import_v436.z.union([
2632
- import_v436.z.object({
2633
- buttonWidth: import_v436.z.number().min(10).max(100).default(50)
2271
+ styles: import_v435.z.union([
2272
+ import_v435.z.object({
2273
+ buttonWidth: import_v435.z.number().min(10).max(100).default(50)
2634
2274
  }),
2635
- import_v436.z.array(import_v436.z.never()).transform(() => ({
2275
+ import_v435.z.array(import_v435.z.never()).transform(() => ({
2636
2276
  buttonWidth: 50
2637
2277
  }))
2638
2278
  ]),
2639
- type: import_v436.z.literal(BlockType.pay_button).default(BlockType.pay_button)
2279
+ type: import_v435.z.literal(BlockType.pay_button).default(BlockType.pay_button)
2640
2280
  });
2641
- var ProductInformationBlock = import_v436.z.object({
2281
+ var ProductInformationBlock = import_v435.z.object({
2642
2282
  /** This isn't configurable in the admin-nextjs editor */
2643
- hideProductImage: import_v436.z.boolean().optional().default(false),
2644
- id: import_v436.z.string().optional().default(() => (0, import_uuid12.v4)()),
2645
- name: import_v436.z.string().optional(),
2646
- type: import_v436.z.literal(BlockType.product_information).default(BlockType.product_information)
2647
- });
2648
- var SeparatorBlock = import_v436.z.object({
2649
- id: import_v436.z.string().optional().default(() => (0, import_uuid12.v4)()),
2650
- name: import_v436.z.string().optional(),
2651
- type: import_v436.z.literal(BlockType.separator).default(BlockType.separator)
2652
- });
2653
- var TextBlock = import_v436.z.object({
2654
- id: import_v436.z.string().optional().default(() => (0, import_uuid12.v4)()),
2655
- name: import_v436.z.string().optional(),
2656
- settings: import_v436.z.object({
2657
- description: import_v436.z.union([import_v436.z.string(), TiptapDocument]).optional().default(
2283
+ hideProductImage: import_v435.z.boolean().optional().default(false),
2284
+ id: import_v435.z.string().optional().default(() => (0, import_uuid13.v4)()),
2285
+ name: import_v435.z.string().optional(),
2286
+ type: import_v435.z.literal(BlockType.product_information).default(BlockType.product_information)
2287
+ });
2288
+ var SeparatorBlock = import_v435.z.object({
2289
+ id: import_v435.z.string().optional().default(() => (0, import_uuid13.v4)()),
2290
+ name: import_v435.z.string().optional(),
2291
+ type: import_v435.z.literal(BlockType.separator).default(BlockType.separator)
2292
+ });
2293
+ var TextBlock = import_v435.z.object({
2294
+ id: import_v435.z.string().optional().default(() => (0, import_uuid13.v4)()),
2295
+ name: import_v435.z.string().optional(),
2296
+ settings: import_v435.z.object({
2297
+ description: import_v435.z.union([import_v435.z.string(), TiptapDocument]).optional().default(
2658
2298
  "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."
2659
2299
  ),
2660
2300
  /** This isn't used in the post-purchase offer widget */
2661
2301
  descriptionSize: TextSize.default("medium"),
2662
2302
  horizontalAlignment: TextAlignment2.default("leading"),
2663
- superTitle: import_v436.z.union([import_v436.z.string(), TiptapDocument]).default("Super Title"),
2303
+ superTitle: import_v435.z.union([import_v435.z.string(), TiptapDocument]).default("Super Title"),
2664
2304
  /** This isn't used in the post-purchase offer widget */
2665
2305
  superTitleSize: TextSize.default("medium"),
2666
- title: import_v436.z.union([import_v436.z.string(), TiptapDocument]).nullable().default("Lorem ipsum dolor sit amet."),
2306
+ title: import_v435.z.union([import_v435.z.string(), TiptapDocument]).nullable().default("Lorem ipsum dolor sit amet."),
2667
2307
  /** This isn't used in the post-purchase offer widget */
2668
2308
  titleSize: TextSize.default("medium")
2669
2309
  }),
2670
- type: import_v436.z.literal(BlockType.text).default(BlockType.text)
2671
- });
2672
- var TimerBlock = import_v436.z.object({
2673
- id: import_v436.z.string().optional().default(() => (0, import_uuid12.v4)()),
2674
- name: import_v436.z.string().optional(),
2675
- settings: import_v436.z.object({
2676
- durationMinutes: import_v436.z.number().min(0).default(10),
2677
- durationSeconds: import_v436.z.union([import_v436.z.number().min(0), import_v436.z.unknown().transform(() => 0)]).default(0),
2678
- endOffer: import_v436.z.boolean().default(true),
2679
- title: import_v436.z.union([import_v436.z.string(), TiptapDocument]).default("Hurry \u2014 your special offer ends in:")
2310
+ type: import_v435.z.literal(BlockType.text).default(BlockType.text)
2311
+ });
2312
+ var TimerBlock = import_v435.z.object({
2313
+ id: import_v435.z.string().optional().default(() => (0, import_uuid13.v4)()),
2314
+ name: import_v435.z.string().optional(),
2315
+ settings: import_v435.z.object({
2316
+ durationMinutes: import_v435.z.number().min(0).default(10),
2317
+ durationSeconds: import_v435.z.union([import_v435.z.number().min(0), import_v435.z.unknown().transform(() => 0)]).default(0),
2318
+ endOffer: import_v435.z.boolean().default(true),
2319
+ title: import_v435.z.union([import_v435.z.string(), TiptapDocument]).default("Hurry \u2014 your special offer ends in:")
2680
2320
  }),
2681
- styles: import_v436.z.object({
2321
+ styles: import_v435.z.object({
2682
2322
  textAlignment: TextAlignment2.default("center"),
2683
- timerBackgroundColor: import_v436.z.enum(["info", "warning", "success", "critical"]).default("warning"),
2684
- timerEmphasized: import_v436.z.union([import_v436.z.boolean(), import_v436.z.unknown().transform(() => true)]).default(true),
2323
+ timerBackgroundColor: import_v435.z.enum(["info", "warning", "success", "critical"]).default("warning"),
2324
+ timerEmphasized: import_v435.z.union([import_v435.z.boolean(), import_v435.z.unknown().transform(() => true)]).default(true),
2685
2325
  timerSize: TextSize.default("medium"),
2686
- timerWidth: import_v436.z.number().min(10).max(100).optional().default(100),
2687
- titleEmphasized: import_v436.z.union([import_v436.z.boolean(), import_v436.z.unknown().transform(() => true)]).default(false),
2326
+ timerWidth: import_v435.z.number().min(10).max(100).optional().default(100),
2327
+ titleEmphasized: import_v435.z.union([import_v435.z.boolean(), import_v435.z.unknown().transform(() => true)]).default(false),
2688
2328
  titleSize: TextSize.default("medium")
2689
2329
  }),
2690
- type: import_v436.z.literal(BlockType.timer).default(BlockType.timer)
2330
+ type: import_v435.z.literal(BlockType.timer).default(BlockType.timer)
2691
2331
  });
2692
- var PostPurchaseBlock = import_v436.z.discriminatedUnion("type", [
2332
+ var PostPurchaseBlock = import_v435.z.discriminatedUnion("type", [
2693
2333
  CalloutBannerBlock,
2694
2334
  ImageBlock,
2695
2335
  ImageContentBlock,
@@ -2709,68 +2349,68 @@ var isTextBlock = (block) => (0, import_compat5.isEqual)((0, import_compat5.get)
2709
2349
  var isTimerBlock = (block) => (0, import_compat5.isEqual)((0, import_compat5.get)(block, "type"), BlockType.timer);
2710
2350
 
2711
2351
  // src/schema/widgets/post-purchase-offer/postPurchaseOffer.ts
2712
- var import_v439 = require("zod/v4");
2352
+ var import_v438 = require("zod/v4");
2713
2353
 
2714
2354
  // src/schema/widgets/post-purchase-offer/postPurchaseWidget.ts
2715
- var import_v438 = require("zod/v4");
2355
+ var import_v437 = require("zod/v4");
2716
2356
 
2717
2357
  // src/schema/widgets/post-purchase-offer/postPurchaseSettings.ts
2718
- var import_v437 = require("zod/v4");
2719
- var PostPurchaseSettings = import_v437.z.object({
2720
- advance: import_v437.z.object({ removePartialOrder: import_v437.z.boolean().default(true) }).optional().default(() => ({ removePartialOrder: true })),
2721
- blocks: import_v437.z.union([import_v437.z.array(PostPurchaseBlock), import_v437.z.unknown().transform(() => [])]).default(() => [
2358
+ var import_v436 = require("zod/v4");
2359
+ var PostPurchaseSettings = import_v436.z.object({
2360
+ advance: import_v436.z.object({ removePartialOrder: import_v436.z.boolean().default(true) }).optional().default(() => ({ removePartialOrder: true })),
2361
+ blocks: import_v436.z.union([import_v436.z.array(PostPurchaseBlock), import_v436.z.unknown().transform(() => [])]).default(() => [
2722
2362
  PostPurchaseBlock.parse({ settings: {}, styles: {}, type: BlockType.timer }),
2723
2363
  PostPurchaseBlock.parse({ settings: {}, styles: {}, type: BlockType.callout_banner }),
2724
2364
  PostPurchaseBlock.parse({ type: BlockType.product_information })
2725
2365
  ]),
2726
- columnLayout: import_v437.z.boolean().optional(),
2727
- discount: import_v437.z.object({
2366
+ columnLayout: import_v436.z.boolean().optional(),
2367
+ discount: import_v436.z.object({
2728
2368
  amount: strictNumber.default(30),
2729
- shouldShowSavingText: import_v437.z.boolean().optional().default(true),
2730
- type: import_v437.z.enum(["none", "fixed_amount", "percentage"]).default("none")
2369
+ shouldShowSavingText: import_v436.z.boolean().optional().default(true),
2370
+ type: import_v436.z.enum(["none", "fixed_amount", "percentage"]).default("none")
2731
2371
  }),
2732
- discountedFrom: import_v437.z.enum(["price", "compare_at_price"]).optional().default("price"),
2733
- endpoint: import_v437.z.string().optional(),
2734
- integrations: import_v437.z.object({
2735
- judgeme: import_v437.z.boolean().default(false),
2736
- junip: import_v437.z.boolean().optional().default(false),
2737
- klaviyo: import_v437.z.boolean().default(false),
2738
- loox: import_v437.z.boolean().default(false),
2739
- okendo: import_v437.z.boolean().default(false),
2740
- opinew: import_v437.z.boolean().optional().default(false),
2741
- reviewsio: import_v437.z.boolean().optional().default(false),
2742
- stamped: import_v437.z.boolean().default(false),
2743
- yotpo: import_v437.z.boolean().default(false)
2372
+ discountedFrom: import_v436.z.enum(["price", "compare_at_price"]).optional().default("price"),
2373
+ endpoint: import_v436.z.string().optional(),
2374
+ integrations: import_v436.z.object({
2375
+ judgeme: import_v436.z.boolean().default(false),
2376
+ junip: import_v436.z.boolean().optional().default(false),
2377
+ klaviyo: import_v436.z.boolean().default(false),
2378
+ loox: import_v436.z.boolean().default(false),
2379
+ okendo: import_v436.z.boolean().default(false),
2380
+ opinew: import_v436.z.boolean().optional().default(false),
2381
+ reviewsio: import_v436.z.boolean().optional().default(false),
2382
+ stamped: import_v436.z.boolean().default(false),
2383
+ yotpo: import_v436.z.boolean().default(false)
2744
2384
  }),
2745
- key: import_v437.z.string().optional(),
2746
- language: import_v437.z.object({
2747
- description: import_v437.z.union([import_v437.z.string(), import_v437.z.unknown().transform(() => "")]).default(""),
2748
- descriptionEnabled: import_v437.z.boolean().optional().default(false),
2749
- descriptionRte: import_v437.z.object({
2750
- content: import_v437.z.array(import_v437.z.unknown()),
2751
- type: import_v437.z.string()
2385
+ key: import_v436.z.string().optional(),
2386
+ language: import_v436.z.object({
2387
+ description: import_v436.z.union([import_v436.z.string(), import_v436.z.unknown().transform(() => "")]).default(""),
2388
+ descriptionEnabled: import_v436.z.boolean().optional().default(false),
2389
+ descriptionRte: import_v436.z.object({
2390
+ content: import_v436.z.array(import_v436.z.unknown()),
2391
+ type: import_v436.z.string()
2752
2392
  }).optional(),
2753
- descriptionSpacing: import_v437.z.enum(["none", "xtight", "tight", "default", "loose", "xloose"]).optional(),
2754
- displayCtaPrice: import_v437.z.boolean().default(true),
2755
- global: import_v437.z.object({
2756
- declineAll: import_v437.z.string().optional().default("Decline All"),
2757
- declineThisOffer: import_v437.z.string().default("Decline this offer"),
2758
- free: import_v437.z.string().optional().default("Free"),
2759
- notAvailable: import_v437.z.string().optional().default("Not available"),
2760
- payNow: import_v437.z.string().default("Pay Now"),
2761
- payNowUpgradeToSubscription: import_v437.z.string().optional().default("Upgrade to Subscription"),
2762
- quantity: import_v437.z.string().default("Quantity"),
2393
+ descriptionSpacing: import_v436.z.enum(["none", "xtight", "tight", "default", "loose", "xloose"]).optional(),
2394
+ displayCtaPrice: import_v436.z.boolean().default(true),
2395
+ global: import_v436.z.object({
2396
+ declineAll: import_v436.z.string().optional().default("Decline All"),
2397
+ declineThisOffer: import_v436.z.string().default("Decline this offer"),
2398
+ free: import_v436.z.string().optional().default("Free"),
2399
+ notAvailable: import_v436.z.string().optional().default("Not available"),
2400
+ payNow: import_v436.z.string().default("Pay Now"),
2401
+ payNowUpgradeToSubscription: import_v436.z.string().optional().default("Upgrade to Subscription"),
2402
+ quantity: import_v436.z.string().default("Quantity"),
2763
2403
  /** This isn't configurable in the admin-nextjs editor */
2764
- recurringShipping: import_v437.z.string().optional().default("Recurring shipping"),
2765
- recurringSubtotal: import_v437.z.string().default("Recurring subtotal"),
2766
- reviewsPlural: import_v437.z.string().optional().default("Reviews"),
2767
- reviewsSingular: import_v437.z.string().optional().default("Review"),
2768
- save: import_v437.z.union([import_v437.z.string(), import_v437.z.unknown().transform(() => "Save")]).optional().default("Save"),
2769
- shipping: import_v437.z.string().default("Shipping"),
2770
- subscriptionOption: import_v437.z.string().optional().default("Subscribe and Save"),
2771
- subtotal: import_v437.z.string().default("Subtotal"),
2772
- taxes: import_v437.z.string().default("Taxes"),
2773
- total: import_v437.z.string().default("Total")
2404
+ recurringShipping: import_v436.z.string().optional().default("Recurring shipping"),
2405
+ recurringSubtotal: import_v436.z.string().default("Recurring subtotal"),
2406
+ reviewsPlural: import_v436.z.string().optional().default("Reviews"),
2407
+ reviewsSingular: import_v436.z.string().optional().default("Review"),
2408
+ save: import_v436.z.union([import_v436.z.string(), import_v436.z.unknown().transform(() => "Save")]).optional().default("Save"),
2409
+ shipping: import_v436.z.string().default("Shipping"),
2410
+ subscriptionOption: import_v436.z.string().optional().default("Subscribe and Save"),
2411
+ subtotal: import_v436.z.string().default("Subtotal"),
2412
+ taxes: import_v436.z.string().default("Taxes"),
2413
+ total: import_v436.z.string().default("Total")
2774
2414
  }).optional().default(() => ({
2775
2415
  declineAll: "Decline All",
2776
2416
  declineThisOffer: "Decline this offer",
@@ -2791,70 +2431,70 @@ var PostPurchaseSettings = import_v437.z.object({
2791
2431
  taxes: "Taxes",
2792
2432
  total: "Total"
2793
2433
  })),
2794
- globalTranslation: import_v437.z.string().optional().default("english")
2434
+ globalTranslation: import_v436.z.string().optional().default("english")
2795
2435
  }),
2796
- metafields: import_v437.z.boolean().default(false),
2436
+ metafields: import_v436.z.boolean().default(false),
2797
2437
  /** This isn't configurable in the admin-nextjs editor */
2798
- offer: import_v437.z.object({
2799
- count: import_v437.z.number().default(1)
2438
+ offer: import_v436.z.object({
2439
+ count: import_v436.z.number().default(1)
2800
2440
  }),
2801
- offersLayout: import_v437.z.object({
2802
- itemsPerPage: import_v437.z.number().optional(),
2803
- type: import_v437.z.enum(["list", "grid", "carousel"]).default("list")
2441
+ offersLayout: import_v436.z.object({
2442
+ itemsPerPage: import_v436.z.number().optional(),
2443
+ type: import_v436.z.enum(["list", "grid", "carousel"]).default("list")
2804
2444
  }).optional().default({
2805
2445
  type: "list"
2806
2446
  }),
2807
2447
  /** This isn't configurable in the admin-nextjs editor */
2808
- previewMode: import_v437.z.boolean().default(false),
2809
- productLimit: import_v437.z.number().optional().default(1),
2810
- productOptions: import_v437.z.object({
2448
+ previewMode: import_v436.z.boolean().default(false),
2449
+ productLimit: import_v436.z.number().optional().default(1),
2450
+ productOptions: import_v436.z.object({
2811
2451
  /** This isn't configurable in the admin-nextjs editor */
2812
- hideOutOfStockVariants: import_v437.z.boolean().optional().default(false),
2813
- matchVariant: import_v437.z.boolean().optional().default(true),
2814
- showDeclineAll: import_v437.z.enum(["above", "below", "both", "none"]).optional(),
2815
- showShipping: import_v437.z.boolean().optional().default(true),
2816
- showSubtotal: import_v437.z.boolean().optional().default(true),
2817
- showTaxes: import_v437.z.boolean().optional().default(true),
2818
- showTotal: import_v437.z.boolean().optional().default(true),
2819
- showVariantSelectors: import_v437.z.boolean().optional().default(true),
2820
- variantSelectorDisplayMode: import_v437.z.enum(["separate", "single"]).optional().default("separate")
2452
+ hideOutOfStockVariants: import_v436.z.boolean().optional().default(false),
2453
+ matchVariant: import_v436.z.boolean().optional().default(true),
2454
+ showDeclineAll: import_v436.z.enum(["above", "below", "both", "none"]).optional(),
2455
+ showShipping: import_v436.z.boolean().optional().default(true),
2456
+ showSubtotal: import_v436.z.boolean().optional().default(true),
2457
+ showTaxes: import_v436.z.boolean().optional().default(true),
2458
+ showTotal: import_v436.z.boolean().optional().default(true),
2459
+ showVariantSelectors: import_v436.z.boolean().optional().default(true),
2460
+ variantSelectorDisplayMode: import_v436.z.enum(["separate", "single"]).optional().default("separate")
2821
2461
  }),
2822
- productType: import_v437.z.union([import_v437.z.enum(["one-time", "subscription", "both"]), import_v437.z.literal("").transform(() => "one-time")]).default("one-time"),
2823
- productTypeSelector: import_v437.z.enum(["dropdown", "radio"]).optional().default("radio"),
2824
- quantityInputs: import_v437.z.object({
2825
- defaultQuantity: import_v437.z.union([import_v437.z.number(), import_v437.z.null().transform(() => 1)]).default(1),
2826
- enabled: import_v437.z.boolean().default(true),
2827
- maxValue: import_v437.z.union([import_v437.z.number(), import_v437.z.null().transform(() => 15)]).default(15),
2828
- minValue: import_v437.z.union([import_v437.z.number().min(0), import_v437.z.unknown().transform(() => 0)]).default(1)
2462
+ productType: import_v436.z.union([import_v436.z.enum(["one-time", "subscription", "both"]), import_v436.z.literal("").transform(() => "one-time")]).default("one-time"),
2463
+ productTypeSelector: import_v436.z.enum(["dropdown", "radio"]).optional().default("radio"),
2464
+ quantityInputs: import_v436.z.object({
2465
+ defaultQuantity: import_v436.z.union([import_v436.z.number(), import_v436.z.null().transform(() => 1)]).default(1),
2466
+ enabled: import_v436.z.boolean().default(true),
2467
+ maxValue: import_v436.z.union([import_v436.z.number(), import_v436.z.null().transform(() => 15)]).default(15),
2468
+ minValue: import_v436.z.union([import_v436.z.number().min(0), import_v436.z.unknown().transform(() => 0)]).default(1)
2829
2469
  }),
2830
- shipping: import_v437.z.object({
2470
+ shipping: import_v436.z.object({
2831
2471
  amount: strictNumber.default(10),
2832
2472
  /** This isn't configurable in the admin-nextjs editor */
2833
- enabled: import_v437.z.boolean().default(true),
2834
- title: import_v437.z.string().optional().default("Shipping Fees"),
2835
- type: import_v437.z.enum(["free", "fixed_amount"]).default("free")
2473
+ enabled: import_v436.z.boolean().default(true),
2474
+ title: import_v436.z.string().optional().default("Shipping Fees"),
2475
+ type: import_v436.z.enum(["free", "fixed_amount"]).default("free")
2836
2476
  }),
2837
- styles: import_v437.z.object({
2838
- starColor: import_v437.z.string().optional().default("#fadb14"),
2839
- starSize: import_v437.z.union([import_v437.z.enum(["small", "medium", "large"]), import_v437.z.unknown().transform(() => "large")]).optional().default("large"),
2840
- starStrokeColor: import_v437.z.string().optional().default("#fadb14"),
2841
- strokeWidth: import_v437.z.string().optional().default("1")
2477
+ styles: import_v436.z.object({
2478
+ starColor: import_v436.z.string().optional().default("#fadb14"),
2479
+ starSize: import_v436.z.union([import_v436.z.enum(["small", "medium", "large"]), import_v436.z.unknown().transform(() => "large")]).optional().default("large"),
2480
+ starStrokeColor: import_v436.z.string().optional().default("#fadb14"),
2481
+ strokeWidth: import_v436.z.string().optional().default("1")
2842
2482
  }).optional(),
2843
- subImages: import_v437.z.number().nullish().default(8),
2844
- subscription: import_v437.z.object({
2845
- discount: import_v437.z.object({
2483
+ subImages: import_v436.z.number().nullish().default(8),
2484
+ subscription: import_v436.z.object({
2485
+ discount: import_v436.z.object({
2846
2486
  amount: strictNumber.default(30),
2847
- shouldShowSavingText: import_v437.z.boolean().optional().default(true),
2848
- type: import_v437.z.enum(["none", "fixed_amount", "percentage"]).default("none")
2487
+ shouldShowSavingText: import_v436.z.boolean().optional().default(true),
2488
+ type: import_v436.z.enum(["none", "fixed_amount", "percentage"]).default("none")
2849
2489
  }),
2850
- shipping: import_v437.z.object({
2490
+ shipping: import_v436.z.object({
2851
2491
  amount: strictNumber.default(1),
2852
2492
  /** This isn't configurable in the admin-nextjs editor */
2853
- enabled: import_v437.z.boolean().default(true),
2493
+ enabled: import_v436.z.boolean().default(true),
2854
2494
  /** This isn't configurable in the admin-nextjs editor */
2855
2495
  recurringAmount: strictNumber.default(2),
2856
- shippingTitle: import_v437.z.string().default("Shipping Fees"),
2857
- type: import_v437.z.enum(["free", "fixed_amount"]).default("free")
2496
+ shippingTitle: import_v436.z.string().default("Shipping Fees"),
2497
+ type: import_v436.z.enum(["free", "fixed_amount"]).default("free")
2858
2498
  })
2859
2499
  }).optional().default({
2860
2500
  discount: {
@@ -2872,15 +2512,15 @@ var PostPurchaseSettings = import_v437.z.object({
2872
2512
  type: "free"
2873
2513
  }
2874
2514
  }),
2875
- subscriptionIsDefault: import_v437.z.boolean().optional(),
2515
+ subscriptionIsDefault: import_v436.z.boolean().optional(),
2876
2516
  /** This isn't configurable in the admin-nextjs editor */
2877
- template: import_v437.z.string().optional().default(""),
2878
- type: import_v437.z.literal("shopify_post_purchase_extension").default("shopify_post_purchase_extension"),
2879
- upgradeToSubscription: import_v437.z.object({
2880
- acceptButtonText: import_v437.z.string().optional().default("Upgrade"),
2881
- allow: import_v437.z.boolean().optional().default(false),
2882
- emailRefundNotice: import_v437.z.boolean().optional().default(false),
2883
- errorBannerText: import_v437.z.string().optional().default("This subscription cannot be added - limit one per order")
2517
+ template: import_v436.z.string().optional().default(""),
2518
+ type: import_v436.z.literal("shopify_post_purchase_extension").default("shopify_post_purchase_extension"),
2519
+ upgradeToSubscription: import_v436.z.object({
2520
+ acceptButtonText: import_v436.z.string().optional().default("Upgrade"),
2521
+ allow: import_v436.z.boolean().optional().default(false),
2522
+ emailRefundNotice: import_v436.z.boolean().optional().default(false),
2523
+ errorBannerText: import_v436.z.string().optional().default("This subscription cannot be added - limit one per order")
2884
2524
  }).optional().default(() => ({
2885
2525
  acceptButtonText: "Upgrade",
2886
2526
  allow: false,
@@ -2890,32 +2530,32 @@ var PostPurchaseSettings = import_v437.z.object({
2890
2530
  });
2891
2531
 
2892
2532
  // src/schema/widgets/post-purchase-offer/postPurchaseWidget.ts
2893
- var PostPurchaseWidgetLinkedFlow = import_v438.z.object({
2894
- id: import_v438.z.number(),
2895
- name: import_v438.z.string()
2896
- });
2897
- var PostPurchaseWidget = import_v438.z.object({
2898
- classification: import_v438.z.literal("post_purchase_offer_page").default("post_purchase_offer_page"),
2899
- createdAtTime: import_v438.z.iso.datetime({ offset: true }).optional(),
2900
- customEndpointName: import_v438.z.string().nullish(),
2901
- id: import_v438.z.number().default(0),
2902
- lastViewed: import_v438.z.iso.datetime({ offset: true }).nullish(),
2903
- linkedCustomEndpointId: import_v438.z.number().nullish(),
2904
- linkedFlows: import_v438.z.array(PostPurchaseWidgetLinkedFlow).optional(),
2905
- name: import_v438.z.string().default(""),
2906
- owner: import_v438.z.number().nullish(),
2533
+ var PostPurchaseWidgetLinkedFlow = import_v437.z.object({
2534
+ id: import_v437.z.number(),
2535
+ name: import_v437.z.string()
2536
+ });
2537
+ var PostPurchaseWidget = import_v437.z.object({
2538
+ classification: import_v437.z.literal("post_purchase_offer_page").default("post_purchase_offer_page"),
2539
+ createdAtTime: import_v437.z.iso.datetime({ offset: true }).optional(),
2540
+ customEndpointName: import_v437.z.string().nullish(),
2541
+ id: import_v437.z.number().default(0),
2542
+ lastViewed: import_v437.z.iso.datetime({ offset: true }).nullish(),
2543
+ linkedCustomEndpointId: import_v437.z.number().nullish(),
2544
+ linkedFlows: import_v437.z.array(PostPurchaseWidgetLinkedFlow).optional(),
2545
+ name: import_v437.z.string().default(""),
2546
+ owner: import_v437.z.number().nullish(),
2907
2547
  settings: PostPurchaseSettings
2908
2548
  });
2909
2549
 
2910
2550
  // src/schema/widgets/post-purchase-offer/postPurchaseOffer.ts
2911
- var PostPurchaseOffer = import_v439.z.discriminatedUnion("successful", [
2912
- import_v439.z.strictObject({
2913
- errors: import_v439.z.array(import_v439.z.object({ message: import_v439.z.string() })),
2914
- message: import_v439.z.string(),
2915
- successful: import_v439.z.literal(false)
2551
+ var PostPurchaseOffer = import_v438.z.discriminatedUnion("successful", [
2552
+ import_v438.z.strictObject({
2553
+ errors: import_v438.z.array(import_v438.z.object({ message: import_v438.z.string() })),
2554
+ message: import_v438.z.string(),
2555
+ successful: import_v438.z.literal(false)
2916
2556
  }),
2917
- import_v439.z.strictObject({
2918
- successful: import_v439.z.literal(true),
2557
+ import_v438.z.strictObject({
2558
+ successful: import_v438.z.literal(true),
2919
2559
  widget: PostPurchaseWidget
2920
2560
  })
2921
2561
  ]);