@rebuy/rebuy 2.4.0 → 2.5.0-rc.2

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 (93) hide show
  1. package/dist/index.d.ts +1 -4
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +458 -337
  4. package/dist/index.js.map +4 -4
  5. package/dist/index.mjs +458 -337
  6. package/dist/index.mjs.map +4 -4
  7. package/dist/schema/index.d.ts +13 -0
  8. package/dist/schema/index.d.ts.map +1 -0
  9. package/dist/schema/shopConfig.d.ts +36 -20
  10. package/dist/schema/shopConfig.d.ts.map +1 -1
  11. package/dist/schema/userConfig.d.ts +37 -21
  12. package/dist/schema/userConfig.d.ts.map +1 -1
  13. package/dist/schema/widgetData.d.ts +248 -0
  14. package/dist/schema/widgetData.d.ts.map +1 -0
  15. package/dist/schema/widgets/abTestingPlaceholder.d.ts +7 -0
  16. package/dist/schema/widgets/abTestingPlaceholder.d.ts.map +1 -0
  17. package/dist/schema/{cab → widgets/checkoutAndBeyond}/button.d.ts +17 -17
  18. package/dist/schema/widgets/checkoutAndBeyond/button.d.ts.map +1 -0
  19. package/dist/schema/{cab → widgets/checkoutAndBeyond}/common.d.ts +8 -8
  20. package/dist/schema/widgets/checkoutAndBeyond/common.d.ts.map +1 -0
  21. package/dist/schema/widgets/checkoutAndBeyond/constants.d.ts.map +1 -0
  22. package/dist/schema/{cab/data-source.d.ts → widgets/checkoutAndBeyond/dataSource.d.ts} +1 -1
  23. package/dist/schema/widgets/checkoutAndBeyond/dataSource.d.ts.map +1 -0
  24. package/dist/schema/widgets/checkoutAndBeyond/image.d.ts.map +1 -0
  25. package/dist/schema/{cab → widgets/checkoutAndBeyond}/index.d.ts +1 -1
  26. package/dist/schema/widgets/checkoutAndBeyond/index.d.ts.map +1 -0
  27. package/dist/schema/{cab → widgets/checkoutAndBeyond}/layout.d.ts +1 -1
  28. package/dist/schema/widgets/checkoutAndBeyond/layout.d.ts.map +1 -0
  29. package/dist/schema/{cab → widgets/checkoutAndBeyond}/offers.d.ts +17 -17
  30. package/dist/schema/widgets/checkoutAndBeyond/offers.d.ts.map +1 -0
  31. package/dist/schema/{cab → widgets/checkoutAndBeyond}/product.d.ts +7 -7
  32. package/dist/schema/widgets/checkoutAndBeyond/product.d.ts.map +1 -0
  33. package/dist/schema/{cab → widgets/checkoutAndBeyond}/products.d.ts +9 -9
  34. package/dist/schema/widgets/checkoutAndBeyond/products.d.ts.map +1 -0
  35. package/dist/schema/widgets/checkoutAndBeyond/quantity.d.ts.map +1 -0
  36. package/dist/schema/widgets/checkoutAndBeyond/regex.d.ts.map +1 -0
  37. package/dist/schema/widgets/checkoutAndBeyond/reviews.d.ts.map +1 -0
  38. package/dist/schema/{cab → widgets/checkoutAndBeyond}/root.d.ts +1 -1
  39. package/dist/schema/widgets/checkoutAndBeyond/root.d.ts.map +1 -0
  40. package/dist/schema/{cab → widgets/checkoutAndBeyond}/shared.d.ts +1 -1
  41. package/dist/schema/widgets/checkoutAndBeyond/shared.d.ts.map +1 -0
  42. package/dist/schema/widgets/checkoutAndBeyond/subscription.d.ts.map +1 -0
  43. package/dist/schema/widgets/checkoutAndBeyond/table.d.ts.map +1 -0
  44. package/dist/schema/{cab → widgets/checkoutAndBeyond}/text.d.ts +22 -22
  45. package/dist/schema/widgets/checkoutAndBeyond/text.d.ts.map +1 -0
  46. package/dist/schema/{cab → widgets/checkoutAndBeyond}/utils.d.ts +1 -1
  47. package/dist/schema/widgets/checkoutAndBeyond/utils.d.ts.map +1 -0
  48. package/dist/schema/widgets/checkoutAndBeyond/variants.d.ts.map +1 -0
  49. package/dist/schema/widgets/checkoutExtension.d.ts +7 -0
  50. package/dist/schema/widgets/checkoutExtension.d.ts.map +1 -0
  51. package/dist/schema/widgets/contentBlock.d.ts +50 -0
  52. package/dist/schema/widgets/contentBlock.d.ts.map +1 -0
  53. package/dist/schema/widgets/giftWithPurchase.d.ts +7 -0
  54. package/dist/schema/widgets/giftWithPurchase.d.ts.map +1 -0
  55. package/dist/schema/widgets/lineItemEditor.d.ts +7 -0
  56. package/dist/schema/widgets/lineItemEditor.d.ts.map +1 -0
  57. package/dist/schema/widgets/progressBar.d.ts +7 -0
  58. package/dist/schema/widgets/progressBar.d.ts.map +1 -0
  59. package/dist/schema/widgets/rebuyButton.d.ts +7 -0
  60. package/dist/schema/widgets/rebuyButton.d.ts.map +1 -0
  61. package/dist/schema/widgets/rebuyMonetize.d.ts +7 -0
  62. package/dist/schema/widgets/rebuyMonetize.d.ts.map +1 -0
  63. package/package.json +1 -1
  64. package/dist/schema/cab/button.d.ts.map +0 -1
  65. package/dist/schema/cab/common.d.ts.map +0 -1
  66. package/dist/schema/cab/constants.d.ts.map +0 -1
  67. package/dist/schema/cab/data-source.d.ts.map +0 -1
  68. package/dist/schema/cab/image.d.ts.map +0 -1
  69. package/dist/schema/cab/index.d.ts.map +0 -1
  70. package/dist/schema/cab/layout.d.ts.map +0 -1
  71. package/dist/schema/cab/offers.d.ts.map +0 -1
  72. package/dist/schema/cab/product.d.ts.map +0 -1
  73. package/dist/schema/cab/products.d.ts.map +0 -1
  74. package/dist/schema/cab/quantity.d.ts.map +0 -1
  75. package/dist/schema/cab/regex.d.ts.map +0 -1
  76. package/dist/schema/cab/reviews.d.ts.map +0 -1
  77. package/dist/schema/cab/root.d.ts.map +0 -1
  78. package/dist/schema/cab/shared.d.ts.map +0 -1
  79. package/dist/schema/cab/subscription.d.ts.map +0 -1
  80. package/dist/schema/cab/table.d.ts.map +0 -1
  81. package/dist/schema/cab/text.d.ts.map +0 -1
  82. package/dist/schema/cab/utils.d.ts.map +0 -1
  83. package/dist/schema/cab/variants.d.ts.map +0 -1
  84. package/dist/schema/widgetSettings.d.ts +0 -152
  85. package/dist/schema/widgetSettings.d.ts.map +0 -1
  86. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/constants.d.ts +0 -0
  87. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/image.d.ts +0 -0
  88. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/quantity.d.ts +0 -0
  89. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/regex.d.ts +0 -0
  90. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/reviews.d.ts +0 -0
  91. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/subscription.d.ts +0 -0
  92. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/table.d.ts +0 -0
  93. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/variants.d.ts +0 -0
package/dist/index.js CHANGED
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
+ ABTestingPlaceholder: () => ABTestingPlaceholder,
23
24
  ARRAY_INDEX_STRING: () => ARRAY_INDEX_STRING,
24
25
  Api: () => Api,
25
26
  BorderRadius: () => BorderRadius,
@@ -46,21 +47,29 @@ __export(index_exports, {
46
47
  CABTextSection: () => CABTextSection,
47
48
  CABVariantsSection: () => CABVariantsSection,
48
49
  COMBINED_ENDPOINTS: () => COMBINED_ENDPOINTS,
50
+ CheckoutExtension: () => CheckoutExtension,
51
+ ContentBlock: () => ContentBlock,
49
52
  DEFAULT_ENDPOINTS: () => DEFAULT_ENDPOINTS,
50
53
  DYNAMIC_TOKEN_REGEX: () => DYNAMIC_TOKEN_REGEX,
51
54
  Direction: () => Direction,
52
55
  EditorMode: () => EditorMode,
53
56
  Geolocation: () => Geolocation,
57
+ GiftWithPurchase: () => GiftWithPurchase,
54
58
  HEX_COLOR_REGEX: () => HEX_COLOR_REGEX,
55
59
  HTML_TAGS_REGEX: () => HTML_TAGS_REGEX,
56
60
  HorizontalAlignment: () => HorizontalAlignment,
57
61
  Identity: () => Identity,
58
62
  LanguageKey: () => LanguageKey,
63
+ LegacyV0Widget: () => LegacyV0Widget,
59
64
  LegacyV1Widget: () => LegacyV1Widget,
65
+ LineItemEditor: () => LineItemEditor,
60
66
  NO_HTML: () => NO_HTML,
61
67
  ObjectFit: () => ObjectFit,
68
+ ProgressBar: () => ProgressBar,
62
69
  QuantityInput: () => QuantityInput,
70
+ RebuyButton: () => RebuyButton,
63
71
  RebuyClient: () => RebuyClient,
72
+ RebuyMonetize: () => RebuyMonetize,
64
73
  STATIC_ENDPOINTS: () => STATIC_ENDPOINTS,
65
74
  SectionType: () => SectionType,
66
75
  Session: () => Session,
@@ -75,7 +84,7 @@ __export(index_exports, {
75
84
  UserConfig: () => UserConfig,
76
85
  VariantSelector: () => VariantSelector,
77
86
  VerticalAlignment: () => VerticalAlignment,
78
- WidgetSettings: () => WidgetSettings,
87
+ WidgetData: () => WidgetData,
79
88
  WidgetType: () => WidgetType,
80
89
  amountToCents: () => amountToCents,
81
90
  borderRadii: () => borderRadii,
@@ -94,6 +103,7 @@ __export(index_exports, {
94
103
  directions: () => directions,
95
104
  editorModes: () => editorModes,
96
105
  enabled: () => enabled,
106
+ extensionWidgetTypes: () => extensionWidgetTypes,
97
107
  find: () => find,
98
108
  firstAvailableVariant: () => firstAvailableVariant,
99
109
  get: () => get,
@@ -880,20 +890,119 @@ var RebuyClient = class {
880
890
  }
881
891
  };
882
892
 
883
- // src/schema/cab/button.ts
884
- var import_uuid12 = require("uuid");
885
- var import_v416 = require("zod/v4");
886
-
887
- // src/schema/cab/common.ts
893
+ // src/schema/shopConfig.ts
888
894
  var import_v4 = require("zod/v4");
895
+ var ShopConfig = import_v4.z.strictObject({
896
+ activeExperiments: import_v4.z.array(
897
+ import_v4.z.strictObject({
898
+ data: import_v4.z.array(
899
+ import_v4.z.strictObject({
900
+ aliasName: import_v4.z.string(),
901
+ cssInput: import_v4.z.string().nullish(),
902
+ elementId: import_v4.z.coerce.number(),
903
+ id: import_v4.z.coerce.number(),
904
+ javascriptInput: import_v4.z.string().nullish(),
905
+ traffic: import_v4.z.coerce.number()
906
+ })
907
+ ),
908
+ id: import_v4.z.coerce.number(),
909
+ name: import_v4.z.string(),
910
+ pageTarget: import_v4.z.string().nullable(),
911
+ pageTargetUrl: import_v4.z.string().nullable(),
912
+ placeholderId: import_v4.z.coerce.number().nullable(),
913
+ type: import_v4.z.string()
914
+ })
915
+ ),
916
+ activePackages: import_v4.z.array(
917
+ import_v4.z.strictObject({
918
+ cancelledAt: import_v4.z.string().nullable(),
919
+ id: import_v4.z.number(),
920
+ installedAt: import_v4.z.string().nullable(),
921
+ isActive: import_v4.z.boolean(),
922
+ isBillable: import_v4.z.boolean(),
923
+ packageId: import_v4.z.number(),
924
+ packageName: import_v4.z.string(),
925
+ shortName: import_v4.z.string(),
926
+ trialDays: import_v4.z.number(),
927
+ uninstalledAt: import_v4.z.string().nullable()
928
+ })
929
+ ),
930
+ apiKey: import_v4.z.string(),
931
+ billingVersion: import_v4.z.string(),
932
+ cacheKey: import_v4.z.coerce.number(),
933
+ carousel: import_v4.z.enum(["flickity", "splide"]),
934
+ currency: import_v4.z.string(),
935
+ currencySymbol: import_v4.z.string(),
936
+ domain: import_v4.z.string(),
937
+ enabledJquery: import_v4.z.boolean(),
938
+ enabledPresentmentCurrencies: import_v4.z.array(import_v4.z.string()),
939
+ hasSmartCollectionsEnabled: import_v4.z.boolean(),
940
+ hasSmartSearchEnabled: import_v4.z.boolean(),
941
+ id: import_v4.z.coerce.number(),
942
+ integrations: import_v4.z.record(
943
+ import_v4.z.enum([
944
+ "attentive",
945
+ "judgeme",
946
+ "junip",
947
+ "klaviyo",
948
+ "loox",
949
+ "okendo",
950
+ "opinew",
951
+ "recharge",
952
+ "reviewsio",
953
+ "stamped",
954
+ "yotpo"
955
+ ]),
956
+ import_v4.z.boolean()
957
+ ),
958
+ markets: import_v4.z.strictObject({
959
+ enabled: import_v4.z.boolean()
960
+ }),
961
+ moneyFormat: import_v4.z.string(),
962
+ myshopifyDomain: import_v4.z.string(),
963
+ primaryLocale: import_v4.z.string(),
964
+ productGroupsEnabled: import_v4.z.enum(["no", "yes"]).transform((value) => value === "yes"),
965
+ rechargeCustomDomain: import_v4.z.string().nullable(),
966
+ sellingPlansEnabled: import_v4.z.boolean(),
967
+ shopId: import_v4.z.number(),
968
+ shopifySellingPlansEnabled: import_v4.z.boolean(),
969
+ shopName: import_v4.z.string(),
970
+ storefrontAccessToken: import_v4.z.string().nullable(),
971
+ useRebuyIcons: import_v4.z.boolean()
972
+ });
973
+
974
+ // src/schema/userConfig.ts
975
+ var import_v42 = require("zod/v4");
976
+ var UserConfig = import_v42.z.strictObject({
977
+ shop: ShopConfig,
978
+ smartCart: import_v42.z.unknown(),
979
+ smartFlows: import_v42.z.array(import_v42.z.unknown())
980
+ });
981
+
982
+ // src/schema/widgetData.ts
983
+ var import_v428 = require("zod/v4");
984
+
985
+ // src/schema/widgets/abTestingPlaceholder.ts
986
+ var import_v43 = require("zod/v4");
987
+ var ABTestingPlaceholder = import_v43.z.looseObject({
988
+ type: import_v43.z.literal("placeholder"),
989
+ version: import_v43.z.undefined()
990
+ });
991
+
992
+ // src/schema/widgets/checkoutAndBeyond/constants.ts
993
+ var import_lodash_es = require("lodash-es");
994
+ var import_v45 = require("zod/v4");
995
+
996
+ // src/schema/widgets/checkoutAndBeyond/common.ts
997
+ var import_v44 = require("zod/v4");
889
998
  var borderRadii = ["none", "small", "base", "large", "fullyRounded"];
890
- var borderRadius = import_v4.z.enum(borderRadii);
999
+ var borderRadius = import_v44.z.enum(borderRadii);
891
1000
  var BorderRadius = borderRadius.enum;
892
1001
  var borderStyles = ["none", "base", "dotted", "dashed"];
893
- var borderStyle = import_v4.z.enum(borderStyles);
1002
+ var borderStyle = import_v44.z.enum(borderStyles);
894
1003
  var BorderStyle = borderStyle.enum;
895
1004
  var borderWidths = ["base", "medium", "thick"];
896
- var borderWidth = import_v4.z.enum(borderWidths);
1005
+ var borderWidth = import_v44.z.enum(borderWidths);
897
1006
  var BorderWidth = borderWidth.enum;
898
1007
  var buttonActions = [
899
1008
  "addToOrder",
@@ -906,7 +1015,7 @@ var buttonActions = [
906
1015
  "showVariants",
907
1016
  "switchToSubscription"
908
1017
  ];
909
- var buttonAction = import_v4.z.enum(buttonActions);
1018
+ var buttonAction = import_v44.z.enum(buttonActions);
910
1019
  var ButtonAction = buttonAction.enum;
911
1020
  var buttonFields = [
912
1021
  "addedToCart",
@@ -927,13 +1036,13 @@ var buttonFields = [
927
1036
  "switchToSubscriptionNoDiscount",
928
1037
  "switchToSubscriptionWithDiscount"
929
1038
  ];
930
- var buttonField = import_v4.z.enum(buttonFields);
1039
+ var buttonField = import_v44.z.enum(buttonFields);
931
1040
  var ButtonField = buttonField.enum;
932
1041
  var buttonStyles = ["primary", "secondary", "plain", "custom"];
933
- var buttonStyle = import_v4.z.enum(buttonStyles);
1042
+ var buttonStyle = import_v44.z.enum(buttonStyles);
934
1043
  var ButtonStyle = buttonStyle.enum;
935
1044
  var directions = ["columns", "rows"];
936
- var direction = import_v4.z.enum(directions);
1045
+ var direction = import_v44.z.enum(directions);
937
1046
  var Direction = direction.enum;
938
1047
  var editorModes = [
939
1048
  "checkoutExtension",
@@ -943,10 +1052,10 @@ var editorModes = [
943
1052
  "ordersIndexPage",
944
1053
  "customerProfilePage"
945
1054
  ];
946
- var editorMode = import_v4.z.enum(editorModes);
1055
+ var editorMode = import_v44.z.enum(editorModes);
947
1056
  var EditorMode = editorMode.enum;
948
1057
  var horizontalAlignments = ["start", "center", "end"];
949
- var horizontalAlignment = import_v4.z.enum(horizontalAlignments);
1058
+ var horizontalAlignment = import_v44.z.enum(horizontalAlignments);
950
1059
  var HorizontalAlignment = horizontalAlignment.enum;
951
1060
  var languageKeys = [
952
1061
  "ar",
@@ -976,13 +1085,13 @@ var languageKeys = [
976
1085
  "vi",
977
1086
  "zh"
978
1087
  ];
979
- var languageKey = import_v4.z.enum(languageKeys);
1088
+ var languageKey = import_v44.z.enum(languageKeys);
980
1089
  var LanguageKey = languageKey.enum;
981
1090
  var objectFits = ["cover", "contain"];
982
- var objectFit = import_v4.z.enum(objectFits);
1091
+ var objectFit = import_v44.z.enum(objectFits);
983
1092
  var ObjectFit = objectFit.enum;
984
1093
  var quantityInputs = ["select", "number"];
985
- var quantityInput = import_v4.z.enum(quantityInputs);
1094
+ var quantityInput = import_v44.z.enum(quantityInputs);
986
1095
  var QuantityInput = quantityInput.enum;
987
1096
  var sectionTypes = [
988
1097
  "button",
@@ -999,47 +1108,28 @@ var sectionTypes = [
999
1108
  "text",
1000
1109
  "variants"
1001
1110
  ];
1002
- var sectionType = import_v4.z.enum(sectionTypes);
1111
+ var sectionType = import_v44.z.enum(sectionTypes);
1003
1112
  var SectionType = sectionType.enum;
1004
1113
  var spacings = ["none", "extraTight", "tight", "base", "loose", "extraLoose"];
1005
- var spacing = import_v4.z.enum(spacings);
1114
+ var spacing = import_v44.z.enum(spacings);
1006
1115
  var Spacing = spacing.enum;
1007
1116
  var textAlignments = ["start", "center", "end"];
1008
- var textAlignment = import_v4.z.enum(textAlignments);
1117
+ var textAlignment = import_v44.z.enum(textAlignments);
1009
1118
  var TextAlignment = textAlignment.enum;
1010
1119
  var textColorNames = ["base", "subdued", "accent", "decorative", "success", "warning", "critical"];
1011
- var textColorName = import_v4.z.enum(textColorNames);
1120
+ var textColorName = import_v44.z.enum(textColorNames);
1012
1121
  var TextColorName = textColorName.enum;
1013
1122
  var textSizeNames = ["extraSmall", "small", "base", "medium", "large", "extraLarge"];
1014
- var textSizeName = import_v4.z.enum(textSizeNames);
1123
+ var textSizeName = import_v44.z.enum(textSizeNames);
1015
1124
  var TextSizeName = textSizeName.enum;
1016
1125
  var variantSelectors = ["menu", "button", "radio", "color", "image"];
1017
- var variantSelector = import_v4.z.enum(variantSelectors);
1126
+ var variantSelector = import_v44.z.enum(variantSelectors);
1018
1127
  var VariantSelector = variantSelector.enum;
1019
1128
  var verticalAlignments = ["top", "middle", "bottom"];
1020
- var verticalAlignment = import_v4.z.enum(verticalAlignments);
1129
+ var verticalAlignment = import_v44.z.enum(verticalAlignments);
1021
1130
  var VerticalAlignment = verticalAlignment.enum;
1022
1131
 
1023
- // src/schema/cab/image.ts
1024
- var import_uuid11 = require("uuid");
1025
- var import_v415 = require("zod/v4");
1026
-
1027
- // src/schema/cab/regex.ts
1028
- var ARRAY_INDEX_STRING = /^(0|[1-9]\d*)$/;
1029
- var DYNAMIC_TOKEN_REGEX = /^\{\{\s*[A-Za-z]+\s*\}\}$/;
1030
- var HEX_COLOR_REGEX = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;
1031
- var HTML_TAGS_REGEX = /<[^>]*>/gi;
1032
-
1033
- // src/schema/cab/shared.ts
1034
- var import_v414 = require("zod/v4");
1035
-
1036
- // src/schema/cab/data-source.ts
1037
- var import_uuid = require("uuid");
1038
- var import_v43 = require("zod/v4");
1039
-
1040
- // src/schema/cab/constants.ts
1041
- var import_lodash_es = require("lodash-es");
1042
- var import_v42 = require("zod/v4");
1132
+ // src/schema/widgets/checkoutAndBeyond/constants.ts
1043
1133
  var DEFAULT_ENDPOINTS = [
1044
1134
  { label: "Recommended (AI)", value: "/products/recommended" },
1045
1135
  { label: "Top Sellers", value: "/products/top_sellers" },
@@ -1112,58 +1202,34 @@ var widgetTypes = [
1112
1202
  "ui_extension_line_item_editor",
1113
1203
  "ui_extension_progress_bar"
1114
1204
  ];
1115
- var widgetType = import_v42.z.enum(widgetTypes);
1205
+ var widgetType = import_v45.z.enum(widgetTypes);
1116
1206
  var WidgetType = widgetType.enum;
1117
1207
 
1118
- // src/schema/cab/data-source.ts
1119
- var CABDataSourceSection = import_v43.z.object({
1120
- dataSourceId: import_v43.z.number().nullable().default(null),
1121
- dataSourcePath: import_v43.z.string().default(DEFAULT_ENDPOINTS[0].value),
1122
- limit: import_v43.z.number().default(1),
1123
- name: import_v43.z.string().default(DEFAULT_ENDPOINTS[0].label),
1124
- sectionId: import_v43.z.uuid().default(() => (0, import_uuid.v7)()),
1125
- sectionType: import_v43.z.literal(SectionType.dataSource).default(SectionType.dataSource)
1126
- });
1208
+ // src/schema/widgets/checkoutAndBeyond/root.ts
1209
+ var import_v420 = require("zod/v4");
1127
1210
 
1128
- // src/schema/cab/layout.ts
1129
- var import_uuid2 = require("uuid");
1130
- var import_v44 = require("zod/v4");
1131
- var CABLayoutSection = import_v44.z.object({
1132
- alignment: import_v44.z.object({
1133
- horizontal: import_v44.z.enum(horizontalAlignments).default(HorizontalAlignment.start),
1134
- vertical: import_v44.z.enum(verticalAlignments).default(VerticalAlignment.top)
1135
- }).default({
1136
- horizontal: HorizontalAlignment.start,
1137
- vertical: VerticalAlignment.top
1138
- }),
1139
- border: import_v44.z.lazy(() => CABBorder),
1140
- direction: import_v44.z.enum(directions).default(Direction.rows),
1141
- name: import_v44.z.string().optional(),
1142
- padding: import_v44.z.enum(spacings).default(Spacing.none),
1143
- sectionId: import_v44.z.uuid().default(() => (0, import_uuid2.v7)()),
1144
- sections: import_v44.z.array(import_v44.z.lazy(() => CABSection)).default(() => []),
1145
- sectionType: import_v44.z.literal(SectionType.layout).default(SectionType.layout),
1146
- spacing: import_v44.z.enum(spacings).default(Spacing.base),
1147
- width: import_v44.z.number().default(100)
1148
- });
1211
+ // src/schema/widgets/checkoutAndBeyond/layout.ts
1212
+ var import_uuid12 = require("uuid");
1213
+ var import_v419 = require("zod/v4");
1149
1214
 
1150
- // src/schema/cab/offers.ts
1151
- var import_v48 = require("zod/v4");
1215
+ // src/schema/widgets/checkoutAndBeyond/shared.ts
1216
+ var import_v418 = require("zod/v4");
1152
1217
 
1153
- // src/schema/cab/products.ts
1154
- var import_uuid5 = require("uuid");
1155
- var import_v47 = require("zod/v4");
1218
+ // src/schema/widgets/checkoutAndBeyond/button.ts
1219
+ var import_uuid3 = require("uuid");
1220
+ var import_v48 = require("zod/v4");
1156
1221
 
1157
- // src/schema/cab/product.ts
1158
- var import_uuid4 = require("uuid");
1222
+ // src/schema/widgets/checkoutAndBeyond/image.ts
1223
+ var import_uuid = require("uuid");
1159
1224
  var import_v46 = require("zod/v4");
1160
1225
 
1161
- // src/schema/cab/text.ts
1162
- var import_lodash_es3 = require("lodash-es");
1163
- var import_uuid3 = require("uuid");
1164
- var import_v45 = require("zod/v4");
1226
+ // src/schema/widgets/checkoutAndBeyond/regex.ts
1227
+ var ARRAY_INDEX_STRING = /^(0|[1-9]\d*)$/;
1228
+ var DYNAMIC_TOKEN_REGEX = /^\{\{\s*[A-Za-z]+\s*\}\}$/;
1229
+ var HEX_COLOR_REGEX = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;
1230
+ var HTML_TAGS_REGEX = /<[^>]*>/gi;
1165
1231
 
1166
- // src/schema/cab/utils.ts
1232
+ // src/schema/widgets/checkoutAndBeyond/utils.ts
1167
1233
  var import_lodash_es2 = require("lodash-es");
1168
1234
  var isHTML = (html = "") => {
1169
1235
  if (typeof window !== "undefined") {
@@ -1201,55 +1267,78 @@ var convertNumericObjects = (input) => {
1201
1267
  return input;
1202
1268
  };
1203
1269
 
1204
- // src/schema/cab/text.ts
1205
- var enumOrOmit = (...vals) => import_v45.z.string().transform((val) => vals.includes(val) ? val : void 0).optional();
1206
- var TiptapText = import_v45.z.object({
1207
- marks: import_v45.z.array(
1208
- import_v45.z.discriminatedUnion("type", [
1209
- import_v45.z.object({ type: import_v45.z.literal("bold") }),
1210
- import_v45.z.object({ type: import_v45.z.literal("italic") }),
1211
- import_v45.z.object({
1212
- attrs: import_v45.z.object({
1213
- class: import_v45.z.string().nullable(),
1214
- href: import_v45.z.union([import_v45.z.url(), import_v45.z.string().regex(DYNAMIC_TOKEN_REGEX)]),
1215
- rel: import_v45.z.string().default("noopener noreferrer nofollow"),
1216
- target: import_v45.z.string().default("_blank")
1217
- }),
1218
- type: import_v45.z.literal("link")
1219
- }),
1220
- import_v45.z.object({ type: import_v45.z.literal("strike") }),
1221
- import_v45.z.object({
1222
- attrs: import_v45.z.object({
1223
- color: enumOrOmit(...textColorNames).default(TextColorName.base),
1224
- fontSize: enumOrOmit(...textSizeNames).default(TextSizeName.base)
1270
+ // src/schema/widgets/checkoutAndBeyond/image.ts
1271
+ var CABImageSection = import_v46.z.object({
1272
+ altText: import_v46.z.string().refine(checkForHTML, NO_HTML).default(""),
1273
+ aspectRatio: import_v46.z.literal(1).nullable().default(null),
1274
+ border: import_v46.z.lazy(() => CABBorder),
1275
+ buttonField: import_v46.z.enum(buttonFields).optional(),
1276
+ category: import_v46.z.enum(["gallery", "icons", "payment-methods", "secure-checkout"]).nullable().default(null),
1277
+ name: import_v46.z.string().optional(),
1278
+ naturalHeight: import_v46.z.number().default(0),
1279
+ naturalWidth: import_v46.z.number().default(0),
1280
+ objectFit: import_v46.z.enum(objectFits).default(ObjectFit.cover),
1281
+ sectionId: import_v46.z.uuid().default(() => (0, import_uuid.v7)()),
1282
+ sectionType: import_v46.z.literal(SectionType.image).default(SectionType.image),
1283
+ source: import_v46.z.union([import_v46.z.url(), import_v46.z.literal(""), import_v46.z.string().regex(DYNAMIC_TOKEN_REGEX)]).default(""),
1284
+ width: import_v46.z.number().default(100)
1285
+ });
1286
+
1287
+ // src/schema/widgets/checkoutAndBeyond/text.ts
1288
+ var import_lodash_es3 = require("lodash-es");
1289
+ var import_uuid2 = require("uuid");
1290
+ var import_v47 = require("zod/v4");
1291
+ var enumOrOmit = (...vals) => import_v47.z.string().transform((val) => vals.includes(val) ? val : void 0).optional();
1292
+ var TiptapText = import_v47.z.object({
1293
+ marks: import_v47.z.union([
1294
+ import_v47.z.array(
1295
+ import_v47.z.discriminatedUnion("type", [
1296
+ import_v47.z.object({ type: import_v47.z.literal("bold") }),
1297
+ import_v47.z.object({ type: import_v47.z.literal("italic") }),
1298
+ import_v47.z.object({
1299
+ attrs: import_v47.z.object({
1300
+ class: import_v47.z.string().nullable(),
1301
+ href: import_v47.z.union([import_v47.z.url(), import_v47.z.string().regex(DYNAMIC_TOKEN_REGEX)]),
1302
+ rel: import_v47.z.string().default("noopener noreferrer nofollow"),
1303
+ target: import_v47.z.string().default("_blank")
1304
+ }),
1305
+ type: import_v47.z.literal("link")
1225
1306
  }),
1226
- type: import_v45.z.literal("textStyle")
1227
- })
1228
- ])
1229
- ).optional(),
1230
- text: import_v45.z.string().default(""),
1231
- type: import_v45.z.literal("text").default("text")
1307
+ import_v47.z.object({ type: import_v47.z.literal("strike") }),
1308
+ import_v47.z.object({
1309
+ attrs: import_v47.z.object({
1310
+ color: enumOrOmit(...textColorNames).default(TextColorName.base),
1311
+ fontSize: enumOrOmit(...textSizeNames).default(TextSizeName.base)
1312
+ }),
1313
+ type: import_v47.z.literal("textStyle")
1314
+ })
1315
+ ])
1316
+ ),
1317
+ import_v47.z.strictObject({}).transform(() => [])
1318
+ ]).optional(),
1319
+ text: import_v47.z.string().default(""),
1320
+ type: import_v47.z.literal("text").default("text")
1232
1321
  });
1233
- var TiptapParagraph = import_v45.z.object({
1234
- attrs: import_v45.z.object({
1322
+ var TiptapParagraph = import_v47.z.object({
1323
+ attrs: import_v47.z.object({
1235
1324
  textAlign: enumOrOmit(...textAlignments)
1236
1325
  }).default({ textAlign: TextAlignment.start }),
1237
- content: import_v45.z.array(TiptapText).default([]),
1238
- type: import_v45.z.literal("paragraph").default("paragraph")
1326
+ content: import_v47.z.union([import_v47.z.array(TiptapText), import_v47.z.strictObject({}).transform(() => [])]).default(() => []),
1327
+ type: import_v47.z.literal("paragraph").default("paragraph")
1239
1328
  });
1240
- var TiptapDocument = import_v45.z.object({
1241
- attrs: import_v45.z.object({
1329
+ var TiptapDocument = import_v47.z.object({
1330
+ attrs: import_v47.z.object({
1242
1331
  blockSpacing: enumOrOmit(...spacings)
1243
1332
  }).default({ blockSpacing: Spacing.base }),
1244
- content: import_v45.z.array(TiptapParagraph).default([TiptapParagraph.parse({})]),
1245
- type: import_v45.z.literal("doc").default("doc")
1333
+ content: import_v47.z.union([import_v47.z.array(TiptapParagraph), import_v47.z.strictObject({}).transform(() => [])]).default(() => [TiptapParagraph.parse({})]),
1334
+ type: import_v47.z.literal("doc").default("doc")
1246
1335
  });
1247
- var CABTextSection = import_v45.z.object({
1248
- buttonField: import_v45.z.enum(buttonFields).optional(),
1249
- content: import_v45.z.record(import_v45.z.string(), import_v45.z.union([import_v45.z.string(), TiptapDocument]).refine(checkForHTML, NO_HTML).optional()).default({ en: TiptapDocument.parse({}) }).optional(),
1250
- name: import_v45.z.string().optional(),
1251
- sectionId: import_v45.z.uuid().default(() => (0, import_uuid3.v7)()),
1252
- sectionType: import_v45.z.literal(SectionType.text).default(SectionType.text)
1336
+ var CABTextSection = import_v47.z.object({
1337
+ buttonField: import_v47.z.enum(buttonFields).optional(),
1338
+ content: import_v47.z.record(import_v47.z.string(), import_v47.z.union([import_v47.z.string(), TiptapDocument]).refine(checkForHTML, NO_HTML).optional()).default({ en: TiptapDocument.parse({}) }).optional(),
1339
+ name: import_v47.z.string().optional(),
1340
+ sectionId: import_v47.z.uuid().default(() => (0, import_uuid2.v7)()),
1341
+ sectionType: import_v47.z.literal(SectionType.text).default(SectionType.text)
1253
1342
  }).superRefine(({ buttonField: buttonField2, content }, ctx) => {
1254
1343
  if (buttonField2 === ButtonField.destinationUrl && content) {
1255
1344
  (0, import_lodash_es3.forEach)(content, (value, lang) => {
@@ -1269,57 +1358,100 @@ var CABTextSection = import_v45.z.object({
1269
1358
  }
1270
1359
  });
1271
1360
 
1272
- // src/schema/cab/product.ts
1273
- var CABProductSection = import_v46.z.object({
1274
- name: import_v46.z.string().optional(),
1275
- options: import_v46.z.array(
1276
- import_v46.z.object({
1361
+ // src/schema/widgets/checkoutAndBeyond/button.ts
1362
+ var CABButtonContent = import_v48.z.lazy(() => import_v48.z.discriminatedUnion("sectionType", [CABImageSection, CABTextSection]));
1363
+ var CABButtonSection = import_v48.z.object({
1364
+ action: import_v48.z.union([import_v48.z.literal(""), import_v48.z.enum(buttonActions)]).default(""),
1365
+ buttonStyle: import_v48.z.enum(buttonStyles).default(ButtonStyle.primary),
1366
+ custom: import_v48.z.object({
1367
+ color: import_v48.z.string().regex(HEX_COLOR_REGEX).default("#005bd3"),
1368
+ height: import_v48.z.number().default(52),
1369
+ width: import_v48.z.number().default(300)
1370
+ }).default({
1371
+ color: "#005bd3",
1372
+ height: 52,
1373
+ width: 300
1374
+ }),
1375
+ name: import_v48.z.string().optional(),
1376
+ sectionId: import_v48.z.uuid().default(() => (0, import_uuid3.v7)()),
1377
+ sections: import_v48.z.union([import_v48.z.array(CABButtonContent), import_v48.z.strictObject({}).transform(() => [])]).default(() => []),
1378
+ sectionType: import_v48.z.literal(SectionType.button).default(SectionType.button)
1379
+ });
1380
+
1381
+ // src/schema/widgets/checkoutAndBeyond/dataSource.ts
1382
+ var import_uuid4 = require("uuid");
1383
+ var import_v49 = require("zod/v4");
1384
+ var CABDataSourceSection = import_v49.z.object({
1385
+ dataSourceId: import_v49.z.number().nullable().default(null),
1386
+ dataSourcePath: import_v49.z.string().default(DEFAULT_ENDPOINTS[0].value),
1387
+ limit: import_v49.z.number().default(1),
1388
+ name: import_v49.z.string().default(DEFAULT_ENDPOINTS[0].label),
1389
+ sectionId: import_v49.z.uuid().default(() => (0, import_uuid4.v7)()),
1390
+ sectionType: import_v49.z.literal(SectionType.dataSource).default(SectionType.dataSource)
1391
+ });
1392
+
1393
+ // src/schema/widgets/checkoutAndBeyond/offers.ts
1394
+ var import_v412 = require("zod/v4");
1395
+
1396
+ // src/schema/widgets/checkoutAndBeyond/products.ts
1397
+ var import_uuid6 = require("uuid");
1398
+ var import_v411 = require("zod/v4");
1399
+
1400
+ // src/schema/widgets/checkoutAndBeyond/product.ts
1401
+ var import_uuid5 = require("uuid");
1402
+ var import_v410 = require("zod/v4");
1403
+ var CABProductSection = import_v410.z.object({
1404
+ name: import_v410.z.string().optional(),
1405
+ options: import_v410.z.array(
1406
+ import_v410.z.object({
1277
1407
  /** `name` represents `Color`, `Size`, etc. */
1278
- name: import_v46.z.string(),
1279
- optionId: import_v46.z.number(),
1280
- selector: import_v46.z.enum(variantSelectors).default(VariantSelector.menu),
1281
- values: import_v46.z.array(
1282
- import_v46.z.object({
1283
- color: import_v46.z.string().optional(),
1284
- image: import_v46.z.lazy(() => CABImageSection).optional(),
1408
+ name: import_v410.z.string(),
1409
+ optionId: import_v410.z.number(),
1410
+ selector: import_v410.z.enum(variantSelectors).default(VariantSelector.menu),
1411
+ values: import_v410.z.array(
1412
+ import_v410.z.object({
1413
+ color: import_v410.z.string().optional(),
1414
+ image: import_v410.z.lazy(() => CABImageSection).optional(),
1285
1415
  /** `name` represents `Red`, `Blue`, etc. */
1286
- name: import_v46.z.string(),
1287
- text: import_v46.z.lazy(() => CABTextSection).optional()
1416
+ name: import_v410.z.string(),
1417
+ text: import_v410.z.lazy(() => CABTextSection).optional()
1288
1418
  })
1289
1419
  )
1290
1420
  })
1291
1421
  ).default(() => []),
1292
- productId: import_v46.z.number().nullable().default(null),
1293
- sectionId: import_v46.z.uuid().default(() => (0, import_uuid4.v7)()),
1294
- sectionType: import_v46.z.literal(SectionType.product).default(SectionType.product)
1422
+ productId: import_v410.z.number().nullable().default(null),
1423
+ sectionId: import_v410.z.uuid().default(() => (0, import_uuid5.v7)()),
1424
+ sectionType: import_v410.z.literal(SectionType.product).default(SectionType.product)
1295
1425
  });
1296
1426
 
1297
- // src/schema/cab/products.ts
1298
- var CABProductsSection = import_v47.z.object({
1299
- name: import_v47.z.string().optional(),
1300
- sectionId: import_v47.z.uuid().default(() => (0, import_uuid5.v7)()),
1301
- sections: import_v47.z.array(import_v47.z.lazy(() => CABProductSection)).default(() => []),
1302
- sectionType: import_v47.z.literal(SectionType.products).default(SectionType.products)
1427
+ // src/schema/widgets/checkoutAndBeyond/products.ts
1428
+ var CABProductsSection = import_v411.z.object({
1429
+ name: import_v411.z.string().optional(),
1430
+ sectionId: import_v411.z.uuid().default(() => (0, import_uuid6.v7)()),
1431
+ sections: import_v411.z.union([import_v411.z.array(import_v411.z.lazy(() => CABProductSection)), import_v411.z.strictObject({}).transform(() => [])]).default(() => []),
1432
+ sectionType: import_v411.z.literal(SectionType.products).default(SectionType.products)
1303
1433
  });
1304
1434
 
1305
- // src/schema/cab/offers.ts
1306
- var CABOffersSection = CABLayoutSection.omit({ sections: true, sectionType: true }).extend(
1307
- import_v48.z.object({
1308
- sections: import_v48.z.array(import_v48.z.lazy(() => CABSection)).default(() => [CABDataSourceSection.parse({}), CABProductsSection.parse({})]),
1309
- sectionType: import_v48.z.literal(SectionType.offers).default(SectionType.offers)
1310
- }).shape
1435
+ // src/schema/widgets/checkoutAndBeyond/offers.ts
1436
+ var CABOffersSection = import_v412.z.lazy(
1437
+ () => CABLayoutSection.omit({ sections: true, sectionType: true }).extend(
1438
+ import_v412.z.object({
1439
+ sections: import_v412.z.union([import_v412.z.array(import_v412.z.lazy(() => CABSection)), import_v412.z.strictObject({}).transform(() => [])]).default(() => [CABDataSourceSection.parse({}), CABProductsSection.parse({})]),
1440
+ sectionType: import_v412.z.literal(SectionType.offers).default(SectionType.offers)
1441
+ }).shape
1442
+ )
1311
1443
  );
1312
1444
 
1313
- // src/schema/cab/quantity.ts
1314
- var import_uuid6 = require("uuid");
1315
- var import_v49 = require("zod/v4");
1316
- var CABQuantitySection = import_v49.z.object({
1317
- errorMessages: import_v49.z.record(
1318
- import_v49.z.string(),
1319
- import_v49.z.object({
1320
- max: import_v49.z.string().optional(),
1321
- min: import_v49.z.string().optional(),
1322
- neg: import_v49.z.string().optional()
1445
+ // src/schema/widgets/checkoutAndBeyond/quantity.ts
1446
+ var import_uuid7 = require("uuid");
1447
+ var import_v413 = require("zod/v4");
1448
+ var CABQuantitySection = import_v413.z.object({
1449
+ errorMessages: import_v413.z.record(
1450
+ import_v413.z.string(),
1451
+ import_v413.z.object({
1452
+ max: import_v413.z.string().optional(),
1453
+ min: import_v413.z.string().optional(),
1454
+ neg: import_v413.z.string().optional()
1323
1455
  })
1324
1456
  ).default({
1325
1457
  en: {
@@ -1328,64 +1460,64 @@ var CABQuantitySection = import_v49.z.object({
1328
1460
  neg: "Quantity cannot be negative"
1329
1461
  }
1330
1462
  }),
1331
- inputType: import_v49.z.enum(quantityInputs).default(QuantityInput.select),
1332
- max: import_v49.z.number().min(1).max(100).default(10),
1333
- min: import_v49.z.number().min(1).default(1),
1334
- name: import_v49.z.string().optional(),
1335
- sectionId: import_v49.z.uuid().default(() => (0, import_uuid6.v7)()),
1336
- sectionType: import_v49.z.literal(SectionType.quantity).default(SectionType.quantity)
1337
- });
1338
-
1339
- // src/schema/cab/reviews.ts
1340
- var import_uuid7 = require("uuid");
1341
- var import_v410 = require("zod/v4");
1342
- var CABReviewsSection = import_v410.z.object({
1343
- name: import_v410.z.string().optional(),
1344
- sectionId: import_v410.z.uuid().default(() => (0, import_uuid7.v7)()),
1345
- sectionType: import_v410.z.literal(SectionType.reviews).default(SectionType.reviews)
1463
+ inputType: import_v413.z.enum(quantityInputs).default(QuantityInput.select),
1464
+ max: import_v413.z.number().min(1).max(100).default(10),
1465
+ min: import_v413.z.number().min(1).default(1),
1466
+ name: import_v413.z.string().optional(),
1467
+ sectionId: import_v413.z.uuid().default(() => (0, import_uuid7.v7)()),
1468
+ sectionType: import_v413.z.literal(SectionType.quantity).default(SectionType.quantity)
1346
1469
  });
1347
1470
 
1348
- // src/schema/cab/subscription.ts
1471
+ // src/schema/widgets/checkoutAndBeyond/reviews.ts
1349
1472
  var import_uuid8 = require("uuid");
1350
- var import_v411 = require("zod/v4");
1351
- var CABSubscriptionSection = import_v411.z.object({
1352
- name: import_v411.z.string().optional(),
1353
- sectionId: import_v411.z.uuid().default(() => (0, import_uuid8.v7)()),
1354
- sectionType: import_v411.z.literal(SectionType.subscription).default(SectionType.subscription)
1473
+ var import_v414 = require("zod/v4");
1474
+ var CABReviewsSection = import_v414.z.object({
1475
+ name: import_v414.z.string().optional(),
1476
+ sectionId: import_v414.z.uuid().default(() => (0, import_uuid8.v7)()),
1477
+ sectionType: import_v414.z.literal(SectionType.reviews).default(SectionType.reviews)
1355
1478
  });
1356
1479
 
1357
- // src/schema/cab/table.ts
1480
+ // src/schema/widgets/checkoutAndBeyond/subscription.ts
1358
1481
  var import_uuid9 = require("uuid");
1359
- var import_v412 = require("zod/v4");
1360
- var CABTableSection = import_v412.z.object({
1361
- name: import_v412.z.string().optional(),
1362
- sectionId: import_v412.z.uuid().default(() => (0, import_uuid9.v7)()),
1363
- sectionType: import_v412.z.literal(SectionType.table).default(SectionType.table)
1482
+ var import_v415 = require("zod/v4");
1483
+ var CABSubscriptionSection = import_v415.z.object({
1484
+ name: import_v415.z.string().optional(),
1485
+ sectionId: import_v415.z.uuid().default(() => (0, import_uuid9.v7)()),
1486
+ sectionType: import_v415.z.literal(SectionType.subscription).default(SectionType.subscription)
1364
1487
  });
1365
1488
 
1366
- // src/schema/cab/variants.ts
1367
- var import_lodash_es4 = require("lodash-es");
1489
+ // src/schema/widgets/checkoutAndBeyond/table.ts
1368
1490
  var import_uuid10 = require("uuid");
1369
- var import_v413 = require("zod/v4");
1370
- var CABVariantsSection = import_v413.z.object({
1371
- name: import_v413.z.string().optional(),
1372
- sectionId: import_v413.z.uuid().default(() => (0, import_uuid10.v7)()),
1373
- sectionType: import_v413.z.literal(SectionType.variants).default(SectionType.variants),
1374
- selector: import_v413.z.enum((0, import_lodash_es4.slice)(variantSelectors, 0, 3)).default(VariantSelector.menu)
1491
+ var import_v416 = require("zod/v4");
1492
+ var CABTableSection = import_v416.z.object({
1493
+ name: import_v416.z.string().optional(),
1494
+ sectionId: import_v416.z.uuid().default(() => (0, import_uuid10.v7)()),
1495
+ sectionType: import_v416.z.literal(SectionType.table).default(SectionType.table)
1496
+ });
1497
+
1498
+ // src/schema/widgets/checkoutAndBeyond/variants.ts
1499
+ var import_lodash_es4 = require("lodash-es");
1500
+ var import_uuid11 = require("uuid");
1501
+ var import_v417 = require("zod/v4");
1502
+ var CABVariantsSection = import_v417.z.object({
1503
+ name: import_v417.z.string().optional(),
1504
+ sectionId: import_v417.z.uuid().default(() => (0, import_uuid11.v7)()),
1505
+ sectionType: import_v417.z.literal(SectionType.variants).default(SectionType.variants),
1506
+ selector: import_v417.z.enum((0, import_lodash_es4.slice)(variantSelectors, 0, 3)).default(VariantSelector.menu)
1375
1507
  });
1376
1508
 
1377
- // src/schema/cab/shared.ts
1378
- var CABBorder = import_v414.z.object({
1379
- radius: import_v414.z.enum(borderRadii).default(BorderRadius.base),
1380
- style: import_v414.z.enum(borderStyles).default(BorderStyle.none),
1381
- width: import_v414.z.enum(borderWidths).default(BorderWidth.base)
1509
+ // src/schema/widgets/checkoutAndBeyond/shared.ts
1510
+ var CABBorder = import_v418.z.object({
1511
+ radius: import_v418.z.enum(borderRadii).default(BorderRadius.base),
1512
+ style: import_v418.z.enum(borderStyles).default(BorderStyle.none),
1513
+ width: import_v418.z.enum(borderWidths).default(BorderWidth.base)
1382
1514
  }).default({
1383
1515
  radius: BorderRadius.base,
1384
1516
  style: BorderStyle.none,
1385
1517
  width: BorderWidth.base
1386
1518
  });
1387
- var CABSection = import_v414.z.lazy(
1388
- () => import_v414.z.discriminatedUnion("sectionType", [
1519
+ var CABSection = import_v418.z.lazy(
1520
+ () => import_v418.z.discriminatedUnion("sectionType", [
1389
1521
  CABButtonSection,
1390
1522
  CABDataSourceSection,
1391
1523
  CABImageSection,
@@ -1402,147 +1534,136 @@ var CABSection = import_v414.z.lazy(
1402
1534
  ])
1403
1535
  );
1404
1536
 
1405
- // src/schema/cab/image.ts
1406
- var CABImageSection = import_v415.z.object({
1407
- altText: import_v415.z.string().refine(checkForHTML, NO_HTML).default(""),
1408
- aspectRatio: import_v415.z.literal(1).nullable().default(null),
1409
- border: import_v415.z.lazy(() => CABBorder),
1410
- buttonField: import_v415.z.enum(buttonFields).optional(),
1411
- category: import_v415.z.enum(["gallery", "icons", "payment-methods", "secure-checkout"]).nullable().default(null),
1412
- name: import_v415.z.string().optional(),
1413
- naturalHeight: import_v415.z.number().default(0),
1414
- naturalWidth: import_v415.z.number().default(0),
1415
- objectFit: import_v415.z.enum(objectFits).default(ObjectFit.cover),
1416
- sectionId: import_v415.z.uuid().default(() => (0, import_uuid11.v7)()),
1417
- sectionType: import_v415.z.literal(SectionType.image).default(SectionType.image),
1418
- source: import_v415.z.union([import_v415.z.url(), import_v415.z.literal(""), import_v415.z.string().regex(DYNAMIC_TOKEN_REGEX)]).default(""),
1419
- width: import_v415.z.number().default(100)
1420
- });
1421
-
1422
- // src/schema/cab/button.ts
1423
- var CABButtonContent = import_v416.z.lazy(() => import_v416.z.discriminatedUnion("sectionType", [CABImageSection, CABTextSection]));
1424
- var CABButtonSection = import_v416.z.object({
1425
- action: import_v416.z.union([import_v416.z.literal(""), import_v416.z.enum(buttonActions)]).default(""),
1426
- buttonStyle: import_v416.z.enum(buttonStyles).default(ButtonStyle.primary),
1427
- custom: import_v416.z.object({
1428
- color: import_v416.z.string().regex(HEX_COLOR_REGEX).default("#005bd3"),
1429
- height: import_v416.z.number().default(52),
1430
- width: import_v416.z.number().default(300)
1537
+ // src/schema/widgets/checkoutAndBeyond/layout.ts
1538
+ var CABLayoutSection = import_v419.z.object({
1539
+ alignment: import_v419.z.object({
1540
+ horizontal: import_v419.z.enum(horizontalAlignments).default(HorizontalAlignment.start),
1541
+ vertical: import_v419.z.enum(verticalAlignments).default(VerticalAlignment.top)
1431
1542
  }).default({
1432
- color: "#005bd3",
1433
- height: 52,
1434
- width: 300
1543
+ horizontal: HorizontalAlignment.start,
1544
+ vertical: VerticalAlignment.top
1435
1545
  }),
1436
- name: import_v416.z.string().optional(),
1437
- sectionId: import_v416.z.uuid().default(() => (0, import_uuid12.v7)()),
1438
- sections: import_v416.z.array(CABButtonContent).default(() => []),
1439
- sectionType: import_v416.z.literal(SectionType.button).default(SectionType.button)
1546
+ border: import_v419.z.lazy(() => CABBorder),
1547
+ direction: import_v419.z.enum(directions).default(Direction.rows),
1548
+ name: import_v419.z.string().optional(),
1549
+ padding: import_v419.z.enum(spacings).default(Spacing.none),
1550
+ sectionId: import_v419.z.uuid().default(() => (0, import_uuid12.v7)()),
1551
+ sections: import_v419.z.union([import_v419.z.array(import_v419.z.lazy(() => CABSection)), import_v419.z.strictObject({}).transform(() => [])]).default(() => []),
1552
+ sectionType: import_v419.z.literal(SectionType.layout).default(SectionType.layout),
1553
+ spacing: import_v419.z.enum(spacings).default(Spacing.base),
1554
+ width: import_v419.z.number().default(100)
1440
1555
  });
1441
1556
 
1442
- // src/schema/cab/root.ts
1443
- var import_v417 = require("zod/v4");
1444
- var TargetArea = import_v417.z.object({
1445
- fill: import_v417.z.boolean().optional(),
1446
- flip: import_v417.z.enum(["both", "horizontal", "vertical"]).optional(),
1447
- icon: import_v417.z.string(),
1448
- label: import_v417.z.string(),
1449
- width: import_v417.z.string()
1557
+ // src/schema/widgets/checkoutAndBeyond/root.ts
1558
+ var TargetArea = import_v420.z.object({
1559
+ fill: import_v420.z.boolean().optional(),
1560
+ flip: import_v420.z.enum(["both", "horizontal", "vertical"]).optional(),
1561
+ icon: import_v420.z.string(),
1562
+ label: import_v420.z.string(),
1563
+ width: import_v420.z.string()
1450
1564
  }).default(targetAreas[EditorMode.checkoutExtension][1]);
1451
1565
  var CABRootSection = CABLayoutSection.extend(
1452
- import_v417.z.object({
1453
- editorMode: import_v417.z.enum(editorModes).default(EditorMode.checkoutExtension),
1454
- previewMode: import_v417.z.boolean().default(false),
1455
- storeId: import_v417.z.number().nullable().default(null),
1566
+ import_v420.z.object({
1567
+ editorMode: import_v420.z.enum(editorModes).default(EditorMode.checkoutExtension),
1568
+ previewMode: import_v420.z.boolean().default(false),
1569
+ storeId: import_v420.z.number().nullable().default(null),
1456
1570
  targetArea: TargetArea.nullable(),
1457
- type: import_v417.z.enum(widgetTypes).default(WidgetType.ui_extension_content_block),
1458
- version: import_v417.z.literal(2).default(2),
1459
- widgetId: import_v417.z.number().nullable().default(null)
1571
+ type: import_v420.z.enum(widgetTypes).default(WidgetType.ui_extension_content_block),
1572
+ version: import_v420.z.literal(2).default(2),
1573
+ widgetId: import_v420.z.number().nullable().default(null)
1460
1574
  }).shape
1461
1575
  );
1462
1576
 
1463
- // src/schema/shopConfig.ts
1464
- var import_v418 = require("zod/v4");
1465
- var ShopConfig = import_v418.z.object({
1466
- activeExperiments: import_v418.z.array(
1467
- import_v418.z.object({
1468
- data: import_v418.z.array(
1469
- import_v418.z.object({
1470
- aliasName: import_v418.z.string(),
1471
- cssInput: import_v418.z.string().nullish(),
1472
- elementId: import_v418.z.string(),
1473
- id: import_v418.z.string(),
1474
- javascriptInput: import_v418.z.string().nullish(),
1475
- traffic: import_v418.z.string()
1476
- })
1477
- ),
1478
- id: import_v418.z.string(),
1479
- name: import_v418.z.string(),
1480
- pageTarget: import_v418.z.string().nullable(),
1481
- placeholderId: import_v418.z.string().nullable(),
1482
- type: import_v418.z.string()
1483
- })
1484
- ).optional(),
1485
- activePackages: import_v418.z.array(
1486
- import_v418.z.object({
1487
- cancelledAt: import_v418.z.string().nullable(),
1488
- id: import_v418.z.number(),
1489
- installedAt: import_v418.z.string().nullable(),
1490
- isActive: import_v418.z.boolean(),
1491
- isBillable: import_v418.z.boolean(),
1492
- packageId: import_v418.z.number(),
1493
- packageName: import_v418.z.string(),
1494
- shortName: import_v418.z.string(),
1495
- trialDays: import_v418.z.number(),
1496
- uninstalledAt: import_v418.z.string().nullable()
1497
- })
1498
- ).optional(),
1499
- apiKey: import_v418.z.string(),
1500
- billingVersion: import_v418.z.string().optional(),
1501
- cacheKey: import_v418.z.string().regex(/^[0-9]+$/),
1502
- carousel: import_v418.z.string(),
1503
- currency: import_v418.z.string(),
1504
- currencySymbol: import_v418.z.string(),
1505
- domain: import_v418.z.string(),
1506
- enabledJquery: import_v418.z.boolean(),
1507
- enabledPresentmentCurrencies: import_v418.z.array(import_v418.z.string()),
1508
- hasSmartCollectionsEnabled: import_v418.z.boolean().optional(),
1509
- hasSmartSearchEnabled: import_v418.z.boolean(),
1510
- id: import_v418.z.string().regex(/^[0-9]+$/),
1511
- integrations: import_v418.z.record(import_v418.z.string(), import_v418.z.boolean()),
1512
- markets: import_v418.z.object({
1513
- enabled: import_v418.z.boolean()
1577
+ // src/schema/widgets/checkoutExtension.ts
1578
+ var import_v421 = require("zod/v4");
1579
+ var CheckoutExtension = import_v421.z.looseObject({
1580
+ type: import_v421.z.literal(WidgetType.shopify_checkout_extension).default(WidgetType.shopify_checkout_extension),
1581
+ version: import_v421.z.undefined()
1582
+ });
1583
+
1584
+ // src/schema/widgets/contentBlock.ts
1585
+ var import_v422 = require("zod/v4");
1586
+ var ContentBlock = import_v422.z.object({
1587
+ blockSpacing: import_v422.z.enum(spacings),
1588
+ imageBlocks: import_v422.z.union([
1589
+ import_v422.z.array(
1590
+ import_v422.z.object({
1591
+ altText: import_v422.z.string().nullable(),
1592
+ description: import_v422.z.string().nullable(),
1593
+ id: import_v422.z.uuid(),
1594
+ imagePlacement: import_v422.z.enum(["top", "right", "bottom", "left"]),
1595
+ imageSize: import_v422.z.number(),
1596
+ imageUrl: import_v422.z.url(),
1597
+ textAlignment: import_v422.z.enum(["left", "center", "right"]),
1598
+ textSize: import_v422.z.enum(textSizeNames)
1599
+ })
1600
+ ),
1601
+ import_v422.z.strictObject({}).transform(() => [])
1602
+ ]),
1603
+ imageLayout: import_v422.z.enum(["row", "column"]),
1604
+ language: import_v422.z.object({
1605
+ description: import_v422.z.string(),
1606
+ superTitle: import_v422.z.string(),
1607
+ title: import_v422.z.string()
1514
1608
  }),
1515
- moneyFormat: import_v418.z.string(),
1516
- myshopifyDomain: import_v418.z.string(),
1517
- primaryLocale: import_v418.z.string(),
1518
- productGroupsEnabled: import_v418.z.enum(["no", "yes"]),
1519
- rechargeCustomDomain: import_v418.z.string().nullable(),
1520
- sellingPlansEnabled: import_v418.z.boolean(),
1521
- shopId: import_v418.z.number(),
1522
- shopifySellingPlansEnabled: import_v418.z.boolean(),
1523
- shopName: import_v418.z.string(),
1524
- storefrontAccessToken: import_v418.z.string().nullable(),
1525
- useRebuyIcons: import_v418.z.boolean()
1609
+ previewMode: import_v422.z.boolean(),
1610
+ type: import_v422.z.literal(WidgetType.ui_extension_content_block).default(WidgetType.ui_extension_content_block),
1611
+ version: import_v422.z.literal(1)
1526
1612
  });
1527
1613
 
1528
- // src/schema/userConfig.ts
1529
- var import_v419 = require("zod/v4");
1530
- var UserConfig = import_v419.z.object({
1531
- shop: ShopConfig,
1532
- smartCart: import_v419.z.unknown(),
1533
- smartFlows: import_v419.z.array(import_v419.z.unknown())
1614
+ // src/schema/widgets/giftWithPurchase.ts
1615
+ var import_v423 = require("zod/v4");
1616
+ var GiftWithPurchase = import_v423.z.looseObject({
1617
+ type: import_v423.z.literal(WidgetType.gift_with_purchase).default(WidgetType.gift_with_purchase),
1618
+ version: import_v423.z.undefined()
1534
1619
  });
1535
1620
 
1536
- // src/schema/widgetSettings.ts
1537
- var import_v420 = require("zod/v4");
1538
- var LegacyV1Widget = import_v420.z.discriminatedUnion("type", [
1539
- import_v420.z.object({ type: import_v420.z.literal(WidgetType.gift_with_purchase), version: import_v420.z.literal(1) }),
1540
- import_v420.z.object({ type: import_v420.z.literal(WidgetType.shopify_checkout_extension), version: import_v420.z.literal(1) }),
1541
- import_v420.z.object({ type: import_v420.z.literal(WidgetType.ui_extension_ad), version: import_v420.z.literal(1) }),
1542
- import_v420.z.object({ type: import_v420.z.literal(WidgetType.ui_extension_button), version: import_v420.z.literal(1) }),
1543
- import_v420.z.object({ type: import_v420.z.literal(WidgetType.ui_extension_content_block), version: import_v420.z.literal(1) }),
1544
- import_v420.z.object({ type: import_v420.z.literal(WidgetType.ui_extension_line_item_editor), version: import_v420.z.literal(1) }),
1545
- import_v420.z.object({ type: import_v420.z.literal(WidgetType.ui_extension_progress_bar), version: import_v420.z.literal(1) })
1621
+ // src/schema/widgets/lineItemEditor.ts
1622
+ var import_v424 = require("zod/v4");
1623
+ var LineItemEditor = import_v424.z.looseObject({
1624
+ type: import_v424.z.literal(WidgetType.ui_extension_line_item_editor).default(WidgetType.ui_extension_line_item_editor),
1625
+ version: import_v424.z.literal(1)
1626
+ });
1627
+
1628
+ // src/schema/widgets/progressBar.ts
1629
+ var import_v425 = require("zod/v4");
1630
+ var ProgressBar = import_v425.z.looseObject({
1631
+ type: import_v425.z.literal(WidgetType.ui_extension_progress_bar).default(WidgetType.ui_extension_progress_bar),
1632
+ version: import_v425.z.literal(1)
1633
+ });
1634
+
1635
+ // src/schema/widgets/rebuyButton.ts
1636
+ var import_v426 = require("zod/v4");
1637
+ var RebuyButton = import_v426.z.looseObject({
1638
+ type: import_v426.z.literal(WidgetType.ui_extension_button).default(WidgetType.ui_extension_button),
1639
+ version: import_v426.z.literal(1)
1640
+ });
1641
+
1642
+ // src/schema/widgets/rebuyMonetize.ts
1643
+ var import_v427 = require("zod/v4");
1644
+ var RebuyMonetize = import_v427.z.looseObject({
1645
+ type: import_v427.z.literal(WidgetType.ui_extension_ad).default(WidgetType.ui_extension_ad),
1646
+ version: import_v427.z.literal(1)
1647
+ });
1648
+
1649
+ // src/schema/widgetData.ts
1650
+ var extensionWidgetTypes = [
1651
+ "placeholder",
1652
+ WidgetType.gift_with_purchase,
1653
+ WidgetType.shopify_checkout_extension,
1654
+ WidgetType.ui_extension_ad,
1655
+ WidgetType.ui_extension_button,
1656
+ WidgetType.ui_extension_content_block,
1657
+ WidgetType.ui_extension_line_item_editor,
1658
+ WidgetType.ui_extension_progress_bar
1659
+ ];
1660
+ var LegacyV0Widget = import_v428.z.discriminatedUnion("type", [ABTestingPlaceholder, CheckoutExtension, GiftWithPurchase]);
1661
+ var LegacyV1Widget = import_v428.z.discriminatedUnion("type", [
1662
+ ContentBlock,
1663
+ LineItemEditor,
1664
+ ProgressBar,
1665
+ RebuyButton,
1666
+ RebuyMonetize
1546
1667
  ]);
1547
- var WidgetSettings = import_v420.z.discriminatedUnion("version", [LegacyV1Widget, CABRootSection]);
1668
+ var WidgetData = import_v428.z.discriminatedUnion("version", [LegacyV0Widget, LegacyV1Widget, CABRootSection]);
1548
1669
  //# sourceMappingURL=index.js.map