@capillarytech/creatives-library 8.0.340-0 → 8.0.340-beta.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/app.js +8 -1
  2. package/global-styles.js +4 -0
  3. package/package.json +2 -2
  4. package/styles/components/navigation/_leftnav.scss +1 -1
  5. package/styles/containers/layout/_layoutPage.scss +1 -1
  6. package/v2Components/AccessForbidden/index.js +1 -1
  7. package/v2Components/CapActionButton/index.js +5 -5
  8. package/v2Components/CapCustomSkeleton/index.js +1 -1
  9. package/v2Components/CapDeviceContent/index.js +5 -5
  10. package/v2Components/CapDocumentUpload/index.js +1 -1
  11. package/v2Components/CapImageUpload/index.js +1 -1
  12. package/v2Components/CapInAppCTA/index.js +118 -112
  13. package/v2Components/CapMpushCTA/index.js +72 -66
  14. package/v2Components/CapTagList/index.js +23 -11
  15. package/v2Components/CapVideoUpload/index.js +1 -1
  16. package/v2Components/CapWhatsappCTA/index.js +128 -124
  17. package/v2Components/CapWhatsappCarouselButton/index.js +27 -29
  18. package/v2Components/CapWhatsappQuickReply/index.js +7 -7
  19. package/v2Components/Carousel/index.js +1 -1
  20. package/v2Components/CommonTestAndPreview/AddTestCustomer.js +1 -1
  21. package/v2Components/CommonTestAndPreview/CustomValuesEditor.js +10 -11
  22. package/v2Components/CommonTestAndPreview/CustomerCreationModal.js +1 -1
  23. package/v2Components/CommonTestAndPreview/DeliverySettings/ModifyDeliverySettings.js +4 -4
  24. package/v2Components/CommonTestAndPreview/DeliverySettings/index.js +1 -1
  25. package/v2Components/CommonTestAndPreview/ExistingCustomerModal.js +6 -6
  26. package/v2Components/CommonTestAndPreview/LeftPanelContent.js +5 -5
  27. package/v2Components/CommonTestAndPreview/PreviewSection.js +1 -1
  28. package/v2Components/CommonTestAndPreview/UnifiedPreview/DeviceFrame.js +1 -1
  29. package/v2Components/CommonTestAndPreview/UnifiedPreview/EmailPreviewContent.js +8 -8
  30. package/v2Components/CommonTestAndPreview/UnifiedPreview/InAppPreviewContent.js +14 -13
  31. package/v2Components/CommonTestAndPreview/UnifiedPreview/MobilePushPreviewContent.js +22 -21
  32. package/v2Components/CommonTestAndPreview/UnifiedPreview/PreviewHeader.js +1 -1
  33. package/v2Components/CommonTestAndPreview/UnifiedPreview/RcsPreviewContent.js +9 -9
  34. package/v2Components/CommonTestAndPreview/UnifiedPreview/SmsPreviewContent.js +13 -11
  35. package/v2Components/CommonTestAndPreview/UnifiedPreview/ViberPreviewContent.js +10 -10
  36. package/v2Components/CommonTestAndPreview/UnifiedPreview/WhatsAppPreviewContent.js +13 -12
  37. package/v2Components/CommonTestAndPreview/UnifiedPreview/ZaloPreviewContent.js +4 -3
  38. package/v2Components/CommonTestAndPreview/UnifiedPreview/_unifiedPreview.scss +17 -8
  39. package/v2Components/CommonTestAndPreview/UnifiedPreview/index.js +1 -1
  40. package/v2Components/CommonTestAndPreview/_commonTestAndPreview.scss +30 -5
  41. package/v2Components/CommonTestAndPreview/index.js +3 -3
  42. package/v2Components/CustomerSearchSection/_customerSearch.scss +2 -1
  43. package/v2Components/CustomerSearchSection/index.js +9 -9
  44. package/v2Components/EmailMobilePreview/index.js +1 -1
  45. package/v2Components/ErrorInfoNote/index.js +13 -11
  46. package/v2Components/ErrorInfoNote/style.scss +1 -1
  47. package/v2Components/FormBuilder/_formBuilder.scss +1 -0
  48. package/v2Components/FormBuilder/index.js +32 -40
  49. package/v2Components/HtmlEditor/HTMLEditor.js +4 -4
  50. package/v2Components/HtmlEditor/_htmlEditor.scss +2 -1
  51. package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +1 -1
  52. package/v2Components/HtmlEditor/components/DeviceToggle/_deviceToggle.scss +2 -2
  53. package/v2Components/HtmlEditor/components/DeviceToggle/index.js +2 -2
  54. package/v2Components/HtmlEditor/components/EditorToolbar/PreviewModeGroup.js +2 -2
  55. package/v2Components/HtmlEditor/components/EditorToolbar/index.js +2 -2
  56. package/v2Components/HtmlEditor/components/InAppPreviewPane/index.js +1 -0
  57. package/v2Components/HtmlEditor/components/PreviewPane/index.js +2 -2
  58. package/v2Components/HtmlEditor/components/SplitContainer/SplitContainer.js +2 -2
  59. package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +2 -1
  60. package/v2Components/HtmlEditor/components/ValidationPanel/index.js +6 -9
  61. package/v2Components/HtmlEditor/components/ValidationTabs/index.js +2 -2
  62. package/v2Components/NavigationBar/index.js +7 -1
  63. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +3 -4
  64. package/v2Components/TemplatePreview/_templatePreview.scss +5 -3
  65. package/v2Components/TemplatePreview/index.js +11 -9
  66. package/v2Components/TestAndPreviewSlidebox/CustomValuesEditor.js +4 -4
  67. package/v2Components/TestAndPreviewSlidebox/LeftPanelContent.js +5 -5
  68. package/v2Components/TestAndPreviewSlidebox/PreviewSection.js +3 -3
  69. package/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +4 -2
  70. package/v2Containers/BeePopupEditor/index.js +1 -1
  71. package/v2Containers/CommunicationFlow/CommunicationFlow.js +5 -5
  72. package/v2Containers/CommunicationFlow/steps/ChannelSelectionStep/ChannelSelectionStep.js +4 -3
  73. package/v2Containers/CommunicationFlow/steps/CommunicationStrategyStep/CommunicationStrategyStep.js +2 -2
  74. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/DeliverySettingsSection.js +3 -2
  75. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/SenderDetails.js +7 -7
  76. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/SenderDetails.scss +0 -5
  77. package/v2Containers/CommunicationFlow/steps/DynamicControlsStep/DynamicControlsStep.js +2 -2
  78. package/v2Containers/CommunicationFlow/steps/MessageTypeStep/MessageTypeStep.js +2 -2
  79. package/v2Containers/CreativesContainer/SlideBoxFooter.js +1 -1
  80. package/v2Containers/CreativesContainer/index.js +1 -1
  81. package/v2Containers/Ebill/index.js +10 -9
  82. package/v2Containers/Email/index.js +7 -7
  83. package/v2Containers/Email/initialSchema.js +1 -1
  84. package/v2Containers/FTP/index.js +1 -1
  85. package/v2Containers/Facebook/Advertisement/index.js +4 -4
  86. package/v2Containers/Facebook/index.js +2 -2
  87. package/v2Containers/InApp/index.js +21 -16
  88. package/v2Containers/InApp/index.scss +0 -7
  89. package/v2Containers/InAppWrapper/components/InAppWrapperView.js +2 -2
  90. package/v2Containers/InappAdvance/index.js +4 -4
  91. package/v2Containers/LanguageProvider/index.js +3 -3
  92. package/v2Containers/LanguageProvider/tests/index.test.js +3 -3
  93. package/v2Containers/Line/Container/Image/index.js +1 -1
  94. package/v2Containers/Line/Container/ImageCarousel/Content.js +1 -1
  95. package/v2Containers/Line/Container/ImageCarousel/index.js +5 -5
  96. package/v2Containers/Line/Container/ImageMap/index.js +3 -3
  97. package/v2Containers/Line/Container/Sticker/index.js +2 -2
  98. package/v2Containers/Line/Container/Sticker/utils.js +1 -1
  99. package/v2Containers/Line/Container/Video/index.js +1 -1
  100. package/v2Containers/Line/Container/Wrapper/index.js +3 -3
  101. package/v2Containers/Line/Container/Wrapper/style.js +1 -5
  102. package/v2Containers/Line/Container/index.js +2 -2
  103. package/v2Containers/Login/components/LoginForm/index.js +34 -47
  104. package/v2Containers/Login/index.js +5 -5
  105. package/v2Containers/MobilePushNew/components/CtaButtons.js +2 -2
  106. package/v2Containers/MobilePushNew/components/MediaUploaders.js +9 -9
  107. package/v2Containers/MobilePushNew/components/PlatformContentFields.js +4 -4
  108. package/v2Containers/MobilePushNew/index.js +2 -2
  109. package/v2Containers/MobilePushNew/index.scss +9 -6
  110. package/v2Containers/Rcs/index.js +24 -19
  111. package/v2Containers/Rcs/index.scss +0 -7
  112. package/v2Containers/Sms/Create/_smsCreate.scss +9 -2
  113. package/v2Containers/Sms/SCHEMA_FORMBUILDER_MAP.md +922 -0
  114. package/v2Containers/Sms/initialSchema.js +7 -1
  115. package/v2Containers/SmsTrai/Edit/index.js +3 -2
  116. package/v2Containers/Templates/index.js +16 -16
  117. package/v2Containers/Viber/constants.js +0 -8
  118. package/v2Containers/Viber/index.js +19 -19
  119. package/v2Containers/Viber/index.scss +0 -7
  120. package/v2Containers/Viber/reducer.js +21 -44
  121. package/v2Containers/Viber/sagas.js +21 -62
  122. package/v2Containers/Viber/tests/index.test.js +0 -80
  123. package/v2Containers/Viber/tests/saga.test.js +40 -365
  124. package/v2Containers/WeChat/RichmediaTemplates/Create/_createRichmedia.scss +1 -1
  125. package/v2Containers/WeChat/RichmediaTemplates/Create/index.js +2 -2
  126. package/v2Containers/WebPush/Create/components/BrandIconSection.js +1 -1
  127. package/v2Containers/WebPush/Create/components/ButtonForm.js +2 -2
  128. package/v2Containers/WebPush/Create/components/ButtonList.js +4 -4
  129. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.js +4 -4
  130. package/v2Containers/WebPush/Create/components/FormActions.js +3 -3
  131. package/v2Containers/WebPush/Create/components/MessageSection.js +2 -2
  132. package/v2Containers/WebPush/Create/components/NotificationTitleSection.js +2 -2
  133. package/v2Containers/WebPush/Create/components/_buttons.scss +2 -2
  134. package/v2Containers/WebPush/Create/index.scss +6 -3
  135. package/v2Containers/WebPush/Create/preview/WebPushPreview.js +1 -1
  136. package/v2Containers/Whatsapp/index.js +28 -28
  137. package/v2Containers/Zalo/index.js +3 -3
  138. package/.npmrc copy +0 -2
  139. package/v2Containers/Viber/tests/reducer.test.js +0 -297
@@ -281,7 +281,7 @@ export const CapWhatsappCarouselButton = (props) => {
281
281
  )
282
282
  }
283
283
  {/* it render save and delete button */}
284
- <CapRow className="whatsapp-cta-save-delete-btn whatsapp-carousel-save-edit-btn">
284
+ <CapRow useLegacy className="whatsapp-cta-save-delete-btn whatsapp-carousel-save-edit-btn">
285
285
  <CapTooltip
286
286
  title={
287
287
  ctaSaveDisabled(buttonIndex)
@@ -379,7 +379,7 @@ export const CapWhatsappCarouselButton = (props) => {
379
379
  </CapColumn>
380
380
  {parseInt(carouselIndex, 10) === 0 && (
381
381
  <CapColumn span={1}>
382
- <CapButton type="flat" className="whatsapp-carousel-delete-icon-btn" onClick={() => handleDeleteButton(index)} disabled={buttonData?.length === 1}>
382
+ <CapButton type="link" className="whatsapp-carousel-delete-icon-btn" onClick={() => handleDeleteButton(index)} disabled={buttonData?.length === 1}>
383
383
  <CapIcon size="s" type="delete" />
384
384
  </CapButton>
385
385
  </CapColumn>
@@ -415,7 +415,7 @@ export const CapWhatsappCarouselButton = (props) => {
415
415
  </CapRow>
416
416
  );
417
417
  } return (
418
- <CapRow
418
+ <CapRow useLegacy
419
419
  key={`${button.buttonType}_${index}`}
420
420
  className="cap-whatsapp-carousel-button"
421
421
  >
@@ -431,32 +431,30 @@ export const CapWhatsappCarouselButton = (props) => {
431
431
  </CapRow>
432
432
  );
433
433
  })}
434
- <CapRow>
435
- {/* user can add only two button in the first carousel in other carousel user dont allow to add buttons */}
436
- {buttonData?.length < 2 && !isEditFlow && parseInt(carouselIndex, 10) === 0 && (
437
- <CapRow>
438
- <CapTooltip
439
- title={
440
- isCarouselAddButtonDisable ? formatMessage(capWhatsappCTAMsg.ctaAddDisabled) : ""
441
- }
442
- placement="right"
443
- >
444
- <div className="button-disabled-tooltip-wrapper">
445
- <CapButton
446
- type="flat"
447
- id="whatsapp-quick-reply-add-button"
448
- disabled={isCarouselAddButtonDisable}
449
- className="margin-t-12 margin-l-24"
450
- isAddBtn
451
- onClick={addCarouselButton}
452
- >
453
- {formatMessage(capWhatsappCTAMsg.addButton)}
454
- </CapButton>
455
- </div>
456
- </CapTooltip>
457
- </CapRow>
458
- )}
459
- </CapRow>
434
+ {/* user can add only two button in the first carousel in other carousel user dont allow to add buttons */}
435
+ {buttonData?.length < 2 && !isEditFlow && parseInt(carouselIndex, 10) === 0 && (
436
+ <CapRow useLegacy>
437
+ <CapTooltip
438
+ title={
439
+ isCarouselAddButtonDisable ? formatMessage(capWhatsappCTAMsg.ctaAddDisabled) : ""
440
+ }
441
+ placement="right"
442
+ >
443
+ <div className="button-disabled-tooltip-wrapper">
444
+ <CapButton
445
+ type="link"
446
+ id="whatsapp-quick-reply-add-button"
447
+ disabled={isCarouselAddButtonDisable}
448
+ className="margin-t-12 margin-l-24"
449
+ isAddBtn
450
+ onClick={addCarouselButton}
451
+ >
452
+ {formatMessage(capWhatsappCTAMsg.addButton)}
453
+ </CapButton>
454
+ </div>
455
+ </CapTooltip>
456
+ </CapRow>
457
+ )}
460
458
  </CapRow>
461
459
  );
462
460
  };
@@ -121,13 +121,13 @@ export const CapWhatsappQuickReply = (props) => {
121
121
  </> :
122
122
  <>
123
123
  {quickReplyDataLength > 0 && !isEditFlow && (
124
- <CapRow>
124
+ <CapRow useLegacy>
125
125
  {quickReplyData?.map(({ index, isSaved, text, error }) => {
126
126
  if (!isSaved) {
127
127
  //this section is render textfield when its not saved or in edit condition
128
128
  return (
129
- <CapRow className="cap-whatsapp-quick-reply">
130
- <CapRow
129
+ <CapRow useLegacy className="cap-whatsapp-quick-reply">
130
+ <CapRow useLegacy
131
131
  className="whatsapp-button-text-container"
132
132
  key={index}
133
133
  >
@@ -147,7 +147,7 @@ export const CapWhatsappQuickReply = (props) => {
147
147
  </CapHeading>
148
148
  }
149
149
  />
150
- <CapRow className="whatsapp-button-text-input">
150
+ <CapRow useLegacy className="whatsapp-button-text-input">
151
151
  <TextArea
152
152
  autosize={{ minRows: 1, maxRows: 5 }}
153
153
  placeholder={formatMessage(
@@ -166,7 +166,7 @@ export const CapWhatsappQuickReply = (props) => {
166
166
  </CapRow>
167
167
  {renderMessageLength(BUTTON_TEXT, text?.length || 0)}
168
168
  {/* it render save and delete button */}
169
- <CapRow className="whatsapp-cta-save-delete-btn">
169
+ <CapRow useLegacy className="whatsapp-cta-save-delete-btn">
170
170
  <CapTooltip
171
171
  title={
172
172
  (text === "" || error)
@@ -217,7 +217,7 @@ export const CapWhatsappQuickReply = (props) => {
217
217
  }
218
218
  {/* this section render add button section with condition */}
219
219
  {quickReplyDataLength < 3 && !isEditFlow && (
220
- <CapRow>
220
+ <CapRow useLegacy>
221
221
  <CapTooltip
222
222
  title={
223
223
  isQuickReplyDisable ? formatMessage(ctaMessages.ctaAddDisabled) : ""
@@ -226,7 +226,7 @@ export const CapWhatsappQuickReply = (props) => {
226
226
  >
227
227
  <div className="button-disabled-tooltip-wrapper">
228
228
  <CapButton
229
- type="flat"
229
+ type="link"
230
230
  id="whatsapp-quick-reply-add-button"
231
231
  disabled={isQuickReplyDisable}
232
232
  className="margin-t-12 margin-l-24"
@@ -26,7 +26,7 @@ const Arrow = (props) => {
26
26
  <CapButton
27
27
  className={className}
28
28
  onClick={onClick}
29
- type="flat"
29
+ type="link"
30
30
  style={{
31
31
  ...style,
32
32
  ...arrowStyle,
@@ -11,7 +11,7 @@ const AddTestCustomerButton = ({
11
11
  }) => (
12
12
  <CapButton
13
13
  onClick={handleAddTestCustomer}
14
- type="flat"
14
+ type="link"
15
15
  size="small"
16
16
  className="test-customer-add-btn"
17
17
  prefix={
@@ -27,9 +27,9 @@ const CustomValuesEditor = ({
27
27
  }) => {
28
28
  if (isExtractingTags) {
29
29
  return (
30
- <CapRow className="loading-container">
30
+ <CapRow useLegacy className="loading-container">
31
31
  <CapSpin size="large" />
32
- <CapRow className="loading-text">
32
+ <CapRow useLegacy className="loading-text">
33
33
  <FormattedMessage {...messages.extractingTags} />
34
34
  </CapRow>
35
35
  </CapRow>
@@ -44,7 +44,7 @@ const CustomValuesEditor = ({
44
44
  </CapLabel>
45
45
  )}
46
46
  <CapRow className="editor-header">
47
- <CapRow className="json-toggle">
47
+ <CapRow className="json-toggle" align='middle' justify='start'>
48
48
  <span className="toggle-label">
49
49
  <FormattedMessage {...messages.showJSON} />
50
50
  </span>
@@ -57,7 +57,7 @@ const CustomValuesEditor = ({
57
57
  </CapRow>
58
58
  {showJSON ? (
59
59
  <CapRow className="json-editor">
60
- <CapRow className="json-editor-container">
60
+ <CapRow className="json-editor-container" align='center' justify='start'>
61
61
  <CapRow className="line-numbers">
62
62
  {JSON.stringify(customValues, null, 2).split('\n').map((_, index) => (
63
63
  <CapRow key={`line-${index + 1}`} className="line-number">
@@ -79,7 +79,7 @@ const CustomValuesEditor = ({
79
79
  <>
80
80
  {extractedTags?.length > 0 && (
81
81
  <CapRow className="values-table">
82
- <CapRow className="table-header">
82
+ <CapRow className="table-header" align='middle' justify='space-between'>
83
83
  <CapLabel type="label31" className="header-cell">
84
84
  <FormattedMessage {...messages.personalizationTags} />
85
85
  </CapLabel>
@@ -88,10 +88,9 @@ const CustomValuesEditor = ({
88
88
  </CapLabel>
89
89
  </CapRow>
90
90
  {requiredTags.map((tag) => (
91
- <CapRow key={tag.fullPath} className="value-row">
92
- <CapRow className="tag-name">
93
- {tag.fullPath}
94
- <span className="required-tag-indicator">*</span>
91
+ <CapRow key={tag.fullPath} className="value-row" align='middle' justify='start'>
92
+ <CapRow className="tag-name" align='top' justify='start'>
93
+ {`${tag.fullPath}*`}
95
94
  </CapRow>
96
95
  <CapRow className="tag-input">
97
96
  <CapInput
@@ -125,10 +124,10 @@ const CustomValuesEditor = ({
125
124
  )}
126
125
  </>
127
126
  )}
128
- <CapRow className="editor-actions">
127
+ <CapRow type='flex' align='middle' justify='space-between' className="editor-actions">
129
128
  <CapButton
130
129
  className="discard-button"
131
- type="flat"
130
+ type="link"
132
131
  size="small"
133
132
  onClick={handleDiscardCustomValues}
134
133
  icon="close"
@@ -45,7 +45,7 @@ const CustomerCreationModal = ({
45
45
  width={500}
46
46
  maskStyle={{ backgroundColor: 'rgba(244, 245, 247, 0.9)' }}
47
47
  footer={
48
- <CapRow justify="start" gutter={8}>
48
+ <CapRow useLegacy justify="start" gap={8}>
49
49
  <CapButton
50
50
  type="primary"
51
51
  onClick={() => onSave(EMPTY_VALIDATION, setIsLoading)}
@@ -238,7 +238,7 @@ const ModifyDeliverySettings = (props) => {
238
238
  ({
239
239
  titleMessage, options, value, onChange, rowKey, disabled,
240
240
  }) => (
241
- <CapRow className="modify-delivery-settings__field-row" key={rowKey}>
241
+ <CapRow useLegacy className="modify-delivery-settings__field-row" key={rowKey}>
242
242
  <CapHeader
243
243
  size="label"
244
244
  title={<FormattedMessage {...titleMessage} />}
@@ -367,20 +367,20 @@ const ModifyDeliverySettings = (props) => {
367
367
 
368
368
  if (isLoading) {
369
369
  return (
370
- <CapRow className="modify-delivery-settings__loading-row">
370
+ <CapRow useLegacy className="modify-delivery-settings__loading-row">
371
371
  <CapSpin spinning />
372
372
  </CapRow>
373
373
  );
374
374
  }
375
375
 
376
376
  return (
377
- <CapRow className="modify-delivery-settings">
377
+ <CapRow useLegacy className="modify-delivery-settings">
378
378
  {getChannelFields().map((field, idx) => renderSelectRow({
379
379
  ...field,
380
380
  rowKey: field.titleMessage?.id || `${ROW_KEY_PREFIX}${idx}`,
381
381
  disabled: field.disabled,
382
382
  }))}
383
- <CapRow className="modify-delivery-settings__actions">
383
+ <CapRow useLegacy className="modify-delivery-settings__actions">
384
384
  <CapButton type="primary" onClick={handleDone}>
385
385
  <FormattedMessage {...messages.done} />
386
386
  </CapButton>
@@ -151,7 +151,7 @@ const DeliverySettings = (props) => {
151
151
  const summaryObject = getSummaryObject();
152
152
 
153
153
  return (
154
- <CapRow className="delivery-settings">
154
+ <CapRow useLegacy className="delivery-settings">
155
155
  <CapRow className="delivery-settings__heading-row">
156
156
  <CapHeading type="h10">
157
157
  <FormattedMessage {...messages.deliverySettings} />
@@ -19,7 +19,7 @@ const ExistingCustomerModal = ({ customerModal, onCloseCustomerModal, customerDa
19
19
  width={500}
20
20
  maskStyle={{ backgroundColor: 'rgba(244, 245, 247, 0.9)' }}
21
21
  footer={
22
- <CapRow justify="start">
22
+ <CapRow useLegacy justify="start">
23
23
  <CapButton
24
24
  type="primary"
25
25
  onClick={() => onSave({}, setIsLoading)}
@@ -42,7 +42,7 @@ const ExistingCustomerModal = ({ customerModal, onCloseCustomerModal, customerDa
42
42
  className="common-test-preview-modal"
43
43
  >
44
44
  <div className="existing-customer-modal">
45
- <CapRow className="existing-customer-modal-intro-row">
45
+ <CapRow useLegacy className="existing-customer-modal-intro-row">
46
46
  <FormattedMessage {...messages.existingCustomerModalDescription} />
47
47
  </CapRow>
48
48
  <CapCard className="existing-customer-modal-card">
@@ -51,17 +51,17 @@ const ExistingCustomerModal = ({ customerModal, onCloseCustomerModal, customerDa
51
51
  <CapIcon type="user-profile" className="existing-customer-modal-avatar-icon" />
52
52
  </CapColumn>
53
53
  <CapColumn className="existing-customer-modal-details">
54
- <CapRow className="existing-customer-modal-name">
54
+ <CapRow useLegacy className="existing-customer-modal-name">
55
55
  {customerData.name || "-"}
56
56
  </CapRow>
57
57
  <CapColumn className="existing-customer-modal-meta">
58
58
  {channel === CHANNELS.EMAIL && customerData.email && (
59
- <CapRow><span className="existing-customer-modal-meta-label"><FormattedMessage {...messages.customerEmail} />: </span> {customerData.email}</CapRow>
59
+ <CapRow useLegacy><span className="existing-customer-modal-meta-label"><FormattedMessage {...messages.customerEmail} />: </span> {customerData.email}</CapRow>
60
60
  )}
61
61
  {channel === CHANNELS.SMS && customerData.mobile && (
62
- <CapRow><span className="existing-customer-modal-meta-label"><FormattedMessage {...messages.customerMobile} />: </span>{customerData.mobile}</CapRow>
62
+ <CapRow useLegacy><span className="existing-customer-modal-meta-label"><FormattedMessage {...messages.customerMobile} />: </span>{customerData.mobile}</CapRow>
63
63
  )}
64
- <CapRow><span className="existing-customer-modal-meta-label"><FormattedMessage {...messages.customerID} />: </span>{customerData.customerId}</CapRow>
64
+ <CapRow useLegacy><span className="existing-customer-modal-meta-label"><FormattedMessage {...messages.customerID} />: </span>{customerData.customerId}</CapRow>
65
65
  </CapColumn>
66
66
  </CapColumn>
67
67
  </CapRow>
@@ -28,9 +28,9 @@ const LeftPanelContent = ({
28
28
  }) => {
29
29
  if (isExtractingTags) {
30
30
  return (
31
- <CapRow className="loading-container">
31
+ <CapRow useLegacy className="loading-container">
32
32
  <CapSpin size="large" />
33
- <CapRow className="loading-text">
33
+ <CapRow useLegacy className="loading-text">
34
34
  <FormattedMessage {...messages.extractingTags} />
35
35
  </CapRow>
36
36
  </CapRow>
@@ -41,7 +41,7 @@ const LeftPanelContent = ({
41
41
  <>
42
42
  {/* Customer Search Section - Only show if enabled */}
43
43
  {enableCustomerSearch && (
44
- <CapRow className="panel-section customer-section">
44
+ <CapRow useLegacy className="panel-section customer-section">
45
45
  <CapHeader size="label1" title={<FormattedMessage {...messages.customerSearchTitle} />} />
46
46
  <CustomerSearchSection
47
47
  selectedCustomer={selectedCustomer}
@@ -66,8 +66,8 @@ const LeftPanelContent = ({
66
66
  )}
67
67
  {/* Tags Section - Only show if tag extraction enabled */}
68
68
  {enableTagExtraction && !tagsExtracted && (
69
- <CapRow className="panel-section">
70
- <CapButton type="flat" className="extract-tags-button" onClick={handleExtractTags}>
69
+ <CapRow useLegacy className="panel-section">
70
+ <CapButton type="link" className="extract-tags-button" onClick={handleExtractTags}>
71
71
  <CapLabel type="label33">
72
72
  <FormattedMessage {...messages.enterCustomValuesForTags} />
73
73
  </CapLabel>
@@ -10,7 +10,7 @@ import UnifiedPreview from './UnifiedPreview';
10
10
  const PreviewSection = ({
11
11
  unifiedPreviewProps,
12
12
  }) => (
13
- <CapRow className="test-and-preview-section panel-section">
13
+ <CapRow useLegacy className="test-and-preview-section panel-section">
14
14
  <UnifiedPreview {...unifiedPreviewProps} />
15
15
  </CapRow>
16
16
  );
@@ -24,7 +24,7 @@ const DeviceFrame = ({ device, children, className }) => {
24
24
  };
25
25
 
26
26
  return (
27
- <CapRow className={`unified-preview-frame ${className || ''}`}>
27
+ <CapRow useLegacy className={`unified-preview-frame ${className || ''}`}>
28
28
  <div className={getFrameClass()}>
29
29
  {/* Device chrome/decorations */}
30
30
  {device === DESKTOP && (
@@ -60,9 +60,9 @@ const EmailPreviewContent = ({
60
60
  <CapLabel type="label17" className="email-subject">{subject || ''}</CapLabel>
61
61
  <CapRow className="email-meta">
62
62
  <span><FormattedMessage {...messages.timeAgo} /></span>
63
- <CapRow className="dots" />
64
- <CapRow className="dots" />
65
- <CapRow className="dots" />
63
+ <CapRow useLegacy className="dots" />
64
+ <CapRow useLegacy className="dots" />
65
+ <CapRow useLegacy className="dots" />
66
66
  </CapRow>
67
67
  </CapRow>
68
68
 
@@ -70,8 +70,8 @@ const EmailPreviewContent = ({
70
70
  <CapRow className="email-from">
71
71
  <CapRow className="sender-avatar" />
72
72
  <CapRow className="sender-info">
73
- <CapRow className="sender-name"><FormattedMessage {...messages.senderName} /></CapRow>
74
- <CapRow className="recipient-info">{formatMessage(messages.toMe)}</CapRow>
73
+ <CapRow useLegacy className="sender-name"><FormattedMessage {...messages.senderName} /></CapRow>
74
+ <CapRow useLegacy className="recipient-info">{formatMessage(messages.toMe)}</CapRow>
75
75
  </CapRow>
76
76
  </CapRow>
77
77
 
@@ -89,7 +89,7 @@ const EmailPreviewContent = ({
89
89
  contentSection = (
90
90
  <CapRow className="loading-container">
91
91
  <CapSpin size="large" />
92
- <CapRow className="loading-text">
92
+ <CapRow useLegacy className="loading-text">
93
93
  {formatMessage(messages.updatingPreview)}
94
94
  </CapRow>
95
95
  </CapRow>
@@ -99,10 +99,10 @@ const EmailPreviewContent = ({
99
99
  contentSection = (
100
100
  <CapRow className="error-container">
101
101
  <CapIcon type="exclamation-circle" style={{ fontSize: '48px', color: '#ff4d4f' }} />
102
- <CapRow className="error-text">
102
+ <CapRow useLegacy className="error-text">
103
103
  {formatMessage(messages.previewError)}
104
104
  </CapRow>
105
- <CapRow className="error-message">{error}</CapRow>
105
+ <CapRow useLegacy className="error-message">{error}</CapRow>
106
106
  </CapRow>
107
107
  );
108
108
  } else if (cleanContent) {
@@ -55,16 +55,16 @@ const InAppPreviewContent = ({
55
55
  // Render loading state
56
56
  if (isUpdating) {
57
57
  return (
58
- <CapRow className="sms-device-container">
58
+ <CapRow useLegacy className="sms-device-container">
59
59
  <CapImage
60
60
  className="sms-device-image"
61
61
  src={deviceImage}
62
62
  alt={`${deviceName} Device`}
63
63
  />
64
- <CapRow className="sms-content-overlay inapp-content-overlay-height">
65
- <CapRow className="sms-loading-container">
64
+ <CapRow useLegacy className="sms-content-overlay inapp-content-overlay-height">
65
+ <CapRow useLegacy className="sms-loading-container">
66
66
  <CapSpin size="large" />
67
- <CapRow className="sms-loading-text">
67
+ <CapRow useLegacy className="sms-loading-text">
68
68
  {formatMessage(messages.updatingPreview)}
69
69
  </CapRow>
70
70
  </CapRow>
@@ -76,19 +76,19 @@ const InAppPreviewContent = ({
76
76
  // Render error state
77
77
  if (error) {
78
78
  return (
79
- <CapRow className="sms-device-container">
79
+ <CapRow useLegacy className="sms-device-container">
80
80
  <CapImage
81
81
  className="sms-device-image"
82
82
  src={deviceImage}
83
83
  alt={`${deviceName} Device`}
84
84
  />
85
- <CapRow className="sms-content-overlay inapp-content-overlay-height">
86
- <CapRow className="sms-error-container">
85
+ <CapRow useLegacy className="sms-content-overlay inapp-content-overlay-height">
86
+ <CapRow useLegacy className="sms-error-container">
87
87
  <CapIcon type="exclamation-circle" style={{ fontSize: '48px', color: '#ff4d4f' }} />
88
- <CapRow className="sms-error-text">
88
+ <CapRow useLegacy className="sms-error-text">
89
89
  {formatMessage(messages.previewError)}
90
90
  </CapRow>
91
- <CapRow className="sms-error-message">{error}</CapRow>
91
+ <CapRow useLegacy className="sms-error-message">{error}</CapRow>
92
92
  </CapRow>
93
93
  </CapRow>
94
94
  </CapRow>
@@ -98,7 +98,7 @@ const InAppPreviewContent = ({
98
98
  // Render InApp content
99
99
  // Use SMS device structure (device frame) but TemplatePreview's InApp content structure inside
100
100
  return (
101
- <CapRow className="sms-device-container">
101
+ <CapRow useLegacy className="sms-device-container">
102
102
  {/* Device Background Image - Same as SMS */}
103
103
  <CapImage
104
104
  className="sms-device-image"
@@ -107,16 +107,17 @@ const InAppPreviewContent = ({
107
107
  />
108
108
 
109
109
  {/* Content Overlay - Use TemplatePreview's InApp structure (lines 1409-1486) */}
110
- <CapRow className={`sms-content-overlay inapp-content-overlay-height ${!showHeader ? 'inapp-content-overlay' : ''} sms-${device}`}>
110
+ <CapRow useLegacy className={`sms-content-overlay inapp-content-overlay-height ${!showHeader ? 'inapp-content-overlay' : ''} sms-${device}`}>
111
111
  {/* TemplatePreview InApp structure - shell-v2 wrapper */}
112
- <CapRow className={`inapp-shell-v2 inapp-${device}`}>
112
+ <CapRow useLegacy className={`inapp-shell-v2 inapp-${device}`}>
113
113
  {/* preview-image div wrapper */}
114
114
  {/* inapp-message-container with layout type and device */}
115
115
  <CapRow
116
+ useLegacy
116
117
  className={`inapp-message-container-${deviceLayoutType || LAYOUT_TYPE_POPUP} ${!showHeader && deviceLayoutType === LAYOUT_TYPE_FOOTER ? 'inapp-message-container-FOOTER-no-header' : ''} ${CHANNELS.SMS.toLowerCase()}`}
117
118
  >
118
119
  {/* preview-inapp-screen - content container */}
119
- <CapRow className="preview-inapp-screen">
120
+ <CapRow useLegacy className="preview-inapp-screen">
120
121
  {/* Title - Same as TemplatePreview (line 1420-1435) */}
121
122
  <CapLabel
122
123
  type="label16"
@@ -44,16 +44,16 @@ const MobilePushPreviewContent = ({
44
44
  // Render loading state
45
45
  if (isUpdating) {
46
46
  return (
47
- <CapRow className="sms-device-container">
47
+ <CapRow useLegacy className="sms-device-container">
48
48
  <CapImage
49
49
  className="sms-device-image"
50
50
  src={deviceImage}
51
51
  alt={`${deviceName} Device`}
52
52
  />
53
- <CapRow className="sms-content-overlay">
54
- <CapRow className="sms-loading-container">
53
+ <CapRow useLegacy className="sms-content-overlay">
54
+ <CapRow useLegacy className="sms-loading-container">
55
55
  <CapSpin size="large" />
56
- <CapRow className="sms-loading-text">
56
+ <CapRow useLegacy className="sms-loading-text">
57
57
  {formatMessage(messages.updatingPreview)}
58
58
  </CapRow>
59
59
  </CapRow>
@@ -65,19 +65,19 @@ const MobilePushPreviewContent = ({
65
65
  // Render error state
66
66
  if (error) {
67
67
  return (
68
- <CapRow className="sms-device-container">
68
+ <CapRow useLegacy className="sms-device-container">
69
69
  <CapImage
70
70
  className="sms-device-image"
71
71
  src={deviceImage}
72
72
  alt={`${deviceName} Device`}
73
73
  />
74
- <CapRow className="sms-content-overlay">
75
- <CapRow className="sms-error-container">
74
+ <CapRow useLegacy className="sms-content-overlay">
75
+ <CapRow useLegacy className="sms-error-container">
76
76
  <CapIcon type="exclamation-circle" className="exclamation-circle" />
77
- <CapRow className="sms-error-text">
77
+ <CapRow useLegacy className="sms-error-text">
78
78
  {formatMessage(messages.previewError)}
79
79
  </CapRow>
80
- <CapRow className="sms-error-message">{error}</CapRow>
80
+ <CapRow useLegacy className="sms-error-message">{error}</CapRow>
81
81
  </CapRow>
82
82
  </CapRow>
83
83
  </CapRow>
@@ -91,8 +91,8 @@ const MobilePushPreviewContent = ({
91
91
  }
92
92
 
93
93
  return (
94
- <CapRow className="msg-container-carousel mobile-push-carousel-container">
95
- <CapRow className="scroll-container mobile-push-scroll-container">
94
+ <CapRow useLegacy className="msg-container-carousel mobile-push-carousel-container">
95
+ <CapRow useLegacy className="scroll-container mobile-push-scroll-container">
96
96
  {contentData?.carouselData?.map((item, idx) => (
97
97
  <CapColumn
98
98
  key={`carousel-card-${idx}`}
@@ -142,7 +142,7 @@ const MobilePushPreviewContent = ({
142
142
  // Render MobilePush notification preview
143
143
  // Structure based on TemplatePreview MobilePush rendering (lines 790-928)
144
144
  return (
145
- <CapRow className="sms-device-container">
145
+ <CapRow useLegacy className="sms-device-container">
146
146
  {/* Device Background Image - Same as SMS */}
147
147
  <CapImage
148
148
  className="sms-device-image"
@@ -151,25 +151,26 @@ const MobilePushPreviewContent = ({
151
151
  />
152
152
 
153
153
  {/* Content Overlay - MobilePush notification structure */}
154
- <CapRow className="sms-content-overlay">
154
+ <CapRow useLegacy className="sms-content-overlay">
155
155
  {/* MobilePush notification container */}
156
156
  {hasContent && (
157
157
  <CapRow
158
+ useLegacy
158
159
  className={`${
159
160
  device === IOS ? 'iphone' : device
160
161
  }-push-message-Container`}
161
162
  >
162
163
  {/* Notification message pop */}
163
- <CapRow className="message-pop align-left">
164
+ <CapRow useLegacy className="message-pop align-left">
164
165
  {/* App Header */}
165
166
 
166
167
  {/* Body Text */}
167
- <CapRow className="app-header">
168
- <CapRow className="app-header-left">
168
+ <CapRow useLegacy className="app-header">
169
+ <CapRow useLegacy className="app-header-left">
169
170
  <span className="app-icon">{""}</span>
170
171
  <CapLabel type="label16" className="title">{deviceContent?.header || ''}</CapLabel>
171
172
  </CapRow>
172
- <CapRow className="app-header-right">
173
+ <CapRow useLegacy className="app-header-right">
173
174
  <CapLabel type="label11">2:29 PM</CapLabel>
174
175
  </CapRow>
175
176
  </CapRow>
@@ -179,7 +180,7 @@ const MobilePushPreviewContent = ({
179
180
 
180
181
  {/* Body Image/Video/GIF */}
181
182
  {(deviceContent?.bodyImage || deviceContent?.bodyVideo?.videoSrc || deviceContent?.bodyGif) && (
182
- <CapRow className="body-image">
183
+ <CapRow useLegacy className="body-image">
183
184
  {(() => {
184
185
  if (deviceContent?.bodyVideo?.videoSrc && !deviceContent?.bodyImage && !deviceContent?.bodyGif) {
185
186
  return (
@@ -216,7 +217,7 @@ const MobilePushPreviewContent = ({
216
217
  {/* Action Buttons */}
217
218
  {(deviceContent?.actions || []).filter((action) => action?.label || action?.actionText).length > 0
218
219
  && deviceContent?.carouselData?.length === 0 && (
219
- <CapRow className="actions">
220
+ <CapRow useLegacy className="actions">
220
221
  {(deviceContent?.actions || []).map((action) => (
221
222
  (action?.label || action?.actionText) && (
222
223
  <span
@@ -241,8 +242,8 @@ const MobilePushPreviewContent = ({
241
242
 
242
243
  {/* No content state */}
243
244
  {!hasContent && (
244
- <CapRow className="sms-loading-container">
245
- <CapRow className="sms-loading-text">
245
+ <CapRow useLegacy className="sms-loading-container">
246
+ <CapRow useLegacy className="sms-loading-text">
246
247
  {formatMessage({ id: 'app.components.CommonTestAndPreview.noContent', defaultMessage: 'No content to preview' })}
247
248
  </CapRow>
248
249
  </CapRow>
@@ -45,7 +45,7 @@ const PreviewHeader = ({
45
45
  </CapLabel>
46
46
  </CapRow>
47
47
  {showDeviceToggle && (
48
- <CapRow className="device-toggle">
48
+ <CapRow type="flex" align="middle" className="device-toggle">
49
49
  {isAndroidIosToggle ? (
50
50
  // Android/iOS toggle for SMS, WhatsApp, RCS, InApp, and MobilePush
51
51
  <>