@lemoncat7/dsh-knowledge 2.3.3 → 2.3.6
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 +5 -3
- package/docs/architecture.md +2 -0
- package/docs/releases/2.3.5.md +26 -0
- package/docs/releases/2.3.6.md +17 -0
- package/docs/ui-maintenance.md +97 -0
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +20 -1
- package/lib/api.js.map +1 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +357 -206
- package/lib/client.js.map +4 -4
- package/lib/design-tokens.d.ts +12 -0
- package/lib/design-tokens.d.ts.map +1 -0
- package/lib/design-tokens.js +58 -0
- package/lib/design-tokens.js.map +1 -0
- package/lib/extraction.d.ts.map +1 -1
- package/lib/extraction.js +2 -1
- package/lib/extraction.js.map +1 -1
- package/lib/knowledge-activity-controller.d.ts +3 -8
- package/lib/knowledge-activity-controller.d.ts.map +1 -1
- package/lib/knowledge-activity-controller.js +19 -7
- package/lib/knowledge-activity-controller.js.map +1 -1
- package/lib/knowledge-activity-notes.d.ts.map +1 -1
- package/lib/knowledge-activity-notes.js +19 -10
- package/lib/knowledge-activity-notes.js.map +1 -1
- package/lib/knowledge-activity-panel.d.ts.map +1 -1
- package/lib/knowledge-activity-panel.js +33 -21
- package/lib/knowledge-activity-panel.js.map +1 -1
- package/lib/knowledge-activity-presentation.d.ts +14 -0
- package/lib/knowledge-activity-presentation.d.ts.map +1 -0
- package/lib/knowledge-activity-presentation.js +77 -0
- package/lib/knowledge-activity-presentation.js.map +1 -0
- package/lib/knowledge-activity-state.d.ts +17 -0
- package/lib/knowledge-activity-state.d.ts.map +1 -0
- package/lib/knowledge-activity-state.js +14 -0
- package/lib/knowledge-activity-state.js.map +1 -0
- package/lib/latest-request.d.ts +7 -0
- package/lib/latest-request.d.ts.map +1 -0
- package/lib/latest-request.js +14 -0
- package/lib/latest-request.js.map +1 -0
- package/lib/local-provider.d.ts +0 -2
- package/lib/local-provider.d.ts.map +1 -1
- package/lib/local-provider.js +2 -323
- package/lib/local-provider.js.map +1 -1
- package/lib/notes/share-page-styles.d.ts +2 -0
- package/lib/notes/share-page-styles.d.ts.map +1 -0
- package/lib/notes/share-page-styles.js +11 -0
- package/lib/notes/share-page-styles.js.map +1 -0
- package/lib/notes/share-page.d.ts.map +1 -1
- package/lib/notes/share-page.js +1 -8
- package/lib/notes/share-page.js.map +1 -1
- package/lib/remote-provider.d.ts.map +1 -1
- package/lib/remote-provider.js +41 -6
- package/lib/remote-provider.js.map +1 -1
- package/lib/search-query.d.ts +2 -0
- package/lib/search-query.d.ts.map +1 -0
- package/lib/search-query.js +50 -0
- package/lib/search-query.js.map +1 -0
- package/lib/storage/migrations.d.ts +5 -0
- package/lib/storage/migrations.d.ts.map +1 -0
- package/lib/storage/migrations.js +325 -0
- package/lib/storage/migrations.js.map +1 -0
- package/lib/theme-bridge.d.ts +9 -7
- package/lib/theme-bridge.d.ts.map +1 -1
- package/lib/theme-bridge.js +3 -23
- package/lib/theme-bridge.js.map +1 -1
- package/lib/web-note-editor-selection.d.ts.map +1 -1
- package/lib/web-note-editor-selection.js +50 -15
- package/lib/web-note-editor-selection.js.map +1 -1
- package/lib/web-note-editor.d.ts.map +1 -1
- package/lib/web-note-editor.js +15 -1
- package/lib/web-note-editor.js.map +1 -1
- package/lib/web.d.ts.map +1 -1
- package/lib/web.js +4 -0
- package/lib/web.js.map +1 -1
- package/package.json +1 -1
- package/web/app.js +78 -176
- package/web/design-tokens.css +1 -0
- package/web/dialogs.js +94 -0
- package/web/document-actions.js +68 -0
- package/web/index.html +1 -0
- package/web/model-catalog.js +22 -0
- package/web/note-editor.js +57 -57
- package/web/select-control.js +193 -0
- package/web/styles.css +93 -185
- package/web/ui-primitives.js +5 -0
package/web/styles.css
CHANGED
|
@@ -2,31 +2,6 @@
|
|
|
2
2
|
color-scheme: light dark;
|
|
3
3
|
font-family: var(--font-ui);
|
|
4
4
|
font-size: 16px;
|
|
5
|
-
--font-ui: ui-sans-serif, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Inter, "PingFang SC", "Noto Sans CJK SC", "Microsoft YaHei UI", Arial, sans-serif;
|
|
6
|
-
--font-reading: ui-sans-serif, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", "PingFang SC", "Noto Sans CJK SC", "Microsoft YaHei UI", Arial, sans-serif;
|
|
7
|
-
--font-mono: "SFMono-Regular", "Cascadia Code", "Cascadia Mono", Menlo, Consolas, monospace;
|
|
8
|
-
--bg: #ebebeb;
|
|
9
|
-
--surface: #f4f4f4;
|
|
10
|
-
--surface-raised: #fafafa;
|
|
11
|
-
--surface-soft: #eeeeef;
|
|
12
|
-
--surface-hover: rgb(118 118 128 / 9%);
|
|
13
|
-
--dialog-surface: #f4f4f4;
|
|
14
|
-
--text: #1d1d1f;
|
|
15
|
-
--text-secondary: #515154;
|
|
16
|
-
--text-tertiary: #6e6e73;
|
|
17
|
-
--border: rgb(60 60 67 / 14%);
|
|
18
|
-
--border-strong: rgb(60 60 67 / 24%);
|
|
19
|
-
--accent: #3a3a3c;
|
|
20
|
-
--accent-hover: #1d1d1f;
|
|
21
|
-
--accent-soft: #e2e2e5;
|
|
22
|
-
--on-accent: #ffffff;
|
|
23
|
-
--success: #248a3d;
|
|
24
|
-
--success-soft: #e8f5eb;
|
|
25
|
-
--warning: #c93400;
|
|
26
|
-
--warning-soft: #fff1e8;
|
|
27
|
-
--danger: #d70015;
|
|
28
|
-
--danger-soft: #ffebed;
|
|
29
|
-
--shadow: 0 24px 64px rgb(0 0 0 / 20%);
|
|
30
5
|
--radius: 14px;
|
|
31
6
|
--radius-control: 9px;
|
|
32
7
|
--radius-small: 7px;
|
|
@@ -43,87 +18,40 @@
|
|
|
43
18
|
--surface-canvas: var(--bg);
|
|
44
19
|
--surface-pane: transparent;
|
|
45
20
|
--surface-editor: transparent;
|
|
46
|
-
--surface-overlay: rgba(246, 247, 250, 0.88);
|
|
47
21
|
--shadow-control: 0 1px 2px rgb(0 0 0 / 5.5%), inset 0 1px 0 rgb(255 255 255 / 58%);
|
|
48
22
|
--shadow-floating: 0 22px 70px color-mix(in srgb, var(--text) 18%, transparent), 0 2px 8px color-mix(in srgb, var(--text) 8%, transparent);
|
|
49
|
-
--glass-clear: color-mix(in srgb, var(--surface-raised) 20%, transparent);
|
|
50
23
|
--glass-regular: color-mix(in srgb, var(--surface-raised) 36%, transparent);
|
|
51
|
-
--glass-thick: color-mix(in srgb, var(--surface-raised) 62%, transparent);
|
|
52
24
|
--glass-border: color-mix(in srgb, var(--border) 58%, transparent);
|
|
53
25
|
--glass-separator: var(--border);
|
|
54
26
|
--glass-rim-light: color-mix(in srgb, var(--surface-raised) 58%, transparent);
|
|
55
27
|
--glass-rim-shadow: color-mix(in srgb, var(--text) 12%, transparent);
|
|
56
28
|
--glass-filter: saturate(1.22) contrast(1.03) blur(32px);
|
|
57
29
|
--glass-shadow: inset 0 1px 0 var(--glass-rim-light), inset 0 -1px 0 var(--glass-rim-shadow), 0 10px 28px rgb(0 0 0 / 8.5%);
|
|
58
|
-
--liquid-glass-large: color-mix(in srgb, var(--surface) 68%, transparent);
|
|
59
|
-
--liquid-glass-regular: color-mix(in srgb, var(--surface-raised) 52%, transparent);
|
|
60
|
-
--liquid-glass-clear: color-mix(in srgb, var(--surface-raised) 36%, transparent);
|
|
61
|
-
--liquid-glass-dialog: color-mix(in srgb, var(--surface-raised) 76%, transparent);
|
|
62
|
-
--interaction-glow-core: rgb(67 70 77 / 78%);
|
|
63
|
-
--interaction-glow-soft: rgb(111 115 124 / 36%);
|
|
64
|
-
--interaction-glow-haze: rgb(255 255 255 / 72%);
|
|
65
|
-
--interaction-glare-light: rgb(255 255 255 / 72%);
|
|
66
|
-
--interaction-glare-rim: rgb(45 48 54 / 12%);
|
|
67
|
-
--card-highlight: rgb(255 255 255 / 58%);
|
|
68
|
-
--card-fill: color-mix(in srgb, var(--surface-raised) 48%, transparent);
|
|
69
30
|
--radius-shell: 18px;
|
|
70
31
|
--radius-panel: 12px;
|
|
71
32
|
--motion-fast: 120ms;
|
|
72
33
|
--motion-base: 190ms;
|
|
73
34
|
--motion-slow: 280ms;
|
|
74
35
|
--ease-out: cubic-bezier(.22, 1, .36, 1);
|
|
75
|
-
--ease-spring: cubic-bezier(.2, .9, .25, 1.04);
|
|
76
36
|
--font-caption: 12px;
|
|
77
37
|
--font-body: 13px;
|
|
78
|
-
--font-label: 14px;
|
|
79
38
|
--font-title: 18px;
|
|
80
|
-
--font-heading: 22px;
|
|
81
39
|
--sidebar-width: 214px;
|
|
82
40
|
--chrome-inset: 8px;
|
|
83
|
-
--topbar-inline-inset: 0px;
|
|
84
41
|
--scrollbar-thumb: color-mix(in srgb, var(--text-tertiary) 42%, transparent);
|
|
85
42
|
--scrollbar-thumb-hover: color-mix(in srgb, var(--text-secondary) 58%, transparent);
|
|
86
43
|
}
|
|
87
44
|
|
|
88
45
|
@media (prefers-color-scheme: dark) {
|
|
89
46
|
:root:not([data-color-scheme]) {
|
|
90
|
-
--bg: #101719;
|
|
91
|
-
--surface: #182022;
|
|
92
|
-
--surface-raised: #20292b;
|
|
93
|
-
--surface-soft: rgb(255 255 255 / 6%);
|
|
94
|
-
--surface-hover: rgb(255 255 255 / 7.5%);
|
|
95
|
-
--dialog-surface: #20292b;
|
|
96
|
-
--text: #e3eaeb;
|
|
97
|
-
--text-secondary: #bbc9cc;
|
|
98
|
-
--text-tertiary: #95a7ab;
|
|
99
|
-
--border: rgb(184 204 205 / 10%);
|
|
100
|
-
--border-strong: rgb(184 204 205 / 18%);
|
|
101
|
-
--accent: #69b6ba;
|
|
102
|
-
--accent-hover: #8aced0;
|
|
103
|
-
--accent-soft: rgb(105 182 186 / 13%);
|
|
104
|
-
--on-accent: #101819;
|
|
105
|
-
--success: #30d158;
|
|
106
|
-
--success-soft: rgb(48 209 88 / 13%);
|
|
107
|
-
--warning: #ff9f0a;
|
|
108
|
-
--warning-soft: rgb(255 159 10 / 13%);
|
|
109
|
-
--danger: #ff453a;
|
|
110
|
-
--danger-soft: rgb(255 69 58 / 14%);
|
|
111
|
-
--shadow: 0 28px 72px rgb(0 0 0 / 48%);
|
|
112
47
|
--surface-highlight: rgb(255 255 255 / 11%);
|
|
113
48
|
--shadow-soft: 0 1px 2px rgb(0 0 0 / 28%);
|
|
114
49
|
--shadow-panel: 0 2px 7px rgb(0 0 0 / 20%), 0 14px 36px rgb(0 0 0 / 28%);
|
|
115
50
|
--shadow-control: 0 1px 2px rgb(0 0 0 / 28%), 0 5px 16px rgb(0 0 0 / 18%), inset 0 1px 0 rgb(255 255 255 / 11%);
|
|
116
51
|
--shadow-floating: 0 24px 72px rgb(0 0 0 / 52%), 0 2px 8px rgb(0 0 0 / 28%);
|
|
117
52
|
--glass-shadow: inset 0 1px 0 var(--glass-rim-light), inset 0 -1px 0 var(--glass-rim-shadow), 0 12px 32px rgb(0 0 0 / 30%);
|
|
118
|
-
--interaction-glow-core: rgb(244 244 247 / 78%);
|
|
119
|
-
--interaction-glow-soft: rgb(197 199 205 / 34%);
|
|
120
|
-
--interaction-glow-haze: rgb(255 255 255 / 42%);
|
|
121
|
-
--interaction-glare-light: rgb(255 255 255 / 34%);
|
|
122
|
-
--interaction-glare-rim: rgb(255 255 255 / 10%);
|
|
123
53
|
--glass-rim-light: rgb(255 255 255 / 18%);
|
|
124
54
|
--glass-rim-shadow: rgb(0 0 0 / 30%);
|
|
125
|
-
--card-highlight: rgb(255 255 255 / 11%);
|
|
126
|
-
--card-fill: rgb(7 9 11 / 22%);
|
|
127
55
|
--workspace-glass-surface: rgb(25 33 35 / 90%);
|
|
128
56
|
--material-toolbar: transparent;
|
|
129
57
|
--material-panel: rgb(32 41 43 / 58%);
|
|
@@ -131,7 +59,6 @@
|
|
|
131
59
|
--material-control-hover: rgb(39 50 53 / 84%);
|
|
132
60
|
--surface-pane: transparent;
|
|
133
61
|
--surface-editor: transparent;
|
|
134
|
-
--surface-overlay: rgb(25 33 35 / 94%);
|
|
135
62
|
}
|
|
136
63
|
}
|
|
137
64
|
|
|
@@ -144,13 +71,6 @@
|
|
|
144
71
|
--shadow-control: 0 1px 2px rgb(0 0 0 / 28%), 0 5px 16px rgb(0 0 0 / 18%), inset 0 1px 0 rgb(255 255 255 / 11%);
|
|
145
72
|
--shadow-floating: 0 24px 72px rgb(0 0 0 / 52%), 0 2px 8px rgb(0 0 0 / 28%);
|
|
146
73
|
--glass-shadow: inset 0 1px 0 var(--glass-rim-light), inset 0 -1px 0 var(--glass-rim-shadow), 0 12px 32px rgb(0 0 0 / 30%);
|
|
147
|
-
--interaction-glow-core: rgb(244 244 247 / 78%);
|
|
148
|
-
--interaction-glow-soft: rgb(197 199 205 / 34%);
|
|
149
|
-
--interaction-glow-haze: rgb(255 255 255 / 42%);
|
|
150
|
-
--interaction-glare-light: rgb(255 255 255 / 34%);
|
|
151
|
-
--interaction-glare-rim: rgb(255 255 255 / 10%);
|
|
152
|
-
--card-highlight: rgb(255 255 255 / 11%);
|
|
153
|
-
--card-fill: rgb(7 9 11 / 22%);
|
|
154
74
|
--workspace-glass-surface: rgb(25 33 35 / 90%);
|
|
155
75
|
--material-toolbar: transparent;
|
|
156
76
|
--material-panel: rgb(32 41 43 / 58%);
|
|
@@ -158,7 +78,6 @@
|
|
|
158
78
|
--material-control-hover: rgb(39 50 53 / 84%);
|
|
159
79
|
--surface-pane: transparent;
|
|
160
80
|
--surface-editor: transparent;
|
|
161
|
-
--surface-overlay: rgb(25 33 35 / 94%);
|
|
162
81
|
}
|
|
163
82
|
|
|
164
83
|
* { box-sizing: border-box; }
|
|
@@ -183,13 +102,9 @@ body {
|
|
|
183
102
|
/* The workspace and iframe remain transparent. Only the visible sidebar and
|
|
184
103
|
main pane own material, preventing a full-page glass sheet. */
|
|
185
104
|
:root[data-dsh-embed-mode="embedded"] {
|
|
186
|
-
--workspace-glass-surface:
|
|
187
|
-
--glass-filter:
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
:root[data-dsh-embed-mode="embedded"][data-color-scheme="dark"] {
|
|
191
|
-
--workspace-glass-surface: rgb(16 23 25 / 18%);
|
|
192
|
-
--glass-filter: saturate(.55) contrast(1.02) blur(24px);
|
|
105
|
+
--workspace-glass-surface: var(--knowledge-embedded-surface);
|
|
106
|
+
--glass-filter: var(--knowledge-embedded-filter);
|
|
107
|
+
--material-control: var(--knowledge-embedded-control);
|
|
193
108
|
}
|
|
194
109
|
|
|
195
110
|
:root[data-dsh-embed-mode="embedded"],
|
|
@@ -282,7 +197,7 @@ button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-
|
|
|
282
197
|
|
|
283
198
|
button:disabled { cursor: not-allowed; opacity: .56; }
|
|
284
199
|
|
|
285
|
-
::selection { background: var(--
|
|
200
|
+
::selection { background: var(--selection-background); color: var(--selection-text); }
|
|
286
201
|
|
|
287
202
|
input:-webkit-autofill,
|
|
288
203
|
input:-webkit-autofill:hover,
|
|
@@ -393,7 +308,7 @@ html,
|
|
|
393
308
|
background-color: var(--material-control);
|
|
394
309
|
color: var(--text);
|
|
395
310
|
box-shadow: var(--shadow-control);
|
|
396
|
-
transition: background-color var(--motion-fast) ease, border-color var(--motion-fast) ease
|
|
311
|
+
transition: background-color var(--motion-fast) ease, border-color var(--motion-fast) ease;
|
|
397
312
|
}
|
|
398
313
|
|
|
399
314
|
.input, .select { height: 38px; min-height: 38px; font: inherit; line-height: 20px; }
|
|
@@ -411,6 +326,18 @@ html,
|
|
|
411
326
|
background-repeat: no-repeat;
|
|
412
327
|
}
|
|
413
328
|
.select option { background: var(--dialog-surface); color: var(--text); }
|
|
329
|
+
.knowledge-select { display: inline-flex; min-width: 0; width: 100%; vertical-align: middle; }
|
|
330
|
+
.knowledge-select-source { display: none !important; }
|
|
331
|
+
.knowledge-select-trigger { display: block; min-width: 0; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; }
|
|
332
|
+
.knowledge-select-trigger[aria-invalid="true"] { border-color: var(--danger); outline: 2px solid var(--danger); outline-offset: 2px; }
|
|
333
|
+
.knowledge-select-menu { position: fixed; z-index: 1200; overflow: auto; overscroll-behavior: contain; border: 1px solid var(--border-strong); border-radius: var(--radius-control); padding: 4px; background: var(--dialog-surface); color: var(--text); box-shadow: var(--shadow-floating); scrollbar-width: thin; }
|
|
334
|
+
.knowledge-select-option { display: block; width: 100%; min-height: 36px; border: 0; border-radius: var(--radius-small); padding: 8px 10px; background: transparent; color: var(--text); font: inherit; text-align: left; overflow-wrap: anywhere; cursor: pointer; }
|
|
335
|
+
.knowledge-select-option:hover, .knowledge-select-option:focus-visible { background: var(--surface-hover); outline-offset: -2px; }
|
|
336
|
+
.knowledge-select-option[aria-selected="true"] { background: var(--accent-soft); color: var(--accent); font-weight: 600; }
|
|
337
|
+
.knowledge-select-empty { margin: 0; padding: 10px; color: var(--text-secondary); }
|
|
338
|
+
.toolbar > .knowledge-select, .mount-manager-toolbar > .knowledge-select { width: auto; min-width: 132px; }
|
|
339
|
+
.app-sidebar-scrim[hidden] { display: none; }
|
|
340
|
+
@media (pointer: coarse) { .knowledge-select-option { min-height: 44px; } }
|
|
414
341
|
.textarea { min-height: 132px; resize: vertical; }
|
|
415
342
|
.input::placeholder, .textarea::placeholder { color: var(--text-tertiary); }
|
|
416
343
|
.input:hover, .select:hover, .textarea:hover { border-color: color-mix(in srgb, var(--border-strong) 72%, var(--border)); background-color: var(--material-control-hover); }
|
|
@@ -428,11 +355,11 @@ html,
|
|
|
428
355
|
font-weight: 590;
|
|
429
356
|
white-space: nowrap;
|
|
430
357
|
box-shadow: var(--shadow-control);
|
|
431
|
-
transition: background var(--motion-fast) ease, border-color var(--motion-fast) ease,
|
|
358
|
+
transition: background-color var(--motion-fast) ease, border-color var(--motion-fast) ease, color var(--motion-fast) ease;
|
|
432
359
|
}
|
|
433
360
|
|
|
434
|
-
.button:hover:not(:disabled) { background: var(--material-control-hover); border-color: var(--border-strong);
|
|
435
|
-
.button:active:not(:disabled) {
|
|
361
|
+
.button:hover:not(:disabled) { background: var(--material-control-hover); border-color: var(--border-strong); }
|
|
362
|
+
.button:active:not(:disabled) { border-color: var(--text-secondary); }
|
|
436
363
|
.button.primary { border-color: color-mix(in srgb, var(--accent) 82%, var(--border)); background: var(--accent); color: var(--on-accent); box-shadow: inset 0 1px 0 color-mix(in srgb, var(--on-accent) 24%, transparent), 0 1px 3px color-mix(in srgb, var(--text) 16%, transparent); }
|
|
437
364
|
.button.primary:hover:not(:disabled) { border-color: var(--accent-hover); background: var(--accent-hover); box-shadow: inset 0 1px 0 color-mix(in srgb, var(--on-accent) 26%, transparent), 0 2px 6px color-mix(in srgb, var(--text) 14%, transparent); }
|
|
438
365
|
.button.danger { border-color: color-mix(in srgb, var(--danger) 40%, var(--border)); color: var(--danger); }
|
|
@@ -452,7 +379,6 @@ html,
|
|
|
452
379
|
align-items: start;
|
|
453
380
|
overflow: hidden;
|
|
454
381
|
background: transparent;
|
|
455
|
-
transition: grid-template-columns 230ms var(--ease-out);
|
|
456
382
|
}
|
|
457
383
|
|
|
458
384
|
.sidebar {
|
|
@@ -474,10 +400,6 @@ html,
|
|
|
474
400
|
box-shadow: inset 0 1px 0 var(--surface-highlight), var(--shadow-soft);
|
|
475
401
|
-webkit-backdrop-filter: var(--glass-filter);
|
|
476
402
|
backdrop-filter: var(--glass-filter);
|
|
477
|
-
transform-origin: left center;
|
|
478
|
-
transition:
|
|
479
|
-
opacity 150ms ease-out,
|
|
480
|
-
transform 230ms var(--ease-out);
|
|
481
403
|
}
|
|
482
404
|
|
|
483
405
|
.brand { display: flex; align-items: center; gap: 11px; min-height: 56px; margin-bottom: 8px; padding: 3px 8px 12px; border-bottom: 1px solid var(--separator); }
|
|
@@ -519,10 +441,10 @@ html,
|
|
|
519
441
|
text-align: left;
|
|
520
442
|
font-size: 13px;
|
|
521
443
|
font-weight: 520;
|
|
522
|
-
transition: background
|
|
444
|
+
transition: background-color var(--motion-fast) ease, color var(--motion-fast) ease;
|
|
523
445
|
}
|
|
524
446
|
.nav-button:hover { background: var(--surface-hover); color: var(--text); }
|
|
525
|
-
.nav-button:active {
|
|
447
|
+
.nav-button:active { background: var(--material-control); }
|
|
526
448
|
.nav-button[aria-current="page"] { background: var(--material-control); color: var(--text); font-weight: 640; box-shadow: var(--shadow-control); }
|
|
527
449
|
.nav-button[aria-current="page"]::before { content: ""; position: absolute; top: 9px; bottom: 9px; left: -1px; width: 2px; border-radius: 2px; background: var(--text-secondary); opacity: .72; }
|
|
528
450
|
.nav-index { width: 18px; flex: none; color: color-mix(in srgb, var(--text-tertiary) 70%, transparent); font: 8px/1.2 ui-monospace, "SFMono-Regular", Consolas, monospace; letter-spacing: .04em; transition: color var(--motion-fast) ease; }
|
|
@@ -549,10 +471,7 @@ html,
|
|
|
549
471
|
touch-action: none;
|
|
550
472
|
background: transparent;
|
|
551
473
|
outline-offset: -2px;
|
|
552
|
-
transition:
|
|
553
|
-
opacity 130ms ease-out,
|
|
554
|
-
transform 210ms var(--ease-out),
|
|
555
|
-
background-color var(--motion-fast) ease;
|
|
474
|
+
transition: background-color var(--motion-fast) ease;
|
|
556
475
|
}
|
|
557
476
|
.app-sidebar-resizer::before {
|
|
558
477
|
content: "";
|
|
@@ -627,7 +546,7 @@ html,
|
|
|
627
546
|
.topbar-heading { min-width: 0; }
|
|
628
547
|
.topbar-kicker { display: block; margin-bottom: 2px; color: var(--text-tertiary); font: 8px/1.2 ui-monospace, "SFMono-Regular", Consolas, monospace; font-weight: 700; letter-spacing: .12em; }
|
|
629
548
|
.route-progress { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; overflow: hidden; background: color-mix(in srgb, var(--accent) 7%, transparent); }
|
|
630
|
-
.route-progress span { display: block; width:
|
|
549
|
+
.route-progress span { display: block; width: 100%; height: 100%; border-radius: 0 99px 99px 0; background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 58%, transparent), var(--accent)); transform: scaleX(var(--route-progress)); transform-origin: left center; transition: transform var(--motion-fast) ease-out; }
|
|
631
550
|
.mobile-menu, .app-sidebar-scrim { display: none; }
|
|
632
551
|
.topbar-actions { display: flex; align-items: center; gap: 8px; }
|
|
633
552
|
.pane-toggle-group {
|
|
@@ -732,10 +651,7 @@ html,
|
|
|
732
651
|
.candidate-heading-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
|
|
733
652
|
|
|
734
653
|
.metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 30px; }
|
|
735
|
-
.metric { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--glass-border); border-radius: var(--radius-panel); padding: 18px; background: var(--material-panel); box-shadow: var(--shadow-control);
|
|
736
|
-
.metric::after { content: ""; position: absolute; inset: auto 18px 0; height: 1px; background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 32%, transparent), transparent); opacity: 0; transition: opacity var(--motion-base) ease; }
|
|
737
|
-
.metric:hover { border-color: var(--border-strong); box-shadow: var(--shadow-panel); transform: translateY(-2px); }
|
|
738
|
-
.metric:hover::after { opacity: 1; }
|
|
654
|
+
.metric { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--glass-border); border-radius: var(--radius-panel); padding: 18px; background: var(--material-panel); box-shadow: var(--shadow-control); }
|
|
739
655
|
.metric-label { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--text-secondary); font-size: 12px; font-weight: 600; }
|
|
740
656
|
.metric-value { display: block; margin-top: 8px; font-size: 27px; line-height: 1.15; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -.03em; }
|
|
741
657
|
.metric-detail { margin-top: 7px; color: var(--text-tertiary); font-size: 11px; }
|
|
@@ -811,12 +727,12 @@ html,
|
|
|
811
727
|
padding: 16px;
|
|
812
728
|
background: var(--material-panel);
|
|
813
729
|
box-shadow: inset 0 1px 0 var(--surface-highlight), var(--shadow-soft);
|
|
814
|
-
transition: background
|
|
730
|
+
transition: background-color var(--motion-fast) ease, border-color var(--motion-fast) ease;
|
|
815
731
|
content-visibility: auto;
|
|
816
732
|
contain-intrinsic-size: auto 218px;
|
|
817
733
|
}
|
|
818
734
|
.base-card::after { position: absolute; top: 0; right: 18px; left: 18px; height: 1px; background: linear-gradient(90deg, transparent, var(--surface-highlight), transparent); pointer-events: none; content: ''; }
|
|
819
|
-
.base-card:hover { border-color: var(--border-strong); background: color-mix(in srgb, var(--surface-raised) 92%, var(--surface-hover));
|
|
735
|
+
.base-card:hover { border-color: var(--border-strong); background: color-mix(in srgb, var(--surface-raised) 92%, var(--surface-hover)); }
|
|
820
736
|
.base-card.is-archived { opacity: .78; }
|
|
821
737
|
.base-card-header { min-width: 0; grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
|
|
822
738
|
.base-card-identity { min-width: 0; display: flex; align-items: center; gap: 11px; }
|
|
@@ -918,11 +834,9 @@ html,
|
|
|
918
834
|
}
|
|
919
835
|
.note-tree-group + .note-tree-group { margin-top: 3px; }
|
|
920
836
|
.note-tree-base, .note-tree-document, .note-tree-new { width: 100%; display: flex; align-items: center; border: 0; background: transparent; color: var(--text-secondary); text-align: left; }
|
|
921
|
-
.note-tree-base { position: relative; min-height: 36px; gap: 7px; border-radius: 9px; padding: 5px 7px; font-weight: 620; transition: background var(--motion-fast) ease, color var(--motion-fast) ease
|
|
922
|
-
.note-tree-base:hover, .note-tree-document:hover, .note-tree-new:hover { background: var(--surface-hover); color: var(--text);
|
|
923
|
-
.note-tree-group[data-drop-target="true"] > .note-tree-base { background: color-mix(in srgb, var(--accent) 13%, var(--surface)); color: var(--text); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 44%, transparent), var(--shadow-control); transform: translateX(2px); }
|
|
837
|
+
.note-tree-base { position: relative; min-height: 36px; gap: 7px; border-radius: 9px; padding: 5px 7px; font-weight: 620; transition: background var(--motion-fast) ease, color var(--motion-fast) ease; }
|
|
838
|
+
.note-tree-base:hover, .note-tree-document:hover, .note-tree-new:hover { background: var(--surface-hover); color: var(--text); }
|
|
924
839
|
.note-tree-group[data-drop-target="true"] > .note-tree-base .tree-count { visibility: hidden; }
|
|
925
|
-
.note-tree-group[data-drop-target="true"] > .note-tree-base::after { content: "移动到这里"; position: absolute; right: 7px; border-radius: 5px; padding: 2px 6px; background: var(--surface-raised); color: var(--accent); font-size: 9px; font-weight: 650; pointer-events: none; }
|
|
926
840
|
.tree-disclosure { width: 7px; height: 7px; flex: none; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-45deg); transition: transform .16s ease; }
|
|
927
841
|
.note-tree-group[data-expanded="true"] .tree-disclosure { transform: rotate(45deg) translate(-1px, -1px); }
|
|
928
842
|
.tree-folder-icon {
|
|
@@ -940,12 +854,9 @@ html,
|
|
|
940
854
|
.tree-base-name { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
941
855
|
.tree-count { min-width: 20px; color: var(--text-tertiary); font-size: 10px; font-variant-numeric: tabular-nums; text-align: right; }
|
|
942
856
|
.note-tree-documents { display: grid; gap: 1px; margin: 1px 0 5px 18px; padding-left: 10px; border-left: 1px solid color-mix(in srgb, var(--border-strong) 55%, transparent); }
|
|
943
|
-
.note-tree-document { position: relative; min-height: 40px; gap: 8px; border-radius: 9px; padding: 5px 8px; transition: background var(--motion-fast) ease, color var(--motion-fast) ease
|
|
944
|
-
.note-tree-document[draggable="true"] { cursor: grab; }
|
|
945
|
-
.note-tree-document[draggable="true"]:active { cursor: grabbing; }
|
|
946
|
-
.note-tree-document[data-dragging="true"] { opacity: .42; transform: translateX(5px) scale(.985); }
|
|
857
|
+
.note-tree-document { position: relative; min-height: 40px; gap: 8px; border-radius: 9px; padding: 5px 8px; transition: background var(--motion-fast) ease, color var(--motion-fast) ease; }
|
|
947
858
|
.note-tree-document[aria-busy="true"] { opacity: .58; pointer-events: none; }
|
|
948
|
-
.note-tree-document[aria-current="page"] { background: var(--material-control); color: var(--text); box-shadow: inset 2px 0 0 color-mix(in srgb, var(--text-secondary) 74%, transparent), var(--shadow-control);
|
|
859
|
+
.note-tree-document[aria-current="page"] { background: var(--material-control); color: var(--text); box-shadow: inset 2px 0 0 color-mix(in srgb, var(--text-secondary) 74%, transparent), var(--shadow-control); }
|
|
949
860
|
.tree-document-icon {
|
|
950
861
|
width: 14px;
|
|
951
862
|
height: 17px;
|
|
@@ -1012,14 +923,17 @@ html,
|
|
|
1012
923
|
.notes-tree-branch[role="group"] { position: relative; margin-left: 17px; padding-left: 5px; }
|
|
1013
924
|
.notes-tree-branch[role="group"]::before { content: ""; position: absolute; top: 0; bottom: 5px; left: 0; width: 1px; background: color-mix(in srgb, var(--border-strong) 48%, transparent); }
|
|
1014
925
|
.notes-tree-node { min-width: 0; max-width: 100%; }
|
|
1015
|
-
.notes-tree-item { --notes-row-actions-width: 118px; position: relative; width: 100%; max-width: 100%; min-width: 0; display: flex; align-items: center; border-radius: 8px; transition: background var(--motion-fast) ease
|
|
926
|
+
.notes-tree-item { --notes-row-actions-width: 118px; position: relative; width: 100%; max-width: 100%; min-width: 0; display: flex; align-items: center; border-radius: 8px; transition: background var(--motion-fast) ease; }
|
|
1016
927
|
.notes-tree-item:hover { background: var(--surface-hover); }
|
|
1017
|
-
.notes-tree-item[data-selected="true"] { background: var(--material-control); box-shadow: inset 2px 0 0 color-mix(in srgb, var(--text-secondary) 70%, transparent), var(--shadow-control);
|
|
1018
|
-
.notes-tree-item[data-drop-target="true"]
|
|
1019
|
-
.
|
|
928
|
+
.notes-tree-item[data-selected="true"] { background: var(--material-control); box-shadow: inset 2px 0 0 color-mix(in srgb, var(--text-secondary) 70%, transparent), var(--shadow-control); }
|
|
929
|
+
.notes-tree-item[data-drop-target="true"],
|
|
930
|
+
.note-tree-group[data-drop-target="true"] > .note-tree-base { background: color-mix(in srgb, var(--accent) 13%, var(--surface)); outline: 1px solid color-mix(in srgb, var(--accent) 38%, transparent); outline-offset: -1px; }
|
|
931
|
+
.notes-tree-item[data-drop-target="true"]::after,
|
|
932
|
+
.note-tree-group[data-drop-target="true"] > .note-tree-base::after { content: "放入此目录"; position: absolute; right: 6px; z-index: 2; border-radius: 4px; padding: 2px 5px; background: color-mix(in srgb, var(--surface-raised) 92%, transparent); color: var(--accent); font-size: 8px; font-weight: 620; pointer-events: none; }
|
|
933
|
+
.note-tree-group[data-drop-target="true"] > .note-tree-base::after { content: "移入此知识库"; }
|
|
1020
934
|
.notes-tree-item[data-drop-target="true"] .notes-row-actions { opacity: 0; pointer-events: none; }
|
|
1021
|
-
.notes-tree-item[data-dragging="true"] { opacity: .45; }
|
|
1022
|
-
.notes-tree-row { width: 100%; min-width: 0; min-height: 34px; display: flex; align-items: center; flex: 1 1 0; gap: 7px; overflow: hidden; border: 0; padding: 3px 4px; background: transparent; color: var(--text-secondary); font: inherit; text-align: left;
|
|
935
|
+
.notes-tree-item[data-dragging="true"], .note-tree-document[data-dragging="true"] { opacity: .45; }
|
|
936
|
+
.notes-tree-row { width: 100%; min-width: 0; min-height: 34px; display: flex; align-items: center; flex: 1 1 0; gap: 7px; overflow: hidden; border: 0; padding: 3px 4px; background: transparent; color: var(--text-secondary); font: inherit; text-align: left; }
|
|
1023
937
|
.notes-tree-row:hover, .notes-tree-row[aria-selected="true"] { color: var(--text); }
|
|
1024
938
|
.notes-tree-chevron, .notes-tree-spacer { position: relative; width: 14px; height: 20px; flex: none; color: var(--text-tertiary); }
|
|
1025
939
|
.notes-tree-chevron::before { content: ""; position: absolute; top: 50%; left: 3px; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-50%) rotate(-45deg); transform-origin: center; transition: transform .16s cubic-bezier(.2, .8, .2, 1), color .14s ease; }
|
|
@@ -1121,9 +1035,9 @@ html,
|
|
|
1121
1035
|
.notes-content.is-document, .notes-content.is-file { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; }
|
|
1122
1036
|
.notes-content.is-document { --notes-document-inline: clamp(24px, 4.5vw, 76px); background: transparent; }
|
|
1123
1037
|
.notes-content.is-document.has-line-numbers { --notes-document-inline: clamp(34px, 3.2vw, 48px); }
|
|
1124
|
-
.notes-editor-frame { position: relative; min-width: 0; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 0; overflow: hidden; }
|
|
1038
|
+
.notes-editor-frame { position: relative; isolation: isolate; min-width: 0; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 0; overflow: hidden; }
|
|
1125
1039
|
.notes-editor-frame[data-outline-open="true"] { grid-template-columns: minmax(0, 1fr) minmax(190px, 236px); }
|
|
1126
|
-
.notes-document-toolbar { position: relative; z-index: 2; min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--separator); padding: 5px 14px 5px 20px; background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
|
|
1040
|
+
.notes-document-toolbar { position: relative; z-index: 2; min-width: 0; min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--separator); padding: 5px 14px 5px 20px; background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
|
|
1127
1041
|
.notes-toolbar-leading { min-width: 0; display: flex; flex: 1 1 auto; align-items: center; overflow: hidden; }
|
|
1128
1042
|
.notes-file-info { width: 100%; min-width: 0; display: grid; grid-template-columns: minmax(150px, 1.1fr) minmax(130px, 1fr) minmax(90px, .7fr) minmax(180px, 1.2fr); align-items: center; gap: 8px 18px; color: var(--text-tertiary); font-size: 10px; font-variant-numeric: tabular-nums; }
|
|
1129
1043
|
.notes-file-info-item { min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: baseline; gap: 6px; }
|
|
@@ -1135,7 +1049,7 @@ html,
|
|
|
1135
1049
|
.notes-save-state[data-dirty="true"] { color: var(--warning); }
|
|
1136
1050
|
.notes-outline-action { display: inline-flex; align-items: center; gap: 6px; }
|
|
1137
1051
|
.notes-toolbar-action-icon { width: 16px; height: 16px; display: block; flex: none; color: currentColor; stroke-width: 2; }
|
|
1138
|
-
.notes-document-more { position: relative; display:
|
|
1052
|
+
.notes-document-more { position: relative; display: block; flex: none; }
|
|
1139
1053
|
.notes-document-more > summary { width: 44px; min-width: 44px; display: inline-grid; place-items: center; list-style: none; padding: 0; color: var(--text); user-select: none; }
|
|
1140
1054
|
.notes-document-more > summary::-webkit-details-marker { display: none; }
|
|
1141
1055
|
.notes-document-more > summary:hover, .notes-document-more[open] > summary { background: var(--surface-hover); color: var(--text); }
|
|
@@ -1146,35 +1060,45 @@ html,
|
|
|
1146
1060
|
right: 0;
|
|
1147
1061
|
z-index: 24;
|
|
1148
1062
|
width: min(230px, calc(100vw - 16px));
|
|
1063
|
+
overflow-y: auto;
|
|
1064
|
+
overscroll-behavior: contain;
|
|
1065
|
+
scrollbar-width: thin;
|
|
1149
1066
|
display: grid;
|
|
1150
1067
|
grid-template-columns: minmax(0, 1fr);
|
|
1151
1068
|
gap: 2px;
|
|
1152
1069
|
border: 1px solid var(--panel-border);
|
|
1153
1070
|
border-radius: 12px;
|
|
1154
1071
|
padding: 6px;
|
|
1155
|
-
background: var(--
|
|
1156
|
-
box-shadow:
|
|
1072
|
+
background: var(--menu-surface-solid);
|
|
1073
|
+
box-shadow: 0 8px 24px rgb(0 0 0 / 14%), 0 1px 4px rgb(0 0 0 / 8%);
|
|
1074
|
+
}
|
|
1075
|
+
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
|
|
1076
|
+
.notes-document-more-menu {
|
|
1077
|
+
background: var(--menu-surface);
|
|
1078
|
+
-webkit-backdrop-filter: var(--knowledge-embedded-filter);
|
|
1079
|
+
backdrop-filter: var(--knowledge-embedded-filter);
|
|
1080
|
+
}
|
|
1157
1081
|
}
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
border-top: 1px solid var(--panel-border);
|
|
1165
|
-
border-left: 1px solid var(--panel-border);
|
|
1166
|
-
background: var(--dialog-surface);
|
|
1167
|
-
content: "";
|
|
1168
|
-
transform: rotate(45deg);
|
|
1082
|
+
@media (prefers-reduced-transparency: reduce), (pointer: coarse), (max-width: 760px) {
|
|
1083
|
+
.notes-document-more-menu {
|
|
1084
|
+
background: var(--menu-surface-solid);
|
|
1085
|
+
-webkit-backdrop-filter: none;
|
|
1086
|
+
backdrop-filter: none;
|
|
1087
|
+
}
|
|
1169
1088
|
}
|
|
1170
1089
|
.notes-document-more:not([open]) > .notes-document-more-menu { display: none; }
|
|
1171
1090
|
.notes-document-more-menu .button { min-width: 0; width: 100%; display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: center; justify-content: stretch; gap: 10px; border-color: transparent; padding: 8px 10px; box-shadow: none; text-align: left; }
|
|
1172
|
-
.notes-document-more-menu .button:hover:not(:disabled) { border-color: transparent; background: var(--surface-hover); box-shadow: none;
|
|
1091
|
+
.notes-document-more-menu .button:hover:not(:disabled) { border-color: transparent; background: var(--surface-hover); box-shadow: none; }
|
|
1092
|
+
.notes-document-more-menu .button:focus-visible { outline-offset: -2px; background: var(--surface-hover); }
|
|
1093
|
+
.notes-document-more-menu .is-danger :is(.notes-document-menu-icon, .notes-document-menu-label) { color: var(--danger); }
|
|
1094
|
+
.notes-document-more-menu .is-danger:hover { background: var(--danger-soft); }
|
|
1173
1095
|
.notes-document-menu-icon { width: 18px; height: 18px; display: block; color: var(--text); stroke-width: 2; }
|
|
1174
1096
|
.notes-document-menu-label { min-width: 0; overflow: hidden; color: var(--text); text-overflow: ellipsis; white-space: nowrap; }
|
|
1175
1097
|
.notes-document-menu-divider { height: 1px; margin: 4px 7px; background: var(--separator); }
|
|
1176
1098
|
.notes-document-scroll { min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain; }
|
|
1177
1099
|
.notes-document-scroll { scroll-padding-block: 72px 48px; }
|
|
1100
|
+
/* Tint only the reading area; retain the surrounding pane's existing frost. */
|
|
1101
|
+
.notes-document-scroll, .note-editor-scroll { background: var(--document-surface); }
|
|
1178
1102
|
.notes-document-title { min-width: 0; margin: 0; padding: clamp(26px, 4vw, 48px) var(--notes-document-inline) 0; outline: 0; color: var(--text); font-family: var(--font-reading); font-size: clamp(25px, 2.5vw, 32px); font-weight: 700; line-height: 1.22; letter-spacing: -.025em; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; caret-color: var(--accent); }
|
|
1179
1103
|
.notes-document-title:focus, .notes-document-title:focus-visible { outline: 0; box-shadow: none; }
|
|
1180
1104
|
.notes-document-scroll > .notes-live-editor, .notes-document-scroll > .notes-plain-editor { width: 100%; min-width: 0; min-height: max(520px, calc(100% - 74px)); margin-top: 0; padding: 16px var(--notes-document-inline) 72px; }
|
|
@@ -1185,7 +1109,6 @@ html,
|
|
|
1185
1109
|
.notes-plain-editor-surface:focus, .notes-plain-editor-surface:focus-visible { border: 0; outline: 0; box-shadow: none; }
|
|
1186
1110
|
.notes-plain-editor-surface > p { position: relative; min-height: 1.78em; margin: 0; counter-increment: note-line; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; }
|
|
1187
1111
|
.notes-plain-editor-surface > p::before { content: counter(note-line); position: absolute; right: calc(100% + 8px); top: 0; width: 22px; color: color-mix(in srgb, var(--text-tertiary) 54%, transparent); font: 11px/2.25 var(--font-mono); font-variant-numeric: tabular-nums; text-align: right; pointer-events: none; user-select: none; }
|
|
1188
|
-
.notes-plain-editor-surface ::selection { background: color-mix(in srgb, var(--accent) 22%, transparent); }
|
|
1189
1112
|
.notes-live-editor-surface { width: 100%; min-width: 0; max-width: 100%; min-height: 520px; border: 0; outline: 0; background: transparent; color: color-mix(in srgb, var(--text) 82%, var(--text-secondary)); font: 16px/1.55 var(--font-reading); letter-spacing: normal; overflow-wrap: anywhere; word-break: break-word; caret-color: var(--accent); }
|
|
1190
1113
|
.notes-live-editor-surface p.is-editor-empty:first-child::before { height: 0; float: left; color: var(--text-tertiary); content: attr(data-placeholder); pointer-events: none; }
|
|
1191
1114
|
.notes-live-editor-surface:focus, .notes-live-editor-surface:focus-visible { border: 0; outline: 0; box-shadow: none; }
|
|
@@ -1231,7 +1154,7 @@ html,
|
|
|
1231
1154
|
.notes-find-input, .notes-selection-link-input { box-sizing: border-box; min-width: 0; height: 34px; border: 1px solid var(--panel-border); border-radius: 7px; padding: 6px 9px; background: var(--material-control); color: var(--text); font: inherit; font-size: 12px; box-shadow: var(--shadow-control); }
|
|
1232
1155
|
.notes-find-input:focus, .notes-selection-link-input:focus { border-color: var(--border-strong); outline: 3px solid color-mix(in srgb, var(--accent) 20%, transparent); outline-offset: 1px; }
|
|
1233
1156
|
.notes-find-status { min-width: 48px; color: var(--text-tertiary); font-size: 10px; font-variant-numeric: tabular-nums; text-align: center; }
|
|
1234
|
-
.notes-find-button, .notes-selection-control { min-height: 34px; border: 0; border-radius: 7px; padding: 5px 8px; background: transparent; color: var(--text-secondary); font: inherit; font-size: 11px; font-weight: 590; white-space: nowrap; transition: background var(--motion-fast) ease, color var(--motion-fast) ease
|
|
1157
|
+
.notes-find-button, .notes-selection-control { min-height: 34px; border: 0; border-radius: 7px; padding: 5px 8px; background: transparent; color: var(--text-secondary); font: inherit; font-size: 11px; font-weight: 590; white-space: nowrap; transition: background var(--motion-fast) ease, color var(--motion-fast) ease; }
|
|
1235
1158
|
.notes-find-button:hover:not(:disabled), .notes-selection-control:hover { background: var(--surface-hover); color: var(--text); }
|
|
1236
1159
|
.notes-find-button[aria-pressed="true"], .notes-selection-control[aria-pressed="true"], .notes-selection-control[aria-checked="true"] { background: var(--material-control); color: var(--accent); box-shadow: var(--shadow-control); }
|
|
1237
1160
|
.notes-find-button:disabled { opacity: .42; }
|
|
@@ -1272,7 +1195,7 @@ html,
|
|
|
1272
1195
|
.note-history-timeline-heading strong { font-size: 12px; font-weight: 650; }
|
|
1273
1196
|
.note-history-timeline-heading span { color: var(--text-tertiary); font-size: 10px; }
|
|
1274
1197
|
.note-history-version-list { min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 6px; }
|
|
1275
|
-
.note-history-version { width: 100%; min-height: 58px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-content: center; gap: 2px 7px; border: 0; border-radius: 8px; padding: 8px 9px; background: transparent; color: var(--text); text-align: left; transition: background var(--motion-fast) ease
|
|
1198
|
+
.note-history-version { width: 100%; min-height: 58px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-content: center; gap: 2px 7px; border: 0; border-radius: 8px; padding: 8px 9px; background: transparent; color: var(--text); text-align: left; transition: background var(--motion-fast) ease; }
|
|
1276
1199
|
.note-history-version:hover { background: var(--surface-hover); }
|
|
1277
1200
|
.note-history-version[aria-current="true"] { background: var(--material-control); box-shadow: inset 2px 0 0 var(--accent), var(--shadow-control); }
|
|
1278
1201
|
.note-history-version strong { min-width: 0; overflow: hidden; font-size: 11px; font-weight: 630; text-overflow: ellipsis; white-space: nowrap; }
|
|
@@ -1346,7 +1269,7 @@ html,
|
|
|
1346
1269
|
.notes-transfer[data-state="complete"] .notes-transfer-mark { background: var(--success); box-shadow: 0 0 0 3px color-mix(in srgb, var(--success) 12%, transparent); }
|
|
1347
1270
|
.notes-transfer[data-state="error"] .notes-transfer-mark { background: var(--danger); box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 12%, transparent); }
|
|
1348
1271
|
.notes-transfer[data-state="error"] .notes-transfer-detail { color: var(--danger); white-space: normal; }
|
|
1349
|
-
@keyframes notes-transfer-enter { from { opacity: 0;
|
|
1272
|
+
@keyframes notes-transfer-enter { from { opacity: 0; } to { opacity: 1; } }
|
|
1350
1273
|
@keyframes notes-transfer-scan { from { transform: translateX(-115%); } to { transform: translateX(295%); } }
|
|
1351
1274
|
.note-picker { display: grid; gap: 12px; }
|
|
1352
1275
|
.note-picker-results { max-height: min(58vh, 540px); overflow: auto; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); }
|
|
@@ -1399,7 +1322,7 @@ html,
|
|
|
1399
1322
|
.note-toolbar-meta { display: inline-flex; gap: 10px; margin-left: 8px; color: var(--text-tertiary); font-size: 10px; }
|
|
1400
1323
|
.note-toolbar-meta > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
|
|
1401
1324
|
.note-toolbar-meta > span + span::before { content: "·"; margin-right: 10px; color: var(--border-strong); }
|
|
1402
|
-
.note-editor-actions { min-width: 0; display: flex; flex
|
|
1325
|
+
.note-editor-actions { min-width: 0; display: flex; flex: none; align-items: center; justify-content: flex-end; gap: 6px; }
|
|
1403
1326
|
.editor-save-status { margin-right: 4px; color: var(--text-tertiary); font-size: 10px; white-space: nowrap; }
|
|
1404
1327
|
.note-editor-scroll {
|
|
1405
1328
|
min-height: 0;
|
|
@@ -1495,6 +1418,8 @@ html,
|
|
|
1495
1418
|
.document-reference-empty { color: var(--text-tertiary); font-size: 12px; }
|
|
1496
1419
|
.document-reference-add { min-height: 27px; white-space: nowrap; }
|
|
1497
1420
|
.note-inspector label { display: flex; align-items: center; gap: 7px; color: var(--text-tertiary); font-size: 10px; }
|
|
1421
|
+
.note-inspector label > span:not(.knowledge-select) { flex: none; white-space: nowrap; }
|
|
1422
|
+
.note-inspector .knowledge-select { width: auto; flex: none; }
|
|
1498
1423
|
.note-inspector input, .note-meta-select { height: 30px; border: 1px solid transparent; border-radius: 6px; padding: 4px 7px; background-color: transparent; color: var(--text-secondary); outline: none; }
|
|
1499
1424
|
.note-meta-select {
|
|
1500
1425
|
-webkit-appearance: none;
|
|
@@ -1511,30 +1436,19 @@ html,
|
|
|
1511
1436
|
}
|
|
1512
1437
|
.note-inspector input:focus, .note-meta-select:focus { border-color: var(--border-strong); background-color: var(--surface); }
|
|
1513
1438
|
.note-tags-field { min-width: 0; flex: 1; }
|
|
1514
|
-
.note-tags-field input { width: min(100%, 360px); }
|
|
1439
|
+
.note-tags-field input { width: min(100%, 360px); min-width: 0; }
|
|
1515
1440
|
.note-format-hint { margin-left: auto; color: var(--text-tertiary); font-size: 10px; white-space: nowrap; }
|
|
1516
1441
|
|
|
1517
1442
|
@container note-editor (max-width: 920px) {
|
|
1518
|
-
.note-
|
|
1519
|
-
|
|
1520
|
-
display: grid;
|
|
1521
|
-
grid-template-columns: minmax(0, 1fr);
|
|
1522
|
-
align-items: stretch;
|
|
1523
|
-
gap: 7px;
|
|
1524
|
-
padding: 9px 12px;
|
|
1525
|
-
}
|
|
1526
|
-
|
|
1527
|
-
.note-editor-actions {
|
|
1528
|
-
width: 100%;
|
|
1529
|
-
justify-content: flex-start;
|
|
1530
|
-
}
|
|
1531
|
-
|
|
1532
|
-
.editor-save-status { margin-left: auto; }
|
|
1443
|
+
.note-toolbar-meta { display: none; }
|
|
1444
|
+
.note-editor-toolbar { gap: 8px; padding-inline: 10px; }
|
|
1533
1445
|
}
|
|
1534
1446
|
|
|
1535
1447
|
@container note-editor (max-width: 480px) {
|
|
1536
|
-
.note-breadcrumb {
|
|
1537
|
-
.note-
|
|
1448
|
+
.note-breadcrumb { flex: 1; }
|
|
1449
|
+
.note-breadcrumb > span { display: none; }
|
|
1450
|
+
.note-editor-actions { gap: 4px; }
|
|
1451
|
+
.note-editor-actions > .badge { display: none; }
|
|
1538
1452
|
}
|
|
1539
1453
|
|
|
1540
1454
|
.list { display: grid; gap: 8px; }
|
|
@@ -1563,7 +1477,7 @@ html,
|
|
|
1563
1477
|
|
|
1564
1478
|
.card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
|
|
1565
1479
|
.knowledge-card { min-width: 0; display: flex; flex-direction: column; border: 1px solid var(--panel-border); border-radius: var(--radius); padding: 17px; background: var(--material-panel); box-shadow: var(--shadow-soft); }
|
|
1566
|
-
.knowledge-card:hover { border-color: var(--border-strong);
|
|
1480
|
+
.knowledge-card:hover { border-color: var(--border-strong); }
|
|
1567
1481
|
.knowledge-card h3 { margin: 11px 0 7px; font-size: 15px; line-height: 1.4; }
|
|
1568
1482
|
.knowledge-card p { display: -webkit-box; overflow: hidden; margin: 0; color: var(--text-secondary); line-height: 1.65; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
|
|
1569
1483
|
.card-top, .card-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
|
|
@@ -1574,8 +1488,8 @@ html,
|
|
|
1574
1488
|
.tag.is-empty { color: var(--text-tertiary); font-style: italic; }
|
|
1575
1489
|
|
|
1576
1490
|
.tabs { display: inline-flex; gap: 3px; border: 1px solid var(--separator); border-radius: 10px; padding: 3px; background: var(--material-control); box-shadow: inset 0 1px 0 var(--surface-highlight); }
|
|
1577
|
-
.tab { min-height: 31px; border: 0; border-radius: var(--radius-small); padding: 5px 12px; background: transparent; color: var(--text-secondary); font-size: 12px; font-weight: 600; transition: color var(--motion-fast) ease, background
|
|
1578
|
-
.tab:hover { color: var(--text);
|
|
1491
|
+
.tab { min-height: 31px; border: 0; border-radius: var(--radius-small); padding: 5px 12px; background: transparent; color: var(--text-secondary); font-size: 12px; font-weight: 600; transition: color var(--motion-fast) ease, background-color var(--motion-fast) ease; }
|
|
1492
|
+
.tab:hover { color: var(--text); background: var(--surface-hover); }
|
|
1579
1493
|
.tab[aria-selected="true"] { background: var(--surface-raised); color: var(--text); box-shadow: var(--shadow-soft); }
|
|
1580
1494
|
|
|
1581
1495
|
.candidate-list { display: grid; gap: 13px; }
|
|
@@ -1652,7 +1566,6 @@ html,
|
|
|
1652
1566
|
.skeleton-phase { position: relative; display: inline-flex; align-items: center; gap: 8px; padding-top: 3px; color: var(--text-tertiary); font-size: 11px; white-space: nowrap; }
|
|
1653
1567
|
.skeleton-phase::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 10%, transparent); animation: loading-pulse 1.4s ease-in-out infinite; }
|
|
1654
1568
|
.skeleton-line, .skeleton-block { position: relative; overflow: hidden; background: var(--surface-soft); }
|
|
1655
|
-
.skeleton-line::after, .skeleton-block::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--surface-raised) 72%, transparent), transparent); transform: translateX(-100%); animation: skeleton-shimmer 1.4s ease-in-out infinite; }
|
|
1656
1569
|
.skeleton-title { width: min(280px, 48%); height: 22px; border-radius: 7px; }
|
|
1657
1570
|
.skeleton-copy { width: min(460px, 72%); height: 12px; margin-top: 10px; border-radius: 5px; }
|
|
1658
1571
|
.skeleton-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 28px; }
|
|
@@ -1675,8 +1588,7 @@ html,
|
|
|
1675
1588
|
.skeleton-list-row .skeleton-line { width: 66%; height: 12px; border-radius: 5px; }
|
|
1676
1589
|
.notes-selection-loading { overflow: hidden; }
|
|
1677
1590
|
.notes-selection-skeleton { display: grid; align-content: start; gap: 15px; padding: clamp(34px, 5vw, 72px); }
|
|
1678
|
-
@keyframes
|
|
1679
|
-
@keyframes loading-pulse { 0%, 100% { opacity: .5; transform: scale(.82); } 50% { opacity: 1; transform: scale(1); } }
|
|
1591
|
+
@keyframes loading-pulse { 0%, 100% { opacity: .5; } 50% { opacity: 1; } }
|
|
1680
1592
|
|
|
1681
1593
|
.error-state { border: 1px solid color-mix(in srgb, var(--danger) 30%, var(--border)); border-radius: var(--radius); padding: 18px; background: var(--danger-soft); color: var(--danger); }
|
|
1682
1594
|
.error-state p { margin: 0 0 12px; }
|
|
@@ -1697,7 +1609,7 @@ html,
|
|
|
1697
1609
|
.api-access-actions { align-items: center; border-top: 1px solid var(--border); padding-top: 13px; }
|
|
1698
1610
|
.api-access-actions small { color: var(--text-tertiary); }
|
|
1699
1611
|
|
|
1700
|
-
.dialog-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: transparent;
|
|
1612
|
+
.dialog-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: transparent; }
|
|
1701
1613
|
.dialog {
|
|
1702
1614
|
width: min(560px, 100%);
|
|
1703
1615
|
max-height: min(680px, calc(100dvh - 64px));
|
|
@@ -1708,10 +1620,9 @@ html,
|
|
|
1708
1620
|
border-radius: 16px;
|
|
1709
1621
|
background: var(--dialog-surface);
|
|
1710
1622
|
box-shadow: 0 22px 58px color-mix(in srgb, #000 18%, transparent), 0 4px 14px color-mix(in srgb, #000 8%, transparent), inset 0 1px 0 var(--surface-highlight);
|
|
1711
|
-
animation: dialog-enter
|
|
1623
|
+
animation: dialog-enter var(--motion-fast) ease-out both;
|
|
1712
1624
|
}
|
|
1713
|
-
@keyframes dialog-
|
|
1714
|
-
@keyframes dialog-enter { from { opacity: 0; transform: translateY(8px) scale(.985); } }
|
|
1625
|
+
@keyframes dialog-enter { from { opacity: 0; } }
|
|
1715
1626
|
.dialog.narrow { width: min(100%, 460px); }
|
|
1716
1627
|
.dialog-backdrop.sheet-backdrop {
|
|
1717
1628
|
place-items: stretch end;
|
|
@@ -1725,9 +1636,8 @@ html,
|
|
|
1725
1636
|
border-width: 0 0 0 1px;
|
|
1726
1637
|
border-radius: 0;
|
|
1727
1638
|
box-shadow: -22px 0 64px rgb(0 0 0 / 18%);
|
|
1728
|
-
animation:
|
|
1639
|
+
animation: dialog-enter var(--motion-fast) ease-out both;
|
|
1729
1640
|
}
|
|
1730
|
-
@keyframes sheet-enter { from { opacity: .75; transform: translateX(18px); } }
|
|
1731
1641
|
.dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--separator); padding: 22px 22px 18px; background: var(--surface-raised); }
|
|
1732
1642
|
.dialog-header h2 { margin: 0; font-size: var(--font-title); font-weight: 650; letter-spacing: -.02em; }
|
|
1733
1643
|
.dialog-header p { margin: 4px 0 0; color: var(--text-tertiary); font-size: var(--font-caption); }
|
|
@@ -1775,7 +1685,7 @@ html,
|
|
|
1775
1685
|
.toast > span { min-width: 0; flex: 1; overflow-wrap: anywhere; }
|
|
1776
1686
|
.toast-close { flex: none; min-height: 28px; }
|
|
1777
1687
|
.toast.error { border-color: color-mix(in srgb, var(--danger) 45%, var(--border)); color: var(--danger); }
|
|
1778
|
-
@keyframes toast-in { from { opacity: 0;
|
|
1688
|
+
@keyframes toast-in { from { opacity: 0; } }
|
|
1779
1689
|
|
|
1780
1690
|
@media (prefers-reduced-transparency: reduce) {
|
|
1781
1691
|
.sidebar, .main, .topbar, .note-tree-panel, .notes-browser, .notes-content-header, .notes-document-toolbar, .notes-document-statusbar, .note-editor-toolbar, .dialog-backdrop {
|
|
@@ -1801,7 +1711,7 @@ html,
|
|
|
1801
1711
|
.app-shell[data-sidebar-hidden="true"] { grid-template-columns: 0 0 minmax(0, 1fr); }
|
|
1802
1712
|
.app-shell[data-sidebar-hidden="true"] > .sidebar {
|
|
1803
1713
|
opacity: 0;
|
|
1804
|
-
transform: translateX(calc(-100% - var(--chrome-inset)))
|
|
1714
|
+
transform: translateX(calc(-100% - var(--chrome-inset)));
|
|
1805
1715
|
pointer-events: none;
|
|
1806
1716
|
}
|
|
1807
1717
|
.app-shell[data-sidebar-hidden="true"] > .app-sidebar-resizer {
|
|
@@ -1943,7 +1853,7 @@ html,
|
|
|
1943
1853
|
.notes-content { height: 100%; min-height: 0; }
|
|
1944
1854
|
.notes-content.is-folder { overflow-y: auto; overscroll-behavior: contain; }
|
|
1945
1855
|
.notes-editor-frame, .notes-editor-frame[data-outline-open="true"] { grid-template-columns: minmax(0, 1fr); }
|
|
1946
|
-
.notes-editor-outline { position: absolute; inset: 0 0 0 auto; z-index: 12; width: min(86vw, 300px); border-left-color: var(--border-strong); box-shadow: -16px 0 34px color-mix(in srgb, var(--text) 13%, transparent); transform: translateX(103%); transition: opacity var(--motion-base) ease
|
|
1856
|
+
.notes-editor-outline { position: absolute; inset: 0 0 0 auto; z-index: 12; width: min(86vw, 300px); border-left-color: var(--border-strong); background: var(--dialog-surface); backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: -16px 0 34px color-mix(in srgb, var(--text) 13%, transparent); transform: translateX(103%); transition: opacity var(--motion-base) ease; }
|
|
1947
1857
|
.notes-editor-frame[data-outline-open="true"] .notes-editor-outline { transform: translateX(0); }
|
|
1948
1858
|
.notes-editor-outline-header { padding-right: max(9px, env(safe-area-inset-right)); }
|
|
1949
1859
|
.notes-editor-outline-close, .notes-editor-outline-link { min-height: 44px; touch-action: manipulation; }
|
|
@@ -1951,12 +1861,10 @@ html,
|
|
|
1951
1861
|
.notes-document-toolbar { align-items: center; flex-direction: row; gap: 6px; overflow: visible; padding: 4px max(8px, env(safe-area-inset-right)) 4px max(8px, env(safe-area-inset-left)); }
|
|
1952
1862
|
.notes-toolbar-leading { width: auto; min-height: 44px; flex: 1 1 auto; }
|
|
1953
1863
|
.notes-document-actions { width: auto; display: flex; gap: 4px; }
|
|
1954
|
-
.notes-document-actions > [data-note-mobile-overflow] { display: none; }
|
|
1955
1864
|
.notes-save-state { display: inline-flex; min-height: 44px; align-items: center; padding-inline: 4px; color: var(--text-secondary); font-size: 11px; }
|
|
1956
1865
|
.notes-save-state[data-dirty="true"] { color: var(--warning); }
|
|
1957
1866
|
.notes-outline-action { min-width: 44px; padding-inline: 10px; }
|
|
1958
|
-
.notes-document-actions > .button, .notes-document-more > summary { min-height: 44px; justify-content: center; touch-action: manipulation; }
|
|
1959
|
-
.notes-document-more { display: block; }
|
|
1867
|
+
.notes-document-actions > .button, .notes-document-more > summary.button { min-height: 44px; justify-content: center; touch-action: manipulation; }
|
|
1960
1868
|
.notes-document-more-menu .button { min-height: 44px; touch-action: manipulation; }
|
|
1961
1869
|
.notes-content.is-document { --notes-document-inline: 16px; }
|
|
1962
1870
|
.notes-content.is-document.has-line-numbers { --notes-document-inline: 30px; }
|
|
@@ -2118,7 +2026,7 @@ html,
|
|
|
2118
2026
|
}
|
|
2119
2027
|
|
|
2120
2028
|
@media (prefers-reduced-motion: reduce) {
|
|
2121
|
-
*, *::before, *::after { scroll-behavior: auto !important; animation
|
|
2029
|
+
*, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
|
|
2122
2030
|
}
|
|
2123
2031
|
|
|
2124
2032
|
@media (forced-colors: active) {
|