@aquera/nile-elements 2.0.0 → 2.0.2
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/README.md +11 -0
- package/demo/nxtgen-dark.css +2 -2
- package/dist/{index-ccff99d6.esm.js → index-0fe57384.esm.js} +1 -1
- package/dist/index-f6944844.cjs.js +2 -0
- package/dist/{index-e43755f5.cjs.js.map → index-f6944844.cjs.js.map} +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1127 -741
- package/dist/nile-code-editor/extensionSetup.cjs.js +1 -1
- package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
- package/dist/nile-code-editor/index.cjs.js +1 -1
- package/dist/nile-code-editor/index.esm.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.cjs.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.esm.js +2 -2
- package/dist/nile-code-editor/nile-code-editor.esm.js +4 -4
- package/dist/nile-code-editor/theme.cjs.js +1 -1
- package/dist/nile-code-editor/theme.cjs.js.map +1 -1
- package/dist/nile-code-editor/theme.esm.js +1 -1
- package/dist/nile-combobox/nile-combobox.css.cjs.js +1 -1
- package/dist/nile-combobox/nile-combobox.css.cjs.js.map +1 -1
- package/dist/nile-combobox/nile-combobox.css.esm.js +1 -1
- package/dist/nile-detail/nile-detail.css.cjs.js +1 -1
- package/dist/nile-detail/nile-detail.css.cjs.js.map +1 -1
- package/dist/nile-detail/nile-detail.css.esm.js +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.css.cjs.js +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.css.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.css.esm.js +3 -3
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.cjs.js +1 -1
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.esm.js +13 -7
- package/dist/nile-timestamp-builder/index.cjs.js +2 -0
- package/dist/nile-timestamp-builder/index.cjs.js.map +1 -0
- package/dist/nile-timestamp-builder/index.esm.js +1 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder-utils.cjs.js +2 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder-utils.cjs.js.map +1 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder-utils.esm.js +1 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder.cjs.js +2 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder.cjs.js.map +1 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder.css.cjs.js +2 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder.css.cjs.js.map +1 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder.css.esm.js +195 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder.esm.js +154 -0
- package/dist/nile-timestamp-builder/timezones.cjs.js +2 -0
- package/dist/nile-timestamp-builder/timezones.cjs.js.map +1 -0
- package/dist/nile-timestamp-builder/timezones.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.esm.js +91 -58
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.esm.js +19 -19
- package/dist/nile-wysiwyg-editor/ui/bookmark-panel.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/bookmark-panel.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/bookmark-panel.esm.js +14 -14
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.esm.js +13 -13
- package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/code-block-menu.esm.js +12 -12
- package/dist/nile-wysiwyg-editor/ui/embed-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/embed-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/embed-menu.esm.js +10 -10
- package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/embed-panel.esm.js +4 -4
- package/dist/nile-wysiwyg-editor/ui/emoji-picker.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/emoji-picker.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/emoji-picker.esm.js +11 -11
- package/dist/nile-wysiwyg-editor/ui/find-replace.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/find-replace.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/find-replace.esm.js +9 -9
- package/dist/nile-wysiwyg-editor/ui/image-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/image-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/image-menu.esm.js +11 -11
- package/dist/nile-wysiwyg-editor/ui/image-panel.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/image-panel.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/image-panel.esm.js +6 -6
- package/dist/nile-wysiwyg-editor/ui/insert-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/insert-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/insert-menu.esm.js +14 -14
- package/dist/nile-wysiwyg-editor/ui/link-editor.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/link-editor.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/link-editor.esm.js +16 -16
- package/dist/nile-wysiwyg-editor/ui/markdown-panel.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/markdown-panel.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/markdown-panel.esm.js +8 -8
- package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/math-panel.esm.js +4 -4
- package/dist/nile-wysiwyg-editor/ui/shortcut-help.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/shortcut-help.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/shortcut-help.esm.js +16 -16
- package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/source-view.esm.js +29 -29
- package/dist/nile-wysiwyg-editor/ui/special-chars.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/special-chars.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/special-chars.esm.js +8 -8
- package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/suggest-list.esm.js +9 -9
- package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-grid-picker.esm.js +23 -23
- package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-menu.esm.js +7 -7
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.css.js +2 -2
- package/dist/src/nile-code-editor/nile-code-editor.css.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.d.ts +15 -0
- package/dist/src/nile-code-editor/nile-code-editor.js +65 -6
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/src/nile-code-editor/theme.d.ts +6 -117
- package/dist/src/nile-code-editor/theme.js +100 -147
- package/dist/src/nile-code-editor/theme.js.map +1 -1
- package/dist/src/nile-combobox/nile-combobox.css.js +1 -1
- package/dist/src/nile-combobox/nile-combobox.css.js.map +1 -1
- package/dist/src/nile-detail/nile-detail.css.js +1 -1
- package/dist/src/nile-detail/nile-detail.css.js.map +1 -1
- package/dist/src/nile-side-bar-footer/nile-side-bar-footer.css.js +3 -3
- package/dist/src/nile-side-bar-footer/nile-side-bar-footer.css.js.map +1 -1
- package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.js +11 -5
- package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.js.map +1 -1
- package/dist/src/nile-timestamp-builder/index.d.ts +1 -0
- package/dist/src/nile-timestamp-builder/index.js +2 -0
- package/dist/src/nile-timestamp-builder/index.js.map +1 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder-utils.d.ts +54 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder-utils.js +254 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder-utils.js.map +1 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.css.d.ts +7 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.css.js +203 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.css.js.map +1 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.d.ts +94 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.js +578 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.js.map +1 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.test.d.ts +1 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.test.js +890 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.test.js.map +1 -0
- package/dist/src/nile-timestamp-builder/timezones.d.ts +8 -0
- package/dist/src/nile-timestamp-builder/timezones.js +357 -0
- package/dist/src/nile-timestamp-builder/timezones.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js +91 -58
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.d.ts +2 -1
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js +23 -1
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js +19 -19
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/bookmark-panel.js +10 -10
- package/dist/src/nile-wysiwyg-editor/ui/bookmark-panel.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js +7 -7
- package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/code-block-menu.js +5 -5
- package/dist/src/nile-wysiwyg-editor/ui/code-block-menu.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/embed-menu.js +6 -6
- package/dist/src/nile-wysiwyg-editor/ui/embed-menu.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js +4 -4
- package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/emoji-picker.js +6 -6
- package/dist/src/nile-wysiwyg-editor/ui/emoji-picker.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/find-replace.js +7 -7
- package/dist/src/nile-wysiwyg-editor/ui/find-replace.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/image-menu.js +6 -6
- package/dist/src/nile-wysiwyg-editor/ui/image-menu.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/image-panel.js +6 -6
- package/dist/src/nile-wysiwyg-editor/ui/image-panel.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/insert-menu.js +7 -7
- package/dist/src/nile-wysiwyg-editor/ui/insert-menu.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/link-editor.js +9 -9
- package/dist/src/nile-wysiwyg-editor/ui/link-editor.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/markdown-panel.js +8 -8
- package/dist/src/nile-wysiwyg-editor/ui/markdown-panel.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/math-panel.js +4 -4
- package/dist/src/nile-wysiwyg-editor/ui/math-panel.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/shortcut-help.js +9 -9
- package/dist/src/nile-wysiwyg-editor/ui/shortcut-help.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/source-view.js +24 -24
- package/dist/src/nile-wysiwyg-editor/ui/source-view.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/special-chars.js +4 -4
- package/dist/src/nile-wysiwyg-editor/ui/special-chars.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js +7 -7
- package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js +16 -16
- package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/table-menu.js +4 -4
- package/dist/src/nile-wysiwyg-editor/ui/table-menu.js.map +1 -1
- package/dist/src/version.js +2 -2
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/nile-code-editor/nile-code-editor.css.ts +2 -2
- package/src/nile-code-editor/nile-code-editor.ts +68 -5
- package/src/nile-code-editor/theme.ts +129 -162
- package/src/nile-combobox/nile-combobox.css.ts +1 -1
- package/src/nile-detail/nile-detail.css.ts +1 -1
- package/src/nile-side-bar-footer/nile-side-bar-footer.css.ts +3 -3
- package/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.ts +11 -5
- package/src/nile-timestamp-builder/index.ts +1 -0
- package/src/nile-timestamp-builder/nile-timestamp-builder-utils.ts +321 -0
- package/src/nile-timestamp-builder/nile-timestamp-builder.css.ts +204 -0
- package/src/nile-timestamp-builder/nile-timestamp-builder.test.ts +1089 -0
- package/src/nile-timestamp-builder/nile-timestamp-builder.ts +625 -0
- package/src/nile-timestamp-builder/timezones.ts +356 -0
- package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.ts +91 -58
- package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.ts +21 -1
- package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.ts +19 -19
- package/src/nile-wysiwyg-editor/ui/bookmark-panel.ts +10 -10
- package/src/nile-wysiwyg-editor/ui/bubble-menu.ts +7 -7
- package/src/nile-wysiwyg-editor/ui/code-block-menu.ts +5 -5
- package/src/nile-wysiwyg-editor/ui/embed-menu.ts +6 -6
- package/src/nile-wysiwyg-editor/ui/embed-panel.ts +4 -4
- package/src/nile-wysiwyg-editor/ui/emoji-picker.ts +6 -6
- package/src/nile-wysiwyg-editor/ui/find-replace.ts +7 -7
- package/src/nile-wysiwyg-editor/ui/image-menu.ts +6 -6
- package/src/nile-wysiwyg-editor/ui/image-panel.ts +6 -6
- package/src/nile-wysiwyg-editor/ui/insert-menu.ts +7 -7
- package/src/nile-wysiwyg-editor/ui/link-editor.ts +9 -9
- package/src/nile-wysiwyg-editor/ui/markdown-panel.ts +8 -8
- package/src/nile-wysiwyg-editor/ui/math-panel.ts +4 -4
- package/src/nile-wysiwyg-editor/ui/shortcut-help.ts +9 -9
- package/src/nile-wysiwyg-editor/ui/source-view.ts +24 -24
- package/src/nile-wysiwyg-editor/ui/special-chars.ts +4 -4
- package/src/nile-wysiwyg-editor/ui/suggest-list.ts +7 -7
- package/src/nile-wysiwyg-editor/ui/table-grid-picker.ts +16 -16
- package/src/nile-wysiwyg-editor/ui/table-menu.ts +4 -4
- package/vscode-html-custom-data.json +94 -2
- package/dist/index-e43755f5.cjs.js +0 -2
|
@@ -18,7 +18,7 @@ export const styles = css `
|
|
|
18
18
|
border: 1px solid
|
|
19
19
|
var(
|
|
20
20
|
--nile-wysiwyg-border-color,
|
|
21
|
-
var(--nile-colors-neutral-400, var(--ng-colors-border-neutral
|
|
21
|
+
var(--nile-colors-neutral-400, var(--ng-colors-border-neutral))
|
|
22
22
|
);
|
|
23
23
|
border-radius: var(
|
|
24
24
|
--nile-wysiwyg-radius,
|
|
@@ -26,7 +26,7 @@ export const styles = css `
|
|
|
26
26
|
);
|
|
27
27
|
background: var(
|
|
28
28
|
--nile-wysiwyg-bg,
|
|
29
|
-
var(--nile-colors-white-base, var(--ng-colors-bg-primary
|
|
29
|
+
var(--nile-colors-white-base, var(--ng-colors-bg-primary))
|
|
30
30
|
);
|
|
31
31
|
box-sizing: border-box;
|
|
32
32
|
}
|
|
@@ -38,7 +38,7 @@ export const styles = css `
|
|
|
38
38
|
z-index: var(--nile-wysiwyg-fullscreen-z-index, 1000);
|
|
39
39
|
background: var(
|
|
40
40
|
--nile-wysiwyg-bg,
|
|
41
|
-
var(--nile-colors-white-base, var(--ng-colors-bg-primary
|
|
41
|
+
var(--nile-colors-white-base, var(--ng-colors-bg-primary))
|
|
42
42
|
);
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -53,18 +53,18 @@ export const styles = css `
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
:host([disabled]) .nile-wysiwyg {
|
|
56
|
-
border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled
|
|
56
|
+
border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));
|
|
57
57
|
background: var(
|
|
58
58
|
--nile-wysiwyg-disabled-bg,
|
|
59
|
-
var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle
|
|
59
|
+
var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle))
|
|
60
60
|
);
|
|
61
61
|
cursor: not-allowed;
|
|
62
62
|
pointer-events: none;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
:host([disabled]) .ProseMirror {
|
|
66
|
-
background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle
|
|
67
|
-
color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled
|
|
66
|
+
background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));
|
|
67
|
+
color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
.nile-wysiwyg__surface {
|
|
@@ -92,7 +92,7 @@ export const styles = css `
|
|
|
92
92
|
word-break: break-word;
|
|
93
93
|
color: var(
|
|
94
94
|
--nile-wysiwyg-color,
|
|
95
|
-
var(--nile-colors-dark-900, var(--ng-colors-text-primary
|
|
95
|
+
var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))
|
|
96
96
|
);
|
|
97
97
|
box-sizing: border-box;
|
|
98
98
|
border-radius: 0 0 var(--nile-wysiwyg-radius, var(--nile-radius-radius-xl, 8px))
|
|
@@ -117,7 +117,7 @@ export const styles = css `
|
|
|
117
117
|
|
|
118
118
|
.ProseMirror-selectednode {
|
|
119
119
|
outline: 2px solid
|
|
120
|
-
var(--nile-wysiwyg-focus-border-color, var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600
|
|
120
|
+
var(--nile-wysiwyg-focus-border-color, var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600)));
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
/* Gap cursor (inlined from prosemirror-gapcursor/style) */
|
|
@@ -157,7 +157,7 @@ export const styles = css `
|
|
|
157
157
|
opacity: 0.7;
|
|
158
158
|
color: var(
|
|
159
159
|
--nile-wysiwyg-placeholder-color,
|
|
160
|
-
var(--nile-colors-neutral-500, var(--ng-colors-text-secondary
|
|
160
|
+
var(--nile-colors-neutral-500, var(--ng-colors-text-secondary))
|
|
161
161
|
);
|
|
162
162
|
}
|
|
163
163
|
|
|
@@ -215,9 +215,12 @@ export const styles = css `
|
|
|
215
215
|
border-left: 3px solid
|
|
216
216
|
var(
|
|
217
217
|
--nile-wysiwyg-blockquote-border,
|
|
218
|
-
var(--nile-colors-neutral-300,
|
|
218
|
+
var(--nile-colors-neutral-300, var(--ng-colors-border-primary))
|
|
219
219
|
);
|
|
220
|
-
color: var(
|
|
220
|
+
color: var(
|
|
221
|
+
--nile-wysiwyg-blockquote-color,
|
|
222
|
+
var(--nile-colors-neutral-600, var(--ng-colors-text-tertiary-600))
|
|
223
|
+
);
|
|
221
224
|
}
|
|
222
225
|
|
|
223
226
|
.ProseMirror ul,
|
|
@@ -228,7 +231,8 @@ export const styles = css `
|
|
|
228
231
|
|
|
229
232
|
.ProseMirror hr {
|
|
230
233
|
border: none;
|
|
231
|
-
border-top: 1px solid
|
|
234
|
+
border-top: 1px solid
|
|
235
|
+
var(--nile-wysiwyg-border-color, var(--ng-colors-border-neutral));
|
|
232
236
|
margin: 1em 0;
|
|
233
237
|
}
|
|
234
238
|
|
|
@@ -236,7 +240,7 @@ export const styles = css `
|
|
|
236
240
|
.ProseMirror a {
|
|
237
241
|
color: var(
|
|
238
242
|
--nile-wysiwyg-link-color,
|
|
239
|
-
var(--nile-colors-primary-600, var(--ng-colors-text-brand-tertiary-600
|
|
243
|
+
var(--nile-colors-primary-600, var(--ng-colors-text-brand-tertiary-600))
|
|
240
244
|
);
|
|
241
245
|
text-decoration: none;
|
|
242
246
|
cursor: pointer;
|
|
@@ -245,7 +249,10 @@ export const styles = css `
|
|
|
245
249
|
.ProseMirror code.nile-wysiwyg__inline-code {
|
|
246
250
|
font-family: var(--nile-wysiwyg-code-font, ui-monospace, SFMono-Regular, Menlo, monospace);
|
|
247
251
|
font-size: 0.9em;
|
|
248
|
-
background: var(
|
|
252
|
+
background: var(
|
|
253
|
+
--nile-wysiwyg-code-bg,
|
|
254
|
+
var(--nile-colors-neutral-100, var(--ng-colors-bg-tertiary))
|
|
255
|
+
);
|
|
249
256
|
border-radius: 4px;
|
|
250
257
|
padding: 0.1em 0.35em;
|
|
251
258
|
}
|
|
@@ -254,8 +261,11 @@ export const styles = css `
|
|
|
254
261
|
.ProseMirror pre.nile-wysiwyg__code-block {
|
|
255
262
|
font-family: var(--nile-wysiwyg-code-font, ui-monospace, SFMono-Regular, Menlo, monospace);
|
|
256
263
|
font-size: 0.9em;
|
|
257
|
-
background: var(
|
|
258
|
-
|
|
264
|
+
background: var(
|
|
265
|
+
--nile-wysiwyg-code-bg,
|
|
266
|
+
var(--nile-colors-neutral-100, var(--ng-colors-bg-tertiary))
|
|
267
|
+
);
|
|
268
|
+
border: 1px solid var(--nile-colors-neutral-200, var(--ng-colors-border-secondary));
|
|
259
269
|
border-radius: 6px;
|
|
260
270
|
padding: 12px 14px;
|
|
261
271
|
margin: 0.5em 0;
|
|
@@ -280,13 +290,20 @@ export const styles = css `
|
|
|
280
290
|
vertical-align: top;
|
|
281
291
|
box-sizing: border-box;
|
|
282
292
|
position: relative;
|
|
283
|
-
border: 1px solid
|
|
293
|
+
border: 1px solid
|
|
294
|
+
var(
|
|
295
|
+
--nile-wysiwyg-table-border,
|
|
296
|
+
var(--nile-colors-neutral-300, var(--ng-colors-border-primary))
|
|
297
|
+
);
|
|
284
298
|
padding: 6px 8px;
|
|
285
299
|
min-width: 1em;
|
|
286
300
|
}
|
|
287
301
|
|
|
288
302
|
.ProseMirror th {
|
|
289
|
-
background: var(
|
|
303
|
+
background: var(
|
|
304
|
+
--nile-wysiwyg-table-header-bg,
|
|
305
|
+
var(--nile-colors-neutral-50, var(--ng-colors-bg-secondary))
|
|
306
|
+
);
|
|
290
307
|
font-weight: 600;
|
|
291
308
|
text-align: left;
|
|
292
309
|
}
|
|
@@ -305,7 +322,7 @@ export const styles = css `
|
|
|
305
322
|
bottom: 0;
|
|
306
323
|
width: 4px;
|
|
307
324
|
z-index: 20;
|
|
308
|
-
background-color: var(--nile-colors-primary-300,
|
|
325
|
+
background-color: var(--nile-colors-primary-300, var(--ng-componentcolors-utility-purple-300));
|
|
309
326
|
pointer-events: none;
|
|
310
327
|
}
|
|
311
328
|
|
|
@@ -318,7 +335,7 @@ export const styles = css `
|
|
|
318
335
|
guides while editing so the structure stays visible. --- */
|
|
319
336
|
.ProseMirror table[data-layout] td,
|
|
320
337
|
.ProseMirror table[data-layout] th {
|
|
321
|
-
border: 1px dashed var(--nile-colors-neutral-300,
|
|
338
|
+
border: 1px dashed var(--nile-colors-neutral-300, var(--ng-colors-border-primary));
|
|
322
339
|
background: transparent;
|
|
323
340
|
font-weight: inherit;
|
|
324
341
|
text-align: inherit;
|
|
@@ -337,7 +354,7 @@ export const styles = css `
|
|
|
337
354
|
font-size: 12px;
|
|
338
355
|
line-height: 1;
|
|
339
356
|
padding: 0 1px;
|
|
340
|
-
color: var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600
|
|
357
|
+
color: var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600));
|
|
341
358
|
}
|
|
342
359
|
|
|
343
360
|
.ProseMirror .selectedCell:after {
|
|
@@ -372,8 +389,8 @@ export const styles = css `
|
|
|
372
389
|
position: absolute;
|
|
373
390
|
width: 9px;
|
|
374
391
|
height: 9px;
|
|
375
|
-
background: var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600
|
|
376
|
-
border: 1.5px solid
|
|
392
|
+
background: var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600));
|
|
393
|
+
border: 1.5px solid var(--ng-colors-bg-primary);
|
|
377
394
|
border-radius: 2px;
|
|
378
395
|
z-index: 2;
|
|
379
396
|
}
|
|
@@ -383,7 +400,7 @@ export const styles = css `
|
|
|
383
400
|
}
|
|
384
401
|
|
|
385
402
|
.ProseMirror .nile-wysiwyg__image-resizer--selected img {
|
|
386
|
-
outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600
|
|
403
|
+
outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600));
|
|
387
404
|
}
|
|
388
405
|
|
|
389
406
|
.ProseMirror .nile-wysiwyg__resize-handle--nw { top: -5px; left: -5px; cursor: nwse-resize; }
|
|
@@ -418,7 +435,7 @@ export const styles = css `
|
|
|
418
435
|
|
|
419
436
|
.ProseMirror .nile-wysiwyg__figcaption {
|
|
420
437
|
font-size: 0.85em;
|
|
421
|
-
color: var(--nile-colors-neutral-500,
|
|
438
|
+
color: var(--nile-colors-neutral-500, var(--ng-colors-text-tertiary-600));
|
|
422
439
|
text-align: center;
|
|
423
440
|
padding: 4px 8px;
|
|
424
441
|
line-height: 1.4;
|
|
@@ -429,7 +446,7 @@ export const styles = css `
|
|
|
429
446
|
float: left;
|
|
430
447
|
width: 100%;
|
|
431
448
|
pointer-events: none;
|
|
432
|
-
color: var(--nile-colors-neutral-400,
|
|
449
|
+
color: var(--nile-colors-neutral-400, var(--ng-colors-text-quaternary-500));
|
|
433
450
|
margin-bottom: -1.4em;
|
|
434
451
|
}
|
|
435
452
|
|
|
@@ -448,7 +465,7 @@ export const styles = css `
|
|
|
448
465
|
max-width: 100%;
|
|
449
466
|
margin: 0.75em 0;
|
|
450
467
|
border-radius: 8px;
|
|
451
|
-
background: var(--nile-colors-neutral-100,
|
|
468
|
+
background: var(--nile-colors-neutral-100, var(--ng-colors-bg-tertiary));
|
|
452
469
|
}
|
|
453
470
|
|
|
454
471
|
.ProseMirror div.nile-wysiwyg__embed iframe {
|
|
@@ -468,7 +485,7 @@ export const styles = css `
|
|
|
468
485
|
}
|
|
469
486
|
|
|
470
487
|
.ProseMirror div.nile-wysiwyg__embed.ProseMirror-selectednode {
|
|
471
|
-
outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600
|
|
488
|
+
outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600));
|
|
472
489
|
}
|
|
473
490
|
|
|
474
491
|
.ProseMirror div.nile-wysiwyg__embed.ProseMirror-selectednode .nile-wysiwyg__resize-handle {
|
|
@@ -480,10 +497,13 @@ export const styles = css `
|
|
|
480
497
|
pointer-events: none !important;
|
|
481
498
|
}
|
|
482
499
|
|
|
483
|
-
/* --- Code highlighting (
|
|
500
|
+
/* --- Code highlighting (hljs tokens) ---
|
|
501
|
+
Each hue routes through an --ng-componentcolors-utility-* token, which the
|
|
502
|
+
token layer remaps to its lighter 400 step in the dark theme. Hardcoding the
|
|
503
|
+
one-light palette here left syntax unreadable on the dark code surface. --- */
|
|
484
504
|
.ProseMirror .hljs-comment,
|
|
485
505
|
.ProseMirror .hljs-quote {
|
|
486
|
-
color:
|
|
506
|
+
color: var(--ng-componentcolors-utility-gray-500);
|
|
487
507
|
font-style: italic;
|
|
488
508
|
}
|
|
489
509
|
|
|
@@ -491,7 +511,7 @@ export const styles = css `
|
|
|
491
511
|
.ProseMirror .hljs-selector-tag,
|
|
492
512
|
.ProseMirror .hljs-formula,
|
|
493
513
|
.ProseMirror .hljs-doctag {
|
|
494
|
-
color:
|
|
514
|
+
color: var(--ng-componentcolors-utility-purple-600);
|
|
495
515
|
}
|
|
496
516
|
|
|
497
517
|
.ProseMirror .hljs-section,
|
|
@@ -501,13 +521,13 @@ export const styles = css `
|
|
|
501
521
|
.ProseMirror .hljs-deletion,
|
|
502
522
|
.ProseMirror .hljs-subst,
|
|
503
523
|
.ProseMirror .hljs-tag {
|
|
504
|
-
color:
|
|
524
|
+
color: var(--ng-componentcolors-utility-error-600);
|
|
505
525
|
}
|
|
506
526
|
|
|
507
527
|
.ProseMirror .hljs-literal,
|
|
508
528
|
.ProseMirror .hljs-built_in,
|
|
509
529
|
.ProseMirror .hljs-bullet {
|
|
510
|
-
color:
|
|
530
|
+
color: var(--ng-componentcolors-utility-blue-600);
|
|
511
531
|
}
|
|
512
532
|
|
|
513
533
|
.ProseMirror .hljs-string,
|
|
@@ -515,7 +535,7 @@ export const styles = css `
|
|
|
515
535
|
.ProseMirror .hljs-addition,
|
|
516
536
|
.ProseMirror .hljs-attribute,
|
|
517
537
|
.ProseMirror .hljs-meta .hljs-string {
|
|
518
|
-
color:
|
|
538
|
+
color: var(--ng-componentcolors-utility-green-600);
|
|
519
539
|
}
|
|
520
540
|
|
|
521
541
|
.ProseMirror .hljs-attr,
|
|
@@ -525,7 +545,7 @@ export const styles = css `
|
|
|
525
545
|
.ProseMirror .hljs-selector-attr,
|
|
526
546
|
.ProseMirror .hljs-selector-pseudo,
|
|
527
547
|
.ProseMirror .hljs-number {
|
|
528
|
-
color:
|
|
548
|
+
color: var(--ng-componentcolors-utility-orange-600);
|
|
529
549
|
}
|
|
530
550
|
|
|
531
551
|
.ProseMirror .hljs-symbol,
|
|
@@ -535,7 +555,7 @@ export const styles = css `
|
|
|
535
555
|
.ProseMirror .hljs-title,
|
|
536
556
|
.ProseMirror .hljs-title.class_,
|
|
537
557
|
.ProseMirror .hljs-title.function_ {
|
|
538
|
-
color:
|
|
558
|
+
color: var(--ng-componentcolors-utility-indigo-600);
|
|
539
559
|
}
|
|
540
560
|
|
|
541
561
|
.ProseMirror .hljs-emphasis {
|
|
@@ -565,7 +585,10 @@ export const styles = css `
|
|
|
565
585
|
height: 14px;
|
|
566
586
|
flex: none;
|
|
567
587
|
cursor: pointer;
|
|
568
|
-
accent-color: var(
|
|
588
|
+
accent-color: var(
|
|
589
|
+
--nile-colors-primary-600,
|
|
590
|
+
var(--ng-componentcolors-utility-blue-600)
|
|
591
|
+
);
|
|
569
592
|
}
|
|
570
593
|
|
|
571
594
|
.ProseMirror li.nile-wysiwyg__task-item > .nile-wysiwyg__task-content {
|
|
@@ -588,7 +611,7 @@ export const styles = css `
|
|
|
588
611
|
}
|
|
589
612
|
|
|
590
613
|
.ProseMirror li.nile-wysiwyg__task-item[data-checked='true'] > .nile-wysiwyg__task-content {
|
|
591
|
-
color: var(--nile-colors-neutral-500,
|
|
614
|
+
color: var(--nile-colors-neutral-500, var(--ng-colors-text-quaternary-500));
|
|
592
615
|
text-decoration: line-through;
|
|
593
616
|
}
|
|
594
617
|
|
|
@@ -597,12 +620,12 @@ export const styles = css `
|
|
|
597
620
|
padding: 4px 12px 6px;
|
|
598
621
|
text-align: right;
|
|
599
622
|
font-size: 12px;
|
|
600
|
-
color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary
|
|
601
|
-
border-top: 1px solid var(--nile-colors-neutral-200,
|
|
623
|
+
color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));
|
|
624
|
+
border-top: 1px solid var(--nile-colors-neutral-200, var(--ng-colors-border-secondary));
|
|
602
625
|
}
|
|
603
626
|
|
|
604
627
|
.nile-wysiwyg__counter.over {
|
|
605
|
-
color: var(--nile-colors-error-600,
|
|
628
|
+
color: var(--nile-colors-error-600, var(--ng-componentcolors-utility-error-600));
|
|
606
629
|
font-weight: 600;
|
|
607
630
|
}
|
|
608
631
|
|
|
@@ -626,7 +649,7 @@ export const styles = css `
|
|
|
626
649
|
z-index: 12;
|
|
627
650
|
background: var(
|
|
628
651
|
--nile-wysiwyg-bg,
|
|
629
|
-
var(--nile-colors-white-base, var(--ng-colors-bg-primary
|
|
652
|
+
var(--nile-colors-white-base, var(--ng-colors-bg-primary))
|
|
630
653
|
);
|
|
631
654
|
}
|
|
632
655
|
|
|
@@ -635,14 +658,14 @@ export const styles = css `
|
|
|
635
658
|
display: inline-block;
|
|
636
659
|
padding: 0 4px;
|
|
637
660
|
border-radius: 4px;
|
|
638
|
-
background: var(--nile-wysiwyg-mention-bg, var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50
|
|
639
|
-
color: var(--nile-wysiwyg-mention-color, var(--nile-colors-primary-700, var(--ng-componentcolors-utility-blue-700
|
|
661
|
+
background: var(--nile-wysiwyg-mention-bg, var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50)));
|
|
662
|
+
color: var(--nile-wysiwyg-mention-color, var(--nile-colors-primary-700, var(--ng-componentcolors-utility-blue-700)));
|
|
640
663
|
font-weight: 500;
|
|
641
664
|
white-space: nowrap;
|
|
642
665
|
}
|
|
643
666
|
|
|
644
667
|
.ProseMirror span.nile-wysiwyg__mention.ProseMirror-selectednode {
|
|
645
|
-
outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600
|
|
668
|
+
outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600));
|
|
646
669
|
}
|
|
647
670
|
|
|
648
671
|
/* --- Merge fields --- */
|
|
@@ -650,16 +673,22 @@ export const styles = css `
|
|
|
650
673
|
display: inline-block;
|
|
651
674
|
padding: 0 4px;
|
|
652
675
|
border-radius: 4px;
|
|
653
|
-
background: var(
|
|
654
|
-
|
|
655
|
-
|
|
676
|
+
background: var(
|
|
677
|
+
--nile-wysiwyg-merge-bg,
|
|
678
|
+
var(--nile-colors-neutral-100, var(--ng-colors-bg-tertiary))
|
|
679
|
+
);
|
|
680
|
+
color: var(
|
|
681
|
+
--nile-wysiwyg-merge-color,
|
|
682
|
+
var(--nile-colors-neutral-700, var(--ng-colors-text-primary-900))
|
|
683
|
+
);
|
|
684
|
+
border: 1px dashed var(--nile-colors-neutral-400, var(--ng-colors-border-primary));
|
|
656
685
|
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
657
686
|
font-size: 0.9em;
|
|
658
687
|
white-space: nowrap;
|
|
659
688
|
}
|
|
660
689
|
|
|
661
690
|
.ProseMirror span.nile-wysiwyg__merge-field.ProseMirror-selectednode {
|
|
662
|
-
outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600
|
|
691
|
+
outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600));
|
|
663
692
|
}
|
|
664
693
|
|
|
665
694
|
/* --- Math --- */
|
|
@@ -676,7 +705,7 @@ export const styles = css `
|
|
|
676
705
|
}
|
|
677
706
|
|
|
678
707
|
.ProseMirror span.nile-wysiwyg__math.ProseMirror-selectednode {
|
|
679
|
-
outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600
|
|
708
|
+
outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600));
|
|
680
709
|
border-radius: 3px;
|
|
681
710
|
}
|
|
682
711
|
|
|
@@ -686,7 +715,7 @@ export const styles = css `
|
|
|
686
715
|
}
|
|
687
716
|
|
|
688
717
|
.ProseMirror .nile-wysiwyg__suggestion {
|
|
689
|
-
background: var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50
|
|
718
|
+
background: var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50));
|
|
690
719
|
border-radius: 3px;
|
|
691
720
|
}
|
|
692
721
|
|
|
@@ -704,10 +733,10 @@ export const styles = css `
|
|
|
704
733
|
.nile-wysiwyg__upload-placeholder {
|
|
705
734
|
display: inline-block;
|
|
706
735
|
padding: 6px 12px;
|
|
707
|
-
border: 1px dashed var(--nile-colors-neutral-400,
|
|
736
|
+
border: 1px dashed var(--nile-colors-neutral-400, var(--ng-colors-border-primary));
|
|
708
737
|
border-radius: 6px;
|
|
709
|
-
background: var(--nile-colors-neutral-50,
|
|
710
|
-
color: var(--nile-colors-neutral-600,
|
|
738
|
+
background: var(--nile-colors-neutral-50, var(--ng-colors-bg-secondary));
|
|
739
|
+
color: var(--nile-colors-neutral-600, var(--ng-colors-text-tertiary-600));
|
|
711
740
|
font-size: 0.85em;
|
|
712
741
|
}
|
|
713
742
|
|
|
@@ -747,7 +776,11 @@ export const styles = css `
|
|
|
747
776
|
.nile-wysiwyg--show-blocks .ProseMirror ol,
|
|
748
777
|
.nile-wysiwyg--show-blocks .ProseMirror li,
|
|
749
778
|
.nile-wysiwyg--show-blocks .ProseMirror table {
|
|
750
|
-
outline: 1px dashed
|
|
779
|
+
outline: 1px dashed
|
|
780
|
+
var(
|
|
781
|
+
--nile-wysiwyg-block-outline,
|
|
782
|
+
var(--nile-colors-neutral-400, var(--ng-colors-border-primary))
|
|
783
|
+
);
|
|
751
784
|
outline-offset: -1px;
|
|
752
785
|
}
|
|
753
786
|
|
|
@@ -782,8 +815,8 @@ export const styles = css `
|
|
|
782
815
|
font-style: normal;
|
|
783
816
|
line-height: 14px;
|
|
784
817
|
letter-spacing: 0.5px;
|
|
785
|
-
color: var(--nile-colors-neutral-500,
|
|
786
|
-
background: var(--nile-colors-neutral-100,
|
|
818
|
+
color: var(--nile-colors-neutral-500, var(--ng-colors-text-tertiary-600));
|
|
819
|
+
background: var(--nile-colors-neutral-100, var(--ng-colors-bg-tertiary));
|
|
787
820
|
border-radius: 0 0 4px 0;
|
|
788
821
|
pointer-events: none;
|
|
789
822
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-wysiwyg-editor.css.js","sourceRoot":"","sources":["../../../src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8xBxB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`\n :host {\n display: block;\n font-family: var(\n --nile-wysiwyg-font-family,\n var(\n --nile-font-family-sans-serif,\n var(--ng-font-family-body, system-ui, -apple-system, sans-serif)\n )\n );\n }\n\n .nile-wysiwyg {\n position: relative;\n display: flex;\n flex-direction: column;\n border: 1px solid\n var(\n --nile-wysiwyg-border-color,\n var(--nile-colors-neutral-400, var(--ng-colors-border-neutral, #d0d5dd))\n );\n border-radius: var(\n --nile-wysiwyg-radius,\n var(--nile-radius-radius-xl, var(--ng-radius-md, 8px))\n );\n background: var(\n --nile-wysiwyg-bg,\n var(--nile-colors-white-base, var(--ng-colors-bg-primary, #ffffff))\n );\n box-sizing: border-box;\n }\n\n /* --- Fullscreen (distraction-free) mode --- */\n :host([fullscreen]) {\n position: fixed;\n inset: 0;\n z-index: var(--nile-wysiwyg-fullscreen-z-index, 1000);\n background: var(\n --nile-wysiwyg-bg,\n var(--nile-colors-white-base, var(--ng-colors-bg-primary, #ffffff))\n );\n }\n\n :host([fullscreen]) .nile-wysiwyg {\n height: 100%;\n border: none;\n border-radius: 0;\n }\n\n :host([fullscreen]) .nile-wysiwyg__surface {\n max-height: none;\n }\n\n :host([disabled]) .nile-wysiwyg {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled, #98a2b3));\n background: var(\n --nile-wysiwyg-disabled-bg,\n var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle, #f2f4f7))\n );\n cursor: not-allowed;\n pointer-events: none;\n }\n\n :host([disabled]) .ProseMirror {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle, #f2f4f7));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled, #98a2b3));\n }\n\n .nile-wysiwyg__surface {\n flex: 1;\n overflow-y: auto;\n max-height: var(--nile-wysiwyg-max-height, none);\n }\n\n /* --- ProseMirror base rules (inlined from prosemirror-view/style) --- */\n .ProseMirror {\n position: relative;\n word-wrap: break-word;\n white-space: pre-wrap;\n white-space: break-spaces;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: 'liga' 0;\n outline: none;\n padding: var(--nile-wysiwyg-content-padding, 12px);\n min-height: var(--nile-wysiwyg-min-height, 160px);\n font-size: var(--nile-wysiwyg-font-size, inherit);\n line-height: var(--nile-wysiwyg-line-height, inherit);\n tab-size: 4;\n -moz-tab-size: 4;\n word-break: break-word;\n color: var(\n --nile-wysiwyg-color,\n var(--nile-colors-dark-900, var(--ng-colors-text-primary, #101828))\n );\n box-sizing: border-box;\n border-radius: 0 0 var(--nile-wysiwyg-radius, var(--nile-radius-radius-xl, 8px))\n var(--nile-wysiwyg-radius, var(--nile-radius-radius-xl, 8px));\n }\n\n .ProseMirror pre {\n white-space: pre-wrap;\n }\n\n .ProseMirror li {\n position: relative;\n }\n\n .ProseMirror-hideselection *::selection {\n background: transparent;\n }\n\n .ProseMirror-hideselection {\n caret-color: transparent;\n }\n\n .ProseMirror-selectednode {\n outline: 2px solid\n var(--nile-wysiwyg-focus-border-color, var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600, #2563eb)));\n }\n\n /* Gap cursor (inlined from prosemirror-gapcursor/style) */\n .ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n }\n\n .ProseMirror-gapcursor:after {\n content: '';\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid currentColor;\n animation: nile-wysiwyg-cursor-blink 1.1s steps(2, start) infinite;\n }\n\n @keyframes nile-wysiwyg-cursor-blink {\n to {\n visibility: hidden;\n }\n }\n\n .ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n }\n\n /* --- Placeholder (legacy: neutral-500 at 0.7 opacity) --- */\n .nile-wysiwyg__empty::before {\n content: attr(data-placeholder);\n float: left;\n height: 0;\n pointer-events: none;\n user-select: none;\n opacity: 0.7;\n color: var(\n --nile-wysiwyg-placeholder-color,\n var(--nile-colors-neutral-500, var(--ng-colors-text-secondary, #98a2b3))\n );\n }\n\n /* --- Document content typography --- */\n .ProseMirror > :first-child {\n margin-top: 0;\n }\n\n .ProseMirror > :last-child {\n margin-bottom: 0;\n }\n\n /* Legacy nile-rich-text-editor typography */\n .ProseMirror p {\n margin: 1em 0;\n }\n\n .ProseMirror h1,\n .ProseMirror h2,\n .ProseMirror h3,\n .ProseMirror h4,\n .ProseMirror h5,\n .ProseMirror h6 {\n font-weight: bold;\n }\n\n .ProseMirror h1 {\n font-size: 2em;\n margin: 0.67em 0;\n }\n .ProseMirror h2 {\n font-size: 1.5em;\n margin: 0.83em 0;\n }\n .ProseMirror h3 {\n font-size: 1.17em;\n margin: 1em 0;\n }\n .ProseMirror h4 {\n font-size: 1em;\n margin: 1.33em 0;\n }\n .ProseMirror h5 {\n font-size: 0.83em;\n margin: 1.67em 0;\n }\n .ProseMirror h6 {\n font-size: 0.67em;\n margin: 2.33em 0;\n }\n\n .ProseMirror blockquote {\n margin: 0.5em 0;\n padding: 0.25em 0 0.25em 1em;\n border-left: 3px solid\n var(\n --nile-wysiwyg-blockquote-border,\n var(--nile-colors-neutral-300, #d0d5dd)\n );\n color: var(--nile-wysiwyg-blockquote-color, var(--nile-colors-neutral-600, #475467));\n }\n\n .ProseMirror ul,\n .ProseMirror ol {\n list-style-position: outside;\n padding-inline-start: 24px;\n }\n\n .ProseMirror hr {\n border: none;\n border-top: 1px solid var(--nile-wysiwyg-border-color, #d0d5dd);\n margin: 1em 0;\n }\n\n /* Legacy: brand color, no underline */\n .ProseMirror a {\n color: var(\n --nile-wysiwyg-link-color,\n var(--nile-colors-primary-600, var(--ng-colors-text-brand-tertiary-600, #2563eb))\n );\n text-decoration: none;\n cursor: pointer;\n }\n\n .ProseMirror code.nile-wysiwyg__inline-code {\n font-family: var(--nile-wysiwyg-code-font, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 0.9em;\n background: var(--nile-wysiwyg-code-bg, var(--nile-colors-neutral-100, #f2f4f7));\n border-radius: 4px;\n padding: 0.1em 0.35em;\n }\n\n /* --- Code blocks --- */\n .ProseMirror pre.nile-wysiwyg__code-block {\n font-family: var(--nile-wysiwyg-code-font, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 0.9em;\n background: var(--nile-wysiwyg-code-bg, var(--nile-colors-neutral-100, #f2f4f7));\n border: 1px solid var(--nile-colors-neutral-200, #eaecf0);\n border-radius: 6px;\n padding: 12px 14px;\n margin: 0.5em 0;\n overflow-x: auto;\n }\n\n /* --- Tables (rules required by prosemirror-tables) --- */\n .ProseMirror .tableWrapper {\n overflow-x: auto;\n margin: 0.5em 0;\n }\n\n .ProseMirror table {\n border-collapse: collapse;\n table-layout: fixed;\n width: 100%;\n overflow: hidden;\n }\n\n .ProseMirror td,\n .ProseMirror th {\n vertical-align: top;\n box-sizing: border-box;\n position: relative;\n border: 1px solid var(--nile-wysiwyg-table-border, var(--nile-colors-neutral-300, #d0d5dd));\n padding: 6px 8px;\n min-width: 1em;\n }\n\n .ProseMirror th {\n background: var(--nile-wysiwyg-table-header-bg, var(--nile-colors-neutral-50, #f9fafb));\n font-weight: 600;\n text-align: left;\n }\n\n \n .ProseMirror td > *,\n .ProseMirror th > * {\n margin-top: 0;\n margin-bottom: 0;\n }\n\n .ProseMirror .column-resize-handle {\n position: absolute;\n right: -2px;\n top: 0;\n bottom: 0;\n width: 4px;\n z-index: 20;\n background-color: var(--nile-colors-primary-300, #b692f6);\n pointer-events: none;\n }\n\n .ProseMirror.resize-cursor {\n cursor: ew-resize;\n cursor: col-resize;\n }\n\n /* --- Layout tables (role=\"presentation\"): borderless output, dashed\n guides while editing so the structure stays visible. --- */\n .ProseMirror table[data-layout] td,\n .ProseMirror table[data-layout] th {\n border: 1px dashed var(--nile-colors-neutral-300, #e4e7ec);\n background: transparent;\n font-weight: inherit;\n text-align: inherit;\n }\n\n /* --- Bookmarks: invisible anchors get a flag marker while editing --- */\n .ProseMirror a[data-bookmark] {\n display: inline-block;\n vertical-align: baseline;\n cursor: default;\n text-decoration: none;\n }\n\n .ProseMirror a[data-bookmark]::after {\n content: '⚑';\n font-size: 12px;\n line-height: 1;\n padding: 0 1px;\n color: var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600, #2563eb));\n }\n\n .ProseMirror .selectedCell:after {\n z-index: 2;\n position: absolute;\n content: '';\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: var(--nile-wysiwyg-cell-selection, rgba(127, 86, 217, 0.12));\n pointer-events: none;\n }\n\n /* --- Images (ProseMirror's standard inline image node) --- */\n .ProseMirror img {\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n\n /* --- Image resize handles --- */\n .ProseMirror .nile-wysiwyg__image-resizer {\n position: relative;\n display: inline-block;\n line-height: 0;\n max-width: 100%;\n }\n\n .ProseMirror .nile-wysiwyg__resize-handle {\n display: none;\n position: absolute;\n width: 9px;\n height: 9px;\n background: var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600, #2563eb));\n border: 1.5px solid #ffffff;\n border-radius: 2px;\n z-index: 2;\n }\n\n .ProseMirror .nile-wysiwyg__image-resizer--selected .nile-wysiwyg__resize-handle {\n display: block;\n }\n\n .ProseMirror .nile-wysiwyg__image-resizer--selected img {\n outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600, #2563eb));\n }\n\n .ProseMirror .nile-wysiwyg__resize-handle--nw { top: -5px; left: -5px; cursor: nwse-resize; }\n .ProseMirror .nile-wysiwyg__resize-handle--ne { top: -5px; right: -5px; cursor: nesw-resize; }\n .ProseMirror .nile-wysiwyg__resize-handle--sw { bottom: -5px; left: -5px; cursor: nesw-resize; }\n .ProseMirror .nile-wysiwyg__resize-handle--se { bottom: -5px; right: -5px; cursor: nwse-resize; }\n\n /* --- Captioned figures --- */\n .ProseMirror figure.nile-wysiwyg__figure {\n margin: 0.75em 0;\n max-width: 100%;\n }\n\n .ProseMirror figure.nile-wysiwyg__figure[data-align='center'] {\n margin-left: auto;\n margin-right: auto;\n }\n\n .ProseMirror figure.nile-wysiwyg__figure[data-align='right'] {\n margin-left: auto;\n margin-right: 0;\n }\n\n .ProseMirror figure.nile-wysiwyg__figure img {\n width: 100%;\n display: block;\n }\n\n .ProseMirror figure.nile-wysiwyg__figure .nile-wysiwyg__image-resizer {\n display: block;\n }\n\n .ProseMirror .nile-wysiwyg__figcaption {\n font-size: 0.85em;\n color: var(--nile-colors-neutral-500, #667085);\n text-align: center;\n padding: 4px 8px;\n line-height: 1.4;\n }\n\n .ProseMirror figure.nile-wysiwyg__figure--empty-caption .nile-wysiwyg__figcaption::before {\n content: 'Add a caption…';\n float: left;\n width: 100%;\n pointer-events: none;\n color: var(--nile-colors-neutral-400, #98a2b3);\n margin-bottom: -1.4em;\n }\n\n .ProseMirror figure.nile-wysiwyg__figure--selected {\n border-radius: 4px;\n }\n\n /* --- Embeds --- */\n .ProseMirror div.nile-wysiwyg__embed {\n position: relative;\n aspect-ratio: 16 / 9;\n /* Default size; an inline width from drag-resize overrides it, capped by\n max-width. overflow stays visible so the resize handles aren't clipped\n (rounding lives on the iframe). */\n width: min(640px, 100%);\n max-width: 100%;\n margin: 0.75em 0;\n border-radius: 8px;\n background: var(--nile-colors-neutral-100, #f2f4f7);\n }\n\n .ProseMirror div.nile-wysiwyg__embed iframe {\n width: 100%;\n height: 100%;\n border: 0;\n display: block;\n border-radius: 8px;\n /* Editing mode: the first click selects the node instead of hitting the\n iframe; once selected (or in readonly) the video is interactive. */\n pointer-events: none;\n }\n\n .ProseMirror div.nile-wysiwyg__embed.ProseMirror-selectednode iframe,\n :host([readonly]) .ProseMirror div.nile-wysiwyg__embed iframe {\n pointer-events: auto;\n }\n\n .ProseMirror div.nile-wysiwyg__embed.ProseMirror-selectednode {\n outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600, #2563eb));\n }\n\n .ProseMirror div.nile-wysiwyg__embed.ProseMirror-selectednode .nile-wysiwyg__resize-handle {\n display: block;\n }\n\n /* A live resize drag must not lose mousemove to the embedded document. */\n .ProseMirror div.nile-wysiwyg__embed.nile-wysiwyg__resizing iframe {\n pointer-events: none !important;\n }\n\n /* --- Code highlighting (compact light theme for hljs tokens) --- */\n .ProseMirror .hljs-comment,\n .ProseMirror .hljs-quote {\n color: #a0a1a7;\n font-style: italic;\n }\n\n .ProseMirror .hljs-keyword,\n .ProseMirror .hljs-selector-tag,\n .ProseMirror .hljs-formula,\n .ProseMirror .hljs-doctag {\n color: #a626a4;\n }\n\n .ProseMirror .hljs-section,\n .ProseMirror .hljs-name,\n .ProseMirror .hljs-selector-id,\n .ProseMirror .hljs-selector-class,\n .ProseMirror .hljs-deletion,\n .ProseMirror .hljs-subst,\n .ProseMirror .hljs-tag {\n color: #e45649;\n }\n\n .ProseMirror .hljs-literal,\n .ProseMirror .hljs-built_in,\n .ProseMirror .hljs-bullet {\n color: #0184bb;\n }\n\n .ProseMirror .hljs-string,\n .ProseMirror .hljs-regexp,\n .ProseMirror .hljs-addition,\n .ProseMirror .hljs-attribute,\n .ProseMirror .hljs-meta .hljs-string {\n color: #50a14f;\n }\n\n .ProseMirror .hljs-attr,\n .ProseMirror .hljs-variable,\n .ProseMirror .hljs-template-variable,\n .ProseMirror .hljs-type,\n .ProseMirror .hljs-selector-attr,\n .ProseMirror .hljs-selector-pseudo,\n .ProseMirror .hljs-number {\n color: #986801;\n }\n\n .ProseMirror .hljs-symbol,\n .ProseMirror .hljs-meta,\n .ProseMirror .hljs-link,\n .ProseMirror .hljs-operator,\n .ProseMirror .hljs-title,\n .ProseMirror .hljs-title.class_,\n .ProseMirror .hljs-title.function_ {\n color: #4078f2;\n }\n\n .ProseMirror .hljs-emphasis {\n font-style: italic;\n }\n\n .ProseMirror .hljs-strong {\n font-weight: bold;\n }\n\n /* --- Checklists --- */\n .ProseMirror ul.nile-wysiwyg__task-list {\n list-style: none;\n padding-inline-start: 4px;\n }\n\n .ProseMirror li.nile-wysiwyg__task-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n }\n\n .ProseMirror li.nile-wysiwyg__task-item > input[type='checkbox'] {\n /* Center on the first text line: (1 line box - checkbox height) / 2. */\n margin: calc((1em * 1.45 - 14px) / 2) 0 0;\n width: 14px;\n height: 14px;\n flex: none;\n cursor: pointer;\n accent-color: var(--nile-colors-primary-600, #2563eb);\n }\n\n .ProseMirror li.nile-wysiwyg__task-item > .nile-wysiwyg__task-content {\n flex: 1;\n min-width: 0;\n }\n\n /* The content's paragraph margins (legacy 1em) push text below the\n checkbox — strip them at the edges of each item. */\n .ProseMirror li.nile-wysiwyg__task-item > .nile-wysiwyg__task-content > :first-child {\n margin-top: 0;\n }\n\n .ProseMirror li.nile-wysiwyg__task-item > .nile-wysiwyg__task-content > :last-child {\n margin-bottom: 0;\n }\n\n .ProseMirror ul.nile-wysiwyg__task-list > li + li {\n margin-top: 0.35em;\n }\n\n .ProseMirror li.nile-wysiwyg__task-item[data-checked='true'] > .nile-wysiwyg__task-content {\n color: var(--nile-colors-neutral-500, #98a2b3);\n text-decoration: line-through;\n }\n\n /* --- Counter footer --- */\n .nile-wysiwyg__counter {\n padding: 4px 12px 6px;\n text-align: right;\n font-size: 12px;\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary, #98a2b3));\n border-top: 1px solid var(--nile-colors-neutral-200, #eaecf0);\n }\n\n .nile-wysiwyg__counter.over {\n color: var(--nile-colors-error-600, #d92d20);\n font-weight: 600;\n }\n\n /* --- Author <style> block (from HTML source) ---\n Applied live by StyleBlockView (a hidden <style> host, scoped to the\n content); the block renders nothing in the editor. */\n .nile-wysiwyg__style-block {\n display: none;\n }\n\n /* --- Sticky toolbar ---\n Pins to the top of the scroll container. Note: sticky anchors to the\n container's PADDING box, so if the scroll container has top padding, a\n band of content shows above the toolbar — set --nile-wysiwyg-sticky-top\n (or remove the container's top padding) to compensate. The opaque\n background makes the pinned bar self-backing so content can never bleed\n through it. */\n :host([sticky-toolbar]) nile-wysiwyg-toolbar {\n position: sticky;\n top: var(--nile-wysiwyg-sticky-top, 0);\n z-index: 12;\n background: var(\n --nile-wysiwyg-bg,\n var(--nile-colors-white-base, var(--ng-colors-bg-primary, #ffffff))\n );\n }\n\n /* --- Mentions & suggestions --- */\n .ProseMirror span.nile-wysiwyg__mention {\n display: inline-block;\n padding: 0 4px;\n border-radius: 4px;\n background: var(--nile-wysiwyg-mention-bg, var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50, #eff4ff)));\n color: var(--nile-wysiwyg-mention-color, var(--nile-colors-primary-700, var(--ng-componentcolors-utility-blue-700, #1d4ed8)));\n font-weight: 500;\n white-space: nowrap;\n }\n\n .ProseMirror span.nile-wysiwyg__mention.ProseMirror-selectednode {\n outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600, #2563eb));\n }\n\n /* --- Merge fields --- */\n .ProseMirror span.nile-wysiwyg__merge-field {\n display: inline-block;\n padding: 0 4px;\n border-radius: 4px;\n background: var(--nile-wysiwyg-merge-bg, var(--nile-colors-neutral-100, #f2f4f7));\n color: var(--nile-wysiwyg-merge-color, var(--nile-colors-neutral-700, #344054));\n border: 1px dashed var(--nile-colors-neutral-400, #d0d5dd);\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n font-size: 0.9em;\n white-space: nowrap;\n }\n\n .ProseMirror span.nile-wysiwyg__merge-field.ProseMirror-selectednode {\n outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600, #2563eb));\n }\n\n /* --- Math --- */\n .ProseMirror span.nile-wysiwyg__math {\n display: inline-block;\n padding: 0 2px;\n font-family: \"Cambria Math\", \"Latin Modern Math\", serif;\n }\n\n .ProseMirror span.nile-wysiwyg__math--block {\n display: block;\n text-align: center;\n margin: 8px 0;\n }\n\n .ProseMirror span.nile-wysiwyg__math.ProseMirror-selectednode {\n outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600, #2563eb));\n border-radius: 3px;\n }\n\n /* Format painter armed: hint the next selection will be painted. */\n .ProseMirror.nile-wysiwyg--painting {\n cursor: cell;\n }\n\n .ProseMirror .nile-wysiwyg__suggestion {\n background: var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50, #eff4ff));\n border-radius: 3px;\n }\n\n /* --- Find & replace highlights --- */\n .ProseMirror .nile-wysiwyg__find-match {\n background: var(--nile-wysiwyg-find-bg, rgba(255, 214, 102, 0.45));\n border-radius: 2px;\n }\n\n .ProseMirror .nile-wysiwyg__find-active {\n background: var(--nile-wysiwyg-find-active-bg, rgba(255, 170, 0, 0.65));\n }\n\n /* --- Upload placeholder --- */\n .nile-wysiwyg__upload-placeholder {\n display: inline-block;\n padding: 6px 12px;\n border: 1px dashed var(--nile-colors-neutral-400, #d0d5dd);\n border-radius: 6px;\n background: var(--nile-colors-neutral-50, #f9fafb);\n color: var(--nile-colors-neutral-600, #475467);\n font-size: 0.85em;\n }\n\n /* --- Multi-level (legal) ordered lists: 1 / 1.1 / 1.1.1 numbering.\n Serialized output carries data-list-style=\"multilevel\"; consumers\n rendering it outside the editor need these same counter rules. --- */\n .ProseMirror ol[data-list-style='multilevel'],\n .ProseMirror ol[data-list-style='multilevel'] ol {\n list-style: none;\n counter-reset: nile-multilevel;\n }\n\n .ProseMirror ol[data-list-style='multilevel'] > li,\n .ProseMirror ol[data-list-style='multilevel'] ol > li {\n counter-increment: nile-multilevel;\n }\n\n /* The number sits inside the item's first paragraph so it shares a line. */\n .ProseMirror ol[data-list-style='multilevel'] > li > p:first-child::before,\n .ProseMirror ol[data-list-style='multilevel'] ol > li > p:first-child::before {\n content: counters(nile-multilevel, '.') '. ';\n font-variant-numeric: tabular-nums;\n }\n\n /* --- Show blocks: dashed outlines + tag labels while editing --- */\n .nile-wysiwyg--show-blocks .ProseMirror p,\n .nile-wysiwyg--show-blocks .ProseMirror h1,\n .nile-wysiwyg--show-blocks .ProseMirror h2,\n .nile-wysiwyg--show-blocks .ProseMirror h3,\n .nile-wysiwyg--show-blocks .ProseMirror h4,\n .nile-wysiwyg--show-blocks .ProseMirror h5,\n .nile-wysiwyg--show-blocks .ProseMirror h6,\n .nile-wysiwyg--show-blocks .ProseMirror blockquote,\n .nile-wysiwyg--show-blocks .ProseMirror pre,\n .nile-wysiwyg--show-blocks .ProseMirror figure,\n .nile-wysiwyg--show-blocks .ProseMirror ul,\n .nile-wysiwyg--show-blocks .ProseMirror ol,\n .nile-wysiwyg--show-blocks .ProseMirror li,\n .nile-wysiwyg--show-blocks .ProseMirror table {\n outline: 1px dashed var(--nile-wysiwyg-block-outline, var(--nile-colors-neutral-400, #d0d5dd));\n outline-offset: -1px;\n }\n\n .nile-wysiwyg--show-blocks .ProseMirror p,\n .nile-wysiwyg--show-blocks .ProseMirror h1,\n .nile-wysiwyg--show-blocks .ProseMirror h2,\n .nile-wysiwyg--show-blocks .ProseMirror h3,\n .nile-wysiwyg--show-blocks .ProseMirror h4,\n .nile-wysiwyg--show-blocks .ProseMirror h5,\n .nile-wysiwyg--show-blocks .ProseMirror h6,\n .nile-wysiwyg--show-blocks .ProseMirror blockquote,\n .nile-wysiwyg--show-blocks .ProseMirror pre {\n position: relative;\n }\n\n .nile-wysiwyg--show-blocks .ProseMirror p::after,\n .nile-wysiwyg--show-blocks .ProseMirror h1::after,\n .nile-wysiwyg--show-blocks .ProseMirror h2::after,\n .nile-wysiwyg--show-blocks .ProseMirror h3::after,\n .nile-wysiwyg--show-blocks .ProseMirror h4::after,\n .nile-wysiwyg--show-blocks .ProseMirror h5::after,\n .nile-wysiwyg--show-blocks .ProseMirror h6::after,\n .nile-wysiwyg--show-blocks .ProseMirror blockquote::after,\n .nile-wysiwyg--show-blocks .ProseMirror pre::after {\n position: absolute;\n top: 0;\n left: 0;\n padding: 0 3px;\n font-family: system-ui, sans-serif;\n font-size: 9px;\n font-weight: 600;\n font-style: normal;\n line-height: 14px;\n letter-spacing: 0.5px;\n color: var(--nile-colors-neutral-500, #667085);\n background: var(--nile-colors-neutral-100, #f2f4f7);\n border-radius: 0 0 4px 0;\n pointer-events: none;\n }\n\n .nile-wysiwyg--show-blocks .ProseMirror p::after { content: 'P'; }\n .nile-wysiwyg--show-blocks .ProseMirror h1::after { content: 'H1'; }\n .nile-wysiwyg--show-blocks .ProseMirror h2::after { content: 'H2'; }\n .nile-wysiwyg--show-blocks .ProseMirror h3::after { content: 'H3'; }\n .nile-wysiwyg--show-blocks .ProseMirror h4::after { content: 'H4'; }\n .nile-wysiwyg--show-blocks .ProseMirror h5::after { content: 'H5'; }\n .nile-wysiwyg--show-blocks .ProseMirror h6::after { content: 'H6'; }\n .nile-wysiwyg--show-blocks .ProseMirror blockquote::after { content: 'QUOTE'; }\n .nile-wysiwyg--show-blocks .ProseMirror pre::after { content: 'PRE'; }\n`;\n"]}
|
|
1
|
+
{"version":3,"file":"nile-wysiwyg-editor.css.js","sourceRoot":"","sources":["../../../src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+zBxB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`\n :host {\n display: block;\n font-family: var(\n --nile-wysiwyg-font-family,\n var(\n --nile-font-family-sans-serif,\n var(--ng-font-family-body, system-ui, -apple-system, sans-serif)\n )\n );\n }\n\n .nile-wysiwyg {\n position: relative;\n display: flex;\n flex-direction: column;\n border: 1px solid\n var(\n --nile-wysiwyg-border-color,\n var(--nile-colors-neutral-400, var(--ng-colors-border-neutral))\n );\n border-radius: var(\n --nile-wysiwyg-radius,\n var(--nile-radius-radius-xl, var(--ng-radius-md, 8px))\n );\n background: var(\n --nile-wysiwyg-bg,\n var(--nile-colors-white-base, var(--ng-colors-bg-primary))\n );\n box-sizing: border-box;\n }\n\n /* --- Fullscreen (distraction-free) mode --- */\n :host([fullscreen]) {\n position: fixed;\n inset: 0;\n z-index: var(--nile-wysiwyg-fullscreen-z-index, 1000);\n background: var(\n --nile-wysiwyg-bg,\n var(--nile-colors-white-base, var(--ng-colors-bg-primary))\n );\n }\n\n :host([fullscreen]) .nile-wysiwyg {\n height: 100%;\n border: none;\n border-radius: 0;\n }\n\n :host([fullscreen]) .nile-wysiwyg__surface {\n max-height: none;\n }\n\n :host([disabled]) .nile-wysiwyg {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n background: var(\n --nile-wysiwyg-disabled-bg,\n var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle))\n );\n cursor: not-allowed;\n pointer-events: none;\n }\n\n :host([disabled]) .ProseMirror {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n }\n\n .nile-wysiwyg__surface {\n flex: 1;\n overflow-y: auto;\n max-height: var(--nile-wysiwyg-max-height, none);\n }\n\n /* --- ProseMirror base rules (inlined from prosemirror-view/style) --- */\n .ProseMirror {\n position: relative;\n word-wrap: break-word;\n white-space: pre-wrap;\n white-space: break-spaces;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: 'liga' 0;\n outline: none;\n padding: var(--nile-wysiwyg-content-padding, 12px);\n min-height: var(--nile-wysiwyg-min-height, 160px);\n font-size: var(--nile-wysiwyg-font-size, inherit);\n line-height: var(--nile-wysiwyg-line-height, inherit);\n tab-size: 4;\n -moz-tab-size: 4;\n word-break: break-word;\n color: var(\n --nile-wysiwyg-color,\n var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))\n );\n box-sizing: border-box;\n border-radius: 0 0 var(--nile-wysiwyg-radius, var(--nile-radius-radius-xl, 8px))\n var(--nile-wysiwyg-radius, var(--nile-radius-radius-xl, 8px));\n }\n\n .ProseMirror pre {\n white-space: pre-wrap;\n }\n\n .ProseMirror li {\n position: relative;\n }\n\n .ProseMirror-hideselection *::selection {\n background: transparent;\n }\n\n .ProseMirror-hideselection {\n caret-color: transparent;\n }\n\n .ProseMirror-selectednode {\n outline: 2px solid\n var(--nile-wysiwyg-focus-border-color, var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600)));\n }\n\n /* Gap cursor (inlined from prosemirror-gapcursor/style) */\n .ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n }\n\n .ProseMirror-gapcursor:after {\n content: '';\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid currentColor;\n animation: nile-wysiwyg-cursor-blink 1.1s steps(2, start) infinite;\n }\n\n @keyframes nile-wysiwyg-cursor-blink {\n to {\n visibility: hidden;\n }\n }\n\n .ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n }\n\n /* --- Placeholder (legacy: neutral-500 at 0.7 opacity) --- */\n .nile-wysiwyg__empty::before {\n content: attr(data-placeholder);\n float: left;\n height: 0;\n pointer-events: none;\n user-select: none;\n opacity: 0.7;\n color: var(\n --nile-wysiwyg-placeholder-color,\n var(--nile-colors-neutral-500, var(--ng-colors-text-secondary))\n );\n }\n\n /* --- Document content typography --- */\n .ProseMirror > :first-child {\n margin-top: 0;\n }\n\n .ProseMirror > :last-child {\n margin-bottom: 0;\n }\n\n /* Legacy nile-rich-text-editor typography */\n .ProseMirror p {\n margin: 1em 0;\n }\n\n .ProseMirror h1,\n .ProseMirror h2,\n .ProseMirror h3,\n .ProseMirror h4,\n .ProseMirror h5,\n .ProseMirror h6 {\n font-weight: bold;\n }\n\n .ProseMirror h1 {\n font-size: 2em;\n margin: 0.67em 0;\n }\n .ProseMirror h2 {\n font-size: 1.5em;\n margin: 0.83em 0;\n }\n .ProseMirror h3 {\n font-size: 1.17em;\n margin: 1em 0;\n }\n .ProseMirror h4 {\n font-size: 1em;\n margin: 1.33em 0;\n }\n .ProseMirror h5 {\n font-size: 0.83em;\n margin: 1.67em 0;\n }\n .ProseMirror h6 {\n font-size: 0.67em;\n margin: 2.33em 0;\n }\n\n .ProseMirror blockquote {\n margin: 0.5em 0;\n padding: 0.25em 0 0.25em 1em;\n border-left: 3px solid\n var(\n --nile-wysiwyg-blockquote-border,\n var(--nile-colors-neutral-300, var(--ng-colors-border-primary))\n );\n color: var(\n --nile-wysiwyg-blockquote-color,\n var(--nile-colors-neutral-600, var(--ng-colors-text-tertiary-600))\n );\n }\n\n .ProseMirror ul,\n .ProseMirror ol {\n list-style-position: outside;\n padding-inline-start: 24px;\n }\n\n .ProseMirror hr {\n border: none;\n border-top: 1px solid\n var(--nile-wysiwyg-border-color, var(--ng-colors-border-neutral));\n margin: 1em 0;\n }\n\n /* Legacy: brand color, no underline */\n .ProseMirror a {\n color: var(\n --nile-wysiwyg-link-color,\n var(--nile-colors-primary-600, var(--ng-colors-text-brand-tertiary-600))\n );\n text-decoration: none;\n cursor: pointer;\n }\n\n .ProseMirror code.nile-wysiwyg__inline-code {\n font-family: var(--nile-wysiwyg-code-font, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 0.9em;\n background: var(\n --nile-wysiwyg-code-bg,\n var(--nile-colors-neutral-100, var(--ng-colors-bg-tertiary))\n );\n border-radius: 4px;\n padding: 0.1em 0.35em;\n }\n\n /* --- Code blocks --- */\n .ProseMirror pre.nile-wysiwyg__code-block {\n font-family: var(--nile-wysiwyg-code-font, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 0.9em;\n background: var(\n --nile-wysiwyg-code-bg,\n var(--nile-colors-neutral-100, var(--ng-colors-bg-tertiary))\n );\n border: 1px solid var(--nile-colors-neutral-200, var(--ng-colors-border-secondary));\n border-radius: 6px;\n padding: 12px 14px;\n margin: 0.5em 0;\n overflow-x: auto;\n }\n\n /* --- Tables (rules required by prosemirror-tables) --- */\n .ProseMirror .tableWrapper {\n overflow-x: auto;\n margin: 0.5em 0;\n }\n\n .ProseMirror table {\n border-collapse: collapse;\n table-layout: fixed;\n width: 100%;\n overflow: hidden;\n }\n\n .ProseMirror td,\n .ProseMirror th {\n vertical-align: top;\n box-sizing: border-box;\n position: relative;\n border: 1px solid\n var(\n --nile-wysiwyg-table-border,\n var(--nile-colors-neutral-300, var(--ng-colors-border-primary))\n );\n padding: 6px 8px;\n min-width: 1em;\n }\n\n .ProseMirror th {\n background: var(\n --nile-wysiwyg-table-header-bg,\n var(--nile-colors-neutral-50, var(--ng-colors-bg-secondary))\n );\n font-weight: 600;\n text-align: left;\n }\n\n \n .ProseMirror td > *,\n .ProseMirror th > * {\n margin-top: 0;\n margin-bottom: 0;\n }\n\n .ProseMirror .column-resize-handle {\n position: absolute;\n right: -2px;\n top: 0;\n bottom: 0;\n width: 4px;\n z-index: 20;\n background-color: var(--nile-colors-primary-300, var(--ng-componentcolors-utility-purple-300));\n pointer-events: none;\n }\n\n .ProseMirror.resize-cursor {\n cursor: ew-resize;\n cursor: col-resize;\n }\n\n /* --- Layout tables (role=\"presentation\"): borderless output, dashed\n guides while editing so the structure stays visible. --- */\n .ProseMirror table[data-layout] td,\n .ProseMirror table[data-layout] th {\n border: 1px dashed var(--nile-colors-neutral-300, var(--ng-colors-border-primary));\n background: transparent;\n font-weight: inherit;\n text-align: inherit;\n }\n\n /* --- Bookmarks: invisible anchors get a flag marker while editing --- */\n .ProseMirror a[data-bookmark] {\n display: inline-block;\n vertical-align: baseline;\n cursor: default;\n text-decoration: none;\n }\n\n .ProseMirror a[data-bookmark]::after {\n content: '⚑';\n font-size: 12px;\n line-height: 1;\n padding: 0 1px;\n color: var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600));\n }\n\n .ProseMirror .selectedCell:after {\n z-index: 2;\n position: absolute;\n content: '';\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: var(--nile-wysiwyg-cell-selection, rgba(127, 86, 217, 0.12));\n pointer-events: none;\n }\n\n /* --- Images (ProseMirror's standard inline image node) --- */\n .ProseMirror img {\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n\n /* --- Image resize handles --- */\n .ProseMirror .nile-wysiwyg__image-resizer {\n position: relative;\n display: inline-block;\n line-height: 0;\n max-width: 100%;\n }\n\n .ProseMirror .nile-wysiwyg__resize-handle {\n display: none;\n position: absolute;\n width: 9px;\n height: 9px;\n background: var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600));\n border: 1.5px solid var(--ng-colors-bg-primary);\n border-radius: 2px;\n z-index: 2;\n }\n\n .ProseMirror .nile-wysiwyg__image-resizer--selected .nile-wysiwyg__resize-handle {\n display: block;\n }\n\n .ProseMirror .nile-wysiwyg__image-resizer--selected img {\n outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600));\n }\n\n .ProseMirror .nile-wysiwyg__resize-handle--nw { top: -5px; left: -5px; cursor: nwse-resize; }\n .ProseMirror .nile-wysiwyg__resize-handle--ne { top: -5px; right: -5px; cursor: nesw-resize; }\n .ProseMirror .nile-wysiwyg__resize-handle--sw { bottom: -5px; left: -5px; cursor: nesw-resize; }\n .ProseMirror .nile-wysiwyg__resize-handle--se { bottom: -5px; right: -5px; cursor: nwse-resize; }\n\n /* --- Captioned figures --- */\n .ProseMirror figure.nile-wysiwyg__figure {\n margin: 0.75em 0;\n max-width: 100%;\n }\n\n .ProseMirror figure.nile-wysiwyg__figure[data-align='center'] {\n margin-left: auto;\n margin-right: auto;\n }\n\n .ProseMirror figure.nile-wysiwyg__figure[data-align='right'] {\n margin-left: auto;\n margin-right: 0;\n }\n\n .ProseMirror figure.nile-wysiwyg__figure img {\n width: 100%;\n display: block;\n }\n\n .ProseMirror figure.nile-wysiwyg__figure .nile-wysiwyg__image-resizer {\n display: block;\n }\n\n .ProseMirror .nile-wysiwyg__figcaption {\n font-size: 0.85em;\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-tertiary-600));\n text-align: center;\n padding: 4px 8px;\n line-height: 1.4;\n }\n\n .ProseMirror figure.nile-wysiwyg__figure--empty-caption .nile-wysiwyg__figcaption::before {\n content: 'Add a caption…';\n float: left;\n width: 100%;\n pointer-events: none;\n color: var(--nile-colors-neutral-400, var(--ng-colors-text-quaternary-500));\n margin-bottom: -1.4em;\n }\n\n .ProseMirror figure.nile-wysiwyg__figure--selected {\n border-radius: 4px;\n }\n\n /* --- Embeds --- */\n .ProseMirror div.nile-wysiwyg__embed {\n position: relative;\n aspect-ratio: 16 / 9;\n /* Default size; an inline width from drag-resize overrides it, capped by\n max-width. overflow stays visible so the resize handles aren't clipped\n (rounding lives on the iframe). */\n width: min(640px, 100%);\n max-width: 100%;\n margin: 0.75em 0;\n border-radius: 8px;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-tertiary));\n }\n\n .ProseMirror div.nile-wysiwyg__embed iframe {\n width: 100%;\n height: 100%;\n border: 0;\n display: block;\n border-radius: 8px;\n /* Editing mode: the first click selects the node instead of hitting the\n iframe; once selected (or in readonly) the video is interactive. */\n pointer-events: none;\n }\n\n .ProseMirror div.nile-wysiwyg__embed.ProseMirror-selectednode iframe,\n :host([readonly]) .ProseMirror div.nile-wysiwyg__embed iframe {\n pointer-events: auto;\n }\n\n .ProseMirror div.nile-wysiwyg__embed.ProseMirror-selectednode {\n outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600));\n }\n\n .ProseMirror div.nile-wysiwyg__embed.ProseMirror-selectednode .nile-wysiwyg__resize-handle {\n display: block;\n }\n\n /* A live resize drag must not lose mousemove to the embedded document. */\n .ProseMirror div.nile-wysiwyg__embed.nile-wysiwyg__resizing iframe {\n pointer-events: none !important;\n }\n\n /* --- Code highlighting (hljs tokens) ---\n Each hue routes through an --ng-componentcolors-utility-* token, which the\n token layer remaps to its lighter 400 step in the dark theme. Hardcoding the\n one-light palette here left syntax unreadable on the dark code surface. --- */\n .ProseMirror .hljs-comment,\n .ProseMirror .hljs-quote {\n color: var(--ng-componentcolors-utility-gray-500);\n font-style: italic;\n }\n\n .ProseMirror .hljs-keyword,\n .ProseMirror .hljs-selector-tag,\n .ProseMirror .hljs-formula,\n .ProseMirror .hljs-doctag {\n color: var(--ng-componentcolors-utility-purple-600);\n }\n\n .ProseMirror .hljs-section,\n .ProseMirror .hljs-name,\n .ProseMirror .hljs-selector-id,\n .ProseMirror .hljs-selector-class,\n .ProseMirror .hljs-deletion,\n .ProseMirror .hljs-subst,\n .ProseMirror .hljs-tag {\n color: var(--ng-componentcolors-utility-error-600);\n }\n\n .ProseMirror .hljs-literal,\n .ProseMirror .hljs-built_in,\n .ProseMirror .hljs-bullet {\n color: var(--ng-componentcolors-utility-blue-600);\n }\n\n .ProseMirror .hljs-string,\n .ProseMirror .hljs-regexp,\n .ProseMirror .hljs-addition,\n .ProseMirror .hljs-attribute,\n .ProseMirror .hljs-meta .hljs-string {\n color: var(--ng-componentcolors-utility-green-600);\n }\n\n .ProseMirror .hljs-attr,\n .ProseMirror .hljs-variable,\n .ProseMirror .hljs-template-variable,\n .ProseMirror .hljs-type,\n .ProseMirror .hljs-selector-attr,\n .ProseMirror .hljs-selector-pseudo,\n .ProseMirror .hljs-number {\n color: var(--ng-componentcolors-utility-orange-600);\n }\n\n .ProseMirror .hljs-symbol,\n .ProseMirror .hljs-meta,\n .ProseMirror .hljs-link,\n .ProseMirror .hljs-operator,\n .ProseMirror .hljs-title,\n .ProseMirror .hljs-title.class_,\n .ProseMirror .hljs-title.function_ {\n color: var(--ng-componentcolors-utility-indigo-600);\n }\n\n .ProseMirror .hljs-emphasis {\n font-style: italic;\n }\n\n .ProseMirror .hljs-strong {\n font-weight: bold;\n }\n\n /* --- Checklists --- */\n .ProseMirror ul.nile-wysiwyg__task-list {\n list-style: none;\n padding-inline-start: 4px;\n }\n\n .ProseMirror li.nile-wysiwyg__task-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n }\n\n .ProseMirror li.nile-wysiwyg__task-item > input[type='checkbox'] {\n /* Center on the first text line: (1 line box - checkbox height) / 2. */\n margin: calc((1em * 1.45 - 14px) / 2) 0 0;\n width: 14px;\n height: 14px;\n flex: none;\n cursor: pointer;\n accent-color: var(\n --nile-colors-primary-600,\n var(--ng-componentcolors-utility-blue-600)\n );\n }\n\n .ProseMirror li.nile-wysiwyg__task-item > .nile-wysiwyg__task-content {\n flex: 1;\n min-width: 0;\n }\n\n /* The content's paragraph margins (legacy 1em) push text below the\n checkbox — strip them at the edges of each item. */\n .ProseMirror li.nile-wysiwyg__task-item > .nile-wysiwyg__task-content > :first-child {\n margin-top: 0;\n }\n\n .ProseMirror li.nile-wysiwyg__task-item > .nile-wysiwyg__task-content > :last-child {\n margin-bottom: 0;\n }\n\n .ProseMirror ul.nile-wysiwyg__task-list > li + li {\n margin-top: 0.35em;\n }\n\n .ProseMirror li.nile-wysiwyg__task-item[data-checked='true'] > .nile-wysiwyg__task-content {\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-quaternary-500));\n text-decoration: line-through;\n }\n\n /* --- Counter footer --- */\n .nile-wysiwyg__counter {\n padding: 4px 12px 6px;\n text-align: right;\n font-size: 12px;\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));\n border-top: 1px solid var(--nile-colors-neutral-200, var(--ng-colors-border-secondary));\n }\n\n .nile-wysiwyg__counter.over {\n color: var(--nile-colors-error-600, var(--ng-componentcolors-utility-error-600));\n font-weight: 600;\n }\n\n /* --- Author <style> block (from HTML source) ---\n Applied live by StyleBlockView (a hidden <style> host, scoped to the\n content); the block renders nothing in the editor. */\n .nile-wysiwyg__style-block {\n display: none;\n }\n\n /* --- Sticky toolbar ---\n Pins to the top of the scroll container. Note: sticky anchors to the\n container's PADDING box, so if the scroll container has top padding, a\n band of content shows above the toolbar — set --nile-wysiwyg-sticky-top\n (or remove the container's top padding) to compensate. The opaque\n background makes the pinned bar self-backing so content can never bleed\n through it. */\n :host([sticky-toolbar]) nile-wysiwyg-toolbar {\n position: sticky;\n top: var(--nile-wysiwyg-sticky-top, 0);\n z-index: 12;\n background: var(\n --nile-wysiwyg-bg,\n var(--nile-colors-white-base, var(--ng-colors-bg-primary))\n );\n }\n\n /* --- Mentions & suggestions --- */\n .ProseMirror span.nile-wysiwyg__mention {\n display: inline-block;\n padding: 0 4px;\n border-radius: 4px;\n background: var(--nile-wysiwyg-mention-bg, var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50)));\n color: var(--nile-wysiwyg-mention-color, var(--nile-colors-primary-700, var(--ng-componentcolors-utility-blue-700)));\n font-weight: 500;\n white-space: nowrap;\n }\n\n .ProseMirror span.nile-wysiwyg__mention.ProseMirror-selectednode {\n outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600));\n }\n\n /* --- Merge fields --- */\n .ProseMirror span.nile-wysiwyg__merge-field {\n display: inline-block;\n padding: 0 4px;\n border-radius: 4px;\n background: var(\n --nile-wysiwyg-merge-bg,\n var(--nile-colors-neutral-100, var(--ng-colors-bg-tertiary))\n );\n color: var(\n --nile-wysiwyg-merge-color,\n var(--nile-colors-neutral-700, var(--ng-colors-text-primary-900))\n );\n border: 1px dashed var(--nile-colors-neutral-400, var(--ng-colors-border-primary));\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n font-size: 0.9em;\n white-space: nowrap;\n }\n\n .ProseMirror span.nile-wysiwyg__merge-field.ProseMirror-selectednode {\n outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600));\n }\n\n /* --- Math --- */\n .ProseMirror span.nile-wysiwyg__math {\n display: inline-block;\n padding: 0 2px;\n font-family: \"Cambria Math\", \"Latin Modern Math\", serif;\n }\n\n .ProseMirror span.nile-wysiwyg__math--block {\n display: block;\n text-align: center;\n margin: 8px 0;\n }\n\n .ProseMirror span.nile-wysiwyg__math.ProseMirror-selectednode {\n outline: 2px solid var(--nile-colors-primary-600, var(--ng-componentcolors-utility-blue-600));\n border-radius: 3px;\n }\n\n /* Format painter armed: hint the next selection will be painted. */\n .ProseMirror.nile-wysiwyg--painting {\n cursor: cell;\n }\n\n .ProseMirror .nile-wysiwyg__suggestion {\n background: var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50));\n border-radius: 3px;\n }\n\n /* --- Find & replace highlights --- */\n .ProseMirror .nile-wysiwyg__find-match {\n background: var(--nile-wysiwyg-find-bg, rgba(255, 214, 102, 0.45));\n border-radius: 2px;\n }\n\n .ProseMirror .nile-wysiwyg__find-active {\n background: var(--nile-wysiwyg-find-active-bg, rgba(255, 170, 0, 0.65));\n }\n\n /* --- Upload placeholder --- */\n .nile-wysiwyg__upload-placeholder {\n display: inline-block;\n padding: 6px 12px;\n border: 1px dashed var(--nile-colors-neutral-400, var(--ng-colors-border-primary));\n border-radius: 6px;\n background: var(--nile-colors-neutral-50, var(--ng-colors-bg-secondary));\n color: var(--nile-colors-neutral-600, var(--ng-colors-text-tertiary-600));\n font-size: 0.85em;\n }\n\n /* --- Multi-level (legal) ordered lists: 1 / 1.1 / 1.1.1 numbering.\n Serialized output carries data-list-style=\"multilevel\"; consumers\n rendering it outside the editor need these same counter rules. --- */\n .ProseMirror ol[data-list-style='multilevel'],\n .ProseMirror ol[data-list-style='multilevel'] ol {\n list-style: none;\n counter-reset: nile-multilevel;\n }\n\n .ProseMirror ol[data-list-style='multilevel'] > li,\n .ProseMirror ol[data-list-style='multilevel'] ol > li {\n counter-increment: nile-multilevel;\n }\n\n /* The number sits inside the item's first paragraph so it shares a line. */\n .ProseMirror ol[data-list-style='multilevel'] > li > p:first-child::before,\n .ProseMirror ol[data-list-style='multilevel'] ol > li > p:first-child::before {\n content: counters(nile-multilevel, '.') '. ';\n font-variant-numeric: tabular-nums;\n }\n\n /* --- Show blocks: dashed outlines + tag labels while editing --- */\n .nile-wysiwyg--show-blocks .ProseMirror p,\n .nile-wysiwyg--show-blocks .ProseMirror h1,\n .nile-wysiwyg--show-blocks .ProseMirror h2,\n .nile-wysiwyg--show-blocks .ProseMirror h3,\n .nile-wysiwyg--show-blocks .ProseMirror h4,\n .nile-wysiwyg--show-blocks .ProseMirror h5,\n .nile-wysiwyg--show-blocks .ProseMirror h6,\n .nile-wysiwyg--show-blocks .ProseMirror blockquote,\n .nile-wysiwyg--show-blocks .ProseMirror pre,\n .nile-wysiwyg--show-blocks .ProseMirror figure,\n .nile-wysiwyg--show-blocks .ProseMirror ul,\n .nile-wysiwyg--show-blocks .ProseMirror ol,\n .nile-wysiwyg--show-blocks .ProseMirror li,\n .nile-wysiwyg--show-blocks .ProseMirror table {\n outline: 1px dashed\n var(\n --nile-wysiwyg-block-outline,\n var(--nile-colors-neutral-400, var(--ng-colors-border-primary))\n );\n outline-offset: -1px;\n }\n\n .nile-wysiwyg--show-blocks .ProseMirror p,\n .nile-wysiwyg--show-blocks .ProseMirror h1,\n .nile-wysiwyg--show-blocks .ProseMirror h2,\n .nile-wysiwyg--show-blocks .ProseMirror h3,\n .nile-wysiwyg--show-blocks .ProseMirror h4,\n .nile-wysiwyg--show-blocks .ProseMirror h5,\n .nile-wysiwyg--show-blocks .ProseMirror h6,\n .nile-wysiwyg--show-blocks .ProseMirror blockquote,\n .nile-wysiwyg--show-blocks .ProseMirror pre {\n position: relative;\n }\n\n .nile-wysiwyg--show-blocks .ProseMirror p::after,\n .nile-wysiwyg--show-blocks .ProseMirror h1::after,\n .nile-wysiwyg--show-blocks .ProseMirror h2::after,\n .nile-wysiwyg--show-blocks .ProseMirror h3::after,\n .nile-wysiwyg--show-blocks .ProseMirror h4::after,\n .nile-wysiwyg--show-blocks .ProseMirror h5::after,\n .nile-wysiwyg--show-blocks .ProseMirror h6::after,\n .nile-wysiwyg--show-blocks .ProseMirror blockquote::after,\n .nile-wysiwyg--show-blocks .ProseMirror pre::after {\n position: absolute;\n top: 0;\n left: 0;\n padding: 0 3px;\n font-family: system-ui, sans-serif;\n font-size: 9px;\n font-weight: 600;\n font-style: normal;\n line-height: 14px;\n letter-spacing: 0.5px;\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-tertiary-600));\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-tertiary));\n border-radius: 0 0 4px 0;\n pointer-events: none;\n }\n\n .nile-wysiwyg--show-blocks .ProseMirror p::after { content: 'P'; }\n .nile-wysiwyg--show-blocks .ProseMirror h1::after { content: 'H1'; }\n .nile-wysiwyg--show-blocks .ProseMirror h2::after { content: 'H2'; }\n .nile-wysiwyg--show-blocks .ProseMirror h3::after { content: 'H3'; }\n .nile-wysiwyg--show-blocks .ProseMirror h4::after { content: 'H4'; }\n .nile-wysiwyg--show-blocks .ProseMirror h5::after { content: 'H5'; }\n .nile-wysiwyg--show-blocks .ProseMirror h6::after { content: 'H6'; }\n .nile-wysiwyg--show-blocks .ProseMirror blockquote::after { content: 'QUOTE'; }\n .nile-wysiwyg--show-blocks .ProseMirror pre::after { content: 'PRE'; }\n`;\n"]}
|
|
@@ -50,7 +50,7 @@ import './ui/markdown-panel';
|
|
|
50
50
|
* @csspart base - Outer container.
|
|
51
51
|
* @csspart toolbar - The toolbar element.
|
|
52
52
|
* @csspart surface - The scrollable editing surface.
|
|
53
|
-
|
|
53
|
+
*/
|
|
54
54
|
export declare class NileWysiwygEditor extends NileElement {
|
|
55
55
|
static formAssociated: boolean;
|
|
56
56
|
/** Document content as HTML. Not reflected to the attribute. */
|
|
@@ -187,6 +187,7 @@ export declare class NileWysiwygEditor extends NileElement {
|
|
|
187
187
|
private pendingChange;
|
|
188
188
|
/** Body overflow value before fullscreen locked it; null = not locked. */
|
|
189
189
|
private previousBodyOverflow;
|
|
190
|
+
private readonly onAnyScroll;
|
|
190
191
|
static get styles(): CSSResultArray;
|
|
191
192
|
constructor();
|
|
192
193
|
connectedCallback(): void;
|
|
@@ -80,7 +80,7 @@ const CHANGE_DEBOUNCE_MS = 250;
|
|
|
80
80
|
* @csspart base - Outer container.
|
|
81
81
|
* @csspart toolbar - The toolbar element.
|
|
82
82
|
* @csspart surface - The scrollable editing surface.
|
|
83
|
-
|
|
83
|
+
*/
|
|
84
84
|
let NileWysiwygEditor = class NileWysiwygEditor extends NileElement {
|
|
85
85
|
static get styles() {
|
|
86
86
|
return [styles];
|
|
@@ -167,6 +167,20 @@ let NileWysiwygEditor = class NileWysiwygEditor extends NileElement {
|
|
|
167
167
|
this.pendingChange = false;
|
|
168
168
|
/** Body overflow value before fullscreen locked it; null = not locked. */
|
|
169
169
|
this.previousBodyOverflow = null;
|
|
170
|
+
this.onAnyScroll = () => {
|
|
171
|
+
if (!this.bubbleMenuEl)
|
|
172
|
+
return;
|
|
173
|
+
[
|
|
174
|
+
this.bubbleMenuEl,
|
|
175
|
+
this.tableMenuEl,
|
|
176
|
+
this.codeMenuEl,
|
|
177
|
+
this.imageMenuEl,
|
|
178
|
+
this.embedMenuEl,
|
|
179
|
+
].forEach(menu => {
|
|
180
|
+
if (menu?.open)
|
|
181
|
+
menu.open = false;
|
|
182
|
+
});
|
|
183
|
+
};
|
|
170
184
|
/**
|
|
171
185
|
* True while a drag-selection is in progress with the format painter armed.
|
|
172
186
|
* Suppresses the mid-drag auto-apply in {@link handleTransaction} so the
|
|
@@ -224,6 +238,11 @@ let NileWysiwygEditor = class NileWysiwygEditor extends NileElement {
|
|
|
224
238
|
// Format painter applies on pointer release so a drag-selection is painted
|
|
225
239
|
// whole, not on the first mid-drag selection change.
|
|
226
240
|
document.addEventListener('mouseup', this.onPainterPointerUp);
|
|
241
|
+
// Floating menus can't track their anchor through a scroll, so dismiss them.
|
|
242
|
+
document.addEventListener('scroll', this.onAnyScroll, {
|
|
243
|
+
capture: true,
|
|
244
|
+
passive: true,
|
|
245
|
+
});
|
|
227
246
|
// Discover an author-supplied toolbar / bubble menu (light-DOM
|
|
228
247
|
// <nile-wysiwyg-toolbar-item> / <nile-wysiwyg-bubble-item> children) and
|
|
229
248
|
// keep them in sync as they change.
|
|
@@ -246,6 +265,8 @@ let NileWysiwygEditor = class NileWysiwygEditor extends NileElement {
|
|
|
246
265
|
super.disconnectedCallback();
|
|
247
266
|
document.removeEventListener('pointerdown', this.onOutsidePointerDown, true);
|
|
248
267
|
document.removeEventListener('mouseup', this.onPainterPointerUp);
|
|
268
|
+
document.removeEventListener('scroll', this.onAnyScroll, { capture: true });
|
|
269
|
+
this.surfaceEl?.removeEventListener('scroll', this.onAnyScroll);
|
|
249
270
|
this.toolbarObserver?.disconnect();
|
|
250
271
|
if (this.changeTimer)
|
|
251
272
|
clearTimeout(this.changeTimer);
|
|
@@ -484,6 +505,7 @@ let NileWysiwygEditor = class NileWysiwygEditor extends NileElement {
|
|
|
484
505
|
},
|
|
485
506
|
});
|
|
486
507
|
this.view.dom.addEventListener('mousedown', this.onPainterPointerDown);
|
|
508
|
+
this.surfaceEl.addEventListener('scroll', this.onAnyScroll, { passive: true });
|
|
487
509
|
this.toolbarState = this.snapshotToolbar(this.view.state);
|
|
488
510
|
this.counter = countWords(this.view.state.doc);
|
|
489
511
|
this.syncFormValue(this.view.state.doc);
|