@capillarytech/creatives-library 9.0.15-alpha.3 → 9.0.16-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.
- package/AppRoot.js +80 -0
- package/app.js +5 -3
- package/constants/unified.js +0 -29
- package/entry.js +67 -1
- package/global-styles.js +1 -1
- package/mfe-exposed-components.js +2 -4
- package/package.json +2 -2
- package/services/api.js +1 -1
- package/services/tests/api.test.js +20 -35
- package/styles/containers/layout/_layoutPage.scss +8 -6
- package/utils/commonUtils.js +1 -19
- package/utils/getDataLayer.js +15 -0
- package/utils/gtmTrackers/gtmEvents/creativeDetails.js +2 -1
- package/utils/mfeDetect.js +1 -0
- package/v2Components/CapActionButton/constants.js +1 -8
- package/v2Components/CapActionButton/index.js +144 -202
- package/v2Components/CapActionButton/index.scss +14 -232
- package/v2Components/CapActionButton/messages.js +3 -19
- package/v2Components/CapActionButton/tests/index.test.js +18 -42
- package/v2Components/CapImageUpload/index.js +2 -2
- package/v2Components/CapTagList/index.js +0 -10
- package/v2Components/CommonTestAndPreview/CustomValuesEditor.js +48 -70
- package/v2Components/CommonTestAndPreview/DeliverySettings/DeliverySettings.scss +2 -8
- package/v2Components/CommonTestAndPreview/DeliverySettings/ModifyDeliverySettings.js +21 -214
- package/v2Components/CommonTestAndPreview/DeliverySettings/constants.js +0 -16
- package/v2Components/CommonTestAndPreview/DeliverySettings/index.js +9 -83
- package/v2Components/CommonTestAndPreview/DeliverySettings/messages.js +0 -30
- package/v2Components/CommonTestAndPreview/DeliverySettings/utils/parseSenderDetailsResponse.js +11 -60
- package/v2Components/CommonTestAndPreview/SendTestMessage.js +5 -10
- package/v2Components/CommonTestAndPreview/UnifiedPreview/RcsPreviewContent.js +22 -202
- package/v2Components/CommonTestAndPreview/UnifiedPreview/_unifiedPreview.scss +80 -381
- package/v2Components/CommonTestAndPreview/UnifiedPreview/index.js +8 -155
- package/v2Components/CommonTestAndPreview/_commonTestAndPreview.scss +0 -11
- package/v2Components/CommonTestAndPreview/constants.js +2 -38
- package/v2Components/CommonTestAndPreview/index.js +222 -761
- package/v2Components/CommonTestAndPreview/messages.js +3 -45
- package/v2Components/CommonTestAndPreview/sagas.js +6 -25
- package/v2Components/CommonTestAndPreview/tests/CommonTestAndPreview.addTestCustomer.test.js +0 -1
- package/v2Components/CommonTestAndPreview/tests/CustomValuesEditor.test.js +267 -284
- package/v2Components/CommonTestAndPreview/tests/DeliverySettings/ModifyDeliverySettings.test.js +65 -231
- package/v2Components/CommonTestAndPreview/tests/DeliverySettings/index.test.js +5 -118
- package/v2Components/CommonTestAndPreview/tests/DeliverySettings/utils/parseSenderDetailsResponse.test.js +0 -341
- package/v2Components/CommonTestAndPreview/tests/PreviewSection.test.js +1 -8
- package/v2Components/CommonTestAndPreview/tests/SendTestMessage.test.js +13 -34
- package/v2Components/CommonTestAndPreview/tests/UnifiedPreview/RcsPreviewContent.test.js +283 -281
- package/v2Components/CommonTestAndPreview/tests/UnifiedPreview/index.test.js +1 -199
- package/v2Components/CommonTestAndPreview/tests/index.test.js +4 -133
- package/v2Components/CommonTestAndPreview/tests/sagas.test.js +24 -31
- package/v2Components/NavigationBar/index.js +9 -7
- package/v2Components/NavigationBar/mfeModuleHeader.config.js +16 -0
- package/v2Components/Pagination/_pagination.scss +2 -0
- package/v2Components/TemplatePreview/_templatePreview.scss +25 -45
- package/v2Components/TemplatePreview/index.js +32 -147
- package/v2Components/TemplatePreview/tests/index.test.js +0 -142
- package/v2Components/TestAndPreviewSlidebox/CustomValuesEditor.js +6 -6
- package/v2Components/TestAndPreviewSlidebox/index.js +1 -13
- package/v2Components/TestAndPreviewSlidebox/sagas.js +4 -11
- package/v2Components/TestAndPreviewSlidebox/tests/saga.test.js +1 -3
- package/v2Containers/Cap/constants.js +1 -0
- package/v2Containers/Cap/index.js +47 -21
- package/v2Containers/Cap/sagas.js +19 -0
- package/v2Containers/CommunicationFlow/Tests/CommunicationFlow.test.js +1 -4
- package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/Tests/DeliverySettingsSection.test.js +0 -4
- package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/Tests/SenderDetails.test.js +20 -20
- package/v2Containers/CreativesContainer/SlideBoxContent.js +7 -37
- package/v2Containers/CreativesContainer/SlideBoxFooter.js +5 -14
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +5 -36
- package/v2Containers/CreativesContainer/constants.js +0 -11
- package/v2Containers/CreativesContainer/index.js +104 -323
- package/v2Containers/CreativesContainer/index.scss +1 -83
- package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +34 -79
- package/v2Containers/CreativesContainer/tests/SlideBoxHeader.test.js +16 -79
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +0 -8
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxHeader.test.js.snap +90 -333
- package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +15 -20
- package/v2Containers/CreativesContainer/tests/index.test.js +9 -71
- package/v2Containers/MobilePush/Create/test/saga.test.js +2 -2
- package/v2Containers/Rcs/constants.js +11 -131
- package/v2Containers/Rcs/index.js +829 -2682
- package/v2Containers/Rcs/index.scss +8 -443
- package/v2Containers/Rcs/messages.js +6 -45
- package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +39409 -74176
- package/v2Containers/Rcs/tests/__snapshots__/utils.test.js.snap +74 -10
- package/v2Containers/Rcs/tests/index.test.js +40 -151
- package/v2Containers/Rcs/tests/mockData.js +0 -38
- package/v2Containers/Rcs/tests/utils.test.js +30 -643
- package/v2Containers/Rcs/utils.js +12 -466
- package/v2Containers/Sms/Create/index.js +48 -115
- package/v2Containers/SmsTrai/Create/index.js +4 -9
- package/v2Containers/SmsTrai/Edit/constants.js +0 -2
- package/v2Containers/SmsTrai/Edit/index.js +169 -678
- package/v2Containers/SmsTrai/Edit/messages.js +4 -14
- package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +2854 -5455
- package/v2Containers/SmsWrapper/index.js +8 -37
- package/v2Containers/TagList/index.js +0 -6
- package/v2Containers/Templates/_templates.scss +11 -196
- package/v2Containers/Templates/actions.js +0 -11
- package/v2Containers/Templates/constants.js +0 -2
- package/v2Containers/Templates/index.js +60 -131
- package/v2Containers/Templates/sagas.js +13 -57
- package/v2Containers/Templates/tests/__snapshots__/index.test.js.snap +1015 -1060
- package/v2Containers/Templates/tests/sagas.test.js +16 -199
- package/v2Containers/TemplatesV2/TemplatesV2.style.js +10 -75
- package/v2Containers/TemplatesV2/index.js +43 -86
- package/v2Containers/WeChat/MapTemplates/test/saga.test.js +9 -9
- package/v2Containers/Whatsapp/index.js +25 -4
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +34 -578
- package/utils/rcsPayloadUtils.js +0 -92
- package/utils/templateVarUtils.js +0 -201
- package/utils/tests/rcsPayloadUtils.test.js +0 -226
- package/utils/tests/templateVarUtils.test.js +0 -204
- package/v2Components/CommonTestAndPreview/previewApiUtils.js +0 -59
- package/v2Components/CommonTestAndPreview/tests/previewApiUtils.test.js +0 -67
- package/v2Components/CommonTestAndPreview/utils.js +0 -84
- package/v2Components/SmsFallback/SmsFallbackLocalSelector.js +0 -91
- package/v2Components/SmsFallback/constants.js +0 -94
- package/v2Components/SmsFallback/index.js +0 -958
- package/v2Components/SmsFallback/index.scss +0 -266
- package/v2Components/SmsFallback/messages.js +0 -78
- package/v2Components/SmsFallback/smsFallbackUtils.js +0 -120
- package/v2Components/SmsFallback/tests/SmsFallbackLocalSelector.test.js +0 -50
- package/v2Components/SmsFallback/tests/rcsSmsFallback.acceptance.test.js +0 -147
- package/v2Components/SmsFallback/tests/smsFallbackHandlers.test.js +0 -304
- package/v2Components/SmsFallback/tests/smsFallbackUi.test.js +0 -208
- package/v2Components/SmsFallback/tests/smsFallbackUtils.test.js +0 -309
- package/v2Components/SmsFallback/tests/useLocalTemplateList.test.js +0 -422
- package/v2Components/SmsFallback/useLocalTemplateList.js +0 -92
- package/v2Components/TemplatePreview/constants.js +0 -2
- package/v2Components/VarSegmentMessageEditor/constants.js +0 -2
- package/v2Components/VarSegmentMessageEditor/index.js +0 -125
- package/v2Components/VarSegmentMessageEditor/index.scss +0 -46
- package/v2Containers/CreativesContainer/CreativesSlideBoxWrapper.js +0 -17
- package/v2Containers/CreativesContainer/embeddedSlideboxUtils.js +0 -79
- package/v2Containers/CreativesContainer/tests/SlideBoxContent.localTemplates.test.js +0 -90
- package/v2Containers/CreativesContainer/tests/embeddedSlideboxUtils.test.js +0 -258
- package/v2Containers/CreativesContainer/tests/useLocalTemplatesProp.test.js +0 -125
- package/v2Containers/Rcs/rcsLibraryHydrationUtils.js +0 -227
- package/v2Containers/Rcs/tests/rcsLibraryHydrationUtils.test.js +0 -318
- package/v2Containers/Sms/smsFormDataHelpers.js +0 -67
- package/v2Containers/Sms/tests/smsFormDataHelpers.test.js +0 -253
- package/v2Containers/SmsTrai/Edit/index.scss +0 -126
- package/v2Containers/Templates/TemplatesActionBar.js +0 -101
- package/v2Containers/Templates/tests/TemplatesActionBar.test.js +0 -120
- package/v2Containers/Templates/tests/smsTemplatesListApi.test.js +0 -180
- package/v2Containers/Templates/utils/smsTemplatesListApi.js +0 -79
- package/v2Containers/TemplatesV2/tests/TemplatesV2.localTemplates.test.js +0 -131
|
@@ -5,58 +5,18 @@
|
|
|
5
5
|
position: fixed;
|
|
6
6
|
bottom: 0;
|
|
7
7
|
width: 100%;
|
|
8
|
-
margin-left: -
|
|
8
|
+
margin-left: -32px;
|
|
9
9
|
padding: $CAP_SPACE_32 $CAP_SPACE_24;
|
|
10
|
-
margin-top:
|
|
10
|
+
margin-top: 40px;
|
|
11
11
|
z-index: 1;
|
|
12
12
|
.ant-btn {
|
|
13
13
|
margin-right: $CAP_SPACE_16;
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
.rcs-test-preview-btn {
|
|
17
|
-
margin-left: $CAP_SPACE_08;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// Shared between the standalone form (.cap-rcs-creatives) and the slidebox header.
|
|
22
|
-
.rcs-creative-name-readonly {
|
|
23
|
-
margin-bottom: $CAP_SPACE_24;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.rcs-creative-name-value {
|
|
27
|
-
margin-top: $CAP_SPACE_08;
|
|
28
|
-
font-weight: 400;
|
|
29
15
|
}
|
|
30
16
|
|
|
31
17
|
.cap-rcs-creatives {
|
|
32
|
-
|
|
33
18
|
.rcs-scroll-div {
|
|
34
|
-
margin-bottom:
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
&.rcs-edit-mode {
|
|
38
|
-
.rcs-scroll-div {
|
|
39
|
-
margin-bottom: 15.625rem;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.rcs-edit-template-message-input {
|
|
43
|
-
background-color: $CAP_G10;
|
|
44
|
-
padding: $CAP_SPACE_12 $CAP_SPACE_16;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.rcs-edit-template-message-split {
|
|
48
|
-
margin-bottom: $CAP_SPACE_08;
|
|
49
|
-
overflow: hidden;
|
|
50
|
-
text-overflow: ellipsis;
|
|
51
|
-
color: $FONT_COLOR_03;
|
|
52
|
-
font-weight: 500;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/* Keep message box text lighter across RCS flows */
|
|
57
|
-
.rcs-edit-template-message-split {
|
|
58
|
-
color: $FONT_COLOR_03;
|
|
59
|
-
font-weight: 500;
|
|
19
|
+
margin-bottom: 150px;
|
|
60
20
|
}
|
|
61
21
|
.rcs-preview-container {
|
|
62
22
|
.cap-row-v2 {
|
|
@@ -64,53 +24,18 @@
|
|
|
64
24
|
}
|
|
65
25
|
}
|
|
66
26
|
.rcs-optional-label {
|
|
67
|
-
margin-left:
|
|
27
|
+
margin-left: 8px;
|
|
68
28
|
color: $FONT_COLOR_03;
|
|
69
29
|
font-weight: normal;
|
|
70
30
|
}
|
|
71
31
|
.rcs_text_area_wrapper {
|
|
72
32
|
position: relative;
|
|
73
33
|
}
|
|
74
|
-
.rcs-edit-template-message-input .ant-input,
|
|
75
|
-
.rcs-edit-template-message-input textarea.ant-input {
|
|
76
|
-
border-color: $CAP_G07;
|
|
77
|
-
box-shadow: none;
|
|
78
|
-
min-height: 2.5rem;
|
|
79
|
-
padding-top: $CAP_SPACE_08;
|
|
80
|
-
padding-bottom: $CAP_SPACE_08;
|
|
81
|
-
overflow: hidden;
|
|
82
|
-
}
|
|
83
|
-
.rcs-edit-template-message-input .ant-input:focus,
|
|
84
|
-
.rcs-edit-template-message-input .ant-input:active,
|
|
85
|
-
.rcs-edit-template-message-input textarea.ant-input:focus,
|
|
86
|
-
.rcs-edit-template-message-input textarea.ant-input:active {
|
|
87
|
-
border-color: $CAP_G07;
|
|
88
|
-
box-shadow: none;
|
|
89
|
-
outline: none;
|
|
90
|
-
}
|
|
91
34
|
.rcs-button{
|
|
92
35
|
display: inline-grid;
|
|
93
36
|
}
|
|
94
|
-
.rcs-
|
|
95
|
-
margin-bottom:
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.rcs-form-section-heading {
|
|
99
|
-
display: flex;
|
|
100
|
-
margin-top: $CAP_SPACE_20;
|
|
101
|
-
margin-bottom: $CAP_SPACE_08;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
.rcs-image-upload--top-spacing {
|
|
105
|
-
padding-top: $CAP_SPACE_20;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.rcs-dimension-select--bottom-spacing {
|
|
109
|
-
margin-bottom: $CAP_SPACE_20;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
.rcs-fallback-section-divider {
|
|
113
|
-
margin: $CAP_SPACE_28 0;
|
|
37
|
+
.rcs-button-label{
|
|
38
|
+
margin-bottom: 17px;
|
|
114
39
|
}
|
|
115
40
|
.disabled-button{
|
|
116
41
|
opacity: 0.5;
|
|
@@ -137,11 +62,9 @@
|
|
|
137
62
|
overflow: hidden;
|
|
138
63
|
&.title{
|
|
139
64
|
-webkit-line-clamp: 1;
|
|
140
|
-
line-clamp: 1;
|
|
141
65
|
}
|
|
142
66
|
&.desc{
|
|
143
67
|
-webkit-line-clamp: 5;
|
|
144
|
-
line-clamp: 5;
|
|
145
68
|
}
|
|
146
69
|
&.rcs-button-text{
|
|
147
70
|
padding-top: 13px;
|
|
@@ -150,77 +73,18 @@
|
|
|
150
73
|
}
|
|
151
74
|
.rcs-listing-image {
|
|
152
75
|
margin-bottom: 8px;
|
|
153
|
-
width:
|
|
154
|
-
|
|
155
|
-
object-fit: cover;
|
|
156
|
-
display: block;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// Templates listing preview (RCS): carousel should show a "peek" of next card like WhatsApp listing.
|
|
160
|
-
&.rcs-template-listing-preview {
|
|
161
|
-
&.is-carousel {
|
|
162
|
-
.rcs-listing-carousel-scroll {
|
|
163
|
-
overflow-x: auto;
|
|
164
|
-
display: flex;
|
|
165
|
-
padding-top: $CAP_SPACE_06;
|
|
166
|
-
padding-right: $CAP_SPACE_06;
|
|
167
|
-
white-space: nowrap;
|
|
168
|
-
scrollbar-width: none;
|
|
169
|
-
&::-webkit-scrollbar {
|
|
170
|
-
display: none;
|
|
171
|
-
}
|
|
172
|
-
// Listing should show a peek (no horizontal scroll interaction needed)
|
|
173
|
-
overflow: hidden;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
.rcs-listing-carousel-card {
|
|
177
|
-
padding: $CAP_SPACE_04 0 $CAP_SPACE_08;
|
|
178
|
-
border-radius: $CAP_SPACE_06;
|
|
179
|
-
background-color: $CAP_WHITE;
|
|
180
|
-
width: 80%;
|
|
181
|
-
flex-shrink: 0;
|
|
182
|
-
margin-right: $CAP_SPACE_04;
|
|
183
|
-
white-space: normal;
|
|
184
|
-
text-align: left;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
.rcs-listing-carousel-img {
|
|
188
|
-
width: 100%;
|
|
189
|
-
height: 6.4375rem; // match rcs-listing-image height (103px)
|
|
190
|
-
object-fit: cover;
|
|
191
|
-
display: block;
|
|
192
|
-
margin-bottom: $CAP_SPACE_08;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
.rcs-listing-carousel-title,
|
|
196
|
-
.rcs-listing-carousel-desc {
|
|
197
|
-
display: block;
|
|
198
|
-
padding: 0 $CAP_SPACE_12;
|
|
199
|
-
}
|
|
200
|
-
.rcs-listing-carousel-desc {
|
|
201
|
-
margin-top: $CAP_SPACE_04;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
76
|
+
width: 220px;
|
|
77
|
+
height: 103px;
|
|
204
78
|
}
|
|
205
79
|
.fallback-sms-length {
|
|
206
80
|
margin-top: 13px;
|
|
207
81
|
float: right;
|
|
208
82
|
}
|
|
209
|
-
.rcs-character-count {
|
|
210
|
-
color: $FONT_COLOR_03;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
.rcs-carousel-character-count-row {
|
|
214
|
-
display: flex;
|
|
215
|
-
justify-content: flex-end;
|
|
216
|
-
margin-top: $CAP_SPACE_08;
|
|
217
|
-
}
|
|
218
83
|
.rcs-fallback-len-error{
|
|
219
84
|
margin-top: 8px;
|
|
220
85
|
}
|
|
221
86
|
.rcs-image-dimensions-label{
|
|
222
87
|
margin-top: 1.25rem;
|
|
223
|
-
margin-bottom: $CAP_SPACE_08;
|
|
224
88
|
}
|
|
225
89
|
.rcs-template-title-input {
|
|
226
90
|
.rcs-edit-disabled {
|
|
@@ -231,14 +95,12 @@
|
|
|
231
95
|
}
|
|
232
96
|
.rcs-template-title-label {
|
|
233
97
|
margin-top: 1.25rem;
|
|
234
|
-
margin-bottom: $CAP_SPACE_08;
|
|
235
98
|
}
|
|
236
99
|
#rcs-template-message-label .ant-btn.cap-button-v2 {
|
|
237
100
|
height: 32px;
|
|
238
101
|
}
|
|
239
102
|
#rcs-template-message-label {
|
|
240
103
|
margin-top: 1.25rem;
|
|
241
|
-
margin-bottom: $CAP_SPACE_08;
|
|
242
104
|
}
|
|
243
105
|
.rcs-container-image {
|
|
244
106
|
.image-container {
|
|
@@ -251,297 +113,6 @@
|
|
|
251
113
|
#rcs-dimension-select{
|
|
252
114
|
width: 100%;
|
|
253
115
|
}
|
|
254
|
-
|
|
255
|
-
.rcs-carousel-section {
|
|
256
|
-
margin-top: $CAP_SPACE_12;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
.rcs-carousel-dimension-section {
|
|
260
|
-
margin-top: 1.25rem;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
// Edit mode: the readonly Template Type block right above (.rcs-creative-name-readonly)
|
|
264
|
-
// already has its own margin-bottom — stacking these two top-margins on top of that
|
|
265
|
-
// (flex prevents them from collapsing into it) left an oversized gap before Card height.
|
|
266
|
-
.rcs-carousel-section--readonly-above {
|
|
267
|
-
margin-top: 0;
|
|
268
|
-
|
|
269
|
-
.rcs-carousel-dimension-section {
|
|
270
|
-
margin-top: 0;
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
.rcs-carousel-selected-dimension {
|
|
275
|
-
display: block;
|
|
276
|
-
margin-top: 8px;
|
|
277
|
-
color: $FONT_COLOR_03;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
.rcs-carousel-dimension-label {
|
|
281
|
-
display: inline-block;
|
|
282
|
-
margin-bottom: $CAP_SPACE_08;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
#rcs-carousel-height-select,
|
|
286
|
-
#rcs-carousel-width-select {
|
|
287
|
-
width: 100%;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
.rcs-carousel-tab {
|
|
291
|
-
margin-top: 0.75rem;
|
|
292
|
-
|
|
293
|
-
// Tab list (.ant-tabs-nav-wrap) defaults to flex:auto and stretches to fill the row,
|
|
294
|
-
// pushing tabBarExtraContent (the "+" add-card button) to the far right edge. Size it
|
|
295
|
-
// to its own content instead so "+" sits right next to the last tab (Figma reference).
|
|
296
|
-
.ant-tabs-nav-wrap {
|
|
297
|
-
flex: none;
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
// .ant-tabs-nav already centers its direct children (antd default), but antd
|
|
301
|
-
// also gives .ant-tabs-nav-wrap AND .ant-tabs-nav-operations (an always-present,
|
|
302
|
-
// just visually-hidden, third sibling for the overflow "more" dropdown)
|
|
303
|
-
// `align-self: stretch` — forcing them to the FULL bar height, while
|
|
304
|
-
// .ant-tabs-extra-content has no such override and centers at its own natural
|
|
305
|
-
// (shorter) height. So a divider centered inside the stretched tab list and a
|
|
306
|
-
// divider centered inside the un-stretched extra-content land at different Y
|
|
307
|
-
// positions even though each is individually "centered" — in its own box.
|
|
308
|
-
// Cancel the stretch so every direct child centers the same way.
|
|
309
|
-
.ant-tabs-nav {
|
|
310
|
-
align-items: center;
|
|
311
|
-
|
|
312
|
-
> .ant-tabs-nav-wrap,
|
|
313
|
-
> .ant-tabs-nav-operations {
|
|
314
|
-
align-self: auto;
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
// antd ALWAYS renders `.ant-tabs-nav-operations` as a flex sibling between the
|
|
319
|
-
// tab list and the right extra-content (it holds the overflow "more" dropdown).
|
|
320
|
-
// With no overflow it's only `visibility:hidden`, so it's invisible but STILL
|
|
321
|
-
// occupies a flex slot with real width — that phantom slot is the extra gap
|
|
322
|
-
// showing up before the "|" and "+". Collapse it to zero width when hidden so
|
|
323
|
-
// the divider sits the same distance from "2" as the 1|2 divider does from "1".
|
|
324
|
-
.ant-tabs-nav-operations.ant-tabs-nav-operations-hidden {
|
|
325
|
-
width: 0;
|
|
326
|
-
padding: 0;
|
|
327
|
-
margin: 0;
|
|
328
|
-
border: none;
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
// .ant-tabs-extra-content itself is only a flex ITEM (antd sets `flex: none`
|
|
332
|
-
// on it), not a flex CONTAINER — its own children (the CapDivider and the
|
|
333
|
-
// "+" button's tooltip-wrapper span) fall back to inline layout, where
|
|
334
|
-
// CapDivider's antd default `vertical-align: middle` aligns it to the
|
|
335
|
-
// surrounding line box rather than to the button, which is what was making
|
|
336
|
-
// the "|" and "+" drift out of alignment with each other. Make it an
|
|
337
|
-
// explicit flex row so both children center against each other directly.
|
|
338
|
-
.ant-tabs-extra-content {
|
|
339
|
-
display: flex;
|
|
340
|
-
align-items: center;
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
// Vertical divider between the tabs and "+": antd default (0.9em) reads too short.
|
|
344
|
-
// Also pin its own margin explicitly (antd's default didn't match the gap
|
|
345
|
-
// used for the divider between tab numbers below), which was making this
|
|
346
|
-
// divider float away from "2" instead of sitting the same distance from it
|
|
347
|
-
// as the 1|2 divider sits from "1".
|
|
348
|
-
// 12px each side = the same visual gap the 1|2 divider has (that one uses a
|
|
349
|
-
// 24px margin-left with the divider pseudo offset to its center, i.e. ~12px
|
|
350
|
-
// of clear space on each side). Keep these equal so all three gaps match.
|
|
351
|
-
.ant-tabs-extra-content .ant-divider-vertical {
|
|
352
|
-
height: $CAP_SPACE_24;
|
|
353
|
-
margin: 0 $CAP_SPACE_12;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
// Same divider treatment between each numbered tab (1 | 2 | ...), not just
|
|
357
|
-
// before the "+" button (Figma reference). antd's own `.ant-tabs-tab` rule
|
|
358
|
-
// already applies `margin: 0 0 0 var(--ant-tabs-horizontal-item-gutter)`
|
|
359
|
-
// (~32px) to every tab — our earlier `margin-right` was ADDING to that
|
|
360
|
-
// instead of replacing it, stacking both gaps into one huge gutter before
|
|
361
|
-
// "2". Zero out antd's own margin first so this is the only gap in play.
|
|
362
|
-
.ant-tabs-tab {
|
|
363
|
-
margin: 0 !important;
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
// `:not(:last-of-type)` matched more than intended: antd renders
|
|
367
|
-
// `.ant-tabs-ink-bar` as another <div> sibling AFTER the last tab inside the
|
|
368
|
-
// same nav list, so that ink-bar div — not tab "2" — was `:last-of-type`,
|
|
369
|
-
// leaving tab "2" wrongly matched and given its own extra divider on top of
|
|
370
|
-
// the real one before "+". Target adjacency to a PRECEDING tab instead
|
|
371
|
-
// (`.ant-tabs-tab + .ant-tabs-tab`), which only ever matches actual tabs
|
|
372
|
-
// regardless of what non-tab siblings antd adds elsewhere in the list.
|
|
373
|
-
.ant-tabs-tab + .ant-tabs-tab {
|
|
374
|
-
position: relative;
|
|
375
|
-
margin-left: $CAP_SPACE_24 !important;
|
|
376
|
-
|
|
377
|
-
&::before {
|
|
378
|
-
content: '';
|
|
379
|
-
position: absolute;
|
|
380
|
-
top: 50%;
|
|
381
|
-
left: -$CAP_SPACE_12;
|
|
382
|
-
transform: translateY(-50%);
|
|
383
|
-
width: 1px;
|
|
384
|
-
height: $CAP_SPACE_24;
|
|
385
|
-
background-color: $CAP_G07;
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
// The "+" wrapper reuses .button-disabled-tooltip-wrapper from CapActionButton
|
|
390
|
-
// (display: inline-block; margin-top: 1.25rem) — that margin was meant for a
|
|
391
|
-
// different context and pushes the "+" button below the tab row/divider baseline
|
|
392
|
-
// here. Re-align it inline with the tabs and vertical divider.
|
|
393
|
-
.button-disabled-tooltip-wrapper {
|
|
394
|
-
display: inline-flex;
|
|
395
|
-
align-items: center;
|
|
396
|
-
margin-top: 0;
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
.rcs-carousel-card {
|
|
401
|
-
margin-top: 0.75rem;
|
|
402
|
-
|
|
403
|
-
// Match carousel card header: title left, icon-only delete right (Figma / product reference).
|
|
404
|
-
&.cap-card-v2.ant-card {
|
|
405
|
-
.ant-card-head {
|
|
406
|
-
min-height: 3rem;
|
|
407
|
-
padding: 0 $CAP_SPACE_16;
|
|
408
|
-
border-bottom: 1px solid $CAP_G12;
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
.ant-card-head-title {
|
|
412
|
-
padding: $CAP_SPACE_12 0;
|
|
413
|
-
font-weight: 600;
|
|
414
|
-
color: $CAP_G01;
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
.ant-card-extra {
|
|
418
|
-
padding: $CAP_SPACE_08 0;
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
.rcs-carousel-card-delete.ant-btn.cap-button-v2 {
|
|
423
|
-
display: inline-flex;
|
|
424
|
-
align-items: center;
|
|
425
|
-
justify-content: center;
|
|
426
|
-
min-width: auto;
|
|
427
|
-
width: 2rem;
|
|
428
|
-
height: 2rem;
|
|
429
|
-
padding: 0;
|
|
430
|
-
border: none;
|
|
431
|
-
box-shadow: none;
|
|
432
|
-
color: $CAP_G01;
|
|
433
|
-
|
|
434
|
-
&:not(:disabled):hover {
|
|
435
|
-
color: $FONT_COLOR_05;
|
|
436
|
-
background-color: rgba(0, 0, 0, 0.04);
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
&:disabled {
|
|
440
|
-
color: rgba(0, 0, 0, 0.25);
|
|
441
|
-
background: transparent;
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
.rcs-carousel-delete-tooltip-wrap.button-disabled-tooltip-wrapper {
|
|
446
|
-
display: inline-flex;
|
|
447
|
-
align-items: center;
|
|
448
|
-
cursor: not-allowed;
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
.rcs-carousel-card-row {
|
|
453
|
-
margin-bottom: $CAP_SPACE_12;
|
|
454
|
-
|
|
455
|
-
// Card title / Card body text headers sit directly above their input —
|
|
456
|
-
// CapHeader itself has no bottom margin, so without this the input hugged
|
|
457
|
-
// the header text with no gap.
|
|
458
|
-
.cap-header-v2 {
|
|
459
|
-
margin-bottom: $CAP_SPACE_08;
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
.rcs-carousel-media-selection {
|
|
464
|
-
margin-top: 0.75rem;
|
|
465
|
-
margin-bottom: 0.75rem;
|
|
466
|
-
align-items: center;
|
|
467
|
-
}
|
|
468
|
-
|
|
469
|
-
.rcs-carousel-media-selection-heading {
|
|
470
|
-
margin-bottom: $CAP_SPACE_08;
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
// Carousel upload previews: keep media preview compact (CapImageUpload uses height=400 by default)
|
|
474
|
-
.rcs-carousel-media-upload {
|
|
475
|
-
padding-top: $CAP_SPACE_20;
|
|
476
|
-
|
|
477
|
-
// Edit mode: the readonly Media type block right above (.rcs-creative-name-readonly)
|
|
478
|
-
// already has its own margin-bottom, plus .rcs-image-dimensions-label's own
|
|
479
|
-
// margin-top — stacking this padding-top on top of both left an oversized gap.
|
|
480
|
-
&.rcs-carousel-media-upload--readonly-above {
|
|
481
|
-
padding-top: 0;
|
|
482
|
-
|
|
483
|
-
// Only the first heading (Upload Video, or Image) sits right below the
|
|
484
|
-
// readonly block above — the video variant's second heading (Upload
|
|
485
|
-
// Thumbnail) still needs its own margin-top to separate it from the
|
|
486
|
-
// video upload widget above it.
|
|
487
|
-
> .rcs-image-dimensions-label:first-child {
|
|
488
|
-
margin-top: 0;
|
|
489
|
-
}
|
|
490
|
-
}
|
|
491
|
-
.image-container {
|
|
492
|
-
background-image: none;
|
|
493
|
-
border: 0;
|
|
494
|
-
width: 100%;
|
|
495
|
-
max-width: 35rem;
|
|
496
|
-
}
|
|
497
|
-
|
|
498
|
-
.image-container img {
|
|
499
|
-
width: 100%;
|
|
500
|
-
height: auto !important;
|
|
501
|
-
max-height: 15rem;
|
|
502
|
-
object-fit: contain;
|
|
503
|
-
display: block;
|
|
504
|
-
}
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
.rcs-carousel-card-divider {
|
|
508
|
-
margin: $CAP_SPACE_24 0;
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
.rcs-image-upload-with-top-padding {
|
|
512
|
-
padding-top: $CAP_SPACE_20;
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
.rcs-dlt-edit-icon {
|
|
516
|
-
margin-right: $CAP_SPACE_08;
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
.rcs-content-section-divider {
|
|
520
|
-
margin: $CAP_SPACE_28 0;
|
|
521
|
-
}
|
|
522
|
-
|
|
523
|
-
.rcs-edit-template-message-static-textarea {
|
|
524
|
-
background: $CAP_G21;
|
|
525
|
-
color: #888;
|
|
526
|
-
|
|
527
|
-
// Ensure styles apply to underlying textarea/input for CapInput TextArea.
|
|
528
|
-
textarea,
|
|
529
|
-
.ant-input {
|
|
530
|
-
background: $CAP_G21;
|
|
531
|
-
color: #888;
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
// The divider's own margin already provides the gap before "+" — this button's
|
|
536
|
-
// extra left padding was stacking on top of that margin, making the gap after
|
|
537
|
-
// the divider visibly bigger than the gap before it (between "2" and the
|
|
538
|
-
// divider). Drop the left padding so both sides of the divider match; keep a
|
|
539
|
-
// little on the right as breathing room since nothing follows "+".
|
|
540
|
-
.add-carousel-content-button {
|
|
541
|
-
padding: 0 $CAP_SPACE_08 0 0;
|
|
542
|
-
display: inline-flex;
|
|
543
|
-
align-items: center;
|
|
544
|
-
}
|
|
545
116
|
}
|
|
546
117
|
.rcs-fallback-preview > .cap-slide-box-v2-container.size-r{
|
|
547
118
|
min-width: 430px;
|
|
@@ -549,12 +120,6 @@
|
|
|
549
120
|
width: 430px;
|
|
550
121
|
}
|
|
551
122
|
|
|
552
|
-
// SMS fallback slidebox / tag popover: see v2Components/SmsFallback/index.scss (loaded with SmsFallback)
|
|
553
|
-
|
|
554
|
-
.template-status-container {
|
|
555
|
-
margin-bottom: $CAP_SPACE_24;
|
|
556
|
-
}
|
|
557
|
-
|
|
558
123
|
.rcs-button-cta{
|
|
559
124
|
margin-top: 1.25rem;
|
|
560
125
|
margin-bottom: 0.75rem;
|
|
@@ -6,14 +6,6 @@ export default defineMessages({
|
|
|
6
6
|
id: `${prefix}.mediaLabel`,
|
|
7
7
|
defaultMessage: 'Media',
|
|
8
8
|
},
|
|
9
|
-
mediaTypeLabel: {
|
|
10
|
-
id: `${prefix}.mediaTypeLabel`,
|
|
11
|
-
defaultMessage: 'Media type',
|
|
12
|
-
},
|
|
13
|
-
carouselMediaVideoOption: {
|
|
14
|
-
id: `${prefix}.carouselMediaVideoOption`,
|
|
15
|
-
defaultMessage: 'Video',
|
|
16
|
-
},
|
|
17
9
|
approvedStatusMsg: {
|
|
18
10
|
id: `${prefix}.approvedStatusMsg`,
|
|
19
11
|
defaultMessage: 'This template has been approved',
|
|
@@ -202,18 +194,6 @@ export default defineMessages({
|
|
|
202
194
|
id: `${prefix}.disabledCarouselTooltip`,
|
|
203
195
|
defaultMessage: 'Not yet enabled. Coming soon!',
|
|
204
196
|
},
|
|
205
|
-
rcsCarouselMinCardDeleteTooltip: {
|
|
206
|
-
id: `${prefix}.rcsCarouselMinCardDeleteTooltip`,
|
|
207
|
-
defaultMessage: 'At least 1 card needs to be added in the carousel template',
|
|
208
|
-
},
|
|
209
|
-
rcsCarouselAddCardDisabledTooltip: {
|
|
210
|
-
id: `${prefix}.rcsCarouselAddCardDisabledTooltip`,
|
|
211
|
-
defaultMessage: 'Please set-up the first card before creating the next ones',
|
|
212
|
-
},
|
|
213
|
-
rcsCarouselMaxCardTooltip: {
|
|
214
|
-
id: `${prefix}.rcsCarouselMaxCardTooltip`,
|
|
215
|
-
defaultMessage: 'RCS carousel cannot contain more than {max} content cards.',
|
|
216
|
-
},
|
|
217
197
|
templateNamePlaceholder: {
|
|
218
198
|
id: `${prefix}.templateNamePlaceholder`,
|
|
219
199
|
defaultMessage: 'Enter template name',
|
|
@@ -252,15 +232,15 @@ export default defineMessages({
|
|
|
252
232
|
},
|
|
253
233
|
text_message: {
|
|
254
234
|
id: `${prefix}.text_message`,
|
|
255
|
-
defaultMessage: '
|
|
235
|
+
defaultMessage: 'text message',
|
|
256
236
|
},
|
|
257
237
|
richCard: {
|
|
258
238
|
id: `${prefix}.richCard`,
|
|
259
|
-
defaultMessage: '
|
|
239
|
+
defaultMessage: 'rich card',
|
|
260
240
|
},
|
|
261
241
|
carousel: {
|
|
262
242
|
id: `${prefix}.carousel`,
|
|
263
|
-
defaultMessage: '
|
|
243
|
+
defaultMessage: 'carousel',
|
|
264
244
|
},
|
|
265
245
|
rcsDoneBtnToolTip: {
|
|
266
246
|
id: `${prefix}.rcsDoneBtnToolTip`,
|
|
@@ -282,10 +262,6 @@ export default defineMessages({
|
|
|
282
262
|
id: `${prefix}.fallbackLabel`,
|
|
283
263
|
defaultMessage: 'Fallback SMS message',
|
|
284
264
|
},
|
|
285
|
-
smsFallbackOptional: {
|
|
286
|
-
id: `${prefix}.smsFallbackOptional`,
|
|
287
|
-
defaultMessage: 'Fallback SMS message (Optional)',
|
|
288
|
-
},
|
|
289
265
|
fallbackDesc: {
|
|
290
266
|
id: `${prefix}.fallbackDesc`,
|
|
291
267
|
defaultMessage: 'We would suggest to add fallback SMS',
|
|
@@ -305,12 +281,7 @@ export default defineMessages({
|
|
|
305
281
|
},
|
|
306
282
|
fallbackMsgPlaceholder: {
|
|
307
283
|
id: `${prefix}.fallbackMsgPlaceholder`,
|
|
308
|
-
defaultMessage: '
|
|
309
|
-
},
|
|
310
|
-
/** Shown only when a {{…}} slot has no value — not the saved text (that uses the input value). */
|
|
311
|
-
rcsVarSlotPlaceholder: {
|
|
312
|
-
id: `${prefix}.rcsVarSlotPlaceholder`,
|
|
313
|
-
defaultMessage: 'Add labels or text',
|
|
284
|
+
defaultMessage: 'Enter the text message content for fallback SMS',
|
|
314
285
|
},
|
|
315
286
|
totalCharacters: {
|
|
316
287
|
id: `${prefix}.totalCharacters`,
|
|
@@ -486,8 +457,7 @@ export default defineMessages({
|
|
|
486
457
|
},
|
|
487
458
|
unknownCharactersError: {
|
|
488
459
|
id: `${prefix}.unknownCharactersError`,
|
|
489
|
-
defaultMessage:
|
|
490
|
-
'Only letters, numbers, underscores, and dots are allowed in custom param (e.g. tag.FORMAT_1). Spaces and other special characters are not allowed.',
|
|
460
|
+
defaultMessage: 'Only alphanumeric characters and underscore are allowed in custom param. Spaces/other special characters are not allowed.',
|
|
491
461
|
},
|
|
492
462
|
emptyVariableError: {
|
|
493
463
|
id: `${prefix}.emptyVariableError`,
|
|
@@ -517,13 +487,4 @@ export default defineMessages({
|
|
|
517
487
|
id: `${prefix}.rcsTestPreviewDisabledTooltip`,
|
|
518
488
|
defaultMessage: 'Preview and test is only available after the template is approved.',
|
|
519
489
|
},
|
|
520
|
-
|
|
521
|
-
id: `${prefix}.reUpload`,
|
|
522
|
-
defaultMessage: 'Reupload',
|
|
523
|
-
},
|
|
524
|
-
/** Carousel video card thumbnail size label (see RCS_CAROUSEL_VIDEO_THUMBNAIL_DIMENSIONS). */
|
|
525
|
-
rcsCarouselVideoThumbnailLabel: {
|
|
526
|
-
id: `${prefix}.rcsCarouselVideoThumbnailLabel`,
|
|
527
|
-
defaultMessage: 'Thumbnail ({width} × {height})',
|
|
528
|
-
},
|
|
529
|
-
});
|
|
490
|
+
});
|