@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.
- 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/sagas/__tests__/assetPolling.test.js +74 -3
- package/sagas/assetPolling.js +8 -1
- package/services/api.js +10 -5
- package/services/tests/api.test.js +18 -0
- package/translations/en.json +0 -1
- package/utils/common.js +5 -0
- package/utils/commonUtils.js +14 -1
- package/utils/tests/commonUtil.test.js +224 -0
- package/utils/transformTemplateConfig.js +0 -10
- package/utils/transformerUtils.js +0 -42
- package/v2Components/CapDeviceContent/index.js +61 -56
- package/v2Components/CapImageUpload/constants.js +0 -2
- package/v2Components/CapImageUpload/index.js +14 -54
- package/v2Components/CapImageUpload/index.scss +1 -4
- package/v2Components/CapImageUpload/messages.js +0 -4
- 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/index.js +412 -72
- package/v2Components/ErrorInfoNote/messages.js +22 -0
- package/v2Components/ErrorInfoNote/style.scss +279 -2
- package/v2Components/HtmlEditor/HTMLEditor.js +220 -91
- package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +1132 -133
- package/v2Components/HtmlEditor/__tests__/index.lazy.test.js +17 -12
- package/v2Components/HtmlEditor/_htmlEditor.scss +107 -45
- package/v2Components/HtmlEditor/_index.lazy.scss +1 -1
- package/v2Components/HtmlEditor/components/CodeEditorPane/_codeEditorPane.scss +13 -101
- package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +148 -139
- 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 -0
- package/v2Components/HtmlEditor/components/EditorToolbar/index.js +1 -1
- 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 +3 -6
- package/v2Components/HtmlEditor/components/PreviewPane/index.js +10 -11
- package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +1 -1
- package/v2Components/HtmlEditor/components/ValidationErrorDisplay/__tests__/index.test.js +70 -72
- package/v2Components/HtmlEditor/components/ValidationErrorDisplay/index.js +49 -31
- package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +254 -0
- package/v2Components/HtmlEditor/components/ValidationTabs/index.js +362 -0
- package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +51 -0
- package/v2Components/HtmlEditor/constants.js +29 -20
- package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +373 -16
- package/v2Components/HtmlEditor/hooks/useEditorContent.js +5 -2
- package/v2Components/HtmlEditor/hooks/useInAppContent.js +88 -146
- package/v2Components/HtmlEditor/index.js +1 -1
- package/v2Components/HtmlEditor/messages.js +95 -85
- package/v2Components/HtmlEditor/utils/liquidTemplateSupport.js +99 -101
- package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +23 -25
- package/v2Components/HtmlEditor/utils/validationAdapter.js +34 -41
- package/v2Components/MobilePushPreviewV2/index.js +32 -7
- package/v2Components/TemplatePreview/_templatePreview.scss +44 -24
- package/v2Components/TemplatePreview/index.js +47 -32
- package/v2Components/TemplatePreview/messages.js +4 -0
- package/v2Components/TestAndPreviewSlidebox/index.js +31 -25
- package/v2Containers/App/constants.js +0 -5
- package/v2Containers/BeeEditor/index.js +82 -80
- package/v2Containers/BeePopupEditor/constants.js +10 -0
- package/v2Containers/BeePopupEditor/index.js +193 -0
- package/v2Containers/BeePopupEditor/tests/index.test.js +627 -0
- package/v2Containers/Cap/tests/__snapshots__/index.test.js.snap +0 -1
- package/v2Containers/CreativesContainer/SlideBoxContent.js +148 -120
- package/v2Containers/CreativesContainer/SlideBoxFooter.js +9 -3
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +2 -2
- package/v2Containers/CreativesContainer/constants.js +1 -2
- package/v2Containers/CreativesContainer/index.js +173 -193
- package/v2Containers/CreativesContainer/messages.js +4 -4
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +38 -50
- package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +36 -0
- package/v2Containers/Email/actions.js +7 -0
- package/v2Containers/Email/constants.js +5 -1
- package/v2Containers/Email/index.js +13 -0
- package/v2Containers/Email/messages.js +32 -0
- package/v2Containers/Email/reducer.js +12 -1
- package/v2Containers/Email/sagas.js +41 -6
- package/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +2 -0
- package/v2Containers/EmailWrapper/components/EmailHTMLEditor.js +1046 -0
- package/v2Containers/EmailWrapper/components/EmailWrapperView.js +193 -7
- package/v2Containers/EmailWrapper/components/HTMLEditorTesting.js +40 -74
- package/v2Containers/EmailWrapper/components/__tests__/HTMLEditorTesting.test.js +2 -67
- package/v2Containers/EmailWrapper/constants.js +2 -0
- package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +436 -67
- package/v2Containers/EmailWrapper/index.js +99 -23
- package/v2Containers/EmailWrapper/messages.js +61 -1
- package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +111 -77
- 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 +801 -357
- 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 +162 -0
- package/v2Containers/InAppWrapper/components/__tests__/InAppWrapperView.test.js +267 -0
- package/v2Containers/InAppWrapper/components/inAppWrapperView.scss +9 -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 -3
- package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +2 -2
- package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +2 -25
- package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +9 -18
- package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +12 -46
- package/v2Containers/SmsTrai/Create/tests/__snapshots__/index.test.js.snap +0 -4
- package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +4 -8
- package/v2Containers/TagList/index.js +67 -1
- package/v2Containers/Templates/ChannelTypeIllustration.js +1 -13
- package/v2Containers/Templates/_templates.scss +56 -200
- package/v2Containers/Templates/actions.js +1 -2
- package/v2Containers/Templates/constants.js +0 -1
- package/v2Containers/Templates/index.js +124 -277
- package/v2Containers/Templates/messages.js +4 -24
- package/v2Containers/Templates/reducer.js +0 -2
- package/v2Containers/Templates/tests/index.test.js +0 -10
- package/v2Containers/TemplatesV2/index.js +2 -3
- package/v2Containers/TemplatesV2/messages.js +0 -4
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +35 -132
- package/v2Components/CapImageUrlUpload/constants.js +0 -19
- package/v2Components/CapImageUrlUpload/index.js +0 -455
- package/v2Components/CapImageUrlUpload/index.scss +0 -35
- package/v2Components/CapImageUrlUpload/messages.js +0 -47
- package/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +0 -214
- package/v2Containers/WebPush/Create/components/ButtonForm.js +0 -175
- package/v2Containers/WebPush/Create/components/ButtonItem.js +0 -101
- package/v2Containers/WebPush/Create/components/ButtonList.js +0 -144
- package/v2Containers/WebPush/Create/components/_buttons.scss +0 -246
- package/v2Containers/WebPush/Create/components/tests/ButtonForm.test.js +0 -554
- package/v2Containers/WebPush/Create/components/tests/ButtonItem.test.js +0 -607
- package/v2Containers/WebPush/Create/components/tests/ButtonList.test.js +0 -633
- package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonForm.test.js.snap +0 -666
- package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonItem.test.js.snap +0 -74
- package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonList.test.js.snap +0 -80
- package/v2Containers/WebPush/Create/index.js +0 -1755
- package/v2Containers/WebPush/Create/index.scss +0 -123
- package/v2Containers/WebPush/Create/messages.js +0 -199
- package/v2Containers/WebPush/Create/preview/DevicePreviewContent.js +0 -241
- package/v2Containers/WebPush/Create/preview/NotificationContainer.js +0 -290
- package/v2Containers/WebPush/Create/preview/PreviewContent.js +0 -81
- package/v2Containers/WebPush/Create/preview/PreviewControls.js +0 -240
- package/v2Containers/WebPush/Create/preview/PreviewDisclaimer.js +0 -23
- package/v2Containers/WebPush/Create/preview/WebPushPreview.js +0 -144
- package/v2Containers/WebPush/Create/preview/assets/Light.svg +0 -53
- package/v2Containers/WebPush/Create/preview/assets/Top.svg +0 -5
- package/v2Containers/WebPush/Create/preview/assets/chrome-icon.png +0 -0
- package/v2Containers/WebPush/Create/preview/assets/edge-icon.png +0 -0
- package/v2Containers/WebPush/Create/preview/assets/firefox-icon.svg +0 -106
- package/v2Containers/WebPush/Create/preview/assets/iOS.svg +0 -26
- package/v2Containers/WebPush/Create/preview/assets/opera-icon.svg +0 -18
- package/v2Containers/WebPush/Create/preview/assets/safari-icon.svg +0 -29
- package/v2Containers/WebPush/Create/preview/components/AndroidMobileChromeHeader.js +0 -44
- package/v2Containers/WebPush/Create/preview/components/AndroidMobileExpanded.js +0 -110
- package/v2Containers/WebPush/Create/preview/components/IOSHeader.js +0 -45
- package/v2Containers/WebPush/Create/preview/components/NotificationExpandedContent.js +0 -72
- package/v2Containers/WebPush/Create/preview/components/NotificationHeader.js +0 -55
- package/v2Containers/WebPush/Create/preview/components/WindowsChromeExpanded.js +0 -70
- package/v2Containers/WebPush/Create/preview/components/tests/AndroidMobileExpanded.test.js +0 -512
- package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/AndroidMobileExpanded.test.js.snap +0 -77
- package/v2Containers/WebPush/Create/preview/config/notificationMappings.js +0 -527
- package/v2Containers/WebPush/Create/preview/constants.js +0 -162
- package/v2Containers/WebPush/Create/preview/notification-container.scss +0 -104
- package/v2Containers/WebPush/Create/preview/preview.scss +0 -409
- package/v2Containers/WebPush/Create/preview/styles/_android-mobile-chrome.scss +0 -300
- package/v2Containers/WebPush/Create/preview/styles/_android-mobile-edge.scss +0 -12
- package/v2Containers/WebPush/Create/preview/styles/_android-mobile-firefox.scss +0 -12
- package/v2Containers/WebPush/Create/preview/styles/_android-mobile-opera.scss +0 -12
- package/v2Containers/WebPush/Create/preview/styles/_android-tablet-chrome.scss +0 -303
- package/v2Containers/WebPush/Create/preview/styles/_android-tablet-edge.scss +0 -11
- package/v2Containers/WebPush/Create/preview/styles/_android-tablet-firefox.scss +0 -11
- package/v2Containers/WebPush/Create/preview/styles/_android-tablet-opera.scss +0 -11
- package/v2Containers/WebPush/Create/preview/styles/_base.scss +0 -188
- package/v2Containers/WebPush/Create/preview/styles/_ios.scss +0 -106
- package/v2Containers/WebPush/Create/preview/styles/_ipados.scss +0 -107
- package/v2Containers/WebPush/Create/preview/styles/_macos-chrome.scss +0 -75
- package/v2Containers/WebPush/Create/preview/styles/_windows-chrome.scss +0 -174
- package/v2Containers/WebPush/Create/preview/tests/DevicePreviewContent.test.js +0 -909
- package/v2Containers/WebPush/Create/preview/tests/NotificationContainer.test.js +0 -1077
- package/v2Containers/WebPush/Create/preview/tests/PreviewControls.test.js +0 -723
- package/v2Containers/WebPush/Create/preview/tests/WebPushPreview.test.js +0 -943
- package/v2Containers/WebPush/Create/preview/tests/__snapshots__/DevicePreviewContent.test.js.snap +0 -128
- package/v2Containers/WebPush/Create/preview/tests/__snapshots__/NotificationContainer.test.js.snap +0 -121
- package/v2Containers/WebPush/Create/preview/tests/__snapshots__/PreviewControls.test.js.snap +0 -144
- package/v2Containers/WebPush/Create/preview/tests/__snapshots__/WebPushPreview.test.js.snap +0 -127
- package/v2Containers/WebPush/Create/utils/urlValidation.js +0 -116
- package/v2Containers/WebPush/Create/utils/urlValidation.test.js +0 -449
- package/v2Containers/WebPush/actions.js +0 -60
- package/v2Containers/WebPush/constants.js +0 -108
- package/v2Containers/WebPush/index.js +0 -2
- package/v2Containers/WebPush/reducer.js +0 -104
- package/v2Containers/WebPush/sagas.js +0 -119
- package/v2Containers/WebPush/selectors.js +0 -65
- package/v2Containers/WebPush/tests/reducer.test.js +0 -863
- package/v2Containers/WebPush/tests/sagas.test.js +0 -566
- package/v2Containers/WebPush/tests/selectors.test.js +0 -960
|
@@ -9,19 +9,23 @@ import { render, screen, waitFor } from '@testing-library/react';
|
|
|
9
9
|
import '@testing-library/jest-dom';
|
|
10
10
|
|
|
11
11
|
// Mock CapSpin before importing the component
|
|
12
|
-
jest.mock('@capillarytech/cap-ui-library/CapSpin', () => {
|
|
13
|
-
return
|
|
14
|
-
return <div data-testid="cap-spin" data-size={size}>Loading...</div>;
|
|
15
|
-
};
|
|
12
|
+
jest.mock('@capillarytech/cap-ui-library/CapSpin', () => function MockCapSpin({ size }) {
|
|
13
|
+
return <div data-testid="cap-spin" data-size={size}>Loading...</div>;
|
|
16
14
|
});
|
|
17
15
|
|
|
18
16
|
// Mock the HTMLEditor component
|
|
19
17
|
jest.mock('../HTMLEditor', () => {
|
|
18
|
+
const MockHTMLEditor = function MockHTMLEditor(props) {
|
|
19
|
+
return (
|
|
20
|
+
<div data-testid="html-editor">
|
|
21
|
+
Mock HTML Editor -
|
|
22
|
+
{props.variant}
|
|
23
|
+
</div>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
20
26
|
return {
|
|
21
27
|
__esModule: true,
|
|
22
|
-
default:
|
|
23
|
-
return <div data-testid="html-editor">Mock HTML Editor - {props.variant}</div>;
|
|
24
|
-
}
|
|
28
|
+
default: MockHTMLEditor,
|
|
25
29
|
};
|
|
26
30
|
});
|
|
27
31
|
|
|
@@ -113,7 +117,8 @@ describe('index.lazy.js', () => {
|
|
|
113
117
|
expect(screen.getByTestId('html-editor')).toBeInTheDocument();
|
|
114
118
|
});
|
|
115
119
|
|
|
116
|
-
|
|
120
|
+
const editor = screen.getByTestId('html-editor');
|
|
121
|
+
expect(editor.textContent).toBe('Mock HTML Editor -email');
|
|
117
122
|
});
|
|
118
123
|
|
|
119
124
|
it('shows fallback while loading', async () => {
|
|
@@ -134,7 +139,7 @@ describe('index.lazy.js', () => {
|
|
|
134
139
|
<HTMLEditorLazy
|
|
135
140
|
variant="inapp"
|
|
136
141
|
onSave={mockOnSave}
|
|
137
|
-
readOnly
|
|
142
|
+
readOnly
|
|
138
143
|
className="custom-class"
|
|
139
144
|
/>
|
|
140
145
|
);
|
|
@@ -143,7 +148,8 @@ describe('index.lazy.js', () => {
|
|
|
143
148
|
expect(screen.getByTestId('html-editor')).toBeInTheDocument();
|
|
144
149
|
});
|
|
145
150
|
|
|
146
|
-
|
|
151
|
+
const editor = screen.getByTestId('html-editor');
|
|
152
|
+
expect(editor.textContent).toBe('Mock HTML Editor -inapp');
|
|
147
153
|
});
|
|
148
154
|
|
|
149
155
|
it('has correct display name', async () => {
|
|
@@ -215,7 +221,7 @@ describe('index.lazy.js', () => {
|
|
|
215
221
|
render(
|
|
216
222
|
<HTMLEditorLazy
|
|
217
223
|
className="custom-editor"
|
|
218
|
-
readOnly
|
|
224
|
+
readOnly
|
|
219
225
|
showFullscreenButton={false}
|
|
220
226
|
autoSave={false}
|
|
221
227
|
autoSaveInterval={60000}
|
|
@@ -529,4 +535,3 @@ describe('index.lazy.js', () => {
|
|
|
529
535
|
});
|
|
530
536
|
});
|
|
531
537
|
});
|
|
532
|
-
|
|
@@ -5,38 +5,71 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
// Import Cap UI variables (correct path)
|
|
8
|
-
@import
|
|
8
|
+
@import "~@capillarytech/cap-ui-library/styles/_variables.scss";
|
|
9
9
|
|
|
10
10
|
// Fullscreen modal header styling - using proper CSS specificity instead of !important
|
|
11
11
|
.html-editor-fullscreen {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
// INAPP variant only: Fullscreen header styling
|
|
13
|
+
&--inapp {
|
|
14
|
+
.html-editor__header--fullscreen {
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
background-color: $CAP_G10;
|
|
18
|
+
border-bottom: 0.0625rem solid $CAP_G08;
|
|
19
|
+
padding-right: 1rem;
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
// Device toggle takes available space
|
|
22
|
+
.device-toggle {
|
|
23
|
+
flex: 1;
|
|
24
|
+
}
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
// Toolbar styling in fullscreen mode - INAPP variant only
|
|
27
|
+
.editor-toolbar {
|
|
28
|
+
background-color: transparent;
|
|
29
|
+
border-bottom: none;
|
|
30
|
+
padding: 0;
|
|
31
|
+
min-height: 3.25rem;
|
|
32
|
+
height: 3.25rem;
|
|
33
|
+
position: relative;
|
|
31
34
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
// Right-align toolbar actions
|
|
36
|
+
&__right {
|
|
37
|
+
margin-left: auto;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Library mode: Position absolute for toolbar in fullscreen (INAPP variant only)
|
|
43
|
+
// Using higher specificity to override _fullscreenModal.scss styles
|
|
44
|
+
&.html-editor-fullscreen--library-mode {
|
|
45
|
+
.html-editor__header--fullscreen {
|
|
46
|
+
.editor-toolbar,
|
|
47
|
+
.editor-toolbar.editor-toolbar,
|
|
48
|
+
.ant-layout-header.editor-toolbar {
|
|
49
|
+
position: absolute;
|
|
50
|
+
}
|
|
35
51
|
}
|
|
36
52
|
}
|
|
37
53
|
}
|
|
38
54
|
}
|
|
39
55
|
|
|
56
|
+
// Additional library mode overrides for fullscreen with maximum specificity
|
|
57
|
+
// These match the high-specificity selectors in _fullscreenModal.scss
|
|
58
|
+
.html-editor-fullscreen--inapp.html-editor-fullscreen--library-mode .html-editor__header--fullscreen .editor-toolbar,
|
|
59
|
+
.html-editor-fullscreen--inapp.html-editor-fullscreen--library-mode .html-editor__header--fullscreen .editor-toolbar.editor-toolbar,
|
|
60
|
+
.html-editor-fullscreen--inapp.html-editor-fullscreen--library-mode .html-editor__header--fullscreen .ant-layout-header.editor-toolbar,
|
|
61
|
+
.html-editor.html-editor-fullscreen--inapp.html-editor-fullscreen--library-mode .html-editor__header--fullscreen .editor-toolbar,
|
|
62
|
+
.html-editor.html-editor-fullscreen--inapp.html-editor-fullscreen--library-mode .html-editor__header--fullscreen .editor-toolbar.editor-toolbar,
|
|
63
|
+
.html-editor.html-editor-fullscreen--inapp.html-editor-fullscreen--library-mode .html-editor__header--fullscreen .ant-layout-header.editor-toolbar,
|
|
64
|
+
.ant-modal .html-editor-fullscreen--inapp.html-editor-fullscreen--library-mode .html-editor__header--fullscreen .editor-toolbar,
|
|
65
|
+
.ant-modal .html-editor-fullscreen--inapp.html-editor-fullscreen--library-mode .html-editor__header--fullscreen .editor-toolbar.editor-toolbar,
|
|
66
|
+
.ant-modal .html-editor-fullscreen--inapp.html-editor-fullscreen--library-mode .html-editor__header--fullscreen .ant-layout-header.editor-toolbar,
|
|
67
|
+
.ant-modal-content .html-editor-fullscreen--inapp.html-editor-fullscreen--library-mode .html-editor__header--fullscreen .editor-toolbar,
|
|
68
|
+
.ant-modal-content .html-editor-fullscreen--inapp.html-editor-fullscreen--library-mode .html-editor__header--fullscreen .editor-toolbar.editor-toolbar,
|
|
69
|
+
.ant-modal-content .html-editor-fullscreen--inapp.html-editor-fullscreen--library-mode .html-editor__header--fullscreen .ant-layout-header.editor-toolbar {
|
|
70
|
+
position: absolute;
|
|
71
|
+
}
|
|
72
|
+
|
|
40
73
|
.html-editor {
|
|
41
74
|
height: 37.5rem; // Fixed height instead of 100vh (600px = 37.5rem)
|
|
42
75
|
max-height: 80vh; // Responsive maximum height
|
|
@@ -48,6 +81,23 @@
|
|
|
48
81
|
border-radius: 0.25rem;
|
|
49
82
|
overflow: hidden;
|
|
50
83
|
|
|
84
|
+
// Library mode: Apply specific styles when isFullMode is false
|
|
85
|
+
&.html-editor--library-mode {
|
|
86
|
+
.preview-pane {
|
|
87
|
+
max-height: calc(95vh - 5%);
|
|
88
|
+
|
|
89
|
+
&__content {
|
|
90
|
+
height: calc(95vh - 5%); // Same as editor pane - maximize to full available height
|
|
91
|
+
max-height: calc(95vh - 50%);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
iframe {
|
|
95
|
+
height: calc(95vh - 5%); // Same as editor pane - maximize to full available height
|
|
96
|
+
max-height: calc(95vh - 50%);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
51
101
|
&.fullscreen {
|
|
52
102
|
position: fixed;
|
|
53
103
|
top: 0;
|
|
@@ -83,19 +133,6 @@
|
|
|
83
133
|
flex-direction: column;
|
|
84
134
|
}
|
|
85
135
|
|
|
86
|
-
// Validation Error Display - Full Width Below Split Container
|
|
87
|
-
&-validation {
|
|
88
|
-
margin-top: 1rem; // 16px = 1rem
|
|
89
|
-
|
|
90
|
-
// Ensure ErrorInfoNote fits well in the editor layout
|
|
91
|
-
.error-container {
|
|
92
|
-
width: 100%; // Full width instead of max-content
|
|
93
|
-
margin-top: 0;
|
|
94
|
-
margin-bottom: 0;
|
|
95
|
-
border-radius: 0.25rem;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
136
|
// Split container - integrated design
|
|
100
137
|
&-split-container {
|
|
101
138
|
flex: 1;
|
|
@@ -128,6 +165,7 @@
|
|
|
128
165
|
padding: 0;
|
|
129
166
|
min-height: 3.25rem; // 52px = 3.25rem
|
|
130
167
|
height: 3.25rem;
|
|
168
|
+
position: relative;
|
|
131
169
|
|
|
132
170
|
// Right-align toolbar actions
|
|
133
171
|
&__right {
|
|
@@ -135,8 +173,19 @@
|
|
|
135
173
|
}
|
|
136
174
|
}
|
|
137
175
|
}
|
|
138
|
-
}
|
|
139
176
|
|
|
177
|
+
// Library mode: Position absolute for toolbar in InApp variant
|
|
178
|
+
// Using higher specificity to override default position: relative
|
|
179
|
+
&.html-editor--library-mode {
|
|
180
|
+
.html-editor__header {
|
|
181
|
+
.editor-toolbar,
|
|
182
|
+
.editor-toolbar.editor-toolbar,
|
|
183
|
+
.ant-layout-header.editor-toolbar {
|
|
184
|
+
position: absolute;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
140
189
|
|
|
141
190
|
// Responsive design
|
|
142
191
|
@media (max-width: 768px) {
|
|
@@ -219,29 +268,46 @@
|
|
|
219
268
|
.code-editor-pane {
|
|
220
269
|
.codemirror-wrapper {
|
|
221
270
|
height: 100%;
|
|
222
|
-
max-height:
|
|
271
|
+
max-height: calc(95vh - 5%); // 95% of viewport height with 5% gap
|
|
223
272
|
}
|
|
224
273
|
|
|
225
274
|
&__content {
|
|
226
|
-
max-height:
|
|
275
|
+
max-height: calc(95vh - 5%); // 95% of viewport height with 5% gap
|
|
227
276
|
}
|
|
228
277
|
}
|
|
229
278
|
|
|
230
279
|
.preview-pane {
|
|
231
|
-
max-height:
|
|
280
|
+
max-height: calc(95vh - 5%); // Same as editor pane - 95% of viewport height with 5% gap
|
|
232
281
|
|
|
233
282
|
&__content {
|
|
234
|
-
max-height:
|
|
283
|
+
max-height: calc(95vh - 5%); // Same as editor pane
|
|
235
284
|
}
|
|
236
285
|
|
|
237
286
|
iframe {
|
|
238
|
-
height:
|
|
239
|
-
max-height:
|
|
287
|
+
height: calc(95vh - 5%); // Same as editor pane - maximize to full available height
|
|
288
|
+
max-height: calc(95vh - 5%);
|
|
240
289
|
}
|
|
241
290
|
}
|
|
242
291
|
}
|
|
243
292
|
}
|
|
244
293
|
|
|
294
|
+
// Fullscreen modal library mode styles (outside .html-editor block since fullscreen is a separate element)
|
|
295
|
+
.html-editor-fullscreen--library-mode {
|
|
296
|
+
.preview-pane {
|
|
297
|
+
max-height: calc(95vh - 5%);
|
|
298
|
+
|
|
299
|
+
&__content {
|
|
300
|
+
height: calc(95vh - 5%); // Same as editor pane - maximize to full available height
|
|
301
|
+
max-height: calc(95vh - 50%);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
iframe {
|
|
305
|
+
height: calc(95vh - 5%); // Same as editor pane - maximize to full available height
|
|
306
|
+
max-height: calc(95vh - 50%);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
245
311
|
// Animation classes for smooth transitions
|
|
246
312
|
.html-editor-transition {
|
|
247
313
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
@@ -267,10 +333,6 @@
|
|
|
267
333
|
|
|
268
334
|
// Focus states and accessibility
|
|
269
335
|
.html-editor {
|
|
270
|
-
&:focus-within {
|
|
271
|
-
outline: 0.125rem solid map-get($CAP_PRIMARY, base); // 2px = 0.125rem
|
|
272
|
-
outline-offset: -0.125rem; // -2px = -0.125rem
|
|
273
|
-
}
|
|
274
336
|
|
|
275
337
|
// High contrast mode support
|
|
276
338
|
@media (prefers-contrast: high) {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
align-items: center;
|
|
14
14
|
min-height: 25rem; // 400px = 25rem
|
|
15
15
|
background: $CAP_G11; // Light background similar to #fafbfc
|
|
16
|
-
border: 0.0625rem solid $CAP_G07; // 1px border similar to #dfe2e7
|
|
16
|
+
// border: 0.0625rem solid $CAP_G07; // 1px border similar to #dfe2e7
|
|
17
17
|
border-radius: 0.5rem; // 8px = 0.5rem
|
|
18
18
|
flex-direction: column;
|
|
19
19
|
gap: 1rem; // 16px = 1rem
|
|
@@ -31,79 +31,6 @@
|
|
|
31
31
|
display: flex;
|
|
32
32
|
align-items: center;
|
|
33
33
|
gap: 0.5rem;
|
|
34
|
-
|
|
35
|
-
.cap-button,
|
|
36
|
-
.ant-btn,
|
|
37
|
-
button {
|
|
38
|
-
color: map-get($CAP_PRIMARY, base);
|
|
39
|
-
border: none;
|
|
40
|
-
background: $CAP_WHITE;
|
|
41
|
-
border-radius: 0.25rem;
|
|
42
|
-
padding: 0.375rem 0.5rem;
|
|
43
|
-
font-size: 0.875rem;
|
|
44
|
-
font-family: $FONT_FAMILY;
|
|
45
|
-
font-weight: 500;
|
|
46
|
-
height: auto;
|
|
47
|
-
min-width: 5.9375rem;
|
|
48
|
-
display: flex;
|
|
49
|
-
align-items: center;
|
|
50
|
-
gap: 0.25rem;
|
|
51
|
-
box-shadow: 0 0 0.0625rem 0 rgba(9, 30, 66, 0.31), 0 0.25rem 0.5rem -0.125rem rgba(9, 30, 66, 0.25);
|
|
52
|
-
line-height: 1.25rem;
|
|
53
|
-
text-align: left;
|
|
54
|
-
|
|
55
|
-
&:hover {
|
|
56
|
-
background: $CAP_G09;
|
|
57
|
-
box-shadow: 0 0 0.0625rem 0 rgba(9, 30, 66, 0.31), 0 0.375rem 0.75rem -0.125rem rgba(9, 30, 66, 0.25);
|
|
58
|
-
color: map-get($CAP_PRIMARY, base);
|
|
59
|
-
border: none;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
&:active,
|
|
63
|
-
&:focus {
|
|
64
|
-
background: $CAP_G08;
|
|
65
|
-
box-shadow: 0 0 0.0625rem 0 rgba(9, 30, 66, 0.31), 0 0.125rem 0.25rem -0.125rem rgba(9, 30, 66, 0.25);
|
|
66
|
-
color: map-get($CAP_PRIMARY, base);
|
|
67
|
-
border: none;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.anticon,
|
|
71
|
-
.cap-icon {
|
|
72
|
-
font-size: 1rem;
|
|
73
|
-
color: map-get($CAP_PRIMARY, base);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
span {
|
|
77
|
-
font-size: 0.875rem;
|
|
78
|
-
font-weight: 500;
|
|
79
|
-
line-height: 1.25rem;
|
|
80
|
-
color: map-get($CAP_PRIMARY, base);
|
|
81
|
-
white-space: nowrap;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
&:before,
|
|
85
|
-
&:after {
|
|
86
|
-
display: none;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.tooltip-add-label-container {
|
|
91
|
-
|
|
92
|
-
.cap-button,
|
|
93
|
-
.ant-btn {
|
|
94
|
-
color: map-get($CAP_PRIMARY, base);
|
|
95
|
-
background: $CAP_WHITE;
|
|
96
|
-
border: none;
|
|
97
|
-
box-shadow: 0 0 0.0625rem 0 rgba(9, 30, 66, 0.31), 0 0.25rem 0.5rem -0.125rem rgba(9, 30, 66, 0.25);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.cap-button-flat,
|
|
102
|
-
.cap-button-add {
|
|
103
|
-
background: $CAP_WHITE;
|
|
104
|
-
color: map-get($CAP_PRIMARY, base);
|
|
105
|
-
border: none;
|
|
106
|
-
}
|
|
107
34
|
}
|
|
108
35
|
|
|
109
36
|
&__content {
|
|
@@ -113,7 +40,7 @@
|
|
|
113
40
|
overflow: auto;
|
|
114
41
|
position: relative;
|
|
115
42
|
height: 100%;
|
|
116
|
-
max-height:
|
|
43
|
+
max-height: 34.25rem;
|
|
117
44
|
background-color: $CAP_G01;
|
|
118
45
|
}
|
|
119
46
|
|
|
@@ -130,6 +57,17 @@
|
|
|
130
57
|
}
|
|
131
58
|
}
|
|
132
59
|
|
|
60
|
+
// Add Label button visibility: 50% opacity while typing, 100% on hover
|
|
61
|
+
.code-editor-pane__actions {
|
|
62
|
+
opacity: 0.5; // 50% transparent while typing
|
|
63
|
+
pointer-events: auto; // Always clickable
|
|
64
|
+
transition: opacity 0.2s ease;
|
|
65
|
+
|
|
66
|
+
&:hover {
|
|
67
|
+
opacity: 1; // Fully visible on hover
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
133
71
|
.cm-foldGutter {
|
|
134
72
|
width: 1rem;
|
|
135
73
|
|
|
@@ -223,7 +161,7 @@
|
|
|
223
161
|
.codemirror-wrapper {
|
|
224
162
|
position: relative;
|
|
225
163
|
height: 100%;
|
|
226
|
-
max-height:
|
|
164
|
+
max-height: 34.25rem;
|
|
227
165
|
background-color: $CAP_G01;
|
|
228
166
|
border-radius: 0;
|
|
229
167
|
overflow: hidden;
|
|
@@ -234,31 +172,6 @@
|
|
|
234
172
|
top: 0.5rem;
|
|
235
173
|
right: 0.5rem;
|
|
236
174
|
z-index: 20;
|
|
237
|
-
|
|
238
|
-
.cap-button,
|
|
239
|
-
.ant-btn,
|
|
240
|
-
button {
|
|
241
|
-
background: $CAP_WHITE;
|
|
242
|
-
color: map-get($CAP_PRIMARY, base);
|
|
243
|
-
border: none;
|
|
244
|
-
border-radius: 0.25rem;
|
|
245
|
-
padding: 0.375rem 0.5rem;
|
|
246
|
-
font-size: 0.875rem;
|
|
247
|
-
font-family: $FONT_FAMILY;
|
|
248
|
-
font-weight: 500;
|
|
249
|
-
min-width: 5.9375rem;
|
|
250
|
-
box-shadow: 0 0 0.0625rem 0 rgba(9, 30, 66, 0.31), 0 0.25rem 0.5rem -0.125rem rgba(9, 30, 66, 0.25);
|
|
251
|
-
|
|
252
|
-
&:hover {
|
|
253
|
-
background: $CAP_G09;
|
|
254
|
-
color: map-get($CAP_PRIMARY, base);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
&:active {
|
|
258
|
-
background: $CAP_G08;
|
|
259
|
-
color: map-get($CAP_PRIMARY, base);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
175
|
}
|
|
263
176
|
|
|
264
177
|
.codemirror-editor {
|
|
@@ -296,7 +209,6 @@
|
|
|
296
209
|
}
|
|
297
210
|
|
|
298
211
|
.cm-gutters {
|
|
299
|
-
background-color: var(--editor-gutter-bg, $CAP_G02);
|
|
300
212
|
border-right: 0.0625rem solid var(--editor-border, $CAP_G04);
|
|
301
213
|
color: var(--editor-gutter-foreground, $FONT_COLOR_02);
|
|
302
214
|
}
|