@gem-sdk/core 1.48.0-dev.4 → 1.48.0-dev.45

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.
@@ -46,7 +46,7 @@ const InteractionSuffix = ({ tag, uid })=>{
46
46
  isCurrentInteractionTarget
47
47
  ]);
48
48
  if (!isDisplay) {
49
- return undefined;
49
+ return /*#__PURE__*/ jsxRuntime.jsx(jsxRuntime.Fragment, {});
50
50
  }
51
51
  return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
52
52
  children: [
@@ -234,6 +234,7 @@ const appendAnimation = (props, liquid)=>{
234
234
  const appearTablet = getAnimationType(getSettingsByDevice('tablet'), 'appear');
235
235
  const appearMobile = getAnimationType(getSettingsByDevice('mobile'), 'appear');
236
236
  const enableAnimation = animation?.desktop?.enabled && (appearDesktop !== 'none' || hoverDesktop !== 'none') || animation?.tablet?.enabled && appearTablet !== 'none' || animation?.mobile?.enabled && appearMobile !== 'none';
237
+ if (!enableAnimation) return liquid;
237
238
  const getInitVisibility = (device)=>getSettingsByDevice(device)?.enabled && ![
238
239
  'shake',
239
240
  'none'
@@ -248,8 +249,7 @@ const appendAnimation = (props, liquid)=>{
248
249
  gp-data='${JSON.stringify({
249
250
  config: animation,
250
251
  tag,
251
- opacity,
252
- isEnableInit: enableAnimation
252
+ opacity
253
253
  })}'
254
254
  style="${{
255
255
  display: 'contents'
@@ -6,6 +6,7 @@
6
6
  title
7
7
  description
8
8
  descriptionHtml
9
+ createdAt
9
10
  handle
10
11
  averageRating
11
12
  isStorefront
@@ -28,6 +28,10 @@
28
28
  themePageCustomFonts {
29
29
  ...CustomFontSelect
30
30
  }
31
+ interaction {
32
+ id
33
+ value
34
+ }
31
35
  }
32
36
  `;
33
37
  const PreviewThemePageSelect = `
@@ -55,6 +59,10 @@ const PreviewThemePageSelect = `
55
59
  themePageCustomCode {
56
60
  ...CustomCodeSelect
57
61
  }
62
+ interaction {
63
+ id
64
+ value
65
+ }
58
66
  }
59
67
  `;
60
68
 
@@ -121,7 +121,7 @@ const getBgAttachmentByDevice = (background, device)=>{
121
121
  return background?.[device]?.attachment;
122
122
  };
123
123
  const composeBackgroundCss = (backgroundColor)=>{
124
- return `${backgroundColor ? `background-color: ${colors.getSingleColorVariable(backgroundColor)} !important;` : undefined}`;
124
+ return `${backgroundColor ? `background-color: ${colors.getSingleColorVariable(backgroundColor)};` : undefined}`;
125
125
  };
126
126
  const makeFixedBgAttachment = (background)=>{
127
127
  if (!background) return;
@@ -36,7 +36,7 @@ const getProduct = async (fetcher, { id, isSample, isStorefront })=>{
36
36
  };
37
37
  };
38
38
  const orderBy = {
39
- field: 'CREATED_AT',
39
+ field: 'PLATFORM_CREATED_AT',
40
40
  direction: 'DESC'
41
41
  };
42
42
  const fetchProduct = async (fetcher, { id, isSample, isStorefront })=>{
@@ -78,8 +78,22 @@ 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 AssortionUpsellBundlesConfig = {
88
+ AssortionUpsellBundles: {
89
+ appName: 'assortion',
90
+ appId: '5588d7f9-a5bc-4f4a-9c54-39b7e081dd23'
91
+ }
92
+ };
81
93
 
94
+ exports.AssortionUpsellBundlesConfig = AssortionUpsellBundlesConfig;
82
95
  exports.BonLoyaltyRewardsReferralsConfig = BonLoyaltyRewardsReferralsConfig;
96
+ exports.EasyBundleBuilderSkailamaConfig = EasyBundleBuilderSkailamaConfig;
83
97
  exports.FastBundleBundlesDiscountsConfig = FastBundleBundlesDiscountsConfig;
84
98
  exports.KiteFreeGiftDiscountConfig = KiteFreeGiftDiscountConfig;
85
99
  exports.LoopSubscriptionsConfig = LoopSubscriptionsConfig;
@@ -129,7 +129,21 @@ const SimpleBundlesKits = {
129
129
  'infinite-options-selector': null
130
130
  }
131
131
  };
132
+ const EasyBundleBuilderSkailama = {
133
+ EasyBundleBuilderSkailama: {
134
+ 'app-block-bundlePage': null
135
+ }
136
+ };
137
+ const AssortionUpsellBundles = {
138
+ AssortionUpsellBundles: {
139
+ volume: null,
140
+ bundle: null,
141
+ addon: null
142
+ }
143
+ };
132
144
  const composeSettingsByWidgetType = {
145
+ ...AssortionUpsellBundles,
146
+ ...EasyBundleBuilderSkailama,
133
147
  ...FastBundleBundlesDiscounts,
134
148
  ...KiteFreeGiftDiscount,
135
149
  ...UnlimitedBundlesDiscounts,
@@ -15,7 +15,9 @@ 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.AssortionUpsellBundlesConfig
19
21
  };
20
22
  const THIRD_PARTY_APP_BLOCK_ID_PREFIX = 'gp_app';
21
23
 
@@ -76,8 +76,10 @@ const composeTypographyV2 = (value, attrs)=>{
76
76
  });
77
77
  };
78
78
  const composeFontFamilyTypographyV2 = (value)=>{
79
- const fontFamily = value?.fontFamily;
80
- if (!fontFamily) return;
79
+ const { fontFamily, isCustom, fallbackFontFamily } = value || {};
80
+ if (!fontFamily) {
81
+ return isCustom ? fallbackFontFamily : undefined;
82
+ }
81
83
  if (typeof fontFamily === 'string') {
82
84
  return getFontUsedByTypographyV2({
83
85
  fontFamily,
@@ -119,15 +121,7 @@ const composeTypographyClassName = (typo, typography)=>{
119
121
  return typo ? typo?.type && !isCustomTypo(typo.custom) ? genTypoClass(typo.type) : '' : typography?.type && genTypoClass(typography?.type);
120
122
  };
121
123
  const composeFallbackTypographyStyle = (tag)=>{
122
- if ([
123
- 'heading',
124
- 'heading-1',
125
- 'heading-2',
126
- 'heading-3',
127
- 'heading-4',
128
- 'heading-5',
129
- 'heading-6'
130
- ].includes(tag)) {
124
+ if (tag.toLocaleLowerCase().includes('heading')) {
131
125
  return 'var(--g-font-heading, heading)';
132
126
  }
133
127
  return 'var(--g-font-body, body)';
@@ -137,7 +131,8 @@ const composeTypographyStyle = (typo, typography, disableAttr)=>{
137
131
  const fallbackFontFamily = composeFallbackTypographyStyle(typo.type ?? 'heading');
138
132
  const customTypo = {
139
133
  ...typo.custom,
140
- fallbackFontFamily: fallbackFontFamily
134
+ fallbackFontFamily: fallbackFontFamily,
135
+ isCustom: !!typo.custom
141
136
  };
142
137
  return {
143
138
  ...composeTypographyV2(customTypo, typo.attrs),
@@ -1,4 +1,4 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import { useMemo } from 'react';
3
3
  import 'zustand';
4
4
  import 'swr';
@@ -44,7 +44,7 @@ const InteractionSuffix = ({ tag, uid })=>{
44
44
  isCurrentInteractionTarget
45
45
  ]);
46
46
  if (!isDisplay) {
47
- return undefined;
47
+ return /*#__PURE__*/ jsx(Fragment, {});
48
48
  }
49
49
  return /*#__PURE__*/ jsxs(Fragment, {
50
50
  children: [
@@ -230,6 +230,7 @@ const appendAnimation = (props, liquid)=>{
230
230
  const appearTablet = getAnimationType(getSettingsByDevice('tablet'), 'appear');
231
231
  const appearMobile = getAnimationType(getSettingsByDevice('mobile'), 'appear');
232
232
  const enableAnimation = animation?.desktop?.enabled && (appearDesktop !== 'none' || hoverDesktop !== 'none') || animation?.tablet?.enabled && appearTablet !== 'none' || animation?.mobile?.enabled && appearMobile !== 'none';
233
+ if (!enableAnimation) return liquid;
233
234
  const getInitVisibility = (device)=>getSettingsByDevice(device)?.enabled && ![
234
235
  'shake',
235
236
  'none'
@@ -244,8 +245,7 @@ const appendAnimation = (props, liquid)=>{
244
245
  gp-data='${JSON.stringify({
245
246
  config: animation,
246
247
  tag,
247
- opacity,
248
- isEnableInit: enableAnimation
248
+ opacity
249
249
  })}'
250
250
  style="${{
251
251
  display: 'contents'
@@ -4,6 +4,7 @@
4
4
  title
5
5
  description
6
6
  descriptionHtml
7
+ createdAt
7
8
  handle
8
9
  averageRating
9
10
  isStorefront
@@ -26,6 +26,10 @@
26
26
  themePageCustomFonts {
27
27
  ...CustomFontSelect
28
28
  }
29
+ interaction {
30
+ id
31
+ value
32
+ }
29
33
  }
30
34
  `;
31
35
  const PreviewThemePageSelect = `
@@ -53,6 +57,10 @@ const PreviewThemePageSelect = `
53
57
  themePageCustomCode {
54
58
  ...CustomCodeSelect
55
59
  }
60
+ interaction {
61
+ id
62
+ value
63
+ }
56
64
  }
57
65
  `;
58
66
 
@@ -119,7 +119,7 @@ const getBgAttachmentByDevice = (background, device)=>{
119
119
  return background?.[device]?.attachment;
120
120
  };
121
121
  const composeBackgroundCss = (backgroundColor)=>{
122
- return `${backgroundColor ? `background-color: ${getSingleColorVariable(backgroundColor)} !important;` : undefined}`;
122
+ return `${backgroundColor ? `background-color: ${getSingleColorVariable(backgroundColor)};` : undefined}`;
123
123
  };
124
124
  const makeFixedBgAttachment = (background)=>{
125
125
  if (!background) return;
@@ -34,7 +34,7 @@ const getProduct = async (fetcher, { id, isSample, isStorefront })=>{
34
34
  };
35
35
  };
36
36
  const orderBy = {
37
- field: 'CREATED_AT',
37
+ field: 'PLATFORM_CREATED_AT',
38
38
  direction: 'DESC'
39
39
  };
40
40
  const fetchProduct = async (fetcher, { id, isSample, isStorefront })=>{
@@ -76,5 +76,17 @@ 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 AssortionUpsellBundlesConfig = {
86
+ AssortionUpsellBundles: {
87
+ appName: 'assortion',
88
+ appId: '5588d7f9-a5bc-4f4a-9c54-39b7e081dd23'
89
+ }
90
+ };
79
91
 
80
- export { BonLoyaltyRewardsReferralsConfig, FastBundleBundlesDiscountsConfig, KiteFreeGiftDiscountConfig, LoopSubscriptionsConfig, PumperBundlesVolumeDiscountConfig, RechargeSubscriptionsConfig, ReviewxpoProductReviewsAppConfig, SelleasyConfig, ShopifyFormsConfig, SimpleBundlesKitsConfig, SkioSubscriptionsYcS20Config, SubifySubscriptionsConfig, UnlimitedBundlesDiscountsConfig };
92
+ export { AssortionUpsellBundlesConfig, BonLoyaltyRewardsReferralsConfig, EasyBundleBuilderSkailamaConfig, FastBundleBundlesDiscountsConfig, KiteFreeGiftDiscountConfig, LoopSubscriptionsConfig, PumperBundlesVolumeDiscountConfig, RechargeSubscriptionsConfig, ReviewxpoProductReviewsAppConfig, SelleasyConfig, ShopifyFormsConfig, SimpleBundlesKitsConfig, SkioSubscriptionsYcS20Config, SubifySubscriptionsConfig, UnlimitedBundlesDiscountsConfig };
@@ -127,7 +127,21 @@ const SimpleBundlesKits = {
127
127
  'infinite-options-selector': null
128
128
  }
129
129
  };
130
+ const EasyBundleBuilderSkailama = {
131
+ EasyBundleBuilderSkailama: {
132
+ 'app-block-bundlePage': null
133
+ }
134
+ };
135
+ const AssortionUpsellBundles = {
136
+ AssortionUpsellBundles: {
137
+ volume: null,
138
+ bundle: null,
139
+ addon: null
140
+ }
141
+ };
130
142
  const composeSettingsByWidgetType = {
143
+ ...AssortionUpsellBundles,
144
+ ...EasyBundleBuilderSkailama,
131
145
  ...FastBundleBundlesDiscounts,
132
146
  ...KiteFreeGiftDiscount,
133
147
  ...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, AssortionUpsellBundlesConfig } from './appConfig.js';
2
2
 
3
3
  const mapShopifyAppMeta = {
4
4
  ...RechargeSubscriptionsConfig,
@@ -13,7 +13,9 @@ const mapShopifyAppMeta = {
13
13
  ...UnlimitedBundlesDiscountsConfig,
14
14
  ...KiteFreeGiftDiscountConfig,
15
15
  ...FastBundleBundlesDiscountsConfig,
16
- ...SimpleBundlesKitsConfig
16
+ ...SimpleBundlesKitsConfig,
17
+ ...EasyBundleBuilderSkailamaConfig,
18
+ ...AssortionUpsellBundlesConfig
17
19
  };
18
20
  const THIRD_PARTY_APP_BLOCK_ID_PREFIX = 'gp_app';
19
21
 
@@ -74,8 +74,10 @@ const composeTypographyV2 = (value, attrs)=>{
74
74
  });
75
75
  };
76
76
  const composeFontFamilyTypographyV2 = (value)=>{
77
- const fontFamily = value?.fontFamily;
78
- if (!fontFamily) return;
77
+ const { fontFamily, isCustom, fallbackFontFamily } = value || {};
78
+ if (!fontFamily) {
79
+ return isCustom ? fallbackFontFamily : undefined;
80
+ }
79
81
  if (typeof fontFamily === 'string') {
80
82
  return getFontUsedByTypographyV2({
81
83
  fontFamily,
@@ -117,15 +119,7 @@ const composeTypographyClassName = (typo, typography)=>{
117
119
  return typo ? typo?.type && !isCustomTypo(typo.custom) ? genTypoClass(typo.type) : '' : typography?.type && genTypoClass(typography?.type);
118
120
  };
119
121
  const composeFallbackTypographyStyle = (tag)=>{
120
- if ([
121
- 'heading',
122
- 'heading-1',
123
- 'heading-2',
124
- 'heading-3',
125
- 'heading-4',
126
- 'heading-5',
127
- 'heading-6'
128
- ].includes(tag)) {
122
+ if (tag.toLocaleLowerCase().includes('heading')) {
129
123
  return 'var(--g-font-heading, heading)';
130
124
  }
131
125
  return 'var(--g-font-body, body)';
@@ -135,7 +129,8 @@ const composeTypographyStyle = (typo, typography, disableAttr)=>{
135
129
  const fallbackFontFamily = composeFallbackTypographyStyle(typo.type ?? 'heading');
136
130
  const customTypo = {
137
131
  ...typo.custom,
138
- fallbackFontFamily: fallbackFontFamily
132
+ fallbackFontFamily: fallbackFontFamily,
133
+ isCustom: !!typo.custom
139
134
  };
140
135
  return {
141
136
  ...composeTypographyV2(customTypo, typo.attrs),
@@ -7334,6 +7334,7 @@ type Option$2<T> = {
7334
7334
  tooltip?: string;
7335
7335
  type?: string;
7336
7336
  note?: string;
7337
+ maxOption?: number;
7337
7338
  };
7338
7339
  type Mapped$3<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7339
7340
  id: K;
@@ -8032,8 +8033,79 @@ type ShapeSelectorControlType<T> = SharedControlType<T> & {
8032
8033
  type: 'shape-selector';
8033
8034
  };
8034
8035
 
8036
+ declare enum CompareType {
8037
+ EXACT = "exact",
8038
+ ABOVE = "above",
8039
+ BELOW = "below",
8040
+ EXACT_OR_ABOVE = "exact_or_above",
8041
+ EXACT_OR_BELOW = "exact_or_below",
8042
+ BETWEEN = "between"
8043
+ }
8044
+ declare enum TriggerType {
8045
+ INVENTORY_STATUS = "inventory_status",
8046
+ DISCOUNT_PRICE = "discount_price",
8047
+ PRICE_RANGE = "price_range",
8048
+ PRODUCT_TAGS = "product_tags",
8049
+ CREATION_DATE = "creation_date"
8050
+ }
8051
+ declare enum InventoryStatus {
8052
+ IN_STOCK = "in_stock",
8053
+ OUT_OF_STOCK = "out_of_stock"
8054
+ }
8055
+ declare enum CreationDateType {
8056
+ DURATION = "duration",
8057
+ EXACT_DATE = "exact_date",
8058
+ BETWEEN_DATES = "between_dates"
8059
+ }
8060
+ declare enum DiscountType {
8061
+ PERCENT = "percent",
8062
+ FIXED = "fixed"
8063
+ }
8064
+ type InventoryStatusTrigger = {
8065
+ triggerEvent: TriggerType.INVENTORY_STATUS;
8066
+ type: InventoryStatus;
8067
+ quantityType: CompareType;
8068
+ from: string;
8069
+ to?: string;
8070
+ priority: number;
8071
+ conditionType?: CompareType;
8072
+ };
8073
+ type DiscountPriceTrigger = {
8074
+ triggerEvent: TriggerType.DISCOUNT_PRICE;
8075
+ type: CompareType;
8076
+ amount?: string;
8077
+ from?: string;
8078
+ to?: string;
8079
+ priority: number;
8080
+ conditionType?: CompareType;
8081
+ discountType?: DiscountType;
8082
+ };
8083
+ type PriceRangeTrigger = {
8084
+ triggerEvent: TriggerType.PRICE_RANGE;
8085
+ from: string;
8086
+ to: string;
8087
+ priority: number;
8088
+ conditionType?: CompareType;
8089
+ };
8090
+ type CreationDateTrigger = {
8091
+ triggerEvent: TriggerType.CREATION_DATE;
8092
+ type: CreationDateType;
8093
+ days: string;
8094
+ from: string;
8095
+ to: string;
8096
+ priority: number;
8097
+ conditionType?: CompareType;
8098
+ };
8099
+ type ProductTagTrigger = {
8100
+ triggerEvent: TriggerType.PRODUCT_TAGS;
8101
+ searchTag: string[];
8102
+ priority: number;
8103
+ conditionType?: CompareType;
8104
+ };
8105
+ type TDisplayTrigger = InventoryStatusTrigger | DiscountPriceTrigger | PriceRangeTrigger | ProductTagTrigger | CreationDateTrigger;
8035
8106
  type DisplayTriggerControlType<T> = SharedControlType<T> & {
8036
8107
  type: 'display-trigger-badge';
8108
+ default: TDisplayTrigger[];
8037
8109
  };
8038
8110
 
8039
8111
  type CustomPositionControlType<T> = SharedControlType<T> & {
@@ -8060,6 +8132,87 @@ type SelectProductBundleControlType<T> = SharedControlType<T> & {
8060
8132
  hide?: boolean;
8061
8133
  };
8062
8134
 
8135
+ type SettingStateType = 'normal' | 'hover' | 'focus' | 'active' | 'price' | 'compareAtPrice';
8136
+ type LangKey = 'en' | 'vi';
8137
+ type LabelWithLang = {
8138
+ [P in keyof Record<LangKey, ''>]?: string;
8139
+ };
8140
+ type SettingMediaType = 'image' | 'youtubeVideoID';
8141
+ type SettingUIHelpType = {
8142
+ content: string;
8143
+ buttonLink?: string;
8144
+ media?: {
8145
+ value: string;
8146
+ type: SettingMediaType;
8147
+ };
8148
+ };
8149
+ type LinkWithSetting = {
8150
+ name: string;
8151
+ state?: string;
8152
+ field?: string;
8153
+ };
8154
+ type ControlConfig = ControlProp<any> & {
8155
+ linkWithSetting?: LinkWithSetting;
8156
+ };
8157
+ type SettingUIControl = {
8158
+ id?: string;
8159
+ controlConfig?: ControlConfig;
8160
+ isCompo?: boolean;
8161
+ layout?: 'vertical' | 'horizontal';
8162
+ toggleGroupId?: string;
8163
+ label?: LabelWithLang;
8164
+ conditionDisplay?: string;
8165
+ conditionEnable?: string;
8166
+ options?: {
8167
+ hideOnDevices?: Record<NameDevices$1, boolean>;
8168
+ fullWidth?: boolean;
8169
+ disableMessage?: string;
8170
+ };
8171
+ setting?: {
8172
+ id: string;
8173
+ state?: SettingStateType;
8174
+ };
8175
+ searchKeyword?: string;
8176
+ } & SettingUICompo;
8177
+ type SettingUICompo = {
8178
+ controls?: SettingUIControl[];
8179
+ iconName?: string;
8180
+ getValueFromSettingID?: string;
8181
+ fixedValue?: string;
8182
+ placeholder?: string;
8183
+ help?: SettingUIHelpType;
8184
+ };
8185
+ type SettingUIMoreSetting = {
8186
+ label?: LabelWithLang;
8187
+ labelAction?: LabelWithLang;
8188
+ controls?: SettingUIControl[];
8189
+ help?: SettingUIHelpType;
8190
+ };
8191
+ type SettingUIToggleGroup = {
8192
+ label?: LabelWithLang;
8193
+ id?: string;
8194
+ controls?: SettingUIControl[];
8195
+ };
8196
+ type SettingUIToggleSettings = {
8197
+ type: 'control' | 'toggleGroup';
8198
+ controls?: SettingUIControl[];
8199
+ isActiveDefault?: boolean;
8200
+ } & SettingUIControl & SettingUIToggleGroup;
8201
+ type SettingUIGroup = {
8202
+ label?: LabelWithLang;
8203
+ message?: string;
8204
+ disableToggle?: boolean;
8205
+ conditionDisplay?: string;
8206
+ conditionEnable?: string;
8207
+ controls?: SettingUIControl[];
8208
+ moreSettings?: SettingUIMoreSetting;
8209
+ toggleSettings?: SettingUIToggleSettings[];
8210
+ help?: SettingUIHelpType;
8211
+ options?: {
8212
+ disableMessage?: string;
8213
+ };
8214
+ };
8215
+
8063
8216
  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> | CustomPositionControlType<T> | SneakPeakControlType<T> | PostPurchaseTextareaControlType<T> | DealControlType<T> | DisplayTriggerControlType<T>;
8064
8217
  type ControlTriggerAction = {
8065
8218
  controlId: string;
@@ -8131,6 +8284,7 @@ type ComponentSetting<P extends BaseProps> = {
8131
8284
  };
8132
8285
  };
8133
8286
  ui?: ControlUI[];
8287
+ uiV2?: SettingUIGroup[];
8134
8288
  presets?: ComponentPreset[];
8135
8289
  locales?: Record<string, any>;
8136
8290
  };
@@ -28415,6 +28569,7 @@ type TypographyProps = {
28415
28569
  fallbackFontFamily?: string;
28416
28570
  textShadow?: ShadowProps;
28417
28571
  hasShadowText?: boolean;
28572
+ isCustom?: boolean;
28418
28573
  };
28419
28574
  type TypographyV2Props = Omit<TypographyProps, 'fontSize' | 'lineHeight'> & {
28420
28575
  fontSize?: ObjectDevices<string>;
@@ -28823,7 +28978,7 @@ type ProductListProviderProps = ProductListContextProps & {
28823
28978
  declare const ProductListProvider: React.FC<ProductListProviderProps>;
28824
28979
  declare const useProductListStore: <U>(selector: (state: ExtractState<StoreApi<ProductListContextProps>>) => U, equalityFn?: ((a: U, b: U) => boolean) | undefined) => U;
28825
28980
 
28826
- type ProductSelectFragment = Pick<Product$1, 'tags' | 'id' | 'title' | 'description' | 'descriptionHtml' | 'handle' | 'averageRating' | 'isStorefront' | 'isSample' | 'baseID' | 'sku' | 'vendor'> & {
28981
+ type ProductSelectFragment = Pick<Product$1, 'tags' | 'id' | 'title' | 'createdAt' | 'description' | 'descriptionHtml' | 'handle' | 'averageRating' | 'isStorefront' | 'isSample' | 'baseID' | 'sku' | 'vendor'> & {
28827
28982
  collections?: Maybe$1<{
28828
28983
  edges: Array<{
28829
28984
  node?: Maybe$1<Pick<Collection$1, 'id' | 'title'>>;
@@ -29187,6 +29342,7 @@ type PublishedThemePagesQueryResponse = {
29187
29342
  themePageAnalytic?: Maybe$1<Pick<Analytic$1, 'fbPixelID' | 'gaTrackingID' | 'tiktokPixelID'>>;
29188
29343
  themePageCustomCode?: Maybe$1<Pick<CustomCode$1, 'body' | 'header'>>;
29189
29344
  themePageCustomFonts?: Maybe$1<Array<Maybe$1<CustomFont$1>>>;
29345
+ interaction?: Maybe$1<Pick<PublishedPageInteraction$1, 'id' | 'value'>>;
29190
29346
  }>>>;
29191
29347
  };
29192
29348
  declare const PublishedThemePagesDocument: string;
@@ -29264,6 +29420,7 @@ type PreviewPageQueryResponse = {
29264
29420
  pageStyle?: Maybe$1<Pick<PublishedThemeStyle$1, 'id' | 'data' | 'name'>>;
29265
29421
  themePageAnalytic?: Maybe$1<Pick<Analytic$1, 'fbPixelID' | 'gaTrackingID' | 'tiktokPixelID'>>;
29266
29422
  themePageCustomCode?: Maybe$1<Pick<CustomCode$1, 'body' | 'header'>>;
29423
+ interaction?: Maybe$1<Pick<PublishedPageInteraction$1, 'id' | 'value'>>;
29267
29424
  }>;
29268
29425
  };
29269
29426
  declare const PreviewPageDocument: string;
@@ -29883,6 +30040,15 @@ declare const filterAttrInStyle: (style?: React.CSSProperties, filterKeys?: stri
29883
30040
  '--gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
29884
30041
  '--hvr-gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
29885
30042
  '--focus-gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
30043
+ '--gr'?: csstype.Property.GridRow | undefined;
30044
+ '--hvr-gr'?: csstype.Property.GridRow | undefined;
30045
+ '--focus-gr'?: csstype.Property.GridRow | undefined;
30046
+ '--gr-tablet'?: csstype.Property.GridRow | undefined;
30047
+ '--hvr-gr-tablet'?: csstype.Property.GridRow | undefined;
30048
+ '--focus-gr-tablet'?: csstype.Property.GridRow | undefined;
30049
+ '--gr-mobile'?: csstype.Property.GridRow | undefined;
30050
+ '--hvr-gr-mobile'?: csstype.Property.GridRow | undefined;
30051
+ '--focus-gr-mobile'?: csstype.Property.GridRow | undefined;
29886
30052
  '--gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
29887
30053
  '--hvr-gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
29888
30054
  '--focus-gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
@@ -31387,6 +31553,15 @@ declare const removeAttrInStyle: (style?: React.CSSProperties, filterKeys?: stri
31387
31553
  '--gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
31388
31554
  '--hvr-gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
31389
31555
  '--focus-gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
31556
+ '--gr'?: csstype.Property.GridRow | undefined;
31557
+ '--hvr-gr'?: csstype.Property.GridRow | undefined;
31558
+ '--focus-gr'?: csstype.Property.GridRow | undefined;
31559
+ '--gr-tablet'?: csstype.Property.GridRow | undefined;
31560
+ '--hvr-gr-tablet'?: csstype.Property.GridRow | undefined;
31561
+ '--focus-gr-tablet'?: csstype.Property.GridRow | undefined;
31562
+ '--gr-mobile'?: csstype.Property.GridRow | undefined;
31563
+ '--hvr-gr-mobile'?: csstype.Property.GridRow | undefined;
31564
+ '--focus-gr-mobile'?: csstype.Property.GridRow | undefined;
31390
31565
  '--gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
31391
31566
  '--hvr-gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
31392
31567
  '--focus-gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
@@ -32891,6 +33066,15 @@ declare const filterCornerInStyle: (style?: React.CSSProperties) => {
32891
33066
  '--gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
32892
33067
  '--hvr-gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
32893
33068
  '--focus-gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
33069
+ '--gr'?: csstype.Property.GridRow | undefined;
33070
+ '--hvr-gr'?: csstype.Property.GridRow | undefined;
33071
+ '--focus-gr'?: csstype.Property.GridRow | undefined;
33072
+ '--gr-tablet'?: csstype.Property.GridRow | undefined;
33073
+ '--hvr-gr-tablet'?: csstype.Property.GridRow | undefined;
33074
+ '--focus-gr-tablet'?: csstype.Property.GridRow | undefined;
33075
+ '--gr-mobile'?: csstype.Property.GridRow | undefined;
33076
+ '--hvr-gr-mobile'?: csstype.Property.GridRow | undefined;
33077
+ '--focus-gr-mobile'?: csstype.Property.GridRow | undefined;
32894
33078
  '--gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
32895
33079
  '--hvr-gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
32896
33080
  '--focus-gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
@@ -34395,6 +34579,15 @@ declare const removePaddingYInStyle: (style?: React.CSSProperties) => {
34395
34579
  '--gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
34396
34580
  '--hvr-gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
34397
34581
  '--focus-gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
34582
+ '--gr'?: csstype.Property.GridRow | undefined;
34583
+ '--hvr-gr'?: csstype.Property.GridRow | undefined;
34584
+ '--focus-gr'?: csstype.Property.GridRow | undefined;
34585
+ '--gr-tablet'?: csstype.Property.GridRow | undefined;
34586
+ '--hvr-gr-tablet'?: csstype.Property.GridRow | undefined;
34587
+ '--focus-gr-tablet'?: csstype.Property.GridRow | undefined;
34588
+ '--gr-mobile'?: csstype.Property.GridRow | undefined;
34589
+ '--hvr-gr-mobile'?: csstype.Property.GridRow | undefined;
34590
+ '--focus-gr-mobile'?: csstype.Property.GridRow | undefined;
34398
34591
  '--gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
34399
34592
  '--hvr-gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
34400
34593
  '--focus-gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
@@ -36039,6 +36232,15 @@ declare const composeTypographyStyle: (typo?: TypographySettingV2, typography?:
36039
36232
  '--gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
36040
36233
  '--hvr-gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
36041
36234
  '--focus-gg-mobile'?: csstype.Property.GridGap<string | number> | undefined;
36235
+ '--gr'?: csstype.Property.GridRow | undefined;
36236
+ '--hvr-gr'?: csstype.Property.GridRow | undefined;
36237
+ '--focus-gr'?: csstype.Property.GridRow | undefined;
36238
+ '--gr-tablet'?: csstype.Property.GridRow | undefined;
36239
+ '--hvr-gr-tablet'?: csstype.Property.GridRow | undefined;
36240
+ '--focus-gr-tablet'?: csstype.Property.GridRow | undefined;
36241
+ '--gr-mobile'?: csstype.Property.GridRow | undefined;
36242
+ '--hvr-gr-mobile'?: csstype.Property.GridRow | undefined;
36243
+ '--focus-gr-mobile'?: csstype.Property.GridRow | undefined;
36042
36244
  '--gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
36043
36245
  '--hvr-gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
36044
36246
  '--focus-gtc'?: csstype.Property.GridTemplateColumns<string | number> | undefined;
@@ -37532,6 +37734,7 @@ type PublishedThemePageSelectFragment = Pick<PublishedThemePage$1, 'id' | 'name'
37532
37734
  pageStyle?: Maybe$1<Pick<PublishedThemeStyle$1, 'id' | 'data' | 'name'>>;
37533
37735
  themePageAnalytic?: Maybe$1<Pick<Analytic$1, 'fbPixelID' | 'gaTrackingID' | 'tiktokPixelID'>>;
37534
37736
  themePageCustomCode?: Maybe$1<Pick<CustomCode$1, 'body' | 'header'>>;
37737
+ interaction?: Maybe$1<Pick<PublishedPageInteraction$1, 'id' | 'value'>>;
37535
37738
  };
37536
37739
 
37537
37740
  declare const getProductBySlug: (fetcher: FetchFunc, slug?: string) => Promise<ProductSelectFragment>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/core",
3
- "version": "1.48.0-dev.4",
3
+ "version": "1.48.0-dev.45",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "devDependencies": {
30
30
  "@gem-sdk/adapter-shopify": "1.48.0-dev.3",
31
- "@gem-sdk/styles": "1.48.0-dev.3",
31
+ "@gem-sdk/styles": "1.48.0-dev.32",
32
32
  "@types/classnames": "^2.3.1"
33
33
  },
34
34
  "dependencies": {