@rebuy/rebuy 2.5.0-rc.1 → 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 (89) 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 -353
  4. package/dist/index.js.map +4 -4
  5. package/dist/index.mjs +458 -353
  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/widgetData.d.ts +248 -0
  10. package/dist/schema/widgetData.d.ts.map +1 -0
  11. package/dist/schema/widgets/abTestingPlaceholder.d.ts +7 -0
  12. package/dist/schema/widgets/abTestingPlaceholder.d.ts.map +1 -0
  13. package/dist/schema/{cab → widgets/checkoutAndBeyond}/button.d.ts +17 -17
  14. package/dist/schema/widgets/checkoutAndBeyond/button.d.ts.map +1 -0
  15. package/dist/schema/{cab → widgets/checkoutAndBeyond}/common.d.ts +8 -8
  16. package/dist/schema/widgets/checkoutAndBeyond/common.d.ts.map +1 -0
  17. package/dist/schema/widgets/checkoutAndBeyond/constants.d.ts.map +1 -0
  18. package/dist/schema/{cab/data-source.d.ts → widgets/checkoutAndBeyond/dataSource.d.ts} +1 -1
  19. package/dist/schema/widgets/checkoutAndBeyond/dataSource.d.ts.map +1 -0
  20. package/dist/schema/widgets/checkoutAndBeyond/image.d.ts.map +1 -0
  21. package/dist/schema/{cab → widgets/checkoutAndBeyond}/index.d.ts +1 -1
  22. package/dist/schema/widgets/checkoutAndBeyond/index.d.ts.map +1 -0
  23. package/dist/schema/{cab → widgets/checkoutAndBeyond}/layout.d.ts +1 -1
  24. package/dist/schema/widgets/checkoutAndBeyond/layout.d.ts.map +1 -0
  25. package/dist/schema/{cab → widgets/checkoutAndBeyond}/offers.d.ts +17 -17
  26. package/dist/schema/widgets/checkoutAndBeyond/offers.d.ts.map +1 -0
  27. package/dist/schema/{cab → widgets/checkoutAndBeyond}/product.d.ts +7 -7
  28. package/dist/schema/widgets/checkoutAndBeyond/product.d.ts.map +1 -0
  29. package/dist/schema/{cab → widgets/checkoutAndBeyond}/products.d.ts +9 -9
  30. package/dist/schema/widgets/checkoutAndBeyond/products.d.ts.map +1 -0
  31. package/dist/schema/widgets/checkoutAndBeyond/quantity.d.ts.map +1 -0
  32. package/dist/schema/widgets/checkoutAndBeyond/regex.d.ts.map +1 -0
  33. package/dist/schema/widgets/checkoutAndBeyond/reviews.d.ts.map +1 -0
  34. package/dist/schema/{cab → widgets/checkoutAndBeyond}/root.d.ts +1 -1
  35. package/dist/schema/widgets/checkoutAndBeyond/root.d.ts.map +1 -0
  36. package/dist/schema/{cab → widgets/checkoutAndBeyond}/shared.d.ts +1 -1
  37. package/dist/schema/widgets/checkoutAndBeyond/shared.d.ts.map +1 -0
  38. package/dist/schema/widgets/checkoutAndBeyond/subscription.d.ts.map +1 -0
  39. package/dist/schema/widgets/checkoutAndBeyond/table.d.ts.map +1 -0
  40. package/dist/schema/{cab → widgets/checkoutAndBeyond}/text.d.ts +22 -22
  41. package/dist/schema/widgets/checkoutAndBeyond/text.d.ts.map +1 -0
  42. package/dist/schema/{cab → widgets/checkoutAndBeyond}/utils.d.ts +1 -1
  43. package/dist/schema/widgets/checkoutAndBeyond/utils.d.ts.map +1 -0
  44. package/dist/schema/widgets/checkoutAndBeyond/variants.d.ts.map +1 -0
  45. package/dist/schema/widgets/checkoutExtension.d.ts +7 -0
  46. package/dist/schema/widgets/checkoutExtension.d.ts.map +1 -0
  47. package/dist/schema/widgets/contentBlock.d.ts +50 -0
  48. package/dist/schema/widgets/contentBlock.d.ts.map +1 -0
  49. package/dist/schema/widgets/giftWithPurchase.d.ts +7 -0
  50. package/dist/schema/widgets/giftWithPurchase.d.ts.map +1 -0
  51. package/dist/schema/widgets/lineItemEditor.d.ts +7 -0
  52. package/dist/schema/widgets/lineItemEditor.d.ts.map +1 -0
  53. package/dist/schema/widgets/progressBar.d.ts +7 -0
  54. package/dist/schema/widgets/progressBar.d.ts.map +1 -0
  55. package/dist/schema/widgets/rebuyButton.d.ts +7 -0
  56. package/dist/schema/widgets/rebuyButton.d.ts.map +1 -0
  57. package/dist/schema/widgets/rebuyMonetize.d.ts +7 -0
  58. package/dist/schema/widgets/rebuyMonetize.d.ts.map +1 -0
  59. package/package.json +1 -1
  60. package/dist/schema/cab/button.d.ts.map +0 -1
  61. package/dist/schema/cab/common.d.ts.map +0 -1
  62. package/dist/schema/cab/constants.d.ts.map +0 -1
  63. package/dist/schema/cab/data-source.d.ts.map +0 -1
  64. package/dist/schema/cab/image.d.ts.map +0 -1
  65. package/dist/schema/cab/index.d.ts.map +0 -1
  66. package/dist/schema/cab/layout.d.ts.map +0 -1
  67. package/dist/schema/cab/offers.d.ts.map +0 -1
  68. package/dist/schema/cab/product.d.ts.map +0 -1
  69. package/dist/schema/cab/products.d.ts.map +0 -1
  70. package/dist/schema/cab/quantity.d.ts.map +0 -1
  71. package/dist/schema/cab/regex.d.ts.map +0 -1
  72. package/dist/schema/cab/reviews.d.ts.map +0 -1
  73. package/dist/schema/cab/root.d.ts.map +0 -1
  74. package/dist/schema/cab/shared.d.ts.map +0 -1
  75. package/dist/schema/cab/subscription.d.ts.map +0 -1
  76. package/dist/schema/cab/table.d.ts.map +0 -1
  77. package/dist/schema/cab/text.d.ts.map +0 -1
  78. package/dist/schema/cab/utils.d.ts.map +0 -1
  79. package/dist/schema/cab/variants.d.ts.map +0 -1
  80. package/dist/schema/widgetSettings.d.ts +0 -152
  81. package/dist/schema/widgetSettings.d.ts.map +0 -1
  82. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/constants.d.ts +0 -0
  83. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/image.d.ts +0 -0
  84. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/quantity.d.ts +0 -0
  85. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/regex.d.ts +0 -0
  86. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/reviews.d.ts +0 -0
  87. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/subscription.d.ts +0 -0
  88. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/table.d.ts +0 -0
  89. /package/dist/schema/{cab → widgets/checkoutAndBeyond}/variants.d.ts +0 -0
package/dist/index.mjs CHANGED
@@ -734,20 +734,119 @@ var RebuyClient = class {
734
734
  }
735
735
  };
736
736
 
737
- // src/schema/cab/button.ts
738
- import { v7 as uuidv712 } from "uuid";
739
- import { z as z16 } from "zod/v4";
740
-
741
- // src/schema/cab/common.ts
737
+ // src/schema/shopConfig.ts
742
738
  import { z } from "zod/v4";
739
+ var ShopConfig = z.strictObject({
740
+ activeExperiments: z.array(
741
+ z.strictObject({
742
+ data: z.array(
743
+ z.strictObject({
744
+ aliasName: z.string(),
745
+ cssInput: z.string().nullish(),
746
+ elementId: z.coerce.number(),
747
+ id: z.coerce.number(),
748
+ javascriptInput: z.string().nullish(),
749
+ traffic: z.coerce.number()
750
+ })
751
+ ),
752
+ id: z.coerce.number(),
753
+ name: z.string(),
754
+ pageTarget: z.string().nullable(),
755
+ pageTargetUrl: z.string().nullable(),
756
+ placeholderId: z.coerce.number().nullable(),
757
+ type: z.string()
758
+ })
759
+ ),
760
+ activePackages: z.array(
761
+ z.strictObject({
762
+ cancelledAt: z.string().nullable(),
763
+ id: z.number(),
764
+ installedAt: z.string().nullable(),
765
+ isActive: z.boolean(),
766
+ isBillable: z.boolean(),
767
+ packageId: z.number(),
768
+ packageName: z.string(),
769
+ shortName: z.string(),
770
+ trialDays: z.number(),
771
+ uninstalledAt: z.string().nullable()
772
+ })
773
+ ),
774
+ apiKey: z.string(),
775
+ billingVersion: z.string(),
776
+ cacheKey: z.coerce.number(),
777
+ carousel: z.enum(["flickity", "splide"]),
778
+ currency: z.string(),
779
+ currencySymbol: z.string(),
780
+ domain: z.string(),
781
+ enabledJquery: z.boolean(),
782
+ enabledPresentmentCurrencies: z.array(z.string()),
783
+ hasSmartCollectionsEnabled: z.boolean(),
784
+ hasSmartSearchEnabled: z.boolean(),
785
+ id: z.coerce.number(),
786
+ integrations: z.record(
787
+ z.enum([
788
+ "attentive",
789
+ "judgeme",
790
+ "junip",
791
+ "klaviyo",
792
+ "loox",
793
+ "okendo",
794
+ "opinew",
795
+ "recharge",
796
+ "reviewsio",
797
+ "stamped",
798
+ "yotpo"
799
+ ]),
800
+ z.boolean()
801
+ ),
802
+ markets: z.strictObject({
803
+ enabled: z.boolean()
804
+ }),
805
+ moneyFormat: z.string(),
806
+ myshopifyDomain: z.string(),
807
+ primaryLocale: z.string(),
808
+ productGroupsEnabled: z.enum(["no", "yes"]).transform((value) => value === "yes"),
809
+ rechargeCustomDomain: z.string().nullable(),
810
+ sellingPlansEnabled: z.boolean(),
811
+ shopId: z.number(),
812
+ shopifySellingPlansEnabled: z.boolean(),
813
+ shopName: z.string(),
814
+ storefrontAccessToken: z.string().nullable(),
815
+ useRebuyIcons: z.boolean()
816
+ });
817
+
818
+ // src/schema/userConfig.ts
819
+ import { z as z2 } from "zod/v4";
820
+ var UserConfig = z2.strictObject({
821
+ shop: ShopConfig,
822
+ smartCart: z2.unknown(),
823
+ smartFlows: z2.array(z2.unknown())
824
+ });
825
+
826
+ // src/schema/widgetData.ts
827
+ import { z as z28 } from "zod/v4";
828
+
829
+ // src/schema/widgets/abTestingPlaceholder.ts
830
+ import { z as z3 } from "zod/v4";
831
+ var ABTestingPlaceholder = z3.looseObject({
832
+ type: z3.literal("placeholder"),
833
+ version: z3.undefined()
834
+ });
835
+
836
+ // src/schema/widgets/checkoutAndBeyond/constants.ts
837
+ import { uniqBy } from "lodash-es";
838
+ import { z as z5 } from "zod/v4";
839
+
840
+ // src/schema/widgets/checkoutAndBeyond/common.ts
841
+ import { z as z4 } from "zod/v4";
743
842
  var borderRadii = ["none", "small", "base", "large", "fullyRounded"];
744
- var borderRadius = z.enum(borderRadii);
843
+ var borderRadius = z4.enum(borderRadii);
745
844
  var BorderRadius = borderRadius.enum;
746
845
  var borderStyles = ["none", "base", "dotted", "dashed"];
747
- var borderStyle = z.enum(borderStyles);
846
+ var borderStyle = z4.enum(borderStyles);
748
847
  var BorderStyle = borderStyle.enum;
749
848
  var borderWidths = ["base", "medium", "thick"];
750
- var borderWidth = z.enum(borderWidths);
849
+ var borderWidth = z4.enum(borderWidths);
751
850
  var BorderWidth = borderWidth.enum;
752
851
  var buttonActions = [
753
852
  "addToOrder",
@@ -760,7 +859,7 @@ var buttonActions = [
760
859
  "showVariants",
761
860
  "switchToSubscription"
762
861
  ];
763
- var buttonAction = z.enum(buttonActions);
862
+ var buttonAction = z4.enum(buttonActions);
764
863
  var ButtonAction = buttonAction.enum;
765
864
  var buttonFields = [
766
865
  "addedToCart",
@@ -781,13 +880,13 @@ var buttonFields = [
781
880
  "switchToSubscriptionNoDiscount",
782
881
  "switchToSubscriptionWithDiscount"
783
882
  ];
784
- var buttonField = z.enum(buttonFields);
883
+ var buttonField = z4.enum(buttonFields);
785
884
  var ButtonField = buttonField.enum;
786
885
  var buttonStyles = ["primary", "secondary", "plain", "custom"];
787
- var buttonStyle = z.enum(buttonStyles);
886
+ var buttonStyle = z4.enum(buttonStyles);
788
887
  var ButtonStyle = buttonStyle.enum;
789
888
  var directions = ["columns", "rows"];
790
- var direction = z.enum(directions);
889
+ var direction = z4.enum(directions);
791
890
  var Direction = direction.enum;
792
891
  var editorModes = [
793
892
  "checkoutExtension",
@@ -797,10 +896,10 @@ var editorModes = [
797
896
  "ordersIndexPage",
798
897
  "customerProfilePage"
799
898
  ];
800
- var editorMode = z.enum(editorModes);
899
+ var editorMode = z4.enum(editorModes);
801
900
  var EditorMode = editorMode.enum;
802
901
  var horizontalAlignments = ["start", "center", "end"];
803
- var horizontalAlignment = z.enum(horizontalAlignments);
902
+ var horizontalAlignment = z4.enum(horizontalAlignments);
804
903
  var HorizontalAlignment = horizontalAlignment.enum;
805
904
  var languageKeys = [
806
905
  "ar",
@@ -830,13 +929,13 @@ var languageKeys = [
830
929
  "vi",
831
930
  "zh"
832
931
  ];
833
- var languageKey = z.enum(languageKeys);
932
+ var languageKey = z4.enum(languageKeys);
834
933
  var LanguageKey = languageKey.enum;
835
934
  var objectFits = ["cover", "contain"];
836
- var objectFit = z.enum(objectFits);
935
+ var objectFit = z4.enum(objectFits);
837
936
  var ObjectFit = objectFit.enum;
838
937
  var quantityInputs = ["select", "number"];
839
- var quantityInput = z.enum(quantityInputs);
938
+ var quantityInput = z4.enum(quantityInputs);
840
939
  var QuantityInput = quantityInput.enum;
841
940
  var sectionTypes = [
842
941
  "button",
@@ -853,47 +952,28 @@ var sectionTypes = [
853
952
  "text",
854
953
  "variants"
855
954
  ];
856
- var sectionType = z.enum(sectionTypes);
955
+ var sectionType = z4.enum(sectionTypes);
857
956
  var SectionType = sectionType.enum;
858
957
  var spacings = ["none", "extraTight", "tight", "base", "loose", "extraLoose"];
859
- var spacing = z.enum(spacings);
958
+ var spacing = z4.enum(spacings);
860
959
  var Spacing = spacing.enum;
861
960
  var textAlignments = ["start", "center", "end"];
862
- var textAlignment = z.enum(textAlignments);
961
+ var textAlignment = z4.enum(textAlignments);
863
962
  var TextAlignment = textAlignment.enum;
864
963
  var textColorNames = ["base", "subdued", "accent", "decorative", "success", "warning", "critical"];
865
- var textColorName = z.enum(textColorNames);
964
+ var textColorName = z4.enum(textColorNames);
866
965
  var TextColorName = textColorName.enum;
867
966
  var textSizeNames = ["extraSmall", "small", "base", "medium", "large", "extraLarge"];
868
- var textSizeName = z.enum(textSizeNames);
967
+ var textSizeName = z4.enum(textSizeNames);
869
968
  var TextSizeName = textSizeName.enum;
870
969
  var variantSelectors = ["menu", "button", "radio", "color", "image"];
871
- var variantSelector = z.enum(variantSelectors);
970
+ var variantSelector = z4.enum(variantSelectors);
872
971
  var VariantSelector = variantSelector.enum;
873
972
  var verticalAlignments = ["top", "middle", "bottom"];
874
- var verticalAlignment = z.enum(verticalAlignments);
973
+ var verticalAlignment = z4.enum(verticalAlignments);
875
974
  var VerticalAlignment = verticalAlignment.enum;
876
975
 
877
- // src/schema/cab/image.ts
878
- import { v7 as uuidv711 } from "uuid";
879
- import { z as z15 } from "zod/v4";
880
-
881
- // src/schema/cab/regex.ts
882
- var ARRAY_INDEX_STRING = /^(0|[1-9]\d*)$/;
883
- var DYNAMIC_TOKEN_REGEX = /^\{\{\s*[A-Za-z]+\s*\}\}$/;
884
- var HEX_COLOR_REGEX = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;
885
- var HTML_TAGS_REGEX = /<[^>]*>/gi;
886
-
887
- // src/schema/cab/shared.ts
888
- import { z as z14 } from "zod/v4";
889
-
890
- // src/schema/cab/data-source.ts
891
- import { v7 as uuidv7 } from "uuid";
892
- import { z as z3 } from "zod/v4";
893
-
894
- // src/schema/cab/constants.ts
895
- import { uniqBy } from "lodash-es";
896
- import { z as z2 } from "zod/v4";
976
+ // src/schema/widgets/checkoutAndBeyond/constants.ts
897
977
  var DEFAULT_ENDPOINTS = [
898
978
  { label: "Recommended (AI)", value: "/products/recommended" },
899
979
  { label: "Top Sellers", value: "/products/top_sellers" },
@@ -966,58 +1046,34 @@ var widgetTypes = [
966
1046
  "ui_extension_line_item_editor",
967
1047
  "ui_extension_progress_bar"
968
1048
  ];
969
- var widgetType = z2.enum(widgetTypes);
1049
+ var widgetType = z5.enum(widgetTypes);
970
1050
  var WidgetType = widgetType.enum;
971
1051
 
972
- // src/schema/cab/data-source.ts
973
- var CABDataSourceSection = z3.object({
974
- dataSourceId: z3.number().nullable().default(null),
975
- dataSourcePath: z3.string().default(DEFAULT_ENDPOINTS[0].value),
976
- limit: z3.number().default(1),
977
- name: z3.string().default(DEFAULT_ENDPOINTS[0].label),
978
- sectionId: z3.uuid().default(() => uuidv7()),
979
- sectionType: z3.literal(SectionType.dataSource).default(SectionType.dataSource)
980
- });
1052
+ // src/schema/widgets/checkoutAndBeyond/root.ts
1053
+ import { z as z20 } from "zod/v4";
981
1054
 
982
- // src/schema/cab/layout.ts
983
- import { v7 as uuidv72 } from "uuid";
984
- import { z as z4 } from "zod/v4";
985
- var CABLayoutSection = z4.object({
986
- alignment: z4.object({
987
- horizontal: z4.enum(horizontalAlignments).default(HorizontalAlignment.start),
988
- vertical: z4.enum(verticalAlignments).default(VerticalAlignment.top)
989
- }).default({
990
- horizontal: HorizontalAlignment.start,
991
- vertical: VerticalAlignment.top
992
- }),
993
- border: z4.lazy(() => CABBorder),
994
- direction: z4.enum(directions).default(Direction.rows),
995
- name: z4.string().optional(),
996
- padding: z4.enum(spacings).default(Spacing.none),
997
- sectionId: z4.uuid().default(() => uuidv72()),
998
- sections: z4.array(z4.lazy(() => CABSection)).default(() => []),
999
- sectionType: z4.literal(SectionType.layout).default(SectionType.layout),
1000
- spacing: z4.enum(spacings).default(Spacing.base),
1001
- width: z4.number().default(100)
1002
- });
1055
+ // src/schema/widgets/checkoutAndBeyond/layout.ts
1056
+ import { v7 as uuidv712 } from "uuid";
1057
+ import { z as z19 } from "zod/v4";
1003
1058
 
1004
- // src/schema/cab/offers.ts
1005
- import { z as z8 } from "zod/v4";
1059
+ // src/schema/widgets/checkoutAndBeyond/shared.ts
1060
+ import { z as z18 } from "zod/v4";
1006
1061
 
1007
- // src/schema/cab/products.ts
1008
- import { v7 as uuidv75 } from "uuid";
1009
- import { z as z7 } from "zod/v4";
1062
+ // src/schema/widgets/checkoutAndBeyond/button.ts
1063
+ import { v7 as uuidv73 } from "uuid";
1064
+ import { z as z8 } from "zod/v4";
1010
1065
 
1011
- // src/schema/cab/product.ts
1012
- import { v7 as uuidv74 } from "uuid";
1066
+ // src/schema/widgets/checkoutAndBeyond/image.ts
1067
+ import { v7 as uuidv7 } from "uuid";
1013
1068
  import { z as z6 } from "zod/v4";
1014
1069
 
1015
- // src/schema/cab/text.ts
1016
- import { forEach, isString as isString2 } from "lodash-es";
1017
- import { v7 as uuidv73 } from "uuid";
1018
- import { z as z5 } from "zod/v4";
1070
+ // src/schema/widgets/checkoutAndBeyond/regex.ts
1071
+ var ARRAY_INDEX_STRING = /^(0|[1-9]\d*)$/;
1072
+ var DYNAMIC_TOKEN_REGEX = /^\{\{\s*[A-Za-z]+\s*\}\}$/;
1073
+ var HEX_COLOR_REGEX = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;
1074
+ var HTML_TAGS_REGEX = /<[^>]*>/gi;
1019
1075
 
1020
- // src/schema/cab/utils.ts
1076
+ // src/schema/widgets/checkoutAndBeyond/utils.ts
1021
1077
  import { entries, every, get as get2, isArray, isPlainObject, isString, map, mapValues, size } from "lodash-es";
1022
1078
  var isHTML = (html = "") => {
1023
1079
  if (typeof window !== "undefined") {
@@ -1055,55 +1111,78 @@ var convertNumericObjects = (input) => {
1055
1111
  return input;
1056
1112
  };
1057
1113
 
1058
- // src/schema/cab/text.ts
1059
- var enumOrOmit = (...vals) => z5.string().transform((val) => vals.includes(val) ? val : void 0).optional();
1060
- var TiptapText = z5.object({
1061
- marks: z5.array(
1062
- z5.discriminatedUnion("type", [
1063
- z5.object({ type: z5.literal("bold") }),
1064
- z5.object({ type: z5.literal("italic") }),
1065
- z5.object({
1066
- attrs: z5.object({
1067
- class: z5.string().nullable(),
1068
- href: z5.union([z5.url(), z5.string().regex(DYNAMIC_TOKEN_REGEX)]),
1069
- rel: z5.string().default("noopener noreferrer nofollow"),
1070
- target: z5.string().default("_blank")
1071
- }),
1072
- type: z5.literal("link")
1073
- }),
1074
- z5.object({ type: z5.literal("strike") }),
1075
- z5.object({
1076
- attrs: z5.object({
1077
- color: enumOrOmit(...textColorNames).default(TextColorName.base),
1078
- fontSize: enumOrOmit(...textSizeNames).default(TextSizeName.base)
1114
+ // src/schema/widgets/checkoutAndBeyond/image.ts
1115
+ var CABImageSection = z6.object({
1116
+ altText: z6.string().refine(checkForHTML, NO_HTML).default(""),
1117
+ aspectRatio: z6.literal(1).nullable().default(null),
1118
+ border: z6.lazy(() => CABBorder),
1119
+ buttonField: z6.enum(buttonFields).optional(),
1120
+ category: z6.enum(["gallery", "icons", "payment-methods", "secure-checkout"]).nullable().default(null),
1121
+ name: z6.string().optional(),
1122
+ naturalHeight: z6.number().default(0),
1123
+ naturalWidth: z6.number().default(0),
1124
+ objectFit: z6.enum(objectFits).default(ObjectFit.cover),
1125
+ sectionId: z6.uuid().default(() => uuidv7()),
1126
+ sectionType: z6.literal(SectionType.image).default(SectionType.image),
1127
+ source: z6.union([z6.url(), z6.literal(""), z6.string().regex(DYNAMIC_TOKEN_REGEX)]).default(""),
1128
+ width: z6.number().default(100)
1129
+ });
1130
+
1131
+ // src/schema/widgets/checkoutAndBeyond/text.ts
1132
+ import { forEach, isString as isString2 } from "lodash-es";
1133
+ import { v7 as uuidv72 } from "uuid";
1134
+ import { z as z7 } from "zod/v4";
1135
+ var enumOrOmit = (...vals) => z7.string().transform((val) => vals.includes(val) ? val : void 0).optional();
1136
+ var TiptapText = z7.object({
1137
+ marks: z7.union([
1138
+ z7.array(
1139
+ z7.discriminatedUnion("type", [
1140
+ z7.object({ type: z7.literal("bold") }),
1141
+ z7.object({ type: z7.literal("italic") }),
1142
+ z7.object({
1143
+ attrs: z7.object({
1144
+ class: z7.string().nullable(),
1145
+ href: z7.union([z7.url(), z7.string().regex(DYNAMIC_TOKEN_REGEX)]),
1146
+ rel: z7.string().default("noopener noreferrer nofollow"),
1147
+ target: z7.string().default("_blank")
1148
+ }),
1149
+ type: z7.literal("link")
1079
1150
  }),
1080
- type: z5.literal("textStyle")
1081
- })
1082
- ])
1083
- ).optional(),
1084
- text: z5.string().default(""),
1085
- type: z5.literal("text").default("text")
1151
+ z7.object({ type: z7.literal("strike") }),
1152
+ z7.object({
1153
+ attrs: z7.object({
1154
+ color: enumOrOmit(...textColorNames).default(TextColorName.base),
1155
+ fontSize: enumOrOmit(...textSizeNames).default(TextSizeName.base)
1156
+ }),
1157
+ type: z7.literal("textStyle")
1158
+ })
1159
+ ])
1160
+ ),
1161
+ z7.strictObject({}).transform(() => [])
1162
+ ]).optional(),
1163
+ text: z7.string().default(""),
1164
+ type: z7.literal("text").default("text")
1086
1165
  });
1087
- var TiptapParagraph = z5.object({
1088
- attrs: z5.object({
1166
+ var TiptapParagraph = z7.object({
1167
+ attrs: z7.object({
1089
1168
  textAlign: enumOrOmit(...textAlignments)
1090
1169
  }).default({ textAlign: TextAlignment.start }),
1091
- content: z5.array(TiptapText).default([]),
1092
- type: z5.literal("paragraph").default("paragraph")
1170
+ content: z7.union([z7.array(TiptapText), z7.strictObject({}).transform(() => [])]).default(() => []),
1171
+ type: z7.literal("paragraph").default("paragraph")
1093
1172
  });
1094
- var TiptapDocument = z5.object({
1095
- attrs: z5.object({
1173
+ var TiptapDocument = z7.object({
1174
+ attrs: z7.object({
1096
1175
  blockSpacing: enumOrOmit(...spacings)
1097
1176
  }).default({ blockSpacing: Spacing.base }),
1098
- content: z5.array(TiptapParagraph).default([TiptapParagraph.parse({})]),
1099
- type: z5.literal("doc").default("doc")
1177
+ content: z7.union([z7.array(TiptapParagraph), z7.strictObject({}).transform(() => [])]).default(() => [TiptapParagraph.parse({})]),
1178
+ type: z7.literal("doc").default("doc")
1100
1179
  });
1101
- var CABTextSection = z5.object({
1102
- buttonField: z5.enum(buttonFields).optional(),
1103
- content: z5.record(z5.string(), z5.union([z5.string(), TiptapDocument]).refine(checkForHTML, NO_HTML).optional()).default({ en: TiptapDocument.parse({}) }).optional(),
1104
- name: z5.string().optional(),
1105
- sectionId: z5.uuid().default(() => uuidv73()),
1106
- sectionType: z5.literal(SectionType.text).default(SectionType.text)
1180
+ var CABTextSection = z7.object({
1181
+ buttonField: z7.enum(buttonFields).optional(),
1182
+ content: z7.record(z7.string(), z7.union([z7.string(), TiptapDocument]).refine(checkForHTML, NO_HTML).optional()).default({ en: TiptapDocument.parse({}) }).optional(),
1183
+ name: z7.string().optional(),
1184
+ sectionId: z7.uuid().default(() => uuidv72()),
1185
+ sectionType: z7.literal(SectionType.text).default(SectionType.text)
1107
1186
  }).superRefine(({ buttonField: buttonField2, content }, ctx) => {
1108
1187
  if (buttonField2 === ButtonField.destinationUrl && content) {
1109
1188
  forEach(content, (value, lang) => {
@@ -1123,57 +1202,100 @@ var CABTextSection = z5.object({
1123
1202
  }
1124
1203
  });
1125
1204
 
1126
- // src/schema/cab/product.ts
1127
- var CABProductSection = z6.object({
1128
- name: z6.string().optional(),
1129
- options: z6.array(
1130
- z6.object({
1205
+ // src/schema/widgets/checkoutAndBeyond/button.ts
1206
+ var CABButtonContent = z8.lazy(() => z8.discriminatedUnion("sectionType", [CABImageSection, CABTextSection]));
1207
+ var CABButtonSection = z8.object({
1208
+ action: z8.union([z8.literal(""), z8.enum(buttonActions)]).default(""),
1209
+ buttonStyle: z8.enum(buttonStyles).default(ButtonStyle.primary),
1210
+ custom: z8.object({
1211
+ color: z8.string().regex(HEX_COLOR_REGEX).default("#005bd3"),
1212
+ height: z8.number().default(52),
1213
+ width: z8.number().default(300)
1214
+ }).default({
1215
+ color: "#005bd3",
1216
+ height: 52,
1217
+ width: 300
1218
+ }),
1219
+ name: z8.string().optional(),
1220
+ sectionId: z8.uuid().default(() => uuidv73()),
1221
+ sections: z8.union([z8.array(CABButtonContent), z8.strictObject({}).transform(() => [])]).default(() => []),
1222
+ sectionType: z8.literal(SectionType.button).default(SectionType.button)
1223
+ });
1224
+
1225
+ // src/schema/widgets/checkoutAndBeyond/dataSource.ts
1226
+ import { v7 as uuidv74 } from "uuid";
1227
+ import { z as z9 } from "zod/v4";
1228
+ var CABDataSourceSection = z9.object({
1229
+ dataSourceId: z9.number().nullable().default(null),
1230
+ dataSourcePath: z9.string().default(DEFAULT_ENDPOINTS[0].value),
1231
+ limit: z9.number().default(1),
1232
+ name: z9.string().default(DEFAULT_ENDPOINTS[0].label),
1233
+ sectionId: z9.uuid().default(() => uuidv74()),
1234
+ sectionType: z9.literal(SectionType.dataSource).default(SectionType.dataSource)
1235
+ });
1236
+
1237
+ // src/schema/widgets/checkoutAndBeyond/offers.ts
1238
+ import { z as z12 } from "zod/v4";
1239
+
1240
+ // src/schema/widgets/checkoutAndBeyond/products.ts
1241
+ import { v7 as uuidv76 } from "uuid";
1242
+ import { z as z11 } from "zod/v4";
1243
+
1244
+ // src/schema/widgets/checkoutAndBeyond/product.ts
1245
+ import { v7 as uuidv75 } from "uuid";
1246
+ import { z as z10 } from "zod/v4";
1247
+ var CABProductSection = z10.object({
1248
+ name: z10.string().optional(),
1249
+ options: z10.array(
1250
+ z10.object({
1131
1251
  /** `name` represents `Color`, `Size`, etc. */
1132
- name: z6.string(),
1133
- optionId: z6.number(),
1134
- selector: z6.enum(variantSelectors).default(VariantSelector.menu),
1135
- values: z6.array(
1136
- z6.object({
1137
- color: z6.string().optional(),
1138
- image: z6.lazy(() => CABImageSection).optional(),
1252
+ name: z10.string(),
1253
+ optionId: z10.number(),
1254
+ selector: z10.enum(variantSelectors).default(VariantSelector.menu),
1255
+ values: z10.array(
1256
+ z10.object({
1257
+ color: z10.string().optional(),
1258
+ image: z10.lazy(() => CABImageSection).optional(),
1139
1259
  /** `name` represents `Red`, `Blue`, etc. */
1140
- name: z6.string(),
1141
- text: z6.lazy(() => CABTextSection).optional()
1260
+ name: z10.string(),
1261
+ text: z10.lazy(() => CABTextSection).optional()
1142
1262
  })
1143
1263
  )
1144
1264
  })
1145
1265
  ).default(() => []),
1146
- productId: z6.number().nullable().default(null),
1147
- sectionId: z6.uuid().default(() => uuidv74()),
1148
- sectionType: z6.literal(SectionType.product).default(SectionType.product)
1266
+ productId: z10.number().nullable().default(null),
1267
+ sectionId: z10.uuid().default(() => uuidv75()),
1268
+ sectionType: z10.literal(SectionType.product).default(SectionType.product)
1149
1269
  });
1150
1270
 
1151
- // src/schema/cab/products.ts
1152
- var CABProductsSection = z7.object({
1153
- name: z7.string().optional(),
1154
- sectionId: z7.uuid().default(() => uuidv75()),
1155
- sections: z7.array(z7.lazy(() => CABProductSection)).default(() => []),
1156
- sectionType: z7.literal(SectionType.products).default(SectionType.products)
1271
+ // src/schema/widgets/checkoutAndBeyond/products.ts
1272
+ var CABProductsSection = z11.object({
1273
+ name: z11.string().optional(),
1274
+ sectionId: z11.uuid().default(() => uuidv76()),
1275
+ sections: z11.union([z11.array(z11.lazy(() => CABProductSection)), z11.strictObject({}).transform(() => [])]).default(() => []),
1276
+ sectionType: z11.literal(SectionType.products).default(SectionType.products)
1157
1277
  });
1158
1278
 
1159
- // src/schema/cab/offers.ts
1160
- var CABOffersSection = CABLayoutSection.omit({ sections: true, sectionType: true }).extend(
1161
- z8.object({
1162
- sections: z8.array(z8.lazy(() => CABSection)).default(() => [CABDataSourceSection.parse({}), CABProductsSection.parse({})]),
1163
- sectionType: z8.literal(SectionType.offers).default(SectionType.offers)
1164
- }).shape
1279
+ // src/schema/widgets/checkoutAndBeyond/offers.ts
1280
+ var CABOffersSection = z12.lazy(
1281
+ () => CABLayoutSection.omit({ sections: true, sectionType: true }).extend(
1282
+ z12.object({
1283
+ sections: z12.union([z12.array(z12.lazy(() => CABSection)), z12.strictObject({}).transform(() => [])]).default(() => [CABDataSourceSection.parse({}), CABProductsSection.parse({})]),
1284
+ sectionType: z12.literal(SectionType.offers).default(SectionType.offers)
1285
+ }).shape
1286
+ )
1165
1287
  );
1166
1288
 
1167
- // src/schema/cab/quantity.ts
1168
- import { v7 as uuidv76 } from "uuid";
1169
- import { z as z9 } from "zod/v4";
1170
- var CABQuantitySection = z9.object({
1171
- errorMessages: z9.record(
1172
- z9.string(),
1173
- z9.object({
1174
- max: z9.string().optional(),
1175
- min: z9.string().optional(),
1176
- neg: z9.string().optional()
1289
+ // src/schema/widgets/checkoutAndBeyond/quantity.ts
1290
+ import { v7 as uuidv77 } from "uuid";
1291
+ import { z as z13 } from "zod/v4";
1292
+ var CABQuantitySection = z13.object({
1293
+ errorMessages: z13.record(
1294
+ z13.string(),
1295
+ z13.object({
1296
+ max: z13.string().optional(),
1297
+ min: z13.string().optional(),
1298
+ neg: z13.string().optional()
1177
1299
  })
1178
1300
  ).default({
1179
1301
  en: {
@@ -1182,64 +1304,64 @@ var CABQuantitySection = z9.object({
1182
1304
  neg: "Quantity cannot be negative"
1183
1305
  }
1184
1306
  }),
1185
- inputType: z9.enum(quantityInputs).default(QuantityInput.select),
1186
- max: z9.number().min(1).max(100).default(10),
1187
- min: z9.number().min(1).default(1),
1188
- name: z9.string().optional(),
1189
- sectionId: z9.uuid().default(() => uuidv76()),
1190
- sectionType: z9.literal(SectionType.quantity).default(SectionType.quantity)
1191
- });
1192
-
1193
- // src/schema/cab/reviews.ts
1194
- import { v7 as uuidv77 } from "uuid";
1195
- import { z as z10 } from "zod/v4";
1196
- var CABReviewsSection = z10.object({
1197
- name: z10.string().optional(),
1198
- sectionId: z10.uuid().default(() => uuidv77()),
1199
- sectionType: z10.literal(SectionType.reviews).default(SectionType.reviews)
1307
+ inputType: z13.enum(quantityInputs).default(QuantityInput.select),
1308
+ max: z13.number().min(1).max(100).default(10),
1309
+ min: z13.number().min(1).default(1),
1310
+ name: z13.string().optional(),
1311
+ sectionId: z13.uuid().default(() => uuidv77()),
1312
+ sectionType: z13.literal(SectionType.quantity).default(SectionType.quantity)
1200
1313
  });
1201
1314
 
1202
- // src/schema/cab/subscription.ts
1315
+ // src/schema/widgets/checkoutAndBeyond/reviews.ts
1203
1316
  import { v7 as uuidv78 } from "uuid";
1204
- import { z as z11 } from "zod/v4";
1205
- var CABSubscriptionSection = z11.object({
1206
- name: z11.string().optional(),
1207
- sectionId: z11.uuid().default(() => uuidv78()),
1208
- sectionType: z11.literal(SectionType.subscription).default(SectionType.subscription)
1317
+ import { z as z14 } from "zod/v4";
1318
+ var CABReviewsSection = z14.object({
1319
+ name: z14.string().optional(),
1320
+ sectionId: z14.uuid().default(() => uuidv78()),
1321
+ sectionType: z14.literal(SectionType.reviews).default(SectionType.reviews)
1209
1322
  });
1210
1323
 
1211
- // src/schema/cab/table.ts
1324
+ // src/schema/widgets/checkoutAndBeyond/subscription.ts
1212
1325
  import { v7 as uuidv79 } from "uuid";
1213
- import { z as z12 } from "zod/v4";
1214
- var CABTableSection = z12.object({
1215
- name: z12.string().optional(),
1216
- sectionId: z12.uuid().default(() => uuidv79()),
1217
- sectionType: z12.literal(SectionType.table).default(SectionType.table)
1326
+ import { z as z15 } from "zod/v4";
1327
+ var CABSubscriptionSection = z15.object({
1328
+ name: z15.string().optional(),
1329
+ sectionId: z15.uuid().default(() => uuidv79()),
1330
+ sectionType: z15.literal(SectionType.subscription).default(SectionType.subscription)
1218
1331
  });
1219
1332
 
1220
- // src/schema/cab/variants.ts
1221
- import { slice } from "lodash-es";
1333
+ // src/schema/widgets/checkoutAndBeyond/table.ts
1222
1334
  import { v7 as uuidv710 } from "uuid";
1223
- import { z as z13 } from "zod/v4";
1224
- var CABVariantsSection = z13.object({
1225
- name: z13.string().optional(),
1226
- sectionId: z13.uuid().default(() => uuidv710()),
1227
- sectionType: z13.literal(SectionType.variants).default(SectionType.variants),
1228
- selector: z13.enum(slice(variantSelectors, 0, 3)).default(VariantSelector.menu)
1335
+ import { z as z16 } from "zod/v4";
1336
+ var CABTableSection = z16.object({
1337
+ name: z16.string().optional(),
1338
+ sectionId: z16.uuid().default(() => uuidv710()),
1339
+ sectionType: z16.literal(SectionType.table).default(SectionType.table)
1229
1340
  });
1230
1341
 
1231
- // src/schema/cab/shared.ts
1232
- var CABBorder = z14.object({
1233
- radius: z14.enum(borderRadii).default(BorderRadius.base),
1234
- style: z14.enum(borderStyles).default(BorderStyle.none),
1235
- width: z14.enum(borderWidths).default(BorderWidth.base)
1342
+ // src/schema/widgets/checkoutAndBeyond/variants.ts
1343
+ import { slice } from "lodash-es";
1344
+ import { v7 as uuidv711 } from "uuid";
1345
+ import { z as z17 } from "zod/v4";
1346
+ var CABVariantsSection = z17.object({
1347
+ name: z17.string().optional(),
1348
+ sectionId: z17.uuid().default(() => uuidv711()),
1349
+ sectionType: z17.literal(SectionType.variants).default(SectionType.variants),
1350
+ selector: z17.enum(slice(variantSelectors, 0, 3)).default(VariantSelector.menu)
1351
+ });
1352
+
1353
+ // src/schema/widgets/checkoutAndBeyond/shared.ts
1354
+ var CABBorder = z18.object({
1355
+ radius: z18.enum(borderRadii).default(BorderRadius.base),
1356
+ style: z18.enum(borderStyles).default(BorderStyle.none),
1357
+ width: z18.enum(borderWidths).default(BorderWidth.base)
1236
1358
  }).default({
1237
1359
  radius: BorderRadius.base,
1238
1360
  style: BorderStyle.none,
1239
1361
  width: BorderWidth.base
1240
1362
  });
1241
- var CABSection = z14.lazy(
1242
- () => z14.discriminatedUnion("sectionType", [
1363
+ var CABSection = z18.lazy(
1364
+ () => z18.discriminatedUnion("sectionType", [
1243
1365
  CABButtonSection,
1244
1366
  CABDataSourceSection,
1245
1367
  CABImageSection,
@@ -1256,166 +1378,140 @@ var CABSection = z14.lazy(
1256
1378
  ])
1257
1379
  );
1258
1380
 
1259
- // src/schema/cab/image.ts
1260
- var CABImageSection = z15.object({
1261
- altText: z15.string().refine(checkForHTML, NO_HTML).default(""),
1262
- aspectRatio: z15.literal(1).nullable().default(null),
1263
- border: z15.lazy(() => CABBorder),
1264
- buttonField: z15.enum(buttonFields).optional(),
1265
- category: z15.enum(["gallery", "icons", "payment-methods", "secure-checkout"]).nullable().default(null),
1266
- name: z15.string().optional(),
1267
- naturalHeight: z15.number().default(0),
1268
- naturalWidth: z15.number().default(0),
1269
- objectFit: z15.enum(objectFits).default(ObjectFit.cover),
1270
- sectionId: z15.uuid().default(() => uuidv711()),
1271
- sectionType: z15.literal(SectionType.image).default(SectionType.image),
1272
- source: z15.union([z15.url(), z15.literal(""), z15.string().regex(DYNAMIC_TOKEN_REGEX)]).default(""),
1273
- width: z15.number().default(100)
1274
- });
1275
-
1276
- // src/schema/cab/button.ts
1277
- var CABButtonContent = z16.lazy(() => z16.discriminatedUnion("sectionType", [CABImageSection, CABTextSection]));
1278
- var CABButtonSection = z16.object({
1279
- action: z16.union([z16.literal(""), z16.enum(buttonActions)]).default(""),
1280
- buttonStyle: z16.enum(buttonStyles).default(ButtonStyle.primary),
1281
- custom: z16.object({
1282
- color: z16.string().regex(HEX_COLOR_REGEX).default("#005bd3"),
1283
- height: z16.number().default(52),
1284
- width: z16.number().default(300)
1381
+ // src/schema/widgets/checkoutAndBeyond/layout.ts
1382
+ var CABLayoutSection = z19.object({
1383
+ alignment: z19.object({
1384
+ horizontal: z19.enum(horizontalAlignments).default(HorizontalAlignment.start),
1385
+ vertical: z19.enum(verticalAlignments).default(VerticalAlignment.top)
1285
1386
  }).default({
1286
- color: "#005bd3",
1287
- height: 52,
1288
- width: 300
1387
+ horizontal: HorizontalAlignment.start,
1388
+ vertical: VerticalAlignment.top
1289
1389
  }),
1290
- name: z16.string().optional(),
1291
- sectionId: z16.uuid().default(() => uuidv712()),
1292
- sections: z16.array(CABButtonContent).default(() => []),
1293
- sectionType: z16.literal(SectionType.button).default(SectionType.button)
1390
+ border: z19.lazy(() => CABBorder),
1391
+ direction: z19.enum(directions).default(Direction.rows),
1392
+ name: z19.string().optional(),
1393
+ padding: z19.enum(spacings).default(Spacing.none),
1394
+ sectionId: z19.uuid().default(() => uuidv712()),
1395
+ sections: z19.union([z19.array(z19.lazy(() => CABSection)), z19.strictObject({}).transform(() => [])]).default(() => []),
1396
+ sectionType: z19.literal(SectionType.layout).default(SectionType.layout),
1397
+ spacing: z19.enum(spacings).default(Spacing.base),
1398
+ width: z19.number().default(100)
1294
1399
  });
1295
1400
 
1296
- // src/schema/cab/root.ts
1297
- import { z as z17 } from "zod/v4";
1298
- var TargetArea = z17.object({
1299
- fill: z17.boolean().optional(),
1300
- flip: z17.enum(["both", "horizontal", "vertical"]).optional(),
1301
- icon: z17.string(),
1302
- label: z17.string(),
1303
- width: z17.string()
1401
+ // src/schema/widgets/checkoutAndBeyond/root.ts
1402
+ var TargetArea = z20.object({
1403
+ fill: z20.boolean().optional(),
1404
+ flip: z20.enum(["both", "horizontal", "vertical"]).optional(),
1405
+ icon: z20.string(),
1406
+ label: z20.string(),
1407
+ width: z20.string()
1304
1408
  }).default(targetAreas[EditorMode.checkoutExtension][1]);
1305
1409
  var CABRootSection = CABLayoutSection.extend(
1306
- z17.object({
1307
- editorMode: z17.enum(editorModes).default(EditorMode.checkoutExtension),
1308
- previewMode: z17.boolean().default(false),
1309
- storeId: z17.number().nullable().default(null),
1410
+ z20.object({
1411
+ editorMode: z20.enum(editorModes).default(EditorMode.checkoutExtension),
1412
+ previewMode: z20.boolean().default(false),
1413
+ storeId: z20.number().nullable().default(null),
1310
1414
  targetArea: TargetArea.nullable(),
1311
- type: z17.enum(widgetTypes).default(WidgetType.ui_extension_content_block),
1312
- version: z17.literal(2).default(2),
1313
- widgetId: z17.number().nullable().default(null)
1415
+ type: z20.enum(widgetTypes).default(WidgetType.ui_extension_content_block),
1416
+ version: z20.literal(2).default(2),
1417
+ widgetId: z20.number().nullable().default(null)
1314
1418
  }).shape
1315
1419
  );
1316
1420
 
1317
- // src/schema/shopConfig.ts
1318
- import { z as z18 } from "zod/v4";
1319
- var ShopConfig = z18.strictObject({
1320
- activeExperiments: z18.array(
1321
- z18.strictObject({
1322
- data: z18.array(
1323
- z18.strictObject({
1324
- aliasName: z18.string(),
1325
- cssInput: z18.string().nullish(),
1326
- elementId: z18.coerce.number(),
1327
- id: z18.coerce.number(),
1328
- javascriptInput: z18.string().nullish(),
1329
- traffic: z18.coerce.number()
1330
- })
1331
- ),
1332
- id: z18.coerce.number(),
1333
- name: z18.string(),
1334
- pageTarget: z18.string().nullable(),
1335
- pageTargetUrl: z18.string().nullable(),
1336
- placeholderId: z18.coerce.number().nullable(),
1337
- type: z18.string()
1338
- })
1339
- ),
1340
- activePackages: z18.array(
1341
- z18.strictObject({
1342
- cancelledAt: z18.string().nullable(),
1343
- id: z18.number(),
1344
- installedAt: z18.string().nullable(),
1345
- isActive: z18.boolean(),
1346
- isBillable: z18.boolean(),
1347
- packageId: z18.number(),
1348
- packageName: z18.string(),
1349
- shortName: z18.string(),
1350
- trialDays: z18.number(),
1351
- uninstalledAt: z18.string().nullable()
1352
- })
1353
- ),
1354
- apiKey: z18.string(),
1355
- billingVersion: z18.string(),
1356
- cacheKey: z18.coerce.number(),
1357
- carousel: z18.enum(["flickity", "splide"]),
1358
- currency: z18.string(),
1359
- currencySymbol: z18.string(),
1360
- domain: z18.string(),
1361
- enabledJquery: z18.boolean(),
1362
- enabledPresentmentCurrencies: z18.array(z18.string()),
1363
- hasSmartCollectionsEnabled: z18.boolean(),
1364
- hasSmartSearchEnabled: z18.boolean(),
1365
- id: z18.coerce.number(),
1366
- integrations: z18.record(
1367
- z18.enum([
1368
- "attentive",
1369
- "judgeme",
1370
- "junip",
1371
- "klaviyo",
1372
- "loox",
1373
- "okendo",
1374
- "opinew",
1375
- "recharge",
1376
- "reviewsio",
1377
- "stamped",
1378
- "yotpo"
1379
- ]),
1380
- z18.boolean()
1381
- ),
1382
- markets: z18.strictObject({
1383
- enabled: z18.boolean()
1421
+ // src/schema/widgets/checkoutExtension.ts
1422
+ import { z as z21 } from "zod/v4";
1423
+ var CheckoutExtension = z21.looseObject({
1424
+ type: z21.literal(WidgetType.shopify_checkout_extension).default(WidgetType.shopify_checkout_extension),
1425
+ version: z21.undefined()
1426
+ });
1427
+
1428
+ // src/schema/widgets/contentBlock.ts
1429
+ import { z as z22 } from "zod/v4";
1430
+ var ContentBlock = z22.object({
1431
+ blockSpacing: z22.enum(spacings),
1432
+ imageBlocks: z22.union([
1433
+ z22.array(
1434
+ z22.object({
1435
+ altText: z22.string().nullable(),
1436
+ description: z22.string().nullable(),
1437
+ id: z22.uuid(),
1438
+ imagePlacement: z22.enum(["top", "right", "bottom", "left"]),
1439
+ imageSize: z22.number(),
1440
+ imageUrl: z22.url(),
1441
+ textAlignment: z22.enum(["left", "center", "right"]),
1442
+ textSize: z22.enum(textSizeNames)
1443
+ })
1444
+ ),
1445
+ z22.strictObject({}).transform(() => [])
1446
+ ]),
1447
+ imageLayout: z22.enum(["row", "column"]),
1448
+ language: z22.object({
1449
+ description: z22.string(),
1450
+ superTitle: z22.string(),
1451
+ title: z22.string()
1384
1452
  }),
1385
- moneyFormat: z18.string(),
1386
- myshopifyDomain: z18.string(),
1387
- primaryLocale: z18.string(),
1388
- productGroupsEnabled: z18.enum(["no", "yes"]).transform((value) => value === "yes"),
1389
- rechargeCustomDomain: z18.string().nullable(),
1390
- sellingPlansEnabled: z18.boolean(),
1391
- shopId: z18.number(),
1392
- shopifySellingPlansEnabled: z18.boolean(),
1393
- shopName: z18.string(),
1394
- storefrontAccessToken: z18.string().nullable(),
1395
- useRebuyIcons: z18.boolean()
1453
+ previewMode: z22.boolean(),
1454
+ type: z22.literal(WidgetType.ui_extension_content_block).default(WidgetType.ui_extension_content_block),
1455
+ version: z22.literal(1)
1396
1456
  });
1397
1457
 
1398
- // src/schema/userConfig.ts
1399
- import { z as z19 } from "zod/v4";
1400
- var UserConfig = z19.strictObject({
1401
- shop: ShopConfig,
1402
- smartCart: z19.unknown(),
1403
- smartFlows: z19.array(z19.unknown())
1458
+ // src/schema/widgets/giftWithPurchase.ts
1459
+ import { z as z23 } from "zod/v4";
1460
+ var GiftWithPurchase = z23.looseObject({
1461
+ type: z23.literal(WidgetType.gift_with_purchase).default(WidgetType.gift_with_purchase),
1462
+ version: z23.undefined()
1404
1463
  });
1405
1464
 
1406
- // src/schema/widgetSettings.ts
1407
- import { z as z20 } from "zod/v4";
1408
- var LegacyV1Widget = z20.discriminatedUnion("type", [
1409
- z20.object({ type: z20.literal(WidgetType.gift_with_purchase), version: z20.literal(1) }),
1410
- z20.object({ type: z20.literal(WidgetType.shopify_checkout_extension), version: z20.literal(1) }),
1411
- z20.object({ type: z20.literal(WidgetType.ui_extension_ad), version: z20.literal(1) }),
1412
- z20.object({ type: z20.literal(WidgetType.ui_extension_button), version: z20.literal(1) }),
1413
- z20.object({ type: z20.literal(WidgetType.ui_extension_content_block), version: z20.literal(1) }),
1414
- z20.object({ type: z20.literal(WidgetType.ui_extension_line_item_editor), version: z20.literal(1) }),
1415
- z20.object({ type: z20.literal(WidgetType.ui_extension_progress_bar), version: z20.literal(1) })
1465
+ // src/schema/widgets/lineItemEditor.ts
1466
+ import { z as z24 } from "zod/v4";
1467
+ var LineItemEditor = z24.looseObject({
1468
+ type: z24.literal(WidgetType.ui_extension_line_item_editor).default(WidgetType.ui_extension_line_item_editor),
1469
+ version: z24.literal(1)
1470
+ });
1471
+
1472
+ // src/schema/widgets/progressBar.ts
1473
+ import { z as z25 } from "zod/v4";
1474
+ var ProgressBar = z25.looseObject({
1475
+ type: z25.literal(WidgetType.ui_extension_progress_bar).default(WidgetType.ui_extension_progress_bar),
1476
+ version: z25.literal(1)
1477
+ });
1478
+
1479
+ // src/schema/widgets/rebuyButton.ts
1480
+ import { z as z26 } from "zod/v4";
1481
+ var RebuyButton = z26.looseObject({
1482
+ type: z26.literal(WidgetType.ui_extension_button).default(WidgetType.ui_extension_button),
1483
+ version: z26.literal(1)
1484
+ });
1485
+
1486
+ // src/schema/widgets/rebuyMonetize.ts
1487
+ import { z as z27 } from "zod/v4";
1488
+ var RebuyMonetize = z27.looseObject({
1489
+ type: z27.literal(WidgetType.ui_extension_ad).default(WidgetType.ui_extension_ad),
1490
+ version: z27.literal(1)
1491
+ });
1492
+
1493
+ // src/schema/widgetData.ts
1494
+ var extensionWidgetTypes = [
1495
+ "placeholder",
1496
+ WidgetType.gift_with_purchase,
1497
+ WidgetType.shopify_checkout_extension,
1498
+ WidgetType.ui_extension_ad,
1499
+ WidgetType.ui_extension_button,
1500
+ WidgetType.ui_extension_content_block,
1501
+ WidgetType.ui_extension_line_item_editor,
1502
+ WidgetType.ui_extension_progress_bar
1503
+ ];
1504
+ var LegacyV0Widget = z28.discriminatedUnion("type", [ABTestingPlaceholder, CheckoutExtension, GiftWithPurchase]);
1505
+ var LegacyV1Widget = z28.discriminatedUnion("type", [
1506
+ ContentBlock,
1507
+ LineItemEditor,
1508
+ ProgressBar,
1509
+ RebuyButton,
1510
+ RebuyMonetize
1416
1511
  ]);
1417
- var WidgetSettings = z20.discriminatedUnion("version", [LegacyV1Widget, CABRootSection]);
1512
+ var WidgetData = z28.discriminatedUnion("version", [LegacyV0Widget, LegacyV1Widget, CABRootSection]);
1418
1513
  export {
1514
+ ABTestingPlaceholder,
1419
1515
  ARRAY_INDEX_STRING,
1420
1516
  Api,
1421
1517
  BorderRadius,
@@ -1442,21 +1538,29 @@ export {
1442
1538
  CABTextSection,
1443
1539
  CABVariantsSection,
1444
1540
  COMBINED_ENDPOINTS,
1541
+ CheckoutExtension,
1542
+ ContentBlock,
1445
1543
  DEFAULT_ENDPOINTS,
1446
1544
  DYNAMIC_TOKEN_REGEX,
1447
1545
  Direction,
1448
1546
  EditorMode,
1449
1547
  Geolocation,
1548
+ GiftWithPurchase,
1450
1549
  HEX_COLOR_REGEX,
1451
1550
  HTML_TAGS_REGEX,
1452
1551
  HorizontalAlignment,
1453
1552
  Identity,
1454
1553
  LanguageKey,
1554
+ LegacyV0Widget,
1455
1555
  LegacyV1Widget,
1556
+ LineItemEditor,
1456
1557
  NO_HTML,
1457
1558
  ObjectFit,
1559
+ ProgressBar,
1458
1560
  QuantityInput,
1561
+ RebuyButton,
1459
1562
  RebuyClient,
1563
+ RebuyMonetize,
1460
1564
  STATIC_ENDPOINTS,
1461
1565
  SectionType,
1462
1566
  Session,
@@ -1471,7 +1575,7 @@ export {
1471
1575
  UserConfig,
1472
1576
  VariantSelector,
1473
1577
  VerticalAlignment,
1474
- WidgetSettings,
1578
+ WidgetData,
1475
1579
  WidgetType,
1476
1580
  amountToCents,
1477
1581
  borderRadii,
@@ -1490,6 +1594,7 @@ export {
1490
1594
  directions,
1491
1595
  editorModes,
1492
1596
  enabled,
1597
+ extensionWidgetTypes,
1493
1598
  find,
1494
1599
  firstAvailableVariant,
1495
1600
  get,