@bendyline/docblocks-react 1.1.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -5
- package/dist/ExportDialog-7LDIXJZ3.js +10 -0
- package/dist/ExportDialog-7LDIXJZ3.js.map +1 -0
- package/dist/ExportToolbarControls-GHAOJMH6.js +508 -0
- package/dist/ExportToolbarControls-GHAOJMH6.js.map +1 -0
- package/dist/GitToolbarControl-GNMRVKWQ.js +136 -0
- package/dist/GitToolbarControl-GNMRVKWQ.js.map +1 -0
- package/dist/GitUI-VHOBQY43.js +1133 -0
- package/dist/GitUI-VHOBQY43.js.map +1 -0
- package/dist/LazyEditorShell-EF2BWRXU.js +6 -0
- package/dist/LazyEditorShell-EF2BWRXU.js.map +1 -0
- package/dist/ShareDialog-63ENBEDZ.js +213 -0
- package/dist/ShareDialog-63ENBEDZ.js.map +1 -0
- package/dist/chunk-4XXSWN3T.js +13 -0
- package/dist/chunk-4XXSWN3T.js.map +1 -0
- package/dist/chunk-57ZJJOC5.js +89 -0
- package/dist/chunk-57ZJJOC5.js.map +1 -0
- package/dist/chunk-5A4KEWKT.js +97 -0
- package/dist/chunk-5A4KEWKT.js.map +1 -0
- package/dist/chunk-DD4VFJQI.js +51 -0
- package/dist/chunk-DD4VFJQI.js.map +1 -0
- package/dist/chunk-FEWQUQML.js +256 -0
- package/dist/chunk-FEWQUQML.js.map +1 -0
- package/dist/chunk-FMGTHSTX.js +110 -0
- package/dist/chunk-FMGTHSTX.js.map +1 -0
- package/dist/chunk-UNYZQXWR.js +324 -0
- package/dist/chunk-UNYZQXWR.js.map +1 -0
- package/dist/chunk-VHDP4IPL.js +70 -0
- package/dist/chunk-VHDP4IPL.js.map +1 -0
- package/dist/chunk-ZI56BNB7.js +270 -0
- package/dist/chunk-ZI56BNB7.js.map +1 -0
- package/dist/editor.d.ts +11 -0
- package/dist/editor.js +9 -0
- package/dist/editor.js.map +1 -0
- package/dist/export/index.d.ts +93 -0
- package/dist/export/index.js +27 -0
- package/dist/export/index.js.map +1 -0
- package/dist/index.d.ts +346 -18
- package/dist/index.js +6169 -18
- package/dist/index.js.map +1 -1
- package/dist/run-export-ICTZITXC.js +10 -0
- package/dist/run-export-ICTZITXC.js.map +1 -0
- package/dist/settings/index.d.ts +36 -0
- package/dist/settings/index.js +14 -0
- package/dist/settings/index.js.map +1 -0
- package/package.json +33 -13
- package/src/styles/docblocks.css +2738 -132
- package/dist/AppMenu/AppMenu.d.ts +0 -26
- package/dist/AppMenu/AppMenu.d.ts.map +0 -1
- package/dist/AppMenu/AppMenu.js +0 -28
- package/dist/AppMenu/AppMenu.js.map +0 -1
- package/dist/AppMenu/index.d.ts +0 -3
- package/dist/AppMenu/index.d.ts.map +0 -1
- package/dist/AppMenu/index.js +0 -2
- package/dist/AppMenu/index.js.map +0 -1
- package/dist/DocBlocksShell/DocBlocksShell.d.ts +0 -36
- package/dist/DocBlocksShell/DocBlocksShell.d.ts.map +0 -1
- package/dist/DocBlocksShell/DocBlocksShell.js +0 -1351
- package/dist/DocBlocksShell/DocBlocksShell.js.map +0 -1
- package/dist/DocBlocksShell/index.d.ts +0 -3
- package/dist/DocBlocksShell/index.d.ts.map +0 -1
- package/dist/DocBlocksShell/index.js +0 -2
- package/dist/DocBlocksShell/index.js.map +0 -1
- package/dist/Export/ExportDialog.d.ts +0 -16
- package/dist/Export/ExportDialog.d.ts.map +0 -1
- package/dist/Export/ExportDialog.js +0 -158
- package/dist/Export/ExportDialog.js.map +0 -1
- package/dist/Export/ExportToolbarControls.d.ts +0 -17
- package/dist/Export/ExportToolbarControls.d.ts.map +0 -1
- package/dist/Export/ExportToolbarControls.js +0 -200
- package/dist/Export/ExportToolbarControls.js.map +0 -1
- package/dist/Export/export-options.d.ts +0 -53
- package/dist/Export/export-options.d.ts.map +0 -1
- package/dist/Export/export-options.js +0 -49
- package/dist/Export/export-options.js.map +0 -1
- package/dist/Export/index.d.ts +0 -6
- package/dist/Export/index.d.ts.map +0 -1
- package/dist/Export/index.js +0 -3
- package/dist/Export/index.js.map +0 -1
- package/dist/Export/run-export.d.ts +0 -8
- package/dist/Export/run-export.d.ts.map +0 -1
- package/dist/Export/run-export.js +0 -296
- package/dist/Export/run-export.js.map +0 -1
- package/dist/Export/transform-summaries.d.ts +0 -7
- package/dist/Export/transform-summaries.d.ts.map +0 -1
- package/dist/Export/transform-summaries.js +0 -6
- package/dist/Export/transform-summaries.js.map +0 -1
- package/dist/FileExplorer/FileExplorer.d.ts +0 -21
- package/dist/FileExplorer/FileExplorer.d.ts.map +0 -1
- package/dist/FileExplorer/FileExplorer.js +0 -140
- package/dist/FileExplorer/FileExplorer.js.map +0 -1
- package/dist/FileExplorer/FileTreeNode.d.ts +0 -18
- package/dist/FileExplorer/FileTreeNode.d.ts.map +0 -1
- package/dist/FileExplorer/FileTreeNode.js +0 -112
- package/dist/FileExplorer/FileTreeNode.js.map +0 -1
- package/dist/FileExplorer/index.d.ts +0 -6
- package/dist/FileExplorer/index.d.ts.map +0 -1
- package/dist/FileExplorer/index.js +0 -4
- package/dist/FileExplorer/index.js.map +0 -1
- package/dist/FileExplorer/useFileTree.d.ts +0 -35
- package/dist/FileExplorer/useFileTree.d.ts.map +0 -1
- package/dist/FileExplorer/useFileTree.js +0 -124
- package/dist/FileExplorer/useFileTree.js.map +0 -1
- package/dist/WorkspacePicker/WorkspacePicker.d.ts +0 -17
- package/dist/WorkspacePicker/WorkspacePicker.d.ts.map +0 -1
- package/dist/WorkspacePicker/WorkspacePicker.js +0 -63
- package/dist/WorkspacePicker/WorkspacePicker.js.map +0 -1
- package/dist/WorkspacePicker/WorkspaceSettingsButton.d.ts +0 -11
- package/dist/WorkspacePicker/WorkspaceSettingsButton.d.ts.map +0 -1
- package/dist/WorkspacePicker/WorkspaceSettingsButton.js +0 -27
- package/dist/WorkspacePicker/WorkspaceSettingsButton.js.map +0 -1
- package/dist/WorkspacePicker/WorkspaceSettingsDialog.d.ts +0 -20
- package/dist/WorkspacePicker/WorkspaceSettingsDialog.d.ts.map +0 -1
- package/dist/WorkspacePicker/WorkspaceSettingsDialog.js +0 -36
- package/dist/WorkspacePicker/WorkspaceSettingsDialog.js.map +0 -1
- package/dist/WorkspacePicker/index.d.ts +0 -3
- package/dist/WorkspacePicker/index.d.ts.map +0 -1
- package/dist/WorkspacePicker/index.js +0 -2
- package/dist/WorkspacePicker/index.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -2
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js +0 -2
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/useAutoSave.d.ts +0 -15
- package/dist/hooks/useAutoSave.d.ts.map +0 -1
- package/dist/hooks/useAutoSave.js +0 -83
- package/dist/hooks/useAutoSave.js.map +0 -1
- package/dist/icons.d.ts +0 -7
- package/dist/icons.d.ts.map +0 -1
- package/dist/icons.js +0 -27
- package/dist/icons.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/monaco-slim.d.ts +0 -19
- package/dist/monaco-slim.d.ts.map +0 -1
- package/dist/monaco-slim.js +0 -19
- package/dist/monaco-slim.js.map +0 -1
- package/dist/preferences/versioning.d.ts +0 -27
- package/dist/preferences/versioning.d.ts.map +0 -1
- package/dist/preferences/versioning.js +0 -62
- package/dist/preferences/versioning.js.map +0 -1
- package/src/AppMenu/AppMenu.tsx +0 -264
- package/src/AppMenu/index.ts +0 -2
- package/src/DocBlocksShell/DocBlocksShell.tsx +0 -1778
- package/src/DocBlocksShell/index.ts +0 -2
- package/src/Export/ExportDialog.tsx +0 -383
- package/src/Export/ExportToolbarControls.tsx +0 -313
- package/src/Export/export-options.ts +0 -99
- package/src/Export/index.ts +0 -5
- package/src/Export/run-export.ts +0 -349
- package/src/Export/transform-summaries.ts +0 -14
- package/src/FileExplorer/FileExplorer.tsx +0 -282
- package/src/FileExplorer/FileTreeNode.tsx +0 -214
- package/src/FileExplorer/index.ts +0 -5
- package/src/FileExplorer/useFileTree.ts +0 -178
- package/src/WorkspacePicker/WorkspacePicker.tsx +0 -137
- package/src/WorkspacePicker/WorkspaceSettingsButton.tsx +0 -88
- package/src/WorkspacePicker/WorkspaceSettingsDialog.tsx +0 -121
- package/src/WorkspacePicker/index.ts +0 -2
- package/src/fonts/fonts.css +0 -362
- package/src/fonts/licenses/LICENSE-cormorant-garamond.txt +0 -93
- package/src/fonts/licenses/LICENSE-crimson-text.txt +0 -93
- package/src/fonts/licenses/LICENSE-dm-sans.txt +0 -93
- package/src/fonts/licenses/LICENSE-dm-serif-display.txt +0 -93
- package/src/fonts/licenses/LICENSE-hanken-grotesk.txt +0 -94
- package/src/fonts/licenses/LICENSE-ibm-plex-sans.txt +0 -93
- package/src/fonts/licenses/LICENSE-inter.txt +0 -93
- package/src/fonts/licenses/LICENSE-jetbrains-mono.txt +0 -93
- package/src/fonts/licenses/LICENSE-lora.txt +0 -93
- package/src/fonts/licenses/LICENSE-merriweather.txt +0 -93
- package/src/fonts/licenses/LICENSE-oswald.txt +0 -93
- package/src/fonts/licenses/LICENSE-playfair-display.txt +0 -93
- package/src/fonts/licenses/LICENSE-pt-serif.txt +0 -93
- package/src/fonts/licenses/LICENSE-roboto.txt +0 -93
- package/src/fonts/licenses/LICENSE-source-serif-4.txt +0 -93
- package/src/fonts/woff2/cormorant-garamond-400.woff2 +0 -0
- package/src/fonts/woff2/cormorant-garamond-700.woff2 +0 -0
- package/src/fonts/woff2/crimson-text-400.woff2 +0 -0
- package/src/fonts/woff2/crimson-text-400i.woff2 +0 -0
- package/src/fonts/woff2/crimson-text-700.woff2 +0 -0
- package/src/fonts/woff2/dm-sans-400.woff2 +0 -0
- package/src/fonts/woff2/dm-sans-400i.woff2 +0 -0
- package/src/fonts/woff2/dm-sans-500.woff2 +0 -0
- package/src/fonts/woff2/dm-sans-700.woff2 +0 -0
- package/src/fonts/woff2/dm-serif-display-400.woff2 +0 -0
- package/src/fonts/woff2/hanken-grotesk-400.woff2 +0 -0
- package/src/fonts/woff2/hanken-grotesk-400i.woff2 +0 -0
- package/src/fonts/woff2/hanken-grotesk-500.woff2 +0 -0
- package/src/fonts/woff2/hanken-grotesk-600.woff2 +0 -0
- package/src/fonts/woff2/hanken-grotesk-700.woff2 +0 -0
- package/src/fonts/woff2/ibm-plex-sans-400.woff2 +0 -0
- package/src/fonts/woff2/ibm-plex-sans-400i.woff2 +0 -0
- package/src/fonts/woff2/ibm-plex-sans-500.woff2 +0 -0
- package/src/fonts/woff2/ibm-plex-sans-600.woff2 +0 -0
- package/src/fonts/woff2/ibm-plex-sans-700.woff2 +0 -0
- package/src/fonts/woff2/inter-400.woff2 +0 -0
- package/src/fonts/woff2/inter-400i.woff2 +0 -0
- package/src/fonts/woff2/inter-500.woff2 +0 -0
- package/src/fonts/woff2/inter-600.woff2 +0 -0
- package/src/fonts/woff2/inter-700.woff2 +0 -0
- package/src/fonts/woff2/jetbrains-mono-400.woff2 +0 -0
- package/src/fonts/woff2/jetbrains-mono-400i.woff2 +0 -0
- package/src/fonts/woff2/jetbrains-mono-700.woff2 +0 -0
- package/src/fonts/woff2/lora-400.woff2 +0 -0
- package/src/fonts/woff2/lora-400i.woff2 +0 -0
- package/src/fonts/woff2/lora-700.woff2 +0 -0
- package/src/fonts/woff2/merriweather-400.woff2 +0 -0
- package/src/fonts/woff2/merriweather-700.woff2 +0 -0
- package/src/fonts/woff2/oswald-400.woff2 +0 -0
- package/src/fonts/woff2/oswald-700.woff2 +0 -0
- package/src/fonts/woff2/playfair-display-400.woff2 +0 -0
- package/src/fonts/woff2/playfair-display-700.woff2 +0 -0
- package/src/fonts/woff2/pt-serif-400.woff2 +0 -0
- package/src/fonts/woff2/pt-serif-700.woff2 +0 -0
- package/src/fonts/woff2/roboto-400.woff2 +0 -0
- package/src/fonts/woff2/roboto-400i.woff2 +0 -0
- package/src/fonts/woff2/roboto-700.woff2 +0 -0
- package/src/fonts/woff2/source-serif-4-400.woff2 +0 -0
- package/src/fonts/woff2/source-serif-4-400i.woff2 +0 -0
- package/src/fonts/woff2/source-serif-4-700.woff2 +0 -0
- package/src/hooks/index.ts +0 -1
- package/src/hooks/useAutoSave.ts +0 -116
- package/src/icons.tsx +0 -70
- package/src/index.ts +0 -31
- package/src/monaco-slim.ts +0 -20
- package/src/preferences/versioning.ts +0 -69
package/src/styles/docblocks.css
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
the chrome around it (sidebar, gutters, panes) reads as cream
|
|
8
8
|
canvas, and the accent picks up a saturated dark brown for CTAs.
|
|
9
9
|
Dark mode inverts the metaphor into espresso wood with light tan
|
|
10
|
-
highlights. Derived shades (`--db-accent-soft-*`,
|
|
11
|
-
`--db-accent-deep`) are defined alongside so every place that needs
|
|
10
|
+
highlights. Derived shades (`--db-accent-soft-*`,
|
|
11
|
+
`--db-accent-tint-strong`, `--db-accent-deep`) are defined alongside so every place that needs
|
|
12
12
|
a tinted background or a readable-on-tint text color pulls from the
|
|
13
13
|
same source of truth. */
|
|
14
14
|
.db-shell {
|
|
@@ -25,13 +25,24 @@
|
|
|
25
25
|
--db-text-placeholder: #766c54;
|
|
26
26
|
--db-accent: #7d6948;
|
|
27
27
|
--db-accent-hover: #5e4f37;
|
|
28
|
+
--db-text-on-accent: #ffffff;
|
|
29
|
+
--db-text-on-selected: #ffffff;
|
|
30
|
+
/* Keyboard focus ring. Deliberately darker than --db-accent: the accent
|
|
31
|
+
is also the *selected row* fill, so an accent ring vanished against
|
|
32
|
+
it. Any surface that paints itself --db-bg-selected re-points this
|
|
33
|
+
token at a contrasting value (see .db-tree-row--selected). */
|
|
34
|
+
--db-focus: #3d3220;
|
|
28
35
|
--db-accent-soft-08: rgba(125, 105, 72, 0.08);
|
|
36
|
+
--db-accent-soft-10: rgba(125, 105, 72, 0.1);
|
|
29
37
|
--db-accent-soft-12: rgba(125, 105, 72, 0.12);
|
|
30
38
|
--db-accent-soft-15: rgba(125, 105, 72, 0.15);
|
|
31
39
|
--db-accent-soft-25: rgba(125, 105, 72, 0.25);
|
|
32
|
-
--db-accent-tint: #f3eede;
|
|
33
40
|
--db-accent-tint-strong: #d8d0b5;
|
|
34
41
|
--db-accent-deep: #3d3220;
|
|
42
|
+
--db-editor-canvas: #ffffff;
|
|
43
|
+
--db-badge-bg: #f3eede;
|
|
44
|
+
--db-badge-text: #3d3220;
|
|
45
|
+
--db-badge-text-hover: #2a2419;
|
|
35
46
|
/* Outline pane + inline-preview gutter background. Sits one step
|
|
36
47
|
lighter than the toolbar (`--db-accent-tint-strong`) so the chrome
|
|
37
48
|
panes read as distinct from the action bar above the canvas. */
|
|
@@ -39,7 +50,16 @@
|
|
|
39
50
|
--db-input-border: #c4b693;
|
|
40
51
|
--db-danger: #b22b1b;
|
|
41
52
|
--db-danger-bg: #fdf0ee;
|
|
53
|
+
--db-text-on-danger: #ffffff;
|
|
42
54
|
--db-shadow: rgba(40, 30, 15, 0.12);
|
|
55
|
+
/* Git status colors — file badges, sync chips. Deleted/conflicted reuse
|
|
56
|
+
the danger hue on purpose; renamed gets the one cool accent. */
|
|
57
|
+
--db-git-modified: #9a6b00;
|
|
58
|
+
--db-git-added: #2e7d32;
|
|
59
|
+
--db-git-untracked: #2e7d32;
|
|
60
|
+
--db-git-renamed: #1565c0;
|
|
61
|
+
--db-git-deleted: #b22b1b;
|
|
62
|
+
--db-git-conflicted: #b22b1b;
|
|
43
63
|
}
|
|
44
64
|
|
|
45
65
|
.db-shell[data-theme='dark'] {
|
|
@@ -56,21 +76,35 @@
|
|
|
56
76
|
--db-text-placeholder: #6b614a;
|
|
57
77
|
--db-accent: #c8b48f;
|
|
58
78
|
--db-accent-hover: #dec79d;
|
|
79
|
+
--db-text-on-accent: #1a1812;
|
|
80
|
+
--db-text-on-selected: #e8e2d0;
|
|
81
|
+
--db-focus: #e8e2d0;
|
|
59
82
|
--db-accent-soft-08: rgba(200, 180, 143, 0.08);
|
|
83
|
+
--db-accent-soft-10: rgba(200, 180, 143, 0.1);
|
|
60
84
|
--db-accent-soft-12: rgba(200, 180, 143, 0.12);
|
|
61
85
|
--db-accent-soft-15: rgba(200, 180, 143, 0.18);
|
|
62
86
|
--db-accent-soft-25: rgba(200, 180, 143, 0.28);
|
|
63
|
-
--db-accent-tint: #262219;
|
|
64
87
|
--db-accent-tint-strong: #3a382e;
|
|
65
88
|
--db-accent-deep: #e6dcc0;
|
|
89
|
+
--db-editor-canvas: #16110b;
|
|
90
|
+
--db-badge-bg: #3a2f1f;
|
|
91
|
+
--db-badge-text: #fff4d6;
|
|
92
|
+
--db-badge-text-hover: #fff8e6;
|
|
66
93
|
--db-input-border: #c8b48f;
|
|
67
94
|
--db-danger: #f87171;
|
|
68
95
|
--db-danger-bg: #1c1917;
|
|
96
|
+
--db-text-on-danger: #1c1917;
|
|
69
97
|
--db-shadow: rgba(0, 0, 0, 0.4);
|
|
70
98
|
/* In dark mode, "lighter than the toolbar" means brighter — so this
|
|
71
99
|
sits a step above `--db-accent-tint-strong` instead of between it
|
|
72
100
|
and tint. */
|
|
73
101
|
--db-gutter-bg: #4a4538;
|
|
102
|
+
--db-git-modified: #e5b567;
|
|
103
|
+
--db-git-added: #81c784;
|
|
104
|
+
--db-git-untracked: #81c784;
|
|
105
|
+
--db-git-renamed: #64b5f6;
|
|
106
|
+
--db-git-deleted: #f87171;
|
|
107
|
+
--db-git-conflicted: #f87171;
|
|
74
108
|
}
|
|
75
109
|
|
|
76
110
|
@media (prefers-color-scheme: dark) {
|
|
@@ -88,18 +122,27 @@
|
|
|
88
122
|
--db-text-placeholder: #6b614a;
|
|
89
123
|
--db-accent: #c8b48f;
|
|
90
124
|
--db-accent-hover: #dec79d;
|
|
125
|
+
--db-text-on-accent: #1a1812;
|
|
126
|
+
--db-text-on-selected: #e8e2d0;
|
|
127
|
+
--db-focus: #e8e2d0;
|
|
91
128
|
--db-accent-soft-08: rgba(200, 180, 143, 0.08);
|
|
92
129
|
--db-accent-soft-12: rgba(200, 180, 143, 0.12);
|
|
93
130
|
--db-accent-soft-15: rgba(200, 180, 143, 0.18);
|
|
94
131
|
--db-accent-soft-25: rgba(200, 180, 143, 0.28);
|
|
95
|
-
--db-accent-tint: #262219;
|
|
96
132
|
--db-accent-tint-strong: #3a382e;
|
|
97
133
|
--db-accent-deep: #e6dcc0;
|
|
98
134
|
--db-input-border: #c8b48f;
|
|
99
135
|
--db-danger: #f87171;
|
|
100
136
|
--db-danger-bg: #1c1917;
|
|
137
|
+
--db-text-on-danger: #1c1917;
|
|
101
138
|
--db-shadow: rgba(0, 0, 0, 0.4);
|
|
102
139
|
--db-gutter-bg: #4a4538;
|
|
140
|
+
--db-git-modified: #e5b567;
|
|
141
|
+
--db-git-added: #81c784;
|
|
142
|
+
--db-git-untracked: #81c784;
|
|
143
|
+
--db-git-renamed: #64b5f6;
|
|
144
|
+
--db-git-deleted: #f87171;
|
|
145
|
+
--db-git-conflicted: #f87171;
|
|
103
146
|
}
|
|
104
147
|
}
|
|
105
148
|
|
|
@@ -154,24 +197,140 @@
|
|
|
154
197
|
}
|
|
155
198
|
|
|
156
199
|
.db-explorer-btn {
|
|
200
|
+
width: 24px;
|
|
201
|
+
height: 24px;
|
|
157
202
|
background: none;
|
|
158
203
|
border: 1px solid transparent;
|
|
159
204
|
border-radius: 3px;
|
|
160
205
|
cursor: pointer;
|
|
161
|
-
padding:
|
|
162
|
-
font-size:
|
|
206
|
+
padding: 0;
|
|
207
|
+
font-size: 14px;
|
|
208
|
+
line-height: 1;
|
|
163
209
|
color: var(--db-text-muted);
|
|
164
210
|
display: flex;
|
|
165
211
|
align-items: center;
|
|
166
212
|
justify-content: center;
|
|
167
213
|
}
|
|
168
214
|
|
|
169
|
-
.db-explorer-btn:hover {
|
|
215
|
+
.db-explorer-btn:hover:not(:disabled) {
|
|
170
216
|
background: var(--db-bg-hover);
|
|
171
217
|
border-color: var(--db-border);
|
|
172
218
|
color: var(--db-text-secondary);
|
|
173
219
|
}
|
|
174
220
|
|
|
221
|
+
.db-explorer-btn:disabled {
|
|
222
|
+
cursor: default;
|
|
223
|
+
opacity: 0.55;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/* ── Transient workspace move ────────────────────────────────── */
|
|
227
|
+
|
|
228
|
+
.db-transient-move {
|
|
229
|
+
flex-shrink: 0;
|
|
230
|
+
padding: 8px;
|
|
231
|
+
border-bottom: 1px solid var(--db-border);
|
|
232
|
+
background: var(--db-accent-soft-08);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.db-transient-move-trigger {
|
|
236
|
+
width: 100%;
|
|
237
|
+
padding: 7px 9px;
|
|
238
|
+
border: 1px solid var(--db-accent);
|
|
239
|
+
border-radius: 5px;
|
|
240
|
+
background: var(--db-bg);
|
|
241
|
+
color: var(--db-accent-deep);
|
|
242
|
+
font: inherit;
|
|
243
|
+
font-weight: 600;
|
|
244
|
+
text-align: left;
|
|
245
|
+
cursor: pointer;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.db-transient-move-trigger:hover {
|
|
249
|
+
background: var(--db-bg-hover);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.db-transient-move-trigger:focus-visible,
|
|
253
|
+
.db-transient-move-select:focus-visible,
|
|
254
|
+
.db-transient-move-actions button:focus-visible {
|
|
255
|
+
outline: 2px solid var(--db-focus, var(--db-accent));
|
|
256
|
+
outline-offset: 2px;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.db-transient-move-form {
|
|
260
|
+
display: flex;
|
|
261
|
+
flex-direction: column;
|
|
262
|
+
gap: 7px;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.db-transient-move-label {
|
|
266
|
+
color: var(--db-text);
|
|
267
|
+
font-size: 12px;
|
|
268
|
+
font-weight: 600;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.db-transient-move-select {
|
|
272
|
+
box-sizing: border-box;
|
|
273
|
+
width: 100%;
|
|
274
|
+
min-width: 0;
|
|
275
|
+
padding: 6px 28px 6px 8px;
|
|
276
|
+
border: 1px solid var(--db-input-border);
|
|
277
|
+
border-radius: 4px;
|
|
278
|
+
background: var(--db-bg);
|
|
279
|
+
color: var(--db-text);
|
|
280
|
+
font: inherit;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.db-transient-move-hint,
|
|
284
|
+
.db-transient-move-error {
|
|
285
|
+
margin: 0;
|
|
286
|
+
font-size: 11px;
|
|
287
|
+
line-height: 1.4;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.db-transient-move-hint {
|
|
291
|
+
color: var(--db-text-muted);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.db-transient-move-error {
|
|
295
|
+
color: var(--db-danger);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
.db-transient-move-actions {
|
|
299
|
+
display: flex;
|
|
300
|
+
justify-content: flex-end;
|
|
301
|
+
gap: 6px;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
.db-transient-move-actions button {
|
|
305
|
+
padding: 5px 10px;
|
|
306
|
+
border-radius: 4px;
|
|
307
|
+
font: inherit;
|
|
308
|
+
font-weight: 600;
|
|
309
|
+
cursor: pointer;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
.db-transient-move-actions button:disabled {
|
|
313
|
+
opacity: 0.55;
|
|
314
|
+
cursor: default;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
.db-transient-move-cancel {
|
|
318
|
+
border: 1px solid var(--db-border-strong);
|
|
319
|
+
background: var(--db-bg);
|
|
320
|
+
color: var(--db-text-secondary);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
.db-transient-move-submit {
|
|
324
|
+
border: 1px solid var(--db-accent);
|
|
325
|
+
background: var(--db-accent);
|
|
326
|
+
color: var(--db-text-on-accent);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.db-transient-move-submit:hover:not(:disabled) {
|
|
330
|
+
border-color: var(--db-accent-hover);
|
|
331
|
+
background: var(--db-accent-hover);
|
|
332
|
+
}
|
|
333
|
+
|
|
175
334
|
/* ── New Item Input ──────────────────────────────────────────── */
|
|
176
335
|
|
|
177
336
|
.db-new-item {
|
|
@@ -198,6 +357,25 @@
|
|
|
198
357
|
outline: none;
|
|
199
358
|
}
|
|
200
359
|
|
|
360
|
+
/* The UA outline is suppressed above, so this is the *only* focus
|
|
361
|
+
indicator on an input a keyboard user has to type into (WCAG 2.4.7).
|
|
362
|
+
:focus-visible rather than :focus so a pointer user placing a caret
|
|
363
|
+
doesn't get a ring. */
|
|
364
|
+
.db-new-item-input:focus-visible {
|
|
365
|
+
outline: 2px solid var(--db-focus);
|
|
366
|
+
outline-offset: 1px;
|
|
367
|
+
border-color: var(--db-accent);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
.db-new-item-input[aria-invalid='true'] {
|
|
371
|
+
border-color: var(--db-danger);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
.db-new-item-add:focus-visible {
|
|
375
|
+
outline: 2px solid var(--db-focus);
|
|
376
|
+
outline-offset: 1px;
|
|
377
|
+
}
|
|
378
|
+
|
|
201
379
|
.db-new-item-suffix {
|
|
202
380
|
font-size: 12px;
|
|
203
381
|
color: var(--db-text-muted);
|
|
@@ -209,16 +387,22 @@
|
|
|
209
387
|
padding: 3px 8px;
|
|
210
388
|
font-size: 12px;
|
|
211
389
|
background: var(--db-accent);
|
|
212
|
-
color:
|
|
390
|
+
color: var(--db-text-on-accent);
|
|
213
391
|
border: none;
|
|
214
392
|
border-radius: 3px;
|
|
215
393
|
cursor: pointer;
|
|
216
394
|
}
|
|
217
395
|
|
|
218
|
-
.db-new-item-add:hover {
|
|
396
|
+
.db-new-item-add:hover:not(:disabled) {
|
|
219
397
|
background: var(--db-accent-hover);
|
|
220
398
|
}
|
|
221
399
|
|
|
400
|
+
.db-new-item-input:disabled,
|
|
401
|
+
.db-new-item-add:disabled {
|
|
402
|
+
cursor: default;
|
|
403
|
+
opacity: 0.65;
|
|
404
|
+
}
|
|
405
|
+
|
|
222
406
|
/* ── Tree ────────────────────────────────────────────────────── */
|
|
223
407
|
|
|
224
408
|
.db-tree {
|
|
@@ -234,6 +418,31 @@
|
|
|
234
418
|
font-size: 12px;
|
|
235
419
|
}
|
|
236
420
|
|
|
421
|
+
.db-tree-error {
|
|
422
|
+
margin: 4px 8px;
|
|
423
|
+
padding: 6px 8px;
|
|
424
|
+
border: 1px solid var(--db-danger, #c33);
|
|
425
|
+
border-radius: 3px;
|
|
426
|
+
color: var(--db-danger, #c33);
|
|
427
|
+
font-size: 12px;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
.db-tree-error-retry {
|
|
431
|
+
border: 0;
|
|
432
|
+
padding: 0;
|
|
433
|
+
color: inherit;
|
|
434
|
+
background: transparent;
|
|
435
|
+
font: inherit;
|
|
436
|
+
font-weight: 600;
|
|
437
|
+
text-decoration: underline;
|
|
438
|
+
cursor: pointer;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
.db-tree--drop-target {
|
|
442
|
+
box-shadow: inset 0 0 0 2px var(--db-accent);
|
|
443
|
+
background: var(--db-accent-soft-08);
|
|
444
|
+
}
|
|
445
|
+
|
|
237
446
|
.db-tree-row {
|
|
238
447
|
display: flex;
|
|
239
448
|
align-items: center;
|
|
@@ -248,14 +457,42 @@
|
|
|
248
457
|
background: var(--db-bg-hover);
|
|
249
458
|
}
|
|
250
459
|
|
|
460
|
+
/* The roving-tabindex row is the tree's single tab stop, so its focus ring
|
|
461
|
+
is the only thing telling a keyboard user where they are. Inset offset
|
|
462
|
+
keeps the ring inside the scroll container instead of being clipped. */
|
|
463
|
+
.db-tree-row:focus-visible {
|
|
464
|
+
outline: 2px solid var(--db-focus);
|
|
465
|
+
outline-offset: -2px;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
/* A selected/drop-target row is filled with --db-bg-selected, which in
|
|
469
|
+
light mode *is* the accent brown — the default ring would disappear
|
|
470
|
+
into it. Re-point the token rather than duplicating the rule. */
|
|
471
|
+
.db-tree-row--selected,
|
|
472
|
+
.db-tree-row--drop-target {
|
|
473
|
+
--db-focus: #ffffff;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
.db-tree-row--dragging {
|
|
477
|
+
opacity: 0.45;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
.db-tree-row--drop-target,
|
|
481
|
+
.db-tree-row--drop-target:hover {
|
|
482
|
+
background: var(--db-bg-selected);
|
|
483
|
+
color: var(--db-text-on-selected);
|
|
484
|
+
outline: 1px solid var(--db-accent);
|
|
485
|
+
outline-offset: -1px;
|
|
486
|
+
}
|
|
487
|
+
|
|
251
488
|
.db-tree-row--selected {
|
|
252
489
|
background: var(--db-bg-selected);
|
|
253
|
-
color:
|
|
490
|
+
color: var(--db-text-on-selected);
|
|
254
491
|
}
|
|
255
492
|
|
|
256
493
|
.db-tree-row--selected:hover {
|
|
257
494
|
background: var(--db-bg-selected-hover);
|
|
258
|
-
color:
|
|
495
|
+
color: var(--db-text-on-selected);
|
|
259
496
|
}
|
|
260
497
|
|
|
261
498
|
.db-tree-icon {
|
|
@@ -286,6 +523,15 @@
|
|
|
286
523
|
outline: none;
|
|
287
524
|
}
|
|
288
525
|
|
|
526
|
+
/* Same WCAG 2.4.7 gap as .db-new-item-input: the rename input is focused
|
|
527
|
+
programmatically the moment it appears, so with `outline: none` and no
|
|
528
|
+
replacement a keyboard user had no idea where they were typing. */
|
|
529
|
+
.db-tree-rename-input:focus-visible {
|
|
530
|
+
outline: 2px solid var(--db-focus);
|
|
531
|
+
outline-offset: 1px;
|
|
532
|
+
border-color: var(--db-accent);
|
|
533
|
+
}
|
|
534
|
+
|
|
289
535
|
.db-tree-more {
|
|
290
536
|
flex-shrink: 0;
|
|
291
537
|
display: inline-flex;
|
|
@@ -299,6 +545,8 @@
|
|
|
299
545
|
border-radius: 3px;
|
|
300
546
|
background: transparent;
|
|
301
547
|
color: var(--db-text-secondary);
|
|
548
|
+
font-size: 14px;
|
|
549
|
+
line-height: 1;
|
|
302
550
|
cursor: pointer;
|
|
303
551
|
visibility: hidden;
|
|
304
552
|
}
|
|
@@ -315,9 +563,14 @@
|
|
|
315
563
|
color: var(--db-text);
|
|
316
564
|
}
|
|
317
565
|
|
|
566
|
+
.db-tree-more:focus-visible {
|
|
567
|
+
outline: 2px solid var(--db-focus);
|
|
568
|
+
outline-offset: -2px;
|
|
569
|
+
}
|
|
570
|
+
|
|
318
571
|
.db-tree-more--active {
|
|
319
572
|
background: var(--db-bg-selected);
|
|
320
|
-
color:
|
|
573
|
+
color: var(--db-text-on-selected);
|
|
321
574
|
}
|
|
322
575
|
|
|
323
576
|
/* ── Context Menu ────────────────────────────────────────────── */
|
|
@@ -349,10 +602,18 @@
|
|
|
349
602
|
color: var(--db-text-secondary);
|
|
350
603
|
}
|
|
351
604
|
|
|
352
|
-
.db-tree-context-item:hover
|
|
605
|
+
.db-tree-context-item:hover,
|
|
606
|
+
.db-tree-context-item:focus-visible {
|
|
353
607
|
background: var(--db-bg-hover);
|
|
354
608
|
}
|
|
355
609
|
|
|
610
|
+
/* Menu items are reached with Arrow keys (they are not tab stops), so the
|
|
611
|
+
ring is the only cue to which item Enter will fire. */
|
|
612
|
+
.db-tree-context-item:focus-visible {
|
|
613
|
+
outline: 2px solid var(--db-focus);
|
|
614
|
+
outline-offset: -2px;
|
|
615
|
+
}
|
|
616
|
+
|
|
356
617
|
.db-tree-context-item--danger {
|
|
357
618
|
color: var(--db-danger);
|
|
358
619
|
}
|
|
@@ -367,6 +628,7 @@
|
|
|
367
628
|
position: relative;
|
|
368
629
|
flex: 1;
|
|
369
630
|
min-width: 0;
|
|
631
|
+
max-width: 320px;
|
|
370
632
|
}
|
|
371
633
|
|
|
372
634
|
.db-workspace-picker-btn {
|
|
@@ -387,10 +649,33 @@
|
|
|
387
649
|
background: var(--db-bg-hover);
|
|
388
650
|
}
|
|
389
651
|
|
|
652
|
+
.db-workspace-picker-label {
|
|
653
|
+
min-width: 0;
|
|
654
|
+
overflow: hidden;
|
|
655
|
+
text-overflow: ellipsis;
|
|
656
|
+
white-space: nowrap;
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
.db-workspace-picker-compact-icon {
|
|
660
|
+
display: none;
|
|
661
|
+
align-items: center;
|
|
662
|
+
justify-content: center;
|
|
663
|
+
}
|
|
664
|
+
|
|
390
665
|
.db-workspace-picker-caret {
|
|
391
|
-
|
|
666
|
+
width: 10px;
|
|
667
|
+
height: 6px;
|
|
668
|
+
flex: 0 0 auto;
|
|
392
669
|
margin-left: 4px;
|
|
393
|
-
|
|
670
|
+
background: currentColor;
|
|
671
|
+
clip-path: polygon(0 0, 100% 0, 50% 100%);
|
|
672
|
+
color: var(--db-text-muted);
|
|
673
|
+
transform-origin: center;
|
|
674
|
+
transition: transform 0.15s;
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
.db-workspace-picker-caret--open {
|
|
678
|
+
transform: rotate(180deg);
|
|
394
679
|
}
|
|
395
680
|
|
|
396
681
|
.db-workspace-dropdown {
|
|
@@ -409,7 +694,7 @@
|
|
|
409
694
|
|
|
410
695
|
.db-workspace-dropdown-item {
|
|
411
696
|
display: flex;
|
|
412
|
-
align-items:
|
|
697
|
+
align-items: flex-start;
|
|
413
698
|
justify-content: space-between;
|
|
414
699
|
gap: 8px;
|
|
415
700
|
width: 100%;
|
|
@@ -420,16 +705,21 @@
|
|
|
420
705
|
border: none;
|
|
421
706
|
cursor: pointer;
|
|
422
707
|
color: var(--db-text-secondary);
|
|
423
|
-
white-space: nowrap;
|
|
424
708
|
}
|
|
425
709
|
|
|
426
710
|
.db-workspace-dropdown-item:hover {
|
|
427
711
|
background: var(--db-bg-hover);
|
|
428
712
|
}
|
|
429
713
|
|
|
714
|
+
.db-workspace-dropdown-action-label {
|
|
715
|
+
display: inline-flex;
|
|
716
|
+
align-items: center;
|
|
717
|
+
gap: 6px;
|
|
718
|
+
}
|
|
719
|
+
|
|
430
720
|
.db-workspace-dropdown-item--active {
|
|
431
721
|
background: var(--db-bg-selected);
|
|
432
|
-
color:
|
|
722
|
+
color: var(--db-text-on-selected);
|
|
433
723
|
font-weight: 500;
|
|
434
724
|
}
|
|
435
725
|
|
|
@@ -438,6 +728,35 @@
|
|
|
438
728
|
color: var(--db-text-placeholder);
|
|
439
729
|
}
|
|
440
730
|
|
|
731
|
+
.db-workspace-details {
|
|
732
|
+
display: flex;
|
|
733
|
+
flex-direction: column;
|
|
734
|
+
width: 100%;
|
|
735
|
+
min-width: 0;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
.db-workspace-heading {
|
|
739
|
+
display: flex;
|
|
740
|
+
align-items: baseline;
|
|
741
|
+
justify-content: space-between;
|
|
742
|
+
gap: 12px;
|
|
743
|
+
white-space: nowrap;
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
.db-workspace-path {
|
|
747
|
+
margin-top: 2px;
|
|
748
|
+
color: var(--db-text-muted);
|
|
749
|
+
font-size: 11px;
|
|
750
|
+
font-weight: 400;
|
|
751
|
+
line-height: 1.35;
|
|
752
|
+
overflow-wrap: anywhere;
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
.db-workspace-dropdown-item--active :is(.db-workspace-type, .db-workspace-path) {
|
|
756
|
+
color: var(--db-text-on-selected);
|
|
757
|
+
opacity: 0.75;
|
|
758
|
+
}
|
|
759
|
+
|
|
441
760
|
.db-workspace-dropdown-divider {
|
|
442
761
|
height: 1px;
|
|
443
762
|
background: var(--db-border);
|
|
@@ -476,9 +795,14 @@
|
|
|
476
795
|
}
|
|
477
796
|
|
|
478
797
|
.db-app-menu-caret {
|
|
479
|
-
|
|
798
|
+
width: 10px;
|
|
799
|
+
height: 6px;
|
|
800
|
+
flex: 0 0 auto;
|
|
801
|
+
background: currentColor;
|
|
802
|
+
clip-path: polygon(0 0, 100% 0, 50% 100%);
|
|
480
803
|
color: var(--db-text-muted);
|
|
481
804
|
display: inline-block;
|
|
805
|
+
transform-origin: center;
|
|
482
806
|
transition: transform 0.15s;
|
|
483
807
|
}
|
|
484
808
|
|
|
@@ -547,6 +871,8 @@
|
|
|
547
871
|
border-radius: 4px;
|
|
548
872
|
background: transparent;
|
|
549
873
|
color: var(--db-text-muted);
|
|
874
|
+
font-size: 14px;
|
|
875
|
+
line-height: 1;
|
|
550
876
|
cursor: pointer;
|
|
551
877
|
transition:
|
|
552
878
|
background 0.12s,
|
|
@@ -699,6 +1025,7 @@ body.db-resizing-sidebar * {
|
|
|
699
1025
|
}
|
|
700
1026
|
|
|
701
1027
|
.db-shell-sidebar-header {
|
|
1028
|
+
container: db-sidebar-header / inline-size;
|
|
702
1029
|
display: flex;
|
|
703
1030
|
align-items: center;
|
|
704
1031
|
border-bottom: 1px solid var(--db-border-strong);
|
|
@@ -708,14 +1035,44 @@ body.db-resizing-sidebar * {
|
|
|
708
1035
|
min-height: 40px;
|
|
709
1036
|
}
|
|
710
1037
|
|
|
1038
|
+
@container db-sidebar-header (max-width: 300px) {
|
|
1039
|
+
.db-workspace-picker {
|
|
1040
|
+
flex: 0 0 auto;
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
.db-workspace-picker-btn {
|
|
1044
|
+
width: auto;
|
|
1045
|
+
gap: 6px;
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
.db-workspace-picker-label {
|
|
1049
|
+
display: none;
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
.db-workspace-picker-compact-icon {
|
|
1053
|
+
display: inline-flex;
|
|
1054
|
+
}
|
|
1055
|
+
}
|
|
1056
|
+
|
|
711
1057
|
.db-shell-sidebar-footer {
|
|
712
|
-
|
|
1058
|
+
box-sizing: border-box;
|
|
1059
|
+
display: flex;
|
|
1060
|
+
align-items: center;
|
|
1061
|
+
gap: 6px;
|
|
1062
|
+
height: 23px;
|
|
1063
|
+
padding: 0 12px 0 18px;
|
|
713
1064
|
border-top: 1px solid var(--db-border-strong);
|
|
714
1065
|
flex-shrink: 0;
|
|
715
1066
|
font-size: 11px;
|
|
1067
|
+
line-height: 1;
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
.db-shell-sidebar-footer > * {
|
|
1071
|
+
transform: translateY(-1px);
|
|
716
1072
|
}
|
|
717
1073
|
|
|
718
1074
|
.db-shell-sidebar-footer a {
|
|
1075
|
+
flex-shrink: 0;
|
|
719
1076
|
color: var(--db-text-muted);
|
|
720
1077
|
text-decoration: none;
|
|
721
1078
|
}
|
|
@@ -725,6 +1082,34 @@ body.db-resizing-sidebar * {
|
|
|
725
1082
|
text-decoration: underline;
|
|
726
1083
|
}
|
|
727
1084
|
|
|
1085
|
+
.db-shell-sidebar-footer-separator,
|
|
1086
|
+
.db-shell-sidebar-footer-action {
|
|
1087
|
+
color: var(--db-text-muted);
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1090
|
+
.db-shell-sidebar-footer-separator {
|
|
1091
|
+
flex-shrink: 0;
|
|
1092
|
+
opacity: 0.65;
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
.db-shell-sidebar-footer-action {
|
|
1096
|
+
min-width: 0;
|
|
1097
|
+
padding: 0;
|
|
1098
|
+
overflow: hidden;
|
|
1099
|
+
border: 0;
|
|
1100
|
+
background: transparent;
|
|
1101
|
+
font: inherit;
|
|
1102
|
+
line-height: inherit;
|
|
1103
|
+
text-decoration: underline;
|
|
1104
|
+
text-overflow: ellipsis;
|
|
1105
|
+
white-space: nowrap;
|
|
1106
|
+
cursor: pointer;
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
.db-shell-sidebar-footer-action:hover {
|
|
1110
|
+
color: var(--db-text-secondary);
|
|
1111
|
+
}
|
|
1112
|
+
|
|
728
1113
|
.db-shell-empty {
|
|
729
1114
|
display: flex;
|
|
730
1115
|
align-items: center;
|
|
@@ -759,9 +1144,16 @@ body.db-resizing-sidebar * {
|
|
|
759
1144
|
background: var(--db-bg-hover);
|
|
760
1145
|
}
|
|
761
1146
|
|
|
762
|
-
.db-mobile-
|
|
763
|
-
|
|
764
|
-
|
|
1147
|
+
.db-mobile-files-icon {
|
|
1148
|
+
display: inline-flex;
|
|
1149
|
+
align-items: center;
|
|
1150
|
+
justify-content: center;
|
|
1151
|
+
flex-shrink: 0;
|
|
1152
|
+
}
|
|
1153
|
+
|
|
1154
|
+
.db-mobile-files-icon svg {
|
|
1155
|
+
width: 24px;
|
|
1156
|
+
height: 24px;
|
|
765
1157
|
}
|
|
766
1158
|
|
|
767
1159
|
/* In folder/empty views, the back button sits as a standalone bar */
|
|
@@ -772,10 +1164,9 @@ body.db-resizing-sidebar * {
|
|
|
772
1164
|
background: var(--db-bg-subtle);
|
|
773
1165
|
}
|
|
774
1166
|
|
|
775
|
-
/* "Restore split view" button — appears
|
|
776
|
-
compact layout was triggered manually on a wide viewport.
|
|
777
|
-
|
|
778
|
-
no label, so it stays compact in the toolbar's right-slot. */
|
|
1167
|
+
/* "Restore split view" button — appears in whichever pane is visible when
|
|
1168
|
+
compact layout was triggered manually on a wide viewport. Iconic only,
|
|
1169
|
+
no label, so it stays compact in either header. */
|
|
779
1170
|
.db-restore-split {
|
|
780
1171
|
display: inline-flex;
|
|
781
1172
|
align-items: center;
|
|
@@ -799,20 +1190,28 @@ body.db-resizing-sidebar * {
|
|
|
799
1190
|
.db-dialog-overlay {
|
|
800
1191
|
position: fixed;
|
|
801
1192
|
inset: 0;
|
|
802
|
-
|
|
1193
|
+
/* Keep DocBlocks modals above Squisq player controls and editor tooltips. */
|
|
1194
|
+
z-index: 3000;
|
|
803
1195
|
display: flex;
|
|
804
1196
|
align-items: center;
|
|
805
1197
|
justify-content: center;
|
|
1198
|
+
box-sizing: border-box;
|
|
1199
|
+
padding: 16px;
|
|
806
1200
|
background: rgba(0, 0, 0, 0.4);
|
|
807
1201
|
}
|
|
808
1202
|
|
|
809
1203
|
.db-dialog {
|
|
1204
|
+
box-sizing: border-box;
|
|
810
1205
|
background: var(--db-bg);
|
|
811
1206
|
border: 1px solid var(--db-border);
|
|
812
1207
|
border-radius: 8px;
|
|
813
1208
|
box-shadow: 0 8px 32px var(--db-shadow);
|
|
814
1209
|
width: 380px;
|
|
815
|
-
max-width:
|
|
1210
|
+
max-width: 100%;
|
|
1211
|
+
max-height: calc(100vh - 32px);
|
|
1212
|
+
max-height: calc(100dvh - 32px);
|
|
1213
|
+
display: flex;
|
|
1214
|
+
flex-direction: column;
|
|
816
1215
|
}
|
|
817
1216
|
|
|
818
1217
|
.db-dialog-header {
|
|
@@ -847,6 +1246,8 @@ body.db-resizing-sidebar * {
|
|
|
847
1246
|
}
|
|
848
1247
|
|
|
849
1248
|
.db-dialog-body {
|
|
1249
|
+
min-height: 0;
|
|
1250
|
+
overflow-y: auto;
|
|
850
1251
|
padding: 16px 20px 20px;
|
|
851
1252
|
font-size: 13px;
|
|
852
1253
|
line-height: 1.6;
|
|
@@ -928,34 +1329,191 @@ body.db-resizing-sidebar * {
|
|
|
928
1329
|
.db-settings-radio input[type='radio'] {
|
|
929
1330
|
margin: 0;
|
|
930
1331
|
cursor: pointer;
|
|
1332
|
+
accent-color: var(--db-accent);
|
|
931
1333
|
}
|
|
932
1334
|
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
.db-folder-view {
|
|
936
|
-
padding: 24px;
|
|
937
|
-
height: 100%;
|
|
938
|
-
overflow-y: auto;
|
|
939
|
-
}
|
|
940
|
-
|
|
941
|
-
.db-folder-view-header {
|
|
1335
|
+
.db-settings-checkbox {
|
|
942
1336
|
display: flex;
|
|
943
1337
|
align-items: center;
|
|
944
1338
|
gap: 8px;
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
1339
|
+
padding: 6px 0;
|
|
1340
|
+
font-size: 13px;
|
|
1341
|
+
color: var(--db-text);
|
|
1342
|
+
cursor: pointer;
|
|
948
1343
|
}
|
|
949
1344
|
|
|
950
|
-
.db-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
color: var(--db-
|
|
1345
|
+
.db-settings-checkbox input[type='checkbox'] {
|
|
1346
|
+
margin: 0;
|
|
1347
|
+
cursor: pointer;
|
|
1348
|
+
accent-color: var(--db-accent);
|
|
954
1349
|
}
|
|
955
1350
|
|
|
956
|
-
.db-
|
|
957
|
-
|
|
958
|
-
|
|
1351
|
+
.db-settings-slider {
|
|
1352
|
+
display: flex;
|
|
1353
|
+
flex-direction: column;
|
|
1354
|
+
gap: 6px;
|
|
1355
|
+
color: var(--db-text);
|
|
1356
|
+
font-size: 13px;
|
|
1357
|
+
}
|
|
1358
|
+
|
|
1359
|
+
.db-settings-slider + .db-settings-slider {
|
|
1360
|
+
margin-top: 14px;
|
|
1361
|
+
}
|
|
1362
|
+
|
|
1363
|
+
.db-settings-slider-header {
|
|
1364
|
+
display: flex;
|
|
1365
|
+
align-items: baseline;
|
|
1366
|
+
justify-content: space-between;
|
|
1367
|
+
gap: 16px;
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1370
|
+
.db-settings-slider-value {
|
|
1371
|
+
color: var(--db-text-muted);
|
|
1372
|
+
font-variant-numeric: tabular-nums;
|
|
1373
|
+
}
|
|
1374
|
+
|
|
1375
|
+
.db-settings-slider input[type='range'] {
|
|
1376
|
+
width: 100%;
|
|
1377
|
+
margin: 0;
|
|
1378
|
+
accent-color: var(--db-accent);
|
|
1379
|
+
cursor: pointer;
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
.db-settings-accent-grid {
|
|
1383
|
+
display: grid;
|
|
1384
|
+
grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
|
|
1385
|
+
gap: 6px;
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
.db-settings-action {
|
|
1389
|
+
margin-top: 4px;
|
|
1390
|
+
padding: 7px 12px;
|
|
1391
|
+
border: 1px solid var(--db-accent);
|
|
1392
|
+
border-radius: 5px;
|
|
1393
|
+
background: var(--db-accent);
|
|
1394
|
+
color: var(--db-text-on-accent);
|
|
1395
|
+
font: inherit;
|
|
1396
|
+
font-weight: 600;
|
|
1397
|
+
cursor: pointer;
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1400
|
+
.db-settings-action:hover:not(:disabled) {
|
|
1401
|
+
border-color: var(--db-accent-hover);
|
|
1402
|
+
background: var(--db-accent-hover);
|
|
1403
|
+
}
|
|
1404
|
+
|
|
1405
|
+
.db-settings-action:focus-visible {
|
|
1406
|
+
outline: 2px solid var(--db-focus, var(--db-accent));
|
|
1407
|
+
outline-offset: 2px;
|
|
1408
|
+
}
|
|
1409
|
+
|
|
1410
|
+
.db-settings-action:disabled {
|
|
1411
|
+
opacity: 0.6;
|
|
1412
|
+
cursor: default;
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1415
|
+
.db-settings-accent {
|
|
1416
|
+
position: relative;
|
|
1417
|
+
display: flex;
|
|
1418
|
+
align-items: center;
|
|
1419
|
+
gap: 8px;
|
|
1420
|
+
min-width: 0;
|
|
1421
|
+
padding: 7px 8px;
|
|
1422
|
+
border: 1px solid transparent;
|
|
1423
|
+
border-radius: 6px;
|
|
1424
|
+
color: var(--db-text);
|
|
1425
|
+
cursor: pointer;
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1428
|
+
.db-settings-accent:hover {
|
|
1429
|
+
background: var(--db-bg-subtle);
|
|
1430
|
+
}
|
|
1431
|
+
|
|
1432
|
+
.db-settings-accent--selected {
|
|
1433
|
+
background: var(--db-accent-soft-08);
|
|
1434
|
+
border-color: var(--db-accent);
|
|
1435
|
+
}
|
|
1436
|
+
|
|
1437
|
+
.db-settings-accent-input {
|
|
1438
|
+
position: absolute;
|
|
1439
|
+
width: 1px;
|
|
1440
|
+
height: 1px;
|
|
1441
|
+
margin: -1px;
|
|
1442
|
+
padding: 0;
|
|
1443
|
+
overflow: hidden;
|
|
1444
|
+
clip: rect(0, 0, 0, 0);
|
|
1445
|
+
white-space: nowrap;
|
|
1446
|
+
border: 0;
|
|
1447
|
+
}
|
|
1448
|
+
|
|
1449
|
+
.db-settings-accent:has(.db-settings-accent-input:focus-visible) {
|
|
1450
|
+
outline: 2px solid var(--db-accent);
|
|
1451
|
+
outline-offset: 2px;
|
|
1452
|
+
}
|
|
1453
|
+
|
|
1454
|
+
.db-settings-accent-swatch {
|
|
1455
|
+
width: 16px;
|
|
1456
|
+
height: 16px;
|
|
1457
|
+
flex: 0 0 auto;
|
|
1458
|
+
border: 1px solid rgba(0, 0, 0, 0.22);
|
|
1459
|
+
border-radius: 50%;
|
|
1460
|
+
box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.18);
|
|
1461
|
+
}
|
|
1462
|
+
|
|
1463
|
+
.db-settings-accent-swatch--brown {
|
|
1464
|
+
background: #7d6948;
|
|
1465
|
+
}
|
|
1466
|
+
|
|
1467
|
+
.db-settings-accent-swatch--green {
|
|
1468
|
+
background: #4f715d;
|
|
1469
|
+
}
|
|
1470
|
+
|
|
1471
|
+
.db-settings-accent-swatch--blue {
|
|
1472
|
+
background: #526f91;
|
|
1473
|
+
}
|
|
1474
|
+
|
|
1475
|
+
.db-settings-accent-swatch--purple {
|
|
1476
|
+
background: #735b8c;
|
|
1477
|
+
}
|
|
1478
|
+
|
|
1479
|
+
.db-settings-accent-swatch--maroon {
|
|
1480
|
+
background: #805365;
|
|
1481
|
+
}
|
|
1482
|
+
|
|
1483
|
+
.db-settings-accent-swatch--orange {
|
|
1484
|
+
background: #8a5a32;
|
|
1485
|
+
}
|
|
1486
|
+
|
|
1487
|
+
.db-settings-accent-swatch--gray {
|
|
1488
|
+
background: #676767;
|
|
1489
|
+
}
|
|
1490
|
+
|
|
1491
|
+
/* ── Folder View ─────────────────────────────────────────────── */
|
|
1492
|
+
|
|
1493
|
+
.db-folder-view {
|
|
1494
|
+
padding: 24px;
|
|
1495
|
+
height: 100%;
|
|
1496
|
+
overflow-y: auto;
|
|
1497
|
+
}
|
|
1498
|
+
|
|
1499
|
+
.db-folder-view-header {
|
|
1500
|
+
display: flex;
|
|
1501
|
+
align-items: center;
|
|
1502
|
+
gap: 8px;
|
|
1503
|
+
margin-bottom: 16px;
|
|
1504
|
+
padding-bottom: 12px;
|
|
1505
|
+
border-bottom: 1px solid var(--db-border);
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1508
|
+
.db-folder-view-icon {
|
|
1509
|
+
display: inline-flex;
|
|
1510
|
+
align-items: center;
|
|
1511
|
+
color: var(--db-text-secondary);
|
|
1512
|
+
}
|
|
1513
|
+
|
|
1514
|
+
.db-folder-view-icon svg {
|
|
1515
|
+
width: 24px;
|
|
1516
|
+
height: 24px;
|
|
959
1517
|
}
|
|
960
1518
|
|
|
961
1519
|
.db-folder-view-path {
|
|
@@ -1034,6 +1592,13 @@ body.db-resizing-sidebar * {
|
|
|
1034
1592
|
padding-bottom: 10px;
|
|
1035
1593
|
}
|
|
1036
1594
|
|
|
1595
|
+
/* Keep the preview-mode chevron on the same lifted baseline as its tab
|
|
1596
|
+
label. Squisq's native 9px bottom padding is paired with the native 4px
|
|
1597
|
+
tab padding; the DocBlocks override above adds 6px to the latter. */
|
|
1598
|
+
.db-shell .squisq-use-mode-trigger {
|
|
1599
|
+
padding-bottom: 15px;
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1037
1602
|
.squisq-toolbar-button[aria-label='Insert image'] {
|
|
1038
1603
|
font-size: 0;
|
|
1039
1604
|
background: no-repeat center / 18px
|
|
@@ -1055,9 +1620,6 @@ body.db-resizing-sidebar * {
|
|
|
1055
1620
|
width: 28px;
|
|
1056
1621
|
height: 28px;
|
|
1057
1622
|
padding: 0;
|
|
1058
|
-
font-size: 16px;
|
|
1059
|
-
font-weight: 700;
|
|
1060
|
-
letter-spacing: 1px;
|
|
1061
1623
|
line-height: 1;
|
|
1062
1624
|
border: 1px solid transparent;
|
|
1063
1625
|
border-radius: 4px;
|
|
@@ -1066,12 +1628,35 @@ body.db-resizing-sidebar * {
|
|
|
1066
1628
|
color: var(--db-text-muted);
|
|
1067
1629
|
}
|
|
1068
1630
|
|
|
1631
|
+
.db-toolbar-menu-trigger svg {
|
|
1632
|
+
width: 18px;
|
|
1633
|
+
height: 18px;
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1069
1636
|
.db-toolbar-menu-trigger:hover {
|
|
1070
1637
|
background: var(--db-bg-hover);
|
|
1071
1638
|
border-color: var(--db-border);
|
|
1072
1639
|
color: var(--db-text-secondary);
|
|
1073
1640
|
}
|
|
1074
1641
|
|
|
1642
|
+
.db-toolbar-export-trigger {
|
|
1643
|
+
margin-left: 4px;
|
|
1644
|
+
}
|
|
1645
|
+
|
|
1646
|
+
.db-toolbar-export-trigger svg {
|
|
1647
|
+
width: 16px;
|
|
1648
|
+
height: 16px;
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1651
|
+
.db-toolbar-settings-trigger {
|
|
1652
|
+
margin-left: 2px;
|
|
1653
|
+
}
|
|
1654
|
+
|
|
1655
|
+
.db-toolbar-settings-trigger svg {
|
|
1656
|
+
width: 16px;
|
|
1657
|
+
height: 16px;
|
|
1658
|
+
}
|
|
1659
|
+
|
|
1075
1660
|
.db-toolbar-menu-dropdown {
|
|
1076
1661
|
position: absolute;
|
|
1077
1662
|
right: 0;
|
|
@@ -1099,10 +1684,17 @@ body.db-resizing-sidebar * {
|
|
|
1099
1684
|
white-space: nowrap;
|
|
1100
1685
|
}
|
|
1101
1686
|
|
|
1102
|
-
.db-toolbar-menu-item:hover
|
|
1687
|
+
.db-toolbar-menu-item:hover,
|
|
1688
|
+
.db-toolbar-menu-item:focus-visible {
|
|
1103
1689
|
background: var(--db-bg-hover);
|
|
1104
1690
|
}
|
|
1105
1691
|
|
|
1692
|
+
/* Arrow-reachable, not a tab stop — see .db-git-menu-item:focus-visible. */
|
|
1693
|
+
.db-toolbar-menu-item:focus-visible {
|
|
1694
|
+
outline: 2px solid var(--db-focus);
|
|
1695
|
+
outline-offset: -2px;
|
|
1696
|
+
}
|
|
1697
|
+
|
|
1106
1698
|
.db-toolbar-menu-item:disabled {
|
|
1107
1699
|
opacity: 0.5;
|
|
1108
1700
|
cursor: default;
|
|
@@ -1156,6 +1748,53 @@ body.db-resizing-sidebar * {
|
|
|
1156
1748
|
border-color: var(--db-accent);
|
|
1157
1749
|
}
|
|
1158
1750
|
|
|
1751
|
+
.db-export-path-row {
|
|
1752
|
+
display: flex;
|
|
1753
|
+
align-items: center;
|
|
1754
|
+
gap: 6px;
|
|
1755
|
+
}
|
|
1756
|
+
|
|
1757
|
+
.db-export-path-input {
|
|
1758
|
+
flex: 1;
|
|
1759
|
+
min-width: 0;
|
|
1760
|
+
box-sizing: border-box;
|
|
1761
|
+
padding: 6px 8px;
|
|
1762
|
+
font-size: 13px;
|
|
1763
|
+
background: var(--db-bg-subtle);
|
|
1764
|
+
color: var(--db-text);
|
|
1765
|
+
border: 1px solid var(--db-border);
|
|
1766
|
+
border-radius: 4px;
|
|
1767
|
+
outline: none;
|
|
1768
|
+
}
|
|
1769
|
+
|
|
1770
|
+
.db-export-path-input:focus {
|
|
1771
|
+
border-color: var(--db-accent);
|
|
1772
|
+
}
|
|
1773
|
+
|
|
1774
|
+
.db-export-path-pick {
|
|
1775
|
+
flex: 0 0 auto;
|
|
1776
|
+
height: 30px;
|
|
1777
|
+
padding: 0 10px;
|
|
1778
|
+
font-size: 13px;
|
|
1779
|
+
font-weight: 600;
|
|
1780
|
+
line-height: 1;
|
|
1781
|
+
color: var(--db-text-secondary);
|
|
1782
|
+
background: var(--db-bg-subtle);
|
|
1783
|
+
border: 1px solid var(--db-border);
|
|
1784
|
+
border-radius: 4px;
|
|
1785
|
+
cursor: pointer;
|
|
1786
|
+
}
|
|
1787
|
+
|
|
1788
|
+
.db-export-path-pick:hover {
|
|
1789
|
+
background: var(--db-bg-hover);
|
|
1790
|
+
}
|
|
1791
|
+
|
|
1792
|
+
.db-export-path-input:disabled,
|
|
1793
|
+
.db-export-path-pick:disabled {
|
|
1794
|
+
opacity: 0.5;
|
|
1795
|
+
cursor: default;
|
|
1796
|
+
}
|
|
1797
|
+
|
|
1159
1798
|
.db-export-hint {
|
|
1160
1799
|
display: block;
|
|
1161
1800
|
margin-top: 3px;
|
|
@@ -1210,12 +1849,13 @@ body.db-resizing-sidebar * {
|
|
|
1210
1849
|
.db-export-chip--active {
|
|
1211
1850
|
background: var(--db-accent);
|
|
1212
1851
|
border-color: var(--db-accent);
|
|
1213
|
-
color:
|
|
1852
|
+
color: var(--db-text-on-accent);
|
|
1214
1853
|
}
|
|
1215
1854
|
|
|
1216
1855
|
.db-export-chip--active:hover {
|
|
1217
1856
|
background: var(--db-accent-hover);
|
|
1218
1857
|
border-color: var(--db-accent-hover);
|
|
1858
|
+
color: var(--db-text-on-accent);
|
|
1219
1859
|
}
|
|
1220
1860
|
|
|
1221
1861
|
.db-export-chip:focus-visible {
|
|
@@ -1257,13 +1897,61 @@ body.db-resizing-sidebar * {
|
|
|
1257
1897
|
|
|
1258
1898
|
.db-export-btn--primary {
|
|
1259
1899
|
background: var(--db-accent);
|
|
1260
|
-
color:
|
|
1900
|
+
color: var(--db-text-on-accent);
|
|
1261
1901
|
border-color: var(--db-accent);
|
|
1262
1902
|
}
|
|
1263
1903
|
|
|
1264
1904
|
.db-export-btn--primary:hover {
|
|
1265
1905
|
background: var(--db-accent-hover);
|
|
1266
1906
|
border-color: var(--db-accent-hover);
|
|
1907
|
+
color: var(--db-text-on-accent);
|
|
1908
|
+
}
|
|
1909
|
+
|
|
1910
|
+
/* Shared-document links intentionally resemble export because they package a
|
|
1911
|
+
bounded Markdown-only DBK; the warning is the critical distinction. */
|
|
1912
|
+
.db-share-dialog {
|
|
1913
|
+
width: 480px;
|
|
1914
|
+
}
|
|
1915
|
+
|
|
1916
|
+
.db-share-warning {
|
|
1917
|
+
margin-bottom: 16px;
|
|
1918
|
+
padding: 10px 12px;
|
|
1919
|
+
color: var(--db-text);
|
|
1920
|
+
background: color-mix(in srgb, var(--db-accent) 12%, var(--db-bg-subtle));
|
|
1921
|
+
border: 1px solid var(--db-accent);
|
|
1922
|
+
border-radius: 5px;
|
|
1923
|
+
}
|
|
1924
|
+
|
|
1925
|
+
.db-share-link {
|
|
1926
|
+
display: block;
|
|
1927
|
+
width: 100%;
|
|
1928
|
+
min-height: 72px;
|
|
1929
|
+
box-sizing: border-box;
|
|
1930
|
+
resize: vertical;
|
|
1931
|
+
padding: 8px;
|
|
1932
|
+
font:
|
|
1933
|
+
11px/1.45 ui-monospace,
|
|
1934
|
+
SFMono-Regular,
|
|
1935
|
+
Consolas,
|
|
1936
|
+
monospace;
|
|
1937
|
+
color: var(--db-text);
|
|
1938
|
+
background: var(--db-bg-subtle);
|
|
1939
|
+
border: 1px solid var(--db-border);
|
|
1940
|
+
border-radius: 4px;
|
|
1941
|
+
outline: none;
|
|
1942
|
+
overflow-wrap: anywhere;
|
|
1943
|
+
}
|
|
1944
|
+
|
|
1945
|
+
.db-share-link:focus {
|
|
1946
|
+
border-color: var(--db-accent);
|
|
1947
|
+
}
|
|
1948
|
+
|
|
1949
|
+
.db-share-length-warning {
|
|
1950
|
+
color: var(--db-danger, #a33a35);
|
|
1951
|
+
}
|
|
1952
|
+
|
|
1953
|
+
.db-share-temporary-note {
|
|
1954
|
+
color: var(--db-text-muted);
|
|
1267
1955
|
}
|
|
1268
1956
|
|
|
1269
1957
|
/* ── Squisq editor chrome separators ─────────────────────────── */
|
|
@@ -1279,7 +1967,7 @@ body.db-resizing-sidebar * {
|
|
|
1279
1967
|
}
|
|
1280
1968
|
|
|
1281
1969
|
.db-shell[data-theme='light'] .squisq-toolbar {
|
|
1282
|
-
background: var(--db-
|
|
1970
|
+
background: var(--db-bg-subtle);
|
|
1283
1971
|
}
|
|
1284
1972
|
|
|
1285
1973
|
.db-shell[data-theme='light'] .squisq-toolbar-view-tabs {
|
|
@@ -1292,7 +1980,26 @@ body.db-resizing-sidebar * {
|
|
|
1292
1980
|
}
|
|
1293
1981
|
|
|
1294
1982
|
.db-shell[data-theme='dark'] .squisq-toolbar-view-tabs {
|
|
1295
|
-
background:
|
|
1983
|
+
background: var(--db-editor-canvas);
|
|
1984
|
+
}
|
|
1985
|
+
|
|
1986
|
+
/* Bind Squisq's host-facing accent to the active DocBlocks appearance. */
|
|
1987
|
+
.db-shell .squisq-editor-shell {
|
|
1988
|
+
--squisq-accent: var(--db-accent);
|
|
1989
|
+
--squisq-accent-hover: var(--db-accent-hover);
|
|
1990
|
+
--squisq-text-on-accent: var(--db-text-on-accent);
|
|
1991
|
+
}
|
|
1992
|
+
|
|
1993
|
+
/* Simple diagrams, drawings, and layout canvases share Squisq's Scene
|
|
1994
|
+
engine. Keep canvas and raised-control surfaces on the same DocBlocks
|
|
1995
|
+
palette instead of falling back to slate. */
|
|
1996
|
+
.db-shell .squisq-editor-shell .squisq-scene-shell {
|
|
1997
|
+
--squisq-surface: var(--db-editor-canvas);
|
|
1998
|
+
--squisq-surface-raised: var(--db-bg-subtle);
|
|
1999
|
+
--squisq-surface-hover: var(--db-bg-hover);
|
|
2000
|
+
--squisq-border: var(--db-border-strong);
|
|
2001
|
+
--squisq-text: var(--db-text);
|
|
2002
|
+
--squisq-text-muted: var(--db-text-muted);
|
|
1296
2003
|
}
|
|
1297
2004
|
|
|
1298
2005
|
/* ── Inline preview gutter: thematic green ──────────────────── */
|
|
@@ -1310,7 +2017,7 @@ body.db-resizing-sidebar * {
|
|
|
1310
2017
|
--squisq-preview-card-border: var(--db-border);
|
|
1311
2018
|
--squisq-preview-card-shadow: 0 1px 2px rgba(40, 30, 15, 0.08);
|
|
1312
2019
|
--squisq-preview-card-title: var(--db-accent-deep);
|
|
1313
|
-
--squisq-preview-card-svg-bg: var(--db-
|
|
2020
|
+
--squisq-preview-card-svg-bg: var(--db-bg-subtle);
|
|
1314
2021
|
--squisq-preview-dot-halo: var(--db-gutter-bg);
|
|
1315
2022
|
--squisq-preview-empty-bg: #ffffff;
|
|
1316
2023
|
--squisq-preview-empty-border: var(--db-border);
|
|
@@ -1355,15 +2062,51 @@ body.db-resizing-sidebar * {
|
|
|
1355
2062
|
}
|
|
1356
2063
|
|
|
1357
2064
|
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-wysiwyg-container {
|
|
1358
|
-
background:
|
|
2065
|
+
background: var(--db-editor-canvas);
|
|
1359
2066
|
}
|
|
1360
2067
|
|
|
1361
2068
|
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-wysiwyg-editor {
|
|
1362
2069
|
background: var(--db-bg);
|
|
1363
2070
|
}
|
|
1364
2071
|
|
|
2072
|
+
/* The WYSIWYG canvas owns its scroll port, so the browser's native light
|
|
2073
|
+
scrollbar otherwise cuts a bright stripe through the dark editor. Keep
|
|
2074
|
+
the track and thumb within the DocBlocks palette; Firefox uses the
|
|
2075
|
+
standard properties while Chromium/Electron use the WebKit pseudo-elements. */
|
|
2076
|
+
.db-shell .squisq-wysiwyg-container {
|
|
2077
|
+
scrollbar-color: var(--db-border-strong) var(--db-bg);
|
|
2078
|
+
scrollbar-width: thin;
|
|
2079
|
+
}
|
|
2080
|
+
|
|
2081
|
+
.db-shell .squisq-wysiwyg-container::-webkit-scrollbar {
|
|
2082
|
+
width: 12px;
|
|
2083
|
+
height: 12px;
|
|
2084
|
+
}
|
|
2085
|
+
|
|
2086
|
+
.db-shell .squisq-wysiwyg-container::-webkit-scrollbar-track,
|
|
2087
|
+
.db-shell .squisq-wysiwyg-container::-webkit-scrollbar-corner {
|
|
2088
|
+
background: var(--db-bg);
|
|
2089
|
+
}
|
|
2090
|
+
|
|
2091
|
+
.db-shell .squisq-wysiwyg-container::-webkit-scrollbar-thumb {
|
|
2092
|
+
min-height: 32px;
|
|
2093
|
+
background: var(--db-border-strong);
|
|
2094
|
+
border: 3px solid var(--db-bg);
|
|
2095
|
+
border-radius: 999px;
|
|
2096
|
+
}
|
|
2097
|
+
|
|
2098
|
+
.db-shell .squisq-wysiwyg-container::-webkit-scrollbar-thumb:hover {
|
|
2099
|
+
background: var(--db-accent);
|
|
2100
|
+
}
|
|
2101
|
+
|
|
2102
|
+
.db-shell .squisq-wysiwyg-container::-webkit-scrollbar-button {
|
|
2103
|
+
display: none;
|
|
2104
|
+
width: 0;
|
|
2105
|
+
height: 0;
|
|
2106
|
+
}
|
|
2107
|
+
|
|
1365
2108
|
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-wysiwyg-editor pre {
|
|
1366
|
-
background:
|
|
2109
|
+
background: var(--db-editor-canvas);
|
|
1367
2110
|
}
|
|
1368
2111
|
|
|
1369
2112
|
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-wysiwyg-editor code {
|
|
@@ -1382,7 +2125,7 @@ body.db-resizing-sidebar * {
|
|
|
1382
2125
|
}
|
|
1383
2126
|
|
|
1384
2127
|
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-preview-codeblock {
|
|
1385
|
-
background:
|
|
2128
|
+
background: var(--db-editor-canvas);
|
|
1386
2129
|
}
|
|
1387
2130
|
|
|
1388
2131
|
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-status-bar {
|
|
@@ -1395,42 +2138,138 @@ body.db-resizing-sidebar * {
|
|
|
1395
2138
|
background: var(--db-bg);
|
|
1396
2139
|
}
|
|
1397
2140
|
|
|
1398
|
-
/*
|
|
2141
|
+
/* Squisq's media bin ships with a fixed blue-slate palette. Bind the full
|
|
2142
|
+
pane to DocBlocks' appearance tokens so its surface and controls follow
|
|
2143
|
+
the selected accent in both light and dark themes. */
|
|
2144
|
+
.db-shell .squisq-editor-shell .squisq-media-bin {
|
|
2145
|
+
background: var(--db-bg-subtle);
|
|
2146
|
+
border-left-color: var(--db-border);
|
|
2147
|
+
color: var(--db-text);
|
|
2148
|
+
scrollbar-color: var(--db-border-strong) var(--db-bg-subtle);
|
|
2149
|
+
}
|
|
1399
2150
|
|
|
1400
|
-
.db-shell
|
|
1401
|
-
color: var(--db-
|
|
1402
|
-
border-bottom-color: var(--db-accent-hover);
|
|
2151
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-header {
|
|
2152
|
+
border-bottom-color: var(--db-border);
|
|
1403
2153
|
}
|
|
1404
2154
|
|
|
1405
|
-
.db-shell
|
|
1406
|
-
|
|
1407
|
-
.squisq-toolbar-view-tab--active {
|
|
1408
|
-
color: var(--db-accent-deep);
|
|
1409
|
-
border-bottom-color: var(--db-accent-hover);
|
|
2155
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-title {
|
|
2156
|
+
color: var(--db-text-secondary);
|
|
1410
2157
|
}
|
|
1411
2158
|
|
|
1412
|
-
.db-shell
|
|
1413
|
-
.squisq-editor-shell[data-theme='dark']
|
|
1414
|
-
.squisq-toolbar-button--active {
|
|
2159
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-upload {
|
|
1415
2160
|
background: var(--db-accent-tint-strong);
|
|
1416
|
-
color: var(--db-
|
|
2161
|
+
border-color: var(--db-border);
|
|
2162
|
+
color: var(--db-text-secondary);
|
|
1417
2163
|
}
|
|
1418
2164
|
|
|
1419
|
-
.db-shell
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
background: var(--db-accent-tint-strong);
|
|
1423
|
-
color: var(--db-accent-deep);
|
|
2165
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-upload:hover {
|
|
2166
|
+
background: var(--db-bg-hover);
|
|
2167
|
+
border-color: var(--db-border-strong);
|
|
1424
2168
|
}
|
|
1425
2169
|
|
|
1426
|
-
.db-shell
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
color: var(--db-accent-hover);
|
|
1430
|
-
background: var(--db-accent-tint-strong);
|
|
2170
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-empty,
|
|
2171
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-size {
|
|
2172
|
+
color: var(--db-text-muted);
|
|
1431
2173
|
}
|
|
1432
2174
|
|
|
1433
|
-
.db-shell
|
|
2175
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-item {
|
|
2176
|
+
border-bottom-color: var(--db-border);
|
|
2177
|
+
color: var(--db-text-secondary);
|
|
2178
|
+
}
|
|
2179
|
+
|
|
2180
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-item:hover,
|
|
2181
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-item:focus-visible {
|
|
2182
|
+
background: var(--db-bg-hover);
|
|
2183
|
+
}
|
|
2184
|
+
|
|
2185
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-item:focus-visible {
|
|
2186
|
+
outline-color: var(--db-accent);
|
|
2187
|
+
}
|
|
2188
|
+
|
|
2189
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-thumb,
|
|
2190
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-icon {
|
|
2191
|
+
background: var(--db-accent-tint-strong);
|
|
2192
|
+
}
|
|
2193
|
+
|
|
2194
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-drop-target {
|
|
2195
|
+
background: color-mix(in srgb, var(--db-bg-subtle) 92%, var(--db-accent));
|
|
2196
|
+
border-color: var(--db-accent);
|
|
2197
|
+
color: var(--db-accent-deep);
|
|
2198
|
+
}
|
|
2199
|
+
|
|
2200
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-drop-target-icon {
|
|
2201
|
+
background: var(--db-accent);
|
|
2202
|
+
color: var(--db-text-on-accent);
|
|
2203
|
+
}
|
|
2204
|
+
|
|
2205
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-drop-target span:last-child {
|
|
2206
|
+
color: var(--db-text-muted);
|
|
2207
|
+
}
|
|
2208
|
+
|
|
2209
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-context-menu {
|
|
2210
|
+
background: var(--db-bg);
|
|
2211
|
+
border-color: var(--db-border);
|
|
2212
|
+
box-shadow: 0 12px 28px var(--db-shadow);
|
|
2213
|
+
}
|
|
2214
|
+
|
|
2215
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-context-menu-item {
|
|
2216
|
+
color: var(--db-text-secondary);
|
|
2217
|
+
}
|
|
2218
|
+
|
|
2219
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-context-menu-item:hover,
|
|
2220
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-context-menu-item:focus-visible {
|
|
2221
|
+
background: var(--db-bg-hover);
|
|
2222
|
+
}
|
|
2223
|
+
|
|
2224
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-context-menu-item--danger {
|
|
2225
|
+
color: var(--db-danger);
|
|
2226
|
+
}
|
|
2227
|
+
|
|
2228
|
+
.db-shell .squisq-editor-shell .squisq-media-bin .squisq-media-bin-context-menu-item--danger:hover,
|
|
2229
|
+
.db-shell
|
|
2230
|
+
.squisq-editor-shell
|
|
2231
|
+
.squisq-media-bin
|
|
2232
|
+
.squisq-media-bin-context-menu-item--danger:focus-visible {
|
|
2233
|
+
background: var(--db-danger-bg);
|
|
2234
|
+
color: var(--db-danger);
|
|
2235
|
+
}
|
|
2236
|
+
|
|
2237
|
+
/* ── Squisq accent override (blue → thematic green) ──────────── */
|
|
2238
|
+
|
|
2239
|
+
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-view-tab--active {
|
|
2240
|
+
color: var(--db-accent-hover);
|
|
2241
|
+
border-bottom-color: var(--db-accent-hover);
|
|
2242
|
+
}
|
|
2243
|
+
|
|
2244
|
+
.db-shell[data-theme='dark']
|
|
2245
|
+
.squisq-editor-shell[data-theme='dark']
|
|
2246
|
+
.squisq-toolbar-view-tab--active {
|
|
2247
|
+
color: var(--db-accent-deep);
|
|
2248
|
+
border-bottom-color: var(--db-accent-hover);
|
|
2249
|
+
}
|
|
2250
|
+
|
|
2251
|
+
.db-shell[data-theme='dark']
|
|
2252
|
+
.squisq-editor-shell[data-theme='dark']
|
|
2253
|
+
.squisq-toolbar-button--active {
|
|
2254
|
+
background: var(--db-accent-tint-strong);
|
|
2255
|
+
color: var(--db-accent-hover);
|
|
2256
|
+
}
|
|
2257
|
+
|
|
2258
|
+
.db-shell[data-theme='dark']
|
|
2259
|
+
.squisq-editor-shell[data-theme='dark']
|
|
2260
|
+
.squisq-toolbar-button--active:hover {
|
|
2261
|
+
background: var(--db-accent-tint-strong);
|
|
2262
|
+
color: var(--db-accent-deep);
|
|
2263
|
+
}
|
|
2264
|
+
|
|
2265
|
+
.db-shell[data-theme='dark']
|
|
2266
|
+
.squisq-editor-shell[data-theme='dark']
|
|
2267
|
+
.squisq-toolbar-overflow-item--active {
|
|
2268
|
+
color: var(--db-accent-hover);
|
|
2269
|
+
background: var(--db-accent-tint-strong);
|
|
2270
|
+
}
|
|
2271
|
+
|
|
2272
|
+
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-wysiwyg-editor a {
|
|
1434
2273
|
color: var(--db-accent-hover);
|
|
1435
2274
|
}
|
|
1436
2275
|
|
|
@@ -1477,10 +2316,17 @@ body.db-resizing-sidebar * {
|
|
|
1477
2316
|
filter: grayscale(1);
|
|
1478
2317
|
}
|
|
1479
2318
|
|
|
1480
|
-
/*
|
|
2319
|
+
/* Keep the block-type and transition triggers on the same DocBlocks surface.
|
|
2320
|
+
The transition trigger has no thumbnail, so give it the block trigger's
|
|
2321
|
+
natural rendered height explicitly. */
|
|
2322
|
+
.db-shell .squisq-editor-shell .squisq-transition-picker-trigger {
|
|
2323
|
+
box-sizing: border-box;
|
|
2324
|
+
height: 29px;
|
|
2325
|
+
}
|
|
2326
|
+
|
|
1481
2327
|
.db-shell[data-theme='dark']
|
|
1482
2328
|
.squisq-editor-shell[data-theme='dark']
|
|
1483
|
-
.squisq-template-picker-trigger {
|
|
2329
|
+
:is(.squisq-template-picker-trigger, .squisq-transition-picker-trigger) {
|
|
1484
2330
|
background: var(--db-bg-subtle);
|
|
1485
2331
|
border-color: var(--db-border);
|
|
1486
2332
|
color: var(--db-text);
|
|
@@ -1488,7 +2334,7 @@ body.db-resizing-sidebar * {
|
|
|
1488
2334
|
|
|
1489
2335
|
.db-shell[data-theme='dark']
|
|
1490
2336
|
.squisq-editor-shell[data-theme='dark']
|
|
1491
|
-
.squisq-template-picker-trigger:hover {
|
|
2337
|
+
:is(.squisq-template-picker-trigger, .squisq-transition-picker-trigger):hover {
|
|
1492
2338
|
background: var(--db-bg-hover);
|
|
1493
2339
|
border-color: var(--db-border-strong);
|
|
1494
2340
|
}
|
|
@@ -1539,20 +2385,21 @@ html:has(.db-shell[data-theme='dark']) .squisq-tooltip {
|
|
|
1539
2385
|
/* The gallery popover renders into document.body via createPortal, so
|
|
1540
2386
|
neither .db-shell nor .squisq-editor-shell are ancestors. We use
|
|
1541
2387
|
`html:has(.db-shell[data-theme='dark'])` to detect docblocks' dark
|
|
1542
|
-
theme from outside the shell, then
|
|
1543
|
-
|
|
2388
|
+
theme from outside the shell, then bind the portaled dialog through
|
|
2389
|
+
Squisq's stable `data-squisq-template-gallery-portal` marker. Dialog
|
|
2390
|
+
and gallery ids are intentionally instance-specific. */
|
|
1544
2391
|
|
|
1545
2392
|
.db-shell[data-theme='dark']
|
|
1546
2393
|
.squisq-editor-shell[data-theme='dark']
|
|
1547
|
-
.squisq-template-picker-trigger--open {
|
|
2394
|
+
:is(.squisq-template-picker-trigger--open, .squisq-transition-picker-trigger--open) {
|
|
1548
2395
|
border-color: var(--db-accent-hover);
|
|
1549
2396
|
outline-color: var(--db-accent-soft-25);
|
|
1550
2397
|
}
|
|
1551
2398
|
|
|
1552
|
-
/* The template gallery
|
|
1553
|
-
so
|
|
1554
|
-
onto the html element (gated by
|
|
1555
|
-
|
|
2399
|
+
/* The template gallery and file-tree context menu render into document.body
|
|
2400
|
+
via createPortal, so they live outside `.db-shell`. Hoist the same
|
|
2401
|
+
brown/canvas tokens onto the html element (gated by the resolved shell
|
|
2402
|
+
theme) so every portaled surface keeps the DocBlocks palette. */
|
|
1556
2403
|
html:has(.db-shell[data-theme='dark']) {
|
|
1557
2404
|
--db-bg: #1a1812;
|
|
1558
2405
|
--db-bg-subtle: #262219;
|
|
@@ -1560,7 +2407,12 @@ html:has(.db-shell[data-theme='dark']) {
|
|
|
1560
2407
|
--db-border: #4d4636;
|
|
1561
2408
|
--db-border-strong: #6b6448;
|
|
1562
2409
|
--db-text: #e8e2d0;
|
|
2410
|
+
--db-text-secondary: #d4ccb0;
|
|
1563
2411
|
--db-text-muted: #a89a7c;
|
|
2412
|
+
--db-danger: #f87171;
|
|
2413
|
+
--db-danger-bg: #1c1917;
|
|
2414
|
+
--db-text-on-danger: #1c1917;
|
|
2415
|
+
--db-shadow: rgba(0, 0, 0, 0.4);
|
|
1564
2416
|
--db-accent: #c8b48f;
|
|
1565
2417
|
--db-accent-hover: #dec79d;
|
|
1566
2418
|
--db-accent-soft-15: rgba(200, 180, 143, 0.18);
|
|
@@ -1576,7 +2428,12 @@ html:has(.db-shell[data-theme='light']) {
|
|
|
1576
2428
|
--db-border: #d6cdb0;
|
|
1577
2429
|
--db-border-strong: #b5a985;
|
|
1578
2430
|
--db-text: #2a2419;
|
|
2431
|
+
--db-text-secondary: #3d3528;
|
|
1579
2432
|
--db-text-muted: #6b614a;
|
|
2433
|
+
--db-danger: #b22b1b;
|
|
2434
|
+
--db-danger-bg: #fdf0ee;
|
|
2435
|
+
--db-text-on-danger: #ffffff;
|
|
2436
|
+
--db-shadow: rgba(40, 30, 15, 0.12);
|
|
1580
2437
|
--db-accent: #7d6948;
|
|
1581
2438
|
--db-accent-hover: #5e4f37;
|
|
1582
2439
|
--db-accent-soft-15: rgba(125, 105, 72, 0.15);
|
|
@@ -1585,6 +2442,641 @@ html:has(.db-shell[data-theme='light']) {
|
|
|
1585
2442
|
--db-gutter-bg: #efe8d4;
|
|
1586
2443
|
}
|
|
1587
2444
|
|
|
2445
|
+
/* Accent variants keep Brown as the untouched default while recoloring the
|
|
2446
|
+
full chrome palette for either appearance. The same tokens are hoisted to
|
|
2447
|
+
`html` so Squisq portals and file-tree menus inherit the active variant. */
|
|
2448
|
+
.db-shell[data-theme='light']:not([data-accent='brown']),
|
|
2449
|
+
html:has(.db-shell[data-theme='light']:not([data-accent='brown'])) {
|
|
2450
|
+
--db-accent-soft-08: rgb(var(--db-accent-rgb) / 8%);
|
|
2451
|
+
--db-accent-soft-10: rgb(var(--db-accent-rgb) / 10%);
|
|
2452
|
+
--db-accent-soft-12: rgb(var(--db-accent-rgb) / 12%);
|
|
2453
|
+
--db-accent-soft-15: rgb(var(--db-accent-rgb) / 15%);
|
|
2454
|
+
--db-accent-soft-25: rgb(var(--db-accent-rgb) / 25%);
|
|
2455
|
+
--db-gallery-backdrop: rgba(30, 30, 30, 0.24);
|
|
2456
|
+
--db-gallery-panel-bg: var(--db-bg);
|
|
2457
|
+
--db-gallery-raised-bg: var(--db-bg);
|
|
2458
|
+
--db-gallery-icon-bg: var(--db-gutter-bg);
|
|
2459
|
+
--db-gallery-new-bg: var(--db-bg-subtle);
|
|
2460
|
+
--db-gallery-placeholder: var(--db-text-muted);
|
|
2461
|
+
}
|
|
2462
|
+
|
|
2463
|
+
.db-shell[data-theme='dark']:not([data-accent='brown']),
|
|
2464
|
+
html:has(.db-shell[data-theme='dark']:not([data-accent='brown'])) {
|
|
2465
|
+
--db-accent-soft-08: rgb(var(--db-accent-rgb) / 8%);
|
|
2466
|
+
--db-accent-soft-10: rgb(var(--db-accent-rgb) / 10%);
|
|
2467
|
+
--db-accent-soft-12: rgb(var(--db-accent-rgb) / 12%);
|
|
2468
|
+
--db-accent-soft-15: rgb(var(--db-accent-rgb) / 18%);
|
|
2469
|
+
--db-accent-soft-25: rgb(var(--db-accent-rgb) / 28%);
|
|
2470
|
+
--db-gallery-backdrop: rgba(0, 0, 0, 0.58);
|
|
2471
|
+
--db-gallery-panel-bg: var(--db-bg);
|
|
2472
|
+
--db-gallery-header-bg: var(--db-editor-canvas);
|
|
2473
|
+
--db-gallery-raised-bg: var(--db-bg-subtle);
|
|
2474
|
+
--db-gallery-icon-bg: var(--db-editor-canvas);
|
|
2475
|
+
--db-gallery-new-bg: var(--db-bg-subtle);
|
|
2476
|
+
--db-gallery-placeholder: var(--db-text-muted);
|
|
2477
|
+
}
|
|
2478
|
+
|
|
2479
|
+
.db-shell[data-theme='light'][data-accent='green'],
|
|
2480
|
+
html:has(.db-shell[data-theme='light'][data-accent='green']) {
|
|
2481
|
+
--db-bg-subtle: #edf4ef;
|
|
2482
|
+
--db-bg-hover: #dfece3;
|
|
2483
|
+
--db-bg-selected: #4f715d;
|
|
2484
|
+
--db-bg-selected-hover: #3d5949;
|
|
2485
|
+
--db-border: #c6d8cb;
|
|
2486
|
+
--db-border-strong: #98b3a1;
|
|
2487
|
+
--db-text: #202a23;
|
|
2488
|
+
--db-text-secondary: #334038;
|
|
2489
|
+
--db-text-muted: #5b6d61;
|
|
2490
|
+
--db-text-placeholder: #69786d;
|
|
2491
|
+
--db-accent-rgb: 79 113 93;
|
|
2492
|
+
--db-accent: #4f715d;
|
|
2493
|
+
--db-accent-hover: #3d5949;
|
|
2494
|
+
--db-accent-tint-strong: #cfe0d3;
|
|
2495
|
+
--db-accent-deep: #284534;
|
|
2496
|
+
--db-gutter-bg: #e5f0e8;
|
|
2497
|
+
--db-input-border: #abc2b1;
|
|
2498
|
+
}
|
|
2499
|
+
|
|
2500
|
+
.db-shell[data-theme='dark'][data-accent='green'],
|
|
2501
|
+
html:has(.db-shell[data-theme='dark'][data-accent='green']) {
|
|
2502
|
+
--db-bg: #121814;
|
|
2503
|
+
--db-bg-subtle: #1c261f;
|
|
2504
|
+
--db-bg-hover: #2b392e;
|
|
2505
|
+
--db-bg-selected: #2b392e;
|
|
2506
|
+
--db-bg-selected-hover: #3a4b3e;
|
|
2507
|
+
--db-border: #3b4e40;
|
|
2508
|
+
--db-border-strong: #5b705f;
|
|
2509
|
+
--db-text: #e2ebe4;
|
|
2510
|
+
--db-text-secondary: #cbd9ce;
|
|
2511
|
+
--db-text-muted: #91a596;
|
|
2512
|
+
--db-text-placeholder: #607267;
|
|
2513
|
+
--db-accent-rgb: 158 194 168;
|
|
2514
|
+
--db-accent: #9ec2a8;
|
|
2515
|
+
--db-accent-hover: #b4d2bc;
|
|
2516
|
+
--db-text-on-accent: #132018;
|
|
2517
|
+
--db-text-on-selected: #e2ebe4;
|
|
2518
|
+
--db-accent-tint-strong: #2f4034;
|
|
2519
|
+
--db-accent-deep: #d4e8d9;
|
|
2520
|
+
--db-gutter-bg: #3b4d40;
|
|
2521
|
+
--db-input-border: #9ec2a8;
|
|
2522
|
+
--db-editor-canvas: #0e1510;
|
|
2523
|
+
--db-badge-bg: #294031;
|
|
2524
|
+
--db-badge-text: #dcf1e2;
|
|
2525
|
+
--db-badge-text-hover: #effaf2;
|
|
2526
|
+
}
|
|
2527
|
+
|
|
2528
|
+
.db-shell[data-theme='light'][data-accent='blue'],
|
|
2529
|
+
html:has(.db-shell[data-theme='light'][data-accent='blue']) {
|
|
2530
|
+
--db-bg-subtle: #eef2f7;
|
|
2531
|
+
--db-bg-hover: #e1e8f0;
|
|
2532
|
+
--db-bg-selected: #526f91;
|
|
2533
|
+
--db-bg-selected-hover: #3c5675;
|
|
2534
|
+
--db-border: #c7d1de;
|
|
2535
|
+
--db-border-strong: #99aabd;
|
|
2536
|
+
--db-text: #202733;
|
|
2537
|
+
--db-text-secondary: #34404e;
|
|
2538
|
+
--db-text-muted: #5d6979;
|
|
2539
|
+
--db-text-placeholder: #6d7886;
|
|
2540
|
+
--db-accent-rgb: 82 111 145;
|
|
2541
|
+
--db-accent: #526f91;
|
|
2542
|
+
--db-accent-hover: #3c5675;
|
|
2543
|
+
--db-accent-tint-strong: #d0dbe7;
|
|
2544
|
+
--db-accent-deep: #293e58;
|
|
2545
|
+
--db-gutter-bg: #e7edf5;
|
|
2546
|
+
--db-input-border: #acb9c9;
|
|
2547
|
+
}
|
|
2548
|
+
|
|
2549
|
+
.db-shell[data-theme='dark'][data-accent='blue'],
|
|
2550
|
+
html:has(.db-shell[data-theme='dark'][data-accent='blue']) {
|
|
2551
|
+
--db-bg: #13171c;
|
|
2552
|
+
--db-bg-subtle: #1c232b;
|
|
2553
|
+
--db-bg-hover: #2a3542;
|
|
2554
|
+
--db-bg-selected: #2a3542;
|
|
2555
|
+
--db-bg-selected-hover: #39495a;
|
|
2556
|
+
--db-border: #3b4a5c;
|
|
2557
|
+
--db-border-strong: #5a6d83;
|
|
2558
|
+
--db-text: #e2e8ef;
|
|
2559
|
+
--db-text-secondary: #cad5e0;
|
|
2560
|
+
--db-text-muted: #8fa0b3;
|
|
2561
|
+
--db-text-placeholder: #5f7083;
|
|
2562
|
+
--db-accent-rgb: 167 189 216;
|
|
2563
|
+
--db-accent: #a7bdd8;
|
|
2564
|
+
--db-accent-hover: #bdd0e5;
|
|
2565
|
+
--db-text-on-accent: #131b24;
|
|
2566
|
+
--db-text-on-selected: #e2e8ef;
|
|
2567
|
+
--db-accent-tint-strong: #2e3b49;
|
|
2568
|
+
--db-accent-deep: #d8e5f2;
|
|
2569
|
+
--db-gutter-bg: #394858;
|
|
2570
|
+
--db-input-border: #a7bdd8;
|
|
2571
|
+
--db-editor-canvas: #0f1318;
|
|
2572
|
+
--db-badge-bg: #28394a;
|
|
2573
|
+
--db-badge-text: #dceaff;
|
|
2574
|
+
--db-badge-text-hover: #edf5ff;
|
|
2575
|
+
}
|
|
2576
|
+
|
|
2577
|
+
.db-shell[data-theme='light'][data-accent='purple'],
|
|
2578
|
+
html:has(.db-shell[data-theme='light'][data-accent='purple']) {
|
|
2579
|
+
--db-bg-subtle: #f3eff6;
|
|
2580
|
+
--db-bg-hover: #e9e1ef;
|
|
2581
|
+
--db-bg-selected: #735b8c;
|
|
2582
|
+
--db-bg-selected-hover: #59436f;
|
|
2583
|
+
--db-border: #d5c8dd;
|
|
2584
|
+
--db-border-strong: #b19cbe;
|
|
2585
|
+
--db-text: #29222e;
|
|
2586
|
+
--db-text-secondary: #403648;
|
|
2587
|
+
--db-text-muted: #6e6075;
|
|
2588
|
+
--db-text-placeholder: #7c6e82;
|
|
2589
|
+
--db-accent-rgb: 115 91 140;
|
|
2590
|
+
--db-accent: #735b8c;
|
|
2591
|
+
--db-accent-hover: #59436f;
|
|
2592
|
+
--db-accent-tint-strong: #ddd0e4;
|
|
2593
|
+
--db-accent-deep: #483252;
|
|
2594
|
+
--db-gutter-bg: #eee7f2;
|
|
2595
|
+
--db-input-border: #c2afcc;
|
|
2596
|
+
}
|
|
2597
|
+
|
|
2598
|
+
.db-shell[data-theme='dark'][data-accent='purple'],
|
|
2599
|
+
html:has(.db-shell[data-theme='dark'][data-accent='purple']) {
|
|
2600
|
+
--db-bg: #18141b;
|
|
2601
|
+
--db-bg-subtle: #251d29;
|
|
2602
|
+
--db-bg-hover: #382c3e;
|
|
2603
|
+
--db-bg-selected: #382c3e;
|
|
2604
|
+
--db-bg-selected-hover: #4b3a53;
|
|
2605
|
+
--db-border: #504057;
|
|
2606
|
+
--db-border-strong: #705b79;
|
|
2607
|
+
--db-text: #ece3ef;
|
|
2608
|
+
--db-text-secondary: #d8cadd;
|
|
2609
|
+
--db-text-muted: #a38fab;
|
|
2610
|
+
--db-text-placeholder: #715f79;
|
|
2611
|
+
--db-accent-rgb: 194 169 212;
|
|
2612
|
+
--db-accent: #c2a9d4;
|
|
2613
|
+
--db-accent-hover: #d6bee3;
|
|
2614
|
+
--db-text-on-accent: #211727;
|
|
2615
|
+
--db-text-on-selected: #ece3ef;
|
|
2616
|
+
--db-accent-tint-strong: #413348;
|
|
2617
|
+
--db-accent-deep: #eadcf1;
|
|
2618
|
+
--db-gutter-bg: #493b50;
|
|
2619
|
+
--db-input-border: #c2a9d4;
|
|
2620
|
+
--db-editor-canvas: #120f15;
|
|
2621
|
+
--db-badge-bg: #3b2a44;
|
|
2622
|
+
--db-badge-text: #f2e2fb;
|
|
2623
|
+
--db-badge-text-hover: #faefff;
|
|
2624
|
+
}
|
|
2625
|
+
|
|
2626
|
+
.db-shell[data-theme='light'][data-accent='maroon'],
|
|
2627
|
+
html:has(.db-shell[data-theme='light'][data-accent='maroon']) {
|
|
2628
|
+
--db-bg-subtle: #f7eff2;
|
|
2629
|
+
--db-bg-hover: #eedfe5;
|
|
2630
|
+
--db-bg-selected: #805365;
|
|
2631
|
+
--db-bg-selected-hover: #643d4d;
|
|
2632
|
+
--db-border: #dec8d0;
|
|
2633
|
+
--db-border-strong: #bd9ba8;
|
|
2634
|
+
--db-text: #2f2227;
|
|
2635
|
+
--db-text-secondary: #49343d;
|
|
2636
|
+
--db-text-muted: #775e68;
|
|
2637
|
+
--db-text-placeholder: #856c75;
|
|
2638
|
+
--db-accent-rgb: 128 83 101;
|
|
2639
|
+
--db-accent: #805365;
|
|
2640
|
+
--db-accent-hover: #643d4d;
|
|
2641
|
+
--db-accent-tint-strong: #e6d0d8;
|
|
2642
|
+
--db-accent-deep: #53303e;
|
|
2643
|
+
--db-gutter-bg: #f2e7eb;
|
|
2644
|
+
--db-input-border: #cdaeb9;
|
|
2645
|
+
}
|
|
2646
|
+
|
|
2647
|
+
.db-shell[data-theme='dark'][data-accent='maroon'],
|
|
2648
|
+
html:has(.db-shell[data-theme='dark'][data-accent='maroon']) {
|
|
2649
|
+
--db-bg: #1b1316;
|
|
2650
|
+
--db-bg-subtle: #291d21;
|
|
2651
|
+
--db-bg-hover: #3d2b31;
|
|
2652
|
+
--db-bg-selected: #3d2b31;
|
|
2653
|
+
--db-bg-selected-hover: #513942;
|
|
2654
|
+
--db-border: #553e46;
|
|
2655
|
+
--db-border-strong: #785b65;
|
|
2656
|
+
--db-text: #f0e3e7;
|
|
2657
|
+
--db-text-secondary: #dccbd1;
|
|
2658
|
+
--db-text-muted: #aa929a;
|
|
2659
|
+
--db-text-placeholder: #765f67;
|
|
2660
|
+
--db-accent-rgb: 208 165 180;
|
|
2661
|
+
--db-accent: #d0a5b4;
|
|
2662
|
+
--db-accent-hover: #e2bac8;
|
|
2663
|
+
--db-text-on-accent: #26171c;
|
|
2664
|
+
--db-text-on-selected: #f0e3e7;
|
|
2665
|
+
--db-accent-tint-strong: #473139;
|
|
2666
|
+
--db-accent-deep: #f0d8e0;
|
|
2667
|
+
--db-gutter-bg: #503b42;
|
|
2668
|
+
--db-input-border: #d0a5b4;
|
|
2669
|
+
--db-editor-canvas: #150e11;
|
|
2670
|
+
--db-badge-bg: #442832;
|
|
2671
|
+
--db-badge-text: #ffe4ec;
|
|
2672
|
+
--db-badge-text-hover: #fff2f6;
|
|
2673
|
+
}
|
|
2674
|
+
|
|
2675
|
+
.db-shell[data-theme='light'][data-accent='orange'],
|
|
2676
|
+
html:has(.db-shell[data-theme='light'][data-accent='orange']) {
|
|
2677
|
+
--db-bg-subtle: #f8f1e9;
|
|
2678
|
+
--db-bg-hover: #f0e4d6;
|
|
2679
|
+
--db-bg-selected: #8a5a32;
|
|
2680
|
+
--db-bg-selected-hover: #6d4323;
|
|
2681
|
+
--db-border: #e0cfbc;
|
|
2682
|
+
--db-border-strong: #c2a282;
|
|
2683
|
+
--db-text: #30271f;
|
|
2684
|
+
--db-text-secondary: #4a3c30;
|
|
2685
|
+
--db-text-muted: #776655;
|
|
2686
|
+
--db-text-placeholder: #857362;
|
|
2687
|
+
--db-accent-rgb: 138 90 50;
|
|
2688
|
+
--db-accent: #8a5a32;
|
|
2689
|
+
--db-accent-hover: #6d4323;
|
|
2690
|
+
--db-accent-tint-strong: #ead8c5;
|
|
2691
|
+
--db-accent-deep: #57371f;
|
|
2692
|
+
--db-gutter-bg: #f3e9de;
|
|
2693
|
+
--db-input-border: #cfb394;
|
|
2694
|
+
}
|
|
2695
|
+
|
|
2696
|
+
.db-shell[data-theme='dark'][data-accent='orange'],
|
|
2697
|
+
html:has(.db-shell[data-theme='dark'][data-accent='orange']) {
|
|
2698
|
+
--db-bg: #1b1611;
|
|
2699
|
+
--db-bg-subtle: #2a2118;
|
|
2700
|
+
--db-bg-hover: #3e3123;
|
|
2701
|
+
--db-bg-selected: #3e3123;
|
|
2702
|
+
--db-bg-selected-hover: #52412f;
|
|
2703
|
+
--db-border: #574634;
|
|
2704
|
+
--db-border-strong: #79654d;
|
|
2705
|
+
--db-text: #f0e7dc;
|
|
2706
|
+
--db-text-secondary: #ddcfbe;
|
|
2707
|
+
--db-text-muted: #aa9883;
|
|
2708
|
+
--db-text-placeholder: #756552;
|
|
2709
|
+
--db-accent-rgb: 215 176 138;
|
|
2710
|
+
--db-accent: #d7b08a;
|
|
2711
|
+
--db-accent-hover: #e8c39e;
|
|
2712
|
+
--db-text-on-accent: #251a11;
|
|
2713
|
+
--db-text-on-selected: #f0e7dc;
|
|
2714
|
+
--db-accent-tint-strong: #493a2a;
|
|
2715
|
+
--db-accent-deep: #f1dbc4;
|
|
2716
|
+
--db-gutter-bg: #514333;
|
|
2717
|
+
--db-input-border: #d7b08a;
|
|
2718
|
+
--db-editor-canvas: #15100c;
|
|
2719
|
+
--db-badge-bg: #44301f;
|
|
2720
|
+
--db-badge-text: #ffe8d1;
|
|
2721
|
+
--db-badge-text-hover: #fff4e8;
|
|
2722
|
+
}
|
|
2723
|
+
|
|
2724
|
+
.db-shell[data-theme='light'][data-accent='gray'],
|
|
2725
|
+
html:has(.db-shell[data-theme='light'][data-accent='gray']) {
|
|
2726
|
+
--db-bg-subtle: #f2f2f2;
|
|
2727
|
+
--db-bg-hover: #e6e6e6;
|
|
2728
|
+
--db-bg-selected: #676767;
|
|
2729
|
+
--db-bg-selected-hover: #505050;
|
|
2730
|
+
--db-border: #d1d1d1;
|
|
2731
|
+
--db-border-strong: #a8a8a8;
|
|
2732
|
+
--db-text: #252525;
|
|
2733
|
+
--db-text-secondary: #3d3d3d;
|
|
2734
|
+
--db-text-muted: #686868;
|
|
2735
|
+
--db-text-placeholder: #777777;
|
|
2736
|
+
--db-accent-rgb: 103 103 103;
|
|
2737
|
+
--db-accent: #676767;
|
|
2738
|
+
--db-accent-hover: #505050;
|
|
2739
|
+
--db-accent-tint-strong: #d8d8d8;
|
|
2740
|
+
--db-accent-deep: #383838;
|
|
2741
|
+
--db-gutter-bg: #ececec;
|
|
2742
|
+
--db-input-border: #b8b8b8;
|
|
2743
|
+
}
|
|
2744
|
+
|
|
2745
|
+
.db-shell[data-theme='dark'][data-accent='gray'],
|
|
2746
|
+
html:has(.db-shell[data-theme='dark'][data-accent='gray']) {
|
|
2747
|
+
--db-bg: #171717;
|
|
2748
|
+
--db-bg-subtle: #242424;
|
|
2749
|
+
--db-bg-hover: #363636;
|
|
2750
|
+
--db-bg-selected: #363636;
|
|
2751
|
+
--db-bg-selected-hover: #484848;
|
|
2752
|
+
--db-border: #494949;
|
|
2753
|
+
--db-border-strong: #686868;
|
|
2754
|
+
--db-text: #e8e8e8;
|
|
2755
|
+
--db-text-secondary: #d1d1d1;
|
|
2756
|
+
--db-text-muted: #9a9a9a;
|
|
2757
|
+
--db-text-placeholder: #696969;
|
|
2758
|
+
--db-accent-rgb: 184 184 184;
|
|
2759
|
+
--db-accent: #b8b8b8;
|
|
2760
|
+
--db-accent-hover: #cecece;
|
|
2761
|
+
--db-text-on-accent: #1b1b1b;
|
|
2762
|
+
--db-text-on-selected: #e8e8e8;
|
|
2763
|
+
--db-accent-tint-strong: #383838;
|
|
2764
|
+
--db-accent-deep: #e2e2e2;
|
|
2765
|
+
--db-gutter-bg: #444444;
|
|
2766
|
+
--db-input-border: #b8b8b8;
|
|
2767
|
+
--db-editor-canvas: #111111;
|
|
2768
|
+
--db-badge-bg: #333333;
|
|
2769
|
+
--db-badge-text: #eeeeee;
|
|
2770
|
+
--db-badge-text-hover: #ffffff;
|
|
2771
|
+
}
|
|
2772
|
+
|
|
2773
|
+
html:has(.db-shell[data-theme='light']:not([data-accent='brown'])) .squisq-tooltip {
|
|
2774
|
+
background: var(--db-accent-deep);
|
|
2775
|
+
color: var(--db-bg-subtle);
|
|
2776
|
+
}
|
|
2777
|
+
|
|
2778
|
+
html:has(.db-shell[data-theme='dark']:not([data-accent='brown'])) .squisq-tooltip {
|
|
2779
|
+
background: var(--db-accent-deep);
|
|
2780
|
+
color: var(--db-bg);
|
|
2781
|
+
}
|
|
2782
|
+
|
|
2783
|
+
html:has(.db-shell[data-theme='dark'])
|
|
2784
|
+
.squisq-template-gallery-dialog[data-theme='dark']:has([data-squisq-template-gallery-portal]) {
|
|
2785
|
+
--squisq-template-gallery-backdrop: var(--db-gallery-backdrop, rgba(18, 14, 9, 0.58));
|
|
2786
|
+
--squisq-template-gallery-panel-bg: var(--db-gallery-panel-bg, var(--db-bg));
|
|
2787
|
+
--squisq-template-gallery-panel-border: var(--db-border);
|
|
2788
|
+
--squisq-template-gallery-header-bg: var(--db-gallery-header-bg, #17130d);
|
|
2789
|
+
--squisq-template-gallery-header-border: var(--db-border);
|
|
2790
|
+
--squisq-template-gallery-title: var(--db-text);
|
|
2791
|
+
--squisq-template-gallery-close-color: var(--db-text-muted);
|
|
2792
|
+
--squisq-template-gallery-close-bg: var(--db-bg-subtle);
|
|
2793
|
+
--squisq-template-gallery-close-border: var(--db-border);
|
|
2794
|
+
--squisq-template-gallery-close-hover-color: var(--db-text);
|
|
2795
|
+
--squisq-template-gallery-close-hover-border: var(--db-accent);
|
|
2796
|
+
--squisq-template-gallery-close-hover-shadow: 0 1px 6px var(--db-accent-soft-15);
|
|
2797
|
+
--squisq-template-gallery-bg: var(--db-bg);
|
|
2798
|
+
--squisq-template-gallery-text: var(--db-text);
|
|
2799
|
+
--squisq-template-gallery-border: var(--db-border);
|
|
2800
|
+
--squisq-template-gallery-search-bg: var(--db-gallery-header-bg, #17130d);
|
|
2801
|
+
--squisq-template-gallery-search-border: var(--db-border);
|
|
2802
|
+
--squisq-template-gallery-search-icon: var(--db-text-muted);
|
|
2803
|
+
--squisq-template-gallery-search-input: var(--db-text);
|
|
2804
|
+
--squisq-template-gallery-search-placeholder: var(--db-gallery-placeholder, #8f8267);
|
|
2805
|
+
--squisq-template-gallery-empty: var(--db-text-muted);
|
|
2806
|
+
--squisq-template-gallery-option-bg: var(--db-bg-subtle);
|
|
2807
|
+
--squisq-template-gallery-option-border: var(--db-border);
|
|
2808
|
+
--squisq-template-gallery-option-hover-bg: var(--db-bg-hover);
|
|
2809
|
+
--squisq-template-gallery-option-hover-border: var(--db-accent);
|
|
2810
|
+
--squisq-template-gallery-option-hover-shadow: 0 1px 5px var(--db-accent-soft-15);
|
|
2811
|
+
--squisq-template-gallery-card-bg: transparent;
|
|
2812
|
+
--squisq-template-gallery-card-border: var(--db-border);
|
|
2813
|
+
--squisq-template-gallery-card-hover-bg: var(--db-bg-hover);
|
|
2814
|
+
--squisq-template-gallery-card-hover-border: var(--db-accent);
|
|
2815
|
+
--squisq-template-gallery-card-hover-shadow: 0 1px 5px var(--db-accent-soft-15);
|
|
2816
|
+
--squisq-template-gallery-selected-bg: var(--db-accent-tint-strong);
|
|
2817
|
+
--squisq-template-gallery-selected-border: var(--db-accent-hover);
|
|
2818
|
+
--squisq-template-gallery-selected-shadow: 0 0 0 2px var(--db-accent-soft-25);
|
|
2819
|
+
--squisq-template-gallery-card-icon-bg: var(--db-gallery-icon-bg, #15120d);
|
|
2820
|
+
--squisq-template-gallery-card-icon-border: var(--db-border);
|
|
2821
|
+
--squisq-template-gallery-content-preview-bg: var(--db-gallery-icon-bg, #15120d);
|
|
2822
|
+
--squisq-template-gallery-name: var(--db-text);
|
|
2823
|
+
--squisq-template-gallery-description: var(--db-text-muted);
|
|
2824
|
+
--squisq-template-gallery-new-bg: var(--db-gallery-new-bg, #2b2418);
|
|
2825
|
+
--squisq-template-gallery-new-border: var(--db-accent);
|
|
2826
|
+
--squisq-template-gallery-new-hover-bg: var(--db-accent-tint-strong);
|
|
2827
|
+
--squisq-template-gallery-new-hover-border: var(--db-accent-hover);
|
|
2828
|
+
--squisq-template-gallery-new-plus-color: var(--db-accent-hover);
|
|
2829
|
+
--squisq-template-gallery-new-plus-bg: var(--db-gallery-header-bg, #17130d);
|
|
2830
|
+
--squisq-template-gallery-new-plus-border: var(--db-accent);
|
|
2831
|
+
--squisq-template-gallery-new-label: var(--db-text);
|
|
2832
|
+
--squisq-template-gallery-new-desc: var(--db-text-muted);
|
|
2833
|
+
--squisq-template-gallery-section-border: var(--db-border);
|
|
2834
|
+
--squisq-template-gallery-section-title: var(--db-text);
|
|
2835
|
+
}
|
|
2836
|
+
|
|
2837
|
+
html:has(.db-shell[data-theme='light'])
|
|
2838
|
+
.squisq-template-gallery-dialog[data-theme='light']:has([data-squisq-template-gallery-portal]) {
|
|
2839
|
+
--squisq-template-gallery-backdrop: var(--db-gallery-backdrop, rgba(42, 36, 25, 0.24));
|
|
2840
|
+
--squisq-template-gallery-panel-bg: var(--db-gallery-panel-bg, #fffdf7);
|
|
2841
|
+
--squisq-template-gallery-panel-border: var(--db-border);
|
|
2842
|
+
--squisq-template-gallery-header-bg: var(--db-bg-subtle);
|
|
2843
|
+
--squisq-template-gallery-header-border: var(--db-border);
|
|
2844
|
+
--squisq-template-gallery-title: var(--db-text);
|
|
2845
|
+
--squisq-template-gallery-close-color: var(--db-text-muted);
|
|
2846
|
+
--squisq-template-gallery-close-bg: var(--db-gallery-raised-bg, #fffaf0);
|
|
2847
|
+
--squisq-template-gallery-close-border: var(--db-border);
|
|
2848
|
+
--squisq-template-gallery-close-hover-color: var(--db-text);
|
|
2849
|
+
--squisq-template-gallery-close-hover-border: var(--db-accent);
|
|
2850
|
+
--squisq-template-gallery-close-hover-shadow: 0 1px 4px var(--db-accent-soft-15);
|
|
2851
|
+
--squisq-template-gallery-bg: var(--db-gallery-panel-bg, #fffdf7);
|
|
2852
|
+
--squisq-template-gallery-text: var(--db-text);
|
|
2853
|
+
--squisq-template-gallery-border: var(--db-border);
|
|
2854
|
+
--squisq-template-gallery-search-bg: var(--db-bg-subtle);
|
|
2855
|
+
--squisq-template-gallery-search-border: var(--db-border);
|
|
2856
|
+
--squisq-template-gallery-search-icon: var(--db-text-muted);
|
|
2857
|
+
--squisq-template-gallery-search-input: var(--db-text);
|
|
2858
|
+
--squisq-template-gallery-search-placeholder: var(--db-gallery-placeholder, #8b8065);
|
|
2859
|
+
--squisq-template-gallery-empty: var(--db-text-muted);
|
|
2860
|
+
--squisq-template-gallery-option-bg: var(--db-gallery-raised-bg, #fffaf0);
|
|
2861
|
+
--squisq-template-gallery-option-border: var(--db-border);
|
|
2862
|
+
--squisq-template-gallery-option-hover-bg: var(--db-bg-hover);
|
|
2863
|
+
--squisq-template-gallery-option-hover-border: var(--db-accent);
|
|
2864
|
+
--squisq-template-gallery-option-hover-shadow: 0 1px 3px var(--db-accent-soft-15);
|
|
2865
|
+
--squisq-template-gallery-card-bg: transparent;
|
|
2866
|
+
--squisq-template-gallery-card-border: var(--db-border);
|
|
2867
|
+
--squisq-template-gallery-card-hover-bg: var(--db-bg-subtle);
|
|
2868
|
+
--squisq-template-gallery-card-hover-border: var(--db-accent);
|
|
2869
|
+
--squisq-template-gallery-card-hover-shadow: 0 1px 4px var(--db-accent-soft-15);
|
|
2870
|
+
--squisq-template-gallery-selected-bg: var(--db-bg-hover);
|
|
2871
|
+
--squisq-template-gallery-selected-border: var(--db-accent);
|
|
2872
|
+
--squisq-template-gallery-selected-shadow: 0 0 0 2px var(--db-accent-soft-15);
|
|
2873
|
+
--squisq-template-gallery-card-icon-bg: var(--db-gallery-icon-bg, #f6f0df);
|
|
2874
|
+
--squisq-template-gallery-card-icon-border: var(--db-border);
|
|
2875
|
+
--squisq-template-gallery-content-preview-bg: var(--db-gallery-icon-bg, #f6f0df);
|
|
2876
|
+
--squisq-template-gallery-name: var(--db-text);
|
|
2877
|
+
--squisq-template-gallery-description: var(--db-text-muted);
|
|
2878
|
+
--squisq-template-gallery-new-bg: var(--db-gallery-new-bg, #f1ead6);
|
|
2879
|
+
--squisq-template-gallery-new-border: var(--db-border-strong);
|
|
2880
|
+
--squisq-template-gallery-new-hover-bg: var(--db-bg-hover);
|
|
2881
|
+
--squisq-template-gallery-new-hover-border: var(--db-accent);
|
|
2882
|
+
--squisq-template-gallery-new-plus-color: var(--db-accent-hover);
|
|
2883
|
+
--squisq-template-gallery-new-plus-bg: var(--db-gallery-raised-bg, #fffaf0);
|
|
2884
|
+
--squisq-template-gallery-new-plus-border: var(--db-border-strong);
|
|
2885
|
+
--squisq-template-gallery-new-label: var(--db-text);
|
|
2886
|
+
--squisq-template-gallery-new-desc: var(--db-text-muted);
|
|
2887
|
+
--squisq-template-gallery-section-border: var(--db-border);
|
|
2888
|
+
--squisq-template-gallery-section-title: var(--db-text);
|
|
2889
|
+
}
|
|
2890
|
+
|
|
2891
|
+
html:has(.db-shell) #squisq-template-gallery-dialog.squisq-template-gallery-dialog {
|
|
2892
|
+
background: var(--squisq-template-gallery-backdrop);
|
|
2893
|
+
backdrop-filter: blur(var(--squisq-template-gallery-backdrop-blur, 2px));
|
|
2894
|
+
}
|
|
2895
|
+
|
|
2896
|
+
html:has(.db-shell)
|
|
2897
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2898
|
+
.squisq-template-gallery-dialog-panel {
|
|
2899
|
+
background: var(--squisq-template-gallery-panel-bg);
|
|
2900
|
+
border-color: var(--squisq-template-gallery-panel-border);
|
|
2901
|
+
}
|
|
2902
|
+
|
|
2903
|
+
html:has(.db-shell)
|
|
2904
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2905
|
+
.squisq-template-gallery-dialog-header {
|
|
2906
|
+
background: var(--squisq-template-gallery-header-bg);
|
|
2907
|
+
border-bottom-color: var(--squisq-template-gallery-header-border);
|
|
2908
|
+
}
|
|
2909
|
+
|
|
2910
|
+
html:has(.db-shell)
|
|
2911
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2912
|
+
.squisq-template-gallery-dialog-title {
|
|
2913
|
+
color: var(--squisq-template-gallery-title);
|
|
2914
|
+
}
|
|
2915
|
+
|
|
2916
|
+
html:has(.db-shell)
|
|
2917
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2918
|
+
.squisq-template-gallery-dialog-close {
|
|
2919
|
+
color: var(--squisq-template-gallery-close-color);
|
|
2920
|
+
background: var(--squisq-template-gallery-close-bg);
|
|
2921
|
+
border-color: var(--squisq-template-gallery-close-border);
|
|
2922
|
+
}
|
|
2923
|
+
|
|
2924
|
+
html:has(.db-shell)
|
|
2925
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2926
|
+
.squisq-template-gallery-dialog-close:hover {
|
|
2927
|
+
color: var(--squisq-template-gallery-close-hover-color);
|
|
2928
|
+
border-color: var(--squisq-template-gallery-close-hover-border);
|
|
2929
|
+
box-shadow: var(--squisq-template-gallery-close-hover-shadow);
|
|
2930
|
+
}
|
|
2931
|
+
|
|
2932
|
+
html:has(.db-shell)
|
|
2933
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2934
|
+
.squisq-template-gallery {
|
|
2935
|
+
background: var(--squisq-template-gallery-bg);
|
|
2936
|
+
color: var(--squisq-template-gallery-text);
|
|
2937
|
+
}
|
|
2938
|
+
|
|
2939
|
+
html:has(.db-shell)
|
|
2940
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2941
|
+
.squisq-template-gallery-search {
|
|
2942
|
+
background: var(--squisq-template-gallery-search-bg);
|
|
2943
|
+
border-bottom-color: var(--squisq-template-gallery-search-border);
|
|
2944
|
+
}
|
|
2945
|
+
|
|
2946
|
+
html:has(.db-shell)
|
|
2947
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2948
|
+
.squisq-template-gallery-search-icon {
|
|
2949
|
+
color: var(--squisq-template-gallery-search-icon);
|
|
2950
|
+
}
|
|
2951
|
+
|
|
2952
|
+
html:has(.db-shell)
|
|
2953
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2954
|
+
.squisq-template-gallery-search-input {
|
|
2955
|
+
color: var(--squisq-template-gallery-search-input);
|
|
2956
|
+
}
|
|
2957
|
+
|
|
2958
|
+
html:has(.db-shell)
|
|
2959
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2960
|
+
.squisq-template-gallery-search-input::placeholder {
|
|
2961
|
+
color: var(--squisq-template-gallery-search-placeholder);
|
|
2962
|
+
}
|
|
2963
|
+
|
|
2964
|
+
html:has(.db-shell)
|
|
2965
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2966
|
+
.squisq-template-gallery-none {
|
|
2967
|
+
background: var(--squisq-template-gallery-option-bg);
|
|
2968
|
+
border-color: var(--squisq-template-gallery-option-border);
|
|
2969
|
+
}
|
|
2970
|
+
|
|
2971
|
+
html:has(.db-shell)
|
|
2972
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2973
|
+
.squisq-template-gallery-none:hover {
|
|
2974
|
+
background: var(--squisq-template-gallery-option-hover-bg);
|
|
2975
|
+
border-color: var(--squisq-template-gallery-option-hover-border);
|
|
2976
|
+
box-shadow: var(--squisq-template-gallery-option-hover-shadow);
|
|
2977
|
+
}
|
|
2978
|
+
|
|
2979
|
+
html:has(.db-shell)
|
|
2980
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2981
|
+
.squisq-template-gallery-none.squisq-template-gallery-card--selected,
|
|
2982
|
+
html:has(.db-shell)
|
|
2983
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2984
|
+
.squisq-template-gallery-card--selected {
|
|
2985
|
+
background: var(--squisq-template-gallery-selected-bg);
|
|
2986
|
+
border-color: var(--squisq-template-gallery-selected-border);
|
|
2987
|
+
box-shadow: var(--squisq-template-gallery-selected-shadow);
|
|
2988
|
+
}
|
|
2989
|
+
|
|
2990
|
+
html:has(.db-shell)
|
|
2991
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2992
|
+
.squisq-template-gallery-none-label {
|
|
2993
|
+
color: var(--squisq-template-gallery-section-title);
|
|
2994
|
+
}
|
|
2995
|
+
|
|
2996
|
+
html:has(.db-shell)
|
|
2997
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
2998
|
+
.squisq-template-gallery-none-desc,
|
|
2999
|
+
html:has(.db-shell)
|
|
3000
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
3001
|
+
.squisq-template-gallery-card-desc,
|
|
3002
|
+
html:has(.db-shell)
|
|
3003
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
3004
|
+
.squisq-template-gallery-new-desc {
|
|
3005
|
+
color: var(--squisq-template-gallery-description);
|
|
3006
|
+
}
|
|
3007
|
+
|
|
3008
|
+
html:has(.db-shell)
|
|
3009
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
3010
|
+
.squisq-template-gallery-card {
|
|
3011
|
+
background: var(--squisq-template-gallery-card-bg);
|
|
3012
|
+
border-color: var(--squisq-template-gallery-card-border);
|
|
3013
|
+
}
|
|
3014
|
+
|
|
3015
|
+
html:has(.db-shell)
|
|
3016
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
3017
|
+
.squisq-template-gallery-card:hover {
|
|
3018
|
+
background: var(--squisq-template-gallery-card-hover-bg);
|
|
3019
|
+
border-color: var(--squisq-template-gallery-card-hover-border);
|
|
3020
|
+
box-shadow: var(--squisq-template-gallery-card-hover-shadow);
|
|
3021
|
+
}
|
|
3022
|
+
|
|
3023
|
+
html:has(.db-shell)
|
|
3024
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
3025
|
+
.squisq-template-gallery-card-icon {
|
|
3026
|
+
background: var(--squisq-template-gallery-card-icon-bg);
|
|
3027
|
+
border-color: var(--squisq-template-gallery-card-icon-border);
|
|
3028
|
+
}
|
|
3029
|
+
|
|
3030
|
+
html:has(.db-shell)
|
|
3031
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
3032
|
+
.squisq-template-gallery-content-preview {
|
|
3033
|
+
background: var(--squisq-template-gallery-content-preview-bg);
|
|
3034
|
+
}
|
|
3035
|
+
|
|
3036
|
+
html:has(.db-shell)
|
|
3037
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
3038
|
+
.squisq-template-gallery-card-name,
|
|
3039
|
+
html:has(.db-shell)
|
|
3040
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
3041
|
+
.squisq-template-gallery-new-label {
|
|
3042
|
+
color: var(--squisq-template-gallery-name);
|
|
3043
|
+
}
|
|
3044
|
+
|
|
3045
|
+
html:has(.db-shell)
|
|
3046
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
3047
|
+
.squisq-template-gallery-new {
|
|
3048
|
+
background: var(--squisq-template-gallery-new-bg);
|
|
3049
|
+
border-color: var(--squisq-template-gallery-new-border);
|
|
3050
|
+
}
|
|
3051
|
+
|
|
3052
|
+
html:has(.db-shell)
|
|
3053
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
3054
|
+
.squisq-template-gallery-new:hover {
|
|
3055
|
+
background: var(--squisq-template-gallery-new-hover-bg);
|
|
3056
|
+
border-color: var(--squisq-template-gallery-new-hover-border);
|
|
3057
|
+
}
|
|
3058
|
+
|
|
3059
|
+
html:has(.db-shell)
|
|
3060
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
3061
|
+
.squisq-template-gallery-new-plus {
|
|
3062
|
+
color: var(--squisq-template-gallery-new-plus-color);
|
|
3063
|
+
background: var(--squisq-template-gallery-new-plus-bg);
|
|
3064
|
+
border-color: var(--squisq-template-gallery-new-plus-border);
|
|
3065
|
+
}
|
|
3066
|
+
|
|
3067
|
+
html:has(.db-shell)
|
|
3068
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
3069
|
+
.squisq-template-gallery-section
|
|
3070
|
+
+ .squisq-template-gallery-section {
|
|
3071
|
+
border-top-color: var(--squisq-template-gallery-section-border);
|
|
3072
|
+
}
|
|
3073
|
+
|
|
3074
|
+
html:has(.db-shell)
|
|
3075
|
+
#squisq-template-gallery-dialog.squisq-template-gallery-dialog
|
|
3076
|
+
.squisq-template-gallery-section-title {
|
|
3077
|
+
color: var(--squisq-template-gallery-section-title);
|
|
3078
|
+
}
|
|
3079
|
+
|
|
1588
3080
|
html:has(.db-shell[data-theme='dark']) #squisq-template-gallery-portal {
|
|
1589
3081
|
background: var(--db-bg-subtle);
|
|
1590
3082
|
border-color: var(--db-border);
|
|
@@ -1679,7 +3171,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
1679
3171
|
|
|
1680
3172
|
.db-shell[data-theme='light']
|
|
1681
3173
|
.squisq-editor-shell[data-theme='light']
|
|
1682
|
-
.squisq-template-picker-trigger--open {
|
|
3174
|
+
:is(.squisq-template-picker-trigger--open, .squisq-transition-picker-trigger--open) {
|
|
1683
3175
|
border-color: var(--db-accent);
|
|
1684
3176
|
outline-color: var(--db-accent-soft-25);
|
|
1685
3177
|
}
|
|
@@ -1694,7 +3186,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
1694
3186
|
.db-shell[data-theme='light']
|
|
1695
3187
|
.squisq-editor-shell[data-theme='light']
|
|
1696
3188
|
.squisq-template-gallery-card--selected {
|
|
1697
|
-
background: var(--db-
|
|
3189
|
+
background: var(--db-bg-subtle);
|
|
1698
3190
|
border-color: var(--db-accent);
|
|
1699
3191
|
box-shadow: 0 0 0 2px var(--db-accent-soft-15);
|
|
1700
3192
|
}
|
|
@@ -1702,7 +3194,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
1702
3194
|
.db-shell[data-theme='light']
|
|
1703
3195
|
.squisq-editor-shell[data-theme='light']
|
|
1704
3196
|
.squisq-template-gallery-none.squisq-template-gallery-card--selected {
|
|
1705
|
-
background: var(--db-
|
|
3197
|
+
background: var(--db-bg-subtle);
|
|
1706
3198
|
border-color: var(--db-accent-tint-strong);
|
|
1707
3199
|
}
|
|
1708
3200
|
|
|
@@ -1713,27 +3205,189 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
1713
3205
|
fill: var(--db-accent);
|
|
1714
3206
|
}
|
|
1715
3207
|
|
|
1716
|
-
/* ──
|
|
3208
|
+
/* ── Squisq block tags: high-contrast DocBlocks palette ─────── */
|
|
1717
3209
|
|
|
1718
|
-
.db-shell .squisq-template-badge
|
|
3210
|
+
.db-shell .squisq-template-badge,
|
|
3211
|
+
.db-shell .squisq-props-badge {
|
|
1719
3212
|
font-family: inherit;
|
|
3213
|
+
opacity: 1;
|
|
3214
|
+
}
|
|
3215
|
+
|
|
3216
|
+
.db-shell .squisq-props-badge {
|
|
3217
|
+
transform: none;
|
|
3218
|
+
}
|
|
3219
|
+
|
|
3220
|
+
.db-shell .squisq-template-badge-core::after {
|
|
3221
|
+
opacity: 0.82;
|
|
3222
|
+
}
|
|
3223
|
+
|
|
3224
|
+
.db-shell .squisq-template-badge::before,
|
|
3225
|
+
.db-shell .squisq-template-badge::after {
|
|
3226
|
+
min-height: 20px;
|
|
3227
|
+
font-size: 20px;
|
|
3228
|
+
font-weight: 400;
|
|
3229
|
+
opacity: 0.42;
|
|
1720
3230
|
}
|
|
1721
3231
|
|
|
1722
3232
|
.db-shell[data-theme='light'] .squisq-template-badge {
|
|
1723
|
-
color:
|
|
1724
|
-
|
|
1725
|
-
|
|
3233
|
+
color: var(--db-accent-hover);
|
|
3234
|
+
}
|
|
3235
|
+
|
|
3236
|
+
.db-shell[data-theme='light'] .squisq-template-badge::before,
|
|
3237
|
+
.db-shell[data-theme='light'] .squisq-template-badge::after {
|
|
3238
|
+
color: var(--db-text-muted);
|
|
3239
|
+
}
|
|
3240
|
+
|
|
3241
|
+
.db-shell[data-theme='light'] .squisq-template-badge-core {
|
|
3242
|
+
color: var(--db-accent-deep);
|
|
3243
|
+
background: var(--db-bg-subtle);
|
|
3244
|
+
border-color: var(--db-border-strong);
|
|
3245
|
+
}
|
|
3246
|
+
|
|
3247
|
+
.db-shell[data-theme='light'] .squisq-template-badge:hover .squisq-template-badge-core,
|
|
3248
|
+
.db-shell[data-theme='light'] .squisq-template-badge:focus-visible .squisq-template-badge-core {
|
|
3249
|
+
color: var(--db-text);
|
|
3250
|
+
background: var(--db-bg-hover);
|
|
3251
|
+
border-color: var(--db-accent);
|
|
3252
|
+
box-shadow: 0 0 0 2px var(--db-accent-soft-15);
|
|
3253
|
+
}
|
|
3254
|
+
|
|
3255
|
+
.db-shell[data-theme='light'] .squisq-template-badge.squisq-template-badge--empty {
|
|
3256
|
+
color: var(--db-text-muted);
|
|
3257
|
+
opacity: 1;
|
|
3258
|
+
}
|
|
3259
|
+
|
|
3260
|
+
.db-shell[data-theme='light']
|
|
3261
|
+
.squisq-template-badge.squisq-template-badge--empty
|
|
3262
|
+
.squisq-template-badge-core {
|
|
3263
|
+
color: var(--db-accent-hover);
|
|
3264
|
+
background: var(--db-accent-soft-08);
|
|
3265
|
+
border-color: var(--db-border-strong);
|
|
3266
|
+
border-style: dashed;
|
|
3267
|
+
}
|
|
3268
|
+
|
|
3269
|
+
.db-shell[data-theme='light']
|
|
3270
|
+
.squisq-template-badge.squisq-template-badge--empty:hover
|
|
3271
|
+
.squisq-template-badge-core,
|
|
3272
|
+
.db-shell[data-theme='light']
|
|
3273
|
+
.squisq-template-badge.squisq-template-badge--empty:focus-visible
|
|
3274
|
+
.squisq-template-badge-core {
|
|
3275
|
+
color: var(--db-text);
|
|
3276
|
+
background: var(--db-bg-hover);
|
|
3277
|
+
border-color: var(--db-accent);
|
|
3278
|
+
border-style: solid;
|
|
3279
|
+
box-shadow: 0 0 0 2px var(--db-accent-soft-15);
|
|
3280
|
+
}
|
|
3281
|
+
|
|
3282
|
+
.db-shell[data-theme='light'] .squisq-props-badge {
|
|
3283
|
+
color: var(--db-accent-hover);
|
|
3284
|
+
background: var(--db-accent-soft-08);
|
|
3285
|
+
border-color: var(--db-border-strong);
|
|
3286
|
+
}
|
|
3287
|
+
|
|
3288
|
+
.db-shell[data-theme='light'] .squisq-props-badge[data-props-summary] {
|
|
3289
|
+
color: var(--db-accent-deep);
|
|
3290
|
+
background: var(--db-bg-subtle);
|
|
3291
|
+
border-color: var(--db-accent);
|
|
3292
|
+
}
|
|
3293
|
+
|
|
3294
|
+
.db-shell[data-theme='light'] .squisq-props-badge:hover,
|
|
3295
|
+
.db-shell[data-theme='light'] .squisq-props-badge:focus-visible {
|
|
3296
|
+
color: var(--db-text);
|
|
3297
|
+
background: var(--db-bg-hover);
|
|
3298
|
+
border-color: var(--db-accent);
|
|
3299
|
+
box-shadow: 0 0 0 2px var(--db-accent-soft-15);
|
|
1726
3300
|
}
|
|
1727
3301
|
|
|
1728
3302
|
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-template-badge {
|
|
1729
|
-
color:
|
|
1730
|
-
|
|
1731
|
-
|
|
3303
|
+
color: var(--db-accent-hover);
|
|
3304
|
+
}
|
|
3305
|
+
|
|
3306
|
+
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-template-badge::before,
|
|
3307
|
+
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-template-badge::after {
|
|
3308
|
+
color: var(--db-text-muted);
|
|
3309
|
+
opacity: 0.48;
|
|
3310
|
+
}
|
|
3311
|
+
|
|
3312
|
+
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-template-badge-core {
|
|
3313
|
+
color: var(--db-badge-text);
|
|
3314
|
+
background: var(--db-badge-bg);
|
|
3315
|
+
border-color: var(--db-accent);
|
|
3316
|
+
}
|
|
3317
|
+
|
|
3318
|
+
.db-shell[data-theme='dark']
|
|
3319
|
+
.squisq-editor-shell[data-theme='dark']
|
|
3320
|
+
.squisq-template-badge:hover
|
|
3321
|
+
.squisq-template-badge-core,
|
|
3322
|
+
.db-shell[data-theme='dark']
|
|
3323
|
+
.squisq-editor-shell[data-theme='dark']
|
|
3324
|
+
.squisq-template-badge:focus-visible
|
|
3325
|
+
.squisq-template-badge-core {
|
|
3326
|
+
color: var(--db-badge-text-hover);
|
|
3327
|
+
background: var(--db-bg-hover);
|
|
3328
|
+
border-color: var(--db-accent-hover);
|
|
3329
|
+
box-shadow: 0 0 0 2px var(--db-accent-soft-25);
|
|
3330
|
+
}
|
|
3331
|
+
|
|
3332
|
+
.db-shell[data-theme='dark']
|
|
3333
|
+
.squisq-editor-shell[data-theme='dark']
|
|
3334
|
+
.squisq-template-badge.squisq-template-badge--empty {
|
|
3335
|
+
color: var(--db-text-secondary);
|
|
3336
|
+
opacity: 1;
|
|
3337
|
+
}
|
|
3338
|
+
|
|
3339
|
+
.db-shell[data-theme='dark']
|
|
3340
|
+
.squisq-editor-shell[data-theme='dark']
|
|
3341
|
+
.squisq-template-badge.squisq-template-badge--empty
|
|
3342
|
+
.squisq-template-badge-core {
|
|
3343
|
+
color: var(--db-text-secondary);
|
|
3344
|
+
background: var(--db-accent-soft-10);
|
|
3345
|
+
border-color: var(--db-border-strong);
|
|
3346
|
+
border-style: dashed;
|
|
3347
|
+
}
|
|
3348
|
+
|
|
3349
|
+
.db-shell[data-theme='dark']
|
|
3350
|
+
.squisq-editor-shell[data-theme='dark']
|
|
3351
|
+
.squisq-template-badge.squisq-template-badge--empty:hover
|
|
3352
|
+
.squisq-template-badge-core,
|
|
3353
|
+
.db-shell[data-theme='dark']
|
|
3354
|
+
.squisq-editor-shell[data-theme='dark']
|
|
3355
|
+
.squisq-template-badge.squisq-template-badge--empty:focus-visible
|
|
3356
|
+
.squisq-template-badge-core {
|
|
3357
|
+
color: var(--db-badge-text-hover);
|
|
3358
|
+
background: var(--db-bg-hover);
|
|
3359
|
+
border-color: var(--db-accent-hover);
|
|
3360
|
+
border-style: solid;
|
|
3361
|
+
box-shadow: 0 0 0 2px var(--db-accent-soft-25);
|
|
3362
|
+
}
|
|
3363
|
+
|
|
3364
|
+
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-props-badge {
|
|
3365
|
+
color: var(--db-text-secondary);
|
|
3366
|
+
background: var(--db-accent-soft-10);
|
|
3367
|
+
border-color: var(--db-border-strong);
|
|
3368
|
+
}
|
|
3369
|
+
|
|
3370
|
+
.db-shell[data-theme='dark']
|
|
3371
|
+
.squisq-editor-shell[data-theme='dark']
|
|
3372
|
+
.squisq-props-badge[data-props-summary] {
|
|
3373
|
+
color: var(--db-badge-text);
|
|
3374
|
+
background: var(--db-bg-hover);
|
|
3375
|
+
border-color: var(--db-accent);
|
|
3376
|
+
}
|
|
3377
|
+
|
|
3378
|
+
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-props-badge:hover,
|
|
3379
|
+
.db-shell[data-theme='dark']
|
|
3380
|
+
.squisq-editor-shell[data-theme='dark']
|
|
3381
|
+
.squisq-props-badge:focus-visible {
|
|
3382
|
+
color: var(--db-badge-text-hover);
|
|
3383
|
+
background: var(--db-bg-selected-hover);
|
|
3384
|
+
border-color: var(--db-accent-hover);
|
|
3385
|
+
box-shadow: 0 0 0 2px var(--db-accent-soft-25);
|
|
1732
3386
|
}
|
|
1733
3387
|
|
|
1734
3388
|
/* Light mode squisq surfaces (toolbar, header, status bar) */
|
|
1735
3389
|
.db-shell[data-theme='light'] .squisq-editor-shell[data-theme='light'] .squisq-editor-header {
|
|
1736
|
-
background: var(--db-
|
|
3390
|
+
background: var(--db-bg-subtle);
|
|
1737
3391
|
border-bottom-color: var(--db-border-strong);
|
|
1738
3392
|
}
|
|
1739
3393
|
|
|
@@ -1741,7 +3395,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
1741
3395
|
mode-switcher tabs on its left, so the cluster of buttons fades
|
|
1742
3396
|
into the canvas while the mode switcher reads as the anchor. */
|
|
1743
3397
|
.db-shell[data-theme='light'] .squisq-editor-shell[data-theme='light'] .squisq-toolbar {
|
|
1744
|
-
background: var(--db-
|
|
3398
|
+
background: var(--db-bg-subtle);
|
|
1745
3399
|
}
|
|
1746
3400
|
|
|
1747
3401
|
.db-shell[data-theme='light'] .squisq-editor-shell[data-theme='light'] .squisq-toolbar-view-tabs {
|
|
@@ -1756,7 +3410,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
1756
3410
|
|
|
1757
3411
|
/* Status bar "✓ OK" indicator — squisq paints this in saturated emerald
|
|
1758
3412
|
(#059669 light, #34d399 dark). Re-tone to the sage accent so the
|
|
1759
|
-
|
|
3413
|
+
status indicator harmonizes with the rest of the chrome. */
|
|
1760
3414
|
.db-shell .squisq-status-ok {
|
|
1761
3415
|
color: var(--db-accent);
|
|
1762
3416
|
}
|
|
@@ -1765,6 +3419,10 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
1765
3419
|
color: var(--db-accent-hover);
|
|
1766
3420
|
}
|
|
1767
3421
|
|
|
3422
|
+
.db-autosave-pending {
|
|
3423
|
+
opacity: 0.62;
|
|
3424
|
+
}
|
|
3425
|
+
|
|
1768
3426
|
/* Outline pane (left of the editor) — squisq paints a warm beige
|
|
1769
3427
|
(#dcd8d0 light / dark slate in dark mode). Re-tone to `--db-gutter-bg`
|
|
1770
3428
|
so it matches the inline-preview gutter on the right and reads as
|
|
@@ -1799,18 +3457,107 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
1799
3457
|
border-left: 1px solid var(--db-border-strong);
|
|
1800
3458
|
}
|
|
1801
3459
|
|
|
1802
|
-
/*
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
3460
|
+
/* Toolbar overflow menu. Squisq intentionally ships a neutral slate
|
|
3461
|
+
palette; inside DocBlocks this popover should use the same surfaces,
|
|
3462
|
+
borders, text, and interaction colors as our other shell menus. The
|
|
3463
|
+
contextual template/transition controls need explicit treatment too,
|
|
3464
|
+
since they bring their own Squisq surfaces into the popover. */
|
|
3465
|
+
.db-shell .squisq-editor-shell .squisq-toolbar-overflow-menu {
|
|
3466
|
+
background: var(--db-bg);
|
|
3467
|
+
border-color: var(--db-border);
|
|
3468
|
+
box-shadow: 0 4px 12px var(--db-shadow);
|
|
3469
|
+
}
|
|
3470
|
+
|
|
3471
|
+
.db-shell .squisq-editor-shell .squisq-toolbar-overflow-menu--up {
|
|
3472
|
+
box-shadow: 0 -4px 12px var(--db-shadow);
|
|
3473
|
+
}
|
|
3474
|
+
|
|
3475
|
+
.db-shell .squisq-editor-shell .squisq-toolbar-overflow-item {
|
|
3476
|
+
color: var(--db-text-secondary);
|
|
3477
|
+
}
|
|
3478
|
+
|
|
3479
|
+
.db-shell .squisq-editor-shell .squisq-toolbar-overflow-item:hover {
|
|
3480
|
+
background: var(--db-bg-hover);
|
|
3481
|
+
}
|
|
3482
|
+
|
|
3483
|
+
.db-shell .squisq-editor-shell .squisq-toolbar-overflow-heading {
|
|
3484
|
+
color: var(--db-text-muted);
|
|
3485
|
+
}
|
|
3486
|
+
|
|
3487
|
+
.db-shell .squisq-editor-shell .squisq-toolbar-overflow-menu > .squisq-toolbar-separator {
|
|
3488
|
+
background: var(--db-border);
|
|
3489
|
+
}
|
|
3490
|
+
|
|
3491
|
+
.db-shell .squisq-editor-shell .squisq-toolbar-overflow-item--danger {
|
|
3492
|
+
color: var(--db-danger);
|
|
3493
|
+
}
|
|
3494
|
+
|
|
3495
|
+
.db-shell .squisq-editor-shell .squisq-toolbar-overflow-item--danger:hover {
|
|
3496
|
+
background: var(--db-danger-bg);
|
|
3497
|
+
color: var(--db-danger);
|
|
3498
|
+
}
|
|
3499
|
+
|
|
3500
|
+
.db-shell
|
|
3501
|
+
.squisq-editor-shell
|
|
3502
|
+
.squisq-toolbar-overflow-menu
|
|
3503
|
+
:is(.squisq-template-picker-trigger, .squisq-transition-picker-trigger) {
|
|
3504
|
+
background: var(--db-bg-subtle);
|
|
3505
|
+
border-color: var(--db-border);
|
|
3506
|
+
color: var(--db-text-secondary);
|
|
3507
|
+
}
|
|
3508
|
+
|
|
3509
|
+
.db-shell
|
|
3510
|
+
.squisq-editor-shell
|
|
3511
|
+
.squisq-toolbar-overflow-menu
|
|
3512
|
+
:is(.squisq-template-picker-trigger, .squisq-transition-picker-trigger):hover {
|
|
3513
|
+
background: var(--db-bg-hover);
|
|
3514
|
+
border-color: var(--db-border-strong);
|
|
3515
|
+
}
|
|
3516
|
+
|
|
3517
|
+
.db-shell
|
|
3518
|
+
.squisq-editor-shell
|
|
3519
|
+
.squisq-toolbar-overflow-menu
|
|
3520
|
+
:is(.squisq-template-picker-trigger--open, .squisq-transition-picker-trigger--open) {
|
|
3521
|
+
background: var(--db-bg-hover);
|
|
3522
|
+
border-color: var(--db-accent);
|
|
3523
|
+
outline-color: var(--db-accent-soft-25);
|
|
3524
|
+
}
|
|
3525
|
+
|
|
3526
|
+
.db-shell
|
|
3527
|
+
.squisq-editor-shell
|
|
3528
|
+
.squisq-toolbar-overflow-menu
|
|
3529
|
+
:is(.squisq-template-picker-trigger-label, .squisq-transition-picker-trigger-label),
|
|
3530
|
+
.db-shell
|
|
3531
|
+
.squisq-editor-shell
|
|
3532
|
+
.squisq-toolbar-overflow-menu
|
|
3533
|
+
:is(.squisq-template-picker-trigger-caret, .squisq-transition-picker-trigger svg) {
|
|
3534
|
+
color: var(--db-text-muted);
|
|
3535
|
+
}
|
|
3536
|
+
|
|
3537
|
+
.db-shell
|
|
3538
|
+
.squisq-editor-shell
|
|
3539
|
+
.squisq-toolbar-overflow-menu
|
|
3540
|
+
:is(.squisq-template-picker-trigger-value, .squisq-transition-picker-trigger-value) {
|
|
3541
|
+
color: var(--db-text-secondary);
|
|
3542
|
+
}
|
|
3543
|
+
|
|
3544
|
+
.db-shell .squisq-editor-shell .squisq-toolbar-overflow-menu .squisq-template-picker-trigger-thumb {
|
|
3545
|
+
background: var(--db-bg);
|
|
3546
|
+
border-color: var(--db-border);
|
|
3547
|
+
}
|
|
3548
|
+
|
|
3549
|
+
/* Monaco's line-number gutter ("editorGutter.background") is set via
|
|
3550
|
+
squisq's JS-side theme registration — those colors can't be CSS
|
|
3551
|
+
variables. To make the gutter blend with the outline/preview chrome
|
|
3552
|
+
on either side, we override the painted bg on `.margin` and its
|
|
3553
|
+
`.margin-view-overlays` child with our --db-gutter-bg. `!important`
|
|
3554
|
+
is required because Monaco inlines the color via the style attribute.
|
|
3555
|
+
The right-edge seam pseudo-element (`.margin::after`) also retones
|
|
3556
|
+
to --db-border so it's a single hairline matching the toolbar's
|
|
3557
|
+
bottom border, not a contrast stripe of its own. */
|
|
3558
|
+
.db-shell .squisq-raw-editor-container .monaco-editor .margin,
|
|
3559
|
+
.db-shell .squisq-raw-editor-container .monaco-editor .margin-view-overlays {
|
|
3560
|
+
background-color: var(--db-gutter-bg) !important;
|
|
1814
3561
|
}
|
|
1815
3562
|
|
|
1816
3563
|
.db-shell .squisq-raw-editor-container .monaco-editor .margin::after {
|
|
@@ -1829,7 +3576,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
1829
3576
|
.db-shell[data-theme='light']
|
|
1830
3577
|
.squisq-editor-shell[data-theme='light']
|
|
1831
3578
|
.squisq-toolbar-button--active {
|
|
1832
|
-
background: var(--db-
|
|
3579
|
+
background: var(--db-bg-subtle);
|
|
1833
3580
|
color: var(--db-accent-hover);
|
|
1834
3581
|
}
|
|
1835
3582
|
|
|
@@ -1843,7 +3590,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
1843
3590
|
.db-shell[data-theme='light']
|
|
1844
3591
|
.squisq-editor-shell[data-theme='light']
|
|
1845
3592
|
.squisq-toolbar-overflow-item--active {
|
|
1846
|
-
background: var(--db-
|
|
3593
|
+
background: var(--db-bg-subtle);
|
|
1847
3594
|
color: var(--db-accent-hover);
|
|
1848
3595
|
}
|
|
1849
3596
|
|
|
@@ -1934,7 +3681,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
1934
3681
|
font-size: 13px;
|
|
1935
3682
|
font-weight: 600;
|
|
1936
3683
|
background: var(--db-accent);
|
|
1937
|
-
color: var(--db-
|
|
3684
|
+
color: var(--db-text-on-accent);
|
|
1938
3685
|
border: none;
|
|
1939
3686
|
border-radius: 6px;
|
|
1940
3687
|
cursor: pointer;
|
|
@@ -1968,11 +3715,9 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
1968
3715
|
|
|
1969
3716
|
@keyframes db-welcome-gateway-in {
|
|
1970
3717
|
from {
|
|
1971
|
-
opacity: 0;
|
|
1972
3718
|
transform: translate(-50%, 8px);
|
|
1973
3719
|
}
|
|
1974
3720
|
to {
|
|
1975
|
-
opacity: 1;
|
|
1976
3721
|
transform: translate(-50%, 0);
|
|
1977
3722
|
}
|
|
1978
3723
|
}
|
|
@@ -1986,16 +3731,185 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
1986
3731
|
padding: 8px 16px;
|
|
1987
3732
|
font-size: 13px;
|
|
1988
3733
|
line-height: 1.4;
|
|
1989
|
-
color:
|
|
1990
|
-
background:
|
|
3734
|
+
color: var(--db-bg);
|
|
3735
|
+
background: var(--db-accent-deep);
|
|
1991
3736
|
border-radius: 6px;
|
|
1992
|
-
box-shadow: 0
|
|
3737
|
+
box-shadow: 0 4px 12px var(--db-shadow);
|
|
1993
3738
|
pointer-events: none;
|
|
1994
|
-
animation: db-save-toast-fade
|
|
3739
|
+
animation: db-save-toast-fade 3s ease-out forwards;
|
|
3740
|
+
}
|
|
3741
|
+
|
|
3742
|
+
.db-save-toast--error {
|
|
3743
|
+
color: #fff;
|
|
3744
|
+
background: var(--db-danger, #a33a35);
|
|
3745
|
+
}
|
|
3746
|
+
|
|
3747
|
+
.db-document-conflict {
|
|
3748
|
+
position: fixed;
|
|
3749
|
+
top: 16px;
|
|
3750
|
+
left: 50%;
|
|
3751
|
+
z-index: 210;
|
|
3752
|
+
display: flex;
|
|
3753
|
+
gap: 16px;
|
|
3754
|
+
align-items: center;
|
|
3755
|
+
max-width: min(720px, calc(100vw - 32px));
|
|
3756
|
+
padding: 10px 12px;
|
|
3757
|
+
color: var(--db-text);
|
|
3758
|
+
background: var(--db-bg-elevated, var(--db-bg));
|
|
3759
|
+
border: 1px solid var(--db-warning, #b7791f);
|
|
3760
|
+
border-radius: 8px;
|
|
3761
|
+
box-shadow: 0 6px 20px var(--db-shadow);
|
|
3762
|
+
transform: translateX(-50%);
|
|
3763
|
+
}
|
|
3764
|
+
|
|
3765
|
+
.db-document-conflict-actions {
|
|
3766
|
+
display: flex;
|
|
3767
|
+
flex: none;
|
|
3768
|
+
gap: 8px;
|
|
3769
|
+
}
|
|
3770
|
+
|
|
3771
|
+
.db-document-conflict-actions button {
|
|
3772
|
+
padding: 5px 9px;
|
|
3773
|
+
color: var(--db-text);
|
|
3774
|
+
cursor: pointer;
|
|
3775
|
+
background: var(--db-bg);
|
|
3776
|
+
border: 1px solid var(--db-border);
|
|
3777
|
+
border-radius: 5px;
|
|
3778
|
+
}
|
|
3779
|
+
|
|
3780
|
+
.db-document-conflict-actions button:focus-visible {
|
|
3781
|
+
outline: 2px solid var(--db-focus, var(--db-accent));
|
|
3782
|
+
outline-offset: 2px;
|
|
3783
|
+
}
|
|
3784
|
+
|
|
3785
|
+
/* Browser PWA update notice. It is docked over the right side of Squisq's
|
|
3786
|
+
status bar, while extra status-bar padding keeps its contents visible.
|
|
3787
|
+
If the status bar is hidden, it becomes a compact floating badge so the
|
|
3788
|
+
waiting update remains reachable. */
|
|
3789
|
+
.db-shell-editor-area--has-update .squisq-status-bar {
|
|
3790
|
+
padding-right: 132px;
|
|
3791
|
+
}
|
|
3792
|
+
|
|
3793
|
+
.db-update-status-notice {
|
|
3794
|
+
position: absolute;
|
|
3795
|
+
right: 8px;
|
|
3796
|
+
bottom: 1px;
|
|
3797
|
+
z-index: 5;
|
|
3798
|
+
height: 21px;
|
|
3799
|
+
padding: 0 4px;
|
|
3800
|
+
color: var(--db-accent-deep);
|
|
3801
|
+
font: inherit;
|
|
3802
|
+
font-size: 11px;
|
|
3803
|
+
line-height: 1;
|
|
3804
|
+
text-decoration: underline;
|
|
3805
|
+
cursor: pointer;
|
|
3806
|
+
background: transparent;
|
|
3807
|
+
border: 0;
|
|
3808
|
+
}
|
|
3809
|
+
|
|
3810
|
+
.db-update-status-notice:hover {
|
|
3811
|
+
color: var(--db-text);
|
|
3812
|
+
}
|
|
3813
|
+
|
|
3814
|
+
.db-update-status-notice:focus-visible {
|
|
3815
|
+
outline: 2px solid var(--db-focus, var(--db-accent));
|
|
3816
|
+
outline-offset: -2px;
|
|
3817
|
+
}
|
|
3818
|
+
|
|
3819
|
+
.db-update-status-notice:disabled {
|
|
3820
|
+
cursor: default;
|
|
3821
|
+
opacity: 0.55;
|
|
3822
|
+
}
|
|
3823
|
+
|
|
3824
|
+
.db-update-status-notice--floating {
|
|
3825
|
+
right: 8px;
|
|
3826
|
+
bottom: 8px;
|
|
3827
|
+
height: auto;
|
|
3828
|
+
padding: 6px 8px;
|
|
3829
|
+
background: var(--db-bg-elevated, var(--db-bg));
|
|
3830
|
+
border: 1px solid var(--db-accent);
|
|
3831
|
+
border-radius: 5px;
|
|
3832
|
+
box-shadow: 0 2px 8px var(--db-shadow);
|
|
3833
|
+
}
|
|
3834
|
+
|
|
3835
|
+
/* The expanded Reload/Later prompt uses the same top-center card pattern as
|
|
3836
|
+
the document-conflict card, accent-toned instead of warning. */
|
|
3837
|
+
.db-update-banner {
|
|
3838
|
+
position: fixed;
|
|
3839
|
+
top: 16px;
|
|
3840
|
+
left: 50%;
|
|
3841
|
+
z-index: 210;
|
|
3842
|
+
display: flex;
|
|
3843
|
+
gap: 16px;
|
|
3844
|
+
align-items: center;
|
|
3845
|
+
max-width: min(720px, calc(100vw - 32px));
|
|
3846
|
+
padding: 10px 12px;
|
|
3847
|
+
color: var(--db-text);
|
|
3848
|
+
background: var(--db-bg-elevated, var(--db-bg));
|
|
3849
|
+
border: 1px solid var(--db-accent);
|
|
3850
|
+
border-radius: 8px;
|
|
3851
|
+
box-shadow: 0 6px 20px var(--db-shadow);
|
|
3852
|
+
transform: translateX(-50%);
|
|
3853
|
+
}
|
|
3854
|
+
|
|
3855
|
+
.db-update-banner-actions {
|
|
3856
|
+
display: flex;
|
|
3857
|
+
flex: none;
|
|
3858
|
+
gap: 8px;
|
|
3859
|
+
}
|
|
3860
|
+
|
|
3861
|
+
.db-update-banner-actions button {
|
|
3862
|
+
padding: 5px 9px;
|
|
3863
|
+
color: var(--db-text);
|
|
3864
|
+
cursor: pointer;
|
|
3865
|
+
background: var(--db-bg);
|
|
3866
|
+
border: 1px solid var(--db-border);
|
|
3867
|
+
border-radius: 5px;
|
|
3868
|
+
}
|
|
3869
|
+
|
|
3870
|
+
.db-update-banner-actions button:focus-visible {
|
|
3871
|
+
outline: 2px solid var(--db-focus, var(--db-accent));
|
|
3872
|
+
outline-offset: 2px;
|
|
3873
|
+
}
|
|
3874
|
+
|
|
3875
|
+
/* Storage-full alert — the origin quota is exhausted and autosave is
|
|
3876
|
+
failing. Danger-toned variant of the same top-center banner pattern. */
|
|
3877
|
+
.db-storage-full-banner {
|
|
3878
|
+
position: fixed;
|
|
3879
|
+
top: 16px;
|
|
3880
|
+
left: 50%;
|
|
3881
|
+
z-index: 210;
|
|
3882
|
+
display: flex;
|
|
3883
|
+
gap: 16px;
|
|
3884
|
+
align-items: center;
|
|
3885
|
+
max-width: min(720px, calc(100vw - 32px));
|
|
3886
|
+
padding: 10px 12px;
|
|
3887
|
+
color: var(--db-text);
|
|
3888
|
+
background: var(--db-bg-elevated, var(--db-bg));
|
|
3889
|
+
border: 1px solid var(--db-danger, #a33a35);
|
|
3890
|
+
border-radius: 8px;
|
|
3891
|
+
box-shadow: 0 6px 20px var(--db-shadow);
|
|
3892
|
+
transform: translateX(-50%);
|
|
3893
|
+
}
|
|
3894
|
+
|
|
3895
|
+
.db-storage-full-banner-actions {
|
|
3896
|
+
display: flex;
|
|
3897
|
+
flex: none;
|
|
3898
|
+
gap: 8px;
|
|
3899
|
+
}
|
|
3900
|
+
|
|
3901
|
+
.db-storage-full-banner-actions button {
|
|
3902
|
+
padding: 5px 9px;
|
|
3903
|
+
color: var(--db-text);
|
|
3904
|
+
cursor: pointer;
|
|
3905
|
+
background: var(--db-bg);
|
|
3906
|
+
border: 1px solid var(--db-border);
|
|
3907
|
+
border-radius: 5px;
|
|
1995
3908
|
}
|
|
1996
3909
|
|
|
1997
|
-
.db-
|
|
1998
|
-
|
|
3910
|
+
.db-storage-full-banner-actions button:focus-visible {
|
|
3911
|
+
outline: 2px solid var(--db-focus, var(--db-accent));
|
|
3912
|
+
outline-offset: 2px;
|
|
1999
3913
|
}
|
|
2000
3914
|
|
|
2001
3915
|
@keyframes db-save-toast-fade {
|
|
@@ -2016,3 +3930,695 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
2016
3930
|
transform: translate(-50%, -4px);
|
|
2017
3931
|
}
|
|
2018
3932
|
}
|
|
3933
|
+
|
|
3934
|
+
/* ── Git ─────────────────────────────────────────────────────── */
|
|
3935
|
+
|
|
3936
|
+
/* Dialog size modifiers (shared Dialog component) */
|
|
3937
|
+
.db-dialog--wide {
|
|
3938
|
+
width: 560px;
|
|
3939
|
+
max-width: 100%;
|
|
3940
|
+
}
|
|
3941
|
+
|
|
3942
|
+
.db-dialog--full {
|
|
3943
|
+
width: min(1100px, 94vw);
|
|
3944
|
+
height: 82vh;
|
|
3945
|
+
display: flex;
|
|
3946
|
+
flex-direction: column;
|
|
3947
|
+
}
|
|
3948
|
+
|
|
3949
|
+
.db-dialog--full .db-dialog-body {
|
|
3950
|
+
flex: 1;
|
|
3951
|
+
min-height: 0;
|
|
3952
|
+
overflow: auto;
|
|
3953
|
+
display: flex;
|
|
3954
|
+
flex-direction: column;
|
|
3955
|
+
}
|
|
3956
|
+
|
|
3957
|
+
.db-dialog-footer {
|
|
3958
|
+
display: flex;
|
|
3959
|
+
justify-content: flex-end;
|
|
3960
|
+
gap: 8px;
|
|
3961
|
+
padding: 12px 20px 16px;
|
|
3962
|
+
border-top: 1px solid var(--db-border);
|
|
3963
|
+
}
|
|
3964
|
+
|
|
3965
|
+
/* Buttons used in git dialog footers */
|
|
3966
|
+
.db-git-primary-btn {
|
|
3967
|
+
padding: 6px 16px;
|
|
3968
|
+
border: none;
|
|
3969
|
+
border-radius: 5px;
|
|
3970
|
+
background: var(--db-accent);
|
|
3971
|
+
color: var(--db-text-on-accent);
|
|
3972
|
+
font-size: 13px;
|
|
3973
|
+
font-weight: 600;
|
|
3974
|
+
cursor: pointer;
|
|
3975
|
+
}
|
|
3976
|
+
|
|
3977
|
+
.db-git-primary-btn:hover:not(:disabled) {
|
|
3978
|
+
background: var(--db-accent-hover);
|
|
3979
|
+
}
|
|
3980
|
+
|
|
3981
|
+
.db-git-primary-btn:disabled {
|
|
3982
|
+
opacity: 0.5;
|
|
3983
|
+
cursor: default;
|
|
3984
|
+
}
|
|
3985
|
+
|
|
3986
|
+
/* Destructive confirmation (delete, remove workspace). The foreground comes
|
|
3987
|
+
from a token rather than a literal because the two themes need opposite ink:
|
|
3988
|
+
light's danger is deep red and carries white at ~6.5:1, while dark's is a
|
|
3989
|
+
light red where white would fall to ~2.8:1 and fail WCAG AA. */
|
|
3990
|
+
.db-git-primary-btn--danger {
|
|
3991
|
+
background: var(--db-danger);
|
|
3992
|
+
color: var(--db-text-on-danger);
|
|
3993
|
+
}
|
|
3994
|
+
|
|
3995
|
+
.db-git-primary-btn--danger:hover:not(:disabled) {
|
|
3996
|
+
background: color-mix(in srgb, var(--db-danger) 85%, black);
|
|
3997
|
+
}
|
|
3998
|
+
|
|
3999
|
+
.db-git-secondary-btn {
|
|
4000
|
+
padding: 6px 14px;
|
|
4001
|
+
border: 1px solid var(--db-border-strong);
|
|
4002
|
+
border-radius: 5px;
|
|
4003
|
+
background: transparent;
|
|
4004
|
+
color: var(--db-text);
|
|
4005
|
+
font-size: 13px;
|
|
4006
|
+
cursor: pointer;
|
|
4007
|
+
}
|
|
4008
|
+
|
|
4009
|
+
.db-git-secondary-btn:hover:not(:disabled) {
|
|
4010
|
+
background: var(--db-bg-hover);
|
|
4011
|
+
}
|
|
4012
|
+
|
|
4013
|
+
.db-git-secondary-btn:disabled {
|
|
4014
|
+
opacity: 0.5;
|
|
4015
|
+
cursor: default;
|
|
4016
|
+
}
|
|
4017
|
+
|
|
4018
|
+
/* Status bar row in the sidebar */
|
|
4019
|
+
.db-git-statusbar {
|
|
4020
|
+
position: relative;
|
|
4021
|
+
flex-shrink: 0;
|
|
4022
|
+
padding: 2px 8px 4px;
|
|
4023
|
+
border-bottom: 1px solid var(--db-border);
|
|
4024
|
+
}
|
|
4025
|
+
|
|
4026
|
+
.db-git-statusbar-chip {
|
|
4027
|
+
display: flex;
|
|
4028
|
+
align-items: center;
|
|
4029
|
+
gap: 6px;
|
|
4030
|
+
width: 100%;
|
|
4031
|
+
padding: 4px 8px;
|
|
4032
|
+
border: none;
|
|
4033
|
+
border-radius: 4px;
|
|
4034
|
+
background: transparent;
|
|
4035
|
+
color: var(--db-text-secondary);
|
|
4036
|
+
font-size: 12px;
|
|
4037
|
+
cursor: pointer;
|
|
4038
|
+
overflow: hidden;
|
|
4039
|
+
}
|
|
4040
|
+
|
|
4041
|
+
.db-git-statusbar-chip:hover {
|
|
4042
|
+
background: var(--db-bg-hover);
|
|
4043
|
+
}
|
|
4044
|
+
|
|
4045
|
+
.db-git-branch-glyph {
|
|
4046
|
+
color: var(--db-text-muted);
|
|
4047
|
+
flex-shrink: 0;
|
|
4048
|
+
}
|
|
4049
|
+
|
|
4050
|
+
.db-git-statusbar-branch {
|
|
4051
|
+
font-weight: 600;
|
|
4052
|
+
white-space: nowrap;
|
|
4053
|
+
overflow: hidden;
|
|
4054
|
+
text-overflow: ellipsis;
|
|
4055
|
+
}
|
|
4056
|
+
|
|
4057
|
+
.db-git-statusbar-counts {
|
|
4058
|
+
color: var(--db-text-muted);
|
|
4059
|
+
flex-shrink: 0;
|
|
4060
|
+
}
|
|
4061
|
+
|
|
4062
|
+
.db-git-statusbar-dirty {
|
|
4063
|
+
color: var(--db-git-modified);
|
|
4064
|
+
flex-shrink: 0;
|
|
4065
|
+
}
|
|
4066
|
+
|
|
4067
|
+
.db-git-statusbar-merge {
|
|
4068
|
+
color: var(--db-git-conflicted);
|
|
4069
|
+
font-weight: 600;
|
|
4070
|
+
flex-shrink: 0;
|
|
4071
|
+
}
|
|
4072
|
+
|
|
4073
|
+
.db-git-statusbar-busy {
|
|
4074
|
+
color: var(--db-text-muted);
|
|
4075
|
+
flex-shrink: 0;
|
|
4076
|
+
}
|
|
4077
|
+
|
|
4078
|
+
/* Actions dropdown (mirrors db-ws-settings-dropdown) */
|
|
4079
|
+
.db-git-menu {
|
|
4080
|
+
position: absolute;
|
|
4081
|
+
top: 100%;
|
|
4082
|
+
left: 8px;
|
|
4083
|
+
right: 8px;
|
|
4084
|
+
z-index: 100;
|
|
4085
|
+
background: var(--db-bg);
|
|
4086
|
+
border: 1px solid var(--db-border);
|
|
4087
|
+
border-radius: 6px;
|
|
4088
|
+
box-shadow: 0 4px 12px var(--db-shadow);
|
|
4089
|
+
padding: 4px 0;
|
|
4090
|
+
margin-top: 2px;
|
|
4091
|
+
}
|
|
4092
|
+
|
|
4093
|
+
.db-git-menu-item {
|
|
4094
|
+
display: block;
|
|
4095
|
+
width: 100%;
|
|
4096
|
+
padding: 7px 14px;
|
|
4097
|
+
border: none;
|
|
4098
|
+
background: transparent;
|
|
4099
|
+
text-align: left;
|
|
4100
|
+
font-size: 13px;
|
|
4101
|
+
color: var(--db-text);
|
|
4102
|
+
cursor: pointer;
|
|
4103
|
+
}
|
|
4104
|
+
|
|
4105
|
+
.db-git-menu-item:hover:not(:disabled),
|
|
4106
|
+
.db-git-menu-item:focus-visible {
|
|
4107
|
+
background: var(--db-bg-hover);
|
|
4108
|
+
}
|
|
4109
|
+
|
|
4110
|
+
/* Items are arrow-reachable rather than tab stops, so the ring is the only
|
|
4111
|
+
cue to which one Enter will fire. */
|
|
4112
|
+
.db-git-menu-item:focus-visible {
|
|
4113
|
+
outline: 2px solid var(--db-focus);
|
|
4114
|
+
outline-offset: -2px;
|
|
4115
|
+
}
|
|
4116
|
+
|
|
4117
|
+
.db-git-menu-item:disabled {
|
|
4118
|
+
color: var(--db-text-placeholder);
|
|
4119
|
+
cursor: default;
|
|
4120
|
+
}
|
|
4121
|
+
|
|
4122
|
+
.db-git-menu-divider {
|
|
4123
|
+
height: 1px;
|
|
4124
|
+
background: var(--db-border);
|
|
4125
|
+
margin: 4px 0;
|
|
4126
|
+
}
|
|
4127
|
+
|
|
4128
|
+
/* aria-live op-result line — visually subtle, announced politely */
|
|
4129
|
+
.db-git-inline-status {
|
|
4130
|
+
display: block;
|
|
4131
|
+
padding: 0 16px;
|
|
4132
|
+
font-size: 11px;
|
|
4133
|
+
color: var(--db-text-muted);
|
|
4134
|
+
min-height: 0;
|
|
4135
|
+
}
|
|
4136
|
+
|
|
4137
|
+
.db-git-inline-status:empty {
|
|
4138
|
+
display: none;
|
|
4139
|
+
}
|
|
4140
|
+
|
|
4141
|
+
/* File-tree badges */
|
|
4142
|
+
.db-git-badge {
|
|
4143
|
+
margin-left: auto;
|
|
4144
|
+
padding: 0 4px;
|
|
4145
|
+
font-size: 10px;
|
|
4146
|
+
font-weight: 700;
|
|
4147
|
+
flex-shrink: 0;
|
|
4148
|
+
}
|
|
4149
|
+
|
|
4150
|
+
.db-tree-row .db-git-badge {
|
|
4151
|
+
margin-left: 4px;
|
|
4152
|
+
}
|
|
4153
|
+
|
|
4154
|
+
.db-git-badge--modified {
|
|
4155
|
+
color: var(--db-git-modified);
|
|
4156
|
+
}
|
|
4157
|
+
|
|
4158
|
+
.db-git-badge--added {
|
|
4159
|
+
color: var(--db-git-added);
|
|
4160
|
+
}
|
|
4161
|
+
|
|
4162
|
+
.db-git-badge--untracked {
|
|
4163
|
+
color: var(--db-git-untracked);
|
|
4164
|
+
}
|
|
4165
|
+
|
|
4166
|
+
.db-git-badge--renamed {
|
|
4167
|
+
color: var(--db-git-renamed);
|
|
4168
|
+
}
|
|
4169
|
+
|
|
4170
|
+
.db-git-badge--deleted {
|
|
4171
|
+
color: var(--db-git-deleted);
|
|
4172
|
+
}
|
|
4173
|
+
|
|
4174
|
+
.db-git-badge--conflicted {
|
|
4175
|
+
color: var(--db-git-conflicted);
|
|
4176
|
+
}
|
|
4177
|
+
|
|
4178
|
+
.db-git-badge--dir {
|
|
4179
|
+
color: var(--db-git-modified);
|
|
4180
|
+
}
|
|
4181
|
+
|
|
4182
|
+
.db-tree-context-divider {
|
|
4183
|
+
height: 1px;
|
|
4184
|
+
background: var(--db-border);
|
|
4185
|
+
margin: 4px 0;
|
|
4186
|
+
}
|
|
4187
|
+
|
|
4188
|
+
/* Toolbar control */
|
|
4189
|
+
.db-git-toolbar-trigger {
|
|
4190
|
+
position: relative;
|
|
4191
|
+
}
|
|
4192
|
+
|
|
4193
|
+
.db-git-toolbar-dot {
|
|
4194
|
+
position: absolute;
|
|
4195
|
+
top: 3px;
|
|
4196
|
+
right: 3px;
|
|
4197
|
+
width: 7px;
|
|
4198
|
+
height: 7px;
|
|
4199
|
+
border-radius: 50%;
|
|
4200
|
+
background: var(--db-git-modified);
|
|
4201
|
+
}
|
|
4202
|
+
|
|
4203
|
+
/* Dialog internals — file lists (commit + conflicts) */
|
|
4204
|
+
.db-git-file-list {
|
|
4205
|
+
margin: 8px 0;
|
|
4206
|
+
padding: 0;
|
|
4207
|
+
list-style: none;
|
|
4208
|
+
max-height: 260px;
|
|
4209
|
+
overflow-y: auto;
|
|
4210
|
+
border: 1px solid var(--db-border);
|
|
4211
|
+
border-radius: 5px;
|
|
4212
|
+
}
|
|
4213
|
+
|
|
4214
|
+
.db-git-file-row {
|
|
4215
|
+
display: flex;
|
|
4216
|
+
align-items: center;
|
|
4217
|
+
gap: 8px;
|
|
4218
|
+
width: 100%;
|
|
4219
|
+
padding: 6px 10px;
|
|
4220
|
+
border: none;
|
|
4221
|
+
background: transparent;
|
|
4222
|
+
font-size: 12.5px;
|
|
4223
|
+
color: var(--db-text);
|
|
4224
|
+
text-align: left;
|
|
4225
|
+
}
|
|
4226
|
+
|
|
4227
|
+
.db-git-file-row + .db-git-file-row {
|
|
4228
|
+
border-top: 1px solid var(--db-border);
|
|
4229
|
+
}
|
|
4230
|
+
|
|
4231
|
+
button.db-git-file-row {
|
|
4232
|
+
cursor: pointer;
|
|
4233
|
+
}
|
|
4234
|
+
|
|
4235
|
+
button.db-git-file-row:hover {
|
|
4236
|
+
background: var(--db-bg-hover);
|
|
4237
|
+
}
|
|
4238
|
+
|
|
4239
|
+
.db-git-file-kind {
|
|
4240
|
+
margin-left: auto;
|
|
4241
|
+
font-size: 10.5px;
|
|
4242
|
+
color: var(--db-text-muted);
|
|
4243
|
+
flex-shrink: 0;
|
|
4244
|
+
}
|
|
4245
|
+
|
|
4246
|
+
.db-git-commit-message {
|
|
4247
|
+
width: 100%;
|
|
4248
|
+
min-height: 72px;
|
|
4249
|
+
padding: 8px 10px;
|
|
4250
|
+
border: 1px solid var(--db-input-border);
|
|
4251
|
+
border-radius: 5px;
|
|
4252
|
+
background: var(--db-bg);
|
|
4253
|
+
color: var(--db-text);
|
|
4254
|
+
font-size: 13px;
|
|
4255
|
+
font-family: inherit;
|
|
4256
|
+
resize: vertical;
|
|
4257
|
+
box-sizing: border-box;
|
|
4258
|
+
}
|
|
4259
|
+
|
|
4260
|
+
/* Generic form rows in git dialogs */
|
|
4261
|
+
.db-git-form-row {
|
|
4262
|
+
display: flex;
|
|
4263
|
+
align-items: center;
|
|
4264
|
+
gap: 8px;
|
|
4265
|
+
margin: 10px 0;
|
|
4266
|
+
}
|
|
4267
|
+
|
|
4268
|
+
.db-git-form-label {
|
|
4269
|
+
font-size: 12.5px;
|
|
4270
|
+
color: var(--db-text-secondary);
|
|
4271
|
+
flex-shrink: 0;
|
|
4272
|
+
}
|
|
4273
|
+
|
|
4274
|
+
.db-git-form-input {
|
|
4275
|
+
flex: 1;
|
|
4276
|
+
padding: 6px 10px;
|
|
4277
|
+
border: 1px solid var(--db-input-border);
|
|
4278
|
+
border-radius: 5px;
|
|
4279
|
+
background: var(--db-bg);
|
|
4280
|
+
color: var(--db-text);
|
|
4281
|
+
font-size: 13px;
|
|
4282
|
+
box-sizing: border-box;
|
|
4283
|
+
}
|
|
4284
|
+
|
|
4285
|
+
.db-git-form-error,
|
|
4286
|
+
.db-export-error {
|
|
4287
|
+
margin: 8px 0 0;
|
|
4288
|
+
color: var(--db-danger);
|
|
4289
|
+
font-size: 12.5px;
|
|
4290
|
+
}
|
|
4291
|
+
|
|
4292
|
+
.db-git-hint {
|
|
4293
|
+
color: var(--db-text-muted);
|
|
4294
|
+
font-size: 12px;
|
|
4295
|
+
}
|
|
4296
|
+
|
|
4297
|
+
/* Branches dialog */
|
|
4298
|
+
.db-git-branch-list {
|
|
4299
|
+
margin: 8px 0;
|
|
4300
|
+
padding: 0;
|
|
4301
|
+
list-style: none;
|
|
4302
|
+
max-height: 280px;
|
|
4303
|
+
overflow-y: auto;
|
|
4304
|
+
}
|
|
4305
|
+
|
|
4306
|
+
.db-git-branch-row {
|
|
4307
|
+
display: flex;
|
|
4308
|
+
align-items: center;
|
|
4309
|
+
gap: 8px;
|
|
4310
|
+
width: 100%;
|
|
4311
|
+
padding: 7px 10px;
|
|
4312
|
+
border: none;
|
|
4313
|
+
border-radius: 4px;
|
|
4314
|
+
background: transparent;
|
|
4315
|
+
font-size: 13px;
|
|
4316
|
+
color: var(--db-text);
|
|
4317
|
+
text-align: left;
|
|
4318
|
+
cursor: pointer;
|
|
4319
|
+
}
|
|
4320
|
+
|
|
4321
|
+
.db-git-branch-row:hover {
|
|
4322
|
+
background: var(--db-bg-hover);
|
|
4323
|
+
}
|
|
4324
|
+
|
|
4325
|
+
.db-git-branch-row--current {
|
|
4326
|
+
font-weight: 600;
|
|
4327
|
+
color: var(--db-accent);
|
|
4328
|
+
cursor: default;
|
|
4329
|
+
}
|
|
4330
|
+
|
|
4331
|
+
.db-git-branch-row--current:hover {
|
|
4332
|
+
background: transparent;
|
|
4333
|
+
}
|
|
4334
|
+
|
|
4335
|
+
/* History dialog */
|
|
4336
|
+
.db-git-history-list {
|
|
4337
|
+
margin: 8px 0;
|
|
4338
|
+
padding: 0;
|
|
4339
|
+
list-style: none;
|
|
4340
|
+
}
|
|
4341
|
+
|
|
4342
|
+
.db-git-history-item {
|
|
4343
|
+
padding: 8px 10px;
|
|
4344
|
+
border-bottom: 1px solid var(--db-border);
|
|
4345
|
+
cursor: pointer;
|
|
4346
|
+
}
|
|
4347
|
+
|
|
4348
|
+
.db-git-history-item:hover {
|
|
4349
|
+
background: var(--db-bg-hover);
|
|
4350
|
+
}
|
|
4351
|
+
|
|
4352
|
+
.db-git-history-meta {
|
|
4353
|
+
margin-top: 2px;
|
|
4354
|
+
font-size: 11.5px;
|
|
4355
|
+
color: var(--db-text-muted);
|
|
4356
|
+
}
|
|
4357
|
+
|
|
4358
|
+
.db-git-history-files {
|
|
4359
|
+
margin: 6px 0 0;
|
|
4360
|
+
padding: 0;
|
|
4361
|
+
list-style: none;
|
|
4362
|
+
}
|
|
4363
|
+
|
|
4364
|
+
.db-git-history-file {
|
|
4365
|
+
display: flex;
|
|
4366
|
+
align-items: center;
|
|
4367
|
+
gap: 8px;
|
|
4368
|
+
width: 100%;
|
|
4369
|
+
padding: 4px 8px;
|
|
4370
|
+
border: none;
|
|
4371
|
+
background: transparent;
|
|
4372
|
+
font-size: 12px;
|
|
4373
|
+
color: var(--db-text-secondary);
|
|
4374
|
+
text-align: left;
|
|
4375
|
+
cursor: pointer;
|
|
4376
|
+
border-radius: 4px;
|
|
4377
|
+
}
|
|
4378
|
+
|
|
4379
|
+
.db-git-history-file:hover {
|
|
4380
|
+
background: var(--db-bg-hover);
|
|
4381
|
+
}
|
|
4382
|
+
|
|
4383
|
+
/* Diff dialog */
|
|
4384
|
+
.db-git-diff-host {
|
|
4385
|
+
flex: 1;
|
|
4386
|
+
min-height: 320px;
|
|
4387
|
+
border: 1px solid var(--db-border);
|
|
4388
|
+
border-radius: 5px;
|
|
4389
|
+
overflow: hidden;
|
|
4390
|
+
}
|
|
4391
|
+
|
|
4392
|
+
.db-git-diff-loading {
|
|
4393
|
+
padding: 24px;
|
|
4394
|
+
text-align: center;
|
|
4395
|
+
color: var(--db-text-muted);
|
|
4396
|
+
}
|
|
4397
|
+
|
|
4398
|
+
.db-git-diff-labels {
|
|
4399
|
+
display: flex;
|
|
4400
|
+
gap: 12px;
|
|
4401
|
+
margin-bottom: 6px;
|
|
4402
|
+
font-size: 12px;
|
|
4403
|
+
color: var(--db-text-muted);
|
|
4404
|
+
}
|
|
4405
|
+
|
|
4406
|
+
.db-git-diff-labels > span {
|
|
4407
|
+
flex: 1;
|
|
4408
|
+
}
|
|
4409
|
+
|
|
4410
|
+
/* Clone progress */
|
|
4411
|
+
.db-git-progress {
|
|
4412
|
+
margin: 12px 0 4px;
|
|
4413
|
+
}
|
|
4414
|
+
|
|
4415
|
+
.db-git-progress-bar {
|
|
4416
|
+
height: 6px;
|
|
4417
|
+
border-radius: 3px;
|
|
4418
|
+
background: var(--db-accent-soft-15);
|
|
4419
|
+
overflow: hidden;
|
|
4420
|
+
position: relative;
|
|
4421
|
+
}
|
|
4422
|
+
|
|
4423
|
+
.db-git-progress-bar > span {
|
|
4424
|
+
display: block;
|
|
4425
|
+
height: 100%;
|
|
4426
|
+
background: var(--db-accent);
|
|
4427
|
+
transition: width 0.2s;
|
|
4428
|
+
}
|
|
4429
|
+
|
|
4430
|
+
.db-git-progress-text {
|
|
4431
|
+
margin-top: 6px;
|
|
4432
|
+
font-size: 12px;
|
|
4433
|
+
color: var(--db-text-muted);
|
|
4434
|
+
}
|
|
4435
|
+
|
|
4436
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4437
|
+
.db-workspace-picker-caret,
|
|
4438
|
+
.db-app-menu-caret,
|
|
4439
|
+
.db-ws-settings-btn,
|
|
4440
|
+
.db-shell-sidebar-resizer,
|
|
4441
|
+
.db-export-chip,
|
|
4442
|
+
.db-git-progress-bar > span {
|
|
4443
|
+
transition: none;
|
|
4444
|
+
}
|
|
4445
|
+
|
|
4446
|
+
.db-welcome-gateway,
|
|
4447
|
+
.db-save-toast {
|
|
4448
|
+
animation: none;
|
|
4449
|
+
}
|
|
4450
|
+
}
|
|
4451
|
+
|
|
4452
|
+
/* History dialog internals added by the expanded-row layout */
|
|
4453
|
+
.db-git-history-toggle {
|
|
4454
|
+
display: block;
|
|
4455
|
+
width: 100%;
|
|
4456
|
+
padding: 0;
|
|
4457
|
+
border: none;
|
|
4458
|
+
background: transparent;
|
|
4459
|
+
color: inherit;
|
|
4460
|
+
font: inherit;
|
|
4461
|
+
text-align: left;
|
|
4462
|
+
cursor: pointer;
|
|
4463
|
+
}
|
|
4464
|
+
|
|
4465
|
+
.db-git-history-subject {
|
|
4466
|
+
display: block;
|
|
4467
|
+
font-size: 13px;
|
|
4468
|
+
color: var(--db-text);
|
|
4469
|
+
}
|
|
4470
|
+
|
|
4471
|
+
.db-git-history-body {
|
|
4472
|
+
margin: 6px 0 0;
|
|
4473
|
+
padding: 8px 10px;
|
|
4474
|
+
border-radius: 4px;
|
|
4475
|
+
background: var(--db-bg-subtle);
|
|
4476
|
+
color: var(--db-text-secondary);
|
|
4477
|
+
font-size: 12px;
|
|
4478
|
+
white-space: pre-wrap;
|
|
4479
|
+
font-family: inherit;
|
|
4480
|
+
}
|
|
4481
|
+
|
|
4482
|
+
/* ---------------------------------------------------------------------------
|
|
4483
|
+
Window Controls Overlay — installed web app (PWA) custom titlebar.
|
|
4484
|
+
|
|
4485
|
+
When the manifest's `display_override: ["window-controls-overlay", ...]`
|
|
4486
|
+
is active, the OS caption buttons float over the first shell row and this
|
|
4487
|
+
block turns that row into the titlebar: draggable empty space, insets for
|
|
4488
|
+
the caption buttons, and every interactive descendant opted back out.
|
|
4489
|
+
|
|
4490
|
+
Ported 1:1 from the Electron build — keep in sync with
|
|
4491
|
+
packages/desktop/renderer/titlebar.css (which is scoped under
|
|
4492
|
+
`.db-desktop-root`; Electron windows report `display-mode: browser`, so
|
|
4493
|
+
this media query can never double-apply there). The media query is live:
|
|
4494
|
+
toggling the overlay chevron flips it with no JS. */
|
|
4495
|
+
@media (display-mode: window-controls-overlay) {
|
|
4496
|
+
.db-shell {
|
|
4497
|
+
--db-wco-titlebar-height: env(titlebar-area-height, 32px);
|
|
4498
|
+
}
|
|
4499
|
+
|
|
4500
|
+
/* The first shell row replaces the native titlebar. Empty space can drag
|
|
4501
|
+
the window; every interactive descendant opts back out below. */
|
|
4502
|
+
.db-shell .db-shell-sidebar-header,
|
|
4503
|
+
.db-shell .squisq-toolbar,
|
|
4504
|
+
.db-shell .squisq-editor-header--image {
|
|
4505
|
+
app-region: drag;
|
|
4506
|
+
-webkit-app-region: drag;
|
|
4507
|
+
box-sizing: border-box;
|
|
4508
|
+
height: var(--db-wco-titlebar-height);
|
|
4509
|
+
min-height: var(--db-wco-titlebar-height);
|
|
4510
|
+
}
|
|
4511
|
+
|
|
4512
|
+
.db-shell .db-shell-sidebar-header {
|
|
4513
|
+
padding-block: 0;
|
|
4514
|
+
padding-left: max(4px, calc(env(titlebar-area-x, 0px) + 4px));
|
|
4515
|
+
cursor: grab;
|
|
4516
|
+
}
|
|
4517
|
+
|
|
4518
|
+
/* Keep the shell controls inside the compact native caption band. These
|
|
4519
|
+
overrides apply only to an installed app using Window Controls Overlay;
|
|
4520
|
+
the regular browser toolbar keeps its roomier metrics. */
|
|
4521
|
+
.db-shell .db-app-menu-btn,
|
|
4522
|
+
.db-shell .db-workspace-picker-btn {
|
|
4523
|
+
padding-block: 3px;
|
|
4524
|
+
}
|
|
4525
|
+
|
|
4526
|
+
.db-shell .squisq-toolbar-view-tab {
|
|
4527
|
+
padding-top: 4px;
|
|
4528
|
+
padding-bottom: 4px;
|
|
4529
|
+
}
|
|
4530
|
+
|
|
4531
|
+
.db-shell .squisq-use-mode-trigger {
|
|
4532
|
+
padding-bottom: 9px;
|
|
4533
|
+
}
|
|
4534
|
+
|
|
4535
|
+
.db-shell .squisq-toolbar-button[aria-label='Insert image'] {
|
|
4536
|
+
height: 28px;
|
|
4537
|
+
}
|
|
4538
|
+
|
|
4539
|
+
.db-shell .squisq-editor-header--image {
|
|
4540
|
+
padding-block: 0;
|
|
4541
|
+
}
|
|
4542
|
+
|
|
4543
|
+
/* Make the draggable header space beside the workspace gear discoverable,
|
|
4544
|
+
matching the Electron titlebar without introducing another control. */
|
|
4545
|
+
.db-shell .db-shell-sidebar-header::after {
|
|
4546
|
+
content: '';
|
|
4547
|
+
width: 12px;
|
|
4548
|
+
height: 20px;
|
|
4549
|
+
flex: 0 0 12px;
|
|
4550
|
+
margin-right: 3px;
|
|
4551
|
+
background-image: radial-gradient(circle, var(--db-text-muted) 1px, transparent 1.25px);
|
|
4552
|
+
background-position: center;
|
|
4553
|
+
background-size: 4px 4px;
|
|
4554
|
+
opacity: 0.72;
|
|
4555
|
+
pointer-events: none;
|
|
4556
|
+
app-region: drag;
|
|
4557
|
+
-webkit-app-region: drag;
|
|
4558
|
+
}
|
|
4559
|
+
|
|
4560
|
+
/* Let the workspace menu size itself to its contents and cross the sidebar
|
|
4561
|
+
boundary above the editor. The explorer still clips its own contents. */
|
|
4562
|
+
.db-shell .db-shell-sidebar {
|
|
4563
|
+
overflow: visible;
|
|
4564
|
+
}
|
|
4565
|
+
|
|
4566
|
+
.db-shell .db-workspace-dropdown {
|
|
4567
|
+
box-sizing: border-box;
|
|
4568
|
+
width: max-content;
|
|
4569
|
+
}
|
|
4570
|
+
|
|
4571
|
+
/* The caption buttons normally occupy the right edge. Derive that inset
|
|
4572
|
+
from the overlay safe area rather than assuming a fixed width, so
|
|
4573
|
+
scaling, RTL controls, and OS variants stay clear. The compact sidebar
|
|
4574
|
+
header is full-width, so it needs the same reservation. */
|
|
4575
|
+
.db-shell.db-shell--mobile .db-shell-sidebar-header,
|
|
4576
|
+
.db-shell .squisq-toolbar,
|
|
4577
|
+
.db-shell .squisq-editor-header--image {
|
|
4578
|
+
padding-right: max(
|
|
4579
|
+
12px,
|
|
4580
|
+
calc(100vw - env(titlebar-area-x, 0px) - env(titlebar-area-width, 100vw) + 8px)
|
|
4581
|
+
);
|
|
4582
|
+
}
|
|
4583
|
+
|
|
4584
|
+
/* In compact mode there is no sidebar to absorb left-side controls such as
|
|
4585
|
+
macOS traffic lights, so the editor toolbar also observes the left inset. */
|
|
4586
|
+
.db-shell.db-shell--mobile .squisq-toolbar,
|
|
4587
|
+
.db-shell.db-shell--mobile .squisq-editor-header--image {
|
|
4588
|
+
padding-left: env(titlebar-area-x, 0px);
|
|
4589
|
+
}
|
|
4590
|
+
|
|
4591
|
+
.db-shell
|
|
4592
|
+
:is(
|
|
4593
|
+
button,
|
|
4594
|
+
a,
|
|
4595
|
+
input,
|
|
4596
|
+
select,
|
|
4597
|
+
textarea,
|
|
4598
|
+
[contenteditable='true'],
|
|
4599
|
+
[role='button'],
|
|
4600
|
+
[role='tab']
|
|
4601
|
+
) {
|
|
4602
|
+
app-region: no-drag;
|
|
4603
|
+
-webkit-app-region: no-drag;
|
|
4604
|
+
}
|
|
4605
|
+
|
|
4606
|
+
/* Folder and empty states do not render Squisq's toolbar. Preserve a top
|
|
4607
|
+
drag strip in those states and keep folder content below it. */
|
|
4608
|
+
.db-shell .db-shell-empty::before,
|
|
4609
|
+
.db-shell .db-folder-view::before {
|
|
4610
|
+
content: '';
|
|
4611
|
+
position: absolute;
|
|
4612
|
+
top: 0;
|
|
4613
|
+
left: env(titlebar-area-x, 0px);
|
|
4614
|
+
width: env(titlebar-area-width, 100%);
|
|
4615
|
+
height: var(--db-wco-titlebar-height);
|
|
4616
|
+
app-region: drag;
|
|
4617
|
+
-webkit-app-region: drag;
|
|
4618
|
+
}
|
|
4619
|
+
|
|
4620
|
+
.db-shell .db-folder-view {
|
|
4621
|
+
box-sizing: border-box;
|
|
4622
|
+
padding-top: calc(24px + var(--db-wco-titlebar-height));
|
|
4623
|
+
}
|
|
4624
|
+
}
|