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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) 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/v2Components/AccessForbidden/index.js +1 -1
  6. package/v2Components/CapActionButton/index.js +5 -5
  7. package/v2Components/CapCustomSkeleton/index.js +1 -1
  8. package/v2Components/CapDeviceContent/index.js +5 -5
  9. package/v2Components/CapDocumentUpload/index.js +1 -1
  10. package/v2Components/CapImageUpload/index.js +1 -1
  11. package/v2Components/CapInAppCTA/index.js +118 -112
  12. package/v2Components/CapMpushCTA/index.js +72 -66
  13. package/v2Components/CapTagList/index.js +5 -5
  14. package/v2Components/CapVideoUpload/index.js +1 -1
  15. package/v2Components/CapWhatsappCTA/index.js +128 -124
  16. package/v2Components/CapWhatsappCarouselButton/index.js +27 -29
  17. package/v2Components/CapWhatsappQuickReply/index.js +7 -7
  18. package/v2Components/Carousel/index.js +1 -1
  19. package/v2Components/CommonTestAndPreview/AddTestCustomer.js +1 -1
  20. package/v2Components/CommonTestAndPreview/CustomValuesEditor.js +3 -3
  21. package/v2Components/CommonTestAndPreview/CustomerCreationModal.js +1 -1
  22. package/v2Components/CommonTestAndPreview/DeliverySettings/ModifyDeliverySettings.js +4 -4
  23. package/v2Components/CommonTestAndPreview/DeliverySettings/index.js +1 -1
  24. package/v2Components/CommonTestAndPreview/ExistingCustomerModal.js +6 -6
  25. package/v2Components/CommonTestAndPreview/LeftPanelContent.js +5 -5
  26. package/v2Components/CommonTestAndPreview/PreviewSection.js +1 -1
  27. package/v2Components/CommonTestAndPreview/UnifiedPreview/DeviceFrame.js +1 -1
  28. package/v2Components/CommonTestAndPreview/UnifiedPreview/EmailPreviewContent.js +8 -8
  29. package/v2Components/CommonTestAndPreview/UnifiedPreview/InAppPreviewContent.js +14 -13
  30. package/v2Components/CommonTestAndPreview/UnifiedPreview/MobilePushPreviewContent.js +22 -21
  31. package/v2Components/CommonTestAndPreview/UnifiedPreview/RcsPreviewContent.js +9 -9
  32. package/v2Components/CommonTestAndPreview/UnifiedPreview/SmsPreviewContent.js +8 -8
  33. package/v2Components/CommonTestAndPreview/UnifiedPreview/ViberPreviewContent.js +10 -10
  34. package/v2Components/CommonTestAndPreview/UnifiedPreview/WhatsAppPreviewContent.js +13 -12
  35. package/v2Components/CommonTestAndPreview/UnifiedPreview/ZaloPreviewContent.js +4 -3
  36. package/v2Components/CommonTestAndPreview/UnifiedPreview/_unifiedPreview.scss +10 -5
  37. package/v2Components/CommonTestAndPreview/UnifiedPreview/index.js +1 -1
  38. package/v2Components/CommonTestAndPreview/_commonTestAndPreview.scss +3 -4
  39. package/v2Components/CommonTestAndPreview/index.js +1 -1
  40. package/v2Components/CustomerSearchSection/_customerSearch.scss +2 -1
  41. package/v2Components/CustomerSearchSection/index.js +9 -9
  42. package/v2Components/EmailMobilePreview/index.js +1 -1
  43. package/v2Components/ErrorInfoNote/index.js +13 -11
  44. package/v2Components/ErrorInfoNote/style.scss +1 -1
  45. package/v2Components/FormBuilder/_formBuilder.scss +1 -0
  46. package/v2Components/FormBuilder/index.js +32 -40
  47. package/v2Components/HtmlEditor/HTMLEditor.js +4 -4
  48. package/v2Components/HtmlEditor/_htmlEditor.scss +2 -1
  49. package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +1 -1
  50. package/v2Components/HtmlEditor/components/DeviceToggle/_deviceToggle.scss +2 -2
  51. package/v2Components/HtmlEditor/components/DeviceToggle/index.js +2 -2
  52. package/v2Components/HtmlEditor/components/EditorToolbar/PreviewModeGroup.js +2 -2
  53. package/v2Components/HtmlEditor/components/EditorToolbar/index.js +2 -2
  54. package/v2Components/HtmlEditor/components/InAppPreviewPane/index.js +1 -0
  55. package/v2Components/HtmlEditor/components/PreviewPane/index.js +2 -2
  56. package/v2Components/HtmlEditor/components/SplitContainer/SplitContainer.js +2 -2
  57. package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +2 -1
  58. package/v2Components/HtmlEditor/components/ValidationPanel/index.js +6 -9
  59. package/v2Components/HtmlEditor/components/ValidationTabs/index.js +2 -2
  60. package/v2Components/NavigationBar/index.js +7 -1
  61. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +3 -4
  62. package/v2Components/TemplatePreview/_templatePreview.scss +5 -3
  63. package/v2Components/TemplatePreview/index.js +11 -9
  64. package/v2Components/TestAndPreviewSlidebox/CustomValuesEditor.js +3 -3
  65. package/v2Components/TestAndPreviewSlidebox/LeftPanelContent.js +5 -5
  66. package/v2Components/TestAndPreviewSlidebox/PreviewSection.js +3 -3
  67. package/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +4 -2
  68. package/v2Containers/BeePopupEditor/index.js +1 -1
  69. package/v2Containers/CommunicationFlow/CommunicationFlow.js +5 -5
  70. package/v2Containers/CommunicationFlow/steps/ChannelSelectionStep/ChannelSelectionStep.js +4 -3
  71. package/v2Containers/CommunicationFlow/steps/CommunicationStrategyStep/CommunicationStrategyStep.js +2 -2
  72. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/DeliverySettingsSection.js +3 -2
  73. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/SenderDetails.js +7 -7
  74. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/SenderDetails.scss +0 -5
  75. package/v2Containers/CommunicationFlow/steps/DynamicControlsStep/DynamicControlsStep.js +2 -2
  76. package/v2Containers/CommunicationFlow/steps/MessageTypeStep/MessageTypeStep.js +2 -2
  77. package/v2Containers/CreativesContainer/SlideBoxFooter.js +1 -1
  78. package/v2Containers/CreativesContainer/index.js +1 -1
  79. package/v2Containers/Ebill/index.js +10 -9
  80. package/v2Containers/Email/index.js +7 -7
  81. package/v2Containers/Email/initialSchema.js +1 -1
  82. package/v2Containers/FTP/index.js +1 -1
  83. package/v2Containers/Facebook/Advertisement/index.js +4 -4
  84. package/v2Containers/Facebook/index.js +2 -2
  85. package/v2Containers/InApp/index.js +21 -16
  86. package/v2Containers/InApp/index.scss +0 -7
  87. package/v2Containers/InAppWrapper/components/InAppWrapperView.js +2 -2
  88. package/v2Containers/InappAdvance/index.js +4 -4
  89. package/v2Containers/LanguageProvider/index.js +3 -3
  90. package/v2Containers/LanguageProvider/tests/index.test.js +3 -3
  91. package/v2Containers/Line/Container/Image/index.js +1 -1
  92. package/v2Containers/Line/Container/ImageCarousel/Content.js +1 -1
  93. package/v2Containers/Line/Container/ImageCarousel/index.js +5 -5
  94. package/v2Containers/Line/Container/ImageMap/index.js +3 -3
  95. package/v2Containers/Line/Container/Sticker/index.js +2 -2
  96. package/v2Containers/Line/Container/Sticker/utils.js +1 -1
  97. package/v2Containers/Line/Container/Video/index.js +1 -1
  98. package/v2Containers/Line/Container/Wrapper/index.js +3 -3
  99. package/v2Containers/Line/Container/Wrapper/style.js +1 -5
  100. package/v2Containers/Line/Container/index.js +2 -2
  101. package/v2Containers/Login/components/LoginForm/index.js +34 -47
  102. package/v2Containers/Login/index.js +5 -5
  103. package/v2Containers/MobilePushNew/components/CtaButtons.js +2 -2
  104. package/v2Containers/MobilePushNew/components/MediaUploaders.js +9 -9
  105. package/v2Containers/MobilePushNew/components/PlatformContentFields.js +4 -4
  106. package/v2Containers/MobilePushNew/index.js +2 -2
  107. package/v2Containers/MobilePushNew/index.scss +6 -3
  108. package/v2Containers/Rcs/index.js +24 -19
  109. package/v2Containers/Rcs/index.scss +0 -7
  110. package/v2Containers/SmsTrai/Edit/index.js +3 -2
  111. package/v2Containers/Templates/index.js +16 -16
  112. package/v2Containers/Viber/constants.js +0 -8
  113. package/v2Containers/Viber/index.js +19 -19
  114. package/v2Containers/Viber/index.scss +0 -7
  115. package/v2Containers/Viber/reducer.js +21 -44
  116. package/v2Containers/Viber/sagas.js +21 -62
  117. package/v2Containers/Viber/tests/index.test.js +0 -80
  118. package/v2Containers/Viber/tests/saga.test.js +40 -365
  119. package/v2Containers/WeChat/RichmediaTemplates/Create/_createRichmedia.scss +1 -1
  120. package/v2Containers/WeChat/RichmediaTemplates/Create/index.js +2 -2
  121. package/v2Containers/WebPush/Create/components/BrandIconSection.js +1 -1
  122. package/v2Containers/WebPush/Create/components/ButtonForm.js +2 -2
  123. package/v2Containers/WebPush/Create/components/ButtonList.js +4 -4
  124. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.js +4 -4
  125. package/v2Containers/WebPush/Create/components/FormActions.js +3 -3
  126. package/v2Containers/WebPush/Create/components/MessageSection.js +2 -2
  127. package/v2Containers/WebPush/Create/components/NotificationTitleSection.js +2 -2
  128. package/v2Containers/WebPush/Create/components/_buttons.scss +2 -2
  129. package/v2Containers/WebPush/Create/index.scss +6 -3
  130. package/v2Containers/WebPush/Create/preview/WebPushPreview.js +1 -1
  131. package/v2Containers/Whatsapp/index.js +28 -28
  132. package/v2Containers/Zalo/index.js +3 -3
  133. package/.npmrc copy +0 -2
  134. package/v2Containers/Viber/tests/reducer.test.js +0 -297
@@ -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>
@@ -185,7 +185,7 @@ const RcsPreviewContent = ({
185
185
  <CapRow className={`sms-content-overlay sms-content-overlay-${device}`}>
186
186
  <CapRow className="sms-loading-container">
187
187
  <CapSpin size="large" />
188
- <CapRow className="sms-loading-text">
188
+ <CapRow useLegacy className="sms-loading-text">
189
189
  {formatMessage(messages.updatingPreview)}
190
190
  </CapRow>
191
191
  </CapRow>
@@ -206,10 +206,10 @@ const RcsPreviewContent = ({
206
206
  <CapRow className={`sms-content-overlay sms-content-overlay-${device}`}>
207
207
  <CapRow className="sms-error-container">
208
208
  <CapIcon type="exclamation-circle" className="exclamation-circle" />
209
- <CapRow className="sms-error-text">
209
+ <CapRow useLegacy className="sms-error-text">
210
210
  {formatMessage(messages.previewError)}
211
211
  </CapRow>
212
- <CapRow className="sms-error-message">{error}</CapRow>
212
+ <CapRow useLegacy className="sms-error-message">{error}</CapRow>
213
213
  </CapRow>
214
214
  </CapRow>
215
215
  </CapRow>
@@ -241,7 +241,7 @@ const RcsPreviewContent = ({
241
241
  {/* Content Overlay */}
242
242
  <CapRow className={`sms-content-overlay sms-content-overlay-${device} sms-preview sms-${device}`}>
243
243
  {/* Navigation Bar - Same as SMS */}
244
- <CapRow className={`sms-navigation-bar ${!showHeader ? 'sms-navigation-bar-no-header' : ''}`}>
244
+ <CapRow useLegacy className={`sms-navigation-bar ${!showHeader ? 'sms-navigation-bar-no-header' : ''}`}>
245
245
  <CapIcon type="chevron-left" className="sms-back-arrow" />
246
246
  <CapLabel type="label2" className="sms-sender-id">
247
247
  {senderId || formatMessage(messages.senderId)}
@@ -250,21 +250,21 @@ const RcsPreviewContent = ({
250
250
  </CapRow>
251
251
 
252
252
  {/* Date Separator - Same as SMS */}
253
- <CapRow className="sms-date-separator">
253
+ <CapRow useLegacy className="sms-date-separator">
254
254
  <FormattedMessage {...messages.timeAgo} defaultMessage="Today" />
255
255
  </CapRow>
256
256
 
257
257
  {/* Message Container - Same structure as SMS, only content inside is RCS-specific */}
258
258
  <CapRow className="sms-message-container">
259
- <CapRow className="sms-message-bubble">
260
- <CapRow className="sms-message-text">
259
+ <CapRow useLegacy className="sms-message-bubble">
260
+ <CapRow useLegacy className="sms-message-text">
261
261
  {/* RCS-specific content rendering */}
262
- <CapRow className="message-pop sms">
262
+ <CapRow useLegacy className="message-pop sms">
263
263
  {contentToRender}
264
264
  </CapRow>
265
265
  </CapRow>
266
266
  </CapRow>
267
- <CapRow className="sms-timestamp">
267
+ <CapRow useLegacy className="sms-timestamp">
268
268
  {timestamp}
269
269
  </CapRow>
270
270
  </CapRow>
@@ -53,7 +53,7 @@ const SmsPreviewContent = ({
53
53
  <CapRow className={`sms-content-overlay sms-content-overlay-${device}`}>
54
54
  <CapRow 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>
@@ -74,10 +74,10 @@ const SmsPreviewContent = ({
74
74
  <CapRow className={`sms-content-overlay sms-content-overlay-${device}`}>
75
75
  <CapRow 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>
@@ -106,7 +106,7 @@ const SmsPreviewContent = ({
106
106
  {/* Content Overlay */}
107
107
  <CapRow className={`sms-content-overlay sms-content-overlay-${device} sms-preview sms-${device}`}>
108
108
  {/* Navigation Bar */}
109
- <CapRow className={`sms-navigation-bar ${!showHeader ? 'sms-navigation-bar-no-header' : ''}`}>
109
+ <CapRow useLegacy className={`sms-navigation-bar ${!showHeader ? 'sms-navigation-bar-no-header' : ''}`}>
110
110
  <CapIcon type="chevron-left" className="sms-back-arrow" />
111
111
  <CapLabel type="label15" className="sms-sender-id">
112
112
  {senderId || formatMessage(messages.senderId)}
@@ -115,18 +115,18 @@ const SmsPreviewContent = ({
115
115
  </CapRow>
116
116
 
117
117
  {/* Date Separator */}
118
- <CapRow className="sms-date-separator">
118
+ <CapRow useLegacy className="sms-date-separator">
119
119
  <FormattedMessage {...messages.timeAgo} defaultMessage="Today" />
120
120
  </CapRow>
121
121
 
122
122
  {/* Message Bubble */}
123
123
  <CapRow className="sms-message-container">
124
- <CapRow className="sms-message-bubble">
125
- <CapRow className="sms-message-text">
124
+ <CapRow useLegacy className="sms-message-bubble">
125
+ <CapRow useLegacy className="sms-message-text">
126
126
  {content || formatMessage(messages.noContent)}
127
127
  </CapRow>
128
128
  </CapRow>
129
- <CapRow className="sms-timestamp">
129
+ <CapRow useLegacy className="sms-timestamp">
130
130
  {timestamp}
131
131
  </CapRow>
132
132
  </CapRow>
@@ -68,7 +68,7 @@ const ViberPreviewContent = ({
68
68
  <CapRow className={`sms-content-overlay sms-content-overlay-${device} viber-content-overlay`}>
69
69
  <CapRow className="sms-loading-container">
70
70
  <CapSpin size="large" />
71
- <CapRow className="sms-loading-text">
71
+ <CapRow useLegacy className="sms-loading-text">
72
72
  {formatMessage(messages.updatingPreview)}
73
73
  </CapRow>
74
74
  </CapRow>
@@ -89,10 +89,10 @@ const ViberPreviewContent = ({
89
89
  <CapRow className={`sms-content-overlay sms-content-overlay-${device} viber-content-overlay`}>
90
90
  <CapRow className="sms-error-container">
91
91
  <CapIcon type="exclamation-circle" className="exclamation-circle" />
92
- <CapRow className="sms-error-text">
92
+ <CapRow useLegacy className="sms-error-text">
93
93
  {formatMessage(messages.previewError)}
94
94
  </CapRow>
95
- <CapRow className="sms-error-message">{error}</CapRow>
95
+ <CapRow useLegacy className="sms-error-message">{error}</CapRow>
96
96
  </CapRow>
97
97
  </CapRow>
98
98
  </CapRow>
@@ -113,9 +113,9 @@ const ViberPreviewContent = ({
113
113
  />
114
114
 
115
115
  {/* Content Overlay */}
116
- <CapRow className={`sms-content-overlay sms-content-overlay-${device} ${device === ANDROID ? 'viber-content-overlay' : ''} viber-preview viber-${device}`}>
116
+ <CapRow useLegacy className={`sms-content-overlay sms-content-overlay-${device} ${device === ANDROID ? 'viber-content-overlay' : ''} viber-preview viber-${device}`}>
117
117
  {/* Navigation Bar (same as SMS) */}
118
- <CapRow className={`sms-navigation-bar ${device === ANDROID && !showHeader ? 'viber-navigation-bar' : ''}`}>
118
+ <CapRow useLegacy className={`sms-navigation-bar ${device === ANDROID && !showHeader ? 'viber-navigation-bar' : ''}`}>
119
119
  <CapIcon type="chevron-left" className="sms-back-arrow" />
120
120
  <CapLabel type="label16" className="sms-sender-id">
121
121
  {displayBrandName}
@@ -125,7 +125,7 @@ const ViberPreviewContent = ({
125
125
 
126
126
  {/* Viber Message Container */}
127
127
  {hasContent && (
128
- <CapRow className={`viber-message-container ${device !== ANDROID ? 'viber-message-container-ios' : ''}`}>
128
+ <CapRow useLegacy className={`viber-message-container ${device !== ANDROID ? 'viber-message-container-ios' : ''}`}>
129
129
  {/* Brand Name Display (from TemplatePreview line 1136) */}
130
130
  <CapRow className="msg-container viber-preview">
131
131
  {/* Account Icon (from TemplatePreview line 1146-1160) */}
@@ -181,7 +181,7 @@ const ViberPreviewContent = ({
181
181
  <CapLabel type="label1" className="viber-timestamp">
182
182
  {timestamp}
183
183
  </CapLabel>
184
- <CapRow className="empty-placeholder" />
184
+ <CapRow useLegacy className="empty-placeholder" />
185
185
  </CapRow>
186
186
 
187
187
  </CapRow>
@@ -191,9 +191,9 @@ const ViberPreviewContent = ({
191
191
 
192
192
  {/* No Content State */}
193
193
  {!hasContent && (
194
- <CapRow className="viber-message-container">
195
- <CapRow className="sms-message-bubble">
196
- <CapRow className="sms-message-text">
194
+ <CapRow useLegacy className="viber-message-container">
195
+ <CapRow useLegacy className="sms-message-bubble">
196
+ <CapRow useLegacy className="sms-message-text">
197
197
  {formatMessage(messages.noContent)}
198
198
  </CapRow>
199
199
  </CapRow>
@@ -115,8 +115,8 @@ const WhatsAppPreviewContent = ({
115
115
 
116
116
  // Render WhatsApp structure (common for all states) - Based on TemplatePreview lines 1229-1328
117
117
  const renderWhatsAppStructure = (contentSection) => (
118
- <CapRow className="whatsapp-preview-wrapper">
119
- <CapRow className="shell-v2-whatsapp align-center">
118
+ <CapRow useLegacy className="whatsapp-preview-wrapper">
119
+ <CapRow useLegacy className="shell-v2-whatsapp align-center">
120
120
  <CapImage
121
121
  className="preview-image"
122
122
  src={deviceImage}
@@ -125,11 +125,12 @@ const WhatsAppPreviewContent = ({
125
125
  <CapLabel className={`whatsapp-brand-name whatsapp-brand-name-${device}`}>
126
126
  {accountName || ''}
127
127
  </CapLabel>
128
- <CapRow className={`msg-container whatsapp-message-container ${content?.carouselData && 'msg-container-carousel'}`}>
128
+ <CapRow useLegacy className={`msg-container whatsapp-message-container ${content?.carouselData && 'msg-container-carousel'}`}>
129
129
  <CapRow
130
+ useLegacy
130
131
  className={`message-pop align-left whatsapp-message-pop ${content?.carouselData && 'message-pop-carousel'}`}
131
132
  >
132
- <CapRow className="whatsapp-content">
133
+ <CapRow useLegacy className="whatsapp-content">
133
134
  {contentSection}
134
135
  </CapRow>
135
136
  </CapRow>
@@ -140,7 +141,7 @@ const WhatsAppPreviewContent = ({
140
141
  key={`carousel-${data?.bodyText || data?.imageSrc || data?.videoPreviewImg || Math.random()}`}
141
142
  className="message-pop align-left message-pop-carousel whatsapp-message-pop-carousel"
142
143
  >
143
- <CapRow className="whatsapp-content">
144
+ <CapRow useLegacy className="whatsapp-content">
144
145
  {content?.carouselMediaType === 'image' && (
145
146
  <CapImage
146
147
  src={data?.imageSrc ? data.imageSrc : whatsappImageEmptyPreview}
@@ -187,9 +188,9 @@ const WhatsAppPreviewContent = ({
187
188
  if (isUpdating) {
188
189
  // Loading state
189
190
  contentSection = (
190
- <CapRow className="whatsapp-loading-container">
191
+ <CapRow useLegacy className="whatsapp-loading-container">
191
192
  <CapSpin size="large" />
192
- <CapRow className="whatsapp-loading-text">
193
+ <CapRow useLegacy className="whatsapp-loading-text">
193
194
  {formatMessage(messages.updatingPreview)}
194
195
  </CapRow>
195
196
  </CapRow>
@@ -197,12 +198,12 @@ const WhatsAppPreviewContent = ({
197
198
  } else if (error) {
198
199
  // Error state
199
200
  contentSection = (
200
- <CapRow className="whatsapp-error-container">
201
+ <CapRow useLegacy className="whatsapp-error-container">
201
202
  <CapIcon type="exclamation-circle" className="exclamation-circle" />
202
- <CapRow className="whatsapp-error-text">
203
+ <CapRow useLegacy className="whatsapp-error-text">
203
204
  {formatMessage(messages.previewError)}
204
205
  </CapRow>
205
- <CapRow className="whatsapp-error-message">{error}</CapRow>
206
+ <CapRow useLegacy className="whatsapp-error-message">{error}</CapRow>
206
207
  </CapRow>
207
208
  );
208
209
  } else if (content) {
@@ -245,7 +246,7 @@ const WhatsAppPreviewContent = ({
245
246
 
246
247
  {/* Document Preview */}
247
248
  {content?.docPreview && (
248
- <CapRow className="whatsapp-image">
249
+ <CapRow useLegacy className="whatsapp-image">
249
250
  {content.docPreview}
250
251
  </CapRow>
251
252
  )}
@@ -290,7 +291,7 @@ const WhatsAppPreviewContent = ({
290
291
  } else {
291
292
  // No content state
292
293
  contentSection = (
293
- <CapRow className="whatsapp-no-content">
294
+ <CapRow useLegacy className="whatsapp-no-content">
294
295
  {formatMessage(messages.noContent)}
295
296
  </CapRow>
296
297
  );
@@ -33,23 +33,24 @@ const ZaloPreviewContent = ({
33
33
  // Render Zalo preview - exact structure from TemplatePreview (lines 1356-1385)
34
34
  return (
35
35
  <CapRow
36
+ useLegacy
36
37
  className={`zalo-preview-container ${
37
38
  fullMode
38
39
  ? "zalo-preview-container-creative"
39
40
  : "zalo-preview-container-campaign"
40
41
  }`}
41
42
  >
42
- <CapRow>
43
+ <CapRow useLegacy>
43
44
  <CapLabel className="preview-head">
44
45
  {formatMessage(zaloMessages.previewHead)}
45
46
  </CapLabel>
46
47
  </CapRow>
47
- <CapRow>
48
+ <CapRow useLegacy>
48
49
  <CapLabel className="preview-text">
49
50
  {formatMessage(zaloMessages.previewText)}
50
51
  </CapLabel>
51
52
  </CapRow>
52
- <CapRow>
53
+ <CapRow useLegacy>
53
54
  <CapLabel
54
55
  data-testid="preview-link-button"
55
56
  onClick={handlePreview}
@@ -289,7 +289,8 @@
289
289
  .preview-loading-container {
290
290
  flex: 1;
291
291
  display: flex;
292
- flex-direction: column;
292
+ flex-direction: column !important;
293
+ flex-flow: column nowrap;
293
294
  align-items: center;
294
295
  justify-content: center;
295
296
  gap: $CAP_SPACE_16;
@@ -508,7 +509,8 @@
508
509
 
509
510
  .loading-container {
510
511
  display: flex;
511
- flex-direction: column;
512
+ flex-direction: column !important;
513
+ flex-flow: column nowrap;
512
514
  align-items: center;
513
515
  justify-content: center;
514
516
  height: 100%;
@@ -709,7 +711,8 @@
709
711
  .sms-loading-container {
710
712
  flex: 1;
711
713
  display: flex;
712
- flex-direction: column;
714
+ flex-direction: column !important;
715
+ flex-flow: column nowrap;
713
716
  align-items: center;
714
717
  justify-content: center;
715
718
  gap: $CAP_SPACE_16;
@@ -801,7 +804,8 @@
801
804
 
802
805
  &.msg-container-carousel {
803
806
  display: flex;
804
- flex-direction: column;
807
+ flex-direction: column !important;
808
+ flex-flow: column nowrap;
805
809
 
806
810
  .scroll-container {
807
811
  overflow-x: auto;
@@ -967,7 +971,8 @@
967
971
  color: #ff4d4f;
968
972
  }
969
973
  display: flex;
970
- flex-direction: column;
974
+ flex-direction: column !important;
975
+ flex-flow: column nowrap;
971
976
  align-items: center;
972
977
  justify-content: center;
973
978
  gap: $CAP_SPACE_16;
@@ -282,7 +282,7 @@ const UnifiedPreview = ({
282
282
  )}
283
283
 
284
284
  {/* Channel-specific preview content */}
285
- <CapRow className={`preview-content-container ${!showHeader ? 'preview-content-container-no-header' : ''}`}>
285
+ <CapRow useLegacy className={`preview-content-container ${!showHeader ? 'preview-content-container-no-header' : ''}`}>
286
286
  {[CHANNELS.EMAIL, CHANNELS.SMS, CHANNELS.WHATSAPP, CHANNELS.RCS, CHANNELS.INAPP, CHANNELS.MOBILEPUSH, CHANNELS.VIBER].includes(channel) ? (
287
287
  renderChannelContent()
288
288
  ) : (
@@ -31,10 +31,8 @@
31
31
  /* Customer creation modal content – avoid inline styles */
32
32
  .common-test-preview-modal.common-test-preview-modal {
33
33
  color: $CAP_G01;
34
- width: 32.571em;
35
34
  margin-left: auto;
36
35
  margin-right: auto;
37
- max-width: 32.571em;
38
36
 
39
37
  .ant-modal-footer {
40
38
  text-align: left;
@@ -302,7 +300,8 @@
302
300
 
303
301
  .loading-container {
304
302
  display: flex;
305
- flex-direction: column;
303
+ flex-direction: column !important;
304
+ flex-flow: column nowrap;
306
305
  align-items: center;
307
306
  justify-content: center;
308
307
  padding: $CAP_SPACE_32;
@@ -635,7 +634,7 @@
635
634
 
636
635
  .test-customer-add-btn {
637
636
  width: 100%;
638
- &.ant-btn.cap-button-v2.flat-btn {
637
+ &.ant-btn.cap-button-v2.ant-btn-link {
639
638
  background-color: transparent;
640
639
  color: $FONT_COLOR_05;
641
640
  }
@@ -2983,7 +2983,7 @@ const CommonTestAndPreview = (props) => {
2983
2983
  <CapRow className="test-preview-container">
2984
2984
  <CapRow className="test-and-preview-panels">
2985
2985
  {/* Left Panel */}
2986
- <CapRow className="left-panel">
2986
+ <CapRow useLegacy className="left-panel">
2987
2987
  {channel === CHANNELS.ZALO ? null : renderLeftPanelContent()}
2988
2988
  <CapDivider className="panel-divider" />
2989
2989