@gem-sdk/core 1.58.0-dev.68 → 1.58.0-dev.80

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.
@@ -118,7 +118,8 @@ function composeAdvanceStyle(data, tag, pageType) {
118
118
  'Text',
119
119
  'Heading',
120
120
  'Image',
121
- 'Button'
121
+ 'Button',
122
+ 'HeroBanner'
122
123
  ];
123
124
  const productElements = [
124
125
  'ProductTitle',
@@ -198,6 +198,12 @@ const AftershipEmailMarketingsmsConfig = {
198
198
  appId: '2db13273-f8db-4274-be89-c86a3352fb70'
199
199
  }
200
200
  };
201
+ const SegunoEmailMarketingConfig = {
202
+ SegunoEmailMarketing: {
203
+ appName: 'seguno-email',
204
+ appId: 'db65571f-fa4d-473d-baa2-283a96dc76bc'
205
+ }
206
+ };
201
207
 
202
208
  exports.AftershipEmailMarketingsmsConfig = AftershipEmailMarketingsmsConfig;
203
209
  exports.AppointmentBookingCowlendarConfig = AppointmentBookingCowlendarConfig;
@@ -222,6 +228,7 @@ exports.ProductOptionsCustomizerConfig = ProductOptionsCustomizerConfig;
222
228
  exports.PumperBundlesVolumeDiscountConfig = PumperBundlesVolumeDiscountConfig;
223
229
  exports.RechargeSubscriptionsConfig = RechargeSubscriptionsConfig;
224
230
  exports.ReviewxpoProductReviewsAppConfig = ReviewxpoProductReviewsAppConfig;
231
+ exports.SegunoEmailMarketingConfig = SegunoEmailMarketingConfig;
225
232
  exports.SelleasyConfig = SelleasyConfig;
226
233
  exports.ShopifyFormsConfig = ShopifyFormsConfig;
227
234
  exports.SimpleBundlesKitsConfig = SimpleBundlesKitsConfig;
@@ -99,7 +99,14 @@ const overrideSettings = (tag, currentSetting, appSetting)=>{
99
99
  {
100
100
  return {
101
101
  ...currentSetting,
102
- ['show-views']: appSetting?.showViews
102
+ 'show-views': appSetting?.showViews,
103
+ heading: appSetting?.heading,
104
+ 'template-type': appSetting?.templateType,
105
+ 'title-font-size': parseFloat(appSetting?.titleFontSize),
106
+ 'landscape-padding': parseFloat(appSetting?.landscapePadding),
107
+ 'top-bottom-padding': parseFloat(appSetting?.topBottomPadding),
108
+ 'scroll-video-tile-size': parseFloat(appSetting?.scrollVideoTitleSize),
109
+ 'scroll-video-tile-size-portrait': parseFloat(appSetting?.scrollVideoTitleSizePortrait)
103
110
  };
104
111
  }
105
112
  case 'PowerfulContactFormBuilder':
@@ -462,7 +469,60 @@ const AftershipEmailMarketingsms = {
462
469
  }
463
470
  }
464
471
  };
472
+ const SegunoEmailMarketing = {
473
+ SegunoEmailMarketing: {
474
+ back_in_stock: {
475
+ heading: '<h3>Get notified when this is back in stock</h3>',
476
+ label_email: 'Email',
477
+ placeholder_email: '',
478
+ show_permission_checkbox: true,
479
+ label_permission: '<p>Also, sign up to receive newsletters</p>',
480
+ label_notify: 'Notify me',
481
+ label_success: '<p>Thanks! You will be notified once the product is back in stock.</p>',
482
+ product_exclusion_tag: 'back-in-stock-excluded',
483
+ default_variant: 'available',
484
+ padding: 0,
485
+ form_gap: 16,
486
+ button_alignment: 'stretch',
487
+ font_size: 16,
488
+ input_font_size: 16,
489
+ button_font_size: 16,
490
+ background_color: '#ffffff',
491
+ text_color: '#121212',
492
+ button_background_color: '#121212',
493
+ button_border_color: '#121212',
494
+ button_text_color: '#ffffff',
495
+ input_background_color: '#ffffff',
496
+ input_border_color: '#121212',
497
+ input_text_color: '#121212',
498
+ custom_css: ''
499
+ },
500
+ newsletter_form: {
501
+ heading: 'Subscribe to our newsletter',
502
+ subheading: '<p>Be the first to know about new collections and exclusive offers.</p>',
503
+ show_first_name: false,
504
+ show_last_name: false,
505
+ show_permission_checkbox: false,
506
+ tags: 'newsletter',
507
+ return_to: '',
508
+ label_first_name: 'First name',
509
+ placeholder_first_name: '',
510
+ label_last_name: 'Last name',
511
+ placeholder_last_name: '',
512
+ label_email: 'Email',
513
+ placeholder_email: '',
514
+ label_permission: '<p>I agree to receive marketing emails</p>',
515
+ label_subscribe: 'Subscribe',
516
+ success_message: 'Thanks for subscribing',
517
+ background_color: '#ffffff',
518
+ text_color: '#1a1b18',
519
+ button_background_color: '#445958',
520
+ button_text_color: '#ffffff'
521
+ }
522
+ }
523
+ };
465
524
  const composeSettingsByWidgetType = {
525
+ ...SegunoEmailMarketing,
466
526
  ...AftershipEmailMarketingsms,
467
527
  ...BestBuyFulfillment,
468
528
  ...GloboProductOptionsVariant,
@@ -35,7 +35,8 @@ const mapShopifyAppMeta = {
35
35
  ...appConfig.GloboProductOptionsVariantConfig,
36
36
  ...appConfig.KachingBundlesConfig,
37
37
  ...appConfig.BestBuyFulfillmentConfig,
38
- ...appConfig.AftershipEmailMarketingsmsConfig
38
+ ...appConfig.AftershipEmailMarketingsmsConfig,
39
+ ...appConfig.SegunoEmailMarketingConfig
39
40
  };
40
41
  const THIRD_PARTY_APP_BLOCK_ID_PREFIX = 'gp_app';
41
42
 
@@ -12,7 +12,7 @@ const listThirdPartyRejectAppBlock = {
12
12
  }
13
13
  };
14
14
  const getAppBlockConfig = (tag, appBlockId, settings)=>{
15
- if (listThirdPartyRejectAppBlock[tag] && eval(listThirdPartyRejectAppBlock[tag].conditionToReject)) {
15
+ if (listThirdPartyRejectAppBlock[tag] && eval(listThirdPartyRejectAppBlock[tag]?.conditionToReject ?? '')) {
16
16
  return;
17
17
  }
18
18
  let widgetType = settings?.widgetType;
@@ -116,7 +116,8 @@ function composeAdvanceStyle(data, tag, pageType) {
116
116
  'Text',
117
117
  'Heading',
118
118
  'Image',
119
- 'Button'
119
+ 'Button',
120
+ 'HeroBanner'
120
121
  ];
121
122
  const productElements = [
122
123
  'ProductTitle',
@@ -196,5 +196,11 @@ const AftershipEmailMarketingsmsConfig = {
196
196
  appId: '2db13273-f8db-4274-be89-c86a3352fb70'
197
197
  }
198
198
  };
199
+ const SegunoEmailMarketingConfig = {
200
+ SegunoEmailMarketing: {
201
+ appName: 'seguno-email',
202
+ appId: 'db65571f-fa4d-473d-baa2-283a96dc76bc'
203
+ }
204
+ };
199
205
 
200
- export { AftershipEmailMarketingsmsConfig, AppointmentBookingCowlendarConfig, BestBuyFulfillmentConfig, BoldSubscriptionsConfig, BonLoyaltyRewardsReferralsConfig, EasyBundleBuilderSkailamaConfig, FastBundleBundlesDiscountsConfig, FlyBundlesUpsellsFbtConfig, GloboProductOptionsVariantConfig, GrowaveConfig, InstasellShoppableInstagramConfig, JunipProductReviewsUgcConfig, KachingBundlesConfig, KiteFreeGiftDiscountConfig, LoloyalLoyaltyReferralsConfig, LoopSubscriptionsConfig, PowerfulContactFormBuilderConfig, PreorderNowPreOrderPqConfig, PreorderNowWodPresaleConfig, ProductOptionsCustomizerConfig, PumperBundlesVolumeDiscountConfig, RechargeSubscriptionsConfig, ReviewxpoProductReviewsAppConfig, SelleasyConfig, ShopifyFormsConfig, SimpleBundlesKitsConfig, SkioSubscriptionsYcS20Config, SproutPlantTreesGrowSalesConfig, SubifySubscriptionsConfig, UnlimitedBundlesDiscountsConfig, WhatmoreShoppableVideosreelConfig, WishlistKingConfig, YotpoReviewsV3UgcConfig };
206
+ export { AftershipEmailMarketingsmsConfig, AppointmentBookingCowlendarConfig, BestBuyFulfillmentConfig, BoldSubscriptionsConfig, BonLoyaltyRewardsReferralsConfig, EasyBundleBuilderSkailamaConfig, FastBundleBundlesDiscountsConfig, FlyBundlesUpsellsFbtConfig, GloboProductOptionsVariantConfig, GrowaveConfig, InstasellShoppableInstagramConfig, JunipProductReviewsUgcConfig, KachingBundlesConfig, KiteFreeGiftDiscountConfig, LoloyalLoyaltyReferralsConfig, LoopSubscriptionsConfig, PowerfulContactFormBuilderConfig, PreorderNowPreOrderPqConfig, PreorderNowWodPresaleConfig, ProductOptionsCustomizerConfig, PumperBundlesVolumeDiscountConfig, RechargeSubscriptionsConfig, ReviewxpoProductReviewsAppConfig, SegunoEmailMarketingConfig, SelleasyConfig, ShopifyFormsConfig, SimpleBundlesKitsConfig, SkioSubscriptionsYcS20Config, SproutPlantTreesGrowSalesConfig, SubifySubscriptionsConfig, UnlimitedBundlesDiscountsConfig, WhatmoreShoppableVideosreelConfig, WishlistKingConfig, YotpoReviewsV3UgcConfig };
@@ -97,7 +97,14 @@ const overrideSettings = (tag, currentSetting, appSetting)=>{
97
97
  {
98
98
  return {
99
99
  ...currentSetting,
100
- ['show-views']: appSetting?.showViews
100
+ 'show-views': appSetting?.showViews,
101
+ heading: appSetting?.heading,
102
+ 'template-type': appSetting?.templateType,
103
+ 'title-font-size': parseFloat(appSetting?.titleFontSize),
104
+ 'landscape-padding': parseFloat(appSetting?.landscapePadding),
105
+ 'top-bottom-padding': parseFloat(appSetting?.topBottomPadding),
106
+ 'scroll-video-tile-size': parseFloat(appSetting?.scrollVideoTitleSize),
107
+ 'scroll-video-tile-size-portrait': parseFloat(appSetting?.scrollVideoTitleSizePortrait)
101
108
  };
102
109
  }
103
110
  case 'PowerfulContactFormBuilder':
@@ -460,7 +467,60 @@ const AftershipEmailMarketingsms = {
460
467
  }
461
468
  }
462
469
  };
470
+ const SegunoEmailMarketing = {
471
+ SegunoEmailMarketing: {
472
+ back_in_stock: {
473
+ heading: '<h3>Get notified when this is back in stock</h3>',
474
+ label_email: 'Email',
475
+ placeholder_email: '',
476
+ show_permission_checkbox: true,
477
+ label_permission: '<p>Also, sign up to receive newsletters</p>',
478
+ label_notify: 'Notify me',
479
+ label_success: '<p>Thanks! You will be notified once the product is back in stock.</p>',
480
+ product_exclusion_tag: 'back-in-stock-excluded',
481
+ default_variant: 'available',
482
+ padding: 0,
483
+ form_gap: 16,
484
+ button_alignment: 'stretch',
485
+ font_size: 16,
486
+ input_font_size: 16,
487
+ button_font_size: 16,
488
+ background_color: '#ffffff',
489
+ text_color: '#121212',
490
+ button_background_color: '#121212',
491
+ button_border_color: '#121212',
492
+ button_text_color: '#ffffff',
493
+ input_background_color: '#ffffff',
494
+ input_border_color: '#121212',
495
+ input_text_color: '#121212',
496
+ custom_css: ''
497
+ },
498
+ newsletter_form: {
499
+ heading: 'Subscribe to our newsletter',
500
+ subheading: '<p>Be the first to know about new collections and exclusive offers.</p>',
501
+ show_first_name: false,
502
+ show_last_name: false,
503
+ show_permission_checkbox: false,
504
+ tags: 'newsletter',
505
+ return_to: '',
506
+ label_first_name: 'First name',
507
+ placeholder_first_name: '',
508
+ label_last_name: 'Last name',
509
+ placeholder_last_name: '',
510
+ label_email: 'Email',
511
+ placeholder_email: '',
512
+ label_permission: '<p>I agree to receive marketing emails</p>',
513
+ label_subscribe: 'Subscribe',
514
+ success_message: 'Thanks for subscribing',
515
+ background_color: '#ffffff',
516
+ text_color: '#1a1b18',
517
+ button_background_color: '#445958',
518
+ button_text_color: '#ffffff'
519
+ }
520
+ }
521
+ };
463
522
  const composeSettingsByWidgetType = {
523
+ ...SegunoEmailMarketing,
464
524
  ...AftershipEmailMarketingsms,
465
525
  ...BestBuyFulfillment,
466
526
  ...GloboProductOptionsVariant,
@@ -1,4 +1,4 @@
1
- import { RechargeSubscriptionsConfig, BonLoyaltyRewardsReferralsConfig, SubifySubscriptionsConfig, SelleasyConfig, LoopSubscriptionsConfig, SkioSubscriptionsYcS20Config, ShopifyFormsConfig, ReviewxpoProductReviewsAppConfig, PumperBundlesVolumeDiscountConfig, UnlimitedBundlesDiscountsConfig, KiteFreeGiftDiscountConfig, FastBundleBundlesDiscountsConfig, SimpleBundlesKitsConfig, EasyBundleBuilderSkailamaConfig, PreorderNowPreOrderPqConfig, FlyBundlesUpsellsFbtConfig, JunipProductReviewsUgcConfig, PreorderNowWodPresaleConfig, YotpoReviewsV3UgcConfig, WhatmoreShoppableVideosreelConfig, ProductOptionsCustomizerConfig, AppointmentBookingCowlendarConfig, BoldSubscriptionsConfig, SproutPlantTreesGrowSalesConfig, InstasellShoppableInstagramConfig, GrowaveConfig, LoloyalLoyaltyReferralsConfig, PowerfulContactFormBuilderConfig, WishlistKingConfig, GloboProductOptionsVariantConfig, KachingBundlesConfig, BestBuyFulfillmentConfig, AftershipEmailMarketingsmsConfig } from './appConfig.js';
1
+ import { RechargeSubscriptionsConfig, BonLoyaltyRewardsReferralsConfig, SubifySubscriptionsConfig, SelleasyConfig, LoopSubscriptionsConfig, SkioSubscriptionsYcS20Config, ShopifyFormsConfig, ReviewxpoProductReviewsAppConfig, PumperBundlesVolumeDiscountConfig, UnlimitedBundlesDiscountsConfig, KiteFreeGiftDiscountConfig, FastBundleBundlesDiscountsConfig, SimpleBundlesKitsConfig, EasyBundleBuilderSkailamaConfig, PreorderNowPreOrderPqConfig, FlyBundlesUpsellsFbtConfig, JunipProductReviewsUgcConfig, PreorderNowWodPresaleConfig, YotpoReviewsV3UgcConfig, WhatmoreShoppableVideosreelConfig, ProductOptionsCustomizerConfig, AppointmentBookingCowlendarConfig, BoldSubscriptionsConfig, SproutPlantTreesGrowSalesConfig, InstasellShoppableInstagramConfig, GrowaveConfig, LoloyalLoyaltyReferralsConfig, PowerfulContactFormBuilderConfig, WishlistKingConfig, GloboProductOptionsVariantConfig, KachingBundlesConfig, BestBuyFulfillmentConfig, AftershipEmailMarketingsmsConfig, SegunoEmailMarketingConfig } from './appConfig.js';
2
2
 
3
3
  const mapShopifyAppMeta = {
4
4
  ...RechargeSubscriptionsConfig,
@@ -33,7 +33,8 @@ const mapShopifyAppMeta = {
33
33
  ...GloboProductOptionsVariantConfig,
34
34
  ...KachingBundlesConfig,
35
35
  ...BestBuyFulfillmentConfig,
36
- ...AftershipEmailMarketingsmsConfig
36
+ ...AftershipEmailMarketingsmsConfig,
37
+ ...SegunoEmailMarketingConfig
37
38
  };
38
39
  const THIRD_PARTY_APP_BLOCK_ID_PREFIX = 'gp_app';
39
40
 
@@ -10,7 +10,7 @@ const listThirdPartyRejectAppBlock = {
10
10
  }
11
11
  };
12
12
  const getAppBlockConfig = (tag, appBlockId, settings)=>{
13
- if (listThirdPartyRejectAppBlock[tag] && eval(listThirdPartyRejectAppBlock[tag].conditionToReject)) {
13
+ if (listThirdPartyRejectAppBlock[tag] && eval(listThirdPartyRejectAppBlock[tag]?.conditionToReject ?? '')) {
14
14
  return;
15
15
  }
16
16
  let widgetType = settings?.widgetType;
@@ -7279,7 +7279,7 @@ type HyperlinkInfo = {
7279
7279
  link?: string;
7280
7280
  modal?: CommonModalApp;
7281
7281
  };
7282
- type Mapped$7<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7282
+ type Mapped$8<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7283
7283
  id: K;
7284
7284
  label?: string;
7285
7285
  info?: string;
@@ -7354,17 +7354,17 @@ type Mapped$7<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7354
7354
  compoDefaultValue?: T;
7355
7355
  };
7356
7356
  type SharedControlType<T> = {
7357
- [K in keyof T]-?: Mapped$7<K, T[K]>;
7357
+ [K in keyof T]-?: Mapped$8<K, T[K]>;
7358
7358
  }[keyof T];
7359
7359
 
7360
- type Option$5 = {
7360
+ type Option$6 = {
7361
7361
  value: number | string;
7362
7362
  label?: string | number;
7363
7363
  type?: string;
7364
7364
  icon?: string;
7365
7365
  isTextIcon?: boolean;
7366
7366
  };
7367
- type Mapped$6<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7367
+ type Mapped$7<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7368
7368
  id: K;
7369
7369
  label: string;
7370
7370
  info?: string;
@@ -7382,7 +7382,7 @@ type Mapped$6<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7382
7382
  };
7383
7383
  placeholder?: string;
7384
7384
  type: 'layout-custom-segment';
7385
- options: Option$5[];
7385
+ options: Option$6[];
7386
7386
  devices?: ResponsiveConfig<U>;
7387
7387
  iconViewBox?: string;
7388
7388
  enableItemBackground?: boolean;
@@ -7407,14 +7407,14 @@ type Mapped$6<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7407
7407
  };
7408
7408
  placeholder?: string;
7409
7409
  type: 'layout-custom-segment';
7410
- options?: Option$5[];
7410
+ options?: Option$6[];
7411
7411
  iconViewBox?: string;
7412
7412
  enableItemBackground?: boolean;
7413
7413
  enableTooltip?: boolean;
7414
7414
  default?: T;
7415
7415
  };
7416
7416
  type LayoutCustomSegmentControlType<T> = {
7417
- [K in keyof T]-?: Mapped$6<K, T[K]>;
7417
+ [K in keyof T]-?: Mapped$7<K, T[K]>;
7418
7418
  }[keyof T];
7419
7419
 
7420
7420
  type AngleControlType<T> = SharedControlType<T> & {
@@ -7426,12 +7426,12 @@ type AngleControlType<T> = SharedControlType<T> & {
7426
7426
  readonly?: boolean;
7427
7427
  };
7428
7428
 
7429
- type Option$4<T> = {
7429
+ type Option$5<T> = {
7430
7430
  value: T extends ObjectDevices<infer U> ? U extends StateProp<infer A> ? A : U : T extends StateProp<infer B> ? B : T;
7431
7431
  text: string | number;
7432
7432
  desc?: any;
7433
7433
  };
7434
- type Mapped$5<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7434
+ type Mapped$6<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7435
7435
  id: K;
7436
7436
  label: string;
7437
7437
  hideOnMode?: {
@@ -7447,7 +7447,7 @@ type Mapped$5<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7447
7447
  active?: boolean;
7448
7448
  };
7449
7449
  type: 'checkbox';
7450
- options: Option$4<T>[];
7450
+ options: Option$5<T>[];
7451
7451
  devices?: ResponsiveConfig<U>;
7452
7452
  } : {
7453
7453
  id: K;
@@ -7465,11 +7465,11 @@ type Mapped$5<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7465
7465
  active?: boolean;
7466
7466
  };
7467
7467
  type: 'checkbox';
7468
- options: Option$4<T>[];
7468
+ options: Option$5<T>[];
7469
7469
  default?: T;
7470
7470
  };
7471
7471
  type CheckboxControlType<T> = {
7472
- [K in keyof T]-?: Mapped$5<K, T[K]>;
7472
+ [K in keyof T]-?: Mapped$6<K, T[K]>;
7473
7473
  }[keyof T];
7474
7474
 
7475
7475
  type ChildrensControlType = {
@@ -7614,14 +7614,14 @@ type RangeControlType<T> = SharedControlType<T> & {
7614
7614
  maxRelated?: string;
7615
7615
  }>;
7616
7616
 
7617
- type Option$3<T> = {
7617
+ type Option$4<T> = {
7618
7618
  value: T extends ObjectDevices<infer U> ? U extends StateProp<infer A> ? A : U : T extends StateProp<infer B> ? B : T;
7619
7619
  label?: string | number;
7620
7620
  type?: string;
7621
7621
  icon?: string;
7622
7622
  tooltip?: string;
7623
7623
  };
7624
- type Mapped$4<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7624
+ type Mapped$5<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7625
7625
  id: K;
7626
7626
  label?: string;
7627
7627
  info?: string;
@@ -7639,7 +7639,7 @@ type Mapped$4<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7639
7639
  };
7640
7640
  placeholder?: string;
7641
7641
  type: 'segment' | 'accordion:segment';
7642
- options: Option$3<T>[];
7642
+ options: Option$4<T>[];
7643
7643
  iconCustom?: boolean;
7644
7644
  devices?: ResponsiveConfig<U>;
7645
7645
  } : {
@@ -7660,12 +7660,12 @@ type Mapped$4<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7660
7660
  };
7661
7661
  placeholder?: string;
7662
7662
  type: 'segment' | 'accordion:segment';
7663
- options: Option$3<T>[];
7663
+ options: Option$4<T>[];
7664
7664
  iconCustom?: boolean;
7665
7665
  default?: T;
7666
7666
  };
7667
7667
  type SegmentControlType<T> = {
7668
- [K in keyof T]-?: Mapped$4<K, T[K]>;
7668
+ [K in keyof T]-?: Mapped$5<K, T[K]>;
7669
7669
  }[keyof T];
7670
7670
 
7671
7671
  type OpenLinkControlType<T> = SharedControlType<T> & {
@@ -7676,7 +7676,7 @@ type OpenLinkControlType<T> = SharedControlType<T> & {
7676
7676
  linkType?: 'openApp' | 'install';
7677
7677
  };
7678
7678
 
7679
- type Option$2<T> = {
7679
+ type Option$3<T> = {
7680
7680
  value: T extends ObjectDevices<infer U> ? U extends StateProp<infer A> ? A : U : T extends StateProp<infer B> ? B : T;
7681
7681
  label: string | number;
7682
7682
  hideOnPage?: string[];
@@ -7689,7 +7689,7 @@ type Option$2<T> = {
7689
7689
  note?: string;
7690
7690
  maxOption?: number;
7691
7691
  };
7692
- type Mapped$3<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7692
+ type Mapped$4<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7693
7693
  id: K;
7694
7694
  label?: string;
7695
7695
  info?: string;
@@ -7708,7 +7708,7 @@ type Mapped$3<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7708
7708
  };
7709
7709
  placeholder?: string;
7710
7710
  type: 'select';
7711
- options: Option$2<T>[];
7711
+ options: Option$3<T>[];
7712
7712
  devices?: ResponsiveConfig<U>;
7713
7713
  } : {
7714
7714
  id: K;
@@ -7728,12 +7728,12 @@ type Mapped$3<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7728
7728
  };
7729
7729
  placeholder?: string;
7730
7730
  type: 'select';
7731
- options: Option$2<T>[];
7731
+ options: Option$3<T>[];
7732
7732
  default?: T;
7733
7733
  isFullWidth?: boolean;
7734
7734
  };
7735
7735
  type SelectControlType<T> = {
7736
- [K in keyof T]-?: Mapped$3<K, T[K]>;
7736
+ [K in keyof T]-?: Mapped$4<K, T[K]>;
7737
7737
  }[keyof T];
7738
7738
 
7739
7739
  type TextareaControlType<T> = SharedControlType<T> & {
@@ -7961,14 +7961,15 @@ type CustomCodeEditor = {
7961
7961
  id: string;
7962
7962
  };
7963
7963
 
7964
- type Option$1<T> = {
7964
+ type Option$2<T> = {
7965
7965
  value: T extends ObjectDevices<infer U> ? U extends StateProp<infer A> ? A : U : T extends StateProp<infer B> ? B : T;
7966
7966
  label?: string | number;
7967
7967
  type?: string;
7968
7968
  icon?: string;
7969
+ iconName?: string;
7969
7970
  isTextIcon?: boolean;
7970
7971
  };
7971
- type Mapped$2<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7972
+ type Mapped$3<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7972
7973
  id: K;
7973
7974
  label: string;
7974
7975
  info?: string;
@@ -7986,7 +7987,11 @@ type Mapped$2<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
7986
7987
  };
7987
7988
  placeholder?: string;
7988
7989
  type: 'layout-segment';
7989
- options: Option$1<T>[];
7990
+ options: Option$2<T>[];
7991
+ groups?: {
7992
+ label: string;
7993
+ options: Option$2<T>[];
7994
+ }[];
7990
7995
  devices?: ResponsiveConfig<U>;
7991
7996
  iconViewBox?: string;
7992
7997
  enableItemBackground?: boolean;
@@ -8013,14 +8018,18 @@ type Mapped$2<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
8013
8018
  type: 'layout-segment';
8014
8019
  itemPerRow?: number;
8015
8020
  itemSpacing?: 'large' | 'small';
8016
- options?: Option$1<T>[];
8021
+ options?: Option$2<T>[];
8022
+ groups?: {
8023
+ label: string;
8024
+ options: Option$2<T>[];
8025
+ }[];
8017
8026
  iconViewBox?: string;
8018
8027
  enableItemBackground?: boolean;
8019
8028
  enableTooltip?: boolean;
8020
8029
  default?: T;
8021
8030
  };
8022
8031
  type LayoutSegmentControlType<T> = {
8023
- [K in keyof T]-?: Mapped$2<K, T[K]>;
8032
+ [K in keyof T]-?: Mapped$3<K, T[K]>;
8024
8033
  }[keyof T];
8025
8034
 
8026
8035
  type InputSpacing<T> = SharedControlType<T> & {
@@ -8143,7 +8152,7 @@ type Actions = {
8143
8152
  actionHandle?: string;
8144
8153
  link?: string;
8145
8154
  };
8146
- type Mapped$1<K, T> = {
8155
+ type Mapped$2<K, T> = {
8147
8156
  id: K;
8148
8157
  label: string;
8149
8158
  info?: string;
@@ -8152,7 +8161,7 @@ type Mapped$1<K, T> = {
8152
8161
  default?: T;
8153
8162
  };
8154
8163
  type StepsGuide<T> = {
8155
- [K in keyof T]-?: Mapped$1<K, T[K]>;
8164
+ [K in keyof T]-?: Mapped$2<K, T[K]>;
8156
8165
  }[keyof T];
8157
8166
 
8158
8167
  type ImageShape<T> = SharedControlType<T> & {
@@ -8262,14 +8271,14 @@ type SneakPeakRange<T> = SharedControlType<T> & {
8262
8271
  sneakPeakType?: string;
8263
8272
  };
8264
8273
 
8265
- type Option<T> = {
8274
+ type Option$1<T> = {
8266
8275
  value: T extends ObjectDevices<infer U> ? U extends StateProp<infer A> ? A : U : T extends StateProp<infer B> ? B : T;
8267
8276
  label?: string | number;
8268
8277
  type?: string;
8269
8278
  icon?: string;
8270
8279
  isTextIcon?: boolean;
8271
8280
  };
8272
- type Mapped<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
8281
+ type Mapped$1<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
8273
8282
  id: K;
8274
8283
  label: string;
8275
8284
  info?: string;
@@ -8287,7 +8296,7 @@ type Mapped<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
8287
8296
  };
8288
8297
  placeholder?: string;
8289
8298
  type: 'sneak-peak-type';
8290
- options: Option<T>[];
8299
+ options: Option$1<T>[];
8291
8300
  devices?: ResponsiveConfig<U>;
8292
8301
  iconViewBox?: string;
8293
8302
  enableItemBackground?: boolean;
@@ -8312,14 +8321,14 @@ type Mapped<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
8312
8321
  };
8313
8322
  placeholder?: string;
8314
8323
  type: 'sneak-peak-type';
8315
- options?: Option<T>[];
8324
+ options?: Option$1<T>[];
8316
8325
  iconViewBox?: string;
8317
8326
  enableItemBackground?: boolean;
8318
8327
  enableTooltip?: boolean;
8319
8328
  default?: T;
8320
8329
  };
8321
8330
  type SneakPeakTypeControlType<T> = {
8322
- [K in keyof T]-?: Mapped<K, T[K]>;
8331
+ [K in keyof T]-?: Mapped$1<K, T[K]>;
8323
8332
  }[keyof T];
8324
8333
 
8325
8334
  type ProductInputCurrencyUnitControlType<T> = SharedControlType<T> & {
@@ -8590,6 +8599,7 @@ type SettingUICompo = {
8590
8599
  controls?: SettingUIControl[];
8591
8600
  iconName?: string;
8592
8601
  getValueFromSettingID?: string;
8602
+ defaultValueWhenClear?: any;
8593
8603
  fixedValue?: string;
8594
8604
  placeholder?: string;
8595
8605
  help?: SettingUIHelpType;
@@ -8599,7 +8609,9 @@ type SettingUIMoreSetting = {
8599
8609
  labelAction?: LabelWithLang;
8600
8610
  controls?: SettingUIControl[];
8601
8611
  help?: SettingUIHelpType;
8612
+ type?: SettingUIMoreSettingType;
8602
8613
  };
8614
+ type SettingUIMoreSettingType = 'button' | 'collapse' | 'icon';
8603
8615
  type SettingUITab = {
8604
8616
  label?: LabelWithLang;
8605
8617
  controls?: SettingUIControl[];
@@ -8905,7 +8917,82 @@ type ImageV2ControlType<T> = SharedControlType<T> & {
8905
8917
  type: 'image-v2';
8906
8918
  };
8907
8919
 
8908
- 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 | VariantListingControlType | 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> | ProductHandleType<T> | ColorPickerV2ControlType<T> | BorderV2ControlType<T> | CornerV2ControlType<T> | PaddingV2ControlType<T> | BackgroundImageType<T> | BackgroundVideoType<T> | ShadowV2ControlType<T> | BackgroundMediaControlType<T> | BackgroundVideoType<T> | SwitchControlType<T> | ImageV2ControlType<T>;
8920
+ type ComboControlType<T> = SharedControlType<T> & {
8921
+ type: 'combo';
8922
+ readonly?: boolean;
8923
+ };
8924
+
8925
+ type Option<T> = {
8926
+ value: T extends ObjectDevices<infer U> ? U extends StateProp<infer A> ? A : U : T extends StateProp<infer B> ? B : T;
8927
+ label?: string | number;
8928
+ iconName?: string;
8929
+ type?: string;
8930
+ noPadding?: string;
8931
+ };
8932
+ type Mapped<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
8933
+ id: K;
8934
+ label: string;
8935
+ info?: string;
8936
+ hide?: boolean;
8937
+ hideOnMode?: {
8938
+ responsive?: boolean;
8939
+ mobileOnly?: boolean;
8940
+ };
8941
+ disableToggle?: boolean;
8942
+ state?: {
8943
+ normal?: boolean;
8944
+ hover?: boolean;
8945
+ focus?: boolean;
8946
+ active?: boolean;
8947
+ };
8948
+ placeholder?: string;
8949
+ type: 'layout-selector';
8950
+ options: Option<T>[];
8951
+ groups?: {
8952
+ label: string;
8953
+ options: Option<T>[];
8954
+ }[];
8955
+ devices?: ResponsiveConfig<U>;
8956
+ iconViewBox?: string;
8957
+ enableItemBackground?: boolean;
8958
+ itemPerRow?: number;
8959
+ itemSpacing?: 'large' | 'small';
8960
+ enableTooltip?: boolean;
8961
+ } : {
8962
+ id: K;
8963
+ label: string;
8964
+ info?: string;
8965
+ hide?: boolean;
8966
+ hideOnMode?: {
8967
+ responsive?: boolean;
8968
+ mobileOnly?: boolean;
8969
+ };
8970
+ disableToggle?: boolean;
8971
+ state?: {
8972
+ normal?: boolean;
8973
+ hover?: boolean;
8974
+ focus?: boolean;
8975
+ active?: boolean;
8976
+ };
8977
+ placeholder?: string;
8978
+ type: 'layout-selector';
8979
+ itemPerRow?: number;
8980
+ itemSpacing?: 'large' | 'small';
8981
+ options?: Option<T>[];
8982
+ groups?: {
8983
+ label: string;
8984
+ options: Option<T>[];
8985
+ }[];
8986
+ iconViewBox?: string;
8987
+ enableItemBackground?: boolean;
8988
+ enableTooltip?: boolean;
8989
+ default?: T;
8990
+ };
8991
+ type LayoutSelectorControlType<T> = {
8992
+ [K in keyof T]-?: Mapped<K, T[K]>;
8993
+ }[keyof T];
8994
+
8995
+ 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 | VariantListingControlType | 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> | ProductHandleType<T> | ColorPickerV2ControlType<T> | BorderV2ControlType<T> | CornerV2ControlType<T> | PaddingV2ControlType<T> | BackgroundImageType<T> | BackgroundVideoType<T> | ShadowV2ControlType<T> | BackgroundMediaControlType<T> | BackgroundVideoType<T> | SwitchControlType<T> | ImageV2ControlType<T> | LayoutSelectorControlType<T> | ComboControlType<T>;
8909
8996
  type ControlTriggerAction = {
8910
8997
  controlId: string;
8911
8998
  newValue?: any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/core",
3
- "version": "1.58.0-dev.68",
3
+ "version": "1.58.0-dev.80",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",