@opensumi/ide-notebook 3.7.1-next-1737703128.0 → 3.7.1-next-1738824147.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/lib/browser/libro/diff-view/components/hooks.d.ts +10 -0
  2. package/lib/browser/libro/diff-view/components/hooks.d.ts.map +1 -0
  3. package/lib/browser/libro/diff-view/components/hooks.js +96 -0
  4. package/lib/browser/libro/diff-view/components/hooks.js.map +1 -0
  5. package/lib/browser/libro/diff-view/components/index.less +315 -0
  6. package/lib/browser/libro/diff-view/components/libro-diff-all-cells-same-components.d.ts +3 -0
  7. package/lib/browser/libro/diff-view/components/libro-diff-all-cells-same-components.d.ts.map +1 -0
  8. package/lib/browser/libro/diff-view/components/libro-diff-all-cells-same-components.js +11 -0
  9. package/lib/browser/libro/diff-view/components/libro-diff-all-cells-same-components.js.map +1 -0
  10. package/lib/browser/libro/diff-view/components/libro-diff-changed-cell-components.d.ts +5 -0
  11. package/lib/browser/libro/diff-view/components/libro-diff-changed-cell-components.d.ts.map +1 -0
  12. package/lib/browser/libro/diff-view/components/libro-diff-changed-cell-components.js +59 -0
  13. package/lib/browser/libro/diff-view/components/libro-diff-changed-cell-components.js.map +1 -0
  14. package/lib/browser/libro/diff-view/components/libro-diff-side-cell-components.d.ts +5 -0
  15. package/lib/browser/libro/diff-view/components/libro-diff-side-cell-components.d.ts.map +1 -0
  16. package/lib/browser/libro/diff-view/components/libro-diff-side-cell-components.js +58 -0
  17. package/lib/browser/libro/diff-view/components/libro-diff-side-cell-components.js.map +1 -0
  18. package/lib/browser/libro/diff-view/index.d.ts +5 -0
  19. package/lib/browser/libro/diff-view/index.d.ts.map +1 -0
  20. package/lib/browser/libro/diff-view/index.js +5 -0
  21. package/lib/browser/libro/diff-view/index.js.map +1 -0
  22. package/lib/browser/libro/diff-view/index.less +47 -0
  23. package/lib/browser/libro/diff-view/libro-diff-color-registry.d.ts +6 -0
  24. package/lib/browser/libro/diff-view/libro-diff-color-registry.d.ts.map +1 -0
  25. package/lib/browser/libro/diff-view/libro-diff-color-registry.js +110 -0
  26. package/lib/browser/libro/diff-view/libro-diff-color-registry.js.map +1 -0
  27. package/lib/browser/libro/diff-view/libro-diff-component.d.ts +6 -0
  28. package/lib/browser/libro/diff-view/libro-diff-component.d.ts.map +1 -0
  29. package/lib/browser/libro/diff-view/libro-diff-component.js +21 -0
  30. package/lib/browser/libro/diff-view/libro-diff-component.js.map +1 -0
  31. package/lib/browser/libro/diff-view/libro-diff-protocol.d.ts +58 -0
  32. package/lib/browser/libro/diff-view/libro-diff-protocol.d.ts.map +1 -0
  33. package/lib/browser/libro/diff-view/libro-diff-protocol.js +38 -0
  34. package/lib/browser/libro/diff-view/libro-diff-protocol.js.map +1 -0
  35. package/lib/browser/libro/diff-view/libro-diff-view.d.ts +48 -0
  36. package/lib/browser/libro/diff-view/libro-diff-view.d.ts.map +1 -0
  37. package/lib/browser/libro/diff-view/libro-diff-view.js +297 -0
  38. package/lib/browser/libro/diff-view/libro-diff-view.js.map +1 -0
  39. package/lib/browser/libro/diff-view/libro-version-manager.d.ts +16 -0
  40. package/lib/browser/libro/diff-view/libro-version-manager.d.ts.map +1 -0
  41. package/lib/browser/libro/diff-view/libro-version-manager.js +126 -0
  42. package/lib/browser/libro/diff-view/libro-version-manager.js.map +1 -0
  43. package/lib/browser/libro/diff-view/libro-version-view.d.ts +13 -0
  44. package/lib/browser/libro/diff-view/libro-version-view.d.ts.map +1 -0
  45. package/lib/browser/libro/diff-view/libro-version-view.js +40 -0
  46. package/lib/browser/libro/diff-view/libro-version-view.js.map +1 -0
  47. package/lib/browser/libro/diff-view/module.d.ts +3 -0
  48. package/lib/browser/libro/diff-view/module.d.ts.map +1 -0
  49. package/lib/browser/libro/diff-view/module.js +10 -0
  50. package/lib/browser/libro/diff-view/module.js.map +1 -0
  51. package/lib/browser/libro/libro-opensumi-content-contribution.d.ts.map +1 -1
  52. package/lib/browser/libro-preview.view.d.ts +3 -0
  53. package/lib/browser/libro-preview.view.d.ts.map +1 -0
  54. package/lib/browser/libro-preview.view.js +27 -0
  55. package/lib/browser/libro-preview.view.js.map +1 -0
  56. package/lib/browser/libro.contribution.d.ts.map +1 -1
  57. package/lib/browser/libro.contribution.js +38 -4
  58. package/lib/browser/libro.contribution.js.map +1 -1
  59. package/lib/browser/libro.protocol.d.ts +3 -1
  60. package/lib/browser/libro.protocol.d.ts.map +1 -1
  61. package/lib/browser/libro.protocol.js +3 -1
  62. package/lib/browser/libro.protocol.js.map +1 -1
  63. package/package.json +17 -14
  64. package/src/browser/libro/diff-view/components/hooks.tsx +123 -0
  65. package/src/browser/libro/diff-view/components/index.less +315 -0
  66. package/src/browser/libro/diff-view/components/libro-diff-all-cells-same-components.tsx +43 -0
  67. package/src/browser/libro/diff-view/components/libro-diff-changed-cell-components.tsx +88 -0
  68. package/src/browser/libro/diff-view/components/libro-diff-side-cell-components.tsx +84 -0
  69. package/src/browser/libro/diff-view/index.less +47 -0
  70. package/src/browser/libro/diff-view/index.ts +4 -0
  71. package/src/browser/libro/diff-view/libro-diff-color-registry.ts +132 -0
  72. package/src/browser/libro/diff-view/libro-diff-component.tsx +25 -0
  73. package/src/browser/libro/diff-view/libro-diff-protocol.ts +94 -0
  74. package/src/browser/libro/diff-view/libro-diff-view.tsx +351 -0
  75. package/src/browser/libro/diff-view/libro-version-manager.ts +135 -0
  76. package/src/browser/libro/diff-view/libro-version-view.tsx +41 -0
  77. package/src/browser/libro/diff-view/module.ts +11 -0
  78. package/src/browser/libro/libro-opensumi-content-contribution.ts +1 -1
  79. package/src/browser/libro-preview.view.tsx +33 -0
  80. package/src/browser/libro.contribution.tsx +43 -4
  81. package/src/browser/libro.protocol.ts +3 -1
@@ -11,9 +11,11 @@ import { IconService } from '@opensumi/ide-theme/lib/browser';
11
11
  import { IThemeService, IconType } from '@opensumi/ide-theme/lib/common';
12
12
  import { KERNEL_PANEL_ID, KernelPanel, initKernelPanelColorToken } from './kernel-panel';
13
13
  import { LibroOpensumiModule } from './libro';
14
+ import { LibroDiffModule } from './libro/diff-view';
14
15
  import { LibroOpener } from './libro-opener';
16
+ import { LibroVersionPreview } from './libro-preview.view';
15
17
  import { initLibroColorToken } from './libro.color.tokens';
16
- import { LIBRO_COMPONENTS_ID, LIBRO_COMPONENTS_SCHEME_ID } from './libro.protocol';
18
+ import { LIBRO_COMPONENTS_SCHEME_ID, LIBRO_COMPONENT_ID, LIBRO_PREVIEW_COMPONENT_ID } from './libro.protocol';
17
19
  import { OpensumiLibroView } from './libro.view';
18
20
  import { ManaContainer, initLibroOpensumi, manaContainer } from './mana/index';
19
21
  import { NotebookDocumentContentProvider } from './notebook-document-content-provider';
@@ -27,7 +29,14 @@ const LIBRO_COMPONENTS_VIEW_COMMAND = {
27
29
  };
28
30
  const LayoutWrapper = ({ children }) => {
29
31
  const [isReady, setIsReady] = useState(false);
30
- return (React.createElement(ManaComponents.Application, { context: { container: manaContainer }, modules: [ManaAppPreset, LibroJupyterNoEditorModule, LibroTOCModule, LibroOpensumiModule, LibroVariableModule], renderChildren: true, onReady: () => setIsReady(true) }, isReady ? children : 'loading'));
32
+ return (React.createElement(ManaComponents.Application, { context: { container: manaContainer }, modules: [
33
+ ManaAppPreset,
34
+ LibroJupyterNoEditorModule,
35
+ LibroDiffModule,
36
+ LibroTOCModule,
37
+ LibroOpensumiModule,
38
+ LibroVariableModule,
39
+ ], renderChildren: true, onReady: () => setIsReady(true) }, isReady ? children : 'loading'));
31
40
  };
32
41
  export const NOTE_BOOK_PANEL_ID = 'notebook-panel';
33
42
  let LibroContribution = class LibroContribution extends Disposable {
@@ -84,10 +93,15 @@ let LibroContribution = class LibroContribution extends Disposable {
84
93
  }
85
94
  registerEditorComponent(registry) {
86
95
  registry.registerEditorComponent({
87
- uid: LIBRO_COMPONENTS_ID,
96
+ uid: LIBRO_COMPONENT_ID,
88
97
  scheme: LIBRO_COMPONENTS_SCHEME_ID,
89
98
  component: OpensumiLibroView,
90
99
  });
100
+ registry.registerEditorComponent({
101
+ uid: LIBRO_PREVIEW_COMPONENT_ID,
102
+ scheme: LIBRO_COMPONENTS_SCHEME_ID,
103
+ component: LibroVersionPreview,
104
+ });
91
105
  registry.registerEditorComponentResolver(Schemes.file, (resource, results) => {
92
106
  if (resource.uri.path.ext === `.${LIBRO_COMPONENTS_SCHEME_ID}`) {
93
107
  // 首次打开 notebook 文件时初始化 jupyter 服务连接
@@ -98,7 +112,27 @@ let LibroContribution = class LibroContribution extends Disposable {
98
112
  }
99
113
  results.push({
100
114
  type: 'component',
101
- componentId: LIBRO_COMPONENTS_ID,
115
+ componentId: LIBRO_COMPONENT_ID,
116
+ });
117
+ }
118
+ });
119
+ // git schema 的 notebook 资源,在 ide 中打开
120
+ registry.registerEditorComponentResolver('git', (resource, results) => {
121
+ if (resource.uri.path.ext === '.ipynb') {
122
+ results.push({
123
+ type: 'component',
124
+ componentId: LIBRO_PREVIEW_COMPONENT_ID,
125
+ });
126
+ }
127
+ });
128
+ registry.registerEditorComponentResolver('diff', (resource, results) => {
129
+ const { original, modified } = resource.uri.getParsedQuery();
130
+ if (new URI(decodeURIComponent(modified)).path.ext === '.ipynb' ||
131
+ new URI(decodeURIComponent(original)).path.ext === '.ipynb') {
132
+ // TODO: 需要等 git 插件 ready,否则 git uri 无法解析
133
+ results.push({
134
+ type: 'component',
135
+ componentId: LIBRO_PREVIEW_COMPONENT_ID,
102
136
  });
103
137
  }
104
138
  });
@@ -1 +1 @@
1
- {"version":3,"file":"libro.contribution.js","sourceRoot":"","sources":["../../src/browser/libro.contribution.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libro.contribution.js","sourceRoot":"","sources":["../../src/browser/libro.contribution.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
- export declare const LIBRO_COMPONENTS_ID = "opensumi:libro";
1
+ export declare const LIBRO_COMPONENT_ID = "opensumi:libro";
2
+ export declare const LIBRO_PREVIEW_COMPONENT_ID = "opensumi:libro-preview";
3
+ export declare const LIBRO_DIFF_COMPONENT_ID = "opensumi:libro-diff";
2
4
  export declare const LIBRO_COMPONENTS_SCHEME_ID = "ipynb";
3
5
  //# sourceMappingURL=libro.protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"libro.protocol.d.ts","sourceRoot":"","sources":["../../src/browser/libro.protocol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,0BAA0B,UAAU,CAAC"}
1
+ {"version":3,"file":"libro.protocol.d.ts","sourceRoot":"","sources":["../../src/browser/libro.protocol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AACnE,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAC7D,eAAO,MAAM,0BAA0B,UAAU,CAAC"}
@@ -1,3 +1,5 @@
1
- export const LIBRO_COMPONENTS_ID = 'opensumi:libro';
1
+ export const LIBRO_COMPONENT_ID = 'opensumi:libro';
2
+ export const LIBRO_PREVIEW_COMPONENT_ID = 'opensumi:libro-preview';
3
+ export const LIBRO_DIFF_COMPONENT_ID = 'opensumi:libro-diff';
2
4
  export const LIBRO_COMPONENTS_SCHEME_ID = 'ipynb';
3
5
  //# sourceMappingURL=libro.protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"libro.protocol.js","sourceRoot":"","sources":["../../src/browser/libro.protocol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AACpD,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"libro.protocol.js","sourceRoot":"","sources":["../../src/browser/libro.protocol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AACnD,MAAM,CAAC,MAAM,0BAA0B,GAAG,wBAAwB,CAAC;AACnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAC7D,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensumi/ide-notebook",
3
- "version": "3.7.1-next-1737703128.0",
3
+ "version": "3.7.1-next-1738824147.0",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -23,18 +23,21 @@
23
23
  "@difizen/libro-lsp": "0.2.45",
24
24
  "@difizen/libro-toc": "0.2.45",
25
25
  "@difizen/mana-app": "^0.1.27",
26
- "@opensumi/ide-components": "3.7.1-next-1737703128.0",
27
- "@opensumi/ide-core-browser": "3.7.1-next-1737703128.0",
28
- "@opensumi/ide-core-common": "3.7.1-next-1737703128.0",
29
- "@opensumi/ide-editor": "3.7.1-next-1737703128.0",
30
- "@opensumi/ide-explorer": "3.7.1-next-1737703128.0",
31
- "@opensumi/ide-file-service": "3.7.1-next-1737703128.0",
32
- "@opensumi/ide-main-layout": "3.7.1-next-1737703128.0",
33
- "@opensumi/ide-monaco": "3.7.1-next-1737703128.0",
34
- "@opensumi/ide-outline": "3.7.1-next-1737703128.0",
35
- "@opensumi/ide-overlay": "3.7.1-next-1737703128.0",
36
- "@opensumi/ide-theme": "3.7.1-next-1737703128.0",
37
- "antd": "^5.21.4"
26
+ "@opensumi/ide-components": "3.7.1-next-1738824147.0",
27
+ "@opensumi/ide-core-browser": "3.7.1-next-1738824147.0",
28
+ "@opensumi/ide-core-common": "3.7.1-next-1738824147.0",
29
+ "@opensumi/ide-editor": "3.7.1-next-1738824147.0",
30
+ "@opensumi/ide-explorer": "3.7.1-next-1738824147.0",
31
+ "@opensumi/ide-file-service": "3.7.1-next-1738824147.0",
32
+ "@opensumi/ide-main-layout": "3.7.1-next-1738824147.0",
33
+ "@opensumi/ide-monaco": "3.7.1-next-1738824147.0",
34
+ "@opensumi/ide-outline": "3.7.1-next-1738824147.0",
35
+ "@opensumi/ide-overlay": "3.7.1-next-1738824147.0",
36
+ "@opensumi/ide-theme": "3.7.1-next-1738824147.0",
37
+ "@opensumi/ide-utils": "3.7.1-next-1738824147.0",
38
+ "antd": "^5.21.4",
39
+ "diff": "^4.0.1",
40
+ "resize-observer-polyfill": "1.5.1"
38
41
  },
39
- "gitHead": "bafda533bf23cfffa25acf09c2aed31c0364259f"
42
+ "gitHead": "02602f682849bbc5a11335109cfbe6501c268990"
40
43
  }
@@ -0,0 +1,123 @@
1
+ import { useCallback, useEffect, useLayoutEffect, useRef } from 'react';
2
+ import ResizeObserver from 'resize-observer-polyfill';
3
+
4
+ import { ICodeEditor, IDiffEditor } from '@opensumi/ide-monaco';
5
+
6
+ export interface Size {
7
+ width?: number;
8
+ height?: number;
9
+ }
10
+
11
+ function useLatest<T>(value: T) {
12
+ const ref = useRef(value);
13
+ ref.current = value;
14
+
15
+ return ref;
16
+ }
17
+
18
+ export default useLatest;
19
+ export function useSize(fn: () => void, ref: React.ForwardedRef<HTMLDivElement>): void {
20
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
21
+ const callback = useLatest((size: Size) => {
22
+ fn();
23
+ });
24
+ useLayoutEffect(() => {
25
+ if (typeof ref !== 'object') {
26
+ return () => {};
27
+ }
28
+ const el = ref?.current;
29
+ if (!el || !fn) {
30
+ return () => {};
31
+ }
32
+ const resizeObserver = new ResizeObserver((entries) => {
33
+ entries.forEach((entry) => {
34
+ callback.current({
35
+ width: entry.target.clientWidth,
36
+ height: entry.target.clientHeight,
37
+ });
38
+ });
39
+ });
40
+
41
+ resizeObserver.observe(el as HTMLElement);
42
+ return () => {
43
+ resizeObserver.disconnect();
44
+ };
45
+ }, [callback, ref, fn]);
46
+ }
47
+
48
+ const setEditorHeight = (
49
+ editor: ICodeEditor | undefined,
50
+ editorTarget: HTMLDivElement,
51
+ editorContainer: HTMLDivElement,
52
+ ) => {
53
+ if (!editor) {
54
+ return;
55
+ }
56
+ const curLenght = editor.getModel()?.getLineCount() || 1;
57
+ const diffItemHeight = `${curLenght * 20 + 16 + 12 + 22}px`;
58
+ const _height = `${curLenght * 20}px`;
59
+ if (editorTarget.style.height !== _height) {
60
+ editorTarget.style.height = _height;
61
+ editorContainer.style.height = diffItemHeight;
62
+ editor.layout();
63
+ }
64
+ };
65
+
66
+ const setDiffEditorHeight = (
67
+ editor: IDiffEditor | undefined,
68
+ editorTarget: HTMLDivElement,
69
+ editorContainer: HTMLDivElement,
70
+ ) => {
71
+ const originalLineCount = editor?.getModel()?.original.getLineCount() || 0;
72
+
73
+ editor?.onDidUpdateDiff(() => {
74
+ let finalLineCount = originalLineCount;
75
+ for (const change of editor?.getLineChanges() || []) {
76
+ if (!change.originalEndLineNumber) {
77
+ finalLineCount += change.modifiedEndLineNumber - change.modifiedStartLineNumber + 1;
78
+ } else if (
79
+ change.originalStartLineNumber === change.modifiedStartLineNumber &&
80
+ change.modifiedEndLineNumber > change.originalEndLineNumber
81
+ ) {
82
+ finalLineCount += change.modifiedEndLineNumber - change.originalEndLineNumber;
83
+ }
84
+ }
85
+ editorTarget.style.height = `${finalLineCount * 20 + 12}px`;
86
+ editorContainer.style.height = `${finalLineCount * 20 + 16 + 12 + 22}px`;
87
+ editor.layout();
88
+ });
89
+ };
90
+
91
+ export function useEditorLayout(
92
+ editor: ICodeEditor | IDiffEditor | undefined,
93
+ editorTargetRef: React.RefObject<HTMLDivElement>,
94
+ editorContainerRef: React.RefObject<HTMLDivElement>,
95
+ ) {
96
+ const editorTarget = editorTargetRef.current;
97
+ const editorContainer = editorContainerRef.current;
98
+
99
+ const editorLaylout = useCallback(() => {
100
+ if (editor) {
101
+ editor.layout();
102
+ }
103
+ }, [editor]);
104
+
105
+ useEffect(() => {
106
+ if (editor) {
107
+ if (!editorTarget || !editorContainer) {
108
+ return;
109
+ }
110
+ if ((editor as IDiffEditor).renderSideBySide !== undefined) {
111
+ setDiffEditorHeight(editor as IDiffEditor, editorTarget, editorContainer);
112
+ } else {
113
+ setEditorHeight(editor as ICodeEditor, editorTarget, editorContainer);
114
+ }
115
+ }
116
+ window.addEventListener('resize', editorLaylout);
117
+ return () => {
118
+ window.removeEventListener('resize', editorLaylout);
119
+ };
120
+ }, [editor, editorLaylout]);
121
+
122
+ useSize(editorLaylout, editorContainerRef);
123
+ }
@@ -0,0 +1,315 @@
1
+ .libro-diff-cell-container {
2
+ position: relative;
3
+ padding: 8px 0;
4
+ }
5
+
6
+ .libro-diff-cell-origin-header,
7
+ .libro-diff-cell-target-header {
8
+ height: 22px;
9
+ width: 100%;
10
+ border-top-right-radius: 4px;
11
+ border-top-left-radius: 4px;
12
+ }
13
+
14
+ .libro-diff-cell-unchanged-origin-header,
15
+ .libro-diff-cell-unchanged-target-header,
16
+ .libro-diff-cell-changed-origin-header,
17
+ .libro-diff-cell-changed-target-header {
18
+ background: var(--mana-libro-diff-unchanged-cell-header-color);
19
+ }
20
+
21
+ .libro-diff-cell-target-header {
22
+ position: relative;
23
+ &.changed,
24
+ &.unchanged {
25
+ float: right;
26
+ }
27
+ }
28
+
29
+ .libro-diff-cell-origin-header {
30
+ background: var(--mana-libro-diff-removed-cell-header-color);
31
+ }
32
+ .libro-diff-cell-target-header {
33
+ background: var(--mana-libro-diff-added-cell-header-color);
34
+ }
35
+
36
+ .libro-diff-cell-header-text {
37
+ margin-left: 16px;
38
+ font-family: PingFangSC;
39
+ font-weight: 400;
40
+ font-size: 12px;
41
+ color: var(--mana-libro-diff-cell-header-text-color);
42
+ line-height: 20px;
43
+ }
44
+ .libro-diff-cell-header-target-execute-count,
45
+ .libro-diff-cell-header-origin-execute-count {
46
+ font-family: Menlo-Regular;
47
+ font-weight: 400;
48
+ font-size: 12px;
49
+ color: var(--mana-libro-diff-cell-header-execution-color);
50
+ text-align: right;
51
+ line-height: 16px;
52
+ float: right;
53
+ margin-right: 16px;
54
+ margin-top: 3px;
55
+ }
56
+
57
+ .libro-diff-editor-removed {
58
+ background: var(--mana-libro-diff-editor-removed-color) !important;
59
+ .monaco-editor-background,
60
+ .margin {
61
+ background: var(--mana-libro-diff-editor-removed-color) !important;
62
+ }
63
+ }
64
+
65
+ .libro-diff-cell-origin-container,
66
+ .libro-diff-cell-target-container {
67
+ position: absolute;
68
+ width: calc(50% - 8px);
69
+ &.unchanged {
70
+ border: 1px solid var(--mana-libro-diff-cell-border-color) !important;
71
+ border-radius: 4px;
72
+ }
73
+ }
74
+ .libro-diff-cell-target-container {
75
+ right: 0;
76
+ }
77
+
78
+ .libro-diff-editor-added {
79
+ background: var(--mana-libro-diff-editor-added-color) !important;
80
+ .monaco-editor-background,
81
+ .margin {
82
+ background: var(--mana-libro-diff-editor-added-color) !important;
83
+ }
84
+ }
85
+
86
+ .libro-diff-cell-target-container {
87
+ background: var(--mana-libro-diff-editor-added-color) !important;
88
+ border-radius: 4px;
89
+ }
90
+
91
+ .libro-diff-cell-origin-container {
92
+ background: var(--mana-libro-diff-editor-removed-color) !important;
93
+ border-radius: 4px;
94
+ }
95
+
96
+ .libro-diff-editor-added,
97
+ .libro-diff-editor-removed {
98
+ border-bottom-left-radius: 4px;
99
+ border-bottom-right-radius: 4px;
100
+ .overflow-guard {
101
+ border-bottom-left-radius: 4px;
102
+ }
103
+ }
104
+
105
+ .libro-diff-editor-changed,
106
+ .libro-diff-editor-unchanged {
107
+ .monaco-editor-background {
108
+ border-radius: 4px;
109
+ }
110
+ }
111
+
112
+ .libro-diff-cell-changed-origin-header,
113
+ .libro-diff-cell-changed-target-header,
114
+ .libro-diff-cell-unchanged-origin-header,
115
+ .libro-diff-cell-unchanged-target-header {
116
+ display: inline-block;
117
+ width: calc(50% - 8px);
118
+ border-top-left-radius: 4px;
119
+ border-top-right-radius: 4px;
120
+ }
121
+ .libro-diff-cell-changed-target-header,
122
+ .libro-diff-cell-unchanged-target-header {
123
+ margin-left: 16px;
124
+ }
125
+
126
+ .libro-diff-cell-changed-content,
127
+ .libro-diff-cell-unchanged-content {
128
+ .monaco-editor,
129
+ .margin {
130
+ background-color: var(--mana-libro-diff-input-background-color) !important;
131
+ }
132
+ .monaco-editor-background {
133
+ background-color: var(--mana-libro-diff-editor-background-color) !important;
134
+ }
135
+ }
136
+ .libro-diff-cell-target-content,
137
+ .libro-diff-cell-origin-content {
138
+ margin-top: 12px;
139
+ }
140
+
141
+ .libro-diff-cell-target-content,
142
+ .libro-diff-cell-origin-content,
143
+ .libro-diff-cell-changed-content,
144
+ .libro-diff-cell-unchanged-content {
145
+ .core-guide-indent,
146
+ .core-guide-indent-active {
147
+ box-shadow: 0.6px 0 0 0 var(--mana-libro-diff-editor-intent-color) inset !important;
148
+ }
149
+ }
150
+
151
+ .libro-diff-cell-changed-content,
152
+ .libro-diff-cell-unchanged-content {
153
+ .original,
154
+ .modified {
155
+ width: calc(50% - 8px) !important;
156
+ .margin-view-overlays {
157
+ > div:has(.line-delete),
158
+ > div:has(.line-insert) {
159
+ background-color: var(--mana-libro-diff-editor-background-color) !important;
160
+ }
161
+ .line-delete {
162
+ background-color: var(--mana-libro-diff-editor-line-delete-color) !important;
163
+ }
164
+ width: 56px !important;
165
+ }
166
+
167
+ .diagonal-fill {
168
+ background-color: var(--mana-libro-diff-input-background-color);
169
+ }
170
+
171
+ .view-overlays {
172
+ div:has(.char-delete):has(.char-insert):has(.line-delete):has(.line-insert) {
173
+ background-color: var(--mana-libro-diff-editor-background-color);
174
+ }
175
+ div:not(:has(.char-delete)):not(:has(.char-insert)):not(:has(.line-delete)):not(:has(.line-insert)) {
176
+ background-color: var(--mana-libro-diff-input-background-color);
177
+ }
178
+ }
179
+ .selectionHighlight {
180
+ background-color: rgba(173, 214, 255, 0.15) !important;
181
+ }
182
+ }
183
+ .modified {
184
+ margin-left: 8px;
185
+ box-shadow: unset !important;
186
+ .line-insert,
187
+ .gutter-insert {
188
+ background-color: var(--mana-libro-diff-editor-line-insert-color) !important;
189
+ }
190
+ .char-insert {
191
+ background-color: var(--mana-libro-diff-editor-char-insert-color) !important;
192
+ }
193
+ }
194
+ .original {
195
+ .line-delete,
196
+ .gutter-delete {
197
+ background-color: var(--mana-libro-diff-editor-line-delete-color) !important;
198
+ }
199
+ .char-delete {
200
+ background-color: var(--mana-libro-diff-editor-char-delete-color) !important;
201
+ }
202
+ }
203
+ .monaco-editor,
204
+ .overflow-guard {
205
+ width: 100% !important;
206
+ border-bottom-left-radius: 4px;
207
+ border-bottom-right-radius: 4px;
208
+ }
209
+ .overflow-guard {
210
+ padding-top: 12px;
211
+ }
212
+ .margin {
213
+ padding-top: 12px;
214
+ }
215
+ }
216
+
217
+ .libro-diff-cell-changed-container,
218
+ .libro-diff-cell-unchanged-container {
219
+ position: relative;
220
+ .monaco-diff-editor {
221
+ background-color: var(--mana-libro-diff-container-color);
222
+ }
223
+ }
224
+
225
+ .libro-diff-cell-container {
226
+ .editor-scrollable {
227
+ left: 56px !important;
228
+ }
229
+ .margin,
230
+ .current-line-margin {
231
+ width: 56px !important;
232
+ }
233
+ .line-numbers {
234
+ color: var(--mana-libro-diff-editor-gutter-number-color) !important;
235
+ font-family: Menlo-Regular, consolas, 'DejaVu Sans Mono', monospace !important;
236
+ left: 0px !important;
237
+ font-weight: 400;
238
+ font-size: 13px;
239
+ text-align: right !important;
240
+ line-height: 20px;
241
+ width: 32px !important;
242
+ padding-left: 16px;
243
+ }
244
+
245
+ .cursors-layer .cursor {
246
+ background-color: var(--mana-libro-editor-cursor-color);
247
+ }
248
+
249
+ .selected-text {
250
+ background-color: var(--mana-libro-diff-select-background-color) !important;
251
+ }
252
+
253
+ .selectionHighlight {
254
+ background-color: var(--mana-libro-diff-select-highlight-background-color) !important;
255
+ }
256
+ .focused {
257
+ .selected-text {
258
+ background-color: var(--mana-libro-diff-select-background-color) !important;
259
+ }
260
+ }
261
+
262
+ .libro-diff-editor-added {
263
+ &.monaco-editor {
264
+ background-color: var(--mana-version-opensumi-diff-added-color) !important;
265
+
266
+ .margin {
267
+ background: var(--mana-version-opensumi-diff-added-color) !important;
268
+ }
269
+ }
270
+
271
+ .monaco-editor-background {
272
+ background: var(--mana-version-opensumi-diff-added-color) !important;
273
+ }
274
+ }
275
+
276
+ .libro-diff-editor-removed {
277
+ &.monaco-editor {
278
+ background-color: var(--mana-version-opensumi-diff-removed-color) !important;
279
+
280
+ .margin {
281
+ background: var(--mana-version-opensumi-diff-removed-color) !important;
282
+ }
283
+ }
284
+
285
+ .monaco-editor-background {
286
+ background: var(--mana-version-opensumi-diff-removed-color) !important;
287
+ }
288
+ }
289
+ }
290
+ .libro-e2-editor-container {
291
+ padding-top: 12px;
292
+ }
293
+
294
+ .libro-diff-cell-unchanged-origin-border,
295
+ .libro-diff-cell-unchanged-target-border,
296
+ .libro-diff-cell-changed-origin-border,
297
+ .libro-diff-cell-changed-target-border {
298
+ height: 100%;
299
+ top: 0;
300
+ border: 1px solid var(--mana-libro-diff-cell-border-color);
301
+ width: calc(50% - 8px);
302
+ position: absolute;
303
+ border-radius: 4px;
304
+ pointer-events: none;
305
+ }
306
+
307
+ .libro-diff-cell-unchanged-target-border,
308
+ .libro-diff-cell-changed-target-border {
309
+ right: 0;
310
+ }
311
+ .libro-version-content {
312
+ .libro-view-top {
313
+ height: 0;
314
+ }
315
+ }
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+
3
+ export const ContentSameIcon: React.FC = () => (
4
+ <svg
5
+ width='58px'
6
+ height='70px'
7
+ viewBox='0 0 58 70'
8
+ version='1.1'
9
+ xmlns='http://www.w3.org/2000/svg'
10
+ xmlnsXlink='http://www.w3.org/1999/xlink'
11
+ className='libro-diff-same'
12
+ >
13
+ <g id='页面-1' stroke='none' strokeWidth='1' fill='none' fillRule='evenodd'>
14
+ <g id='2.2对比内容一致' transform='translate(-866.000000, -433.000000)' fillRule='nonzero'>
15
+ <g id='编组-3' transform='translate(863.000000, 433.000000)'>
16
+ <g id='编组' transform='translate(3.000000, 0.000000)'>
17
+ <path
18
+ d='M26.5130303,69.5820437 C15.5132424,65.7888934 11.5393636,62.6913727 11.5323333,62.6913727 C0.101060606,54.8513203 0,44.5577516 0,44.5577516 L0,12.0705345 C0,10.4780239 1.28830303,9.10951475 2.87187879,9.05176436 C10.9918788,8.76301243 22.9425152,2.76134734 27.3197576,0.423331722 C28.3685102,-0.141110574 29.6323686,-0.141110574 30.6811212,0.423331722 C35.0574848,2.76834739 47.0151515,8.76213743 55.1281212,9.05176436 C56.711697,9.10951475 58,10.4780239 58,12.0705345 L58,44.5577516 C58,44.5577516 57.8989394,54.8513203 46.4676667,62.6913727 C46.4676667,62.6913727 42.4937879,65.7888934 31.494,69.5820437 C29.8808432,70.1393188 28.1261871,70.1393188 26.5130303,69.5820437 Z M29,53.3751855 C39.1921818,53.3751855 47.4545455,45.1483805 47.4545455,35.0000627 C47.4545455,24.8517449 39.1921818,16.62494 29,16.62494 C18.8078182,16.62494 10.5454545,24.8517449 10.5454545,35.0000627 C10.5454545,45.1483805 18.8078182,53.3751855 29,53.3751855 Z'
19
+ id='形状'
20
+ fillOpacity='0.3'
21
+ fill='#2196F3'
22
+ />
23
+ <path
24
+ d='M28.5,54 C17.7306818,54 9,45.2693182 9,34.5 C9,23.7306818 17.7306818,15 28.5,15 C39.2693182,15 48,23.7306818 48,34.5 C48,45.2693182 39.2693182,54 28.5,54 Z'
25
+ id='路径'
26
+ fill='#1989FA'
27
+ />
28
+ <path
29
+ d='M29,51 C37.8364444,51 45,43.8364444 45,35 C45,26.1635556 37.8364444,19 29,19 C20.1635556,19 13,26.1635556 13,35 C13,43.8364444 20.1635556,51 29,51 Z'
30
+ id='路径'
31
+ fill='#FFFFFF'
32
+ />
33
+ <path
34
+ d='M39.8811584,47.8734755 C41.1971717,46.5565733 43.3307339,46.5565733 44.6467472,47.8734755 L49.012836,52.2420176 C50.3290547,53.5592357 50.3290547,55.6948683 49.0128359,57.0120864 C47.6966172,58.3293045 45.5626049,58.3293045 44.2463861,57.0120864 L39.8811584,52.6435444 C39.2489733,52.0110548 38.8938006,51.1531094 38.8938006,50.2585099 C38.8938006,49.3639104 39.2489733,48.5059651 39.8811584,47.8734755 L39.8811584,47.8734755 Z M27.3916134,36.6109087 L33.5141251,30.4837484 C34.189795,29.8306691 35.2638061,29.8400091 35.9280333,30.5047406 C36.5922605,31.1694721 36.6015933,32.2442987 35.9490095,32.9204816 L28.6434953,40.2324043 C28.4552892,40.4214183 28.2256395,40.5639151 27.9727828,40.648579 C27.3417735,40.8823076 26.6325337,40.7268228 26.1569514,40.2504988 L22.5046247,36.5953991 C22.0695207,36.1601187 21.8995112,35.5256015 22.0586371,34.930864 C22.2177631,34.3361266 22.6818494,33.8715236 23.2760794,33.7120666 C23.8703093,33.5526096 24.5044051,33.7225239 24.9395092,34.1578043 L27.3916134,36.6117704 L27.3916134,36.6109087 Z'
35
+ id='形状'
36
+ fill='#1989FA'
37
+ />
38
+ </g>
39
+ </g>
40
+ </g>
41
+ </g>
42
+ </svg>
43
+ );