@capillarytech/creatives-library 8.0.242-alpha.0 → 8.0.242-alpha.10

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