@capillarytech/creatives-library 9.0.15-alpha.0 → 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.
- package/constants/unified.js +29 -0
- package/global-styles.js +1 -1
- package/package.json +1 -1
- package/services/tests/api.test.js +35 -20
- package/utils/commonUtils.js +19 -1
- package/utils/rcsPayloadUtils.js +92 -0
- package/utils/templateVarUtils.js +201 -0
- package/utils/tests/rcsPayloadUtils.test.js +226 -0
- package/utils/tests/templateVarUtils.test.js +204 -0
- package/v2Components/CapActionButton/constants.js +7 -0
- package/v2Components/CapActionButton/index.js +168 -109
- package/v2Components/CapActionButton/index.scss +156 -5
- package/v2Components/CapActionButton/messages.js +19 -3
- package/v2Components/CapActionButton/tests/index.test.js +42 -18
- package/v2Components/CapImageUpload/index.js +2 -2
- package/v2Components/CapTagList/index.js +10 -0
- package/v2Components/CommonTestAndPreview/CustomValuesEditor.js +70 -48
- package/v2Components/CommonTestAndPreview/DeliverySettings/DeliverySettings.scss +8 -2
- package/v2Components/CommonTestAndPreview/DeliverySettings/ModifyDeliverySettings.js +214 -21
- package/v2Components/CommonTestAndPreview/DeliverySettings/constants.js +16 -0
- package/v2Components/CommonTestAndPreview/DeliverySettings/index.js +83 -9
- package/v2Components/CommonTestAndPreview/DeliverySettings/messages.js +30 -0
- package/v2Components/CommonTestAndPreview/DeliverySettings/utils/parseSenderDetailsResponse.js +60 -11
- package/v2Components/CommonTestAndPreview/SendTestMessage.js +10 -5
- package/v2Components/CommonTestAndPreview/UnifiedPreview/RcsPreviewContent.js +201 -23
- package/v2Components/CommonTestAndPreview/UnifiedPreview/_unifiedPreview.scss +355 -76
- package/v2Components/CommonTestAndPreview/UnifiedPreview/index.js +155 -8
- package/v2Components/CommonTestAndPreview/_commonTestAndPreview.scss +11 -0
- package/v2Components/CommonTestAndPreview/constants.js +38 -2
- package/v2Components/CommonTestAndPreview/index.js +761 -222
- package/v2Components/CommonTestAndPreview/messages.js +45 -3
- package/v2Components/CommonTestAndPreview/previewApiUtils.js +59 -0
- package/v2Components/CommonTestAndPreview/sagas.js +25 -6
- package/v2Components/CommonTestAndPreview/tests/CommonTestAndPreview.addTestCustomer.test.js +1 -0
- package/v2Components/CommonTestAndPreview/tests/CustomValuesEditor.test.js +284 -267
- package/v2Components/CommonTestAndPreview/tests/DeliverySettings/ModifyDeliverySettings.test.js +231 -65
- package/v2Components/CommonTestAndPreview/tests/DeliverySettings/index.test.js +118 -5
- package/v2Components/CommonTestAndPreview/tests/DeliverySettings/utils/parseSenderDetailsResponse.test.js +341 -0
- package/v2Components/CommonTestAndPreview/tests/PreviewSection.test.js +8 -1
- package/v2Components/CommonTestAndPreview/tests/SendTestMessage.test.js +34 -13
- package/v2Components/CommonTestAndPreview/tests/UnifiedPreview/RcsPreviewContent.test.js +281 -283
- package/v2Components/CommonTestAndPreview/tests/UnifiedPreview/index.test.js +199 -1
- package/v2Components/CommonTestAndPreview/tests/index.test.js +133 -4
- package/v2Components/CommonTestAndPreview/tests/previewApiUtils.test.js +67 -0
- package/v2Components/CommonTestAndPreview/tests/sagas.test.js +31 -24
- package/v2Components/CommonTestAndPreview/utils.js +84 -0
- package/v2Components/SmsFallback/SmsFallbackLocalSelector.js +91 -0
- package/v2Components/SmsFallback/constants.js +94 -0
- package/v2Components/SmsFallback/index.js +958 -0
- package/v2Components/SmsFallback/index.scss +266 -0
- package/v2Components/SmsFallback/messages.js +78 -0
- package/v2Components/SmsFallback/smsFallbackUtils.js +120 -0
- package/v2Components/SmsFallback/tests/SmsFallbackLocalSelector.test.js +50 -0
- package/v2Components/SmsFallback/tests/rcsSmsFallback.acceptance.test.js +147 -0
- package/v2Components/SmsFallback/tests/smsFallbackHandlers.test.js +304 -0
- package/v2Components/SmsFallback/tests/smsFallbackUi.test.js +208 -0
- package/v2Components/SmsFallback/tests/smsFallbackUtils.test.js +309 -0
- package/v2Components/SmsFallback/tests/useLocalTemplateList.test.js +422 -0
- package/v2Components/SmsFallback/useLocalTemplateList.js +92 -0
- package/v2Components/TemplatePreview/_templatePreview.scss +41 -22
- package/v2Components/TemplatePreview/constants.js +2 -0
- package/v2Components/TemplatePreview/index.js +143 -31
- package/v2Components/TemplatePreview/tests/index.test.js +142 -0
- package/v2Components/TestAndPreviewSlidebox/CustomValuesEditor.js +6 -6
- package/v2Components/TestAndPreviewSlidebox/index.js +13 -1
- package/v2Components/TestAndPreviewSlidebox/sagas.js +11 -4
- package/v2Components/TestAndPreviewSlidebox/tests/saga.test.js +3 -1
- package/v2Components/VarSegmentMessageEditor/constants.js +2 -0
- package/v2Components/VarSegmentMessageEditor/index.js +125 -0
- package/v2Components/VarSegmentMessageEditor/index.scss +46 -0
- package/v2Containers/CommunicationFlow/Tests/CommunicationFlow.test.js +4 -1
- package/v2Containers/CommunicationFlow/index.js +3 -3
- package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/Tests/DeliverySettingsSection.test.js +4 -0
- package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/Tests/SenderDetails.test.js +20 -20
- package/v2Containers/CreativesContainer/CreativesSlideBoxWrapper.js +17 -0
- package/v2Containers/CreativesContainer/SlideBoxContent.js +36 -4
- package/v2Containers/CreativesContainer/SlideBoxFooter.js +14 -5
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +36 -5
- package/v2Containers/CreativesContainer/constants.js +11 -0
- package/v2Containers/CreativesContainer/embeddedSlideboxUtils.js +79 -0
- package/v2Containers/CreativesContainer/index.js +323 -104
- package/v2Containers/CreativesContainer/index.scss +83 -1
- package/v2Containers/CreativesContainer/tests/SlideBoxContent.localTemplates.test.js +90 -0
- package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +79 -34
- package/v2Containers/CreativesContainer/tests/SlideBoxHeader.test.js +79 -16
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +8 -0
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxHeader.test.js.snap +333 -90
- package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +20 -15
- package/v2Containers/CreativesContainer/tests/embeddedSlideboxUtils.test.js +258 -0
- package/v2Containers/CreativesContainer/tests/index.test.js +71 -9
- package/v2Containers/CreativesContainer/tests/useLocalTemplatesProp.test.js +125 -0
- package/v2Containers/MobilePush/Create/test/saga.test.js +2 -2
- package/v2Containers/Rcs/constants.js +131 -11
- package/v2Containers/Rcs/index.js +2602 -807
- package/v2Containers/Rcs/index.scss +289 -8
- package/v2Containers/Rcs/messages.js +34 -3
- package/v2Containers/Rcs/rcsLibraryHydrationUtils.js +227 -0
- package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +73535 -38537
- package/v2Containers/Rcs/tests/__snapshots__/utils.test.js.snap +0 -8
- package/v2Containers/Rcs/tests/index.test.js +147 -36
- package/v2Containers/Rcs/tests/mockData.js +38 -0
- package/v2Containers/Rcs/tests/rcsLibraryHydrationUtils.test.js +318 -0
- package/v2Containers/Rcs/tests/utils.test.js +646 -30
- package/v2Containers/Rcs/utils.js +478 -11
- package/v2Containers/Sms/Create/index.js +115 -48
- package/v2Containers/Sms/smsFormDataHelpers.js +67 -0
- package/v2Containers/Sms/tests/smsFormDataHelpers.test.js +253 -0
- package/v2Containers/SmsTrai/Create/index.js +9 -4
- package/v2Containers/SmsTrai/Edit/constants.js +2 -0
- package/v2Containers/SmsTrai/Edit/index.js +678 -169
- package/v2Containers/SmsTrai/Edit/index.scss +126 -0
- package/v2Containers/SmsTrai/Edit/messages.js +14 -4
- package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +5615 -3014
- package/v2Containers/SmsWrapper/index.js +37 -8
- package/v2Containers/TagList/index.js +6 -0
- package/v2Containers/Templates/TemplatesActionBar.js +101 -0
- package/v2Containers/Templates/_templates.scss +171 -12
- package/v2Containers/Templates/actions.js +11 -0
- package/v2Containers/Templates/constants.js +2 -0
- package/v2Containers/Templates/index.js +125 -55
- package/v2Containers/Templates/sagas.js +57 -13
- package/v2Containers/Templates/tests/TemplatesActionBar.test.js +120 -0
- package/v2Containers/Templates/tests/__snapshots__/index.test.js.snap +1060 -1015
- package/v2Containers/Templates/tests/sagas.test.js +199 -16
- package/v2Containers/Templates/tests/smsTemplatesListApi.test.js +180 -0
- package/v2Containers/Templates/utils/smsTemplatesListApi.js +79 -0
- package/v2Containers/TemplatesV2/TemplatesV2.style.js +72 -1
- package/v2Containers/TemplatesV2/index.js +86 -23
- package/v2Containers/TemplatesV2/tests/TemplatesV2.localTemplates.test.js +131 -0
- package/v2Containers/WeChat/MapTemplates/test/saga.test.js +9 -9
- package/v2Containers/Whatsapp/index.js +3 -20
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +578 -34
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* UnifiedPreview Styles
|
|
5
|
-
*
|
|
5
|
+
*
|
|
6
6
|
* Consistent styling for preview across all channels
|
|
7
7
|
*/
|
|
8
8
|
|
|
@@ -11,25 +11,24 @@
|
|
|
11
11
|
height: 100%;
|
|
12
12
|
display: flex;
|
|
13
13
|
flex-direction: column;
|
|
14
|
-
background: $CAP_WHITE;
|
|
15
14
|
overflow: hidden;
|
|
16
|
-
|
|
15
|
+
|
|
17
16
|
// Preview Chrome wrapper (matches old TestAndPreviewSlidebox design)
|
|
18
17
|
.preview-chrome {
|
|
19
18
|
background: $CAP_WHITE;
|
|
20
19
|
overflow: hidden;
|
|
21
|
-
|
|
20
|
+
|
|
22
21
|
.preview-divider {
|
|
23
22
|
margin: 0;
|
|
24
23
|
}
|
|
25
|
-
|
|
24
|
+
|
|
26
25
|
.preview-header {
|
|
27
26
|
display: flex;
|
|
28
27
|
justify-content: space-between;
|
|
29
28
|
align-items: center;
|
|
30
29
|
padding: $CAP_SPACE_08 $CAP_SPACE_16 $CAP_SPACE_06 $CAP_SPACE_16;
|
|
31
30
|
background: $CAP_G09;
|
|
32
|
-
|
|
31
|
+
|
|
33
32
|
.preview-for {
|
|
34
33
|
font-size: $FONT_SIZE_M;
|
|
35
34
|
color: #595959;
|
|
@@ -39,20 +38,20 @@
|
|
|
39
38
|
margin-left: $CAP_SPACE_04;
|
|
40
39
|
}
|
|
41
40
|
}
|
|
42
|
-
|
|
41
|
+
|
|
43
42
|
.device-toggle {
|
|
44
43
|
display: flex;
|
|
45
44
|
gap: $CAP_SPACE_08;
|
|
46
45
|
background-color: #e0e0e0;
|
|
47
46
|
padding: $CAP_SPACE_06 $CAP_SPACE_08;
|
|
48
47
|
border-radius: $CAP_SPACE_08;
|
|
49
|
-
|
|
48
|
+
|
|
50
49
|
.anticon {
|
|
51
50
|
padding: $CAP_SPACE_04;
|
|
52
51
|
border-radius: $CAP_SPACE_04;
|
|
53
52
|
cursor: pointer;
|
|
54
53
|
color: #595959;
|
|
55
|
-
|
|
54
|
+
|
|
56
55
|
&.active {
|
|
57
56
|
background-color: $CAP_WHITE;
|
|
58
57
|
color: #262626;
|
|
@@ -62,7 +61,27 @@
|
|
|
62
61
|
}
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
|
-
|
|
64
|
+
|
|
65
|
+
&.unified-preview-rcs-tabs {
|
|
66
|
+
.ant-tabs-nav {
|
|
67
|
+
margin: 0;
|
|
68
|
+
padding: 0 $CAP_SPACE_16;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Prevent white hover/active backgrounds from default antd styles
|
|
72
|
+
.ant-tabs-tab,
|
|
73
|
+
.ant-tabs-tab:hover,
|
|
74
|
+
.ant-tabs-tab-active {
|
|
75
|
+
background: transparent;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.ant-tabs-tab-btn,
|
|
79
|
+
.ant-tabs-tab-btn:hover,
|
|
80
|
+
.ant-tabs-tab-btn:active {
|
|
81
|
+
background: transparent;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
66
85
|
// Preview Content Container
|
|
67
86
|
.preview-content-container {
|
|
68
87
|
flex: 1;
|
|
@@ -75,25 +94,25 @@
|
|
|
75
94
|
.preview-content-container-no-header {
|
|
76
95
|
background-color: $CAP_WHITE;
|
|
77
96
|
}
|
|
78
|
-
|
|
97
|
+
|
|
79
98
|
// Device Frames
|
|
80
99
|
.unified-preview-frame {
|
|
81
100
|
width: 100%;
|
|
82
101
|
display: flex;
|
|
83
102
|
justify-content: center;
|
|
84
|
-
|
|
103
|
+
|
|
85
104
|
.device-frame {
|
|
86
105
|
background: $CAP_WHITE;
|
|
87
106
|
border-radius: $CAP_SPACE_08;
|
|
88
107
|
box-shadow: 0 $CAP_SPACE_04 $CAP_SPACE_12 rgba(0, 0, 0, 0.15);
|
|
89
108
|
overflow: hidden;
|
|
90
109
|
transition: all 0.3s ease;
|
|
91
|
-
|
|
110
|
+
|
|
92
111
|
// Desktop Frame
|
|
93
112
|
&.device-frame-desktop {
|
|
94
113
|
width: 100%;
|
|
95
114
|
min-height: 42.857rem;
|
|
96
|
-
|
|
115
|
+
|
|
97
116
|
.desktop-chrome {
|
|
98
117
|
height: $CAP_SPACE_40;
|
|
99
118
|
background: $CAP_G12;
|
|
@@ -102,30 +121,30 @@
|
|
|
102
121
|
align-items: center;
|
|
103
122
|
padding: 0 $CAP_SPACE_12;
|
|
104
123
|
gap: $CAP_SPACE_12;
|
|
105
|
-
|
|
124
|
+
|
|
106
125
|
.chrome-dots {
|
|
107
126
|
display: flex;
|
|
108
127
|
gap: $CAP_SPACE_06;
|
|
109
|
-
|
|
128
|
+
|
|
110
129
|
.dot {
|
|
111
130
|
width: $CAP_SPACE_12;
|
|
112
131
|
height: $CAP_SPACE_12;
|
|
113
132
|
border-radius: 50%;
|
|
114
|
-
|
|
133
|
+
|
|
115
134
|
&.dot-close {
|
|
116
135
|
background: #ff5f56;
|
|
117
136
|
}
|
|
118
|
-
|
|
137
|
+
|
|
119
138
|
&.dot-minimize {
|
|
120
139
|
background: #ffbd2e;
|
|
121
140
|
}
|
|
122
|
-
|
|
141
|
+
|
|
123
142
|
&.dot-maximize {
|
|
124
143
|
background: #27c93f;
|
|
125
144
|
}
|
|
126
145
|
}
|
|
127
146
|
}
|
|
128
|
-
|
|
147
|
+
|
|
129
148
|
.chrome-address-bar {
|
|
130
149
|
flex: 1;
|
|
131
150
|
background: $CAP_WHITE;
|
|
@@ -135,25 +154,25 @@
|
|
|
135
154
|
color: #8c8c8c;
|
|
136
155
|
}
|
|
137
156
|
}
|
|
138
|
-
|
|
157
|
+
|
|
139
158
|
.device-content {
|
|
140
159
|
min-height: 40rem;
|
|
141
160
|
background: $CAP_WHITE;
|
|
142
161
|
}
|
|
143
162
|
}
|
|
144
|
-
|
|
163
|
+
|
|
145
164
|
// Tablet Frame
|
|
146
165
|
&.device-frame-tablet {
|
|
147
166
|
width: 54.857rem;
|
|
148
167
|
max-width: 90%;
|
|
149
|
-
|
|
168
|
+
|
|
150
169
|
.tablet-chrome {
|
|
151
170
|
height: $CAP_SPACE_24;
|
|
152
171
|
background: #333333;
|
|
153
172
|
display: flex;
|
|
154
173
|
align-items: center;
|
|
155
174
|
justify-content: center;
|
|
156
|
-
|
|
175
|
+
|
|
157
176
|
.tablet-camera {
|
|
158
177
|
width: $CAP_SPACE_08;
|
|
159
178
|
height: $CAP_SPACE_08;
|
|
@@ -162,19 +181,19 @@
|
|
|
162
181
|
border: $CAP_SPACE_01 solid #666666;
|
|
163
182
|
}
|
|
164
183
|
}
|
|
165
|
-
|
|
184
|
+
|
|
166
185
|
.device-content {
|
|
167
186
|
min-height: 73.143rem;
|
|
168
187
|
background: $CAP_WHITE;
|
|
169
188
|
}
|
|
170
|
-
|
|
189
|
+
|
|
171
190
|
.tablet-footer {
|
|
172
191
|
height: 3.571rem;
|
|
173
192
|
background: #333333;
|
|
174
193
|
display: flex;
|
|
175
194
|
align-items: center;
|
|
176
195
|
justify-content: center;
|
|
177
|
-
|
|
196
|
+
|
|
178
197
|
.home-button {
|
|
179
198
|
width: $CAP_SPACE_40;
|
|
180
199
|
height: $CAP_SPACE_40;
|
|
@@ -184,19 +203,19 @@
|
|
|
184
203
|
}
|
|
185
204
|
}
|
|
186
205
|
}
|
|
187
|
-
|
|
206
|
+
|
|
188
207
|
// Mobile Frame
|
|
189
208
|
&.device-frame-mobile {
|
|
190
209
|
width: 26.786rem;
|
|
191
210
|
max-width: 90%;
|
|
192
|
-
|
|
211
|
+
|
|
193
212
|
.mobile-chrome {
|
|
194
213
|
height: $CAP_SPACE_24;
|
|
195
214
|
background: #000000;
|
|
196
215
|
display: flex;
|
|
197
216
|
align-items: center;
|
|
198
217
|
justify-content: center;
|
|
199
|
-
|
|
218
|
+
|
|
200
219
|
.mobile-notch {
|
|
201
220
|
width: 10.714rem;
|
|
202
221
|
height: 1.571rem;
|
|
@@ -204,19 +223,19 @@
|
|
|
204
223
|
border-radius: 0 0 $CAP_SPACE_12 $CAP_SPACE_12;
|
|
205
224
|
}
|
|
206
225
|
}
|
|
207
|
-
|
|
226
|
+
|
|
208
227
|
.device-content {
|
|
209
228
|
min-height: 47.643rem;
|
|
210
229
|
background: $CAP_WHITE;
|
|
211
230
|
}
|
|
212
|
-
|
|
231
|
+
|
|
213
232
|
.mobile-footer {
|
|
214
233
|
height: $CAP_SPACE_24;
|
|
215
234
|
background: #000000;
|
|
216
235
|
display: flex;
|
|
217
236
|
align-items: center;
|
|
218
237
|
justify-content: center;
|
|
219
|
-
|
|
238
|
+
|
|
220
239
|
.home-indicator {
|
|
221
240
|
width: $CAP_SPACE_80;
|
|
222
241
|
height: $CAP_SPACE_04;
|
|
@@ -228,7 +247,7 @@
|
|
|
228
247
|
}
|
|
229
248
|
}
|
|
230
249
|
}
|
|
231
|
-
|
|
250
|
+
|
|
232
251
|
// Channel Preview Placeholders (Phase 5)
|
|
233
252
|
.channel-preview-placeholder {
|
|
234
253
|
display: flex;
|
|
@@ -238,7 +257,7 @@
|
|
|
238
257
|
padding: $CAP_SPACE_60 $CAP_SPACE_24;
|
|
239
258
|
text-align: center;
|
|
240
259
|
min-height: 28.571rem;
|
|
241
|
-
|
|
260
|
+
|
|
242
261
|
.question-circle {
|
|
243
262
|
font-size: $CAP_SPACE_48;
|
|
244
263
|
color: $CAP_COLOR_16;
|
|
@@ -249,13 +268,13 @@
|
|
|
249
268
|
font-weight: 600;
|
|
250
269
|
color: #262626;
|
|
251
270
|
}
|
|
252
|
-
|
|
271
|
+
|
|
253
272
|
p {
|
|
254
273
|
margin-top: $CAP_SPACE_08;
|
|
255
274
|
font-size: $FONT_SIZE_M;
|
|
256
275
|
color: #8c8c8c;
|
|
257
276
|
}
|
|
258
|
-
|
|
277
|
+
|
|
259
278
|
.preview-subject {
|
|
260
279
|
margin-top: $CAP_SPACE_24;
|
|
261
280
|
padding: $CAP_SPACE_12 $CAP_SPACE_16;
|
|
@@ -264,26 +283,26 @@
|
|
|
264
283
|
text-align: left;
|
|
265
284
|
width: 100%;
|
|
266
285
|
max-width: 35.714rem;
|
|
267
|
-
|
|
286
|
+
|
|
268
287
|
strong {
|
|
269
288
|
color: #595959;
|
|
270
289
|
margin-right: $CAP_SPACE_08;
|
|
271
290
|
}
|
|
272
291
|
}
|
|
273
|
-
|
|
292
|
+
|
|
274
293
|
.preview-body-placeholder {
|
|
275
294
|
margin-top: $CAP_SPACE_12;
|
|
276
295
|
padding: $CAP_SPACE_08 $CAP_SPACE_12;
|
|
277
296
|
background: #fafafa;
|
|
278
297
|
border: $CAP_SPACE_01 dashed $CAP_COLOR_16;
|
|
279
298
|
border-radius: $CAP_SPACE_04;
|
|
280
|
-
|
|
299
|
+
|
|
281
300
|
small {
|
|
282
301
|
color: #8c8c8c;
|
|
283
302
|
}
|
|
284
303
|
}
|
|
285
304
|
}
|
|
286
|
-
|
|
305
|
+
|
|
287
306
|
// Loading State
|
|
288
307
|
&.unified-preview-loading {
|
|
289
308
|
.preview-loading-container {
|
|
@@ -293,14 +312,14 @@
|
|
|
293
312
|
justify-content: center;
|
|
294
313
|
gap: $CAP_SPACE_16;
|
|
295
314
|
min-height: 28.571rem;
|
|
296
|
-
|
|
315
|
+
|
|
297
316
|
.loading-text {
|
|
298
317
|
font-size: $FONT_SIZE_M;
|
|
299
318
|
color: #8c8c8c;
|
|
300
319
|
}
|
|
301
320
|
}
|
|
302
321
|
}
|
|
303
|
-
|
|
322
|
+
|
|
304
323
|
// Error State
|
|
305
324
|
&.unified-preview-error {
|
|
306
325
|
.preview-error-container {
|
|
@@ -311,7 +330,7 @@
|
|
|
311
330
|
justify-content: center;
|
|
312
331
|
gap: $CAP_SPACE_16;
|
|
313
332
|
min-height: 28.571rem;
|
|
314
|
-
|
|
333
|
+
|
|
315
334
|
.exclamation-circle {
|
|
316
335
|
font-size: $CAP_SPACE_48;
|
|
317
336
|
color: #ff4d4f;
|
|
@@ -321,7 +340,7 @@
|
|
|
321
340
|
font-weight: 600;
|
|
322
341
|
color: #262626;
|
|
323
342
|
}
|
|
324
|
-
|
|
343
|
+
|
|
325
344
|
.error-message {
|
|
326
345
|
font-size: $FONT_SIZE_M;
|
|
327
346
|
color: #ff4d4f;
|
|
@@ -330,7 +349,7 @@
|
|
|
330
349
|
}
|
|
331
350
|
}
|
|
332
351
|
}
|
|
333
|
-
|
|
352
|
+
|
|
334
353
|
// Preview Metadata
|
|
335
354
|
.preview-metadata {
|
|
336
355
|
padding: $CAP_SPACE_12 $CAP_SPACE_24;
|
|
@@ -340,7 +359,7 @@
|
|
|
340
359
|
color: #8c8c8c;
|
|
341
360
|
display: flex;
|
|
342
361
|
gap: $CAP_SPACE_16;
|
|
343
|
-
|
|
362
|
+
|
|
344
363
|
.metadata-item {
|
|
345
364
|
display: flex;
|
|
346
365
|
gap: $CAP_SPACE_04;
|
|
@@ -532,7 +551,7 @@
|
|
|
532
551
|
font-weight: 600;
|
|
533
552
|
color: #262626;
|
|
534
553
|
}
|
|
535
|
-
|
|
554
|
+
|
|
536
555
|
.error-message {
|
|
537
556
|
font-size: $FONT_SIZE_M;
|
|
538
557
|
color: #ff4d4f;
|
|
@@ -571,9 +590,12 @@
|
|
|
571
590
|
transform: translateX(-50%);
|
|
572
591
|
width: 100%;
|
|
573
592
|
max-width: 26.786rem;
|
|
593
|
+
min-width: 0; // flex descendant overflow: allow shrink inside narrow screen
|
|
574
594
|
height: calc(100% - 4.5rem);
|
|
575
595
|
display: flex;
|
|
576
596
|
flex-direction: column;
|
|
597
|
+
overflow-x: hidden;
|
|
598
|
+
box-sizing: border-box;
|
|
577
599
|
|
|
578
600
|
&.sms-content-overlay-android {
|
|
579
601
|
height: calc(100% - 3.8rem);
|
|
@@ -741,7 +763,7 @@
|
|
|
741
763
|
font-weight: 600;
|
|
742
764
|
color: #262626;
|
|
743
765
|
}
|
|
744
|
-
|
|
766
|
+
|
|
745
767
|
.sms-error-message {
|
|
746
768
|
font-size: $FONT_SIZE_M;
|
|
747
769
|
color: #ff4d4f;
|
|
@@ -763,13 +785,270 @@
|
|
|
763
785
|
}
|
|
764
786
|
}
|
|
765
787
|
|
|
788
|
+
// RCS-only overrides for SMS-style preview frame (scoped; does not affect SMS channel preview)
|
|
789
|
+
.rcs-device-container {
|
|
790
|
+
|
|
791
|
+
// Carousel panel: sibling of .sms-content-overlay, positioned absolutely within
|
|
792
|
+
// .sms-device-container (position:relative). Has NO overflow-x:hidden ancestor,
|
|
793
|
+
// mirroring the WhatsApp carousel approach so horizontal scroll events reach the
|
|
794
|
+
// inner .scroll-container directly.
|
|
795
|
+
&.rcs-device-container-carousel {
|
|
796
|
+
// Carousel panel: same geometry as .sms-content-overlay but NO overflow-x:hidden.
|
|
797
|
+
// padding-top skips past the nav bar ($CAP_SPACE_48 = 3.428rem) and date separator
|
|
798
|
+
// (~2.429rem), placing the carousel right where the original .sms-message-container
|
|
799
|
+
// started (which had flex:1 and filled from below the date separator downward).
|
|
800
|
+
.rcs-carousel-panel {
|
|
801
|
+
position: absolute;
|
|
802
|
+
left: 50%;
|
|
803
|
+
transform: translateX(-50%);
|
|
804
|
+
width: 100%;
|
|
805
|
+
max-width: 26.786rem;
|
|
806
|
+
box-sizing: border-box;
|
|
807
|
+
top: 4.143rem;
|
|
808
|
+
height: calc(100% - 4.5rem);
|
|
809
|
+
display: flex;
|
|
810
|
+
flex-direction: column;
|
|
811
|
+
padding-top: 5.857rem; // nav (3.428rem) + date separator (~2.429rem)
|
|
812
|
+
padding-bottom: $CAP_SPACE_16;
|
|
813
|
+
|
|
814
|
+
&.rcs-carousel-panel-android {
|
|
815
|
+
top: 3.1rem;
|
|
816
|
+
height: calc(100% - 3.8rem);
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
&.rcs-carousel-panel-ios {
|
|
820
|
+
height: calc(100% - 5rem);
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
.msg-container-carousel {
|
|
824
|
+
display: flex;
|
|
825
|
+
flex-direction: column;
|
|
826
|
+
width: 100%;
|
|
827
|
+
padding: 0 $CAP_SPACE_16;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
.scroll-container {
|
|
831
|
+
display: flex;
|
|
832
|
+
flex-wrap: nowrap;
|
|
833
|
+
gap: 0.75rem;
|
|
834
|
+
overflow-x: auto;
|
|
835
|
+
overflow-y: hidden;
|
|
836
|
+
width: 100%;
|
|
837
|
+
scrollbar-width: none;
|
|
838
|
+
|
|
839
|
+
&::-webkit-scrollbar {
|
|
840
|
+
display: none;
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
.rcs-carousel-timestamp {
|
|
845
|
+
font-size: $FONT_SIZE_S;
|
|
846
|
+
color: #8c8c8c;
|
|
847
|
+
align-self: flex-end;
|
|
848
|
+
padding-right: $CAP_SPACE_04;
|
|
849
|
+
padding-top: $CAP_SPACE_04;
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
.rcs-content-overlay {
|
|
855
|
+
// no carousel-specific overlay overrides needed (carousel lives outside the overlay now)
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
// RCS Carousel card styles — scoped to .rcs-carousel-panel (which lives outside the
|
|
860
|
+
// overflow-x:hidden overlay so horizontal scroll events reach .scroll-container freely).
|
|
861
|
+
.rcs-device-container {
|
|
862
|
+
.rcs-carousel-panel {
|
|
863
|
+
|
|
864
|
+
.message-pop-carousel {
|
|
865
|
+
// Match TemplatePreview carousel card look (big card + subtle shadow)
|
|
866
|
+
background-color: $CAP_WHITE;
|
|
867
|
+
border-radius: $CAP_SPACE_08;
|
|
868
|
+
// Ensure card width is stable and does not shrink to text width
|
|
869
|
+
width: 15.375rem; // ~246px; fills container leaving ~50% of next card peeking
|
|
870
|
+
min-width: 15.375rem;
|
|
871
|
+
flex: 0 0 15.375rem;
|
|
872
|
+
padding: 0;
|
|
873
|
+
margin-right: 0; // spacing handled by scroll-container gap
|
|
874
|
+
color: $CAP_G01;
|
|
875
|
+
overflow: hidden;
|
|
876
|
+
box-shadow: 0 0 0.625rem 0 rgba(0, 0, 0, 0.08);
|
|
877
|
+
position: relative;
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
.whatsapp-content {
|
|
881
|
+
font-family: Roboto, 'Open Sans', sans-serif;
|
|
882
|
+
margin: 0;
|
|
883
|
+
width: 100%;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
// Height follows width × aspect-ratio; inline style from carouselPreviewDimensions overrides fallback.
|
|
887
|
+
.whatsapp-image.rcs-carousel-media-wrap {
|
|
888
|
+
width: 100%;
|
|
889
|
+
height: auto;
|
|
890
|
+
aspect-ratio: 1280 / 720; // MEDIUM_MEDIUM image fallback when dimensions not passed
|
|
891
|
+
display: block;
|
|
892
|
+
overflow: hidden;
|
|
893
|
+
border-radius: 0.5rem 0.5rem 0 0; // 8px
|
|
894
|
+
margin-bottom: 0;
|
|
895
|
+
|
|
896
|
+
// CapImage (antd Image) applies className on wrapper; ensure inner img is constrained too.
|
|
897
|
+
img,
|
|
898
|
+
.ant-image-img {
|
|
899
|
+
width: 100%;
|
|
900
|
+
height: 100%;
|
|
901
|
+
object-fit: cover;
|
|
902
|
+
border-radius: inherit;
|
|
903
|
+
display: block;
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
// Plain <img> in RCS carousel preview (not CapImage)
|
|
907
|
+
.rcs-carousel-img {
|
|
908
|
+
width: 100%;
|
|
909
|
+
height: 100%;
|
|
910
|
+
object-fit: cover;
|
|
911
|
+
border-radius: inherit;
|
|
912
|
+
display: block;
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
|
|
916
|
+
.video-preview {
|
|
917
|
+
position: relative;
|
|
918
|
+
width: 100%;
|
|
919
|
+
margin-bottom: 0;
|
|
920
|
+
|
|
921
|
+
.whatsapp-image.rcs-carousel-media-wrap {
|
|
922
|
+
width: 100%;
|
|
923
|
+
height: auto;
|
|
924
|
+
aspect-ratio: 796 / 448; // MEDIUM_MEDIUM video thumbnail fallback
|
|
925
|
+
margin-bottom: 0;
|
|
926
|
+
|
|
927
|
+
img,
|
|
928
|
+
.ant-image-img,
|
|
929
|
+
.rcs-carousel-img {
|
|
930
|
+
width: 100%;
|
|
931
|
+
height: 100%;
|
|
932
|
+
object-fit: cover;
|
|
933
|
+
border-radius: inherit;
|
|
934
|
+
display: block;
|
|
935
|
+
}
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
.icon-position {
|
|
939
|
+
position: absolute;
|
|
940
|
+
top: 50%;
|
|
941
|
+
left: 50%;
|
|
942
|
+
transform: translate(-50%, -50%);
|
|
943
|
+
display: flex;
|
|
944
|
+
align-items: center;
|
|
945
|
+
justify-content: center;
|
|
946
|
+
|
|
947
|
+
.video-icon {
|
|
948
|
+
width: $CAP_SPACE_48;
|
|
949
|
+
height: $CAP_SPACE_48;
|
|
950
|
+
}
|
|
951
|
+
}
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
// CapTooltip shrink-wraps its wrapper/trigger by default and forces `display: inline-block`
|
|
955
|
+
// inline on the trigger span, so .video-preview's width:100% collapses to content width
|
|
956
|
+
// unless these are stretched to fill the card (inline style needs !important to override).
|
|
957
|
+
.rcs-carousel-video-tooltip-wrapper {
|
|
958
|
+
display: block;
|
|
959
|
+
width: 100%;
|
|
960
|
+
}
|
|
961
|
+
|
|
962
|
+
.rcs-carousel-video-tooltip-trigger {
|
|
963
|
+
display: block !important;
|
|
964
|
+
width: 100%;
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
.carousel-content {
|
|
968
|
+
padding: 0.625rem 0.75rem; // 10px 12px
|
|
969
|
+
width: 100%;
|
|
970
|
+
background-color: $CAP_WHITE;
|
|
971
|
+
white-space: normal; // override scroll-container's nowrap so text can wrap
|
|
972
|
+
display: flex;
|
|
973
|
+
flex-direction: column;
|
|
974
|
+
border-bottom-left-radius: 0.25rem; // 4px — text panel tucks above CTA gap (Figma)
|
|
975
|
+
border-bottom-right-radius: 0.25rem;
|
|
976
|
+
|
|
977
|
+
// Title/body typography via CapLabel type (label1 / label2, etc.)
|
|
978
|
+
.carousel-title {
|
|
979
|
+
margin-bottom: 0.25rem; // 4px
|
|
980
|
+
display: block;
|
|
981
|
+
overflow: visible;
|
|
982
|
+
white-space: normal;
|
|
983
|
+
overflow-wrap: anywhere;
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
.carousel-message {
|
|
987
|
+
display: block;
|
|
988
|
+
overflow: visible;
|
|
989
|
+
white-space: normal;
|
|
990
|
+
overflow-wrap: anywhere;
|
|
991
|
+
}
|
|
992
|
+
|
|
993
|
+
.rcs-carousel-field-placeholder {
|
|
994
|
+
color: $CAP_G05;
|
|
995
|
+
font-weight: $FONT_WEIGHT_REGULAR;
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
// Divider between message body and suggestions — subtle gray on the gray bubble
|
|
1000
|
+
.whatsapp-divider {
|
|
1001
|
+
margin: 0;
|
|
1002
|
+
border-top: 1px solid $CAP_G07;
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
// Inside a carousel card (white bg) dividers should stay white
|
|
1006
|
+
.message-pop-carousel .whatsapp-divider {
|
|
1007
|
+
border-top: 1px solid $CAP_WHITE;
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
// Stacked full-width CTA bars below card copy, separated by white gap (Figma RCS carousel)
|
|
1011
|
+
.rcs-carousel-cta-stack.cap-row-v2 {
|
|
1012
|
+
display: flex;
|
|
1013
|
+
flex-direction: column;
|
|
1014
|
+
flex-wrap: nowrap;
|
|
1015
|
+
width: 100%;
|
|
1016
|
+
gap: 0.25rem;
|
|
1017
|
+
box-sizing: border-box;
|
|
1018
|
+
align-items: stretch;
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
.rcs-cta-preview--carousel-bar {
|
|
1022
|
+
display: flex;
|
|
1023
|
+
align-items: center;
|
|
1024
|
+
justify-content: center;
|
|
1025
|
+
gap: 0.375rem;
|
|
1026
|
+
width: 100%;
|
|
1027
|
+
margin: 0;
|
|
1028
|
+
padding: 0.625rem 0.75rem;
|
|
1029
|
+
box-sizing: border-box;
|
|
1030
|
+
background-color: $CAP_WHITE;
|
|
1031
|
+
border-radius: 0.25rem;
|
|
1032
|
+
font-size: $FONT_SIZE_M;
|
|
1033
|
+
font-weight: $FONT_WEIGHT_MEDIUM;
|
|
1034
|
+
color: $CAP_G01;
|
|
1035
|
+
text-align: center;
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
.rcs-cta-preview-phone-icon-end {
|
|
1039
|
+
margin-left: 0.25rem;
|
|
1040
|
+
flex-shrink: 0;
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1044
|
+
|
|
766
1045
|
// WhatsApp Preview Content Styles (Phase 8)
|
|
767
1046
|
// All WhatsApp styles wrapped in parent class for increased specificity
|
|
768
1047
|
// This prevents other CSS (like CapLabel) from overriding WhatsApp-specific styles
|
|
769
1048
|
.whatsapp-preview-wrapper {
|
|
770
1049
|
// Using same CSS classes as TemplatePreview for consistency
|
|
771
1050
|
// Styles are copied from TemplatePreview/_templatePreview.scss to ensure they work
|
|
772
|
-
|
|
1051
|
+
|
|
773
1052
|
.shell-v2-whatsapp {
|
|
774
1053
|
position: relative;
|
|
775
1054
|
-webkit-transform: translate(-50%);
|
|
@@ -844,23 +1123,23 @@
|
|
|
844
1123
|
}
|
|
845
1124
|
|
|
846
1125
|
// WhatsApp message pop styles (matching TemplatePreview)
|
|
847
|
-
&.whatsapp-message-pop
|
|
1126
|
+
&.whatsapp-message-pop,
|
|
1127
|
+
&.whatsapp-message-pop-carousel {
|
|
848
1128
|
padding: $CAP_SPACE_04 0 $CAP_SPACE_08;
|
|
849
1129
|
border-radius: $CAP_SPACE_06;
|
|
850
1130
|
background-color: $CAP_WHITE;
|
|
851
|
-
width: 88%;
|
|
852
1131
|
left: 0;
|
|
853
1132
|
}
|
|
854
1133
|
|
|
1134
|
+
&.whatsapp-message-pop {
|
|
1135
|
+
width: 88%;
|
|
1136
|
+
}
|
|
1137
|
+
|
|
855
1138
|
// WhatsApp carousel message pop styles
|
|
856
1139
|
&.whatsapp-message-pop-carousel {
|
|
857
|
-
padding: $CAP_SPACE_04 0 $CAP_SPACE_08;
|
|
858
|
-
border-radius: $CAP_SPACE_06;
|
|
859
|
-
background-color: $CAP_WHITE;
|
|
860
1140
|
width: 10.4rem;
|
|
861
1141
|
cursor: pointer;
|
|
862
1142
|
flex-shrink: 0;
|
|
863
|
-
left: 0;
|
|
864
1143
|
}
|
|
865
1144
|
}
|
|
866
1145
|
}
|
|
@@ -925,7 +1204,7 @@
|
|
|
925
1204
|
line-height: 1rem;
|
|
926
1205
|
font-family: Roboto, 'Open Sans', sans-serif;
|
|
927
1206
|
}
|
|
928
|
-
|
|
1207
|
+
|
|
929
1208
|
.whatsapp-template-footer-preview {
|
|
930
1209
|
// From WhatsApp/index.scss: color: $CAP_G04, but use white for preview
|
|
931
1210
|
color: $CAP_G01;
|
|
@@ -1007,19 +1286,19 @@
|
|
|
1007
1286
|
color: #8c8c8c;
|
|
1008
1287
|
font-size: $FONT_SIZE_M;
|
|
1009
1288
|
}
|
|
1010
|
-
|
|
1289
|
+
|
|
1011
1290
|
.whatsapp-error-text {
|
|
1012
1291
|
font-size: $FONT_SIZE_L;
|
|
1013
1292
|
font-weight: 600;
|
|
1014
1293
|
color: #262626;
|
|
1015
1294
|
}
|
|
1016
|
-
|
|
1295
|
+
|
|
1017
1296
|
.whatsapp-error-message {
|
|
1018
1297
|
font-size: $FONT_SIZE_M;
|
|
1019
1298
|
color: #ff4d4f;
|
|
1020
1299
|
text-align: center;
|
|
1021
1300
|
}
|
|
1022
|
-
|
|
1301
|
+
|
|
1023
1302
|
.whatsapp-no-content {
|
|
1024
1303
|
color: #8c8c8c;
|
|
1025
1304
|
font-size: $FONT_SIZE_M;
|
|
@@ -1071,14 +1350,14 @@
|
|
|
1071
1350
|
color: #8c8c8c;
|
|
1072
1351
|
margin-top: $CAP_SPACE_04;
|
|
1073
1352
|
}
|
|
1074
|
-
|
|
1353
|
+
|
|
1075
1354
|
.url-preview {
|
|
1076
1355
|
font-size: $FONT_SIZE_S;
|
|
1077
1356
|
color: #1890ff;
|
|
1078
1357
|
word-break: break-all;
|
|
1079
1358
|
}
|
|
1080
1359
|
}
|
|
1081
|
-
|
|
1360
|
+
|
|
1082
1361
|
// InApp Preview Content Styles (Phase 10)
|
|
1083
1362
|
// Styles copied from TemplatePreview/_templatePreview.scss to ensure consistency
|
|
1084
1363
|
// These styles work within the SMS device container structure
|
|
@@ -1139,11 +1418,11 @@
|
|
|
1139
1418
|
.inapp-message-container-FULLSCREEN {
|
|
1140
1419
|
position: relative;
|
|
1141
1420
|
background-color: $CAP_WHITE;
|
|
1142
|
-
width: 100%;
|
|
1421
|
+
width: 100%;
|
|
1143
1422
|
height: 100%;
|
|
1144
1423
|
align-items: center;
|
|
1145
1424
|
padding: 0 $CAP_SPACE_16;
|
|
1146
|
-
border-bottom-left-radius: 2.6rem;
|
|
1425
|
+
border-bottom-left-radius: 2.6rem;
|
|
1147
1426
|
border-bottom-right-radius: 2.6rem;
|
|
1148
1427
|
.inapp-title-FULLSCREEN {
|
|
1149
1428
|
align-items: center;
|
|
@@ -1973,7 +2252,7 @@
|
|
|
1973
2252
|
max-height: 7.5rem;
|
|
1974
2253
|
margin-left: $CAP_SPACE_24;
|
|
1975
2254
|
}
|
|
1976
|
-
|
|
2255
|
+
|
|
1977
2256
|
.mpush-gif-preview {
|
|
1978
2257
|
max-width: 100%;
|
|
1979
2258
|
max-height: 7.5rem;
|
|
@@ -2231,6 +2510,7 @@
|
|
|
2231
2510
|
font-weight: 500;
|
|
2232
2511
|
display: -webkit-box;
|
|
2233
2512
|
-webkit-line-clamp: 1;
|
|
2513
|
+
line-clamp: 1;
|
|
2234
2514
|
-webkit-box-orient: vertical;
|
|
2235
2515
|
overflow: hidden;
|
|
2236
2516
|
color: $CAP_WHITE;
|
|
@@ -2282,7 +2562,7 @@
|
|
|
2282
2562
|
color: $FONT_COLOR_01;
|
|
2283
2563
|
margin-bottom: $CAP_SPACE_12;
|
|
2284
2564
|
}
|
|
2285
|
-
|
|
2565
|
+
|
|
2286
2566
|
.preview-text {
|
|
2287
2567
|
font-weight: 400;
|
|
2288
2568
|
font-size: $FONT_SIZE_S;
|
|
@@ -2317,13 +2597,13 @@
|
|
|
2317
2597
|
justify-content: center;
|
|
2318
2598
|
padding: $CAP_SPACE_60 $CAP_SPACE_24;
|
|
2319
2599
|
gap: $CAP_SPACE_16;
|
|
2320
|
-
|
|
2600
|
+
|
|
2321
2601
|
.zalo-loading-text {
|
|
2322
2602
|
color: #8c8c8c;
|
|
2323
2603
|
font-size: $FONT_SIZE_M;
|
|
2324
2604
|
}
|
|
2325
2605
|
}
|
|
2326
|
-
|
|
2606
|
+
|
|
2327
2607
|
// Error state
|
|
2328
2608
|
.zalo-error-container {
|
|
2329
2609
|
display: flex;
|
|
@@ -2332,13 +2612,13 @@
|
|
|
2332
2612
|
justify-content: center;
|
|
2333
2613
|
padding: $CAP_SPACE_60 $CAP_SPACE_24;
|
|
2334
2614
|
gap: $CAP_SPACE_16;
|
|
2335
|
-
|
|
2615
|
+
|
|
2336
2616
|
.zalo-error-text {
|
|
2337
2617
|
font-size: $FONT_SIZE_L;
|
|
2338
2618
|
font-weight: 600;
|
|
2339
2619
|
color: #262626;
|
|
2340
2620
|
}
|
|
2341
|
-
|
|
2621
|
+
|
|
2342
2622
|
.zalo-error-message {
|
|
2343
2623
|
font-size: $FONT_SIZE_M;
|
|
2344
2624
|
color: #ff4d4f;
|
|
@@ -2410,31 +2690,31 @@
|
|
|
2410
2690
|
}
|
|
2411
2691
|
}
|
|
2412
2692
|
}
|
|
2413
|
-
|
|
2693
|
+
|
|
2414
2694
|
@media (max-width: 54.857rem) {
|
|
2415
2695
|
.unified-preview {
|
|
2416
2696
|
.preview-header {
|
|
2417
2697
|
flex-direction: column;
|
|
2418
2698
|
align-items: flex-start;
|
|
2419
2699
|
gap: $CAP_SPACE_12;
|
|
2420
|
-
|
|
2700
|
+
|
|
2421
2701
|
.preview-header-right {
|
|
2422
2702
|
width: 100%;
|
|
2423
2703
|
justify-content: flex-start;
|
|
2424
2704
|
}
|
|
2425
2705
|
}
|
|
2426
|
-
|
|
2706
|
+
|
|
2427
2707
|
.preview-content-container {
|
|
2428
2708
|
padding: $CAP_SPACE_16;
|
|
2429
2709
|
}
|
|
2430
|
-
|
|
2710
|
+
|
|
2431
2711
|
.device-frame {
|
|
2432
2712
|
&.device-frame-desktop,
|
|
2433
2713
|
&.device-frame-tablet {
|
|
2434
2714
|
width: 100% !important;
|
|
2435
2715
|
max-width: 100% !important;
|
|
2436
2716
|
}
|
|
2437
|
-
|
|
2717
|
+
|
|
2438
2718
|
&.device-frame-mobile {
|
|
2439
2719
|
width: 100% !important;
|
|
2440
2720
|
max-width: 100% !important;
|
|
@@ -2442,4 +2722,3 @@
|
|
|
2442
2722
|
}
|
|
2443
2723
|
}
|
|
2444
2724
|
}
|
|
2445
|
-
|