@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
@@ -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>
@@ -107,26 +107,28 @@ const SmsPreviewContent = ({
107
107
  <CapRow className={`sms-content-overlay sms-content-overlay-${device} sms-preview sms-${device}`}>
108
108
  {/* Navigation Bar */}
109
109
  <CapRow className={`sms-navigation-bar ${!showHeader ? 'sms-navigation-bar-no-header' : ''}`}>
110
- <CapIcon type="chevron-left" className="sms-back-arrow" />
111
- <CapLabel type="label15" className="sms-sender-id">
112
- {senderId || formatMessage(messages.senderId)}
113
- </CapLabel>
110
+ <CapRow type='flex' align='middle' justify='center'>
111
+ <CapIcon type="chevron-left" className="sms-back-arrow" />
112
+ <CapLabel type="label15" className="sms-sender-id">
113
+ {senderId || formatMessage(messages.senderId)}
114
+ </CapLabel>
115
+ </CapRow>
114
116
  <CapIcon type="more" className="sms-menu-icon" />
115
117
  </CapRow>
116
118
 
117
119
  {/* Date Separator */}
118
- <CapRow className="sms-date-separator">
120
+ <CapRow useLegacy className="sms-date-separator">
119
121
  <FormattedMessage {...messages.timeAgo} defaultMessage="Today" />
120
122
  </CapRow>
121
123
 
122
124
  {/* Message Bubble */}
123
125
  <CapRow className="sms-message-container">
124
- <CapRow className="sms-message-bubble">
125
- <CapRow className="sms-message-text">
126
+ <CapRow useLegacy className="sms-message-bubble">
127
+ <CapRow useLegacy className="sms-message-text">
126
128
  {content || formatMessage(messages.noContent)}
127
129
  </CapRow>
128
130
  </CapRow>
129
- <CapRow className="sms-timestamp">
131
+ <CapRow useLegacy className="sms-timestamp">
130
132
  {timestamp}
131
133
  </CapRow>
132
134
  </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%;
@@ -554,11 +556,11 @@
554
556
  }
555
557
 
556
558
  // SMS Preview Content Styles (Phase 7)
557
- .sms-device-container {
559
+ .sms-device-container.ant-row {
558
560
  position: relative;
559
561
  display: flex;
560
562
  justify-content: center;
561
- align-items: flex-start;
563
+ align-items: center !important;
562
564
  width: 100%;
563
565
  margin: 0 auto;
564
566
 
@@ -617,8 +619,9 @@
617
619
  // Navigation Bar
618
620
  .sms-navigation-bar {
619
621
  display: flex;
622
+ position: relative;
620
623
  align-items: center;
621
- justify-content: space-between;
624
+ justify-content: center;
622
625
  padding: $CAP_SPACE_12 $CAP_SPACE_16;
623
626
  height: $CAP_SPACE_48;
624
627
  background: $CAP_G09;
@@ -642,6 +645,8 @@
642
645
  }
643
646
 
644
647
  .sms-menu-icon {
648
+ position: absolute;
649
+ right: $CAP_SPACE_20;
645
650
  font-size: $FONT_SIZE_L;
646
651
  color: #595959;
647
652
  cursor: pointer;
@@ -688,6 +693,7 @@
688
693
  font-size: $FONT_SIZE_M;
689
694
  line-height: 1.4;
690
695
  word-wrap: break-word;
696
+ max-width: 14.286rem;
691
697
 
692
698
  .message-pop {
693
699
  .rcs-image {
@@ -709,7 +715,8 @@
709
715
  .sms-loading-container {
710
716
  flex: 1;
711
717
  display: flex;
712
- flex-direction: column;
718
+ flex-direction: column !important;
719
+ flex-flow: column nowrap;
713
720
  align-items: center;
714
721
  justify-content: center;
715
722
  gap: $CAP_SPACE_16;
@@ -801,7 +808,8 @@
801
808
 
802
809
  &.msg-container-carousel {
803
810
  display: flex;
804
- flex-direction: column;
811
+ flex-direction: column !important;
812
+ flex-flow: column nowrap;
805
813
 
806
814
  .scroll-container {
807
815
  overflow-x: auto;
@@ -967,7 +975,8 @@
967
975
  color: #ff4d4f;
968
976
  }
969
977
  display: flex;
970
- flex-direction: column;
978
+ flex-direction: column !important;
979
+ flex-flow: column nowrap;
971
980
  align-items: center;
972
981
  justify-content: center;
973
982
  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;
@@ -365,6 +364,7 @@
365
364
  user-select: none;
366
365
  min-width: $CAP_SPACE_40;
367
366
  flex-shrink: 0;
367
+ flex-direction: column;
368
368
 
369
369
  .line-number {
370
370
  text-align: right;
@@ -522,6 +522,7 @@
522
522
  padding: $CAP_SPACE_12 $CAP_SPACE_16;
523
523
  color: #333;
524
524
  word-break: break-all;
525
+ max-width: 10rem;
525
526
  }
526
527
 
527
528
  .tag-input {
@@ -529,6 +530,11 @@
529
530
  padding: $CAP_SPACE_08 $CAP_SPACE_16;
530
531
  display: flex;
531
532
  align-items: center;
533
+
534
+ input {
535
+ height: $CAP_SPACE_32;
536
+ font-size: $FONT_SIZE_M
537
+ }
532
538
  }
533
539
  }
534
540
  }
@@ -581,6 +587,10 @@
581
587
  color: #666;
582
588
  }
583
589
 
590
+ .ant-collapse-borderless {
591
+ background-color: transparent;
592
+ }
593
+
584
594
  .ant-collapse-header {
585
595
  padding-left: 0;
586
596
  }
@@ -589,14 +599,24 @@
589
599
  padding-left: 0 !important;
590
600
  }
591
601
 
602
+ .accordion-content-wrapper {
603
+ padding-left: $CAP_SPACE_08;
604
+ }
605
+
592
606
  .send-test-content {
593
607
  flex-direction: column;
594
608
  align-items: stretch;
595
609
  gap: 0;
596
610
  }
597
611
 
612
+ .cap-tree-select-v2-select-slot {
613
+ height: $CAP_SPACE_40;
614
+ max-height: 21.429rem;
615
+ }
616
+
598
617
  .test-customers-tree-select {
599
618
  width: 100%;
619
+ height: 100% !important;
600
620
  min-width: 18rem;
601
621
  /* Consistent dropdown width in campaigns and creatives */
602
622
  min-height: $CAP_SPACE_40;
@@ -607,6 +627,10 @@
607
627
  min-height: $CAP_SPACE_40;
608
628
  height: auto !important;
609
629
  }
630
+
631
+ .ant-select-content {
632
+ height: 100%;
633
+ }
610
634
  }
611
635
 
612
636
  .send-test-content .ant-btn {
@@ -635,7 +659,7 @@
635
659
 
636
660
  .test-customer-add-btn {
637
661
  width: 100%;
638
- &.ant-btn.cap-button-v2.flat-btn {
662
+ &.ant-btn.cap-button-v2.ant-btn-link {
639
663
  background-color: transparent;
640
664
  color: $FONT_COLOR_05;
641
665
  }
@@ -708,7 +732,8 @@
708
732
  padding: $CAP_SPACE_06 $CAP_SPACE_08;
709
733
  border-radius: $CAP_SPACE_08;
710
734
 
711
- .anticon {
735
+ .anticon,
736
+ .cap-icon-v2 {
712
737
  padding: $CAP_SPACE_04;
713
738
  border-radius: $CAP_SPACE_04;
714
739
  cursor: pointer;
@@ -2959,7 +2959,7 @@ const CommonTestAndPreview = (props) => {
2959
2959
 
2960
2960
  // Header content for the slidebox
2961
2961
  const slideboxHeader = (
2962
- <CapRow className="test-preview-header">
2962
+ <CapRow type="flex" align="middle" className="test-preview-header">
2963
2963
  <CapIcon type="arrow-left" onClick={handleClose} className="back-icon" />
2964
2964
  <CapHeader title={<FormattedMessage {...messages.testAndPreviewHeader} />} />
2965
2965
  </CapRow>
@@ -2981,9 +2981,9 @@ const CommonTestAndPreview = (props) => {
2981
2981
  className={`common-test-preview-lookup-spin ${isCustomerDataLoading ? 'common-test-preview-customer-loading' : ''}`}
2982
2982
  >
2983
2983
  <CapRow className="test-preview-container">
2984
- <CapRow className="test-and-preview-panels">
2984
+ <CapRow type="flex" align="stretch" 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
 
@@ -3,7 +3,8 @@
3
3
  .customer-search-section {
4
4
  margin-top: $CAP_SPACE_08;
5
5
  display: flex;
6
- flex-direction: column;
6
+ flex-direction: column !important;
7
+ flex-flow: column nowrap;
7
8
  gap: $CAP_SPACE_04;
8
9
  padding: 0;
9
10
  position: relative;
@@ -183,9 +183,9 @@ const CustomerSearchSection = ({
183
183
  };
184
184
 
185
185
  return (
186
- <CapRow className="customer-search-section">
186
+ <CapRow useLegacy className="customer-search-section">
187
187
  <div ref={searchContainerRef}>
188
- <CapRow className="search-container">
188
+ <CapRow useLegacy className="search-container">
189
189
  {selectedCustomer ? (
190
190
  <SelectedCustomerView
191
191
  customer={selectedCustomer}
@@ -203,7 +203,7 @@ const CustomerSearchSection = ({
203
203
  />
204
204
  )}
205
205
  {showDropdown && !selectedCustomer && (
206
- <CapRow className="search-dropdown-container">
206
+ <CapRow useLegacy className="search-dropdown-container">
207
207
  <CapRow type="flex" justify="center" align="middle">
208
208
  {(processedSearchData?.length === 0 && customerSearchValue != null && !isSearchingCustomer) && (
209
209
  <CapCard className="validation-card">
@@ -214,7 +214,7 @@ const CustomerSearchSection = ({
214
214
  )}
215
215
  {(isSearchingCustomer) && (
216
216
  <CapCard className="validation-card">
217
- <CapRow className="spin-card-align">
217
+ <CapRow useLegacy className="spin-card-align">
218
218
  <CapSpin />
219
219
  </CapRow>
220
220
  </CapCard>
@@ -232,12 +232,12 @@ const CustomerSearchSection = ({
232
232
  className="search-results-height link-result"
233
233
  title={(
234
234
  <>
235
- <CapRow type="flex" align="middle" gutter={16}>
235
+ <CapRow type="flex" align="middle" gap={16}>
236
236
  <CapColumn data-testid="namingIcon">
237
237
  <CapRow className="customer-common-profile">{getNamingIcon(d?.name)}</CapRow>
238
238
  </CapColumn>
239
239
  <CapColumn>
240
- <CapRow type="flex" gutter={12}>
240
+ <CapRow type="flex" gap={12}>
241
241
  <CapColumn data-testid="searchResultName">
242
242
  <CapHeading className="search-text" type="h4">
243
243
  {d?.name}
@@ -279,7 +279,7 @@ const SearchInput = ({
279
279
  disabled,
280
280
  placeholder,
281
281
  }) => (
282
- <CapRow className="search-input-container">
282
+ <CapRow useLegacy className="search-input-container">
283
283
  <CapInput
284
284
  value={value}
285
285
  onChange={onChange}
@@ -290,7 +290,7 @@ const SearchInput = ({
290
290
  autoComplete="off"
291
291
  />
292
292
  {error && (
293
- <CapRow className="search-error">
293
+ <CapRow useLegacy className="search-error">
294
294
  <CapAlert
295
295
  message={error}
296
296
  type="error"
@@ -304,7 +304,7 @@ const SearchInput = ({
304
304
 
305
305
  const SelectedCustomerView = ({ customer, onClear, showIdentifiers }) => (
306
306
  <div className="selected-customer-view">
307
- <CapRow type="flex" align="middle" gutter={8}>
307
+ <CapRow type="flex" align="middle" gap={8}>
308
308
  <CapColumn>
309
309
  <CapRow className="customer-common-profile">{getNamingIcon(customer?.name)}</CapRow>
310
310
  </CapColumn>
@@ -89,7 +89,7 @@ class EmailMobilePreview extends React.Component {
89
89
  <div className="email-preview-container">
90
90
  {enableShowAllDevices && (
91
91
  <CapButton
92
- type="flat"
92
+ type="link"
93
93
  onClick={this.onClickShowInAllDevices}
94
94
  >
95
95
  View in all devices