@capillarytech/creatives-library 8.0.271 → 8.0.272
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/assets/Android.png +0 -0
- package/assets/iOS.png +0 -0
- package/constants/unified.js +2 -1
- package/initialReducer.js +2 -0
- package/package.json +1 -1
- package/services/api.js +10 -0
- package/services/tests/api.test.js +34 -0
- package/tests/integration/TemplateCreation/TemplateCreation.integration.test.js +17 -35
- package/tests/integration/TemplateCreation/api-response.js +31 -1
- package/tests/integration/TemplateCreation/msw-handler.js +2 -0
- package/utils/common.js +5 -0
- package/utils/commonUtils.js +28 -5
- package/utils/tests/commonUtil.test.js +224 -0
- package/utils/transformTemplateConfig.js +0 -10
- package/v2Components/CapDeviceContent/index.js +61 -56
- package/v2Components/CapTagList/index.js +6 -1
- package/v2Components/CapTagListWithInput/index.js +5 -1
- package/v2Components/CapTagListWithInput/messages.js +1 -1
- package/v2Components/CapWhatsappCTA/tests/index.test.js +5 -0
- package/v2Components/ErrorInfoNote/constants.js +1 -0
- package/v2Components/ErrorInfoNote/index.js +402 -72
- package/v2Components/ErrorInfoNote/messages.js +32 -6
- package/v2Components/ErrorInfoNote/style.scss +278 -6
- package/v2Components/FormBuilder/tests/index.test.js +13 -4
- package/v2Components/HtmlEditor/HTMLEditor.js +418 -99
- package/v2Components/HtmlEditor/__tests__/HTMLEditor.apiErrors.test.js +870 -0
- package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +1882 -133
- package/v2Components/HtmlEditor/__tests__/index.lazy.test.js +27 -16
- package/v2Components/HtmlEditor/_htmlEditor.scss +108 -45
- package/v2Components/HtmlEditor/_index.lazy.scss +0 -1
- package/v2Components/HtmlEditor/components/CodeEditorPane/_codeEditorPane.scss +23 -102
- package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +148 -140
- package/v2Components/HtmlEditor/components/DeviceToggle/_deviceToggle.scss +2 -1
- package/v2Components/HtmlEditor/components/DeviceToggle/index.js +3 -3
- package/v2Components/HtmlEditor/components/EditorToolbar/_editorToolbar.scss +9 -1
- package/v2Components/HtmlEditor/components/EditorToolbar/index.js +31 -6
- package/v2Components/HtmlEditor/components/FullscreenModal/_fullscreenModal.scss +22 -0
- package/v2Components/HtmlEditor/components/InAppPreviewPane/DeviceFrame.js +4 -7
- package/v2Components/HtmlEditor/components/InAppPreviewPane/__tests__/DeviceFrame.test.js +35 -45
- package/v2Components/HtmlEditor/components/InAppPreviewPane/_inAppPreviewPane.scss +1 -3
- package/v2Components/HtmlEditor/components/InAppPreviewPane/constants.js +33 -33
- package/v2Components/HtmlEditor/components/InAppPreviewPane/index.js +7 -6
- package/v2Components/HtmlEditor/components/PreviewPane/_previewPane.scss +7 -10
- package/v2Components/HtmlEditor/components/PreviewPane/index.js +22 -43
- package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +1 -1
- package/v2Components/HtmlEditor/components/ValidationErrorDisplay/_validationErrorDisplay.scss +18 -0
- package/v2Components/HtmlEditor/components/ValidationErrorDisplay/index.js +36 -31
- package/v2Components/HtmlEditor/components/ValidationPanel/_validationPanel.scss +46 -34
- package/v2Components/HtmlEditor/components/ValidationPanel/constants.js +6 -0
- package/v2Components/HtmlEditor/components/ValidationPanel/index.js +52 -46
- package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +277 -0
- package/v2Components/HtmlEditor/components/ValidationTabs/index.js +295 -0
- package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +51 -0
- package/v2Components/HtmlEditor/constants.js +45 -20
- package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +373 -16
- package/v2Components/HtmlEditor/hooks/__tests__/useValidation.test.js +351 -16
- package/v2Components/HtmlEditor/hooks/useEditorContent.js +5 -2
- package/v2Components/HtmlEditor/hooks/useInAppContent.js +88 -146
- package/v2Components/HtmlEditor/hooks/useValidation.js +213 -56
- package/v2Components/HtmlEditor/index.js +1 -1
- package/v2Components/HtmlEditor/messages.js +102 -94
- package/v2Components/HtmlEditor/utils/__tests__/htmlValidator.enhanced.test.js +214 -45
- package/v2Components/HtmlEditor/utils/__tests__/validationAdapter.test.js +134 -0
- package/v2Components/HtmlEditor/utils/contentSanitizer.js +40 -41
- package/v2Components/HtmlEditor/utils/htmlValidator.js +71 -72
- package/v2Components/HtmlEditor/utils/liquidTemplateSupport.js +158 -124
- package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +23 -25
- package/v2Components/HtmlEditor/utils/validationAdapter.js +66 -41
- package/v2Components/HtmlEditor/utils/validationConstants.js +38 -0
- package/v2Components/MobilePushPreviewV2/constants.js +6 -0
- package/v2Components/MobilePushPreviewV2/index.js +33 -7
- package/v2Components/TemplatePreview/_templatePreview.scss +55 -24
- package/v2Components/TemplatePreview/index.js +47 -32
- package/v2Components/TemplatePreview/messages.js +4 -0
- package/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +1 -0
- package/v2Containers/BeeEditor/index.js +172 -90
- package/v2Containers/BeePopupEditor/_beePopupEditor.scss +14 -0
- package/v2Containers/BeePopupEditor/constants.js +10 -0
- package/v2Containers/BeePopupEditor/index.js +194 -0
- package/v2Containers/BeePopupEditor/tests/index.test.js +627 -0
- package/v2Containers/CreativesContainer/SlideBoxContent.js +127 -51
- package/v2Containers/CreativesContainer/SlideBoxFooter.js +156 -13
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +2 -1
- package/v2Containers/CreativesContainer/constants.js +1 -0
- package/v2Containers/CreativesContainer/index.js +251 -47
- package/v2Containers/CreativesContainer/messages.js +8 -0
- package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +11 -2
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +38 -50
- package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +103 -0
- package/v2Containers/Email/actions.js +7 -0
- package/v2Containers/Email/constants.js +5 -1
- package/v2Containers/Email/index.js +234 -29
- package/v2Containers/Email/messages.js +32 -0
- package/v2Containers/Email/reducer.js +12 -1
- package/v2Containers/Email/sagas.js +61 -7
- package/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +2 -0
- package/v2Containers/Email/tests/reducer.test.js +46 -0
- package/v2Containers/Email/tests/sagas.test.js +320 -29
- package/v2Containers/EmailWrapper/components/EmailHTMLEditor.js +1246 -0
- package/v2Containers/EmailWrapper/components/EmailWrapperView.js +212 -21
- package/v2Containers/EmailWrapper/components/HTMLEditorTesting.js +40 -74
- package/v2Containers/EmailWrapper/components/__tests__/EmailHTMLEditor.test.js +2472 -0
- package/v2Containers/EmailWrapper/components/__tests__/EmailWrapperView.test.js +520 -0
- package/v2Containers/EmailWrapper/components/__tests__/HTMLEditorTesting.test.js +2 -67
- package/v2Containers/EmailWrapper/constants.js +2 -0
- package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +627 -79
- package/v2Containers/EmailWrapper/index.js +103 -23
- package/v2Containers/EmailWrapper/messages.js +65 -1
- package/v2Containers/EmailWrapper/tests/useEmailWrapper.edgeCases.test.js +955 -0
- package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +596 -82
- package/v2Containers/InApp/__tests__/InAppHTMLEditor.test.js +376 -0
- package/v2Containers/InApp/__tests__/sagas.test.js +363 -0
- package/v2Containers/InApp/actions.js +7 -0
- package/v2Containers/InApp/constants.js +20 -4
- package/v2Containers/InApp/index.js +802 -360
- package/v2Containers/InApp/index.scss +4 -3
- package/v2Containers/InApp/messages.js +7 -3
- package/v2Containers/InApp/reducer.js +21 -3
- package/v2Containers/InApp/sagas.js +29 -9
- package/v2Containers/InApp/selectors.js +25 -5
- package/v2Containers/InApp/tests/index.test.js +154 -50
- package/v2Containers/InApp/tests/reducer.test.js +34 -0
- package/v2Containers/InApp/tests/sagas.test.js +61 -9
- package/v2Containers/InApp/tests/selectors.test.js +612 -0
- package/v2Containers/InAppWrapper/components/InAppWrapperView.js +151 -0
- package/v2Containers/InAppWrapper/components/__tests__/InAppWrapperView.test.js +267 -0
- package/v2Containers/InAppWrapper/components/inAppWrapperView.scss +23 -0
- package/v2Containers/InAppWrapper/constants.js +16 -0
- package/v2Containers/InAppWrapper/hooks/__tests__/useInAppWrapper.test.js +473 -0
- package/v2Containers/InAppWrapper/hooks/useInAppWrapper.js +198 -0
- package/v2Containers/InAppWrapper/index.js +148 -0
- package/v2Containers/InAppWrapper/messages.js +49 -0
- package/v2Containers/InappAdvance/index.js +1099 -0
- package/v2Containers/InappAdvance/index.scss +10 -0
- package/v2Containers/InappAdvance/tests/index.test.js +448 -0
- package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +3 -0
- package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +2 -0
- package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +2 -0
- package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +9 -0
- package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +12 -0
- package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +4 -0
- package/v2Containers/TagList/index.js +62 -19
- package/v2Containers/Templates/_templates.scss +60 -1
- package/v2Containers/Templates/index.js +89 -4
- package/v2Containers/Templates/messages.js +4 -0
- package/v2Containers/TemplatesV2/TemplatesV2.style.js +4 -2
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +34 -0
- package/v2Components/HtmlEditor/components/ValidationErrorDisplay/__tests__/index.test.js +0 -152
- package/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +0 -214
|
@@ -13,321 +13,329 @@ export default defineMessages({
|
|
|
13
13
|
// Main component messages
|
|
14
14
|
initializing: {
|
|
15
15
|
id: `${scope}.initializing`,
|
|
16
|
-
defaultMessage: 'Initializing HTML Editor...'
|
|
16
|
+
defaultMessage: 'Initializing HTML Editor...',
|
|
17
17
|
},
|
|
18
18
|
|
|
19
19
|
// Label insertion messages
|
|
20
20
|
addLabel: {
|
|
21
21
|
id: `${scope}.addLabel`,
|
|
22
|
-
defaultMessage: 'Add label'
|
|
22
|
+
defaultMessage: 'Add label',
|
|
23
23
|
},
|
|
24
24
|
labelInserted: {
|
|
25
25
|
id: `${scope}.labelInserted`,
|
|
26
|
-
defaultMessage: 'Label inserted successfully'
|
|
26
|
+
defaultMessage: 'Label inserted successfully',
|
|
27
27
|
},
|
|
28
28
|
labelInsertedDescription: {
|
|
29
29
|
id: `${scope}.labelInsertedDescription`,
|
|
30
|
-
defaultMessage: 'The label "{label}" has been inserted at the cursor position'
|
|
30
|
+
defaultMessage: 'The label "{label}" has been inserted at the cursor position',
|
|
31
31
|
},
|
|
32
32
|
labelInsertError: {
|
|
33
33
|
id: `${scope}.labelInsertError`,
|
|
34
|
-
defaultMessage: 'Failed to insert label'
|
|
34
|
+
defaultMessage: 'Failed to insert label',
|
|
35
35
|
},
|
|
36
36
|
editorNotReady: {
|
|
37
37
|
id: `${scope}.editorNotReady`,
|
|
38
|
-
defaultMessage: 'Editor is not ready. Please try again.'
|
|
38
|
+
defaultMessage: 'Editor is not ready. Please try again.',
|
|
39
39
|
},
|
|
40
40
|
editorMethodNotAvailable: {
|
|
41
41
|
id: `${scope}.editorMethodNotAvailable`,
|
|
42
|
-
defaultMessage: 'Editor method not available. Please refresh and try again.'
|
|
42
|
+
defaultMessage: 'Editor method not available. Please refresh and try again.',
|
|
43
43
|
},
|
|
44
44
|
|
|
45
45
|
// Save messages
|
|
46
46
|
contentSaved: {
|
|
47
47
|
id: `${scope}.contentSaved`,
|
|
48
|
-
defaultMessage: 'Content saved successfully'
|
|
48
|
+
defaultMessage: 'Content saved successfully',
|
|
49
49
|
},
|
|
50
50
|
saveError: {
|
|
51
51
|
id: `${scope}.saveError`,
|
|
52
|
-
defaultMessage: 'Failed to save content'
|
|
52
|
+
defaultMessage: 'Failed to save content',
|
|
53
53
|
},
|
|
54
54
|
autoSaveEnabled: {
|
|
55
55
|
id: `${scope}.autoSaveEnabled`,
|
|
56
|
-
defaultMessage: 'Auto-save is enabled'
|
|
56
|
+
defaultMessage: 'Auto-save is enabled',
|
|
57
57
|
},
|
|
58
58
|
autoSaveDisabled: {
|
|
59
59
|
id: `${scope}.autoSaveDisabled`,
|
|
60
|
-
defaultMessage: 'Auto-save is disabled'
|
|
60
|
+
defaultMessage: 'Auto-save is disabled',
|
|
61
61
|
},
|
|
62
62
|
|
|
63
63
|
// Editor toolbar messages
|
|
64
64
|
htmlEditor: {
|
|
65
65
|
id: `${scope}.htmlEditor`,
|
|
66
|
-
defaultMessage: 'Email content'
|
|
66
|
+
defaultMessage: 'Email content',
|
|
67
67
|
},
|
|
68
68
|
desktop: {
|
|
69
69
|
id: `${scope}.desktop`,
|
|
70
|
-
defaultMessage: 'Desktop'
|
|
70
|
+
defaultMessage: 'Desktop',
|
|
71
71
|
},
|
|
72
72
|
mobile: {
|
|
73
73
|
id: `${scope}.mobile`,
|
|
74
|
-
defaultMessage: 'Mobile'
|
|
74
|
+
defaultMessage: 'Mobile',
|
|
75
75
|
},
|
|
76
76
|
mobileDevice: {
|
|
77
77
|
id: `${scope}.mobileDevice`,
|
|
78
|
-
defaultMessage: 'Mobile Device'
|
|
78
|
+
defaultMessage: 'Mobile Device',
|
|
79
79
|
},
|
|
80
80
|
htmlPreview: {
|
|
81
81
|
id: `${scope}.htmlPreview`,
|
|
82
|
-
defaultMessage: 'HTML Preview'
|
|
83
|
-
},
|
|
84
|
-
startTypingHtml: {
|
|
85
|
-
id: `${scope}.startTypingHtml`,
|
|
86
|
-
defaultMessage: 'Start typing HTML to see the preview'
|
|
87
|
-
},
|
|
88
|
-
previewMode: {
|
|
89
|
-
id: `${scope}.previewMode`,
|
|
90
|
-
defaultMessage: 'Preview Mode'
|
|
82
|
+
defaultMessage: 'HTML Preview',
|
|
91
83
|
},
|
|
92
84
|
fullscreen: {
|
|
93
85
|
id: `${scope}.fullscreen`,
|
|
94
|
-
defaultMessage: 'Fullscreen'
|
|
86
|
+
defaultMessage: 'Fullscreen',
|
|
95
87
|
},
|
|
96
88
|
enterFullscreen: {
|
|
97
89
|
id: `${scope}.enterFullscreen`,
|
|
98
|
-
defaultMessage: 'Enter Fullscreen'
|
|
90
|
+
defaultMessage: 'Enter Fullscreen',
|
|
99
91
|
},
|
|
100
92
|
exitFullscreen: {
|
|
101
93
|
id: `${scope}.exitFullscreen`,
|
|
102
|
-
defaultMessage: 'Exit Fullscreen'
|
|
94
|
+
defaultMessage: 'Exit Fullscreen',
|
|
103
95
|
},
|
|
104
96
|
save: {
|
|
105
97
|
id: `${scope}.save`,
|
|
106
|
-
defaultMessage: 'Save'
|
|
98
|
+
defaultMessage: 'Save',
|
|
107
99
|
},
|
|
108
100
|
|
|
109
101
|
// Editor tabs messages
|
|
110
102
|
htmlTab: {
|
|
111
103
|
id: `${scope}.htmlTab`,
|
|
112
|
-
defaultMessage: 'HTML'
|
|
104
|
+
defaultMessage: 'HTML',
|
|
113
105
|
},
|
|
114
106
|
cssTab: {
|
|
115
107
|
id: `${scope}.cssTab`,
|
|
116
|
-
defaultMessage: 'CSS'
|
|
108
|
+
defaultMessage: 'CSS',
|
|
117
109
|
},
|
|
118
110
|
javascriptTab: {
|
|
119
111
|
id: `${scope}.javascriptTab`,
|
|
120
|
-
defaultMessage: 'JavaScript'
|
|
112
|
+
defaultMessage: 'JavaScript',
|
|
121
113
|
},
|
|
122
114
|
|
|
123
115
|
// Preview messages
|
|
124
116
|
previewTitle: {
|
|
125
117
|
id: `${scope}.previewTitle`,
|
|
126
|
-
defaultMessage: 'Preview'
|
|
118
|
+
defaultMessage: 'Preview',
|
|
127
119
|
},
|
|
128
120
|
previewLoading: {
|
|
129
121
|
id: `${scope}.previewLoading`,
|
|
130
|
-
defaultMessage: 'Loading preview...'
|
|
122
|
+
defaultMessage: 'Loading preview...',
|
|
131
123
|
},
|
|
132
124
|
previewError: {
|
|
133
125
|
id: `${scope}.previewError`,
|
|
134
|
-
defaultMessage: 'Preview error'
|
|
135
|
-
},
|
|
136
|
-
previewEmpty: {
|
|
137
|
-
id: `${scope}.previewEmpty`,
|
|
138
|
-
defaultMessage: 'Start typing HTML to see the preview'
|
|
126
|
+
defaultMessage: 'Preview error',
|
|
139
127
|
},
|
|
140
128
|
refreshPreview: {
|
|
141
129
|
id: `${scope}.refreshPreview`,
|
|
142
|
-
defaultMessage: 'Refresh Preview'
|
|
130
|
+
defaultMessage: 'Refresh Preview',
|
|
143
131
|
},
|
|
144
132
|
|
|
145
133
|
// Mobile device preview messages
|
|
146
134
|
android: {
|
|
147
135
|
id: `${scope}.android`,
|
|
148
|
-
defaultMessage: 'Android'
|
|
136
|
+
defaultMessage: 'Android',
|
|
149
137
|
},
|
|
150
138
|
ios: {
|
|
151
139
|
id: `${scope}.ios`,
|
|
152
|
-
defaultMessage: 'iOS'
|
|
140
|
+
defaultMessage: 'iOS',
|
|
153
141
|
},
|
|
154
142
|
devicePreview: {
|
|
155
143
|
id: `${scope}.devicePreview`,
|
|
156
|
-
defaultMessage: 'Device Preview'
|
|
144
|
+
defaultMessage: 'Device Preview',
|
|
157
145
|
},
|
|
158
146
|
|
|
159
147
|
// InApp variant messages
|
|
160
148
|
inAppEditor: {
|
|
161
149
|
id: `${scope}.inAppEditor`,
|
|
162
|
-
defaultMessage: 'In-app content'
|
|
150
|
+
defaultMessage: 'In-app content',
|
|
163
151
|
},
|
|
164
152
|
keepContentSameForBoth: {
|
|
165
153
|
id: `${scope}.keepContentSameForBoth`,
|
|
166
|
-
defaultMessage: 'Keep content same for both'
|
|
154
|
+
defaultMessage: 'Keep content same for both',
|
|
167
155
|
},
|
|
168
156
|
|
|
169
157
|
// Validation messages
|
|
170
158
|
validationErrors: {
|
|
171
159
|
id: `${scope}.validationErrors`,
|
|
172
|
-
defaultMessage: '{count} validation {count, plural, one {error} other {errors}}'
|
|
160
|
+
defaultMessage: '{count} validation {count, plural, one {error} other {errors}}',
|
|
173
161
|
},
|
|
174
162
|
validationWarnings: {
|
|
175
163
|
id: `${scope}.validationWarnings`,
|
|
176
|
-
defaultMessage: '{count} validation {count, plural, one {warning} other {warnings}}'
|
|
164
|
+
defaultMessage: '{count} validation {count, plural, one {warning} other {warnings}}',
|
|
177
165
|
},
|
|
178
166
|
noValidationIssues: {
|
|
179
167
|
id: `${scope}.noValidationIssues`,
|
|
180
|
-
defaultMessage: 'No validation issues'
|
|
168
|
+
defaultMessage: 'No validation issues',
|
|
181
169
|
},
|
|
182
170
|
showProblems: {
|
|
183
171
|
id: `${scope}.showProblems`,
|
|
184
|
-
defaultMessage: 'Show Problems'
|
|
172
|
+
defaultMessage: 'Show Problems',
|
|
185
173
|
},
|
|
186
174
|
hideProblems: {
|
|
187
175
|
id: `${scope}.hideProblems`,
|
|
188
|
-
defaultMessage: 'Hide Problems'
|
|
176
|
+
defaultMessage: 'Hide Problems',
|
|
189
177
|
},
|
|
190
178
|
|
|
191
179
|
// Error messages
|
|
192
180
|
securityError: {
|
|
193
181
|
id: `${scope}.securityError`,
|
|
194
|
-
defaultMessage: 'Security Error'
|
|
182
|
+
defaultMessage: 'Security Error',
|
|
195
183
|
},
|
|
196
184
|
runtimeError: {
|
|
197
185
|
id: `${scope}.runtimeError`,
|
|
198
|
-
defaultMessage: 'Runtime Error'
|
|
186
|
+
defaultMessage: 'Runtime Error',
|
|
199
187
|
},
|
|
200
188
|
renderError: {
|
|
201
189
|
id: `${scope}.renderError`,
|
|
202
|
-
defaultMessage: 'Render Error'
|
|
190
|
+
defaultMessage: 'Render Error',
|
|
203
191
|
},
|
|
204
192
|
clearErrors: {
|
|
205
193
|
id: `${scope}.clearErrors`,
|
|
206
|
-
defaultMessage: 'Clear Errors'
|
|
194
|
+
defaultMessage: 'Clear Errors',
|
|
207
195
|
},
|
|
208
196
|
copyError: {
|
|
209
197
|
id: `${scope}.copyError`,
|
|
210
|
-
defaultMessage: 'Copy Error Details'
|
|
198
|
+
defaultMessage: 'Copy Error Details',
|
|
211
199
|
},
|
|
212
200
|
errorCopied: {
|
|
213
201
|
id: `${scope}.errorCopied`,
|
|
214
|
-
defaultMessage: 'Error details copied to clipboard'
|
|
202
|
+
defaultMessage: 'Error details copied to clipboard',
|
|
203
|
+
},
|
|
204
|
+
|
|
205
|
+
// Placeholder messages
|
|
206
|
+
editorPlaceholderEmail: {
|
|
207
|
+
id: `${scope}.editorPlaceholderEmail`,
|
|
208
|
+
defaultMessage: 'Write your HTML email code here...',
|
|
209
|
+
},
|
|
210
|
+
editorPlaceholderInapp: {
|
|
211
|
+
id: `${scope}.editorPlaceholderInapp`,
|
|
212
|
+
defaultMessage: 'Write your HTML inapp code here...',
|
|
215
213
|
},
|
|
216
214
|
|
|
217
215
|
// Accessibility messages
|
|
218
216
|
codeEditor: {
|
|
219
217
|
id: `${scope}.codeEditor`,
|
|
220
|
-
defaultMessage: 'Email Editor'
|
|
218
|
+
defaultMessage: 'Email Editor',
|
|
221
219
|
},
|
|
222
220
|
previewPanel: {
|
|
223
221
|
id: `${scope}.previewPanel`,
|
|
224
|
-
defaultMessage: 'Preview Panel'
|
|
222
|
+
defaultMessage: 'Preview Panel',
|
|
225
223
|
},
|
|
226
224
|
resizeHandle: {
|
|
227
225
|
id: `${scope}.resizeHandle`,
|
|
228
|
-
defaultMessage: 'Drag to resize panels'
|
|
226
|
+
defaultMessage: 'Drag to resize panels',
|
|
229
227
|
},
|
|
230
228
|
splitPanels: {
|
|
231
229
|
id: `${scope}.splitPanels`,
|
|
232
|
-
defaultMessage: 'Split panels - code editor and preview'
|
|
230
|
+
defaultMessage: 'Split panels - code editor and preview',
|
|
233
231
|
},
|
|
234
232
|
|
|
235
233
|
// Performance messages
|
|
236
234
|
optimizing: {
|
|
237
235
|
id: `${scope}.optimizing`,
|
|
238
|
-
defaultMessage: 'Optimizing performance...'
|
|
236
|
+
defaultMessage: 'Optimizing performance...',
|
|
239
237
|
},
|
|
240
238
|
performanceWarning: {
|
|
241
239
|
id: `${scope}.performanceWarning`,
|
|
242
|
-
defaultMessage: 'Large content detected. Performance may be affected.'
|
|
240
|
+
defaultMessage: 'Large content detected. Performance may be affected.',
|
|
243
241
|
},
|
|
244
242
|
|
|
245
243
|
// Feature messages
|
|
246
244
|
autoSave: {
|
|
247
245
|
id: `${scope}.autoSave`,
|
|
248
|
-
defaultMessage: 'Auto-save'
|
|
246
|
+
defaultMessage: 'Auto-save',
|
|
249
247
|
},
|
|
250
248
|
lastSaved: {
|
|
251
249
|
id: `${scope}.lastSaved`,
|
|
252
|
-
defaultMessage: 'Last saved: {time}'
|
|
250
|
+
defaultMessage: 'Last saved: {time}',
|
|
253
251
|
},
|
|
254
252
|
unsavedChanges: {
|
|
255
253
|
id: `${scope}.unsavedChanges`,
|
|
256
|
-
defaultMessage: 'You have unsaved changes'
|
|
254
|
+
defaultMessage: 'You have unsaved changes',
|
|
257
255
|
},
|
|
258
256
|
|
|
259
257
|
// Content Sanitizer messages
|
|
260
258
|
sanitizer: {
|
|
261
259
|
invalidInput: {
|
|
262
260
|
id: `${scope}.sanitizer.invalidInput`,
|
|
263
|
-
defaultMessage: 'Invalid input: HTML content must be a string'
|
|
261
|
+
defaultMessage: 'Invalid input: HTML content must be a string',
|
|
264
262
|
},
|
|
265
263
|
invalidInputNonEmpty: {
|
|
266
264
|
id: `${scope}.sanitizer.invalidInputNonEmpty`,
|
|
267
|
-
defaultMessage: 'Invalid input: HTML content must be a non-empty string'
|
|
265
|
+
defaultMessage: 'Invalid input: HTML content must be a non-empty string',
|
|
268
266
|
},
|
|
269
267
|
sanitizationFailed: {
|
|
270
268
|
id: `${scope}.sanitizer.sanitizationFailed`,
|
|
271
|
-
defaultMessage: 'Sanitization failed: {error}'
|
|
269
|
+
defaultMessage: 'Sanitization failed: {error}',
|
|
272
270
|
},
|
|
273
271
|
dangerousProtocolDetected: {
|
|
274
272
|
id: `${scope}.sanitizer.dangerousProtocolDetected`,
|
|
275
|
-
defaultMessage: 'Dangerous protocol detected'
|
|
273
|
+
defaultMessage: 'Dangerous protocol detected',
|
|
276
274
|
},
|
|
277
275
|
|
|
278
276
|
// Email compatibility warnings
|
|
279
277
|
emailMultimediaNotSupported: {
|
|
280
278
|
id: `${scope}.sanitizer.emailMultimediaNotSupported`,
|
|
281
|
-
defaultMessage: 'Video/audio/canvas elements may not be supported in email clients'
|
|
279
|
+
defaultMessage: 'Video/audio/canvas elements may not be supported in email clients',
|
|
282
280
|
},
|
|
283
281
|
emailPositioningNotSupported: {
|
|
284
282
|
id: `${scope}.sanitizer.emailPositioningNotSupported`,
|
|
285
|
-
defaultMessage: 'Fixed/sticky positioning may not work in email clients'
|
|
283
|
+
defaultMessage: 'Fixed/sticky positioning may not work in email clients',
|
|
286
284
|
},
|
|
287
285
|
emailModernCssLimited: {
|
|
288
286
|
id: `${scope}.sanitizer.emailModernCssLimited`,
|
|
289
|
-
defaultMessage: 'CSS Grid and Flexbox have limited support in email clients'
|
|
287
|
+
defaultMessage: 'CSS Grid and Flexbox have limited support in email clients',
|
|
290
288
|
},
|
|
291
289
|
emailViewportUnitsNotSupported: {
|
|
292
290
|
id: `${scope}.sanitizer.emailViewportUnitsNotSupported`,
|
|
293
|
-
defaultMessage: 'Viewport units and rem may not be supported in all email clients'
|
|
291
|
+
defaultMessage: 'Viewport units and rem may not be supported in all email clients',
|
|
294
292
|
},
|
|
295
293
|
|
|
296
294
|
// Mobile optimization warnings
|
|
297
295
|
mobileTablesNotFriendly: {
|
|
298
296
|
id: `${scope}.sanitizer.mobileTablesNotFriendly`,
|
|
299
|
-
defaultMessage: 'Tables may not be mobile-friendly - consider using flexbox or grid'
|
|
297
|
+
defaultMessage: 'Tables may not be mobile-friendly - consider using flexbox or grid',
|
|
300
298
|
},
|
|
301
299
|
mobileRelativeFontSizes: {
|
|
302
300
|
id: `${scope}.sanitizer.mobileRelativeFontSizes`,
|
|
303
|
-
defaultMessage: 'Consider using relative font sizes (em, rem, %) for better mobile scaling'
|
|
301
|
+
defaultMessage: 'Consider using relative font sizes (em, rem, %) for better mobile scaling',
|
|
304
302
|
},
|
|
305
303
|
mobileFixedWidthsProblematic: {
|
|
306
304
|
id: `${scope}.sanitizer.mobileFixedWidthsProblematic`,
|
|
307
|
-
defaultMessage: 'Large fixed widths may not work well on mobile devices'
|
|
305
|
+
defaultMessage: 'Large fixed widths may not work well on mobile devices',
|
|
308
306
|
},
|
|
309
307
|
mobileRelativeUnits: {
|
|
310
308
|
id: `${scope}.sanitizer.mobileRelativeUnits`,
|
|
311
|
-
defaultMessage: 'Consider using relative units (rem, em, %) for better mobile responsiveness'
|
|
309
|
+
defaultMessage: 'Consider using relative units (rem, em, %) for better mobile responsiveness',
|
|
312
310
|
},
|
|
313
311
|
|
|
314
312
|
// Production recommendations
|
|
315
313
|
productionValidHtml: {
|
|
316
314
|
id: `${scope}.sanitizer.productionValidHtml`,
|
|
317
|
-
defaultMessage: 'Provide valid HTML content before deploying to production'
|
|
315
|
+
defaultMessage: 'Provide valid HTML content before deploying to production',
|
|
318
316
|
},
|
|
319
317
|
productionSanitized: {
|
|
320
318
|
id: `${scope}.sanitizer.productionSanitized`,
|
|
321
|
-
defaultMessage: 'Content has been sanitized for security - review changes before deploying'
|
|
319
|
+
defaultMessage: 'Content has been sanitized for security - review changes before deploying',
|
|
322
320
|
},
|
|
323
321
|
productionInlineCss: {
|
|
324
322
|
id: `${scope}.sanitizer.productionInlineCss`,
|
|
325
|
-
defaultMessage: 'Consider inlining CSS for better email client compatibility'
|
|
323
|
+
defaultMessage: 'Consider inlining CSS for better email client compatibility',
|
|
326
324
|
},
|
|
327
325
|
productionLargeContent: {
|
|
328
326
|
id: `${scope}.sanitizer.productionLargeContent`,
|
|
329
|
-
defaultMessage: 'Content is large ({size} characters) - consider optimizing for mobile performance'
|
|
330
|
-
}
|
|
327
|
+
defaultMessage: 'Content is large ({size} characters) - consider optimizing for mobile performance',
|
|
328
|
+
},
|
|
329
|
+
},
|
|
330
|
+
|
|
331
|
+
htmlEditorTooltip: {
|
|
332
|
+
id: `${scope}.htmlEditorTooltip`,
|
|
333
|
+
defaultMessage: 'This editor supports standard HTML for emails. Avoid CSS frameworks, external stylesheets, and scripts. {docLink}',
|
|
334
|
+
},
|
|
335
|
+
|
|
336
|
+
viewDocumentation: {
|
|
337
|
+
id: `${scope}.viewDocumentation`,
|
|
338
|
+
defaultMessage: 'View documentation',
|
|
331
339
|
},
|
|
332
340
|
|
|
333
341
|
// HTML Validator messages
|
|
@@ -335,55 +343,55 @@ export default defineMessages({
|
|
|
335
343
|
// General validation messages
|
|
336
344
|
validationFailed: {
|
|
337
345
|
id: `${scope}.validator.validationFailed`,
|
|
338
|
-
defaultMessage: 'Validation failed: {error}'
|
|
346
|
+
defaultMessage: 'Validation failed: {error}',
|
|
339
347
|
},
|
|
340
348
|
liquidValidationFailed: {
|
|
341
349
|
id: `${scope}.validator.liquidValidationFailed`,
|
|
342
|
-
defaultMessage: 'Liquid validation failed'
|
|
350
|
+
defaultMessage: 'Liquid validation failed',
|
|
343
351
|
},
|
|
344
352
|
|
|
345
353
|
// Security validation messages
|
|
346
354
|
unsafeProtocolDetected: {
|
|
347
355
|
id: `${scope}.validator.unsafeProtocolDetected`,
|
|
348
|
-
defaultMessage: 'Potentially unsafe protocol detected: {protocol}'
|
|
356
|
+
defaultMessage: 'Potentially unsafe protocol detected: {protocol}',
|
|
349
357
|
},
|
|
350
358
|
scriptTagsDetected: {
|
|
351
359
|
id: `${scope}.validator.scriptTagsDetected`,
|
|
352
|
-
defaultMessage: 'Script tags detected - may be filtered in production'
|
|
360
|
+
defaultMessage: 'Script tags detected - may be filtered in production',
|
|
353
361
|
},
|
|
354
362
|
|
|
355
363
|
// Email-specific validation messages
|
|
356
364
|
outlookIncompatible: {
|
|
357
365
|
id: `${scope}.validator.outlookIncompatible`,
|
|
358
|
-
defaultMessage: 'Element may not be supported in Outlook: {element}'
|
|
366
|
+
defaultMessage: 'Element may not be supported in Outlook: {element}',
|
|
359
367
|
},
|
|
360
368
|
emailCssUnsupported: {
|
|
361
369
|
id: `${scope}.validator.emailCssUnsupported`,
|
|
362
|
-
defaultMessage: 'CSS feature may not be supported in email clients'
|
|
370
|
+
defaultMessage: 'CSS feature may not be supported in email clients',
|
|
363
371
|
},
|
|
364
372
|
|
|
365
373
|
// Mobile/InApp validation messages
|
|
366
374
|
mobileIncompatible: {
|
|
367
375
|
id: `${scope}.validator.mobileIncompatible`,
|
|
368
|
-
defaultMessage: 'Element may not be supported on mobile: {element}'
|
|
376
|
+
defaultMessage: 'Element may not be supported on mobile: {element}',
|
|
369
377
|
},
|
|
370
378
|
largeImageDetected: {
|
|
371
379
|
id: `${scope}.validator.largeImageDetected`,
|
|
372
|
-
defaultMessage: 'Large image dimensions detected - consider mobile optimization'
|
|
380
|
+
defaultMessage: 'Large image dimensions detected - consider mobile optimization',
|
|
373
381
|
},
|
|
374
382
|
|
|
375
383
|
// CSS validation messages
|
|
376
384
|
unclosedCssRule: {
|
|
377
385
|
id: `${scope}.validator.unclosedCssRule`,
|
|
378
|
-
defaultMessage: 'Unclosed CSS rule detected'
|
|
386
|
+
defaultMessage: 'Unclosed CSS rule detected',
|
|
379
387
|
},
|
|
380
388
|
emptyCssRule: {
|
|
381
389
|
id: `${scope}.validator.emptyCssRule`,
|
|
382
|
-
defaultMessage: 'Empty CSS rule detected'
|
|
390
|
+
defaultMessage: 'Empty CSS rule detected',
|
|
383
391
|
},
|
|
384
392
|
cssValidationFailed: {
|
|
385
393
|
id: `${scope}.validator.cssValidationFailed`,
|
|
386
|
-
defaultMessage: 'CSS validation failed: {error}'
|
|
387
|
-
}
|
|
388
|
-
}
|
|
394
|
+
defaultMessage: 'CSS validation failed: {error}',
|
|
395
|
+
},
|
|
396
|
+
},
|
|
389
397
|
});
|