yt-uikit 0.10.84 → 0.10.86

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 (164) hide show
  1. package/README.md +94 -94
  2. package/dist/esm/assets/confetti.d.ts +2 -2
  3. package/dist/esm/atoms/bundleBuilderProductDetailsAtom.d.ts +4 -4
  4. package/dist/esm/atoms/cartDataAtom.d.ts +3 -3
  5. package/dist/esm/atoms/cartLoadingAtom.d.ts +23 -23
  6. package/dist/esm/atoms/cartTimer.d.ts +2 -2
  7. package/dist/esm/atoms/dateAtom.d.ts +1 -1
  8. package/dist/esm/atoms/freebieClaimModalAtom.d.ts +7 -7
  9. package/dist/esm/atoms/giftWrap.d.ts +2 -2
  10. package/dist/esm/atoms/gstCompanyNameAtom.d.ts +1 -1
  11. package/dist/esm/atoms/gstInputAtom.d.ts +1 -1
  12. package/dist/esm/atoms/maxQtyErrorAtom.d.ts +3 -3
  13. package/dist/esm/atoms/multiClaimSelectionAtom.d.ts +28 -28
  14. package/dist/esm/atoms/noteInputAtom.d.ts +3 -3
  15. package/dist/esm/atoms/postalCodeAtom.d.ts +1 -1
  16. package/dist/esm/atoms/shippingAtom.d.ts +8 -8
  17. package/dist/esm/atoms/showGSTInputAtom.d.ts +1 -1
  18. package/dist/esm/atoms/variantSelectionModalAtom.d.ts +35 -35
  19. package/dist/esm/components/BundleBlock/Bundle.d.ts +477 -477
  20. package/dist/esm/components/BundleBlock/BundleBuilder/BundleBuilder.d.ts +52 -52
  21. package/dist/esm/components/BundleBlock/BundleBuilder/ResponsiveBgImage.d.ts +9 -9
  22. package/dist/esm/components/BundleBlock/BundleBuilder/SortAndFilter.d.ts +74 -74
  23. package/dist/esm/components/BundleBlock/BundleBuilder/VariantOptionsModal.d.ts +30 -30
  24. package/dist/esm/components/BundleBlock/BundleBuilder/bundleBuilder.style.d.ts +37 -37
  25. package/dist/esm/components/BundleBlock/BundleBuilderTracker/BundleBuilderTracker.d.ts +56 -56
  26. package/dist/esm/components/BundleBlock/BundleBuilderTracker/bundleBuilderTracker.style.d.ts +77 -77
  27. package/dist/esm/components/BundleBlock/BundleLoaderModal.d.ts +7 -7
  28. package/dist/esm/components/BundleBlock/BundleProductDetailsModal/BundleProductDetailsModal.d.ts +45 -45
  29. package/dist/esm/components/BundleBlock/BundleProductDetailsModal/ImageViewer.d.ts +18 -18
  30. package/dist/esm/components/BundleBlock/BundleProductDetailsModal/bundleProductDetailsModal.style.d.ts +10 -10
  31. package/dist/esm/components/BundleBlock/CartATCLoader.d.ts +12 -12
  32. package/dist/esm/components/BundleBlock/CollectionBundle/CategoryFilter.d.ts +10 -10
  33. package/dist/esm/components/BundleBlock/CollectionBundle/ColllectionBundle.d.ts +134 -134
  34. package/dist/esm/components/BundleBlock/CollectionBundle/ProductDetailsModal.d.ts +16 -16
  35. package/dist/esm/components/BundleBlock/ComboBundle.d.ts +17 -17
  36. package/dist/esm/components/BundleBlock/ErrorToast.d.ts +10 -10
  37. package/dist/esm/components/BundleBlock/FixedBundle/FixedBundle.d.ts +4 -4
  38. package/dist/esm/components/BundleBlock/FixedBundle/SeparateVariantOptions.d.ts +47 -47
  39. package/dist/esm/components/BundleBlock/FixedBundle/VariantSelectorModal.d.ts +23 -23
  40. package/dist/esm/components/BundleBlock/FixedBundle/fixedBundle.style.d.ts +81 -81
  41. package/dist/esm/components/BundleBlock/Loader.d.ts +5 -5
  42. package/dist/esm/components/BundleBlock/MixAndMatchBundle/MixAndMatchBundle.d.ts +9 -9
  43. package/dist/esm/components/BundleBlock/MixAndMatchBundle/mixAndMatchBundle.style.d.ts +86 -86
  44. package/dist/esm/components/BundleBlock/PersonalizationForm/PersonalizationForm.d.ts +35 -35
  45. package/dist/esm/components/BundleBlock/PersonalizationForm/PersonalizationFormModal.d.ts +24 -24
  46. package/dist/esm/components/BundleBlock/VolumeBundle/VolumeBundle.d.ts +27 -27
  47. package/dist/esm/components/BundleBlock/VolumeBundle/volumeBundle.style.d.ts +100 -100
  48. package/dist/esm/components/BundleBlock/index.d.ts +1 -1
  49. package/dist/esm/components/Cart/ApplyCoupon.d.ts +13 -13
  50. package/dist/esm/components/Cart/Bundle.d.ts +6 -6
  51. package/dist/esm/components/Cart/Cart.d.ts +272 -272
  52. package/dist/esm/components/Cart/CartDrawer.d.ts +34 -34
  53. package/dist/esm/components/Cart/CartOffersCarousel.d.ts +48 -48
  54. package/dist/esm/components/Cart/CartProductsList.d.ts +49 -49
  55. package/dist/esm/components/Cart/CartTimer.d.ts +8 -8
  56. package/dist/esm/components/Cart/CheckoutSection.d.ts +53 -53
  57. package/dist/esm/components/Cart/CouponSelection.d.ts +18 -18
  58. package/dist/esm/components/Cart/CustomVariantSwatches.d.ts +15 -0
  59. package/dist/esm/components/Cart/DatePicker.d.ts +10 -10
  60. package/dist/esm/components/Cart/EmptyCart.d.ts +34 -34
  61. package/dist/esm/components/Cart/FloatingCart.d.ts +24 -24
  62. package/dist/esm/components/Cart/FooterSections.d.ts +9 -9
  63. package/dist/esm/components/Cart/FreebieClaimManager.d.ts +18 -18
  64. package/dist/esm/components/Cart/FreebieClaimOverlay.d.ts +18 -18
  65. package/dist/esm/components/Cart/FreebieClaimOverlayCard.d.ts +13 -13
  66. package/dist/esm/components/Cart/FreebieClaimSection.d.ts +18 -18
  67. package/dist/esm/components/Cart/FreebieClaimSectionCard.d.ts +23 -23
  68. package/dist/esm/components/Cart/FreebieVariantDropdown.d.ts +11 -11
  69. package/dist/esm/components/Cart/GSTSection.d.ts +15 -15
  70. package/dist/esm/components/Cart/GiftWrap.d.ts +15 -15
  71. package/dist/esm/components/Cart/InlineCartOfferInfoText.d.ts +10 -10
  72. package/dist/esm/components/Cart/LoyaltyAppliedCTA.d.ts +14 -14
  73. package/dist/esm/components/Cart/LoyaltyApplyCTA.d.ts +15 -15
  74. package/dist/esm/components/Cart/LoyaltyBadge.d.ts +11 -11
  75. package/dist/esm/components/Cart/LoyaltyGuestCTA.d.ts +17 -17
  76. package/dist/esm/components/Cart/MultiStepProgressBar/CheckpointConfetti.d.ts +11 -11
  77. package/dist/esm/components/Cart/MultiStepProgressBar/CheckpointIcon.d.ts +3 -3
  78. package/dist/esm/components/Cart/MultiStepProgressBar/CheckpointTooltip.d.ts +3 -3
  79. package/dist/esm/components/Cart/MultiStepProgressBar/MultiStepIcon.d.ts +9 -9
  80. package/dist/esm/components/Cart/MultiStepProgressBar/MultiStepProgressBar.d.ts +5 -5
  81. package/dist/esm/components/Cart/MultiStepProgressBar/MultiStepProgressBar.styled.d.ts +45 -45
  82. package/dist/esm/components/Cart/MultiStepProgressBar/MultiStepUtils.d.ts +6 -6
  83. package/dist/esm/components/Cart/MultiStepProgressBar/MultiTierProgressBar.d.ts +4 -4
  84. package/dist/esm/components/Cart/MultiStepProgressBar/MutiTierNextRewardMessage.d.ts +3 -3
  85. package/dist/esm/components/Cart/MultiStepProgressBar/NextRewardMessage.d.ts +3 -3
  86. package/dist/esm/components/Cart/MultiStepProgressBar/SingleTierProgressBar.d.ts +4 -4
  87. package/dist/esm/components/Cart/MultiStepProgressBar/SingleTierProgressBar.styled.d.ts +22 -22
  88. package/dist/esm/components/Cart/MultiStepProgressBar/SingletTierNextRewardMessage.d.ts +3 -3
  89. package/dist/esm/components/Cart/MultiStepProgressBar/types.d.ts +55 -55
  90. package/dist/esm/components/Cart/NextFreebieRow.d.ts +21 -21
  91. package/dist/esm/components/Cart/NoteSection.d.ts +8 -8
  92. package/dist/esm/components/Cart/ProductCard.d.ts +32 -32
  93. package/dist/esm/components/Cart/ProductRecCard.d.ts +20 -20
  94. package/dist/esm/components/Cart/ProductRecList.d.ts +23 -23
  95. package/dist/esm/components/Cart/ProgressBarCartLoader.d.ts +7 -7
  96. package/dist/esm/components/Cart/QuantitySelector.d.ts +12 -12
  97. package/dist/esm/components/Cart/RegionSpecificDelivery.d.ts +17 -17
  98. package/dist/esm/components/Cart/RewardPointsPreview.d.ts +12 -12
  99. package/dist/esm/components/Cart/StandardDelivery.d.ts +11 -11
  100. package/dist/esm/components/Cart/StealDealSection.d.ts +16 -16
  101. package/dist/esm/components/Cart/StickyCart.d.ts +64 -64
  102. package/dist/esm/components/Cart/SubtotalSection.d.ts +13 -13
  103. package/dist/esm/components/Cart/UploadImageSection.d.ts +31 -31
  104. package/dist/esm/components/Cart/VariantSelectionPopup/DesktopVariantPopup.d.ts +20 -20
  105. package/dist/esm/components/Cart/VariantSelectionPopup/DesktopVariantPopup.styled.d.ts +60 -60
  106. package/dist/esm/components/Cart/VariantSelectionPopup/MobileVariantPopover.d.ts +20 -20
  107. package/dist/esm/components/Cart/index.d.ts +1 -1
  108. package/dist/esm/components/Loyalty/ActiveSessionOverlay.d.ts +8 -8
  109. package/dist/esm/components/Loyalty/BubbleLauncher.d.ts +14 -14
  110. package/dist/esm/components/Loyalty/GuestDesktop.d.ts +5 -5
  111. package/dist/esm/components/Loyalty/GuestDesktopWithoutImage.d.ts +7 -7
  112. package/dist/esm/components/Loyalty/GuestMobile.d.ts +6 -6
  113. package/dist/esm/components/Loyalty/Loader.d.ts +10 -10
  114. package/dist/esm/components/Loyalty/LoyaltyProductCatalog.d.ts +69 -69
  115. package/dist/esm/components/Loyalty/LoyaltyProfile.d.ts +6 -6
  116. package/dist/esm/components/Loyalty/LoyaltyWidget.d.ts +6 -6
  117. package/dist/esm/components/Loyalty/OTPComponent.d.ts +20 -20
  118. package/dist/esm/components/Loyalty/PointEarnBadge.d.ts +15 -15
  119. package/dist/esm/components/Loyalty/RecentTransactions.d.ts +8 -8
  120. package/dist/esm/components/Loyalty/RewardsModal.d.ts +13 -13
  121. package/dist/esm/components/Loyalty/RibbonLauncher.d.ts +12 -12
  122. package/dist/esm/components/Loyalty/StickyLauncher.d.ts +14 -14
  123. package/dist/esm/components/Loyalty/StickyTextLauncher.d.ts +2 -2
  124. package/dist/esm/components/Loyalty/Toast.d.ts +7 -7
  125. package/dist/esm/components/Loyalty/VIPTiersScreen.d.ts +11 -11
  126. package/dist/esm/components/Loyalty/WTRCoupon.d.ts +13 -13
  127. package/dist/esm/components/Loyalty/WaysToEarn.d.ts +33 -33
  128. package/dist/esm/components/Loyalty/WaysToRedeem.d.ts +109 -109
  129. package/dist/esm/components/Loyalty/index.d.ts +7 -7
  130. package/dist/esm/components/Loyalty/loyaltyLauncher.d.ts +19 -19
  131. package/dist/esm/components/Loyalty/styles/ActiveSession.styles.d.ts +3 -3
  132. package/dist/esm/components/Loyalty/styles/DobPopup.styles.d.ts +3 -3
  133. package/dist/esm/components/Loyalty/styles/PointEarnBadge.styles.d.ts +3 -3
  134. package/dist/esm/components/Loyalty/styles/RecentTransactions.styles.d.ts +6 -6
  135. package/dist/esm/components/Loyalty/styles/VIPTiers.styles.d.ts +4 -4
  136. package/dist/esm/components/Loyalty/styles/WaysToRedeem.styles.d.ts +5 -5
  137. package/dist/esm/components/Loyalty/styles/shared.styles.d.ts +3 -3
  138. package/dist/esm/components/Loyalty/styles.d.ts +23 -23
  139. package/dist/esm/components/Loyalty/types.d.ts +416 -416
  140. package/dist/esm/components/LoyaltyPageBlock/LoyaltyPageBlock.d.ts +228 -228
  141. package/dist/esm/components/Nudge/LeadGenerationNudge.d.ts +15 -15
  142. package/dist/esm/components/Nudge/Nudge.d.ts +40 -40
  143. package/dist/esm/components/Nudge/index.d.ts +1 -1
  144. package/dist/esm/components/ProductOffersBlock/ProductOffersCoupon.d.ts +12 -12
  145. package/dist/esm/components/ProductOffersBlock/ProductOffersList.d.ts +12 -12
  146. package/dist/esm/components/ProductOffersBlock/ProductOffersTermsMobilePopover.d.ts +10 -10
  147. package/dist/esm/components/ProductOffersBlock/ProductOffersTermsPopup.d.ts +10 -10
  148. package/dist/esm/components/ProductOffersBlock/ProductsOffers.d.ts +42 -42
  149. package/dist/esm/components/SpinnerWheel/SpinnerWheel.d.ts +23 -23
  150. package/dist/esm/components/SpinnerWheel/WheelSection.d.ts +9 -9
  151. package/dist/esm/components/SpinnerWheel/index.d.ts +1 -1
  152. package/dist/esm/components/index.d.ts +16 -16
  153. package/dist/esm/index.d.ts +1 -1
  154. package/dist/esm/index.js +535 -542
  155. package/dist/esm/utils/converter.d.ts +3 -3
  156. package/dist/esm/utils/customVariantOptions.d.ts +30 -21
  157. package/dist/esm/utils/freebieProductUtils.d.ts +40 -40
  158. package/dist/esm/utils/freebieUtils.d.ts +11 -11
  159. package/dist/esm/utils/index.d.ts +35 -24
  160. package/dist/esm/utils/safeguardDOM.d.ts +5 -5
  161. package/dist/esm/utils/shopifyAtcBridge.d.ts +43 -43
  162. package/dist/esm/utils/useMediaQuery.d.ts +1 -1
  163. package/package.json +98 -97
  164. /package/dist/esm/{confetti-f3502561.js → confetti-89678a6f.js} +0 -0
@@ -1,477 +1,477 @@
1
- import React from "react";
2
- import "./bundle.scss";
3
- import { FilterGroup } from "./BundleBuilder/SortAndFilter";
4
- interface ShopifyCurrency {
5
- rate: number;
6
- active: string;
7
- }
8
- declare global {
9
- interface Window {
10
- Shopify?: {
11
- currency?: ShopifyCurrency;
12
- shop?: string;
13
- };
14
- }
15
- }
16
- type ProductImage = {
17
- url: string;
18
- height: number;
19
- width: number;
20
- altText?: string;
21
- };
22
- type ProductFeaturedMedia = {
23
- alt: string;
24
- preview: {
25
- image: {
26
- url: string;
27
- height?: number;
28
- width?: number;
29
- altText: string;
30
- };
31
- };
32
- };
33
- type ProductOption = {
34
- id: string;
35
- name: string;
36
- values: string[];
37
- };
38
- type CollectionNode = {
39
- node: {
40
- id: string;
41
- title: string;
42
- handle: string;
43
- };
44
- };
45
- export type VariantNode = {
46
- node: {
47
- id: string;
48
- price: string;
49
- compareAtPrice: string;
50
- title: string;
51
- displayName: string;
52
- image: ProductImage;
53
- availableForSale: boolean;
54
- inventoryQuantity: number;
55
- inventoryItem?: {
56
- tracked?: boolean;
57
- };
58
- inventoryPolicy?: "deny" | "continue";
59
- };
60
- };
61
- type SelectedVariantDetails = {
62
- id: string;
63
- price: string;
64
- compareAtPrice: string;
65
- title: string;
66
- displayName: string;
67
- image: ProductImage;
68
- availableForSale: boolean;
69
- inventoryQuantity: number;
70
- };
71
- export type VariantOptions = {
72
- shop: string;
73
- options: {
74
- name: string;
75
- type: "text" | "image" | "color";
76
- values: {
77
- name: string;
78
- value: string;
79
- }[];
80
- }[];
81
- createdAt: string;
82
- updatedAt: string;
83
- };
84
- export type ProductDetails = {
85
- id: string;
86
- title: string;
87
- handle: string;
88
- featuredMedia: ProductFeaturedMedia;
89
- status: "active" | "archived" | "draft" | "unlisted" | "";
90
- options: ProductOption[];
91
- onlineStoreUrl: string;
92
- tracksInventory?: boolean;
93
- publishedAt?: string | null;
94
- collections: {
95
- edges: CollectionNode[];
96
- };
97
- variants: {
98
- edges: VariantNode[];
99
- };
100
- shop: string;
101
- metafield?: {
102
- key: string;
103
- namespace: string;
104
- ownerType: string;
105
- value: string;
106
- id: string;
107
- jsonValue: string[];
108
- type: string;
109
- };
110
- descriptionHtml: string;
111
- media: {
112
- edges: {
113
- node: {
114
- alt: string;
115
- preview: {
116
- image: {
117
- altText: string;
118
- width?: number;
119
- height?: number;
120
- url: string;
121
- };
122
- };
123
- image: {
124
- altText: string;
125
- height: number;
126
- width: number;
127
- url: string;
128
- };
129
- };
130
- }[];
131
- };
132
- selectedVariant?: SelectedVariantDetails;
133
- rating?: {
134
- averageRating: number;
135
- ratingCount: number;
136
- };
137
- };
138
- export type ProductData = {
139
- productId: string;
140
- variantIds: string[];
141
- productDetails: ProductDetails;
142
- quantity?: number;
143
- };
144
- type GeneralStyle = {
145
- primaryColor: string;
146
- primaryContrastColor: string;
147
- secondaryColor: string;
148
- secondaryContrastColor: string;
149
- imageAspectRatio: string;
150
- ctaBackgroundColor: string;
151
- ctaTextColor: string;
152
- ctaBorderColor: string;
153
- ctaShadowType: string;
154
- ctaPadding: string;
155
- ctaWidth: string;
156
- ctaBorderRadius: string;
157
- ctaHoverBackgroundColor: string;
158
- ctaHoverTextColor: string;
159
- customizeHoverState: boolean;
160
- checkoutPartner: string;
161
- /** @deprecated use productClickAction on each bundle style section */
162
- redirectToPDP?: boolean;
163
- restrictCOD: boolean;
164
- trackInventory: boolean;
165
- showOutOfStockProducts: boolean;
166
- showOutOfStockVariants?: boolean;
167
- outOfStockLabel: string;
168
- disabledButtonColor: string;
169
- storeCurrency: string;
170
- currencySymbol: string;
171
- discountPrefix: string;
172
- discountSuffix: string;
173
- addOrderTags: boolean;
174
- addOrderNotes: boolean;
175
- variantTitleSuffix: boolean;
176
- titleLength: string;
177
- showDecimalsInBundlePricing?: boolean;
178
- showPaymentIcons?: boolean;
179
- atcLoaderType?: "spinner" | "animated";
180
- };
181
- type VolumeStyle = {
182
- productClickAction?: InPageProductClickAction;
183
- addtoCartMethod: string;
184
- titleFontSize: string;
185
- subtitleFontSize: string;
186
- titleBackgroundColor: string;
187
- titleTextColor: string;
188
- verticalMargin: string;
189
- sectionBackgroundColor: string;
190
- cardStyle: string;
191
- discountBadgeVisibility: string;
192
- tierPriceType: "none" | "unit-price" | "tier-price";
193
- allowVariantSelection: string;
194
- variantSelectorType: string;
195
- ctaTitle: string;
196
- bundleRedirection: string;
197
- discountBadgeDisplay: string;
198
- discountDisplayType: string;
199
- freebieDisplayType?: "compact" | "detailed";
200
- showVariantOptionsLabel: boolean;
201
- };
202
- type ComboStyle = {
203
- productClickAction?: InPageProductClickAction;
204
- productTitleFontSize: string;
205
- productDescriptionFontSize: string;
206
- descriptionTextColor: string;
207
- titleTextColor: string;
208
- verticalMargin: string;
209
- infoAlignment: string;
210
- ctaTitle: string;
211
- bundleRedirection: string;
212
- embedContentVisibility: boolean;
213
- mixAndMatchCardStyle: string;
214
- mixAndMatchVariantTypeSelector: string;
215
- comboCardStyle: string;
216
- comboVariantTypeSelector: string;
217
- selectedEmbedContentVisibilityOptions: string[];
218
- subProductsSectionVisibility: boolean;
219
- subProductsImageVisibility: boolean;
220
- subProductsProductTitleVisibility: boolean;
221
- subProductsProductPriceVisibility: boolean;
222
- discountBadgeVisibility?: boolean;
223
- discountBadgeDisplay?: "discount-on-compare" | "discount-on-price";
224
- discountDisplayType?: "percentage" | "amount";
225
- comboProductRatingsDisplay?: string;
226
- mixAndMatchProductRatingsDisplay?: string;
227
- };
228
- type ByobStyle = {
229
- productClickAction?: ProductClickAction;
230
- titleFontSize: string;
231
- subtitleFontSize: string;
232
- titleBackgroundColor: string;
233
- titleTextColor: string;
234
- productTitleFontSize: string;
235
- showVariantTitleInCard: boolean;
236
- productVariantTitleType: "product-title" | "variant-title" | "variant-display-name";
237
- productTitleWrapLines: string;
238
- productCardDetailsAlignment: "left" | "center" | "right";
239
- sectionBackgroundColor: string;
240
- lazyLoadWidget: string;
241
- listingsGap: string;
242
- footerMargin: string;
243
- borderRadius: string;
244
- borderColor: string;
245
- cardBackgroundColor: string;
246
- shadowType: string;
247
- addToBundleCTAText: string;
248
- checkoutCTAText: string;
249
- variantSelectorType: string;
250
- primaryVariant: string;
251
- productsPriceVisibility: boolean;
252
- compareAtPriceVisibility: boolean;
253
- selectedProductsVisibility: boolean;
254
- bundleRedirection: string;
255
- enableConfetti: boolean;
256
- selectedItemVisibility: boolean;
257
- productTiersVisibility: boolean;
258
- tierNavigation: boolean;
259
- enableProductCategories: boolean;
260
- productCardCategoryVisibility: string;
261
- categoryFilterOnPage: string;
262
- productFiltersDisplay: "none" | "drawer" | "sidebar";
263
- filtersProvider: "based-on-products-data" | "search-and-discovery-app-sync";
264
- selectedFilterOptions: string[];
265
- productRatingsDisplay?: string;
266
- discountBadgeVisibility?: boolean;
267
- discountBadgeDisplay?: "discount-on-compare" | "discount-on-price";
268
- discountDisplayType?: string;
269
- fetchAllProductsAtOnce?: boolean;
270
- };
271
- type FixedStyle = {
272
- productClickAction?: InPageProductClickAction;
273
- titleFontSize: string;
274
- subtitleFontSize: string;
275
- titleBackgroundColor: string;
276
- titleTextColor: string;
277
- verticalMargin: string;
278
- sectionBackgroundColor: string;
279
- borderRadius: string;
280
- borderColor: string;
281
- cardBackgroundColor: string;
282
- shadowType: string;
283
- infoAlignment: string;
284
- ctaTitle: string;
285
- bundleRedirection: string;
286
- cardLayoutStyle: string;
287
- variantSelectorType: string;
288
- productsPriceVisibility: boolean;
289
- compareAtPriceVisibility: boolean;
290
- discountBadgeVisibility?: boolean;
291
- discountDisplayType?: string;
292
- discountBadgeDisplay?: "discount-on-compare" | "discount-on-price";
293
- productRatingsDisplay?: string;
294
- };
295
- /** What clicking a bundle product card does. */
296
- export type ProductClickAction = "none" | "details-modal" | "redirect-pdp";
297
- /** Product-page bundles render inside the PDP, so redirecting there is a no-op. */
298
- export type InPageProductClickAction = Exclude<ProductClickAction, "redirect-pdp">;
299
- export type Customizations = {
300
- shop?: string;
301
- general: GeneralStyle;
302
- byob: ByobStyle;
303
- fixedBundle: FixedStyle;
304
- volumeBundle: VolumeStyle;
305
- comboBundle: ComboStyle;
306
- createdAt?: string;
307
- updatedAt?: string;
308
- };
309
- export type ProductTier = {
310
- tier: number;
311
- title: string;
312
- minimumQuantity: number;
313
- isFixed?: boolean;
314
- isFreebieTier?: boolean;
315
- products: {
316
- productId: string;
317
- variantIds: string[];
318
- }[];
319
- };
320
- export type BundlePayload = {
321
- _id: string;
322
- showIndividualProductSelector: boolean;
323
- title?: string;
324
- subtitle?: string;
325
- products: ProductData[];
326
- freebieProducts?: ProductData[];
327
- percentageOff?: number;
328
- dealAmount?: number;
329
- amountOff?: number;
330
- type: "fixed" | "builder" | "volume" | "mixAndMatch" | "" | "combo" | "collection";
331
- minimumQuantity: number;
332
- maximumQuantity?: number | null;
333
- showProductDetailsInTracker: boolean;
334
- coverImageUrl?: string;
335
- mobileCoverImageUrl?: string;
336
- titleSectionTextColor?: string;
337
- titleSectionBackgroundColor?: string;
338
- dealTextColor?: string;
339
- showBorder?: boolean;
340
- hideProductDetails?: boolean;
341
- cornerRadiusType?: "medium" | "high" | "";
342
- primaryBackgroundColorCta?: string;
343
- enableProgressBar?: boolean;
344
- enableSortAndFilter?: boolean;
345
- selectedCategories?: string[];
346
- disableQuantitySelector?: boolean;
347
- disableInventoryTracking?: boolean;
348
- alignFixedBundleContent?: "left" | "right" | "center" | "";
349
- imageAspectType?: "portrait" | "square" | "";
350
- backgroundColorFixedBundleDiv?: string;
351
- canCustomizeFixedBundle?: boolean;
352
- primaryTextColorCta?: string;
353
- showVariants?: boolean;
354
- discountType?: string;
355
- showCta?: boolean;
356
- productCardBadgeText?: string;
357
- coverImageVerticalMargin?: string;
358
- builderTiers?: {
359
- type: string;
360
- offerTier?: {
361
- tier: number;
362
- minimumQuantity: number;
363
- discountValue: number;
364
- }[];
365
- productTier?: ProductTier[];
366
- };
367
- volumeTiers?: {
368
- isDefault: unknown;
369
- tier: number;
370
- minimumQuantity: number;
371
- title: string;
372
- subtitle: string;
373
- badgeTitle: string;
374
- discountValue: number;
375
- imageUrl?: string;
376
- freebieProductIds?: string[];
377
- }[];
378
- mixAndMatchTiers?: {
379
- tier: number;
380
- title: string;
381
- products: {
382
- productId: string;
383
- variantIds: string[];
384
- }[];
385
- }[];
386
- customizations: Customizations;
387
- variantOptions?: VariantOptions;
388
- storeCurrencyCode?: string;
389
- customStoreDetails?: {
390
- [key: string]: any;
391
- };
392
- customProductsQuantity?: number | null;
393
- reviewRatingType?: "none" | "ratingOnly" | "ratingAndReviewCount";
394
- appName?: string;
395
- workWithoutPagination?: boolean;
396
- pageHeader?: {
397
- title?: string;
398
- description?: string;
399
- customizePadding?: string;
400
- };
401
- personalizedForm?: {
402
- title?: string;
403
- sections?: {
404
- title: string;
405
- type: "text" | "image";
406
- fields: {
407
- title: string;
408
- }[];
409
- }[];
410
- };
411
- categoryFilters?: Record<number, FilterGroup | FilterGroup[]> | FilterGroup | FilterGroup[];
412
- };
413
- export type EventNameCustom = "byob_checkout_cta" | "byob_add_to_bundle" | "block_visibility" | "bundle_add_to_cart";
414
- export type EventTypeCustom = "clicks" | "views";
415
- export type AnalyticsEventParams = {
416
- eventNameCustom: EventNameCustom;
417
- eventTypeCustom: EventTypeCustom;
418
- data: any;
419
- };
420
- export type CursorData = Record<number, {
421
- cursor: string;
422
- hasNext: boolean;
423
- }>;
424
- export type BundleProps = {
425
- bundle: BundlePayload;
426
- addToCartFunction?: (selectedItemsSubtotal: number, variantIds?: string[], finalBundlePrice?: number, variantIdPriceMap?: {
427
- variantId: string;
428
- price: number;
429
- }[], properties?: Record<string, string>, freebieProduct?: string[], isCheckout?: boolean) => Promise<void>;
430
- addCustomBundleToCart?: (e: any, formProperties?: Record<string, any>) => Promise<void>;
431
- selectedItems?: {
432
- variantId: string;
433
- product: ProductDetails;
434
- quantity: number;
435
- }[];
436
- setSelectedItems?: React.Dispatch<React.SetStateAction<{
437
- variantId: string;
438
- product: ProductDetails;
439
- quantity: number;
440
- }[]>>;
441
- bundleAddToCartLoading?: boolean;
442
- handleRemoveItem?: (variantId: string) => void;
443
- selectedItemsQuantity?: number;
444
- renderingOnPage?: boolean;
445
- bundleSubtotal?: {
446
- price: number;
447
- compareAtPrice: number;
448
- };
449
- bundleHeaderBackgroundColor?: string;
450
- currentProductId?: string;
451
- dispatchAnalyticsEvent?: (params: AnalyticsEventParams) => void;
452
- fetchStoreDetails?: () => Promise<any>;
453
- productsPagination?: {
454
- initialCursorData: CursorData;
455
- cursorData: CursorData;
456
- fetchFn: (filters?: any, bundleTier?: number, cursor?: string | null) => Promise<ProductData[]>;
457
- setCursorData: (cursorData: CursorData) => void;
458
- };
459
- categoryFilters?: Record<number, FilterGroup | FilterGroup[]>;
460
- };
461
- export declare const currencyPrice: (price: number | string | undefined) => string | undefined;
462
- export declare const getCurrencySymbol: (genSymbol: string, _storeCurrencyCode?: string) => string;
463
- export declare const optimiseImage: (url: string, width?: number) => string;
464
- export declare const handleAddToBundle: (variantId: string, product: ProductDetails, quantity: number, selectedItems: {
465
- variantId: string;
466
- product: ProductDetails;
467
- quantity: number;
468
- tierIndex?: number | undefined;
469
- }[], setSelectedItems: React.Dispatch<React.SetStateAction<{
470
- variantId: string;
471
- product: ProductDetails;
472
- quantity: number;
473
- isFree?: boolean | undefined;
474
- tierIndex?: number | undefined;
475
- }[]>>, isFreebie?: boolean, tierIndex?: number) => void;
476
- declare const Bundle: React.FC<BundleProps>;
477
- export default Bundle;
1
+ import React from "react";
2
+ import "./bundle.scss";
3
+ import { FilterGroup } from "./BundleBuilder/SortAndFilter";
4
+ interface ShopifyCurrency {
5
+ rate: number;
6
+ active: string;
7
+ }
8
+ declare global {
9
+ interface Window {
10
+ Shopify?: {
11
+ currency?: ShopifyCurrency;
12
+ shop?: string;
13
+ };
14
+ }
15
+ }
16
+ type ProductImage = {
17
+ url: string;
18
+ height: number;
19
+ width: number;
20
+ altText?: string;
21
+ };
22
+ type ProductFeaturedMedia = {
23
+ alt: string;
24
+ preview: {
25
+ image: {
26
+ url: string;
27
+ height?: number;
28
+ width?: number;
29
+ altText: string;
30
+ };
31
+ };
32
+ };
33
+ type ProductOption = {
34
+ id: string;
35
+ name: string;
36
+ values: string[];
37
+ };
38
+ type CollectionNode = {
39
+ node: {
40
+ id: string;
41
+ title: string;
42
+ handle: string;
43
+ };
44
+ };
45
+ export type VariantNode = {
46
+ node: {
47
+ id: string;
48
+ price: string;
49
+ compareAtPrice: string;
50
+ title: string;
51
+ displayName: string;
52
+ image: ProductImage;
53
+ availableForSale: boolean;
54
+ inventoryQuantity: number;
55
+ inventoryItem?: {
56
+ tracked?: boolean;
57
+ };
58
+ inventoryPolicy?: "deny" | "continue";
59
+ };
60
+ };
61
+ type SelectedVariantDetails = {
62
+ id: string;
63
+ price: string;
64
+ compareAtPrice: string;
65
+ title: string;
66
+ displayName: string;
67
+ image: ProductImage;
68
+ availableForSale: boolean;
69
+ inventoryQuantity: number;
70
+ };
71
+ export type VariantOptions = {
72
+ shop: string;
73
+ options: {
74
+ name: string;
75
+ type: "text" | "image" | "color";
76
+ values: {
77
+ name: string;
78
+ value: string;
79
+ }[];
80
+ }[];
81
+ createdAt: string;
82
+ updatedAt: string;
83
+ };
84
+ export type ProductDetails = {
85
+ id: string;
86
+ title: string;
87
+ handle: string;
88
+ featuredMedia: ProductFeaturedMedia;
89
+ status: "active" | "archived" | "draft" | "unlisted" | "";
90
+ options: ProductOption[];
91
+ onlineStoreUrl: string;
92
+ tracksInventory?: boolean;
93
+ publishedAt?: string | null;
94
+ collections: {
95
+ edges: CollectionNode[];
96
+ };
97
+ variants: {
98
+ edges: VariantNode[];
99
+ };
100
+ shop: string;
101
+ metafield?: {
102
+ key: string;
103
+ namespace: string;
104
+ ownerType: string;
105
+ value: string;
106
+ id: string;
107
+ jsonValue: string[];
108
+ type: string;
109
+ };
110
+ descriptionHtml: string;
111
+ media: {
112
+ edges: {
113
+ node: {
114
+ alt: string;
115
+ preview: {
116
+ image: {
117
+ altText: string;
118
+ width?: number;
119
+ height?: number;
120
+ url: string;
121
+ };
122
+ };
123
+ image: {
124
+ altText: string;
125
+ height: number;
126
+ width: number;
127
+ url: string;
128
+ };
129
+ };
130
+ }[];
131
+ };
132
+ selectedVariant?: SelectedVariantDetails;
133
+ rating?: {
134
+ averageRating: number;
135
+ ratingCount: number;
136
+ };
137
+ };
138
+ export type ProductData = {
139
+ productId: string;
140
+ variantIds: string[];
141
+ productDetails: ProductDetails;
142
+ quantity?: number;
143
+ };
144
+ type GeneralStyle = {
145
+ primaryColor: string;
146
+ primaryContrastColor: string;
147
+ secondaryColor: string;
148
+ secondaryContrastColor: string;
149
+ imageAspectRatio: string;
150
+ ctaBackgroundColor: string;
151
+ ctaTextColor: string;
152
+ ctaBorderColor: string;
153
+ ctaShadowType: string;
154
+ ctaPadding: string;
155
+ ctaWidth: string;
156
+ ctaBorderRadius: string;
157
+ ctaHoverBackgroundColor: string;
158
+ ctaHoverTextColor: string;
159
+ customizeHoverState: boolean;
160
+ checkoutPartner: string;
161
+ /** @deprecated use productClickAction on each bundle style section */
162
+ redirectToPDP?: boolean;
163
+ restrictCOD: boolean;
164
+ trackInventory: boolean;
165
+ showOutOfStockProducts: boolean;
166
+ showOutOfStockVariants?: boolean;
167
+ outOfStockLabel: string;
168
+ disabledButtonColor: string;
169
+ storeCurrency: string;
170
+ currencySymbol: string;
171
+ discountPrefix: string;
172
+ discountSuffix: string;
173
+ addOrderTags: boolean;
174
+ addOrderNotes: boolean;
175
+ variantTitleSuffix: boolean;
176
+ titleLength: string;
177
+ showDecimalsInBundlePricing?: boolean;
178
+ showPaymentIcons?: boolean;
179
+ atcLoaderType?: "spinner" | "animated";
180
+ };
181
+ type VolumeStyle = {
182
+ productClickAction?: InPageProductClickAction;
183
+ addtoCartMethod: string;
184
+ titleFontSize: string;
185
+ subtitleFontSize: string;
186
+ titleBackgroundColor: string;
187
+ titleTextColor: string;
188
+ verticalMargin: string;
189
+ sectionBackgroundColor: string;
190
+ cardStyle: string;
191
+ discountBadgeVisibility: string;
192
+ tierPriceType: "none" | "unit-price" | "tier-price";
193
+ allowVariantSelection: string;
194
+ variantSelectorType: string;
195
+ ctaTitle: string;
196
+ bundleRedirection: string;
197
+ discountBadgeDisplay: string;
198
+ discountDisplayType: string;
199
+ freebieDisplayType?: "compact" | "detailed";
200
+ showVariantOptionsLabel: boolean;
201
+ };
202
+ type ComboStyle = {
203
+ productClickAction?: InPageProductClickAction;
204
+ productTitleFontSize: string;
205
+ productDescriptionFontSize: string;
206
+ descriptionTextColor: string;
207
+ titleTextColor: string;
208
+ verticalMargin: string;
209
+ infoAlignment: string;
210
+ ctaTitle: string;
211
+ bundleRedirection: string;
212
+ embedContentVisibility: boolean;
213
+ mixAndMatchCardStyle: string;
214
+ mixAndMatchVariantTypeSelector: string;
215
+ comboCardStyle: string;
216
+ comboVariantTypeSelector: string;
217
+ selectedEmbedContentVisibilityOptions: string[];
218
+ subProductsSectionVisibility: boolean;
219
+ subProductsImageVisibility: boolean;
220
+ subProductsProductTitleVisibility: boolean;
221
+ subProductsProductPriceVisibility: boolean;
222
+ discountBadgeVisibility?: boolean;
223
+ discountBadgeDisplay?: "discount-on-compare" | "discount-on-price";
224
+ discountDisplayType?: "percentage" | "amount";
225
+ comboProductRatingsDisplay?: string;
226
+ mixAndMatchProductRatingsDisplay?: string;
227
+ };
228
+ type ByobStyle = {
229
+ productClickAction?: ProductClickAction;
230
+ titleFontSize: string;
231
+ subtitleFontSize: string;
232
+ titleBackgroundColor: string;
233
+ titleTextColor: string;
234
+ productTitleFontSize: string;
235
+ showVariantTitleInCard: boolean;
236
+ productVariantTitleType: "product-title" | "variant-title" | "variant-display-name";
237
+ productTitleWrapLines: string;
238
+ productCardDetailsAlignment: "left" | "center" | "right";
239
+ sectionBackgroundColor: string;
240
+ lazyLoadWidget: string;
241
+ listingsGap: string;
242
+ footerMargin: string;
243
+ borderRadius: string;
244
+ borderColor: string;
245
+ cardBackgroundColor: string;
246
+ shadowType: string;
247
+ addToBundleCTAText: string;
248
+ checkoutCTAText: string;
249
+ variantSelectorType: string;
250
+ primaryVariant: string;
251
+ productsPriceVisibility: boolean;
252
+ compareAtPriceVisibility: boolean;
253
+ selectedProductsVisibility: boolean;
254
+ bundleRedirection: string;
255
+ enableConfetti: boolean;
256
+ selectedItemVisibility: boolean;
257
+ productTiersVisibility: boolean;
258
+ tierNavigation: boolean;
259
+ enableProductCategories: boolean;
260
+ productCardCategoryVisibility: string;
261
+ categoryFilterOnPage: string;
262
+ productFiltersDisplay: "none" | "drawer" | "sidebar";
263
+ filtersProvider: "based-on-products-data" | "search-and-discovery-app-sync";
264
+ selectedFilterOptions: string[];
265
+ productRatingsDisplay?: string;
266
+ discountBadgeVisibility?: boolean;
267
+ discountBadgeDisplay?: "discount-on-compare" | "discount-on-price";
268
+ discountDisplayType?: string;
269
+ fetchAllProductsAtOnce?: boolean;
270
+ };
271
+ type FixedStyle = {
272
+ productClickAction?: InPageProductClickAction;
273
+ titleFontSize: string;
274
+ subtitleFontSize: string;
275
+ titleBackgroundColor: string;
276
+ titleTextColor: string;
277
+ verticalMargin: string;
278
+ sectionBackgroundColor: string;
279
+ borderRadius: string;
280
+ borderColor: string;
281
+ cardBackgroundColor: string;
282
+ shadowType: string;
283
+ infoAlignment: string;
284
+ ctaTitle: string;
285
+ bundleRedirection: string;
286
+ cardLayoutStyle: string;
287
+ variantSelectorType: string;
288
+ productsPriceVisibility: boolean;
289
+ compareAtPriceVisibility: boolean;
290
+ discountBadgeVisibility?: boolean;
291
+ discountDisplayType?: string;
292
+ discountBadgeDisplay?: "discount-on-compare" | "discount-on-price";
293
+ productRatingsDisplay?: string;
294
+ };
295
+ /** What clicking a bundle product card does. */
296
+ export type ProductClickAction = "none" | "details-modal" | "redirect-pdp";
297
+ /** Product-page bundles render inside the PDP, so redirecting there is a no-op. */
298
+ export type InPageProductClickAction = Exclude<ProductClickAction, "redirect-pdp">;
299
+ export type Customizations = {
300
+ shop?: string;
301
+ general: GeneralStyle;
302
+ byob: ByobStyle;
303
+ fixedBundle: FixedStyle;
304
+ volumeBundle: VolumeStyle;
305
+ comboBundle: ComboStyle;
306
+ createdAt?: string;
307
+ updatedAt?: string;
308
+ };
309
+ export type ProductTier = {
310
+ tier: number;
311
+ title: string;
312
+ minimumQuantity: number;
313
+ isFixed?: boolean;
314
+ isFreebieTier?: boolean;
315
+ products: {
316
+ productId: string;
317
+ variantIds: string[];
318
+ }[];
319
+ };
320
+ export type BundlePayload = {
321
+ _id: string;
322
+ showIndividualProductSelector: boolean;
323
+ title?: string;
324
+ subtitle?: string;
325
+ products: ProductData[];
326
+ freebieProducts?: ProductData[];
327
+ percentageOff?: number;
328
+ dealAmount?: number;
329
+ amountOff?: number;
330
+ type: "fixed" | "builder" | "volume" | "mixAndMatch" | "" | "combo" | "collection";
331
+ minimumQuantity: number;
332
+ maximumQuantity?: number | null;
333
+ showProductDetailsInTracker: boolean;
334
+ coverImageUrl?: string;
335
+ mobileCoverImageUrl?: string;
336
+ titleSectionTextColor?: string;
337
+ titleSectionBackgroundColor?: string;
338
+ dealTextColor?: string;
339
+ showBorder?: boolean;
340
+ hideProductDetails?: boolean;
341
+ cornerRadiusType?: "medium" | "high" | "";
342
+ primaryBackgroundColorCta?: string;
343
+ enableProgressBar?: boolean;
344
+ enableSortAndFilter?: boolean;
345
+ selectedCategories?: string[];
346
+ disableQuantitySelector?: boolean;
347
+ disableInventoryTracking?: boolean;
348
+ alignFixedBundleContent?: "left" | "right" | "center" | "";
349
+ imageAspectType?: "portrait" | "square" | "";
350
+ backgroundColorFixedBundleDiv?: string;
351
+ canCustomizeFixedBundle?: boolean;
352
+ primaryTextColorCta?: string;
353
+ showVariants?: boolean;
354
+ discountType?: string;
355
+ showCta?: boolean;
356
+ productCardBadgeText?: string;
357
+ coverImageVerticalMargin?: string;
358
+ builderTiers?: {
359
+ type: string;
360
+ offerTier?: {
361
+ tier: number;
362
+ minimumQuantity: number;
363
+ discountValue: number;
364
+ }[];
365
+ productTier?: ProductTier[];
366
+ };
367
+ volumeTiers?: {
368
+ isDefault: unknown;
369
+ tier: number;
370
+ minimumQuantity: number;
371
+ title: string;
372
+ subtitle: string;
373
+ badgeTitle: string;
374
+ discountValue: number;
375
+ imageUrl?: string;
376
+ freebieProductIds?: string[];
377
+ }[];
378
+ mixAndMatchTiers?: {
379
+ tier: number;
380
+ title: string;
381
+ products: {
382
+ productId: string;
383
+ variantIds: string[];
384
+ }[];
385
+ }[];
386
+ customizations: Customizations;
387
+ variantOptions?: VariantOptions;
388
+ storeCurrencyCode?: string;
389
+ customStoreDetails?: {
390
+ [key: string]: any;
391
+ };
392
+ customProductsQuantity?: number | null;
393
+ reviewRatingType?: "none" | "ratingOnly" | "ratingAndReviewCount";
394
+ appName?: string;
395
+ workWithoutPagination?: boolean;
396
+ pageHeader?: {
397
+ title?: string;
398
+ description?: string;
399
+ customizePadding?: string;
400
+ };
401
+ personalizedForm?: {
402
+ title?: string;
403
+ sections?: {
404
+ title: string;
405
+ type: "text" | "image";
406
+ fields: {
407
+ title: string;
408
+ }[];
409
+ }[];
410
+ };
411
+ categoryFilters?: Record<number, FilterGroup | FilterGroup[]> | FilterGroup | FilterGroup[];
412
+ };
413
+ export type EventNameCustom = "byob_checkout_cta" | "byob_add_to_bundle" | "block_visibility" | "bundle_add_to_cart";
414
+ export type EventTypeCustom = "clicks" | "views";
415
+ export type AnalyticsEventParams = {
416
+ eventNameCustom: EventNameCustom;
417
+ eventTypeCustom: EventTypeCustom;
418
+ data: any;
419
+ };
420
+ export type CursorData = Record<number, {
421
+ cursor: string;
422
+ hasNext: boolean;
423
+ }>;
424
+ export type BundleProps = {
425
+ bundle: BundlePayload;
426
+ addToCartFunction?: (selectedItemsSubtotal: number, variantIds?: string[], finalBundlePrice?: number, variantIdPriceMap?: {
427
+ variantId: string;
428
+ price: number;
429
+ }[], properties?: Record<string, string>, freebieProduct?: string[], isCheckout?: boolean) => Promise<void>;
430
+ addCustomBundleToCart?: (e: any, formProperties?: Record<string, any>) => Promise<void>;
431
+ selectedItems?: {
432
+ variantId: string;
433
+ product: ProductDetails;
434
+ quantity: number;
435
+ }[];
436
+ setSelectedItems?: React.Dispatch<React.SetStateAction<{
437
+ variantId: string;
438
+ product: ProductDetails;
439
+ quantity: number;
440
+ }[]>>;
441
+ bundleAddToCartLoading?: boolean;
442
+ handleRemoveItem?: (variantId: string) => void;
443
+ selectedItemsQuantity?: number;
444
+ renderingOnPage?: boolean;
445
+ bundleSubtotal?: {
446
+ price: number;
447
+ compareAtPrice: number;
448
+ };
449
+ bundleHeaderBackgroundColor?: string;
450
+ currentProductId?: string;
451
+ dispatchAnalyticsEvent?: (params: AnalyticsEventParams) => void;
452
+ fetchStoreDetails?: () => Promise<any>;
453
+ productsPagination?: {
454
+ initialCursorData: CursorData;
455
+ cursorData: CursorData;
456
+ fetchFn: (filters?: any, bundleTier?: number, cursor?: string | null) => Promise<ProductData[]>;
457
+ setCursorData: (cursorData: CursorData) => void;
458
+ };
459
+ categoryFilters?: Record<number, FilterGroup | FilterGroup[]>;
460
+ };
461
+ export declare const currencyPrice: (price: number | string | undefined) => string | undefined;
462
+ export declare const getCurrencySymbol: (genSymbol: string, _storeCurrencyCode?: string) => string;
463
+ export declare const optimiseImage: (url: string, width?: number) => string;
464
+ export declare const handleAddToBundle: (variantId: string, product: ProductDetails, quantity: number, selectedItems: {
465
+ variantId: string;
466
+ product: ProductDetails;
467
+ quantity: number;
468
+ tierIndex?: number | undefined;
469
+ }[], setSelectedItems: React.Dispatch<React.SetStateAction<{
470
+ variantId: string;
471
+ product: ProductDetails;
472
+ quantity: number;
473
+ isFree?: boolean | undefined;
474
+ tierIndex?: number | undefined;
475
+ }[]>>, isFreebie?: boolean, tierIndex?: number) => void;
476
+ declare const Bundle: React.FC<BundleProps>;
477
+ export default Bundle;