@capillarytech/creatives-library 9.0.14 → 9.0.15-alpha.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 (175) hide show
  1. package/constants/unified.js +32 -0
  2. package/global-styles.js +1 -1
  3. package/package.json +1 -1
  4. package/services/tests/api.test.js +35 -20
  5. package/utils/common.js +8 -0
  6. package/utils/commonUtils.js +19 -1
  7. package/utils/rcsPayloadUtils.js +92 -0
  8. package/utils/templateVarUtils.js +201 -0
  9. package/utils/tests/rcsPayloadUtils.test.js +226 -0
  10. package/utils/tests/templateVarUtils.test.js +204 -0
  11. package/v2Components/CapActionButton/constants.js +7 -0
  12. package/v2Components/CapActionButton/index.js +168 -109
  13. package/v2Components/CapActionButton/index.scss +156 -5
  14. package/v2Components/CapActionButton/messages.js +19 -3
  15. package/v2Components/CapActionButton/tests/index.test.js +42 -18
  16. package/v2Components/CapImageUpload/index.js +2 -2
  17. package/v2Components/CapTagList/index.js +10 -0
  18. package/v2Components/CommonTestAndPreview/CustomValuesEditor.js +70 -48
  19. package/v2Components/CommonTestAndPreview/DeliverySettings/DeliverySettings.scss +8 -2
  20. package/v2Components/CommonTestAndPreview/DeliverySettings/ModifyDeliverySettings.js +214 -21
  21. package/v2Components/CommonTestAndPreview/DeliverySettings/constants.js +16 -0
  22. package/v2Components/CommonTestAndPreview/DeliverySettings/index.js +83 -9
  23. package/v2Components/CommonTestAndPreview/DeliverySettings/messages.js +30 -0
  24. package/v2Components/CommonTestAndPreview/DeliverySettings/utils/parseSenderDetailsResponse.js +60 -11
  25. package/v2Components/CommonTestAndPreview/SendTestMessage.js +10 -5
  26. package/v2Components/CommonTestAndPreview/UnifiedPreview/RcsPreviewContent.js +201 -23
  27. package/v2Components/CommonTestAndPreview/UnifiedPreview/_unifiedPreview.scss +355 -76
  28. package/v2Components/CommonTestAndPreview/UnifiedPreview/index.js +155 -8
  29. package/v2Components/CommonTestAndPreview/_commonTestAndPreview.scss +11 -0
  30. package/v2Components/CommonTestAndPreview/constants.js +38 -2
  31. package/v2Components/CommonTestAndPreview/index.js +761 -222
  32. package/v2Components/CommonTestAndPreview/messages.js +45 -3
  33. package/v2Components/CommonTestAndPreview/previewApiUtils.js +59 -0
  34. package/v2Components/CommonTestAndPreview/sagas.js +25 -6
  35. package/v2Components/CommonTestAndPreview/tests/CommonTestAndPreview.addTestCustomer.test.js +1 -0
  36. package/v2Components/CommonTestAndPreview/tests/CustomValuesEditor.test.js +284 -267
  37. package/v2Components/CommonTestAndPreview/tests/DeliverySettings/ModifyDeliverySettings.test.js +231 -65
  38. package/v2Components/CommonTestAndPreview/tests/DeliverySettings/index.test.js +118 -5
  39. package/v2Components/CommonTestAndPreview/tests/DeliverySettings/utils/parseSenderDetailsResponse.test.js +341 -0
  40. package/v2Components/CommonTestAndPreview/tests/PreviewSection.test.js +8 -1
  41. package/v2Components/CommonTestAndPreview/tests/SendTestMessage.test.js +34 -13
  42. package/v2Components/CommonTestAndPreview/tests/UnifiedPreview/RcsPreviewContent.test.js +281 -283
  43. package/v2Components/CommonTestAndPreview/tests/UnifiedPreview/index.test.js +199 -1
  44. package/v2Components/CommonTestAndPreview/tests/index.test.js +133 -4
  45. package/v2Components/CommonTestAndPreview/tests/previewApiUtils.test.js +67 -0
  46. package/v2Components/CommonTestAndPreview/tests/sagas.test.js +31 -24
  47. package/v2Components/CommonTestAndPreview/utils.js +84 -0
  48. package/v2Components/FormBuilder/Classic.js +4487 -0
  49. package/v2Components/FormBuilder/Functional/FormBuilderShell.js +366 -0
  50. package/v2Components/FormBuilder/Functional/channels/registry.js +17 -0
  51. package/v2Components/FormBuilder/Functional/channels/sms/buildSubmitPayload.js +9 -0
  52. package/v2Components/FormBuilder/Functional/channels/sms/config.js +30 -0
  53. package/v2Components/FormBuilder/Functional/channels/sms/getEditorErrorDescriptor.js +46 -0
  54. package/v2Components/FormBuilder/Functional/channels/sms/getLiquidContent.js +13 -0
  55. package/v2Components/FormBuilder/Functional/channels/sms/index.js +22 -0
  56. package/v2Components/FormBuilder/Functional/channels/sms/tests/getEditorErrorDescriptor.test.js +52 -0
  57. package/v2Components/FormBuilder/Functional/channels/sms/tests/getLiquidContent.test.js +25 -0
  58. package/v2Components/FormBuilder/Functional/channels/sms/tests/validate.test.js +87 -0
  59. package/v2Components/FormBuilder/Functional/channels/sms/validate.js +89 -0
  60. package/v2Components/FormBuilder/Functional/constants.js +42 -0
  61. package/v2Components/FormBuilder/Functional/core/schema/fieldRegistry.js +38 -0
  62. package/v2Components/FormBuilder/Functional/core/schema/initializeFormState.js +85 -0
  63. package/v2Components/FormBuilder/Functional/core/store/formReducer.js +81 -0
  64. package/v2Components/FormBuilder/Functional/core/store/selectors.js +30 -0
  65. package/v2Components/FormBuilder/Functional/core/store/toLegacyFormData.js +91 -0
  66. package/v2Components/FormBuilder/Functional/index.js +26 -0
  67. package/v2Components/FormBuilder/Functional/layout/FieldSlot.js +59 -0
  68. package/v2Components/FormBuilder/Functional/layout/SchemaForm.js +31 -0
  69. package/v2Components/FormBuilder/Functional/layout/Section.js +116 -0
  70. package/v2Components/FormBuilder/Functional/renderers/smsRenderers.js +258 -0
  71. package/v2Components/FormBuilder/Functional/tests/channelRegistry.test.js +21 -0
  72. package/v2Components/FormBuilder/Functional/tests/fieldRegistry.test.js +65 -0
  73. package/v2Components/FormBuilder/Functional/tests/fieldSlot.test.js +97 -0
  74. package/v2Components/FormBuilder/Functional/tests/fixtures/smsParityCases.js +192 -0
  75. package/v2Components/FormBuilder/Functional/tests/formReducer.test.js +129 -0
  76. package/v2Components/FormBuilder/Functional/tests/initializeFormState.test.js +132 -0
  77. package/v2Components/FormBuilder/Functional/tests/schemaForm.test.js +40 -0
  78. package/v2Components/FormBuilder/Functional/tests/section.test.js +99 -0
  79. package/v2Components/FormBuilder/Functional/tests/selectors.test.js +67 -0
  80. package/v2Components/FormBuilder/Functional/tests/sms.crossFlowParity.test.js +155 -0
  81. package/v2Components/FormBuilder/Functional/tests/sms.liquid.test.js +172 -0
  82. package/v2Components/FormBuilder/Functional/tests/sms.rollout.test.js +122 -0
  83. package/v2Components/FormBuilder/Functional/tests/sms.shell.parity.test.js +329 -0
  84. package/v2Components/FormBuilder/Functional/tests/smsRenderers.test.js +160 -0
  85. package/v2Components/FormBuilder/Functional/tests/toLegacyFormData.test.js +95 -0
  86. package/v2Components/FormBuilder/_formBuilder.scss +5 -0
  87. package/v2Components/FormBuilder/index.js +41 -4479
  88. package/v2Components/FormBuilder/tests/__snapshots__/sms.characterization.test.js.snap +114 -0
  89. package/v2Components/FormBuilder/tests/entryGate.test.js +106 -0
  90. package/v2Components/FormBuilder/tests/sms.characterization.test.js +336 -0
  91. package/v2Components/SmsFallback/SmsFallbackLocalSelector.js +91 -0
  92. package/v2Components/SmsFallback/constants.js +94 -0
  93. package/v2Components/SmsFallback/index.js +958 -0
  94. package/v2Components/SmsFallback/index.scss +266 -0
  95. package/v2Components/SmsFallback/messages.js +78 -0
  96. package/v2Components/SmsFallback/smsFallbackUtils.js +120 -0
  97. package/v2Components/SmsFallback/tests/SmsFallbackLocalSelector.test.js +50 -0
  98. package/v2Components/SmsFallback/tests/rcsSmsFallback.acceptance.test.js +147 -0
  99. package/v2Components/SmsFallback/tests/smsFallbackHandlers.test.js +304 -0
  100. package/v2Components/SmsFallback/tests/smsFallbackUi.test.js +208 -0
  101. package/v2Components/SmsFallback/tests/smsFallbackUtils.test.js +309 -0
  102. package/v2Components/SmsFallback/tests/useLocalTemplateList.test.js +422 -0
  103. package/v2Components/SmsFallback/useLocalTemplateList.js +92 -0
  104. package/v2Components/TemplatePreview/_templatePreview.scss +41 -22
  105. package/v2Components/TemplatePreview/constants.js +2 -0
  106. package/v2Components/TemplatePreview/index.js +143 -31
  107. package/v2Components/TemplatePreview/tests/index.test.js +142 -0
  108. package/v2Components/TestAndPreviewSlidebox/CustomValuesEditor.js +6 -6
  109. package/v2Components/TestAndPreviewSlidebox/index.js +13 -1
  110. package/v2Components/TestAndPreviewSlidebox/sagas.js +11 -4
  111. package/v2Components/TestAndPreviewSlidebox/tests/saga.test.js +3 -1
  112. package/v2Components/VarSegmentMessageEditor/constants.js +2 -0
  113. package/v2Components/VarSegmentMessageEditor/index.js +125 -0
  114. package/v2Components/VarSegmentMessageEditor/index.scss +46 -0
  115. package/v2Containers/CommunicationFlow/Tests/CommunicationFlow.test.js +4 -1
  116. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/Tests/DeliverySettingsSection.test.js +4 -0
  117. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/Tests/SenderDetails.test.js +20 -20
  118. package/v2Containers/CreativesContainer/CreativesSlideBoxWrapper.js +17 -0
  119. package/v2Containers/CreativesContainer/SlideBoxContent.js +36 -4
  120. package/v2Containers/CreativesContainer/SlideBoxFooter.js +14 -5
  121. package/v2Containers/CreativesContainer/SlideBoxHeader.js +36 -5
  122. package/v2Containers/CreativesContainer/constants.js +11 -0
  123. package/v2Containers/CreativesContainer/embeddedSlideboxUtils.js +79 -0
  124. package/v2Containers/CreativesContainer/index.js +323 -104
  125. package/v2Containers/CreativesContainer/index.scss +83 -1
  126. package/v2Containers/CreativesContainer/tests/SlideBoxContent.localTemplates.test.js +90 -0
  127. package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +79 -34
  128. package/v2Containers/CreativesContainer/tests/SlideBoxHeader.test.js +79 -16
  129. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +8 -0
  130. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxHeader.test.js.snap +333 -90
  131. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +20 -15
  132. package/v2Containers/CreativesContainer/tests/embeddedSlideboxUtils.test.js +258 -0
  133. package/v2Containers/CreativesContainer/tests/index.test.js +71 -9
  134. package/v2Containers/CreativesContainer/tests/useLocalTemplatesProp.test.js +125 -0
  135. package/v2Containers/MobilePush/Create/test/saga.test.js +2 -2
  136. package/v2Containers/Rcs/constants.js +131 -11
  137. package/v2Containers/Rcs/index.js +2602 -807
  138. package/v2Containers/Rcs/index.scss +289 -8
  139. package/v2Containers/Rcs/messages.js +34 -3
  140. package/v2Containers/Rcs/rcsLibraryHydrationUtils.js +227 -0
  141. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +73535 -38537
  142. package/v2Containers/Rcs/tests/__snapshots__/utils.test.js.snap +0 -8
  143. package/v2Containers/Rcs/tests/index.test.js +147 -36
  144. package/v2Containers/Rcs/tests/mockData.js +38 -0
  145. package/v2Containers/Rcs/tests/rcsLibraryHydrationUtils.test.js +318 -0
  146. package/v2Containers/Rcs/tests/utils.test.js +646 -30
  147. package/v2Containers/Rcs/utils.js +478 -11
  148. package/v2Containers/Sms/Create/index.js +115 -48
  149. package/v2Containers/Sms/smsFormDataHelpers.js +67 -0
  150. package/v2Containers/Sms/tests/smsFormDataHelpers.test.js +253 -0
  151. package/v2Containers/SmsTrai/Create/index.js +9 -4
  152. package/v2Containers/SmsTrai/Edit/constants.js +2 -0
  153. package/v2Containers/SmsTrai/Edit/index.js +678 -169
  154. package/v2Containers/SmsTrai/Edit/index.scss +126 -0
  155. package/v2Containers/SmsTrai/Edit/messages.js +14 -4
  156. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +5615 -3014
  157. package/v2Containers/SmsWrapper/index.js +37 -8
  158. package/v2Containers/TagList/index.js +6 -0
  159. package/v2Containers/Templates/TemplatesActionBar.js +101 -0
  160. package/v2Containers/Templates/_templates.scss +171 -12
  161. package/v2Containers/Templates/actions.js +11 -0
  162. package/v2Containers/Templates/constants.js +2 -0
  163. package/v2Containers/Templates/index.js +125 -55
  164. package/v2Containers/Templates/sagas.js +57 -13
  165. package/v2Containers/Templates/tests/TemplatesActionBar.test.js +120 -0
  166. package/v2Containers/Templates/tests/__snapshots__/index.test.js.snap +1060 -1015
  167. package/v2Containers/Templates/tests/sagas.test.js +199 -16
  168. package/v2Containers/Templates/tests/smsTemplatesListApi.test.js +180 -0
  169. package/v2Containers/Templates/utils/smsTemplatesListApi.js +79 -0
  170. package/v2Containers/TemplatesV2/TemplatesV2.style.js +72 -1
  171. package/v2Containers/TemplatesV2/index.js +86 -23
  172. package/v2Containers/TemplatesV2/tests/TemplatesV2.localTemplates.test.js +131 -0
  173. package/v2Containers/WeChat/MapTemplates/test/saga.test.js +9 -9
  174. package/v2Containers/Whatsapp/index.js +3 -20
  175. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +578 -34
@@ -34,18 +34,32 @@ export const RCS_STATUSES = {
34
34
  awaitingApproval: 'awaitingApproval',
35
35
  };
36
36
 
37
+ export const HOST_ICS="rcsicsbulk";
38
+ export const HOST_INFOBIP="rcsinfobipbulk";
39
+
37
40
  export const contentType = {
38
41
  text_message: 'text_message',
39
42
  rich_card: 'rich_card',
40
- carousel: 'carousel',
43
+ carousel: 'CAROUSEL',
41
44
  };
42
45
 
46
+ export const CHANNELS = [
47
+ 'email',
48
+ 'mPush',
49
+ 'viber',
50
+ 'whatsapp',
51
+ 'zalo',
52
+ 'facebook',
53
+ 'rcs',
54
+ 'inApp',
55
+ 'line',
56
+ 'weChat',
57
+ 'callTask',
58
+ 'FTP',
59
+ 'webpush',
60
+ ];
61
+
43
62
  export const STATUS_OPTIONS = [
44
- // {
45
- // key: 'created',
46
- // value: RCS_STATUSES.awaitingApproval,
47
- // label: <FormattedMessage {...messages.created} />,
48
- // },
49
63
  {
50
64
  key: 'approved',
51
65
  value: RCS_STATUSES.approved,
@@ -72,12 +86,44 @@ export const RCS_MEDIA_TYPES = {
72
86
  NONE: 'NONE',
73
87
  IMAGE: 'IMAGE',
74
88
  VIDEO: 'VIDEO',
89
+ TEXT: 'TEXT',
90
+ };
91
+
92
+ /** Match `{{…}}` placeholders including Liquid-style names (e.g. `tag.FORMAT_1`). Must align with split + `isAnyTemplateVarToken` / SMS fallback. */
93
+ export const rcsVarRegex = /\{\{[^}]+\}\}/g;
94
+ /** True when the whole string is a single RCS/mustache token (used when testing segment tokens). */
95
+ export const rcsVarTestRegex = /^\{\{[^}]+\}\}$/;
96
+
97
+ /** Matches all `{{N}}` numeric-index variable tokens in a template string (global). */
98
+ export const RCS_NUMERIC_VAR_TOKEN_REGEX = /\{\{(\d+)\}\}/g;
99
+ /** `cardVarMapped` slot keys that are numeric only (legacy ordering). */
100
+ export const RCS_NUMERIC_VAR_NAME_REGEX = /^\d+$/;
101
+ /** Semantic Liquid-style keys on RCS `cardVarMapped` (same class as `{{…}}` inner names in the editor). */
102
+ export const RCS_CARD_VAR_MAPPED_SEMANTIC_KEY_REGEX = /^[\w.]+$/;
103
+ /** Escape `RegExp` metacharacters when building a pattern from user/tag text. */
104
+ export const RCS_REGEX_META_CHARS_PATTERN = /[.*+?^${}()|[\]\\]/g;
105
+ /** Escape all special RegExp characters in an arbitrary string before using it in `new RegExp(...)`. */
106
+ export const REGEX_SPECIAL_CHARS_ESCAPE_PATTERN = /[-/\\^$*+?.()|[\]{}]/g;
107
+ /** Entire string is a single `{{tag}}` token (value still a placeholder). */
108
+ export const RCS_SINGLE_MUSTACHE_PLACEHOLDER_REGEX = /^\{\{[^}]+\}\}$/;
109
+ /** Entire string is wrapped in `{{…}}` mustache delimiters (allows any content including `}`). */
110
+ export const RCS_MUSTACHE_WRAPPED_REGEX = /^\{\{[\s\S]*\}\}$/;
111
+ /** Strip leading `{{` and trailing `}}` from a token. */
112
+ export const RCS_STRIP_MUSTACHE_DELIMITERS_REGEX = /^\{\{|\}\}$/g;
113
+
114
+ export const JS_TYPES = {
115
+ STRING: 'string',
116
+ NUMBER: 'number',
117
+ OBJECT: 'object',
75
118
  };
76
119
 
77
- export const rcsVarRegex = /\{\{\w+\}\}/g;
78
- export const rcsVarTestRegex = /\{\{\w+\}\}/;
120
+ /** Tag-popover target: title vs description field (matches `onTagSelect` `field` argument). */
121
+ export const RCS_TAG_AREA_FIELD_TITLE = 'title';
122
+ export const RCS_TAG_AREA_FIELD_DESC = 'desc';
123
+
79
124
  export const TEMPLATE_DESC_MAX_LENGTH = 2500;
80
- export const FALLBACK_MESSAGE_MAX_LENGTH = 160;
125
+ /** Resolved SMS fallback body cap. Must allow multi-segment DLT (>160); aligns with TRAI / `TEMPLATE_MESSAGE_MAX_LENGTH`. */
126
+ export const FALLBACK_MESSAGE_MAX_LENGTH = TEMPLATE_MESSAGE_MAX_LENGTH;
81
127
  export const TEMPLATE_TITLE_MAX_LENGTH = 200;
82
128
  export const TEMPLATE_BUTTON_TEXT_MAX_LENGTH = 25;
83
129
  export const CTA = 'CTA';
@@ -92,10 +138,12 @@ export const ALLOWED_IMAGE_EXTENSIONS_REGEX = (/\.(png|jpg|jpeg|gif)$/i);
92
138
  export const RCS_IMG_WIDTH = 1440;
93
139
  export const RCS_IMG_HEIGHT = 1024;
94
140
  export const RCS_IMG_SIZE = 2000000; // 2MB
141
+ export const RCS_CAROUSEL_IMG_SIZE = 1 * 1024 * 1024; // 1MB
95
142
  export const MAX_FILE_SIZE_MB = 10;
96
143
  export const MAX_FILE_SIZE_BYTES = MAX_FILE_SIZE_MB * 1024 * 1024;
97
144
  export const ALLOWED_EXTENSIONS_VIDEO_REGEX = (/\.(mp4)$/i);
98
145
  export const RCS_VIDEO_SIZE = 10 * 1024 * 1024;
146
+ export const RCS_CAROUSEL_VIDEO_SIZE = 5 * 1024 * 1024; // 5MB
99
147
  export const RCS_THUMBNAIL_MIN_SIZE = 40 * 1024;
100
148
  export const RCS_THUMBNAIL_MAX_SIZE = 100 * 1024;
101
149
 
@@ -142,13 +190,38 @@ export const RCS_IMAGE_DIMENSIONS = {
142
190
  },
143
191
  };
144
192
 
193
+ // Carousel image dimensions (pixel values shown in UI). Keys follow `${HEIGHT}_${WIDTH}`.
194
+ // HEIGHT: SHORT|MEDIUM, WIDTH: SMALL|MEDIUM
195
+ export const RCS_CAROUSEL_IMAGE_DIMENSIONS = {
196
+ SHORT_SMALL: {
197
+ width: 1160,
198
+ height: 720,
199
+ description: 'Image (1160 x 720)',
200
+ },
201
+ SHORT_MEDIUM: {
202
+ width: 1800,
203
+ height: 720,
204
+ description: 'Image (1800 x 720)',
205
+ },
206
+ MEDIUM_SMALL: {
207
+ width: 770,
208
+ height: 720,
209
+ description: 'Image (770 x 720)',
210
+ },
211
+ MEDIUM_MEDIUM: {
212
+ width: 1280,
213
+ height: 720,
214
+ description: 'Image (1280 x 720)',
215
+ },
216
+ };
217
+
145
218
  export const RCS_VIDEO_THUMBNAIL_DIMENSIONS = {
146
219
  SHORT_HEIGHT: {
147
- width: 770,
148
- height: 257,
149
220
  type: 'SHORT_HEIGHT',
150
221
  heightType: 'SHORT',
151
222
  label: 'Vertical Short',
223
+ width: 1140,
224
+ height: 448,
152
225
  description: 'Thumbnail (770 x 257)',
153
226
  orientation: 'VERTICAL',
154
227
  maxFileSize: 100 * 1024,
@@ -189,6 +262,29 @@ export const RCS_VIDEO_THUMBNAIL_DIMENSIONS = {
189
262
  },
190
263
  };
191
264
 
265
+ // Carousel thumbnail dimensions for video cards (pixel values shown in UI).
266
+ // Keys follow `${HEIGHT}_${WIDTH}`.
267
+ // Human-readable labels: formatMessage(messages.rcsCarouselVideoThumbnailLabel, { width, height })
268
+ // or formatRcsCarouselVideoThumbnailLabel(formatMessage, entry) from ./utils.
269
+ export const RCS_CAROUSEL_VIDEO_THUMBNAIL_DIMENSIONS = {
270
+ SHORT_SMALL: {
271
+ width: 718,
272
+ height: 448,
273
+ },
274
+ SHORT_MEDIUM: {
275
+ width: 1140,
276
+ height: 448,
277
+ },
278
+ MEDIUM_SMALL: {
279
+ width: 480,
280
+ height: 448,
281
+ },
282
+ MEDIUM_MEDIUM: {
283
+ width: 796,
284
+ height: 448,
285
+ },
286
+ };
287
+
192
288
  const prefix = 'app/v2Containers/Rcs';
193
289
  export const UPLOAD_RCS_ASSET_REQUEST = `${prefix}/UPLOAD_RCS_ASSET_REQUEST`;
194
290
  export const UPLOAD_RCS_ASSET_SUCCESS = `${prefix}/UPLOAD_RCS_ASSET_SUCCESS`;
@@ -215,6 +311,7 @@ export const CLEAR_EDIT_RESPONSE_REQUEST = `${prefix}/Edit/CLEAR_EDIT_RESPONSE_R
215
311
  export const AI_CONTENT_BOT_DISABLED = "AI_CONTENT_BOT_DISABLED";
216
312
 
217
313
  export const RCS_TEXT_MESSAGE_MAX_LENGTH = 160;
314
+ export const RCS_TEXT_MESSAGE_MAX_LENGTH_INFOBIP = 3072;
218
315
  export const RCS_RICH_CARD_MAX_LENGTH = 2000;
219
316
  export const MAX_BUTTONS = 4;
220
317
 
@@ -250,3 +347,26 @@ export const RCS_BUTTON_TYPES = {
250
347
  PHONE_NUMBER: 'PHONE_NUMBER',
251
348
  CTA: 'CTA',
252
349
  };
350
+
351
+ /** Default action row for carousel card 1 (mandatory button UX): phone CTA, unsaved until user completes + Save. */
352
+ export const RCS_CAROUSEL_FIRST_CARD_DEFAULT_SUGGESTIONS = [
353
+ {
354
+ index: 0,
355
+ type: RCS_BUTTON_TYPES.PHONE_NUMBER,
356
+ text: '',
357
+ phoneNumber: '',
358
+ url: null,
359
+ postback: '',
360
+ isSaved: false,
361
+ },
362
+ ];
363
+
364
+
365
+ export const CAROUSEL_HEIGHT_OPTIONS = [
366
+ { value: 'SHORT', label: 'Short' },
367
+ { value: 'MEDIUM', label: 'Medium' },
368
+ ];
369
+ export const CAROUSEL_WIDTH_OPTIONS = [
370
+ { value: 'SMALL', label: 'Small' },
371
+ { value: 'MEDIUM', label: 'Medium' },
372
+ ];