@gem-sdk/core 1.50.2 → 1.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,6 +45,7 @@ const RenderPreview = ({ uid, ...passProps })=>{
45
45
  setting: item.settings,
46
46
  ...passProps,
47
47
  children: item.childrens.map((id)=>/*#__PURE__*/ jsxRuntime.jsx(RenderPreviewMemo, {
48
+ "bundle-item": passProps?.['bundle-item'],
48
49
  uid: id
49
50
  }, id))
50
51
  }) : /*#__PURE__*/ jsxRuntime.jsx(Component, {
@@ -51,7 +51,8 @@ const customRenderChildren = [
51
51
  ];
52
52
  const excludeApplyStyle = [
53
53
  'IconListV2',
54
- 'IconList'
54
+ 'IconList',
55
+ 'ProductBadge'
55
56
  ];
56
57
  const postPurchaseRequiredElements = [
57
58
  'PostPurchaseProductOffer',
@@ -10,7 +10,6 @@ const SectionContext = /*#__PURE__*/ react.createContext(null);
10
10
  const createSectionProvider = (data)=>zustand.createStore((set, get)=>({
11
11
  data: data ?? {},
12
12
  getSection: (id)=>{
13
- console.log('get().data', get().data);
14
13
  const section = get().data[id];
15
14
  return section ?? undefined;
16
15
  },
@@ -6,6 +6,7 @@
6
6
  title
7
7
  description
8
8
  descriptionHtml
9
+ createdAt
9
10
  handle
10
11
  averageRating
11
12
  isStorefront
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ const convertTextAlignToJustify = (align)=>{
4
+ const devices = [
5
+ 'desktop',
6
+ 'tablet',
7
+ 'mobile'
8
+ ];
9
+ const result = {};
10
+ devices.forEach((device)=>{
11
+ const deviceType = device === 'desktop' ? '' : `${device}:`;
12
+ result[`${deviceType}gp-justify-start`] = align?.[device] === 'left';
13
+ result[`${deviceType}gp-justify-center`] = align?.[device] === 'center';
14
+ result[`${deviceType}gp-justify-end`] = align?.[device] === 'right';
15
+ });
16
+ return result;
17
+ };
18
+
19
+ exports.convertTextAlignToJustify = convertTextAlignToJustify;
@@ -119,7 +119,7 @@ const getGlobalColorStateStyle = (type, data)=>{
119
119
  return Object.fromEntries(Object.entries(data).map(([state, value])=>{
120
120
  if (state === 'active') return [];
121
121
  return [
122
- `-${constant.stateMapping?.[state]}-${type}`,
122
+ `-${constant.stateMapping?.[state] || ''}-${type}`,
123
123
  getSingleColorVariable(value)
124
124
  ];
125
125
  }).filter(isDefined.isDefined));
@@ -27,7 +27,7 @@ const getStyleShadow = (shadowStyle, isActiveState = false)=>{
27
27
  if (typeof value.distance == 'undefined') return {};
28
28
  const { value: distance, unit: unitDistance } = parseValueWithUnit(`${value?.distance}`);
29
29
  return {
30
- [`-${!isActiveState ? constant.stateMapping?.[state] : ''}-${getShortname.getShortName(styleAppliedFor)}`]: isEnableShadow ? `${Math.cos(parseFloat(`${value?.angle}`) * Math.PI / 180) * parseFloat(`${distance}`)}${unitDistance} ${Math.sin(parseFloat(`${value?.angle}`) * Math.PI / 180) * parseFloat(`${distance}`)}${unitDistance} ${value?.blur} ${styleAppliedFor === 'box-shadow' ? value?.spread + ' ' : ''}${colors.getSingleColorVariable(value?.color)}` : 'none'
30
+ [`-${!isActiveState ? constant.stateMapping?.[state] || '' : ''}-${getShortname.getShortName(styleAppliedFor)}`]: isEnableShadow ? `${Math.cos(parseFloat(`${value?.angle}`) * Math.PI / 180) * parseFloat(`${distance}`)}${unitDistance} ${Math.sin(parseFloat(`${value?.angle}`) * Math.PI / 180) * parseFloat(`${distance}`)}${unitDistance} ${value?.blur} ${styleAppliedFor === 'box-shadow' ? value?.spread + ' ' : ''}${colors.getSingleColorVariable(value?.color)}` : 'none'
31
31
  };
32
32
  };
33
33
  const getStyleShadowState = (shadow, styleAppliedFor, isEnableShadow)=>{
@@ -78,11 +78,39 @@ const SimpleBundlesKitsConfig = {
78
78
  appId: 'e553276b-36b2-446d-b80a-aa47fe5f96ac'
79
79
  }
80
80
  };
81
+ const EasyBundleBuilderSkailamaConfig = {
82
+ EasyBundleBuilderSkailama: {
83
+ appName: 'easy-bundles',
84
+ appId: '05b1325c-6303-4da5-8e2f-b13ab2a50e1a'
85
+ }
86
+ };
87
+ const PreorderNowPreOrderPqConfig = {
88
+ PreorderNowPreOrderPq: {
89
+ appName: 'preorder-now-pre-order-pq',
90
+ appId: '551fab2c-3af6-4a8f-ba21-736a71cb4540'
91
+ }
92
+ };
93
+ const FlyBundlesUpsellsFbtConfig = {
94
+ FlyBundlesUpsellsFbt: {
95
+ appName: 'fly-bundles-upsell',
96
+ appId: '26807bdc-c2ed-4a25-afb2-06e6b1ebf843'
97
+ }
98
+ };
99
+ const JunipProductReviewsUgcConfig = {
100
+ JunipProductReviewsUgc: {
101
+ appName: 'junip-product-reviews-ugc',
102
+ appId: 'dc14f5a8-ed15-41b1-ad08-cfba23f9789b'
103
+ }
104
+ };
81
105
 
82
106
  exports.BonLoyaltyRewardsReferralsConfig = BonLoyaltyRewardsReferralsConfig;
107
+ exports.EasyBundleBuilderSkailamaConfig = EasyBundleBuilderSkailamaConfig;
83
108
  exports.FastBundleBundlesDiscountsConfig = FastBundleBundlesDiscountsConfig;
109
+ exports.FlyBundlesUpsellsFbtConfig = FlyBundlesUpsellsFbtConfig;
110
+ exports.JunipProductReviewsUgcConfig = JunipProductReviewsUgcConfig;
84
111
  exports.KiteFreeGiftDiscountConfig = KiteFreeGiftDiscountConfig;
85
112
  exports.LoopSubscriptionsConfig = LoopSubscriptionsConfig;
113
+ exports.PreorderNowPreOrderPqConfig = PreorderNowPreOrderPqConfig;
86
114
  exports.PumperBundlesVolumeDiscountConfig = PumperBundlesVolumeDiscountConfig;
87
115
  exports.RechargeSubscriptionsConfig = RechargeSubscriptionsConfig;
88
116
  exports.ReviewxpoProductReviewsAppConfig = ReviewxpoProductReviewsAppConfig;
@@ -81,6 +81,13 @@ const overrideSettings = (tag, currentSetting, appSetting)=>{
81
81
  ...currentSetting,
82
82
  form_id: appSetting['formId']
83
83
  };
84
+ case 'FlyBundlesUpsellsFbt':
85
+ {
86
+ return {
87
+ ...currentSetting,
88
+ bundle_id: appSetting?.['customBundleId']
89
+ };
90
+ }
84
91
  default:
85
92
  return currentSetting;
86
93
  }
@@ -129,7 +136,66 @@ const SimpleBundlesKits = {
129
136
  'infinite-options-selector': null
130
137
  }
131
138
  };
139
+ const EasyBundleBuilderSkailama = {
140
+ EasyBundleBuilderSkailama: {
141
+ 'app-block-bundlePage': null
142
+ }
143
+ };
144
+ const PreorderNowPreOrderPq = {
145
+ PreorderNowPreOrderPq: {
146
+ 'app-block-notifyapp-block-notify': null,
147
+ 'app-block-partial': null,
148
+ 'app-block-timer': null,
149
+ 'app-block': null
150
+ }
151
+ };
152
+ const FlyBundlesUpsellsFbt = {
153
+ FlyBundlesUpsellsFbt: {
154
+ 'app-block-volume': null,
155
+ 'app-block-upsell-block': null,
156
+ 'app-block-fbt': null,
157
+ 'app-block-custom': {
158
+ bundle_id: ''
159
+ }
160
+ }
161
+ };
162
+ const JunipProductReviewsUgc = {
163
+ JunipProductReviewsUgc: {
164
+ 'junip-review-carousel': {
165
+ reviewsType: 'product_reviews',
166
+ showSummary: true,
167
+ title: 'Reviews',
168
+ paddingTop: 48,
169
+ paddingBottom: 48,
170
+ containerClass: ''
171
+ },
172
+ 'junip-ugc-gallery': {
173
+ layout: 'scroll',
174
+ title: '',
175
+ paddingTop: 48,
176
+ paddingBottom: 48,
177
+ containerClass: ''
178
+ },
179
+ 'junip-product-review': {
180
+ product: '{{product}}'
181
+ },
182
+ 'junip-product-summary': {
183
+ product: '{{product}}'
184
+ },
185
+ 'junip-reviews': {
186
+ layout: 'list',
187
+ reviewsType: 'all',
188
+ showSummary: true,
189
+ reviewsCount: 10,
190
+ containerClass: ''
191
+ }
192
+ }
193
+ };
132
194
  const composeSettingsByWidgetType = {
195
+ ...JunipProductReviewsUgc,
196
+ ...FlyBundlesUpsellsFbt,
197
+ ...PreorderNowPreOrderPq,
198
+ ...EasyBundleBuilderSkailama,
133
199
  ...FastBundleBundlesDiscounts,
134
200
  ...KiteFreeGiftDiscount,
135
201
  ...UnlimitedBundlesDiscounts,
@@ -15,7 +15,11 @@ const mapShopifyAppMeta = {
15
15
  ...appConfig.UnlimitedBundlesDiscountsConfig,
16
16
  ...appConfig.KiteFreeGiftDiscountConfig,
17
17
  ...appConfig.FastBundleBundlesDiscountsConfig,
18
- ...appConfig.SimpleBundlesKitsConfig
18
+ ...appConfig.SimpleBundlesKitsConfig,
19
+ ...appConfig.EasyBundleBuilderSkailamaConfig,
20
+ ...appConfig.PreorderNowPreOrderPqConfig,
21
+ ...appConfig.FlyBundlesUpsellsFbtConfig,
22
+ ...appConfig.JunipProductReviewsUgcConfig
19
23
  };
20
24
  const THIRD_PARTY_APP_BLOCK_ID_PREFIX = 'gp_app';
21
25
 
@@ -118,7 +118,7 @@ const composeTypographyAttr = (attrs)=>{
118
118
  });
119
119
  };
120
120
  const composeTypographyClassName = (typo, typography)=>{
121
- return typo ? typo?.type && !typo.custom ? genTypoClass(typo.type) : '' : typography?.type && genTypoClass(typography?.type);
121
+ return typo ? typo?.type && !isCustomTypo(typo.custom) ? genTypoClass(typo.type) : '' : typography?.type && genTypoClass(typography?.type);
122
122
  };
123
123
  const composeFallbackTypographyStyle = (tag)=>{
124
124
  if (tag.toLocaleLowerCase().includes('heading')) {
@@ -132,7 +132,7 @@ const composeTypographyStyle = (typo, typography, disableAttr)=>{
132
132
  const customTypo = {
133
133
  ...typo.custom,
134
134
  fallbackFontFamily: fallbackFontFamily,
135
- isCustom: !!typo.custom
135
+ isCustom: isCustomTypo(typo.custom)
136
136
  };
137
137
  return {
138
138
  ...composeTypographyV2(customTypo, typo.attrs),
@@ -143,6 +143,9 @@ const composeTypographyStyle = (typo, typography, disableAttr)=>{
143
143
  ...!typography?.type ? composeTypography(typography?.custom) : {}
144
144
  };
145
145
  };
146
+ const isCustomTypo = (customTypo)=>{
147
+ return customTypo && Object.keys(customTypo).length > 1 || customTypo && Object.keys(customTypo).length === 1 && !customTypo.fontSize;
148
+ };
146
149
 
147
150
  exports.composeFallbackTypographyStyle = composeFallbackTypographyStyle;
148
151
  exports.composeFontFamilyTypographyV2 = composeFontFamilyTypographyV2;
@@ -5,70 +5,71 @@ var shop = require('./shop.js');
5
5
  const shopifyPriceRounding = (amount, precision)=>{
6
6
  return parseFloat(`${amount}`).toFixed(Number(precision) + 1).slice(0, -1);
7
7
  };
8
+ const formatMoney = function(cents, format) {
9
+ let value = '';
10
+ const placeholderRegex = /\{\{\s*(\w+)\s*\}\}/;
11
+ const formatString = format || '${{amount}}';
12
+ /**
13
+ * check default
14
+ * @param opt opt
15
+ * @param def def
16
+ * @returns any
17
+ */ function defaultOption(opt, def) {
18
+ return typeof opt == 'undefined' ? def : opt;
19
+ }
20
+ /**
21
+ * formatWithDelimiters
22
+ * @param number number
23
+ * @param precision precision
24
+ * @param thousands thousands
25
+ * @param decimal decimal
26
+ * @returns any
27
+ */ // eslint-disable-next-line max-params
28
+ function formatWithDelimiters(number, precision, thousands, decimal) {
29
+ precision = defaultOption(precision, 2);
30
+ thousands = defaultOption(thousands, ',');
31
+ decimal = defaultOption(decimal, '.');
32
+ if (isNaN(number) || number == null) {
33
+ return 0;
34
+ }
35
+ // shopify làm tròn bằng cách cắt đi các số ở đằng sau chứ không sử dụng toFixed để làm tròn như toán học
36
+ number = shopifyPriceRounding(number, Number(precision));
37
+ const parts = number.split('.'), dollars = parts[0]?.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1' + thousands), cents = parts[1] ? decimal + parts[1] : '';
38
+ return dollars + cents;
39
+ }
40
+ switch(formatString.match(placeholderRegex)[1]){
41
+ case 'amount':
42
+ value = formatWithDelimiters(cents, 2);
43
+ break;
44
+ case 'amount_no_decimals':
45
+ value = formatWithDelimiters(cents, 0);
46
+ break;
47
+ case 'amount_with_comma_separator':
48
+ value = formatWithDelimiters(cents, 2, '.', ',');
49
+ break;
50
+ case 'amount_no_decimals_with_comma_separator':
51
+ value = formatWithDelimiters(cents, 0, '.', ',');
52
+ break;
53
+ case 'amount_with_apostrophe_separator':
54
+ value = formatWithDelimiters(cents, 2, "'", '.');
55
+ break;
56
+ case 'amount_no_decimals_with_space_separator':
57
+ value = formatWithDelimiters(cents, 0, ' ');
58
+ break;
59
+ case 'amount_with_space_separator':
60
+ value = formatWithDelimiters(cents, 2, ' ', ',');
61
+ break;
62
+ case 'amount_with_period_and_space_separator':
63
+ value = formatWithDelimiters(cents, 2, ' ', '.');
64
+ break;
65
+ }
66
+ return formatString.replace(placeholderRegex, value);
67
+ };
8
68
  const useFormatMoney = (amount, withCurrency)=>{
9
69
  const { moneyFormat, moneyWithCurrencyFormat } = shop.useMoneyFormat();
10
- const formatMoney = function(cents, format) {
11
- let value = '';
12
- const placeholderRegex = /\{\{\s*(\w+)\s*\}\}/;
13
- const formatString = format || '${{amount}}';
14
- /**
15
- * check default
16
- * @param opt opt
17
- * @param def def
18
- * @returns any
19
- */ function defaultOption(opt, def) {
20
- return typeof opt == 'undefined' ? def : opt;
21
- }
22
- /**
23
- * formatWithDelimiters
24
- * @param number number
25
- * @param precision precision
26
- * @param thousands thousands
27
- * @param decimal decimal
28
- * @returns any
29
- */ // eslint-disable-next-line max-params
30
- function formatWithDelimiters(number, precision, thousands, decimal) {
31
- precision = defaultOption(precision, 2);
32
- thousands = defaultOption(thousands, ',');
33
- decimal = defaultOption(decimal, '.');
34
- if (isNaN(number) || number == null) {
35
- return 0;
36
- }
37
- // shopify làm tròn bằng cách cắt đi các số ở đằng sau chứ không sử dụng toFixed để làm tròn như toán học
38
- number = shopifyPriceRounding(number, Number(precision));
39
- const parts = number.split('.'), dollars = parts[0]?.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1' + thousands), cents = parts[1] ? decimal + parts[1] : '';
40
- return dollars + cents;
41
- }
42
- switch(formatString.match(placeholderRegex)[1]){
43
- case 'amount':
44
- value = formatWithDelimiters(cents, 2);
45
- break;
46
- case 'amount_no_decimals':
47
- value = formatWithDelimiters(cents, 0);
48
- break;
49
- case 'amount_with_comma_separator':
50
- value = formatWithDelimiters(cents, 2, '.', ',');
51
- break;
52
- case 'amount_no_decimals_with_comma_separator':
53
- value = formatWithDelimiters(cents, 0, '.', ',');
54
- break;
55
- case 'amount_with_apostrophe_separator':
56
- value = formatWithDelimiters(cents, 2, "'", '.');
57
- break;
58
- case 'amount_no_decimals_with_space_separator':
59
- value = formatWithDelimiters(cents, 0, ' ');
60
- break;
61
- case 'amount_with_space_separator':
62
- value = formatWithDelimiters(cents, 2, ' ', ',');
63
- break;
64
- case 'amount_with_period_and_space_separator':
65
- value = formatWithDelimiters(cents, 2, ' ', '.');
66
- break;
67
- }
68
- return formatString.replace(placeholderRegex, value);
69
- };
70
70
  return withCurrency ? formatMoney(`${amount}`, moneyWithCurrencyFormat || moneyFormat) : formatMoney(`${amount}`, moneyFormat);
71
71
  };
72
72
 
73
+ exports.formatMoney = formatMoney;
73
74
  exports.shopifyPriceRounding = shopifyPriceRounding;
74
75
  exports.useFormatMoney = useFormatMoney;
package/dist/cjs/index.js CHANGED
@@ -60,6 +60,7 @@ var iconList = require('./helpers/icon-list.js');
60
60
  var isDefined = require('./helpers/is-defined.js');
61
61
  var layout = require('./helpers/layout.js');
62
62
  var makeStyle = require('./helpers/make-style.js');
63
+ var align = require('./helpers/align.js');
63
64
  var product = require('./helpers/product.js');
64
65
  var query = require('./helpers/query.js');
65
66
  var radius = require('./helpers/radius.js');
@@ -243,6 +244,7 @@ exports.makeStyleResponsiveState = makeStyle.makeStyleResponsiveState;
243
244
  exports.makeStyleState = makeStyle.makeStyleState;
244
245
  exports.makeWidth = makeStyle.makeWidth;
245
246
  exports.removeNullUndefined = makeStyle.removeNullUndefined;
247
+ exports.convertTextAlignToJustify = align.convertTextAlignToJustify;
246
248
  exports.checkAvailableVariantInStock = product.checkAvailableVariantInStock;
247
249
  exports.getSelectedVariant = product.getSelectedVariant;
248
250
  exports.parseSelectedOption = product.parseSelectedOption;
@@ -317,6 +319,7 @@ exports.useProductQuery = useProductQuery.useProductQuery;
317
319
  exports.useProductsQuery = useProductsQuery.useProductsQuery;
318
320
  exports.useProductsQueryAll = useProductsQuery.useProductsQueryAll;
319
321
  exports.useCurrentDevice = useCurrentDevice.useCurrentDevice;
322
+ exports.formatMoney = useFormatMoney.formatMoney;
320
323
  exports.shopifyPriceRounding = useFormatMoney.shopifyPriceRounding;
321
324
  exports.useFormatMoney = useFormatMoney.useFormatMoney;
322
325
  exports.useLazyVideo = useLazyVideo.useLazyVideo;
@@ -41,6 +41,7 @@ const RenderPreview = ({ uid, ...passProps })=>{
41
41
  setting: item.settings,
42
42
  ...passProps,
43
43
  children: item.childrens.map((id)=>/*#__PURE__*/ jsx(RenderPreviewMemo, {
44
+ "bundle-item": passProps?.['bundle-item'],
44
45
  uid: id
45
46
  }, id))
46
47
  }) : /*#__PURE__*/ jsx(Component, {
@@ -49,7 +49,8 @@ const customRenderChildren = [
49
49
  ];
50
50
  const excludeApplyStyle = [
51
51
  'IconListV2',
52
- 'IconList'
52
+ 'IconList',
53
+ 'ProductBadge'
53
54
  ];
54
55
  const postPurchaseRequiredElements = [
55
56
  'PostPurchaseProductOffer',
@@ -8,7 +8,6 @@ const SectionContext = /*#__PURE__*/ createContext(null);
8
8
  const createSectionProvider = (data)=>createStore((set, get)=>({
9
9
  data: data ?? {},
10
10
  getSection: (id)=>{
11
- console.log('get().data', get().data);
12
11
  const section = get().data[id];
13
12
  return section ?? undefined;
14
13
  },
@@ -4,6 +4,7 @@
4
4
  title
5
5
  description
6
6
  descriptionHtml
7
+ createdAt
7
8
  handle
8
9
  averageRating
9
10
  isStorefront
@@ -0,0 +1,17 @@
1
+ const convertTextAlignToJustify = (align)=>{
2
+ const devices = [
3
+ 'desktop',
4
+ 'tablet',
5
+ 'mobile'
6
+ ];
7
+ const result = {};
8
+ devices.forEach((device)=>{
9
+ const deviceType = device === 'desktop' ? '' : `${device}:`;
10
+ result[`${deviceType}gp-justify-start`] = align?.[device] === 'left';
11
+ result[`${deviceType}gp-justify-center`] = align?.[device] === 'center';
12
+ result[`${deviceType}gp-justify-end`] = align?.[device] === 'right';
13
+ });
14
+ return result;
15
+ };
16
+
17
+ export { convertTextAlignToJustify };
@@ -117,7 +117,7 @@ const getGlobalColorStateStyle = (type, data)=>{
117
117
  return Object.fromEntries(Object.entries(data).map(([state, value])=>{
118
118
  if (state === 'active') return [];
119
119
  return [
120
- `-${stateMapping?.[state]}-${type}`,
120
+ `-${stateMapping?.[state] || ''}-${type}`,
121
121
  getSingleColorVariable(value)
122
122
  ];
123
123
  }).filter(isDefined));
@@ -25,7 +25,7 @@ const getStyleShadow = (shadowStyle, isActiveState = false)=>{
25
25
  if (typeof value.distance == 'undefined') return {};
26
26
  const { value: distance, unit: unitDistance } = parseValueWithUnit(`${value?.distance}`);
27
27
  return {
28
- [`-${!isActiveState ? stateMapping?.[state] : ''}-${getShortName(styleAppliedFor)}`]: isEnableShadow ? `${Math.cos(parseFloat(`${value?.angle}`) * Math.PI / 180) * parseFloat(`${distance}`)}${unitDistance} ${Math.sin(parseFloat(`${value?.angle}`) * Math.PI / 180) * parseFloat(`${distance}`)}${unitDistance} ${value?.blur} ${styleAppliedFor === 'box-shadow' ? value?.spread + ' ' : ''}${getSingleColorVariable(value?.color)}` : 'none'
28
+ [`-${!isActiveState ? stateMapping?.[state] || '' : ''}-${getShortName(styleAppliedFor)}`]: isEnableShadow ? `${Math.cos(parseFloat(`${value?.angle}`) * Math.PI / 180) * parseFloat(`${distance}`)}${unitDistance} ${Math.sin(parseFloat(`${value?.angle}`) * Math.PI / 180) * parseFloat(`${distance}`)}${unitDistance} ${value?.blur} ${styleAppliedFor === 'box-shadow' ? value?.spread + ' ' : ''}${getSingleColorVariable(value?.color)}` : 'none'
29
29
  };
30
30
  };
31
31
  const getStyleShadowState = (shadow, styleAppliedFor, isEnableShadow)=>{
@@ -76,5 +76,29 @@ const SimpleBundlesKitsConfig = {
76
76
  appId: 'e553276b-36b2-446d-b80a-aa47fe5f96ac'
77
77
  }
78
78
  };
79
+ const EasyBundleBuilderSkailamaConfig = {
80
+ EasyBundleBuilderSkailama: {
81
+ appName: 'easy-bundles',
82
+ appId: '05b1325c-6303-4da5-8e2f-b13ab2a50e1a'
83
+ }
84
+ };
85
+ const PreorderNowPreOrderPqConfig = {
86
+ PreorderNowPreOrderPq: {
87
+ appName: 'preorder-now-pre-order-pq',
88
+ appId: '551fab2c-3af6-4a8f-ba21-736a71cb4540'
89
+ }
90
+ };
91
+ const FlyBundlesUpsellsFbtConfig = {
92
+ FlyBundlesUpsellsFbt: {
93
+ appName: 'fly-bundles-upsell',
94
+ appId: '26807bdc-c2ed-4a25-afb2-06e6b1ebf843'
95
+ }
96
+ };
97
+ const JunipProductReviewsUgcConfig = {
98
+ JunipProductReviewsUgc: {
99
+ appName: 'junip-product-reviews-ugc',
100
+ appId: 'dc14f5a8-ed15-41b1-ad08-cfba23f9789b'
101
+ }
102
+ };
79
103
 
80
- export { BonLoyaltyRewardsReferralsConfig, FastBundleBundlesDiscountsConfig, KiteFreeGiftDiscountConfig, LoopSubscriptionsConfig, PumperBundlesVolumeDiscountConfig, RechargeSubscriptionsConfig, ReviewxpoProductReviewsAppConfig, SelleasyConfig, ShopifyFormsConfig, SimpleBundlesKitsConfig, SkioSubscriptionsYcS20Config, SubifySubscriptionsConfig, UnlimitedBundlesDiscountsConfig };
104
+ export { BonLoyaltyRewardsReferralsConfig, EasyBundleBuilderSkailamaConfig, FastBundleBundlesDiscountsConfig, FlyBundlesUpsellsFbtConfig, JunipProductReviewsUgcConfig, KiteFreeGiftDiscountConfig, LoopSubscriptionsConfig, PreorderNowPreOrderPqConfig, PumperBundlesVolumeDiscountConfig, RechargeSubscriptionsConfig, ReviewxpoProductReviewsAppConfig, SelleasyConfig, ShopifyFormsConfig, SimpleBundlesKitsConfig, SkioSubscriptionsYcS20Config, SubifySubscriptionsConfig, UnlimitedBundlesDiscountsConfig };
@@ -79,6 +79,13 @@ const overrideSettings = (tag, currentSetting, appSetting)=>{
79
79
  ...currentSetting,
80
80
  form_id: appSetting['formId']
81
81
  };
82
+ case 'FlyBundlesUpsellsFbt':
83
+ {
84
+ return {
85
+ ...currentSetting,
86
+ bundle_id: appSetting?.['customBundleId']
87
+ };
88
+ }
82
89
  default:
83
90
  return currentSetting;
84
91
  }
@@ -127,7 +134,66 @@ const SimpleBundlesKits = {
127
134
  'infinite-options-selector': null
128
135
  }
129
136
  };
137
+ const EasyBundleBuilderSkailama = {
138
+ EasyBundleBuilderSkailama: {
139
+ 'app-block-bundlePage': null
140
+ }
141
+ };
142
+ const PreorderNowPreOrderPq = {
143
+ PreorderNowPreOrderPq: {
144
+ 'app-block-notifyapp-block-notify': null,
145
+ 'app-block-partial': null,
146
+ 'app-block-timer': null,
147
+ 'app-block': null
148
+ }
149
+ };
150
+ const FlyBundlesUpsellsFbt = {
151
+ FlyBundlesUpsellsFbt: {
152
+ 'app-block-volume': null,
153
+ 'app-block-upsell-block': null,
154
+ 'app-block-fbt': null,
155
+ 'app-block-custom': {
156
+ bundle_id: ''
157
+ }
158
+ }
159
+ };
160
+ const JunipProductReviewsUgc = {
161
+ JunipProductReviewsUgc: {
162
+ 'junip-review-carousel': {
163
+ reviewsType: 'product_reviews',
164
+ showSummary: true,
165
+ title: 'Reviews',
166
+ paddingTop: 48,
167
+ paddingBottom: 48,
168
+ containerClass: ''
169
+ },
170
+ 'junip-ugc-gallery': {
171
+ layout: 'scroll',
172
+ title: '',
173
+ paddingTop: 48,
174
+ paddingBottom: 48,
175
+ containerClass: ''
176
+ },
177
+ 'junip-product-review': {
178
+ product: '{{product}}'
179
+ },
180
+ 'junip-product-summary': {
181
+ product: '{{product}}'
182
+ },
183
+ 'junip-reviews': {
184
+ layout: 'list',
185
+ reviewsType: 'all',
186
+ showSummary: true,
187
+ reviewsCount: 10,
188
+ containerClass: ''
189
+ }
190
+ }
191
+ };
130
192
  const composeSettingsByWidgetType = {
193
+ ...JunipProductReviewsUgc,
194
+ ...FlyBundlesUpsellsFbt,
195
+ ...PreorderNowPreOrderPq,
196
+ ...EasyBundleBuilderSkailama,
131
197
  ...FastBundleBundlesDiscounts,
132
198
  ...KiteFreeGiftDiscount,
133
199
  ...UnlimitedBundlesDiscounts,
@@ -1,4 +1,4 @@
1
- import { RechargeSubscriptionsConfig, BonLoyaltyRewardsReferralsConfig, SubifySubscriptionsConfig, SelleasyConfig, LoopSubscriptionsConfig, SkioSubscriptionsYcS20Config, ShopifyFormsConfig, ReviewxpoProductReviewsAppConfig, PumperBundlesVolumeDiscountConfig, UnlimitedBundlesDiscountsConfig, KiteFreeGiftDiscountConfig, FastBundleBundlesDiscountsConfig, SimpleBundlesKitsConfig } from './appConfig.js';
1
+ import { RechargeSubscriptionsConfig, BonLoyaltyRewardsReferralsConfig, SubifySubscriptionsConfig, SelleasyConfig, LoopSubscriptionsConfig, SkioSubscriptionsYcS20Config, ShopifyFormsConfig, ReviewxpoProductReviewsAppConfig, PumperBundlesVolumeDiscountConfig, UnlimitedBundlesDiscountsConfig, KiteFreeGiftDiscountConfig, FastBundleBundlesDiscountsConfig, SimpleBundlesKitsConfig, EasyBundleBuilderSkailamaConfig, PreorderNowPreOrderPqConfig, FlyBundlesUpsellsFbtConfig, JunipProductReviewsUgcConfig } from './appConfig.js';
2
2
 
3
3
  const mapShopifyAppMeta = {
4
4
  ...RechargeSubscriptionsConfig,
@@ -13,7 +13,11 @@ const mapShopifyAppMeta = {
13
13
  ...UnlimitedBundlesDiscountsConfig,
14
14
  ...KiteFreeGiftDiscountConfig,
15
15
  ...FastBundleBundlesDiscountsConfig,
16
- ...SimpleBundlesKitsConfig
16
+ ...SimpleBundlesKitsConfig,
17
+ ...EasyBundleBuilderSkailamaConfig,
18
+ ...PreorderNowPreOrderPqConfig,
19
+ ...FlyBundlesUpsellsFbtConfig,
20
+ ...JunipProductReviewsUgcConfig
17
21
  };
18
22
  const THIRD_PARTY_APP_BLOCK_ID_PREFIX = 'gp_app';
19
23
 
@@ -116,7 +116,7 @@ const composeTypographyAttr = (attrs)=>{
116
116
  });
117
117
  };
118
118
  const composeTypographyClassName = (typo, typography)=>{
119
- return typo ? typo?.type && !typo.custom ? genTypoClass(typo.type) : '' : typography?.type && genTypoClass(typography?.type);
119
+ return typo ? typo?.type && !isCustomTypo(typo.custom) ? genTypoClass(typo.type) : '' : typography?.type && genTypoClass(typography?.type);
120
120
  };
121
121
  const composeFallbackTypographyStyle = (tag)=>{
122
122
  if (tag.toLocaleLowerCase().includes('heading')) {
@@ -130,7 +130,7 @@ const composeTypographyStyle = (typo, typography, disableAttr)=>{
130
130
  const customTypo = {
131
131
  ...typo.custom,
132
132
  fallbackFontFamily: fallbackFontFamily,
133
- isCustom: !!typo.custom
133
+ isCustom: isCustomTypo(typo.custom)
134
134
  };
135
135
  return {
136
136
  ...composeTypographyV2(customTypo, typo.attrs),
@@ -141,5 +141,8 @@ const composeTypographyStyle = (typo, typography, disableAttr)=>{
141
141
  ...!typography?.type ? composeTypography(typography?.custom) : {}
142
142
  };
143
143
  };
144
+ const isCustomTypo = (customTypo)=>{
145
+ return customTypo && Object.keys(customTypo).length > 1 || customTypo && Object.keys(customTypo).length === 1 && !customTypo.fontSize;
146
+ };
144
147
 
145
148
  export { composeFallbackTypographyStyle, composeFontFamilyTypographyV2, composeTypography, composeTypographyAttr, composeTypographyClassName, composeTypographyCss, composeTypographyStyle, composeTypographyV2, composeTypographyV2Css, genTypoClass };
@@ -3,69 +3,69 @@ import { useMoneyFormat } from './shop.js';
3
3
  const shopifyPriceRounding = (amount, precision)=>{
4
4
  return parseFloat(`${amount}`).toFixed(Number(precision) + 1).slice(0, -1);
5
5
  };
6
+ const formatMoney = function(cents, format) {
7
+ let value = '';
8
+ const placeholderRegex = /\{\{\s*(\w+)\s*\}\}/;
9
+ const formatString = format || '${{amount}}';
10
+ /**
11
+ * check default
12
+ * @param opt opt
13
+ * @param def def
14
+ * @returns any
15
+ */ function defaultOption(opt, def) {
16
+ return typeof opt == 'undefined' ? def : opt;
17
+ }
18
+ /**
19
+ * formatWithDelimiters
20
+ * @param number number
21
+ * @param precision precision
22
+ * @param thousands thousands
23
+ * @param decimal decimal
24
+ * @returns any
25
+ */ // eslint-disable-next-line max-params
26
+ function formatWithDelimiters(number, precision, thousands, decimal) {
27
+ precision = defaultOption(precision, 2);
28
+ thousands = defaultOption(thousands, ',');
29
+ decimal = defaultOption(decimal, '.');
30
+ if (isNaN(number) || number == null) {
31
+ return 0;
32
+ }
33
+ // shopify làm tròn bằng cách cắt đi các số ở đằng sau chứ không sử dụng toFixed để làm tròn như toán học
34
+ number = shopifyPriceRounding(number, Number(precision));
35
+ const parts = number.split('.'), dollars = parts[0]?.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1' + thousands), cents = parts[1] ? decimal + parts[1] : '';
36
+ return dollars + cents;
37
+ }
38
+ switch(formatString.match(placeholderRegex)[1]){
39
+ case 'amount':
40
+ value = formatWithDelimiters(cents, 2);
41
+ break;
42
+ case 'amount_no_decimals':
43
+ value = formatWithDelimiters(cents, 0);
44
+ break;
45
+ case 'amount_with_comma_separator':
46
+ value = formatWithDelimiters(cents, 2, '.', ',');
47
+ break;
48
+ case 'amount_no_decimals_with_comma_separator':
49
+ value = formatWithDelimiters(cents, 0, '.', ',');
50
+ break;
51
+ case 'amount_with_apostrophe_separator':
52
+ value = formatWithDelimiters(cents, 2, "'", '.');
53
+ break;
54
+ case 'amount_no_decimals_with_space_separator':
55
+ value = formatWithDelimiters(cents, 0, ' ');
56
+ break;
57
+ case 'amount_with_space_separator':
58
+ value = formatWithDelimiters(cents, 2, ' ', ',');
59
+ break;
60
+ case 'amount_with_period_and_space_separator':
61
+ value = formatWithDelimiters(cents, 2, ' ', '.');
62
+ break;
63
+ }
64
+ return formatString.replace(placeholderRegex, value);
65
+ };
6
66
  const useFormatMoney = (amount, withCurrency)=>{
7
67
  const { moneyFormat, moneyWithCurrencyFormat } = useMoneyFormat();
8
- const formatMoney = function(cents, format) {
9
- let value = '';
10
- const placeholderRegex = /\{\{\s*(\w+)\s*\}\}/;
11
- const formatString = format || '${{amount}}';
12
- /**
13
- * check default
14
- * @param opt opt
15
- * @param def def
16
- * @returns any
17
- */ function defaultOption(opt, def) {
18
- return typeof opt == 'undefined' ? def : opt;
19
- }
20
- /**
21
- * formatWithDelimiters
22
- * @param number number
23
- * @param precision precision
24
- * @param thousands thousands
25
- * @param decimal decimal
26
- * @returns any
27
- */ // eslint-disable-next-line max-params
28
- function formatWithDelimiters(number, precision, thousands, decimal) {
29
- precision = defaultOption(precision, 2);
30
- thousands = defaultOption(thousands, ',');
31
- decimal = defaultOption(decimal, '.');
32
- if (isNaN(number) || number == null) {
33
- return 0;
34
- }
35
- // shopify làm tròn bằng cách cắt đi các số ở đằng sau chứ không sử dụng toFixed để làm tròn như toán học
36
- number = shopifyPriceRounding(number, Number(precision));
37
- const parts = number.split('.'), dollars = parts[0]?.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1' + thousands), cents = parts[1] ? decimal + parts[1] : '';
38
- return dollars + cents;
39
- }
40
- switch(formatString.match(placeholderRegex)[1]){
41
- case 'amount':
42
- value = formatWithDelimiters(cents, 2);
43
- break;
44
- case 'amount_no_decimals':
45
- value = formatWithDelimiters(cents, 0);
46
- break;
47
- case 'amount_with_comma_separator':
48
- value = formatWithDelimiters(cents, 2, '.', ',');
49
- break;
50
- case 'amount_no_decimals_with_comma_separator':
51
- value = formatWithDelimiters(cents, 0, '.', ',');
52
- break;
53
- case 'amount_with_apostrophe_separator':
54
- value = formatWithDelimiters(cents, 2, "'", '.');
55
- break;
56
- case 'amount_no_decimals_with_space_separator':
57
- value = formatWithDelimiters(cents, 0, ' ');
58
- break;
59
- case 'amount_with_space_separator':
60
- value = formatWithDelimiters(cents, 2, ' ', ',');
61
- break;
62
- case 'amount_with_period_and_space_separator':
63
- value = formatWithDelimiters(cents, 2, ' ', '.');
64
- break;
65
- }
66
- return formatString.replace(placeholderRegex, value);
67
- };
68
68
  return withCurrency ? formatMoney(`${amount}`, moneyWithCurrencyFormat || moneyFormat) : formatMoney(`${amount}`, moneyFormat);
69
69
  };
70
70
 
71
- export { shopifyPriceRounding, useFormatMoney };
71
+ export { formatMoney, shopifyPriceRounding, useFormatMoney };
package/dist/esm/index.js CHANGED
@@ -61,6 +61,7 @@ export { composePositionLineHeight, composePostionIconList } from './helpers/ico
61
61
  export { isDefined } from './helpers/is-defined.js';
62
62
  export { composeGridLayout, convertOldLayout, gridToArrayRegex, optionLayoutStyle } from './helpers/layout.js';
63
63
  export { makeAspectRatio, makeGlobalSizeHeightResponsive, makeGlobalSizeWidthResponsive, makeHeight, makeLineClamp, makeStyle, makeStyleKey, makeStyleResponsive, makeStyleResponsiveByScreen, makeStyleResponsiveState, makeStyleState, makeWidth, removeNullUndefined } from './helpers/make-style.js';
64
+ export { convertTextAlignToJustify } from './helpers/align.js';
64
65
  export { checkAvailableVariantInStock, getSelectedVariant, parseSelectedOption } from './helpers/product.js';
65
66
  export { generateCollectionQueryKey, generateProductQueryKey, generateProductsQueryKey } from './helpers/query.js';
66
67
  export { composeCornerCss, composeRadius, composeRadiusResponsive, getCornerCSSFromGlobal, getCustomRadius, getRadiusCSSFromGlobal, getRadiusStyleActiveState } from './helpers/radius.js';
@@ -81,7 +82,7 @@ export { useCollectionsQuery } from './hooks/shop/use-collections-query.js';
81
82
  export { useProductQuery } from './hooks/shop/use-product-query.js';
82
83
  export { useProductsQuery, useProductsQueryAll } from './hooks/shop/use-products-query.js';
83
84
  export { useCurrentDevice } from './hooks/use-current-device.js';
84
- export { shopifyPriceRounding, useFormatMoney } from './hooks/useFormatMoney.js';
85
+ export { formatMoney, shopifyPriceRounding, useFormatMoney } from './hooks/useFormatMoney.js';
85
86
  export { useLazyVideo } from './hooks/use-lazy-video.js';
86
87
  export { default as useCartId } from './hooks/useCartId.js';
87
88
  export { default as useCartLine } from './hooks/useCartLine.js';
@@ -6832,8 +6832,11 @@ type ImageShape$1 = {
6832
6832
  type SizeSettingGlobal = {
6833
6833
  shape?: 'square' | 'vertical' | 'horizontal' | 'custom' | 'original';
6834
6834
  shapeLinked?: boolean;
6835
+ disableShapeLinked?: boolean;
6835
6836
  shapeValue?: string;
6837
+ customShapeValue?: boolean | string;
6836
6838
  widthHeightLinked?: boolean;
6839
+ hiddenShape?: boolean;
6837
6840
  padding?: {
6838
6841
  type?: 'small' | 'medium' | 'large' | 'custom';
6839
6842
  top?: string;
@@ -7232,6 +7235,7 @@ type PositionControlType<T> = SharedControlType<T> & {
7232
7235
 
7233
7236
  type PositionSquareControlType<T> = SharedControlType<T> & {
7234
7237
  type: 'position:square';
7238
+ ignoreValue?: string[];
7235
7239
  };
7236
7240
 
7237
7241
  type RadioGroupControlType = {
@@ -7333,6 +7337,7 @@ type Option$2<T> = {
7333
7337
  tooltip?: string;
7334
7338
  type?: string;
7335
7339
  note?: string;
7340
+ maxOption?: number;
7336
7341
  };
7337
7342
  type Mapped$3<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7338
7343
  id: K;
@@ -7386,13 +7391,18 @@ type TextareaControlType<T> = SharedControlType<T> & {
7386
7391
  placeholder?: string;
7387
7392
  readonly?: boolean;
7388
7393
  minHeight?: number;
7394
+ maxHeight?: number;
7389
7395
  maxWidth?: number;
7396
+ inputClass?: string;
7390
7397
  autoHeight?: boolean;
7398
+ defaultRows?: number;
7399
+ showPlusBtn?: boolean;
7391
7400
  suggestContents?: {
7392
7401
  message: string;
7393
7402
  eg?: string;
7394
7403
  isStrike?: boolean;
7395
7404
  hiddenOn?: 'singleProduct' | 'multiProduct';
7405
+ tooltip?: string;
7396
7406
  }[];
7397
7407
  };
7398
7408
 
@@ -7439,6 +7449,7 @@ type BehaviorStateControlType<T> = {
7439
7449
  type BoxShadowControlType<T> = SharedControlType<T> & {
7440
7450
  id?: string;
7441
7451
  type: 'boxShadow';
7452
+ hideOptions?: string[];
7442
7453
  popup?: boolean;
7443
7454
  };
7444
7455
 
@@ -7824,6 +7835,8 @@ type SizeSetting$1<T> = SharedControlType<T> & {
7824
7835
  hiddenShowMore?: boolean;
7825
7836
  sizePaddingInput?: 'normal' | 'small';
7826
7837
  lockShapeValue?: boolean;
7838
+ isShowResponsive?: boolean;
7839
+ disableShapeLinkedTooltip?: string;
7827
7840
  };
7828
7841
 
7829
7842
  type ChildIconType<T> = SharedControlType<T> & {
@@ -7864,6 +7877,7 @@ type ParallaxScrollingType<T> = SharedControlType<T> & {
7864
7877
 
7865
7878
  type BackgroundColorPickerType<T> = SharedControlType<T> & {
7866
7879
  type: 'background-color-picker';
7880
+ mode?: 'both' | 'solid' | 'gradient';
7867
7881
  popup?: boolean;
7868
7882
  readonly?: boolean;
7869
7883
  };
@@ -8019,7 +8033,110 @@ type ButtonLayoutType<T> = SharedControlType<T> & {
8019
8033
  }[];
8020
8034
  };
8021
8035
 
8022
- type ControlProp<T> = AngleControlType<T> | CheckboxControlType<T> | ColorPickerControlType<T> | GroupControlType<T> | IconControlType<T> | InputFixContentControlType<T> | InputNumberControlType<T> | InputUnitControlType<T> | InputUnitSpacingControlType<T> | InputUnitWidthControlType<T> | InputControlType<T> | MarginControlType<T> | PaddingControlType<T> | PositionControlType<T> | RadioGroupControlType | RangeControlType<T> | SegmentControlType<T> | OpenLinkControlType<T> | SelectControlType<T> | TextareaControlType<T> | ToggleControlType<T> | ImageControlType<T> | ChildrensControlType | GridControlType<T> | FlexControlType<T> | TextEditorControlType<T> | ProductControlType<T> | TypographyControlType<T> | TypographyV2ControlType<T> | MenuControlType<T> | BehaviorStateControlType<T> | PickLinkControlType<T> | BoxShadowControlType<T> | TextShadowControlType<T> | BorderControlType<T> | BorderRadiusControlType<T> | RadiusPresetControlType<T> | SizeControlType<T> | ChildItemType<T> | PickMultiProductControlType<T> | CollectionControlType<T> | BackgroundControlType<T> | VisibilityControlType<T> | SelectVariantControlType | CountdownEvergreenType | Timezone<T> | CustomContentControlType<T> | DateTimePickerControlType | CountdownDailyType | KlaviyoCodes | YotpoLoyaltyCodes | InputWidthControlType<T> | LayoutSegmentControlType<T> | InputSpacing<T> | UniqueIdControlType<T> | PositionSquareControlType<T> | CustomCodeEditor | LayoutControlType<T> | LayoutBannerControlType<T> | SwatchesLinkControlType<T> | VariantSwatchesPresetControlType<T> | VariantSwatchesOnlyDefaultVariantControlType<T> | ProductListControlType<T> | ArticleListControlType<T> | CollectionBannerControlType<T> | Ratio<T> | StickyDisplayControlType<T> | SyncProductPropertiesControlType<T> | StepsGuide<T> | ImageShape<T> | GridArrange<T> | SizeSetting$1<T> | ChildIconType<T> | DropdownInput<T> | Dropdown<T> | AliPickSectionControlType<T> | ParallaxScrollingType<T> | BackgroundColorPickerType<T> | PlayPauseControlType<T> | LayoutCustomSegmentControlType<T> | SneakPeakRange<T> | SneakPeakTypeControlType<T> | SneakPeakControlType<T> | ProductInputCurrencyUnitControlType<T> | TypographyPostPurchaseControlType<T> | ProductOffersControlType<T> | DiscountAndShippingFee<T> | PostPurchaseTextareaControlType<T> | NotesControlType<T> | ButtonLayoutType<T>;
8036
+ type ShapeSelectorControlType<T> = SharedControlType<T> & {
8037
+ type: 'shape-selector';
8038
+ };
8039
+
8040
+ declare enum CompareType {
8041
+ EXACT = "exact",
8042
+ ABOVE = "above",
8043
+ BELOW = "below",
8044
+ EXACT_OR_ABOVE = "exact_or_above",
8045
+ EXACT_OR_BELOW = "exact_or_below",
8046
+ BETWEEN = "between"
8047
+ }
8048
+ declare enum TriggerType {
8049
+ INVENTORY_STATUS = "inventory_status",
8050
+ DISCOUNT_PRICE = "discount_price",
8051
+ PRICE_RANGE = "price_range",
8052
+ PRODUCT_TAGS = "product_tags",
8053
+ CREATION_DATE = "creation_date"
8054
+ }
8055
+ declare enum InventoryStatus {
8056
+ IN_STOCK = "in_stock",
8057
+ OUT_OF_STOCK = "out_of_stock"
8058
+ }
8059
+ declare enum CreationDateType {
8060
+ DURATION = "duration",
8061
+ EXACT_DATE = "exact_date",
8062
+ BETWEEN_DATES = "between_dates"
8063
+ }
8064
+ declare enum DiscountType {
8065
+ PERCENT = "percent",
8066
+ FIXED = "fixed"
8067
+ }
8068
+ type InventoryStatusTrigger = {
8069
+ triggerEvent: TriggerType.INVENTORY_STATUS;
8070
+ type: InventoryStatus;
8071
+ quantityType: CompareType;
8072
+ from: string;
8073
+ to?: string;
8074
+ priority: number;
8075
+ conditionType?: CompareType;
8076
+ };
8077
+ type DiscountPriceTrigger = {
8078
+ triggerEvent: TriggerType.DISCOUNT_PRICE;
8079
+ type: CompareType;
8080
+ amount?: string;
8081
+ from?: string;
8082
+ to?: string;
8083
+ priority: number;
8084
+ conditionType?: CompareType;
8085
+ discountType?: DiscountType;
8086
+ };
8087
+ type PriceRangeTrigger = {
8088
+ triggerEvent: TriggerType.PRICE_RANGE;
8089
+ from: string;
8090
+ to: string;
8091
+ priority: number;
8092
+ conditionType?: CompareType;
8093
+ };
8094
+ type CreationDateTrigger = {
8095
+ triggerEvent: TriggerType.CREATION_DATE;
8096
+ type: CreationDateType;
8097
+ days: string;
8098
+ from: string;
8099
+ to: string;
8100
+ priority: number;
8101
+ conditionType?: CompareType;
8102
+ };
8103
+ type ProductTagTrigger = {
8104
+ triggerEvent: TriggerType.PRODUCT_TAGS;
8105
+ searchTag: string[];
8106
+ priority: number;
8107
+ conditionType?: CompareType;
8108
+ };
8109
+ type TDisplayTrigger = InventoryStatusTrigger | DiscountPriceTrigger | PriceRangeTrigger | ProductTagTrigger | CreationDateTrigger;
8110
+ type DisplayTriggerControlType<T> = SharedControlType<T> & {
8111
+ type: 'display-trigger-badge';
8112
+ default: TDisplayTrigger[];
8113
+ };
8114
+
8115
+ type CustomPositionControlType<T> = SharedControlType<T> & {
8116
+ type: 'custom-position';
8117
+ ignoreValue?: string[];
8118
+ topGap?: string;
8119
+ leftGap?: string;
8120
+ rightGap?: string;
8121
+ bottomGap?: string;
8122
+ };
8123
+
8124
+ type DealControlType<T> = SharedControlType<T> & {
8125
+ type: 'bundleItem';
8126
+ readonly?: boolean;
8127
+ };
8128
+
8129
+ type ProductBundleChildControlType<T> = SharedControlType<T> & {
8130
+ type: 'product-bundle-child-item';
8131
+ [key: string]: any;
8132
+ };
8133
+ type SelectProductBundleControlType<T> = SharedControlType<T> & {
8134
+ type: 'select-product-bundle';
8135
+ label?: string;
8136
+ hide?: boolean;
8137
+ };
8138
+
8139
+ type ControlProp<T> = ProductBundleChildControlType<T> | SelectProductBundleControlType<T> | AngleControlType<T> | CheckboxControlType<T> | ColorPickerControlType<T> | GroupControlType<T> | IconControlType<T> | InputFixContentControlType<T> | InputNumberControlType<T> | InputUnitControlType<T> | InputUnitSpacingControlType<T> | InputUnitWidthControlType<T> | InputControlType<T> | MarginControlType<T> | PaddingControlType<T> | PositionControlType<T> | RadioGroupControlType | RangeControlType<T> | SegmentControlType<T> | OpenLinkControlType<T> | SelectControlType<T> | TextareaControlType<T> | ToggleControlType<T> | ImageControlType<T> | ChildrensControlType | GridControlType<T> | FlexControlType<T> | TextEditorControlType<T> | ProductControlType<T> | TypographyControlType<T> | TypographyV2ControlType<T> | MenuControlType<T> | BehaviorStateControlType<T> | PickLinkControlType<T> | BoxShadowControlType<T> | TextShadowControlType<T> | BorderControlType<T> | BorderRadiusControlType<T> | RadiusPresetControlType<T> | SizeControlType<T> | ChildItemType<T> | PickMultiProductControlType<T> | CollectionControlType<T> | BackgroundControlType<T> | VisibilityControlType<T> | SelectVariantControlType | CountdownEvergreenType | Timezone<T> | CustomContentControlType<T> | DateTimePickerControlType | CountdownDailyType | KlaviyoCodes | YotpoLoyaltyCodes | InputWidthControlType<T> | LayoutSegmentControlType<T> | InputSpacing<T> | UniqueIdControlType<T> | PositionSquareControlType<T> | CustomCodeEditor | LayoutControlType<T> | LayoutBannerControlType<T> | SwatchesLinkControlType<T> | VariantSwatchesPresetControlType<T> | VariantSwatchesOnlyDefaultVariantControlType<T> | ProductListControlType<T> | ArticleListControlType<T> | CollectionBannerControlType<T> | Ratio<T> | StickyDisplayControlType<T> | SyncProductPropertiesControlType<T> | StepsGuide<T> | ImageShape<T> | GridArrange<T> | SizeSetting$1<T> | ChildIconType<T> | DropdownInput<T> | Dropdown<T> | AliPickSectionControlType<T> | ParallaxScrollingType<T> | BackgroundColorPickerType<T> | PlayPauseControlType<T> | LayoutCustomSegmentControlType<T> | SneakPeakRange<T> | SneakPeakTypeControlType<T> | SneakPeakControlType<T> | ProductInputCurrencyUnitControlType<T> | TypographyPostPurchaseControlType<T> | ProductOffersControlType<T> | DiscountAndShippingFee<T> | PostPurchaseTextareaControlType<T> | NotesControlType<T> | ButtonLayoutType<T> | ShapeSelectorControlType<T> | DisplayTriggerControlType<T> | CustomPositionControlType<T> | DealControlType<T>;
8023
8140
  type ControlTriggerAction = {
8024
8141
  controlId: string;
8025
8142
  newValue?: any;
@@ -8072,9 +8189,11 @@ type ComponentSetting<P extends BaseProps> = {
8072
8189
  placeholder?: {
8073
8190
  notAppendBeforeAfter?: boolean;
8074
8191
  flowTag?: string[];
8192
+ flowTagMessage?: string[];
8075
8193
  flowPage?: string;
8076
8194
  notAppendTags?: string[];
8077
8195
  notAppendLeftRight?: boolean;
8196
+ allowAppendTags?: string[];
8078
8197
  };
8079
8198
  sideBar?: {
8080
8199
  hide?: boolean;
@@ -28713,7 +28832,7 @@ type ProductListProviderProps = ProductListContextProps & {
28713
28832
  declare const ProductListProvider: React.FC<ProductListProviderProps>;
28714
28833
  declare const useProductListStore: <U>(selector: (state: ExtractState<StoreApi<ProductListContextProps>>) => U, equalityFn?: ((a: U, b: U) => boolean) | undefined) => U;
28715
28834
 
28716
- type ProductSelectFragment = Pick<Product$1, 'tags' | 'id' | 'title' | 'description' | 'descriptionHtml' | 'handle' | 'averageRating' | 'isStorefront' | 'isSample' | 'baseID' | 'sku' | 'vendor'> & {
28835
+ type ProductSelectFragment = Pick<Product$1, 'tags' | 'id' | 'title' | 'createdAt' | 'description' | 'descriptionHtml' | 'handle' | 'averageRating' | 'isStorefront' | 'isSample' | 'baseID' | 'sku' | 'vendor'> & {
28717
28836
  collections?: Maybe$1<{
28718
28837
  edges: Array<{
28719
28838
  node?: Maybe$1<Pick<Collection$1, 'id' | 'title'>>;
@@ -30127,6 +30246,15 @@ declare const filterAttrInStyle: (style?: React.CSSProperties, filterKeys?: stri
30127
30246
  '--v-mobile'?: csstype.Property.Visibility | undefined;
30128
30247
  '--hvr-v-mobile'?: csstype.Property.Visibility | undefined;
30129
30248
  '--focus-v-mobile'?: csstype.Property.Visibility | undefined;
30249
+ '--ws'?: csstype.Property.WhiteSpace | undefined;
30250
+ '--hvr-ws'?: csstype.Property.WhiteSpace | undefined;
30251
+ '--focus-ws'?: csstype.Property.WhiteSpace | undefined;
30252
+ '--ws-tablet'?: csstype.Property.WhiteSpace | undefined;
30253
+ '--hvr-ws-tablet'?: csstype.Property.WhiteSpace | undefined;
30254
+ '--focus-ws-tablet'?: csstype.Property.WhiteSpace | undefined;
30255
+ '--ws-mobile'?: csstype.Property.WhiteSpace | undefined;
30256
+ '--hvr-ws-mobile'?: csstype.Property.WhiteSpace | undefined;
30257
+ '--focus-ws-mobile'?: csstype.Property.WhiteSpace | undefined;
30130
30258
  '--w'?: csstype.Property.Width<string | number> | undefined;
30131
30259
  '--hvr-w'?: csstype.Property.Width<string | number> | undefined;
30132
30260
  '--focus-w'?: csstype.Property.Width<string | number> | undefined;
@@ -30145,6 +30273,15 @@ declare const filterAttrInStyle: (style?: React.CSSProperties, filterKeys?: stri
30145
30273
  '--z-mobile'?: csstype.Property.ZIndex | undefined;
30146
30274
  '--hvr-z-mobile'?: csstype.Property.ZIndex | undefined;
30147
30275
  '--focus-z-mobile'?: csstype.Property.ZIndex | undefined;
30276
+ '--wm'?: csstype.Property.WritingMode | undefined;
30277
+ '--hvr-wm'?: csstype.Property.WritingMode | undefined;
30278
+ '--focus-wm'?: csstype.Property.WritingMode | undefined;
30279
+ '--wm-tablet'?: csstype.Property.WritingMode | undefined;
30280
+ '--hvr-wm-tablet'?: csstype.Property.WritingMode | undefined;
30281
+ '--focus-wm-tablet'?: csstype.Property.WritingMode | undefined;
30282
+ '--wm-mobile'?: csstype.Property.WritingMode | undefined;
30283
+ '--hvr-wm-mobile'?: csstype.Property.WritingMode | undefined;
30284
+ '--focus-wm-mobile'?: csstype.Property.WritingMode | undefined;
30148
30285
  accentColor?: csstype.Property.AccentColor | undefined;
30149
30286
  alignContent?: csstype.Property.AlignContent | undefined;
30150
30287
  alignItems?: csstype.Property.AlignItems | undefined;
@@ -31631,6 +31768,15 @@ declare const removeAttrInStyle: (style?: React.CSSProperties, filterKeys?: stri
31631
31768
  '--v-mobile'?: csstype.Property.Visibility | undefined;
31632
31769
  '--hvr-v-mobile'?: csstype.Property.Visibility | undefined;
31633
31770
  '--focus-v-mobile'?: csstype.Property.Visibility | undefined;
31771
+ '--ws'?: csstype.Property.WhiteSpace | undefined;
31772
+ '--hvr-ws'?: csstype.Property.WhiteSpace | undefined;
31773
+ '--focus-ws'?: csstype.Property.WhiteSpace | undefined;
31774
+ '--ws-tablet'?: csstype.Property.WhiteSpace | undefined;
31775
+ '--hvr-ws-tablet'?: csstype.Property.WhiteSpace | undefined;
31776
+ '--focus-ws-tablet'?: csstype.Property.WhiteSpace | undefined;
31777
+ '--ws-mobile'?: csstype.Property.WhiteSpace | undefined;
31778
+ '--hvr-ws-mobile'?: csstype.Property.WhiteSpace | undefined;
31779
+ '--focus-ws-mobile'?: csstype.Property.WhiteSpace | undefined;
31634
31780
  '--w'?: csstype.Property.Width<string | number> | undefined;
31635
31781
  '--hvr-w'?: csstype.Property.Width<string | number> | undefined;
31636
31782
  '--focus-w'?: csstype.Property.Width<string | number> | undefined;
@@ -31649,6 +31795,15 @@ declare const removeAttrInStyle: (style?: React.CSSProperties, filterKeys?: stri
31649
31795
  '--z-mobile'?: csstype.Property.ZIndex | undefined;
31650
31796
  '--hvr-z-mobile'?: csstype.Property.ZIndex | undefined;
31651
31797
  '--focus-z-mobile'?: csstype.Property.ZIndex | undefined;
31798
+ '--wm'?: csstype.Property.WritingMode | undefined;
31799
+ '--hvr-wm'?: csstype.Property.WritingMode | undefined;
31800
+ '--focus-wm'?: csstype.Property.WritingMode | undefined;
31801
+ '--wm-tablet'?: csstype.Property.WritingMode | undefined;
31802
+ '--hvr-wm-tablet'?: csstype.Property.WritingMode | undefined;
31803
+ '--focus-wm-tablet'?: csstype.Property.WritingMode | undefined;
31804
+ '--wm-mobile'?: csstype.Property.WritingMode | undefined;
31805
+ '--hvr-wm-mobile'?: csstype.Property.WritingMode | undefined;
31806
+ '--focus-wm-mobile'?: csstype.Property.WritingMode | undefined;
31652
31807
  accentColor?: csstype.Property.AccentColor | undefined;
31653
31808
  alignContent?: csstype.Property.AlignContent | undefined;
31654
31809
  alignItems?: csstype.Property.AlignItems | undefined;
@@ -33135,6 +33290,15 @@ declare const filterCornerInStyle: (style?: React.CSSProperties) => {
33135
33290
  '--v-mobile'?: csstype.Property.Visibility | undefined;
33136
33291
  '--hvr-v-mobile'?: csstype.Property.Visibility | undefined;
33137
33292
  '--focus-v-mobile'?: csstype.Property.Visibility | undefined;
33293
+ '--ws'?: csstype.Property.WhiteSpace | undefined;
33294
+ '--hvr-ws'?: csstype.Property.WhiteSpace | undefined;
33295
+ '--focus-ws'?: csstype.Property.WhiteSpace | undefined;
33296
+ '--ws-tablet'?: csstype.Property.WhiteSpace | undefined;
33297
+ '--hvr-ws-tablet'?: csstype.Property.WhiteSpace | undefined;
33298
+ '--focus-ws-tablet'?: csstype.Property.WhiteSpace | undefined;
33299
+ '--ws-mobile'?: csstype.Property.WhiteSpace | undefined;
33300
+ '--hvr-ws-mobile'?: csstype.Property.WhiteSpace | undefined;
33301
+ '--focus-ws-mobile'?: csstype.Property.WhiteSpace | undefined;
33138
33302
  '--w'?: csstype.Property.Width<string | number> | undefined;
33139
33303
  '--hvr-w'?: csstype.Property.Width<string | number> | undefined;
33140
33304
  '--focus-w'?: csstype.Property.Width<string | number> | undefined;
@@ -33153,6 +33317,15 @@ declare const filterCornerInStyle: (style?: React.CSSProperties) => {
33153
33317
  '--z-mobile'?: csstype.Property.ZIndex | undefined;
33154
33318
  '--hvr-z-mobile'?: csstype.Property.ZIndex | undefined;
33155
33319
  '--focus-z-mobile'?: csstype.Property.ZIndex | undefined;
33320
+ '--wm'?: csstype.Property.WritingMode | undefined;
33321
+ '--hvr-wm'?: csstype.Property.WritingMode | undefined;
33322
+ '--focus-wm'?: csstype.Property.WritingMode | undefined;
33323
+ '--wm-tablet'?: csstype.Property.WritingMode | undefined;
33324
+ '--hvr-wm-tablet'?: csstype.Property.WritingMode | undefined;
33325
+ '--focus-wm-tablet'?: csstype.Property.WritingMode | undefined;
33326
+ '--wm-mobile'?: csstype.Property.WritingMode | undefined;
33327
+ '--hvr-wm-mobile'?: csstype.Property.WritingMode | undefined;
33328
+ '--focus-wm-mobile'?: csstype.Property.WritingMode | undefined;
33156
33329
  accentColor?: csstype.Property.AccentColor | undefined;
33157
33330
  alignContent?: csstype.Property.AlignContent | undefined;
33158
33331
  alignItems?: csstype.Property.AlignItems | undefined;
@@ -34639,6 +34812,15 @@ declare const removePaddingYInStyle: (style?: React.CSSProperties) => {
34639
34812
  '--v-mobile'?: csstype.Property.Visibility | undefined;
34640
34813
  '--hvr-v-mobile'?: csstype.Property.Visibility | undefined;
34641
34814
  '--focus-v-mobile'?: csstype.Property.Visibility | undefined;
34815
+ '--ws'?: csstype.Property.WhiteSpace | undefined;
34816
+ '--hvr-ws'?: csstype.Property.WhiteSpace | undefined;
34817
+ '--focus-ws'?: csstype.Property.WhiteSpace | undefined;
34818
+ '--ws-tablet'?: csstype.Property.WhiteSpace | undefined;
34819
+ '--hvr-ws-tablet'?: csstype.Property.WhiteSpace | undefined;
34820
+ '--focus-ws-tablet'?: csstype.Property.WhiteSpace | undefined;
34821
+ '--ws-mobile'?: csstype.Property.WhiteSpace | undefined;
34822
+ '--hvr-ws-mobile'?: csstype.Property.WhiteSpace | undefined;
34823
+ '--focus-ws-mobile'?: csstype.Property.WhiteSpace | undefined;
34642
34824
  '--w'?: csstype.Property.Width<string | number> | undefined;
34643
34825
  '--hvr-w'?: csstype.Property.Width<string | number> | undefined;
34644
34826
  '--focus-w'?: csstype.Property.Width<string | number> | undefined;
@@ -34657,6 +34839,15 @@ declare const removePaddingYInStyle: (style?: React.CSSProperties) => {
34657
34839
  '--z-mobile'?: csstype.Property.ZIndex | undefined;
34658
34840
  '--hvr-z-mobile'?: csstype.Property.ZIndex | undefined;
34659
34841
  '--focus-z-mobile'?: csstype.Property.ZIndex | undefined;
34842
+ '--wm'?: csstype.Property.WritingMode | undefined;
34843
+ '--hvr-wm'?: csstype.Property.WritingMode | undefined;
34844
+ '--focus-wm'?: csstype.Property.WritingMode | undefined;
34845
+ '--wm-tablet'?: csstype.Property.WritingMode | undefined;
34846
+ '--hvr-wm-tablet'?: csstype.Property.WritingMode | undefined;
34847
+ '--focus-wm-tablet'?: csstype.Property.WritingMode | undefined;
34848
+ '--wm-mobile'?: csstype.Property.WritingMode | undefined;
34849
+ '--hvr-wm-mobile'?: csstype.Property.WritingMode | undefined;
34850
+ '--focus-wm-mobile'?: csstype.Property.WritingMode | undefined;
34660
34851
  accentColor?: csstype.Property.AccentColor | undefined;
34661
34852
  alignContent?: csstype.Property.AlignContent | undefined;
34662
34853
  alignItems?: csstype.Property.AlignItems | undefined;
@@ -35492,6 +35683,8 @@ declare const optionLayoutStyle: (column?: ObjectDevices<string | number>) => Re
35492
35683
  declare const composeGridLayout: (layout?: ObjectDevices<ObjectLayoutValue>) => React.CSSProperties;
35493
35684
  declare const convertOldLayout: (layout?: ObjectDevices<string>) => ObjectDevices<ObjectLayoutValue>;
35494
35685
 
35686
+ declare const convertTextAlignToJustify: (align: Partial<Record<NameDevices$1, AlignProp>> | undefined) => Record<string, boolean>;
35687
+
35495
35688
  declare function getSelectedVariant(variants?: Maybe$1<VariantSelectFragment>[], choices?: Record<string, string>, variantId?: string | null): Maybe$1<VariantSelectFragment>;
35496
35689
  declare function parseSelectedOption(options: SelectedOption$1[]): SelectedOption$1 | undefined;
35497
35690
  declare function checkAvailableVariantInStock(variants: Maybe$1<VariantSelectFragment>[] | undefined, optionId: string, optionValue: string): boolean;
@@ -36281,6 +36474,15 @@ declare const composeTypographyStyle: (typo?: TypographySettingV2, typography?:
36281
36474
  '--v-mobile'?: csstype.Property.Visibility | undefined;
36282
36475
  '--hvr-v-mobile'?: csstype.Property.Visibility | undefined;
36283
36476
  '--focus-v-mobile'?: csstype.Property.Visibility | undefined;
36477
+ '--ws'?: csstype.Property.WhiteSpace | undefined;
36478
+ '--hvr-ws'?: csstype.Property.WhiteSpace | undefined;
36479
+ '--focus-ws'?: csstype.Property.WhiteSpace | undefined;
36480
+ '--ws-tablet'?: csstype.Property.WhiteSpace | undefined;
36481
+ '--hvr-ws-tablet'?: csstype.Property.WhiteSpace | undefined;
36482
+ '--focus-ws-tablet'?: csstype.Property.WhiteSpace | undefined;
36483
+ '--ws-mobile'?: csstype.Property.WhiteSpace | undefined;
36484
+ '--hvr-ws-mobile'?: csstype.Property.WhiteSpace | undefined;
36485
+ '--focus-ws-mobile'?: csstype.Property.WhiteSpace | undefined;
36284
36486
  '--w'?: csstype.Property.Width<string | number> | undefined;
36285
36487
  '--hvr-w'?: csstype.Property.Width<string | number> | undefined;
36286
36488
  '--focus-w'?: csstype.Property.Width<string | number> | undefined;
@@ -36299,6 +36501,15 @@ declare const composeTypographyStyle: (typo?: TypographySettingV2, typography?:
36299
36501
  '--z-mobile'?: csstype.Property.ZIndex | undefined;
36300
36502
  '--hvr-z-mobile'?: csstype.Property.ZIndex | undefined;
36301
36503
  '--focus-z-mobile'?: csstype.Property.ZIndex | undefined;
36504
+ '--wm'?: csstype.Property.WritingMode | undefined;
36505
+ '--hvr-wm'?: csstype.Property.WritingMode | undefined;
36506
+ '--focus-wm'?: csstype.Property.WritingMode | undefined;
36507
+ '--wm-tablet'?: csstype.Property.WritingMode | undefined;
36508
+ '--hvr-wm-tablet'?: csstype.Property.WritingMode | undefined;
36509
+ '--focus-wm-tablet'?: csstype.Property.WritingMode | undefined;
36510
+ '--wm-mobile'?: csstype.Property.WritingMode | undefined;
36511
+ '--hvr-wm-mobile'?: csstype.Property.WritingMode | undefined;
36512
+ '--focus-wm-mobile'?: csstype.Property.WritingMode | undefined;
36302
36513
  accentColor?: csstype.Property.AccentColor | undefined;
36303
36514
  alignContent?: csstype.Property.AlignContent | undefined;
36304
36515
  alignItems?: csstype.Property.AlignItems | undefined;
@@ -37197,6 +37408,7 @@ declare const useProductsQueryAll: (variable?: VariableRelatedStyles | undefined
37197
37408
  declare const useCurrentDevice: () => NameDevices$1;
37198
37409
 
37199
37410
  declare const shopifyPriceRounding: (amount: number | string, precision?: number) => string;
37411
+ declare const formatMoney: (cents: string, format: any) => string;
37200
37412
  declare const useFormatMoney: (amount: number, withCurrency: boolean) => string;
37201
37413
 
37202
37414
  declare const useLazyVideo: () => void;
@@ -37435,4 +37647,4 @@ declare const getAppBlocks: (section: PublishedPageSection$1 & {
37435
37647
 
37436
37648
  declare const addAppBlockId: (component: Component) => Component;
37437
37649
 
37438
- export { AddOn, AddonProvider, AddonProviderProps, AdvancedType, AliReviewsWidgetType, AlignItemProp, AlignProp, AnimationBaseSetting, AnimationConfig, AnimationDirectionType, AnimationEasingType, AnimationFadeSettingType, AnimationSetting, AnimationSettingType, AnimationShakeSettingType, AnimationSlideSettingType, AnimationTrigger, AnimationTriggerType, AnimationType, AnimationZoomDirectionType, AnimationZoomSettingType, appAPI as AppAPIType, ArticleListProvider, ArticleListProviderProps, ArticleProvider, ArticleProviderProps, Background, BaseProps, BasePropsWrap, BlockEntity, BogosWidgetType, BoldSubscriptionsWidgetType, Border, BorderStyle, BuilderComponentProvider, BuilderComponentProviderProps, BuilderEntity, BuilderEntityNested, BuilderPreviewProvider, BuilderPreviewProviderProps, BuilderProvider, BuilderProviderProps, BuilderState, Builtin, CartLineProvider, CartLineProviderProps, CollectionDetailFilterDocument, CollectionDetailFilterQueryResponse, CollectionDetailFilterQueryVariables, CollectionDocument, CollectionProvider, CollectionProviderProps, CollectionQueryResponse, CollectionQueryVariables, CollectionSelectFragment, CollectionsDocument, CollectionsQueryResponse, CollectionsQueryVariables, ColorKey, ColorType$1 as ColorType, ColorValueType, Component, ComponentPreset, ComponentSetting, ContainerProp, ControlProp, ControlTriggerAction, ControlUI, CornerRadius, CornerRadiusType, CustomComponentConfig, DeepPartial, DynamicCollection, DynamicProduct, ExtractState, FeraReviewsV3WidgetType, FeraReviewsWidgetType, FetchCollectionArgs, FetchFunc, FetchProductParams, FlexDirectionProp, FontName, GRADIENT_BGR_KEY, GlobalStyleConfig, GlobalStyleResponsiveConfig, GlobalSwatchesData, GraphQLConnection, GroupPropType, GrowaveWidgetType, HSLAColorType, HSLColorType, HexColorType, ImageShape$1 as ImageShape, InitComponentType, InstantJudgeMeReviewsWidgetType, InstantKlaviyoWidgetType, InstantLooxReviewsWidgetType, JudgeMeReviewsWidgetType, KlaviyoWidgetType, LaiProductReviewsAdvancedWidgetType, LaiProductReviewsWidgetType, LibrarySaleFunnelDocument, LibrarySaleFunnelQueryResponse, LibrarySaleFunnelQueryVariables, LibraryTemplateDocument, LibraryTemplateQueryResponse, LibraryTemplateQueryVariables, LooxReviewsWidgetType, ModalProvider, ModalProviderProps, NameDevices$1 as NameDevices, NestedKeys, ObjectDeviceGlobalType, ObjectDevices, ObjectLayoutValue, OmnisendWidgetType, OnlyOne, OpinewDesignWidgetType, OpinewWidgetType, OptionNormalStyle, OptionSpecialStyle, Options, PageContext, PageProvider, PageProviderProps, PageType, PageViewUpDocument, PageViewUpMutationResponse, PageViewUpMutationVariables, PickyStoryWidgetType, PostPurchaseTypo, PreviewPageDocument, PreviewPageQueryResponse, PreviewPageQueryVariables, Primitive, ProductInputAnalytic, ProductListProvider, ProductListProviderProps, ProductOffer, ProductProvider, ProductProviderProps, ProductReviewsWidgetType, ProductSelectFragment, ProductsDocument, ProductsQueryResponse, ProductsQueryVariables, PublicStoreFrontData, PublishedThemePageSelectFragment, PublishedThemePagesDocument, PublishedThemePagesQueryResponse, PublishedThemePagesQueryVariables, RGBAColorType, RGBColorType, Ratio$1 as Ratio, RawChild, RenderMemo as Render, RenderChildren, RenderIf, Render as RenderLiquid, RenderMode, RenderPreviewMemo as RenderPreview, RequiredCursorEdge, ResponsiveKey, ResponsiveStateProp, RivyoWidgetType, RoundedSize, RyviuWidgetType, SaleFunnelDiscount$1 as SaleFunnelDiscount, SaleFunnelDiscountEdge$1 as SaleFunnelDiscountEdge, SaleFunnelDiscountObjectType$1 as SaleFunnelDiscountObjectType, SaleFunnelDiscountType$1 as SaleFunnelDiscountType, SaleFunnelDiscountValueType$1 as SaleFunnelDiscountValueType, SaleFunnelDiscountsDocument, SaleFunnelDiscountsQueryResponse, SaleFunnelDiscountsQueryVariables, Scalars$1 as Scalars, ScaleByDirection, SectionData, SectionEntity, SectionProvider, SectionProviderProps, SettingByAnimationType, SettingByAnimationValues, ShadowProps, ShadowStyle, ShadowStyleApplied, ShadowType, ShopProvider, ShopProviderProps, shop as ShopType, SizeProps, SizeSetting, SizeSettingGlobal, SizeType, SpacingType, StampedWidgetType, StateProp, StateSelector, StateType, StoreConfig, StorePropertyDocument, StorePropertyQueryResponse, StorePropertyQueryVariables, SwatchesOptionType, SwatchesOptionValue, ThemePageDocument, ThemePageQueryResponse, ThemePageQueryVariables, ThemeSectionStatus$1 as ThemeSectionStatus, TransformProp, TriggerConfig, TrustooWidgetType, TypographyProps, TypographySetting, TypographySettingV2, TypographyType, TypographyV2Attrs, TypographyV2Props, UltimateSalesBoostWidgetType, VariantSelectFragment, VitalsWidgetType, WiserV2WidgetType, WiserWidgetType, WrapRenderChildren, YotpoReviewsWidgetType, addAppBlockId, animations, baseAssetURL, calculateFirstProduct, checkAvailableVariantInStock, cls, composeAdvanceStyle, composeAdvanceStyleForPostPurchase, composeBackgroundCss, composeBorderCss, composeCornerCss, composeFallbackTypographyStyle, composeFontFamilyTypographyV2, composeGridLayout, composeMemo, composePositionLineHeight, composePostionIconList, composeRadius, composeRadiusResponsive, composeShadowCss, composeSize, composeSizeCss, composeSpacing, composeTextColorCss, composeTypography, composeTypographyAttr, composeTypographyClassName, composeTypographyCss, composeTypographyStyle, composeTypographyV2, composeTypographyV2Css, convertHTML, convertOldLayout, dataStringify, fetchMedias, fetchVariants, filterAttrInStyle, filterCornerInStyle, filterToolbarPreview, flattenConnection, fpixel, genSizeClass, genTypoClass, genVariable, generateCollectionQueryKey, generateProductQueryKey, generateProductsQueryKey, getAppBlocks, getAspectRatioGlobalSize, getBgImageByDevice, getBorderRadiusStyle, getBorderStyle, getCarouselContainerHeight, getCollection, getCornerCSSFromGlobal, getCustomRadius, getGlobalColorCSSProp, getGlobalColorClass, getGlobalColorResponsiveClass, getGlobalColorResponsiveStyle, getGlobalColorStateClass, getGlobalColorStateClassDynamicBtn, getGlobalColorStateResponsiveClass, getGlobalColorStateResponsiveClassDynamicBtn, getGlobalColorStateResponsiveStyle, getGlobalColorStateStyle, getGlobalColorStyle, getGlobalSizeGap, getGradientBgrStyleByDevice, getGradientBgrStyleForButton, getHeightByShapeGlobalSize, getPaddingGlobalSize, getProduct, getProductBySlug, getRadiusCSSFromGlobal, getRadiusStyleActiveState, getResponsiveStateValue, getResponsiveValue, getResponsiveValueByScreen, getSelectedVariant, getShortName, getSingleColorVariable, getSpacingVariable, getStyleBackgroundByDevice, getStyleBgColor, getStyleShadow, getStyleShadowState, getValueByDevice, getWidthByShapeGlobalSize, getWidthHeightGlobalSize, globalEvent, gridToArrayRegex, gtag, handleConvertBorderColor, handleConvertBorderStyle, handleConvertBorderWidth, handleConvertClassColor, handleConvertClassColorDynamicBtn, isBrowser, isColor, isColumnDirectionExist, isDefined, isEmptyChildren, isLocalEnv, isSafari, loadScript, makeAspectRatio, makeContainerWidthOrHeight, makeDotGapToCarouselStyle, makeFixedBgAttachment, makeGlobalSize, makeGlobalSizeHeightResponsive, makeGlobalSizeIcon, makeGlobalSizeWidthResponsive, makeHeight, makeLineClamp, makeStyle, makeStyleKey, makeStyleResponsive, makeStyleResponsiveByScreen, makeStyleResponsiveState, makeStyleState, makeStyleWithDefault, makeWidth, normalizeBuilderData, optionLayoutStyle, parseSelectedOption, parseValueWithUnit, prefetchQueries, props, removeAttrInStyle, removeNullUndefined, removePaddingYInStyle, removeUndefinedValuesFromObject, shopifyPriceRounding, splitStyle, styles, template, tiktokpixel, useAddToCart, useAddon, useAddons, useArticleListStore, useArticleStore, useArticlesQuery, useBlogsQuery, useBuilderComponent, useBuilderPreviewStore, useBuilderStore, useCartData, useCartDiscountCodesUpdate, useCartId, useCartLine, useCartLineStore, useCartNoteUpdate, useCartUI, useCheckAvailableVariantInStock, useCheckoutUrl, useCollection, useCollectionQuery, useCollectionStore, useCollectionsQuery, useConnectedShopify, useCreateCart, useCurrency, useCurrentDevice, useCurrentVariant, useCurrentVariantInStock, useEditorMode, useFeaturedImageGlobal, useFormatMoney, useHasPreSelected, useInitialSwatchesOptions, useIsSampleProduct, useIsStorefrontProduct, useIsSyncProduct, useIsomorphicLayoutEffect, useLazyVideo, useLoadScript, useLocale, useMatchMutate, useMobileOnly, useModalStore, useMoney, useMoneyFormat, usePageStore, usePageType, usePluginEnable, usePrevious, useProduct, useProductList, useProductListProducts, useProductListSettings, useProductListStore, useProductListStyles, useProductOfferDiscount, useProductProperties, useProductQuery, useProductStore, useProductsQuery, useProductsQueryAll, useQuantity, useRemoveCartItem, useSection, useSectionStore, useSelectedOption, useShopStore, useStoreFront, useSuspenseFetch, useSwatches, useSwatchesOptions, useUniqProductID, useUpdateCartItem, useVariant, useVariantOutStock, useVariants, validateEmail };
37650
+ export { AddOn, AddonProvider, AddonProviderProps, AdvancedType, AliReviewsWidgetType, AlignItemProp, AlignProp, AnimationBaseSetting, AnimationConfig, AnimationDirectionType, AnimationEasingType, AnimationFadeSettingType, AnimationSetting, AnimationSettingType, AnimationShakeSettingType, AnimationSlideSettingType, AnimationTrigger, AnimationTriggerType, AnimationType, AnimationZoomDirectionType, AnimationZoomSettingType, appAPI as AppAPIType, ArticleListProvider, ArticleListProviderProps, ArticleProvider, ArticleProviderProps, Background, BaseProps, BasePropsWrap, BlockEntity, BogosWidgetType, BoldSubscriptionsWidgetType, Border, BorderStyle, BuilderComponentProvider, BuilderComponentProviderProps, BuilderEntity, BuilderEntityNested, BuilderPreviewProvider, BuilderPreviewProviderProps, BuilderProvider, BuilderProviderProps, BuilderState, Builtin, CartLineProvider, CartLineProviderProps, CollectionDetailFilterDocument, CollectionDetailFilterQueryResponse, CollectionDetailFilterQueryVariables, CollectionDocument, CollectionProvider, CollectionProviderProps, CollectionQueryResponse, CollectionQueryVariables, CollectionSelectFragment, CollectionsDocument, CollectionsQueryResponse, CollectionsQueryVariables, ColorKey, ColorType$1 as ColorType, ColorValueType, Component, ComponentPreset, ComponentSetting, ContainerProp, ControlProp, ControlTriggerAction, ControlUI, CornerRadius, CornerRadiusType, CustomComponentConfig, DeepPartial, DynamicCollection, DynamicProduct, ExtractState, FeraReviewsV3WidgetType, FeraReviewsWidgetType, FetchCollectionArgs, FetchFunc, FetchProductParams, FlexDirectionProp, FontName, GRADIENT_BGR_KEY, GlobalStyleConfig, GlobalStyleResponsiveConfig, GlobalSwatchesData, GraphQLConnection, GroupPropType, GrowaveWidgetType, HSLAColorType, HSLColorType, HexColorType, ImageShape$1 as ImageShape, InitComponentType, InstantJudgeMeReviewsWidgetType, InstantKlaviyoWidgetType, InstantLooxReviewsWidgetType, JudgeMeReviewsWidgetType, KlaviyoWidgetType, LaiProductReviewsAdvancedWidgetType, LaiProductReviewsWidgetType, LibrarySaleFunnelDocument, LibrarySaleFunnelQueryResponse, LibrarySaleFunnelQueryVariables, LibraryTemplateDocument, LibraryTemplateQueryResponse, LibraryTemplateQueryVariables, LooxReviewsWidgetType, ModalProvider, ModalProviderProps, NameDevices$1 as NameDevices, NestedKeys, ObjectDeviceGlobalType, ObjectDevices, ObjectLayoutValue, OmnisendWidgetType, OnlyOne, OpinewDesignWidgetType, OpinewWidgetType, OptionNormalStyle, OptionSpecialStyle, Options, PageContext, PageProvider, PageProviderProps, PageType, PageViewUpDocument, PageViewUpMutationResponse, PageViewUpMutationVariables, PickyStoryWidgetType, PostPurchaseTypo, PreviewPageDocument, PreviewPageQueryResponse, PreviewPageQueryVariables, Primitive, ProductInputAnalytic, ProductListProvider, ProductListProviderProps, ProductOffer, ProductProvider, ProductProviderProps, ProductReviewsWidgetType, ProductSelectFragment, ProductsDocument, ProductsQueryResponse, ProductsQueryVariables, PublicStoreFrontData, PublishedThemePageSelectFragment, PublishedThemePagesDocument, PublishedThemePagesQueryResponse, PublishedThemePagesQueryVariables, RGBAColorType, RGBColorType, Ratio$1 as Ratio, RawChild, RenderMemo as Render, RenderChildren, RenderIf, Render as RenderLiquid, RenderMode, RenderPreviewMemo as RenderPreview, RequiredCursorEdge, ResponsiveKey, ResponsiveStateProp, RivyoWidgetType, RoundedSize, RyviuWidgetType, SaleFunnelDiscount$1 as SaleFunnelDiscount, SaleFunnelDiscountEdge$1 as SaleFunnelDiscountEdge, SaleFunnelDiscountObjectType$1 as SaleFunnelDiscountObjectType, SaleFunnelDiscountType$1 as SaleFunnelDiscountType, SaleFunnelDiscountValueType$1 as SaleFunnelDiscountValueType, SaleFunnelDiscountsDocument, SaleFunnelDiscountsQueryResponse, SaleFunnelDiscountsQueryVariables, Scalars$1 as Scalars, ScaleByDirection, SectionData, SectionEntity, SectionProvider, SectionProviderProps, SettingByAnimationType, SettingByAnimationValues, ShadowProps, ShadowStyle, ShadowStyleApplied, ShadowType, ShopProvider, ShopProviderProps, shop as ShopType, SizeProps, SizeSetting, SizeSettingGlobal, SizeType, SpacingType, StampedWidgetType, StateProp, StateSelector, StateType, StoreConfig, StorePropertyDocument, StorePropertyQueryResponse, StorePropertyQueryVariables, SwatchesOptionType, SwatchesOptionValue, ThemePageDocument, ThemePageQueryResponse, ThemePageQueryVariables, ThemeSectionStatus$1 as ThemeSectionStatus, TransformProp, TriggerConfig, TrustooWidgetType, TypographyProps, TypographySetting, TypographySettingV2, TypographyType, TypographyV2Attrs, TypographyV2Props, UltimateSalesBoostWidgetType, VariantSelectFragment, VitalsWidgetType, WiserV2WidgetType, WiserWidgetType, WrapRenderChildren, YotpoReviewsWidgetType, addAppBlockId, animations, baseAssetURL, calculateFirstProduct, checkAvailableVariantInStock, cls, composeAdvanceStyle, composeAdvanceStyleForPostPurchase, composeBackgroundCss, composeBorderCss, composeCornerCss, composeFallbackTypographyStyle, composeFontFamilyTypographyV2, composeGridLayout, composeMemo, composePositionLineHeight, composePostionIconList, composeRadius, composeRadiusResponsive, composeShadowCss, composeSize, composeSizeCss, composeSpacing, composeTextColorCss, composeTypography, composeTypographyAttr, composeTypographyClassName, composeTypographyCss, composeTypographyStyle, composeTypographyV2, composeTypographyV2Css, convertHTML, convertOldLayout, convertTextAlignToJustify, dataStringify, fetchMedias, fetchVariants, filterAttrInStyle, filterCornerInStyle, filterToolbarPreview, flattenConnection, formatMoney, fpixel, genSizeClass, genTypoClass, genVariable, generateCollectionQueryKey, generateProductQueryKey, generateProductsQueryKey, getAppBlocks, getAspectRatioGlobalSize, getBgImageByDevice, getBorderRadiusStyle, getBorderStyle, getCarouselContainerHeight, getCollection, getCornerCSSFromGlobal, getCustomRadius, getGlobalColorCSSProp, getGlobalColorClass, getGlobalColorResponsiveClass, getGlobalColorResponsiveStyle, getGlobalColorStateClass, getGlobalColorStateClassDynamicBtn, getGlobalColorStateResponsiveClass, getGlobalColorStateResponsiveClassDynamicBtn, getGlobalColorStateResponsiveStyle, getGlobalColorStateStyle, getGlobalColorStyle, getGlobalSizeGap, getGradientBgrStyleByDevice, getGradientBgrStyleForButton, getHeightByShapeGlobalSize, getPaddingGlobalSize, getProduct, getProductBySlug, getRadiusCSSFromGlobal, getRadiusStyleActiveState, getResponsiveStateValue, getResponsiveValue, getResponsiveValueByScreen, getSelectedVariant, getShortName, getSingleColorVariable, getSpacingVariable, getStyleBackgroundByDevice, getStyleBgColor, getStyleShadow, getStyleShadowState, getValueByDevice, getWidthByShapeGlobalSize, getWidthHeightGlobalSize, globalEvent, gridToArrayRegex, gtag, handleConvertBorderColor, handleConvertBorderStyle, handleConvertBorderWidth, handleConvertClassColor, handleConvertClassColorDynamicBtn, isBrowser, isColor, isColumnDirectionExist, isDefined, isEmptyChildren, isLocalEnv, isSafari, loadScript, makeAspectRatio, makeContainerWidthOrHeight, makeDotGapToCarouselStyle, makeFixedBgAttachment, makeGlobalSize, makeGlobalSizeHeightResponsive, makeGlobalSizeIcon, makeGlobalSizeWidthResponsive, makeHeight, makeLineClamp, makeStyle, makeStyleKey, makeStyleResponsive, makeStyleResponsiveByScreen, makeStyleResponsiveState, makeStyleState, makeStyleWithDefault, makeWidth, normalizeBuilderData, optionLayoutStyle, parseSelectedOption, parseValueWithUnit, prefetchQueries, props, removeAttrInStyle, removeNullUndefined, removePaddingYInStyle, removeUndefinedValuesFromObject, shopifyPriceRounding, splitStyle, styles, template, tiktokpixel, useAddToCart, useAddon, useAddons, useArticleListStore, useArticleStore, useArticlesQuery, useBlogsQuery, useBuilderComponent, useBuilderPreviewStore, useBuilderStore, useCartData, useCartDiscountCodesUpdate, useCartId, useCartLine, useCartLineStore, useCartNoteUpdate, useCartUI, useCheckAvailableVariantInStock, useCheckoutUrl, useCollection, useCollectionQuery, useCollectionStore, useCollectionsQuery, useConnectedShopify, useCreateCart, useCurrency, useCurrentDevice, useCurrentVariant, useCurrentVariantInStock, useEditorMode, useFeaturedImageGlobal, useFormatMoney, useHasPreSelected, useInitialSwatchesOptions, useIsSampleProduct, useIsStorefrontProduct, useIsSyncProduct, useIsomorphicLayoutEffect, useLazyVideo, useLoadScript, useLocale, useMatchMutate, useMobileOnly, useModalStore, useMoney, useMoneyFormat, usePageStore, usePageType, usePluginEnable, usePrevious, useProduct, useProductList, useProductListProducts, useProductListSettings, useProductListStore, useProductListStyles, useProductOfferDiscount, useProductProperties, useProductQuery, useProductStore, useProductsQuery, useProductsQueryAll, useQuantity, useRemoveCartItem, useSection, useSectionStore, useSelectedOption, useShopStore, useStoreFront, useSuspenseFetch, useSwatches, useSwatchesOptions, useUniqProductID, useUpdateCartItem, useVariant, useVariantOutStock, useVariants, validateEmail };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/core",
3
- "version": "1.50.2",
3
+ "version": "1.51.0",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -27,8 +27,8 @@
27
27
  "type-check": "yarn tsc --noEmit"
28
28
  },
29
29
  "devDependencies": {
30
- "@gem-sdk/adapter-shopify": "1.50.0",
31
- "@gem-sdk/styles": "1.50.0",
30
+ "@gem-sdk/adapter-shopify": "1.51.0",
31
+ "@gem-sdk/styles": "1.51.0",
32
32
  "@types/classnames": "^2.3.1"
33
33
  },
34
34
  "dependencies": {