wendang-react 0.6.3 → 0.6.5
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/NOTICE.md +1 -1
- package/README.md +133 -1
- package/dist/bindings/yjs.js +1 -5
- package/dist/chunks/AnchoredPanel-C7jMoPze.js +1 -0
- package/dist/chunks/DocumentExportMenu-CUMsgq3w.js +2 -0
- package/dist/chunks/Dropdown-D98tXfe0.js +3 -0
- package/dist/chunks/MindMapCanvas-C46Q5JBU.js +163 -0
- package/dist/chunks/MindMapViewer-C9zxZIW8.js +13 -0
- package/dist/chunks/SpreadsheetViewer-CoQ4VIgj.js +23 -0
- package/dist/chunks/code-highlight-BmaqTe1m.js +1 -30
- package/dist/chunks/code-highlight-engine-BFDzDPzy.js +1 -40
- package/dist/chunks/comment-hint-BhUxKjKK.js +14 -0
- package/dist/chunks/composition-state-Bl-U1R_2.js +1 -40
- package/dist/chunks/extensions-BefQ1tDm.js +14 -0
- package/dist/chunks/fuzzy-match-DYQR-4w2.js +1 -89
- package/dist/chunks/hooks-C53Dp0pr.js +1 -35
- package/dist/chunks/i18n-B0kCsIjc.js +2 -0
- package/dist/chunks/index-COeA2QcQ.js +15 -0
- package/dist/chunks/katex-WjrodtTU.js +1 -71
- package/dist/chunks/locale-DWpIJ_9X.js +1 -0
- package/dist/chunks/mind-map-controller-Ce76mETT.js +1 -0
- package/dist/chunks/mind-map-delete-CVsxdXfs.js +1 -31
- package/dist/chunks/mind-map-input-CEWRz_t6.js +1 -43
- package/dist/chunks/mind-topic-text-BHXkxexr.js +30 -0
- package/dist/chunks/popover-placement-D3xVYdkt.js +1 -47
- package/dist/chunks/worksheet-engine-c84sdD4N.js +1 -0
- package/dist/chunks/worksheet-preview-DsDVWxIM.js +1 -129
- package/dist/document/viewer.js +30 -289
- package/dist/document.js +120 -3811
- package/dist/export/json.js +1 -5
- package/dist/export/markdown.js +1 -2
- package/dist/export/mindmap.js +1 -2
- package/dist/export/pdf.js +1 -6
- package/dist/export/word.js +1 -2
- package/dist/export.js +1 -2
- package/dist/i18n.js +1 -0
- package/dist/index.js +1 -8
- package/dist/locales/en-US.js +1 -0
- package/dist/locales/es-ES.js +1 -0
- package/dist/locales/ja-JP.js +1 -0
- package/dist/locales/ko-KR.js +1 -0
- package/dist/locales/zh-CN.js +1 -0
- package/dist/locales/zh-TW.js +1 -0
- package/dist/mindmap/viewer.js +1 -6
- package/dist/mindmap.js +3 -123
- package/dist/shared.js +1 -52
- package/dist/spreadsheet/viewer.js +1 -5
- package/dist/spreadsheet/xlsx.js +1 -299
- package/dist/spreadsheet.js +2 -120
- package/dist/styles/callout.css +1 -34
- package/dist/styles/code-block.css +1 -58
- package/dist/styles/content-style.css +1 -619
- package/dist/styles/content-tokens.css +1 -29
- package/dist/styles/editor-interaction.css +1 -621
- package/dist/styles/file-video.css +1 -12
- package/dist/styles/image-preview.css +1 -103
- package/dist/styles/mind-map-block.css +1 -14
- package/dist/styles/mind-map-canvas.css +1 -80
- package/dist/styles/mind-map-comments.css +1 -93
- package/dist/styles/mind-map-details.css +1 -7
- package/dist/styles/mind-map-preview.css +1 -7
- package/dist/styles/mind-map-topic.css +1 -112
- package/dist/styles/page-picker.css +1 -47
- package/dist/styles/renderer.css +1 -45
- package/dist/styles/spreadsheet-editor.css +1 -3
- package/dist/styles/tokens.css +1 -142
- package/dist/styles/video-dialog.css +1 -41
- package/dist/styles/video-embed.css +1 -35
- package/dist/styles.css +1 -2655
- package/dist/types/editor/BlockAffordance.d.ts +5 -2
- package/dist/types/editor/CalloutView.d.ts +2 -1
- package/dist/types/editor/ImagePreview.d.ts +1 -1
- package/dist/types/editor/PagePicker.d.ts +1 -1
- package/dist/types/editor/extensions.d.ts +4 -1
- package/dist/types/engine/editor/block-commands.d.ts +1 -1
- package/dist/types/engine/editor/block-menu-hover.d.ts +16 -0
- package/dist/types/engine/editor/extensions/locale.d.ts +3 -0
- package/dist/types/engine/editor/nodes/image-nodeview.d.ts +1 -1
- package/dist/types/engine/editor/video-block-controls.d.ts +13 -0
- package/dist/types/engine/host.d.ts +60 -2
- package/dist/types/engine/renderer/attachments.d.ts +3 -3
- package/dist/types/engine/shared/video-feedback.d.ts +1 -1
- package/dist/types/engine/worksheets/worksheet-engine.d.ts +1 -0
- package/dist/types/engine/worksheets/worksheet-xlsx.d.ts +6 -1
- package/dist/types/host-types.d.ts +2 -60
- package/dist/types/host.d.ts +8 -1
- package/dist/types/i18n.d.ts +3 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/locales/en-US.d.ts +1 -0
- package/dist/types/locales/es-ES.d.ts +1 -0
- package/dist/types/locales/ja-JP.d.ts +1 -0
- package/dist/types/locales/ko-KR.d.ts +1 -0
- package/dist/types/locales/zh-CN.d.ts +1 -0
- package/dist/types/locales/zh-TW.d.ts +1 -0
- package/dist/types/renderer/media.d.ts +2 -1
- package/dist/types/spreadsheet/xlsx.d.ts +1 -1
- package/dist/types/wui/Dropdown.d.ts +2 -1
- package/dist/types/wui/index.d.ts +2 -1
- package/integrity.json +3140 -0
- package/package.json +15 -5
- package/verify-integrity.mjs +138 -0
- package/dist/chunks/AnchoredPanel-Cv4RURwF.js +0 -68
- package/dist/chunks/DocumentExportMenu-BrGipZ59.js +0 -75
- package/dist/chunks/MindMapCanvas-tkFBBs4g.js +0 -2090
- package/dist/chunks/MindMapViewer-DJrryb2Y.js +0 -180
- package/dist/chunks/SpreadsheetViewer-DxCxIUx_.js +0 -163
- package/dist/chunks/comment-hint-B9qcrqvn.js +0 -296
- package/dist/chunks/extensions-ByORRoRa.js +0 -4210
- package/dist/chunks/host-C-V688Rq.js +0 -197
- package/dist/chunks/index-DdfMnva8.js +0 -726
- package/dist/chunks/mind-map-controller-B6SxK3GZ.js +0 -479
- package/dist/chunks/mind-topic-text-DSyb95vL.js +0 -446
- package/dist/chunks/nodes-iKqTGr_N.js +0 -291
- package/dist/chunks/worksheet-engine-TJ54m0KC.js +0 -125
- package/third-party-notices/wendang-export@0.6.0-NOTICE.md.txt +0 -51
- package/third-party-notices/wendang-export@0.6.1-LICENSE.txt +0 -21
- package/third-party-notices/wendang-export@0.6.2-LICENSE.txt +0 -21
- package/third-party-notices/wendang-export@0.6.2-NOTICE.md.txt +0 -70
- /package/third-party-notices/{wendang-export@0.6.0-LICENSE.txt → wendang-export@0.6.4-LICENSE.txt} +0 -0
- /package/third-party-notices/{wendang-export@0.6.1-NOTICE.md.txt → wendang-export@0.6.4-NOTICE.md.txt} +0 -0
|
@@ -1,103 +1 @@
|
|
|
1
|
-
.img-preview-mask {
|
|
2
|
-
position: fixed;
|
|
3
|
-
inset: 0;
|
|
4
|
-
z-index: 1300;
|
|
5
|
-
display: flex;
|
|
6
|
-
flex-direction: column;
|
|
7
|
-
align-items: center;
|
|
8
|
-
justify-content: center;
|
|
9
|
-
background: color-mix(in srgb, #0b1220 84%, transparent);
|
|
10
|
-
overflow: hidden;
|
|
11
|
-
user-select: none;
|
|
12
|
-
}
|
|
13
|
-
.img-preview-stage {
|
|
14
|
-
display: flex;
|
|
15
|
-
align-items: center;
|
|
16
|
-
justify-content: center;
|
|
17
|
-
width: 100%;
|
|
18
|
-
flex: 1;
|
|
19
|
-
min-height: 0;
|
|
20
|
-
padding: 32px;
|
|
21
|
-
outline: none;
|
|
22
|
-
}
|
|
23
|
-
.img-preview-image {
|
|
24
|
-
max-width: 100%;
|
|
25
|
-
max-height: 100%;
|
|
26
|
-
object-fit: contain;
|
|
27
|
-
cursor: grab;
|
|
28
|
-
transition: transform 0.12s ease-out;
|
|
29
|
-
will-change: transform;
|
|
30
|
-
}
|
|
31
|
-
.img-preview-image.is-dragging { cursor: grabbing; transition: none; }
|
|
32
|
-
.img-preview-toolbar {
|
|
33
|
-
display: flex;
|
|
34
|
-
align-items: center;
|
|
35
|
-
gap: 4px;
|
|
36
|
-
flex: none;
|
|
37
|
-
margin-bottom: 24px;
|
|
38
|
-
padding: 6px 8px;
|
|
39
|
-
border: 1px solid color-mix(in srgb, #ffffff 18%, transparent);
|
|
40
|
-
border-radius: 8px;
|
|
41
|
-
background: color-mix(in srgb, #101828 72%, transparent);
|
|
42
|
-
color: #f2f5fa;
|
|
43
|
-
backdrop-filter: blur(8px);
|
|
44
|
-
}
|
|
45
|
-
.img-preview-toolbar button {
|
|
46
|
-
min-width: 32px;
|
|
47
|
-
height: 30px;
|
|
48
|
-
padding: 0 8px;
|
|
49
|
-
border: none;
|
|
50
|
-
border-radius: 5px;
|
|
51
|
-
background: transparent;
|
|
52
|
-
color: inherit;
|
|
53
|
-
font-family: inherit;
|
|
54
|
-
font-size: 13px;
|
|
55
|
-
cursor: pointer;
|
|
56
|
-
}
|
|
57
|
-
.img-preview-toolbar button:hover { background: color-mix(in srgb, #ffffff 16%, transparent); }
|
|
58
|
-
.img-preview-toolbar button:focus-visible { outline: 2px solid #fff; outline-offset: 1px; }
|
|
59
|
-
.img-preview-scale { min-width: 48px; text-align: center; font-size: 12px; opacity: 0.85; }
|
|
60
|
-
.img-preview-count {
|
|
61
|
-
min-width: 52px;
|
|
62
|
-
padding: 0 6px;
|
|
63
|
-
text-align: center;
|
|
64
|
-
font-size: 12px;
|
|
65
|
-
font-variant-numeric: tabular-nums;
|
|
66
|
-
opacity: 0.85;
|
|
67
|
-
}
|
|
68
|
-
.img-preview-divider { width: 1px; height: 16px; margin: 0 4px; background: color-mix(in srgb, #ffffff 26%, transparent); }
|
|
69
|
-
|
|
70
|
-
/* 翻页按钮:两侧垂直居中,避开工具条;深色半透明底保证在任何图片上都可见 */
|
|
71
|
-
.img-preview-nav {
|
|
72
|
-
position: absolute;
|
|
73
|
-
inset: 0;
|
|
74
|
-
pointer-events: none;
|
|
75
|
-
display: flex;
|
|
76
|
-
align-items: center;
|
|
77
|
-
justify-content: space-between;
|
|
78
|
-
padding: 0 18px;
|
|
79
|
-
}
|
|
80
|
-
.img-preview-nav-btn {
|
|
81
|
-
pointer-events: auto;
|
|
82
|
-
display: flex;
|
|
83
|
-
align-items: center;
|
|
84
|
-
justify-content: center;
|
|
85
|
-
width: 44px;
|
|
86
|
-
height: 44px;
|
|
87
|
-
padding: 0;
|
|
88
|
-
border: 1px solid color-mix(in srgb, #ffffff 20%, transparent);
|
|
89
|
-
border-radius: 50%;
|
|
90
|
-
background: color-mix(in srgb, #101828 66%, transparent);
|
|
91
|
-
color: #f2f5fa;
|
|
92
|
-
cursor: pointer;
|
|
93
|
-
backdrop-filter: blur(8px);
|
|
94
|
-
transition: background 0.12s, opacity 0.12s;
|
|
95
|
-
}
|
|
96
|
-
.img-preview-nav-btn:hover:not(:disabled) { background: color-mix(in srgb, #101828 84%, transparent); }
|
|
97
|
-
.img-preview-nav-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
|
|
98
|
-
/* 到头的一侧保留占位(避免另一侧按钮跳动),只降到很低的可见度 */
|
|
99
|
-
.img-preview-nav-btn:disabled { opacity: 0.22; cursor: default; }
|
|
100
|
-
|
|
101
|
-
@media (prefers-reduced-motion: reduce) {
|
|
102
|
-
.img-preview-image { transition: none; }
|
|
103
|
-
}
|
|
1
|
+
.img-preview-mask{position:fixed;inset:0;z-index:1300;display:flex;flex-direction:column;align-items:center;justify-content:center;background:color-mix(in srgb,#0b1220 84%,transparent);overflow:hidden;user-select:none}.img-preview-stage{display:flex;align-items:center;justify-content:center;width:100%;flex:1;min-height:0;padding:32px;outline:none}.img-preview-image{max-width:100%;max-height:100%;object-fit:contain;cursor:grab;transition:transform .12s ease-out;will-change:transform}.img-preview-image.is-dragging{cursor:grabbing;transition:none}.img-preview-toolbar{display:flex;align-items:center;gap:4px;flex:none;margin-bottom:24px;padding:6px 8px;border:1px solid color-mix(in srgb,#ffffff 18%,transparent);border-radius:8px;background:color-mix(in srgb,#101828 72%,transparent);color:#f2f5fa;backdrop-filter:blur(8px)}.img-preview-toolbar button{min-width:32px;height:30px;padding:0 8px;border:none;border-radius:5px;background:transparent;color:inherit;font-family:inherit;font-size:13px;cursor:pointer}.img-preview-toolbar button:hover{background:color-mix(in srgb,#ffffff 16%,transparent)}.img-preview-toolbar button:focus-visible{outline:2px solid #fff;outline-offset:1px}.img-preview-scale{min-width:48px;text-align:center;font-size:12px;opacity:.85}.img-preview-count{min-width:52px;padding:0 6px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;opacity:.85}.img-preview-divider{width:1px;height:16px;margin:0 4px;background:color-mix(in srgb,#ffffff 26%,transparent)}.img-preview-nav{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:space-between;padding:0 18px}.img-preview-nav-btn{pointer-events:auto;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid color-mix(in srgb,#ffffff 20%,transparent);border-radius:50%;background:color-mix(in srgb,#101828 66%,transparent);color:#f2f5fa;cursor:pointer;backdrop-filter:blur(8px);transition:background .12s,opacity .12s}.img-preview-nav-btn:hover:not(:disabled){background:color-mix(in srgb,#101828 84%,transparent)}.img-preview-nav-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.img-preview-nav-btn:disabled{opacity:.22;cursor:default}@media(prefers-reduced-motion:reduce){.img-preview-image{transition:none}}
|
|
@@ -1,14 +1 @@
|
|
|
1
|
-
.mind-map-block
|
|
2
|
-
.mind-map-block-header { min-height: 45px; display: flex; gap: 12px; align-items: center; justify-content: space-between; padding: 6px 12px; }
|
|
3
|
-
.mind-map-block-label { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: var(--color-text-muted); }
|
|
4
|
-
.mind-map-block-label > span:first-child { color: var(--mind-color); font-size: 18px; }
|
|
5
|
-
.mind-map-topic-count { font-size: 11px; color: var(--color-text-faint); }
|
|
6
|
-
.mind-map-block-actions { display: flex; flex-shrink: 0; gap: 4px; }
|
|
7
|
-
.mind-map-preview { width: 100%; display: block; min-height: 240px; cursor: zoom-in; }
|
|
8
|
-
.mind-map-preview rect { fill: var(--color-surface-subtle); stroke: var(--mind-color); stroke-opacity: .3; }
|
|
9
|
-
.mind-map-preview text { fill: var(--color-text); font-family: inherit; }
|
|
10
|
-
.mind-map-preview .mind-map-root rect { fill: var(--mind-color); stroke: none; }
|
|
11
|
-
.mind-map-preview .mind-map-root text { fill: white; }
|
|
12
|
-
.mind-map-preview-outline { overflow: auto; padding: 16px 24px 24px; font-size: 14px; line-height: 2; white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
13
|
-
.mind-map-invalid { padding: 20px; color: var(--color-text-muted); }
|
|
14
|
-
@media (max-width: 600px) { .mind-map-topic-count { display: none; } }
|
|
1
|
+
.mind-map-block{margin:20px 0;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);overflow:hidden}.mind-map-block-header{min-height:45px;display:flex;gap:12px;align-items:center;justify-content:space-between;padding:6px 12px}.mind-map-block-label{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-muted)}.mind-map-block-label>span:first-child{color:var(--mind-color);font-size:18px}.mind-map-topic-count{font-size:11px;color:var(--color-text-faint)}.mind-map-block-actions{display:flex;flex-shrink:0;gap:4px}.mind-map-preview{width:100%;display:block;min-height:240px;cursor:zoom-in}.mind-map-preview rect{fill:var(--color-surface-subtle);stroke:var(--mind-color);stroke-opacity:.3}.mind-map-preview text{fill:var(--color-text);font-family:inherit}.mind-map-preview .mind-map-root rect{fill:var(--mind-color);stroke:none}.mind-map-preview .mind-map-root text{fill:#fff}.mind-map-preview-outline{overflow:auto;padding:16px 24px 24px;font-size:14px;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere}.mind-map-invalid{padding:20px;color:var(--color-text-muted)}@media(max-width:600px){.mind-map-topic-count{display:none}}
|
|
@@ -1,80 +1 @@
|
|
|
1
|
-
.mind-inline { height:100%; min-height:380px; }
|
|
2
|
-
.mind-inline .mind-map-workspace { height:100%; padding:0; }
|
|
3
|
-
.mind-canvas-title { display: inline-flex; align-items: center; gap: 14px; max-width: calc(100vw - 110px); }
|
|
4
|
-
.mind-canvas-title > span { font-size: 13px; font-weight: 400; color: var(--color-text-muted); max-width: 65vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
5
|
-
/**
|
|
6
|
-
* 全屏弹层的工作区。
|
|
7
|
-
*
|
|
8
|
-
* ## 为什么是 `height:100%` 而不是 `calc(100dvh - 110px)`
|
|
9
|
-
*
|
|
10
|
-
* 弹层里 `.wd-dialog__body` 已经是"header 以下的全部高度"(flex 列、无内边距),
|
|
11
|
-
* 再把 header 高度写死成 110px 去减就是重复扣减:实际 header 只有 57px,
|
|
12
|
-
* 于是画布底部多出 53px 空白,看起来"没到底"(用户实测:"底部可以进一点")。
|
|
13
|
-
* 交给父容器决定高度,画布就能填满。
|
|
14
|
-
*
|
|
15
|
-
* ## 为什么四周要留内边距
|
|
16
|
-
*
|
|
17
|
-
* 全屏时 body 的内边距是 0,工具栏会紧贴 header 的下边线、画布也贴着窗口
|
|
18
|
-
* 左右边缘(用户实测:"边框距离太近")。这里按工具栏在上、画布在下的顺序
|
|
19
|
-
* 给一圈呼吸空间;inline(正文内嵌)形态不需要,单独复位为 0。
|
|
20
|
-
*/
|
|
21
|
-
.mind-map-workspace { display: flex; flex-direction: column; height: 100%; min-height: 300px; box-sizing: border-box; padding: 16px 20px 20px; color: var(--color-text); }
|
|
22
|
-
.mind-save-hint { margin-bottom: 10px; }
|
|
23
|
-
.mind-canvas-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 0 10px; flex-wrap: wrap; }
|
|
24
|
-
.mind-canvas-tools { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
|
|
25
|
-
.mind-canvas-options { justify-content: flex-end; margin-left: auto; }
|
|
26
|
-
.mind-canvas-status { font-size: 12px; color: var(--color-text-muted); max-width: 32vw; }
|
|
27
|
-
.mind-canvas-body { display: flex; flex: 1; min-height: 0; border: 1px solid var(--color-border); border-radius: 12px; overflow: hidden; }
|
|
28
|
-
.mind-canvas-stage { position: relative; flex: 1; min-width: 0; overflow: hidden; outline: none; background: radial-gradient(var(--color-border) 1px, transparent 1px) 0 0 / 22px 22px var(--color-surface); }
|
|
29
|
-
.mind-canvas-stage.mind-grid-hidden { background-image:none; }
|
|
30
|
-
.mind-canvas-surface { width:100%;height:100%; }
|
|
31
|
-
.mind-canvas-stage .vue-flow__pane { cursor:default; }
|
|
32
|
-
.mind-canvas-stage .vue-flow__selection,.mind-marquee { background:color-mix(in srgb,var(--mind-color) 8%,transparent);border:1px solid var(--mind-color);box-sizing:border-box;pointer-events:none; }
|
|
33
|
-
.mind-marquee {position:absolute;z-index:4;}
|
|
34
|
-
.mind-canvas-stage.mind-space-pan .vue-flow__pane,
|
|
35
|
-
.mind-canvas-stage.mind-space-pan .vue-flow__node { cursor:grab; }
|
|
36
|
-
.mind-canvas-stage .vue-flow__pane.dragging { cursor:grabbing; }
|
|
37
|
-
.mind-selection-summary {position:absolute;left:16px;top:16px;display:flex;align-items:center;gap:10px;padding:6px 12px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-surface);font-size:12px;}
|
|
38
|
-
.mind-menu-key {margin-left:22px;float:right;color:var(--color-text-faint);font-size:11px;}
|
|
39
|
-
.mind-canvas-outline { flex: 0 0 235px; overflow: auto; border-right: 1px solid var(--color-border); padding: 12px 4px; }
|
|
40
|
-
.mind-canvas-outline button { display: block; border: 0; background: transparent; border-radius: 5px; width: 100%; text-align: left; padding: 7px 10px; color: var(--color-text-muted); white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
41
|
-
.mind-canvas-outline button.current { color: var(--mind-color); background: var(--color-surface-subtle); }
|
|
42
|
-
.mind-node-actions { position: absolute; left: 16px; top: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 5px; border: 1px solid var(--color-border); padding: 6px; background: var(--color-surface); border-radius: 10px; box-shadow: 0 4px 20px #00000008; }
|
|
43
|
-
.mind-canvas-bottom { position: absolute; bottom: 16px; left: 18px; right: 18px; display: flex; justify-content: space-between; align-items: end; gap: 10px; pointer-events: none; }
|
|
44
|
-
.mind-canvas-hint { font-size: 11px; color: var(--color-text-faint); padding: 6px 0; }
|
|
45
|
-
.mind-canvas-viewport { display: flex; align-items: center; gap: 6px; padding: 6px; border: 1px solid var(--color-border); border-radius: 9px; background: var(--color-surface); pointer-events: auto; white-space: nowrap; }
|
|
46
|
-
.mind-viewport-divider { height:20px;border-left:1px solid var(--color-border);margin:0 2px; }
|
|
47
|
-
.mind-zoom-percent { min-width:52px;font-variant-numeric:tabular-nums; }
|
|
48
|
-
.mind-viewport-tip { display:flex;align-items:center;flex-wrap:wrap;gap:7px;max-width:min(480px,calc(100vw - 40px));font-size:12px;line-height:1.6; }
|
|
49
|
-
.mind-viewport-tip kbd { padding:2px 6px;border-radius:4px;background:#ffffff20;font:inherit;white-space:nowrap; }
|
|
50
|
-
.mind-canvas-notice { position: absolute; bottom: 70px; left: 50%; transform: translateX(-50%); padding: 8px 14px; margin: 0; border-radius: 7px; background: var(--color-surface); border: 1px solid var(--color-border); color: var(--color-text-muted); font-size: 12px; pointer-events: none; max-width: 90%; }
|
|
51
|
-
.mind-canvas-stage .mind-drop-child { outline: 3px solid var(--mind-color); border-radius: 10px; }
|
|
52
|
-
.mind-canvas-stage .mind-drop-left { box-shadow:-6px 0 0 0 var(--mind-color);border-radius:9px; }
|
|
53
|
-
.mind-canvas-stage .mind-drop-right { box-shadow:6px 0 0 0 var(--mind-color);border-radius:9px; }
|
|
54
|
-
.mind-canvas-stage .mind-drag-branch { opacity:.35; }
|
|
55
|
-
.mind-canvas-stage .mind-drag-branch-edge { opacity:.12; }
|
|
56
|
-
.mind-side-preview {position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;}
|
|
57
|
-
.mind-side-preview path {fill:none;stroke:var(--mind-color);stroke-width:2;stroke-dasharray:6 4;}
|
|
58
|
-
.mind-side-preview rect {fill:var(--color-surface);stroke:var(--mind-color);stroke-width:2;stroke-dasharray:5 3;}
|
|
59
|
-
.mind-side-preview text {fill:var(--color-text);font-size:14px;}
|
|
60
|
-
.mind-canvas-stage .mind-drop-before::before, .mind-canvas-stage .mind-drop-after::after { content: ''; position: absolute; left: -10px; right: -10px; height: 3px; background: var(--mind-color); }
|
|
61
|
-
.mind-canvas-stage .mind-drop-before::before { top: -7px; }
|
|
62
|
-
.mind-canvas-stage .mind-drop-after::after { bottom: -7px; }
|
|
63
|
-
.mind-canvas-stage .vue-flow__edge-path { stroke: var(--mind-color); }
|
|
64
|
-
@media (max-width: 760px) { .mind-canvas-outline { flex-basis: 170px; } .mind-canvas-hint { display: none; } .mind-canvas-toolbar { gap: 8px; } .mind-canvas-options { justify-content: flex-start; margin-left: 0; } .mind-node-actions { left: 8px; right: 8px; top: 8px; } .mind-canvas-status { max-width: 60vw; } }
|
|
65
|
-
.mind-inline { height:100%; min-height:380px; }
|
|
66
|
-
.mind-inline .mind-map-workspace { height:100%; }
|
|
67
|
-
.mind-search { display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:6px 0 10px;font-size:12px; }
|
|
68
|
-
.mind-search input {width:180px;font-size:12px;}
|
|
69
|
-
.mind-outline-row {display:flex;align-items:center;margin:3px 0;}.mind-outline-row input {min-width:0;width:100%;border:0;background:transparent;font:12px/22px inherit;color:var(--color-text);padding:5px;}.mind-outline-row.current {background:var(--color-surface-subtle);}.mind-outline-row>button:last-child {width:24px;flex-shrink:0;padding:2px;}
|
|
70
|
-
.mind-canvas-outline .mind-outline-row textarea{min-width:0;width:100%;border:0;background:transparent;font-size:12px;line-height:22px;color:var(--color-text);padding:5px;resize:none;border-radius:4px;}
|
|
71
|
-
.mind-inline { height:100%; min-height:380px; }
|
|
72
|
-
.mind-inline .mind-map-workspace { height:100%; }.mind-settings-menu{width:310px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;font-size:12px;}.mind-settings-menu label{width:100%;display:flex;gap:8px;align-items:center;}.mind-settings-menu input{width:auto;}
|
|
73
|
-
.mind-canvas-fullscreen {
|
|
74
|
-
position: fixed !important;
|
|
75
|
-
top: 0 !important;
|
|
76
|
-
left: 0 !important;
|
|
77
|
-
width: 100vw !important;
|
|
78
|
-
height: 100dvh !important;
|
|
79
|
-
max-width: none !important;
|
|
80
|
-
}
|
|
1
|
+
.mind-inline .mind-map-workspace{height:100%;padding:0}.mind-canvas-title{display:inline-flex;align-items:center;gap:14px;max-width:calc(100vw - 110px)}.mind-canvas-title>span{font-size:13px;font-weight:400;color:var(--color-text-muted);max-width:65vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mind-map-workspace{display:flex;flex-direction:column;height:100%;min-height:300px;box-sizing:border-box;padding:16px 20px 20px;color:var(--color-text)}.mind-save-hint{margin-bottom:10px}.mind-canvas-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 10px;flex-wrap:wrap}.mind-canvas-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.mind-canvas-options{justify-content:flex-end;margin-left:auto}.mind-canvas-status{font-size:12px;color:var(--color-text-muted);max-width:32vw}.mind-canvas-body{display:flex;flex:1;min-height:0;border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.mind-canvas-stage{position:relative;flex:1;min-width:0;overflow:hidden;outline:none;background:radial-gradient(var(--color-border) 1px,transparent 1px) 0 0 / 22px 22px var(--color-surface)}.mind-canvas-stage.mind-grid-hidden{background-image:none}.mind-canvas-surface{width:100%;height:100%}.mind-canvas-stage .vue-flow__pane{cursor:default}.mind-canvas-stage .vue-flow__selection,.mind-marquee{background:color-mix(in srgb,var(--mind-color) 8%,transparent);border:1px solid var(--mind-color);box-sizing:border-box;pointer-events:none}.mind-marquee{position:absolute;z-index:4}.mind-canvas-stage.mind-space-pan .vue-flow__pane,.mind-canvas-stage.mind-space-pan .vue-flow__node{cursor:grab}.mind-canvas-stage .vue-flow__pane.dragging{cursor:grabbing}.mind-selection-summary{position:absolute;left:16px;top:16px;display:flex;align-items:center;gap:10px;padding:6px 12px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-surface);font-size:12px}.mind-menu-key{margin-left:22px;float:right;color:var(--color-text-faint);font-size:11px}.mind-canvas-outline{flex:0 0 235px;overflow:auto;border-right:1px solid var(--color-border);padding:12px 4px}.mind-canvas-outline button{display:block;border:0;background:transparent;border-radius:5px;width:100%;text-align:left;padding:7px 10px;color:var(--color-text-muted);white-space:pre-wrap;overflow-wrap:anywhere}.mind-canvas-outline button.current{color:var(--mind-color);background:var(--color-surface-subtle)}.mind-node-actions{position:absolute;left:16px;top:16px;display:flex;flex-wrap:wrap;align-items:center;gap:5px;border:1px solid var(--color-border);padding:6px;background:var(--color-surface);border-radius:10px;box-shadow:0 4px 20px #00000008}.mind-canvas-bottom{position:absolute;bottom:16px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:end;gap:10px;pointer-events:none}.mind-canvas-hint{font-size:11px;color:var(--color-text-faint);padding:6px 0}.mind-canvas-viewport{display:flex;align-items:center;gap:6px;padding:6px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-surface);pointer-events:auto;white-space:nowrap}.mind-viewport-divider{height:20px;border-left:1px solid var(--color-border);margin:0 2px}.mind-zoom-percent{min-width:52px;font-variant-numeric:tabular-nums}.mind-viewport-tip{display:flex;align-items:center;flex-wrap:wrap;gap:7px;max-width:min(480px,calc(100vw - 40px));font-size:12px;line-height:1.6}.mind-viewport-tip kbd{padding:2px 6px;border-radius:4px;background:#ffffff20;font:inherit;white-space:nowrap}.mind-canvas-notice{position:absolute;bottom:70px;left:50%;transform:translate(-50%);padding:8px 14px;margin:0;border-radius:7px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);font-size:12px;pointer-events:none;max-width:90%}.mind-canvas-stage .mind-drop-child{outline:3px solid var(--mind-color);border-radius:10px}.mind-canvas-stage .mind-drop-left{box-shadow:-6px 0 0 0 var(--mind-color);border-radius:9px}.mind-canvas-stage .mind-drop-right{box-shadow:6px 0 0 0 var(--mind-color);border-radius:9px}.mind-canvas-stage .mind-drag-branch{opacity:.35}.mind-canvas-stage .mind-drag-branch-edge{opacity:.12}.mind-side-preview{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.mind-side-preview path{fill:none;stroke:var(--mind-color);stroke-width:2;stroke-dasharray:6 4}.mind-side-preview rect{fill:var(--color-surface);stroke:var(--mind-color);stroke-width:2;stroke-dasharray:5 3}.mind-side-preview text{fill:var(--color-text);font-size:14px}.mind-canvas-stage .mind-drop-before:before,.mind-canvas-stage .mind-drop-after:after{content:"";position:absolute;left:-10px;right:-10px;height:3px;background:var(--mind-color)}.mind-canvas-stage .mind-drop-before:before{top:-7px}.mind-canvas-stage .mind-drop-after:after{bottom:-7px}.mind-canvas-stage .vue-flow__edge-path{stroke:var(--mind-color)}@media(max-width:760px){.mind-canvas-outline{flex-basis:170px}.mind-canvas-hint{display:none}.mind-canvas-toolbar{gap:8px}.mind-canvas-options{justify-content:flex-start;margin-left:0}.mind-node-actions{left:8px;right:8px;top:8px}.mind-canvas-status{max-width:60vw}}.mind-search{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:6px 0 10px;font-size:12px}.mind-search input{width:180px;font-size:12px}.mind-outline-row{display:flex;align-items:center;margin:3px 0}.mind-outline-row input{min-width:0;width:100%;border:0;background:transparent;font:12px/22px inherit;color:var(--color-text);padding:5px}.mind-outline-row.current{background:var(--color-surface-subtle)}.mind-outline-row>button:last-child{width:24px;flex-shrink:0;padding:2px}.mind-canvas-outline .mind-outline-row textarea{min-width:0;width:100%;border:0;background:transparent;font-size:12px;line-height:22px;color:var(--color-text);padding:5px;resize:none;border-radius:4px}.mind-inline{height:100%;min-height:380px}.mind-inline .mind-map-workspace{height:100%}.mind-settings-menu{width:310px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;font-size:12px}.mind-settings-menu label{width:100%;display:flex;gap:8px;align-items:center}.mind-settings-menu input{width:auto}.mind-canvas-fullscreen{position:fixed!important;top:0!important;left:0!important;width:100vw!important;height:100dvh!important;max-width:none!important}
|
|
@@ -1,93 +1 @@
|
|
|
1
|
-
.mind-comments {
|
|
2
|
-
flex: 0 0 340px;
|
|
3
|
-
display: flex;
|
|
4
|
-
flex-direction: column;
|
|
5
|
-
gap: 12px;
|
|
6
|
-
min-height: 0;
|
|
7
|
-
padding: 16px;
|
|
8
|
-
overflow: auto;
|
|
9
|
-
border-left: 1px solid var(--color-border);
|
|
10
|
-
background: var(--color-surface, #fff);
|
|
11
|
-
font-size: 13px;
|
|
12
|
-
}
|
|
13
|
-
.mind-comments__head {
|
|
14
|
-
display: flex;
|
|
15
|
-
align-items: flex-start;
|
|
16
|
-
justify-content: space-between;
|
|
17
|
-
gap: 8px;
|
|
18
|
-
}
|
|
19
|
-
.mind-comments__intro strong { font-size: 14px; }
|
|
20
|
-
.mind-comments__intro p {
|
|
21
|
-
margin: 4px 0 0;
|
|
22
|
-
color: var(--color-text-muted);
|
|
23
|
-
font-size: 12px;
|
|
24
|
-
line-height: 1.6;
|
|
25
|
-
}
|
|
26
|
-
.mind-comments__head-actions { display: flex; flex: none; gap: 4px; }
|
|
27
|
-
.mind-comments__error {
|
|
28
|
-
margin: 0;
|
|
29
|
-
padding: 8px 10px;
|
|
30
|
-
border-radius: 6px;
|
|
31
|
-
background: #fdecec;
|
|
32
|
-
color: #b42b36;
|
|
33
|
-
font-size: 12px;
|
|
34
|
-
}
|
|
35
|
-
.mind-comments__list { display: grid; gap: 10px; }
|
|
36
|
-
.mind-comment {
|
|
37
|
-
display: grid;
|
|
38
|
-
gap: 8px;
|
|
39
|
-
padding: 10px 12px;
|
|
40
|
-
border: 1px solid var(--color-border);
|
|
41
|
-
border-radius: 8px;
|
|
42
|
-
}
|
|
43
|
-
.mind-comment__head {
|
|
44
|
-
display: flex;
|
|
45
|
-
align-items: baseline;
|
|
46
|
-
justify-content: space-between;
|
|
47
|
-
gap: 8px;
|
|
48
|
-
}
|
|
49
|
-
.mind-comment__head span { color: var(--color-text-muted); font-size: 11px; }
|
|
50
|
-
.mind-comment__body {
|
|
51
|
-
margin: 0;
|
|
52
|
-
white-space: pre-wrap;
|
|
53
|
-
overflow-wrap: anywhere;
|
|
54
|
-
line-height: 1.7;
|
|
55
|
-
}
|
|
56
|
-
.mind-comment__actions { display: flex; flex-wrap: wrap; gap: 4px; }
|
|
57
|
-
.mind-comment__reply {
|
|
58
|
-
display: grid;
|
|
59
|
-
gap: 6px;
|
|
60
|
-
margin-left: 12px;
|
|
61
|
-
padding-left: 10px;
|
|
62
|
-
border-left: 2px solid var(--color-border);
|
|
63
|
-
}
|
|
64
|
-
.mind-comment__label {
|
|
65
|
-
color: var(--color-text-muted);
|
|
66
|
-
font-size: 11px;
|
|
67
|
-
font-weight: 600;
|
|
68
|
-
}
|
|
69
|
-
.mind-comment__compose { display: grid; gap: 6px; }
|
|
70
|
-
.mind-comments__compose {
|
|
71
|
-
display: grid;
|
|
72
|
-
gap: 6px;
|
|
73
|
-
padding-top: 12px;
|
|
74
|
-
border-top: 1px solid var(--color-border);
|
|
75
|
-
}
|
|
76
|
-
.mind-comments__empty {
|
|
77
|
-
margin: 0;
|
|
78
|
-
color: var(--color-text-muted);
|
|
79
|
-
font-size: 12px;
|
|
80
|
-
line-height: 1.7;
|
|
81
|
-
}
|
|
82
|
-
.mind-comments textarea {
|
|
83
|
-
width: 100%;
|
|
84
|
-
padding: 8px 10px;
|
|
85
|
-
border: 1px solid var(--color-border);
|
|
86
|
-
border-radius: 6px;
|
|
87
|
-
background: var(--color-surface, #fff);
|
|
88
|
-
color: inherit;
|
|
89
|
-
font: inherit;
|
|
90
|
-
line-height: 1.6;
|
|
91
|
-
box-sizing: border-box;
|
|
92
|
-
resize: vertical;
|
|
93
|
-
}
|
|
1
|
+
.mind-comments{flex:0 0 340px;display:flex;flex-direction:column;gap:12px;min-height:0;padding:16px;overflow:auto;border-left:1px solid var(--color-border);background:var(--color-surface, #fff);font-size:13px}.mind-comments__head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.mind-comments__intro strong{font-size:14px}.mind-comments__intro p{margin:4px 0 0;color:var(--color-text-muted);font-size:12px;line-height:1.6}.mind-comments__head-actions{display:flex;flex:none;gap:4px}.mind-comments__error{margin:0;padding:8px 10px;border-radius:6px;background:#fdecec;color:#b42b36;font-size:12px}.mind-comments__list{display:grid;gap:10px}.mind-comment{display:grid;gap:8px;padding:10px 12px;border:1px solid var(--color-border);border-radius:8px}.mind-comment__head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.mind-comment__head span{color:var(--color-text-muted);font-size:11px}.mind-comment__body{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.mind-comment__actions{display:flex;flex-wrap:wrap;gap:4px}.mind-comment__reply{display:grid;gap:6px;margin-left:12px;padding-left:10px;border-left:2px solid var(--color-border)}.mind-comment__label{color:var(--color-text-muted);font-size:11px;font-weight:600}.mind-comment__compose{display:grid;gap:6px}.mind-comments__compose{display:grid;gap:6px;padding-top:12px;border-top:1px solid var(--color-border)}.mind-comments__empty{margin:0;color:var(--color-text-muted);font-size:12px;line-height:1.7}.mind-comments textarea{width:100%;padding:8px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface, #fff);color:inherit;font:inherit;line-height:1.6;box-sizing:border-box;resize:vertical}
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
.mind-details
|
|
2
|
-
.mind-details > header { display: flex; justify-content: space-between; align-items: center; }.mind-details-title { color: var(--color-text-muted); overflow-wrap:anywhere; }
|
|
3
|
-
.mind-details fieldset { border: 0; border-top: 1px solid var(--color-border); padding: 12px 0; margin: 8px 0; display: flex; flex-direction:column; gap:8px; }
|
|
4
|
-
.mind-details legend { font-weight:600; padding:0 8px 0 0; } .mind-details label { display:grid; grid-template-columns:70px minmax(0,1fr);align-items:center;gap:8px; }
|
|
5
|
-
.mind-details input,.mind-details textarea { width:100%;font:inherit;box-sizing:border-box; } .mind-details textarea { resize:vertical; }.mind-format-buttons { display:flex;gap:6px; }
|
|
6
|
-
.mind-relation-item { display:flex;align-items:center;gap:8px; }.mind-relation-item span { flex:1;overflow-wrap:anywhere; }
|
|
7
|
-
.mind-color-grid {display:grid;grid-template-columns:repeat(8,24px);gap:4px;}.mind-color-grid>*{width:24px;min-width:24px;height:24px;padding:0;}
|
|
1
|
+
.mind-details{flex:0 0 280px;padding:14px;border-left:1px solid var(--color-border);overflow:auto;background:var(--color-surface);font-size:12px}.mind-details>header{display:flex;justify-content:space-between;align-items:center}.mind-details-title{color:var(--color-text-muted);overflow-wrap:anywhere}.mind-details fieldset{border:0;border-top:1px solid var(--color-border);padding:12px 0;margin:8px 0;display:flex;flex-direction:column;gap:8px}.mind-details legend{font-weight:600;padding:0 8px 0 0}.mind-details label{display:grid;grid-template-columns:70px minmax(0,1fr);align-items:center;gap:8px}.mind-details input,.mind-details textarea{width:100%;font:inherit;box-sizing:border-box}.mind-details textarea{resize:vertical}.mind-format-buttons{display:flex;gap:6px}.mind-relation-item{display:flex;align-items:center;gap:8px}.mind-relation-item span{flex:1;overflow-wrap:anywhere}.mind-color-grid{display:grid;grid-template-columns:repeat(8,24px);gap:4px}.mind-color-grid>*{width:24px;min-width:24px;height:24px;padding:0}
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
.mind-preview-wrap
|
|
2
|
-
.mind-preview-sized {position:relative;flex-shrink:0;}.mind-preview-scene {position:relative;transform-origin:top left;}.mind-preview-lines {position:absolute;inset:0;}
|
|
3
|
-
.mind-preview-topic {position:absolute;box-sizing:border-box;border:1px solid color-mix(in srgb,var(--mind-color) 35%,var(--color-border));border-radius:9px;background:var(--color-surface-subtle);color:var(--color-text);padding:10px 16px;display:flex;flex-direction:column;justify-content:center;line-height:22px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all;}
|
|
4
|
-
.mind-preview-title{display:block;width:100%;min-width:0;}.mind-preview-icon{font-size:16px;line-height:20px;}
|
|
5
|
-
.mind-preview-topic.root {background:var(--mind-color);color:white;font-weight:600;}.mind-preview-topic.text {border:0;background:transparent;}
|
|
6
|
-
.mind-preview-description {font-size:12px;font-weight:400;line-height:18px;margin-top:6px;opacity:.72;}.mind-preview-note{font-size:10px;line-height:14px;margin-top:6px;opacity:.65;}
|
|
7
|
-
.mind-preview-image{width:100%;height:96px;margin-top:8px;overflow:hidden;}.mind-preview-image img{width:100%!important;height:96px!important;object-fit:contain;margin:0!important;}
|
|
1
|
+
.mind-preview-wrap{display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:240px}.mind-preview-sized{position:relative;flex-shrink:0}.mind-preview-scene{position:relative;transform-origin:top left}.mind-preview-lines{position:absolute;inset:0}.mind-preview-topic{position:absolute;box-sizing:border-box;border:1px solid color-mix(in srgb,var(--mind-color) 35%,var(--color-border));border-radius:9px;background:var(--color-surface-subtle);color:var(--color-text);padding:10px 16px;display:flex;flex-direction:column;justify-content:center;line-height:22px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all}.mind-preview-title{display:block;width:100%;min-width:0}.mind-preview-icon{font-size:16px;line-height:20px}.mind-preview-topic.root{background:var(--mind-color);color:#fff;font-weight:600}.mind-preview-topic.text{border:0;background:transparent}.mind-preview-description{font-size:12px;font-weight:400;line-height:18px;margin-top:6px;opacity:.72}.mind-preview-note{font-size:10px;line-height:14px;margin-top:6px;opacity:.65}.mind-preview-image{width:100%;height:96px;margin-top:8px;overflow:hidden}.mind-preview-image img{width:100%!important;height:96px!important;object-fit:contain;margin:0!important}
|
|
@@ -1,112 +1 @@
|
|
|
1
|
-
.mind-topic-shell { position:
|
|
2
|
-
.mind-topic { position: relative; border-radius: 9px; background: var(--color-surface); color: var(--color-text); border: 1px solid color-mix(in srgb, var(--mind-color) 38%, var(--color-border)); padding: 10px 16px; font-family: inherit; font-size: 14px; line-height: 22px; display: grid; place-items: center; box-sizing: border-box; }
|
|
3
|
-
.mind-topic.root { background: var(--mind-color); border-color: var(--mind-color); color: white; font-weight: 600; }
|
|
4
|
-
.mind-topic.active { box-shadow: 0 0 0 3px color-mix(in srgb, var(--mind-color) 22%, transparent); }
|
|
5
|
-
.mind-topic-label { width:100%;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all;text-align:center;line-height:var(--mind-topic-line-height,22px); }
|
|
6
|
-
.mind-topic-input { box-sizing:border-box;display:block;border:0;border-radius:4px;outline:0;padding:0;margin:0;width:100%;min-width:0;min-height:var(--mind-topic-line-height,22px);max-width:none;resize:none;overflow:hidden;white-space:pre-wrap;word-break:break-all;overflow-wrap:anywhere;background:transparent;color:inherit;font:inherit;line-height:var(--mind-topic-line-height,22px);text-align:inherit; }
|
|
7
|
-
.mind-topic-input:focus { box-shadow: none; outline: 0; }
|
|
8
|
-
.mind-topic-fold {
|
|
9
|
-
position:absolute;left:calc(100% + 20px);top:calc(50% - 12px);width:24px;min-width:24px;height:24px;padding:0;
|
|
10
|
-
display:grid;place-items:center;z-index:2;border-radius:50%;border:1px solid var(--mind-color);color:var(--mind-color);background:var(--color-surface);
|
|
11
|
-
font:11px/1 sans-serif;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .12s ease;
|
|
12
|
-
}
|
|
13
|
-
.mind-topic-shell:hover>.mind-topic-fold,.mind-topic-shell.is-selected>.mind-topic-fold,
|
|
14
|
-
.mind-topic-shell:focus-within>.mind-topic-fold,.mind-topic-shell.is-collapsed>.mind-topic-fold {
|
|
15
|
-
opacity:1;pointer-events:auto;
|
|
16
|
-
}
|
|
17
|
-
.mind-topic-fold:hover {background:color-mix(in srgb,var(--mind-color) 10%,var(--color-surface));}
|
|
18
|
-
.mind-topic-fold:focus-visible {outline:2px solid var(--mind-color);outline-offset:3px;}
|
|
19
|
-
.mind-fold-count {font-variant-numeric:tabular-nums;font-weight:600;}
|
|
20
|
-
/* Keep the node and its connector in one hover region while moving toward the button. */
|
|
21
|
-
.mind-topic-shell.has-children:not(.root)::before {content:'';position:absolute;left:100%;top:0;width:64px;height:100%;}
|
|
22
|
-
.mind-topic-handle { opacity: 0; pointer-events: none; }
|
|
23
|
-
.mind-topic-shell.grows-left .mind-topic-add { left: auto; right: calc(100% - 12px); }
|
|
24
|
-
.mind-topic-shell .mind-topic-add.root-left {left:auto;right:calc(100% - 12px);}
|
|
25
|
-
.mind-topic-shell .mind-topic-add.root-right {right:auto;left:calc(100% - 12px);}
|
|
26
|
-
.mind-topic-shell.grows-left .mind-topic-fold {left:auto;right:calc(100% + 20px);}
|
|
27
|
-
.mind-topic-shell.grows-left .mind-fold-chevron {transform:rotate(180deg);}
|
|
28
|
-
.mind-topic-shell.grows-left.has-children:not(.root)::before {left:auto;right:100%;}
|
|
29
|
-
.mind-topic-shell.grows-down .mind-topic-add { left: calc(50% - 12px); top: calc(100% - 12px); }
|
|
30
|
-
.mind-topic-shell.grows-down .mind-topic-fold {right:auto;left:calc(50% - 12px);top:calc(100% + 18px);}
|
|
31
|
-
.mind-topic-shell.grows-down .mind-fold-chevron {transform:rotate(90deg);}
|
|
32
|
-
.mind-topic-shell.grows-down.has-children:not(.root)::before {left:0;right:auto;top:100%;width:100%;height:60px;}
|
|
33
|
-
@media(hover:none){.mind-topic-fold{opacity:1;pointer-events:auto;}}
|
|
34
|
-
.mind-topic-sibling {
|
|
35
|
-
position: absolute; width: 24px; min-width: 24px; height: 24px; padding: 0;
|
|
36
|
-
left: calc(50% - 12px); display: grid; place-items: center;
|
|
37
|
-
border: 0; border-radius: 50%; background: transparent; color: white;
|
|
38
|
-
cursor: pointer; z-index: 1;
|
|
39
|
-
}
|
|
40
|
-
.mind-topic-sibling.before { top: -22px; }
|
|
41
|
-
.mind-topic-sibling.after { bottom: -22px; }
|
|
42
|
-
.mind-topic-sibling > span {
|
|
43
|
-
display: grid; place-items: center; width: 9px; height: 9px; border-radius: 50%;
|
|
44
|
-
background: color-mix(in srgb, var(--mind-color) 36%, var(--color-surface)); font: 0/1 sans-serif;
|
|
45
|
-
}
|
|
46
|
-
.mind-topic-sibling:hover, .mind-topic-sibling:focus-visible { background: transparent; }
|
|
47
|
-
.mind-topic-sibling:hover > span, .mind-topic-sibling:focus-visible > span {
|
|
48
|
-
width: 20px; height: 20px; background: var(--mind-color); font-size: 16px;
|
|
49
|
-
}
|
|
50
|
-
.mind-topic-sibling:focus-visible { outline: 2px solid var(--mind-color); outline-offset: 1px; }
|
|
51
|
-
.mind-topic-shell.grows-down .mind-topic-sibling { top: calc(50% - 12px); bottom: auto; }
|
|
52
|
-
.mind-topic-shell.grows-down .mind-topic-sibling.before { left: -22px; }
|
|
53
|
-
.mind-topic-shell.grows-down .mind-topic-sibling.after { left: auto; right: -22px; }
|
|
54
|
-
.mind-topic-description { font-size:12px;line-height:18px;white-space:pre-wrap;color:var(--color-text-muted);width:100%;min-width:0;word-break:break-all;overflow-wrap:anywhere;margin-top:6px; }
|
|
55
|
-
.root .mind-topic-description { color:#e7f4ff; }.mind-topic-image { width:100%;height:96px;overflow:hidden;margin-top:8px; }
|
|
56
|
-
.mind-topic-image img {width:100%!important;height:96px!important;object-fit:contain;max-height:96px!important;margin:0!important;}
|
|
57
|
-
.mind-topic-note { font-size:10px;line-height:14px;margin-top:6px;opacity:.7;cursor:pointer; }
|
|
58
|
-
/**
|
|
59
|
-
* 「添加子主题」按钮:骑在节点右缘(或左缘)上的圆形按钮。
|
|
60
|
-
*
|
|
61
|
-
* ## 为什么必须显式给全样式(用户实测:"按钮+太怪异了")
|
|
62
|
-
*
|
|
63
|
-
* 这里原来只写了尺寸与圆角,**没有背景、边框、字色**。`<button>` 的默认样式
|
|
64
|
-
* 因此生效:浅灰方块底 + 深灰描边 + 系统字体,压在蓝色根节点上像一块补丁,
|
|
65
|
-
* 与画布其余部分(圆角卡片、细线连接)完全不是一个语言。
|
|
66
|
-
*
|
|
67
|
-
* 现在按参考样式统一为:圆形、白底、细描边、居中「+」,悬停时染色并略微放大。
|
|
68
|
-
* 用 `display:grid` 而不是 `line-height` 居中——后者在 24px 圆里对不齐。
|
|
69
|
-
*/
|
|
70
|
-
.mind-topic-add {
|
|
71
|
-
position: absolute;
|
|
72
|
-
left: calc(100% - 12px);
|
|
73
|
-
top: calc(50% - 12px);
|
|
74
|
-
width: 24px;
|
|
75
|
-
height: 24px;
|
|
76
|
-
padding: 0;
|
|
77
|
-
box-sizing: border-box;
|
|
78
|
-
display: grid;
|
|
79
|
-
place-items: center;
|
|
80
|
-
border-radius: 50%;
|
|
81
|
-
border: 1px solid color-mix(in srgb, var(--mind-color) 45%, var(--color-border));
|
|
82
|
-
background: var(--color-surface);
|
|
83
|
-
color: color-mix(in srgb, var(--mind-color) 82%, var(--color-text));
|
|
84
|
-
font: 15px/1 system-ui, sans-serif;
|
|
85
|
-
font-weight: 500;
|
|
86
|
-
cursor: pointer;
|
|
87
|
-
z-index: 3;
|
|
88
|
-
box-shadow: 0 1px 3px rgb(15 23 42 / 12%);
|
|
89
|
-
transition: background .12s ease, border-color .12s ease, transform .12s ease, box-shadow .12s ease;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* 悬停/聚焦:底色换成主题色的淡染,边界加深,轻微放大。
|
|
93
|
-
*
|
|
94
|
-
* 只改颜色而不改尺寸(除 transform)是关键:按钮骑在节点边缘,改 width/height
|
|
95
|
-
* 会让它相对节点跳动;`transform: scale` 不参与布局,视觉放大而位置不动。
|
|
96
|
-
*/
|
|
97
|
-
.mind-topic-add:hover,
|
|
98
|
-
.mind-topic-add:focus-visible {
|
|
99
|
-
background: color-mix(in srgb, var(--mind-color) 14%, var(--color-surface));
|
|
100
|
-
border-color: var(--mind-color);
|
|
101
|
-
color: var(--mind-color);
|
|
102
|
-
transform: scale(1.12);
|
|
103
|
-
box-shadow: 0 2px 6px rgb(15 23 42 / 18%);
|
|
104
|
-
}
|
|
105
|
-
.mind-topic-add:focus-visible { outline: 2px solid var(--mind-color); outline-offset: 2px; }
|
|
106
|
-
.mind-topic-add:active { transform: scale(0.98); }
|
|
107
|
-
/* 深色节点(根主题)上按钮是白底压在深蓝上:描边改用白色系,避免与底色混在一起 */
|
|
108
|
-
.mind-topic-add.root-left,
|
|
109
|
-
.mind-topic-add.root-right {
|
|
110
|
-
border-color: color-mix(in srgb, var(--color-surface) 70%, transparent);
|
|
111
|
-
}
|
|
112
|
-
.mind-topic-icon { font-size:16px;line-height:20px; }.mind-topic[style*="border: 0"] { background:transparent; }
|
|
1
|
+
.mind-topic-shell{position:relative;width:100%;height:100%}.mind-topic{position:relative;border-radius:9px;background:var(--color-surface);color:var(--color-text);border:1px solid color-mix(in srgb,var(--mind-color) 38%,var(--color-border));padding:10px 16px;font-family:inherit;font-size:14px;line-height:22px;display:grid;place-items:center;box-sizing:border-box}.mind-topic.root{background:var(--mind-color);border-color:var(--mind-color);color:#fff;font-weight:600}.mind-topic.active{box-shadow:0 0 0 3px color-mix(in srgb,var(--mind-color) 22%,transparent)}.mind-topic-label{width:100%;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all;text-align:center;line-height:var(--mind-topic-line-height,22px)}.mind-topic-input{box-sizing:border-box;display:block;border:0;border-radius:4px;outline:0;padding:0;margin:0;width:100%;min-width:0;min-height:var(--mind-topic-line-height,22px);max-width:none;resize:none;overflow:hidden;white-space:pre-wrap;word-break:break-all;overflow-wrap:anywhere;background:transparent;color:inherit;font:inherit;line-height:var(--mind-topic-line-height,22px);text-align:inherit}.mind-topic-input:focus{box-shadow:none;outline:0}.mind-topic-fold{position:absolute;left:calc(100% + 20px);top:calc(50% - 12px);width:24px;min-width:24px;height:24px;padding:0;display:grid;place-items:center;z-index:2;border-radius:50%;border:1px solid var(--mind-color);color:var(--mind-color);background:var(--color-surface);font:11px/1 sans-serif;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .12s ease}.mind-topic-shell:hover>.mind-topic-fold,.mind-topic-shell.is-selected>.mind-topic-fold,.mind-topic-shell:focus-within>.mind-topic-fold,.mind-topic-shell.is-collapsed>.mind-topic-fold{opacity:1;pointer-events:auto}.mind-topic-fold:hover{background:color-mix(in srgb,var(--mind-color) 10%,var(--color-surface))}.mind-topic-fold:focus-visible{outline:2px solid var(--mind-color);outline-offset:3px}.mind-fold-count{font-variant-numeric:tabular-nums;font-weight:600}.mind-topic-shell.has-children:not(.root):before{content:"";position:absolute;left:100%;top:0;width:64px;height:100%}.mind-topic-handle{opacity:0;pointer-events:none}.mind-topic-shell.grows-left .mind-topic-add,.mind-topic-shell .mind-topic-add.root-left{left:auto;right:calc(100% - 12px)}.mind-topic-shell .mind-topic-add.root-right{right:auto;left:calc(100% - 12px)}.mind-topic-shell.grows-left .mind-topic-fold{left:auto;right:calc(100% + 20px)}.mind-topic-shell.grows-left .mind-fold-chevron{transform:rotate(180deg)}.mind-topic-shell.grows-left.has-children:not(.root):before{left:auto;right:100%}.mind-topic-shell.grows-down .mind-topic-add{left:calc(50% - 12px);top:calc(100% - 12px)}.mind-topic-shell.grows-down .mind-topic-fold{right:auto;left:calc(50% - 12px);top:calc(100% + 18px)}.mind-topic-shell.grows-down .mind-fold-chevron{transform:rotate(90deg)}.mind-topic-shell.grows-down.has-children:not(.root):before{left:0;right:auto;top:100%;width:100%;height:60px}@media(hover:none){.mind-topic-fold{opacity:1;pointer-events:auto}}.mind-topic-sibling{position:absolute;width:24px;min-width:24px;height:24px;padding:0;left:calc(50% - 12px);display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:#fff;cursor:pointer;z-index:1}.mind-topic-sibling.before{top:-22px}.mind-topic-sibling.after{bottom:-22px}.mind-topic-sibling>span{display:grid;place-items:center;width:9px;height:9px;border-radius:50%;background:color-mix(in srgb,var(--mind-color) 36%,var(--color-surface));font:0/1 sans-serif}.mind-topic-sibling:hover,.mind-topic-sibling:focus-visible{background:transparent}.mind-topic-sibling:hover>span,.mind-topic-sibling:focus-visible>span{width:20px;height:20px;background:var(--mind-color);font-size:16px}.mind-topic-sibling:focus-visible{outline:2px solid var(--mind-color);outline-offset:1px}.mind-topic-shell.grows-down .mind-topic-sibling{top:calc(50% - 12px);bottom:auto}.mind-topic-shell.grows-down .mind-topic-sibling.before{left:-22px}.mind-topic-shell.grows-down .mind-topic-sibling.after{left:auto;right:-22px}.mind-topic-description{font-size:12px;line-height:18px;white-space:pre-wrap;color:var(--color-text-muted);width:100%;min-width:0;word-break:break-all;overflow-wrap:anywhere;margin-top:6px}.root .mind-topic-description{color:#e7f4ff}.mind-topic-image{width:100%;height:96px;overflow:hidden;margin-top:8px}.mind-topic-image img{width:100%!important;height:96px!important;object-fit:contain;max-height:96px!important;margin:0!important}.mind-topic-note{font-size:10px;line-height:14px;margin-top:6px;opacity:.7;cursor:pointer}.mind-topic-add{position:absolute;left:calc(100% - 12px);top:calc(50% - 12px);width:24px;height:24px;padding:0;box-sizing:border-box;display:grid;place-items:center;border-radius:50%;border:1px solid color-mix(in srgb,var(--mind-color) 45%,var(--color-border));background:var(--color-surface);color:color-mix(in srgb,var(--mind-color) 82%,var(--color-text));font:15px/1 system-ui,sans-serif;font-weight:500;cursor:pointer;z-index:3;box-shadow:0 1px 3px #0f172a1f;transition:background .12s ease,border-color .12s ease,transform .12s ease,box-shadow .12s ease}.mind-topic-add:hover,.mind-topic-add:focus-visible{background:color-mix(in srgb,var(--mind-color) 14%,var(--color-surface));border-color:var(--mind-color);color:var(--mind-color);transform:scale(1.12);box-shadow:0 2px 6px #0f172a2e}.mind-topic-add:focus-visible{outline:2px solid var(--mind-color);outline-offset:2px}.mind-topic-add:active{transform:scale(.98)}.mind-topic-add.root-left,.mind-topic-add.root-right{border-color:color-mix(in srgb,var(--color-surface) 70%,transparent)}.mind-topic-icon{font-size:16px;line-height:20px}.mind-topic[style*="border: 0"]{background:transparent}
|
|
@@ -1,47 +1 @@
|
|
|
1
|
-
.picker-backdrop {
|
|
2
|
-
position: fixed;
|
|
3
|
-
inset: 0;
|
|
4
|
-
z-index: 1100;
|
|
5
|
-
background: color-mix(in srgb, #000 45%, transparent);
|
|
6
|
-
display: flex;
|
|
7
|
-
align-items: flex-start;
|
|
8
|
-
justify-content: center;
|
|
9
|
-
padding-top: 12vh;
|
|
10
|
-
}
|
|
11
|
-
.picker-backdrop .picker {
|
|
12
|
-
width: 420px;
|
|
13
|
-
max-width: calc(100vw - 32px);
|
|
14
|
-
background: var(--color-surface);
|
|
15
|
-
border: 1px solid var(--color-border);
|
|
16
|
-
border-radius: 10px;
|
|
17
|
-
box-shadow: var(--shadow-pop);
|
|
18
|
-
padding: 8px;
|
|
19
|
-
}
|
|
20
|
-
.picker-backdrop .picker .picker-input {
|
|
21
|
-
width: 100%;
|
|
22
|
-
box-sizing: border-box;
|
|
23
|
-
border: 1px solid var(--color-border);
|
|
24
|
-
border-radius: 6px;
|
|
25
|
-
padding: 8px 10px;
|
|
26
|
-
font-size: 14px;
|
|
27
|
-
background: var(--color-surface-subtle);
|
|
28
|
-
color: var(--color-text);
|
|
29
|
-
}
|
|
30
|
-
.picker-backdrop .picker-input:focus { outline: none; border-color: var(--color-accent); }
|
|
31
|
-
.picker-backdrop .picker-list {
|
|
32
|
-
list-style: none;
|
|
33
|
-
margin: 6px 0 0;
|
|
34
|
-
padding: 0;
|
|
35
|
-
max-height: 320px;
|
|
36
|
-
overflow-y: auto;
|
|
37
|
-
}
|
|
38
|
-
.picker-backdrop .picker-list li {
|
|
39
|
-
padding: 7px 10px;
|
|
40
|
-
border-radius: 6px;
|
|
41
|
-
cursor: pointer;
|
|
42
|
-
font-size: 14px;
|
|
43
|
-
color: var(--color-text);
|
|
44
|
-
}
|
|
45
|
-
.picker-backdrop .picker-list li.active { background: var(--color-accent-soft); color: var(--color-accent); }
|
|
46
|
-
.picker-backdrop .picker-title { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
47
|
-
.picker-backdrop .picker-empty { color: var(--color-text-faint); font-size: 13px; text-align: center; padding: 14px 0; margin: 0; }
|
|
1
|
+
.picker-backdrop{position:fixed;inset:0;z-index:1100;background:color-mix(in srgb,#000 45%,transparent);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}.picker-backdrop .picker{width:420px;max-width:calc(100vw - 32px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:var(--shadow-pop);padding:8px}.picker-backdrop .picker .picker-input{width:100%;box-sizing:border-box;border:1px solid var(--color-border);border-radius:6px;padding:8px 10px;font-size:14px;background:var(--color-surface-subtle);color:var(--color-text)}.picker-backdrop .picker-input:focus{outline:none;border-color:var(--color-accent)}.picker-backdrop .picker-list{list-style:none;margin:6px 0 0;padding:0;max-height:320px;overflow-y:auto}.picker-backdrop .picker-list li{padding:7px 10px;border-radius:6px;cursor:pointer;font-size:14px;color:var(--color-text)}.picker-backdrop .picker-list li.active{background:var(--color-accent-soft);color:var(--color-accent)}.picker-backdrop .picker-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-backdrop .picker-empty{color:var(--color-text-faint);font-size:13px;text-align:center;padding:14px 0;margin:0}
|
package/dist/styles/renderer.css
CHANGED
|
@@ -1,45 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* 只读渲染器**专属**样式。
|
|
3
|
-
*
|
|
4
|
-
* 说明:内容排版(标题/列表/表格/代码/引用/高亮块/行内元素……)已收敛到
|
|
5
|
-
* `@/shared/content-style.css` 的单一真源,编辑端与只读端共用;本文件只保留
|
|
6
|
-
* **只有只读端才有**的东西:图片懒加载占位、公式占位/错误、附件卡片。
|
|
7
|
-
*
|
|
8
|
-
* 历史教训:曾因渲染器从 .vue 迁为 .ts 而丢失整个样式文件,排版静默退回浏览器
|
|
9
|
-
* 默认——结构正常、观感没生效,是很容易漏掉的回归。因此这里显式 import。
|
|
10
|
-
*/
|
|
11
|
-
@import './content-style.css';
|
|
12
|
-
|
|
13
|
-
/* 阅读端内容宽度交给 token(外观菜单可调) */
|
|
14
|
-
.doc-renderer {
|
|
15
|
-
width: 100%;
|
|
16
|
-
max-width: var(--content-width);
|
|
17
|
-
margin-inline: auto;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/* ---------------------------------------------------------------- 图片懒加载占位
|
|
21
|
-
还没取到字节(接近视口时才取,见 LazyAttachmentImage):
|
|
22
|
-
给一个最小占位高度,避免图片陆续到达时正文不断被顶下去。 */
|
|
23
|
-
.doc-image {
|
|
24
|
-
cursor: zoom-in;
|
|
25
|
-
}
|
|
26
|
-
.doc-image[data-loading] {
|
|
27
|
-
min-width: 160px;
|
|
28
|
-
min-height: 60px;
|
|
29
|
-
background: var(--color-surface-subtle);
|
|
30
|
-
border-radius: 8px;
|
|
31
|
-
}
|
|
32
|
-
.doc-image-loading,
|
|
33
|
-
.doc-image-missing,
|
|
34
|
-
.doc-unknown {
|
|
35
|
-
color: var(--color-text-muted);
|
|
36
|
-
font-size: 0.9em;
|
|
37
|
-
}
|
|
38
|
-
.doc-unknown {
|
|
39
|
-
border: 1px dashed var(--color-border-strong);
|
|
40
|
-
border-radius: 6px;
|
|
41
|
-
padding: 8px 10px;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/* 文件卡片的共同样式在 shared/content-style.css。 */
|
|
45
|
-
.doc-file.is-missing { color: var(--color-text-faint); }
|
|
1
|
+
@import"./content-style.css";.doc-renderer{width:100%;max-width:var(--content-width);margin-inline:auto}.doc-image{cursor:zoom-in}.doc-image[data-loading]{min-width:160px;min-height:60px;background:var(--color-surface-subtle);border-radius:8px}.doc-image-loading,.doc-image-missing,.doc-unknown{color:var(--color-text-muted);font-size:.9em}.doc-unknown{border:1px dashed var(--color-border-strong);border-radius:6px;padding:8px 10px}.doc-file.is-missing{color:var(--color-text-faint)}
|
|
@@ -1,3 +1 @@
|
|
|
1
|
-
.wendang-spreadsheet
|
|
2
|
-
.worksheet-grid { position: relative; flex: 1; min-width: 0; min-height: 0; overflow: hidden; }
|
|
3
|
-
.wendang-spreadsheet > p { position: absolute; top: 8px; left: 12px; z-index: 2; }
|
|
1
|
+
.wendang-spreadsheet{position:relative;display:flex;flex-direction:column;height:100%;min-height:300px;min-width:0;flex:1}.worksheet-grid{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden}.wendang-spreadsheet>p{position:absolute;top:8px;left:12px;z-index:2}
|