@bendyline/docblocks-react 2.2.1 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD_PARTY_NOTICES.txt +11842 -0
- package/dist/{ExportToolbarControls-2VB43ITO.js → ExportToolbarControls-773QRE4R.js} +140 -73
- package/dist/{GitToolbarControl-FW3BZFXV.js → GitToolbarControl-VJVK2B4X.js} +4 -3
- package/dist/{GitUI-GMH3PAYL.js → GitUI-CAKFVKWY.js} +4 -3
- package/dist/chunk-APC4KI4B.js +0 -0
- package/dist/{chunk-BPGEBGAN.js → chunk-JDJVRDOP.js} +23 -0
- package/dist/{chunk-TFMO7EVO.js → chunk-MRUK56JS.js} +23 -4
- package/dist/chunk-VRRL6VTD.js +606 -0
- package/dist/editor.d.ts +12 -1
- package/dist/editor.js +9 -3
- package/dist/index.d.ts +60 -7
- package/dist/index.js +1914 -737
- package/dist/settings/index.d.ts +34 -2
- package/dist/settings/index.js +9 -3
- package/package.json +10 -9
- package/src/styles/docblocks.css +458 -5
- package/dist/chunk-3QSZY74C.js +0 -255
package/dist/settings/index.d.ts
CHANGED
|
@@ -7,7 +7,39 @@ type ThemePreference = 'auto' | 'light' | 'dark';
|
|
|
7
7
|
declare const ACCENT_COLORS: readonly ["brown", "green", "blue", "purple", "maroon", "orange", "gray"];
|
|
8
8
|
type AccentColor = (typeof ACCENT_COLORS)[number];
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Stable ids for the Write-canvas font schemes offered in Settings. This list
|
|
12
|
+
* mirrors `DOCBLOCKS_WRITE_CANVAS_FONT_SCHEMES` in `@bendyline/docblocks/vscode`
|
|
13
|
+
* (the wire/persisted contract) and the `docblocks.writeCanvasFontScheme` enum
|
|
14
|
+
* in the VS Code `package.json`; a guard test keeps the three in sync.
|
|
15
|
+
*/
|
|
16
|
+
type WriteCanvasFontScheme = 'theme' | 'serif-sans' | 'sans-sans' | 'serif-serif' | 'pt-serif' | 'hanken' | 'playfair-pt-serif' | 'hanken-lora' | 'dm-serif-dm-sans' | 'inter';
|
|
17
|
+
type WriteCanvasFontSchemeGroup = 'theme' | 'system' | 'curated';
|
|
18
|
+
interface WriteCanvasFontSchemeOption {
|
|
19
|
+
id: WriteCanvasFontScheme;
|
|
20
|
+
label: string;
|
|
21
|
+
group: WriteCanvasFontSchemeGroup;
|
|
22
|
+
/** CSS font-family for headings. Omitted for `'theme'` (inherit). */
|
|
23
|
+
headerFont?: string;
|
|
24
|
+
/** CSS font-family for body text. Omitted for `'theme'` (inherit). */
|
|
25
|
+
bodyFont?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Curated Write-canvas font schemes, in picker order. A named scheme is an
|
|
29
|
+
* explicit user preference and overrides the active theme in Write mode through
|
|
30
|
+
* the DocBlocks host stylesheet. `'theme'` sets no fonts, i.e. inherits the
|
|
31
|
+
* active theme / host as before.
|
|
32
|
+
*/
|
|
33
|
+
declare const WRITE_CANVAS_FONT_SCHEMES: readonly WriteCanvasFontSchemeOption[];
|
|
34
|
+
declare const DEFAULT_WRITE_CANVAS_FONT_SCHEME: WriteCanvasFontScheme;
|
|
35
|
+
/** Resolve a scheme id to the header/body CSS font-family strings (empty for `'theme'`). */
|
|
36
|
+
declare function resolveWriteCanvasFonts(scheme: WriteCanvasFontScheme): Pick<WriteCanvasSettings, 'headerFont' | 'bodyFont'>;
|
|
37
|
+
/** Persisted Write-canvas preferences. Stores the font scheme id, not resolved fonts. */
|
|
38
|
+
interface WriteCanvasPreferences {
|
|
39
|
+
textSize: number;
|
|
40
|
+
lineSpacing: number;
|
|
41
|
+
fontScheme: WriteCanvasFontScheme;
|
|
42
|
+
}
|
|
11
43
|
|
|
12
44
|
interface SettingsDialogProps {
|
|
13
45
|
title?: string;
|
|
@@ -33,4 +65,4 @@ interface WriteCanvasSettingsControlsProps {
|
|
|
33
65
|
}
|
|
34
66
|
declare function WriteCanvasSettingsControls({ value, onChange }: WriteCanvasSettingsControlsProps): react_jsx_runtime.JSX.Element;
|
|
35
67
|
|
|
36
|
-
export { type AccentColor, AccentColorSettings, type AccentColorSettingsProps, SettingsDialog, type SettingsDialogProps, type ThemePreference, ThemeSettings, type ThemeSettingsProps, type WriteCanvasPreferences, WriteCanvasSettingsControls, type WriteCanvasSettingsControlsProps };
|
|
68
|
+
export { type AccentColor, AccentColorSettings, type AccentColorSettingsProps, DEFAULT_WRITE_CANVAS_FONT_SCHEME, SettingsDialog, type SettingsDialogProps, type ThemePreference, ThemeSettings, type ThemeSettingsProps, WRITE_CANVAS_FONT_SCHEMES, type WriteCanvasFontScheme, type WriteCanvasFontSchemeGroup, type WriteCanvasFontSchemeOption, type WriteCanvasPreferences, WriteCanvasSettingsControls, type WriteCanvasSettingsControlsProps, resolveWriteCanvasFonts };
|
package/dist/settings/index.js
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AccentColorSettings,
|
|
3
|
+
DEFAULT_WRITE_CANVAS_FONT_SCHEME,
|
|
3
4
|
SettingsDialog,
|
|
4
5
|
ThemeSettings,
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
WRITE_CANVAS_FONT_SCHEMES,
|
|
7
|
+
WriteCanvasSettingsControls,
|
|
8
|
+
resolveWriteCanvasFonts
|
|
9
|
+
} from "../chunk-VRRL6VTD.js";
|
|
7
10
|
import "../chunk-LG6HAWCK.js";
|
|
8
11
|
export {
|
|
9
12
|
AccentColorSettings,
|
|
13
|
+
DEFAULT_WRITE_CANVAS_FONT_SCHEME,
|
|
10
14
|
SettingsDialog,
|
|
11
15
|
ThemeSettings,
|
|
12
|
-
|
|
16
|
+
WRITE_CANVAS_FONT_SCHEMES,
|
|
17
|
+
WriteCanvasSettingsControls,
|
|
18
|
+
resolveWriteCanvasFonts
|
|
13
19
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bendyline/docblocks-react",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.2",
|
|
4
4
|
"description": "React components for DocBlocks — file explorer, workspace picker, and editor shell",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Bendyline",
|
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
],
|
|
31
31
|
"files": [
|
|
32
32
|
"dist",
|
|
33
|
-
"src/styles"
|
|
33
|
+
"src/styles",
|
|
34
|
+
"THIRD_PARTY_NOTICES.txt"
|
|
34
35
|
],
|
|
35
36
|
"exports": {
|
|
36
37
|
".": {
|
|
@@ -65,13 +66,13 @@
|
|
|
65
66
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
66
67
|
},
|
|
67
68
|
"dependencies": {
|
|
68
|
-
"@bendyline/docblocks": "2.2.
|
|
69
|
-
"@bendyline/squisq": "2.
|
|
70
|
-
"@bendyline/squisq-editor-react": "2.
|
|
71
|
-
"@bendyline/squisq-formats": "2.3.
|
|
72
|
-
"@bendyline/squisq-react": "2.
|
|
73
|
-
"@bendyline/squisq-video": "2.2.
|
|
74
|
-
"@bendyline/squisq-video-react": "2.2.
|
|
69
|
+
"@bendyline/docblocks": "2.2.2",
|
|
70
|
+
"@bendyline/squisq": "2.4.1",
|
|
71
|
+
"@bendyline/squisq-editor-react": "2.4.1",
|
|
72
|
+
"@bendyline/squisq-formats": "2.3.5",
|
|
73
|
+
"@bendyline/squisq-react": "2.4.1",
|
|
74
|
+
"@bendyline/squisq-video": "2.2.5",
|
|
75
|
+
"@bendyline/squisq-video-react": "2.2.5"
|
|
75
76
|
},
|
|
76
77
|
"devDependencies": {
|
|
77
78
|
"@happy-dom/global-registrator": "20.9.0",
|
package/src/styles/docblocks.css
CHANGED
|
@@ -198,6 +198,136 @@
|
|
|
198
198
|
gap: 2px;
|
|
199
199
|
}
|
|
200
200
|
|
|
201
|
+
.db-pinned-documents {
|
|
202
|
+
display: flex;
|
|
203
|
+
flex-direction: column;
|
|
204
|
+
flex: 0 1 auto;
|
|
205
|
+
min-height: 0;
|
|
206
|
+
max-height: 38%;
|
|
207
|
+
overflow: hidden;
|
|
208
|
+
border-bottom: 1px solid var(--db-border-strong);
|
|
209
|
+
background: var(--db-bg-subtle);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.db-pinned-documents-title {
|
|
213
|
+
display: flex;
|
|
214
|
+
align-items: center;
|
|
215
|
+
gap: 6px;
|
|
216
|
+
margin: 0;
|
|
217
|
+
padding: 8px 10px 5px;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.db-pinned-documents-title i {
|
|
221
|
+
font-size: 10px;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.db-pinned-document-list {
|
|
225
|
+
min-height: 0;
|
|
226
|
+
overflow-y: auto;
|
|
227
|
+
padding: 0 0 4px;
|
|
228
|
+
scrollbar-color: var(--db-accent) var(--db-bg-subtle);
|
|
229
|
+
scrollbar-width: thin;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.db-pinned-document-row {
|
|
233
|
+
position: relative;
|
|
234
|
+
display: flex;
|
|
235
|
+
align-items: stretch;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.db-pinned-document {
|
|
239
|
+
display: flex;
|
|
240
|
+
align-items: center;
|
|
241
|
+
flex: 1;
|
|
242
|
+
gap: 7px;
|
|
243
|
+
min-width: 0;
|
|
244
|
+
padding: 6px 4px 6px 10px;
|
|
245
|
+
border: 0;
|
|
246
|
+
background: transparent;
|
|
247
|
+
color: var(--db-text);
|
|
248
|
+
font: inherit;
|
|
249
|
+
text-align: left;
|
|
250
|
+
cursor: pointer;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
.db-pinned-document-row:hover,
|
|
254
|
+
.db-pinned-document-row:has(:focus-visible) {
|
|
255
|
+
background: var(--db-bg-hover);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.db-pinned-document:focus-visible {
|
|
259
|
+
outline: 2px solid var(--db-focus);
|
|
260
|
+
outline-offset: -2px;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
.db-pinned-document-row--selected,
|
|
264
|
+
.db-pinned-document-row--selected:hover,
|
|
265
|
+
.db-pinned-document-row--selected:has(:focus-visible) {
|
|
266
|
+
--db-focus: #ffffff;
|
|
267
|
+
background: var(--db-bg-selected);
|
|
268
|
+
color: var(--db-text-on-selected);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.db-pinned-document-more {
|
|
272
|
+
display: flex;
|
|
273
|
+
align-items: center;
|
|
274
|
+
justify-content: center;
|
|
275
|
+
flex: 0 0 30px;
|
|
276
|
+
min-width: 30px;
|
|
277
|
+
border: 0;
|
|
278
|
+
background: transparent;
|
|
279
|
+
color: inherit;
|
|
280
|
+
cursor: pointer;
|
|
281
|
+
opacity: 0.72;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
.db-pinned-document-more:hover,
|
|
285
|
+
.db-pinned-document-more--active {
|
|
286
|
+
opacity: 1;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
.db-pinned-document-more:focus-visible {
|
|
290
|
+
outline: 2px solid var(--db-focus);
|
|
291
|
+
outline-offset: -2px;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.db-pinned-document-heading {
|
|
295
|
+
min-width: 0;
|
|
296
|
+
display: flex;
|
|
297
|
+
flex: 1;
|
|
298
|
+
align-items: baseline;
|
|
299
|
+
gap: 6px;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
.db-pinned-document-name {
|
|
303
|
+
flex: 1;
|
|
304
|
+
min-width: 0;
|
|
305
|
+
overflow: hidden;
|
|
306
|
+
text-overflow: ellipsis;
|
|
307
|
+
white-space: nowrap;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
.db-pinned-document-missing {
|
|
311
|
+
flex: 0 0 auto;
|
|
312
|
+
color: var(--db-danger);
|
|
313
|
+
font-size: 11px;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.db-pinned-document-row--selected .db-pinned-document-missing {
|
|
317
|
+
color: inherit;
|
|
318
|
+
opacity: 0.82;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.db-pinned-document-error {
|
|
322
|
+
position: absolute;
|
|
323
|
+
z-index: 1;
|
|
324
|
+
top: 100%;
|
|
325
|
+
right: 4px;
|
|
326
|
+
left: 4px;
|
|
327
|
+
margin: 0;
|
|
328
|
+
background: var(--db-bg);
|
|
329
|
+
}
|
|
330
|
+
|
|
201
331
|
.db-explorer-btn {
|
|
202
332
|
width: 24px;
|
|
203
333
|
height: 24px;
|
|
@@ -411,6 +541,34 @@
|
|
|
411
541
|
flex: 1;
|
|
412
542
|
overflow-y: auto;
|
|
413
543
|
padding: 2px 0;
|
|
544
|
+
scrollbar-color: var(--db-accent) var(--db-bg);
|
|
545
|
+
scrollbar-width: thin;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
.db-tree::-webkit-scrollbar {
|
|
549
|
+
width: 12px;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
.db-tree::-webkit-scrollbar-track,
|
|
553
|
+
.db-tree::-webkit-scrollbar-corner {
|
|
554
|
+
background: var(--db-bg);
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
.db-tree::-webkit-scrollbar-thumb {
|
|
558
|
+
min-height: 32px;
|
|
559
|
+
background: var(--db-accent);
|
|
560
|
+
border: 3px solid var(--db-bg);
|
|
561
|
+
border-radius: 999px;
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
.db-tree::-webkit-scrollbar-thumb:hover {
|
|
565
|
+
background: var(--db-accent-hover);
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
.db-tree::-webkit-scrollbar-button {
|
|
569
|
+
display: none;
|
|
570
|
+
width: 0;
|
|
571
|
+
height: 0;
|
|
414
572
|
}
|
|
415
573
|
|
|
416
574
|
.db-tree-loading,
|
|
@@ -429,6 +587,10 @@
|
|
|
429
587
|
font-size: 12px;
|
|
430
588
|
}
|
|
431
589
|
|
|
590
|
+
.db-tree-error--child {
|
|
591
|
+
margin-left: 24px;
|
|
592
|
+
}
|
|
593
|
+
|
|
432
594
|
.db-tree-error-retry {
|
|
433
595
|
border: 0;
|
|
434
596
|
padding: 0;
|
|
@@ -555,11 +717,18 @@
|
|
|
555
717
|
|
|
556
718
|
.db-tree-row:hover .db-tree-more,
|
|
557
719
|
.db-tree-row:focus-within .db-tree-more,
|
|
720
|
+
.db-tree-row--selected .db-tree-more,
|
|
558
721
|
.db-tree-more:focus-visible,
|
|
559
722
|
.db-tree-more--active {
|
|
560
723
|
visibility: visible;
|
|
561
724
|
}
|
|
562
725
|
|
|
726
|
+
@media (hover: none), (pointer: coarse) {
|
|
727
|
+
.db-tree-more {
|
|
728
|
+
visibility: visible;
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
|
|
563
732
|
.db-tree-more:hover {
|
|
564
733
|
background: var(--db-bg-hover);
|
|
565
734
|
color: var(--db-text);
|
|
@@ -1173,15 +1342,13 @@ body.db-resizing-sidebar * {
|
|
|
1173
1342
|
}
|
|
1174
1343
|
|
|
1175
1344
|
.db-shell-sidebar-footer-action {
|
|
1176
|
-
|
|
1345
|
+
flex-shrink: 0;
|
|
1177
1346
|
padding: 0;
|
|
1178
|
-
overflow: hidden;
|
|
1179
1347
|
border: 0;
|
|
1180
1348
|
background: transparent;
|
|
1181
1349
|
font: inherit;
|
|
1182
1350
|
line-height: inherit;
|
|
1183
1351
|
text-decoration: underline;
|
|
1184
|
-
text-overflow: ellipsis;
|
|
1185
1352
|
white-space: nowrap;
|
|
1186
1353
|
cursor: pointer;
|
|
1187
1354
|
}
|
|
@@ -1652,7 +1819,7 @@ body.db-resizing-sidebar * {
|
|
|
1652
1819
|
}
|
|
1653
1820
|
|
|
1654
1821
|
.db-settings-fieldset + .db-settings-fieldset {
|
|
1655
|
-
margin-top:
|
|
1822
|
+
margin-top: 16px;
|
|
1656
1823
|
}
|
|
1657
1824
|
|
|
1658
1825
|
.db-settings-legend {
|
|
@@ -1694,6 +1861,16 @@ body.db-resizing-sidebar * {
|
|
|
1694
1861
|
accent-color: var(--db-accent);
|
|
1695
1862
|
}
|
|
1696
1863
|
|
|
1864
|
+
.db-settings-radio-row {
|
|
1865
|
+
display: flex;
|
|
1866
|
+
flex-wrap: wrap;
|
|
1867
|
+
gap: 8px 20px;
|
|
1868
|
+
}
|
|
1869
|
+
|
|
1870
|
+
.db-settings-radio--inline {
|
|
1871
|
+
padding: 2px 0;
|
|
1872
|
+
}
|
|
1873
|
+
|
|
1697
1874
|
.db-settings-checkbox {
|
|
1698
1875
|
display: flex;
|
|
1699
1876
|
align-items: center;
|
|
@@ -1741,6 +1918,188 @@ body.db-resizing-sidebar * {
|
|
|
1741
1918
|
cursor: pointer;
|
|
1742
1919
|
}
|
|
1743
1920
|
|
|
1921
|
+
.db-settings-select {
|
|
1922
|
+
display: flex;
|
|
1923
|
+
flex-direction: column;
|
|
1924
|
+
gap: 6px;
|
|
1925
|
+
margin-top: 14px;
|
|
1926
|
+
color: var(--db-text);
|
|
1927
|
+
font-size: 13px;
|
|
1928
|
+
}
|
|
1929
|
+
|
|
1930
|
+
.db-settings-select-header {
|
|
1931
|
+
display: flex;
|
|
1932
|
+
align-items: baseline;
|
|
1933
|
+
justify-content: space-between;
|
|
1934
|
+
gap: 16px;
|
|
1935
|
+
}
|
|
1936
|
+
|
|
1937
|
+
.db-settings-select-input {
|
|
1938
|
+
width: 100%;
|
|
1939
|
+
padding: 6px 8px;
|
|
1940
|
+
font: inherit;
|
|
1941
|
+
font-size: 13px;
|
|
1942
|
+
background: var(--db-bg-subtle);
|
|
1943
|
+
color: var(--db-text);
|
|
1944
|
+
border: 1px solid var(--db-input-border);
|
|
1945
|
+
border-radius: 4px;
|
|
1946
|
+
outline: none;
|
|
1947
|
+
cursor: pointer;
|
|
1948
|
+
appearance: auto;
|
|
1949
|
+
}
|
|
1950
|
+
|
|
1951
|
+
.db-settings-select-input:focus-visible {
|
|
1952
|
+
border-color: var(--db-accent);
|
|
1953
|
+
}
|
|
1954
|
+
|
|
1955
|
+
.db-font-picker {
|
|
1956
|
+
position: relative;
|
|
1957
|
+
}
|
|
1958
|
+
|
|
1959
|
+
.db-font-picker-trigger {
|
|
1960
|
+
display: flex;
|
|
1961
|
+
align-items: center;
|
|
1962
|
+
gap: 12px;
|
|
1963
|
+
box-sizing: border-box;
|
|
1964
|
+
width: 100%;
|
|
1965
|
+
min-height: 54px;
|
|
1966
|
+
padding: 7px 10px 7px 12px;
|
|
1967
|
+
overflow: hidden;
|
|
1968
|
+
border: 1px solid var(--db-input-border);
|
|
1969
|
+
border-radius: 5px;
|
|
1970
|
+
outline: none;
|
|
1971
|
+
background: var(--db-bg-subtle);
|
|
1972
|
+
color: var(--db-text);
|
|
1973
|
+
text-align: left;
|
|
1974
|
+
cursor: pointer;
|
|
1975
|
+
}
|
|
1976
|
+
|
|
1977
|
+
.db-font-picker-trigger:hover,
|
|
1978
|
+
.db-font-picker-trigger[aria-expanded='true'] {
|
|
1979
|
+
background: var(--db-bg-hover);
|
|
1980
|
+
}
|
|
1981
|
+
|
|
1982
|
+
.db-font-picker-trigger:focus-visible {
|
|
1983
|
+
border-color: var(--db-accent);
|
|
1984
|
+
box-shadow: 0 0 0 1px var(--db-accent);
|
|
1985
|
+
}
|
|
1986
|
+
|
|
1987
|
+
.db-font-picker-caret {
|
|
1988
|
+
flex: 0 0 auto;
|
|
1989
|
+
width: 7px;
|
|
1990
|
+
height: 7px;
|
|
1991
|
+
margin: 0 3px 3px 0;
|
|
1992
|
+
border-right: 2px solid currentColor;
|
|
1993
|
+
border-bottom: 2px solid currentColor;
|
|
1994
|
+
color: var(--db-text-muted);
|
|
1995
|
+
transform: rotate(45deg);
|
|
1996
|
+
transition: transform 120ms ease;
|
|
1997
|
+
}
|
|
1998
|
+
|
|
1999
|
+
.db-font-picker-caret--open {
|
|
2000
|
+
margin-top: 5px;
|
|
2001
|
+
transform: rotate(225deg);
|
|
2002
|
+
}
|
|
2003
|
+
|
|
2004
|
+
.db-font-picker-menu {
|
|
2005
|
+
position: fixed;
|
|
2006
|
+
z-index: 3100;
|
|
2007
|
+
box-sizing: border-box;
|
|
2008
|
+
padding: 5px;
|
|
2009
|
+
overflow-y: auto;
|
|
2010
|
+
overscroll-behavior: contain;
|
|
2011
|
+
border: 1px solid var(--db-border-strong);
|
|
2012
|
+
border-radius: 6px;
|
|
2013
|
+
outline: none;
|
|
2014
|
+
background: var(--db-bg);
|
|
2015
|
+
color: var(--db-text);
|
|
2016
|
+
box-shadow: 0 10px 28px var(--db-shadow);
|
|
2017
|
+
}
|
|
2018
|
+
|
|
2019
|
+
.db-font-picker-group {
|
|
2020
|
+
padding: 10px 10px 4px;
|
|
2021
|
+
color: var(--db-text-muted);
|
|
2022
|
+
font:
|
|
2023
|
+
600 10px/1.2 system-ui,
|
|
2024
|
+
-apple-system,
|
|
2025
|
+
'Segoe UI',
|
|
2026
|
+
sans-serif;
|
|
2027
|
+
letter-spacing: 0.065em;
|
|
2028
|
+
text-transform: uppercase;
|
|
2029
|
+
}
|
|
2030
|
+
|
|
2031
|
+
.db-font-picker-option {
|
|
2032
|
+
display: flex;
|
|
2033
|
+
align-items: center;
|
|
2034
|
+
gap: 12px;
|
|
2035
|
+
min-height: 50px;
|
|
2036
|
+
padding: 6px 9px 6px 11px;
|
|
2037
|
+
border-radius: 4px;
|
|
2038
|
+
color: var(--db-text);
|
|
2039
|
+
cursor: pointer;
|
|
2040
|
+
user-select: none;
|
|
2041
|
+
}
|
|
2042
|
+
|
|
2043
|
+
.db-font-picker-option--active {
|
|
2044
|
+
background: var(--db-bg-hover);
|
|
2045
|
+
}
|
|
2046
|
+
|
|
2047
|
+
.db-font-picker-option--selected {
|
|
2048
|
+
background: var(--db-accent-soft-12);
|
|
2049
|
+
}
|
|
2050
|
+
|
|
2051
|
+
.db-font-picker-option--selected.db-font-picker-option--active {
|
|
2052
|
+
background: var(--db-accent-soft-25);
|
|
2053
|
+
}
|
|
2054
|
+
|
|
2055
|
+
.db-font-picker-preview {
|
|
2056
|
+
display: flex;
|
|
2057
|
+
flex: 1 1 auto;
|
|
2058
|
+
flex-direction: column;
|
|
2059
|
+
min-width: 0;
|
|
2060
|
+
line-height: 1.2;
|
|
2061
|
+
}
|
|
2062
|
+
|
|
2063
|
+
.db-font-picker-heading,
|
|
2064
|
+
.db-font-picker-body {
|
|
2065
|
+
overflow: hidden;
|
|
2066
|
+
text-overflow: ellipsis;
|
|
2067
|
+
white-space: nowrap;
|
|
2068
|
+
}
|
|
2069
|
+
|
|
2070
|
+
.db-font-picker-heading {
|
|
2071
|
+
color: var(--db-text);
|
|
2072
|
+
font-size: 16px;
|
|
2073
|
+
font-weight: 650;
|
|
2074
|
+
}
|
|
2075
|
+
|
|
2076
|
+
.db-font-picker-body {
|
|
2077
|
+
margin-top: 3px;
|
|
2078
|
+
color: var(--db-text-secondary);
|
|
2079
|
+
font-size: 12px;
|
|
2080
|
+
font-weight: 400;
|
|
2081
|
+
}
|
|
2082
|
+
|
|
2083
|
+
.db-font-picker-preview--compact .db-font-picker-heading {
|
|
2084
|
+
font-size: 15px;
|
|
2085
|
+
}
|
|
2086
|
+
|
|
2087
|
+
.db-font-picker-preview--compact .db-font-picker-body {
|
|
2088
|
+
color: var(--db-text-muted);
|
|
2089
|
+
font-size: 11px;
|
|
2090
|
+
}
|
|
2091
|
+
|
|
2092
|
+
.db-font-picker-check {
|
|
2093
|
+
flex: 0 0 18px;
|
|
2094
|
+
color: var(--db-accent-deep);
|
|
2095
|
+
font:
|
|
2096
|
+
700 14px/1 system-ui,
|
|
2097
|
+
-apple-system,
|
|
2098
|
+
'Segoe UI',
|
|
2099
|
+
sans-serif;
|
|
2100
|
+
text-align: center;
|
|
2101
|
+
}
|
|
2102
|
+
|
|
1744
2103
|
.db-settings-accent-grid {
|
|
1745
2104
|
display: grid;
|
|
1746
2105
|
grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
|
|
@@ -2058,6 +2417,15 @@ body.db-resizing-sidebar * {
|
|
|
2058
2417
|
padding: 4px 0;
|
|
2059
2418
|
}
|
|
2060
2419
|
|
|
2420
|
+
.db-export-toolbar-menu-dropdown {
|
|
2421
|
+
max-width: min(720px, calc(100vw - 16px));
|
|
2422
|
+
}
|
|
2423
|
+
|
|
2424
|
+
.db-export-toolbar-menu-dropdown .db-toolbar-menu-item {
|
|
2425
|
+
overflow: hidden;
|
|
2426
|
+
text-overflow: ellipsis;
|
|
2427
|
+
}
|
|
2428
|
+
|
|
2061
2429
|
.db-toolbar-menu-item {
|
|
2062
2430
|
display: block;
|
|
2063
2431
|
width: 100%;
|
|
@@ -2392,11 +2760,55 @@ body.db-resizing-sidebar * {
|
|
|
2392
2760
|
background: var(--db-editor-canvas);
|
|
2393
2761
|
}
|
|
2394
2762
|
|
|
2395
|
-
/* Bind Squisq's host-facing accent to the active DocBlocks appearance.
|
|
2763
|
+
/* Bind Squisq's host-facing accent to the active DocBlocks appearance.
|
|
2764
|
+
RawEditor uses the editor background/foreground variables for its
|
|
2765
|
+
textarea while Monaco's first lazy load is in flight. Define them here so
|
|
2766
|
+
Source view never paints Squisq's light fallback before the requested
|
|
2767
|
+
Monaco theme is ready. */
|
|
2396
2768
|
.db-shell .squisq-editor-shell {
|
|
2397
2769
|
--squisq-accent: var(--db-accent);
|
|
2398
2770
|
--squisq-accent-hover: var(--db-accent-hover);
|
|
2399
2771
|
--squisq-text-on-accent: var(--db-text-on-accent);
|
|
2772
|
+
--squisq-editor-background: #ffffff;
|
|
2773
|
+
--squisq-editor-foreground: #1f2937;
|
|
2774
|
+
}
|
|
2775
|
+
|
|
2776
|
+
.db-shell .squisq-editor-shell[data-theme='dark'] {
|
|
2777
|
+
/* Match Monaco's built-in vs-dark canvas exactly so replacing the loading
|
|
2778
|
+
textarea with Monaco does not introduce a second, subtler color flash. */
|
|
2779
|
+
--squisq-editor-background: #1e1e1e;
|
|
2780
|
+
--squisq-editor-foreground: #d4d4d4;
|
|
2781
|
+
}
|
|
2782
|
+
|
|
2783
|
+
/* The Write-canvas font picker is an explicit host preference, so its
|
|
2784
|
+
variables must beat the active document theme in Write mode. Squisq's base
|
|
2785
|
+
stylesheet intentionally puts theme fonts first; reverse that order only
|
|
2786
|
+
inside the DocBlocks shell. When "Inherit from theme" is selected the Write
|
|
2787
|
+
variables are absent, and these declarations fall straight through to the
|
|
2788
|
+
same theme title/body fonts as before. */
|
|
2789
|
+
.db-shell .squisq-editor-shell .squisq-wysiwyg-editor {
|
|
2790
|
+
font-family: var(--squisq-write-body-font, var(--squisq-theme-body-font, inherit));
|
|
2791
|
+
}
|
|
2792
|
+
|
|
2793
|
+
.db-shell .squisq-editor-shell .squisq-wysiwyg-editor h1,
|
|
2794
|
+
.db-shell .squisq-editor-shell .squisq-wysiwyg-editor h2,
|
|
2795
|
+
.db-shell .squisq-editor-shell .squisq-wysiwyg-editor h3,
|
|
2796
|
+
.db-shell .squisq-editor-shell .squisq-wysiwyg-editor h4,
|
|
2797
|
+
.db-shell .squisq-editor-shell .squisq-wysiwyg-editor h5,
|
|
2798
|
+
.db-shell .squisq-editor-shell .squisq-wysiwyg-editor h6 {
|
|
2799
|
+
font-family: var(
|
|
2800
|
+
--squisq-write-header-font,
|
|
2801
|
+
var(
|
|
2802
|
+
--squisq-write-body-font,
|
|
2803
|
+
var(--squisq-theme-title-font, var(--squisq-theme-body-font, inherit))
|
|
2804
|
+
)
|
|
2805
|
+
);
|
|
2806
|
+
}
|
|
2807
|
+
|
|
2808
|
+
/* Squisq's default horizontal rule uses a fixed slate border in both
|
|
2809
|
+
appearances. Keep document rules aligned with the selected host accent. */
|
|
2810
|
+
.db-shell .squisq-editor-shell .squisq-wysiwyg-editor hr {
|
|
2811
|
+
border-top-color: var(--db-accent);
|
|
2400
2812
|
}
|
|
2401
2813
|
|
|
2402
2814
|
/* Simple diagrams, drawings, and layout canvases share Squisq's Scene
|
|
@@ -4064,6 +4476,46 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
4064
4476
|
border-color: var(--db-border);
|
|
4065
4477
|
}
|
|
4066
4478
|
|
|
4479
|
+
/* View menu. Squisq's dark appearance otherwise replaces its generic
|
|
4480
|
+
variables with a fixed slate-blue palette. Keep the popover and its
|
|
4481
|
+
controls on the same host palette as the DocBlocks app and overflow
|
|
4482
|
+
menus, including the native radio/checkbox selection color. */
|
|
4483
|
+
.db-shell .squisq-editor-shell .squisq-view-menu-popover {
|
|
4484
|
+
background: var(--db-bg);
|
|
4485
|
+
border-color: var(--db-border);
|
|
4486
|
+
box-shadow: 0 4px 12px var(--db-shadow);
|
|
4487
|
+
color: var(--db-text-secondary);
|
|
4488
|
+
}
|
|
4489
|
+
|
|
4490
|
+
.db-shell .squisq-editor-shell .squisq-view-menu-row:hover,
|
|
4491
|
+
.db-shell .squisq-editor-shell .squisq-view-menu-radio-row:hover {
|
|
4492
|
+
background: var(--db-bg-hover);
|
|
4493
|
+
}
|
|
4494
|
+
|
|
4495
|
+
.db-shell .squisq-editor-shell .squisq-view-menu-row--select:hover,
|
|
4496
|
+
.db-shell .squisq-editor-shell .squisq-view-menu-row--radios:hover {
|
|
4497
|
+
background: transparent;
|
|
4498
|
+
}
|
|
4499
|
+
|
|
4500
|
+
.db-shell .squisq-editor-shell .squisq-view-menu-row--select .squisq-view-menu-label,
|
|
4501
|
+
.db-shell .squisq-editor-shell .squisq-view-menu-row--radios > .squisq-view-menu-label {
|
|
4502
|
+
color: var(--db-text-muted);
|
|
4503
|
+
}
|
|
4504
|
+
|
|
4505
|
+
.db-shell .squisq-editor-shell .squisq-view-menu-select {
|
|
4506
|
+
background: var(--db-bg-subtle);
|
|
4507
|
+
border-color: var(--db-border);
|
|
4508
|
+
color: var(--db-text-secondary);
|
|
4509
|
+
}
|
|
4510
|
+
|
|
4511
|
+
.db-shell .squisq-editor-shell .squisq-view-menu-separator {
|
|
4512
|
+
background: var(--db-border);
|
|
4513
|
+
}
|
|
4514
|
+
|
|
4515
|
+
.db-shell .squisq-editor-shell :is(.squisq-view-menu-checkbox, .squisq-view-menu-radio) {
|
|
4516
|
+
accent-color: var(--db-accent);
|
|
4517
|
+
}
|
|
4518
|
+
|
|
4067
4519
|
/* Monaco's line-number gutter ("editorGutter.background") is set via
|
|
4068
4520
|
squisq's JS-side theme registration — those colors can't be CSS
|
|
4069
4521
|
variables. To make the gutter blend with the outline/preview chrome
|
|
@@ -4457,6 +4909,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
4457
4909
|
.db-dialog--wide {
|
|
4458
4910
|
width: 560px;
|
|
4459
4911
|
max-width: 100%;
|
|
4912
|
+
max-height: min(calc(100dvh - 32px), 660px);
|
|
4460
4913
|
}
|
|
4461
4914
|
|
|
4462
4915
|
.db-dialog--full {
|