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