@bendyline/docblocks-react 2.5.0 → 2.6.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 +18 -0
- package/THIRD_PARTY_NOTICES.txt +154 -55
- package/dist/{ExportDialog-VBWHFJ2R.js → ExportDialog-Q4VWI43H.js} +2 -2
- package/dist/{ExportToolbarControls-BUVJCSMV.js → ExportToolbarControls-QYLBRWM7.js} +7 -7
- package/dist/GitGrantNotice-I2VNKPLH.js +29 -0
- package/dist/{GitToolbarControl-VJVK2B4X.js → GitToolbarControl-O5AXBC6T.js} +5 -3
- package/dist/{GitUI-CAKFVKWY.js → GitUI-L5T3XHZG.js} +68 -14
- package/dist/calculation/index.d.ts +27 -0
- package/dist/calculation/index.js +16 -0
- package/dist/chunk-6E635KCJ.js +11 -0
- package/dist/chunk-DUKTAKB4.js +83 -0
- package/dist/{chunk-VRRL6VTD.js → chunk-Q6XNIKDG.js} +63 -0
- package/dist/{chunk-HFYPTTCH.js → chunk-V2ENBGUA.js} +0 -9
- package/dist/export/index.js +5 -5
- package/dist/index.d.ts +42 -7
- package/dist/index.js +881 -509
- package/dist/proofing/index.d.ts +112 -0
- package/dist/proofing/index.js +50 -0
- package/dist/settings/index.d.ts +37 -1
- package/dist/settings/index.js +11 -3
- package/package.json +20 -9
- package/src/styles/docblocks.css +364 -96
- package/dist/{chunk-SIIEGOHY.js → chunk-FMDLZ4ZG.js} +3 -3
package/src/styles/docblocks.css
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
`--db-accent-tint-strong`, `--db-accent-deep`) are defined alongside so every place that needs
|
|
14
14
|
a tinted background or a readable-on-tint text color pulls from the
|
|
15
15
|
same source of truth. */
|
|
16
|
+
/* The palette binds on the document root as well as on the shell. Squisq
|
|
17
|
+
mounts its menus, dialogs and flyouts in PORTALS on <body>, outside the
|
|
18
|
+
shell — without a root binding they cannot see --db-*, which is why the
|
|
19
|
+
editor chrome used to need per-menu patches further down. The root
|
|
20
|
+
follows whichever appearance the shell in the page resolved to. */
|
|
21
|
+
:root,
|
|
16
22
|
.db-shell {
|
|
17
23
|
--db-bg: #ffffff;
|
|
18
24
|
--db-bg-subtle: #f3eede;
|
|
@@ -45,9 +51,16 @@
|
|
|
45
51
|
--db-badge-bg: #f3eede;
|
|
46
52
|
--db-badge-text: #3d3220;
|
|
47
53
|
--db-badge-text-hover: #2a2419;
|
|
48
|
-
/*
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
/* The editor "desk": every chrome surface the page floats on — the
|
|
55
|
+
outline pane, the inline-preview gutter, the Monaco line-number
|
|
56
|
+
margin, and (via `--squisq-desk-bg`) the field behind the WYSIWYG
|
|
57
|
+
page in light mode. Squisq's own default for that field is a cool
|
|
58
|
+
`#dcd8d0`, which read as a grey slab against this cream palette;
|
|
59
|
+
binding it here keeps the whole editor area one continuous tone.
|
|
60
|
+
Dark mode re-points that one field at `--db-editor-canvas` so the
|
|
61
|
+
page still sits lighter than what it floats on.
|
|
62
|
+
Sits one step lighter than the toolbar (`--db-accent-tint-strong`)
|
|
63
|
+
so the chrome still reads as distinct from the action bar. */
|
|
51
64
|
--db-gutter-bg: #efe8d4;
|
|
52
65
|
--db-input-border: #c4b693;
|
|
53
66
|
--db-danger: #b22b1b;
|
|
@@ -64,6 +77,7 @@
|
|
|
64
77
|
--db-git-conflicted: #b22b1b;
|
|
65
78
|
}
|
|
66
79
|
|
|
80
|
+
:root:has(.db-shell[data-theme='dark']),
|
|
67
81
|
.db-shell[data-theme='dark'] {
|
|
68
82
|
--db-bg: #1a1812;
|
|
69
83
|
--db-bg-subtle: #262219;
|
|
@@ -97,10 +111,12 @@
|
|
|
97
111
|
--db-danger-bg: #1c1917;
|
|
98
112
|
--db-text-on-danger: #1c1917;
|
|
99
113
|
--db-shadow: rgba(0, 0, 0, 0.4);
|
|
100
|
-
/*
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
114
|
+
/* Dark mode reads contrast the other way round: a pane lighter than
|
|
115
|
+
the toolbar becomes a lit slab beside a near-black canvas. So the
|
|
116
|
+
desk recedes to the same tone as `--db-editor-canvas` — the field
|
|
117
|
+
the page already floats on — and the panes flanking that field
|
|
118
|
+
match it instead of bracketing it in a brighter frame. */
|
|
119
|
+
--db-gutter-bg: #16110b;
|
|
104
120
|
--db-git-modified: #e5b567;
|
|
105
121
|
--db-git-added: #81c784;
|
|
106
122
|
--db-git-untracked: #81c784;
|
|
@@ -110,6 +126,7 @@
|
|
|
110
126
|
}
|
|
111
127
|
|
|
112
128
|
@media (prefers-color-scheme: dark) {
|
|
129
|
+
:root:has(.db-shell:not([data-theme='light'])),
|
|
113
130
|
.db-shell:not([data-theme='light']) {
|
|
114
131
|
--db-bg: #1a1812;
|
|
115
132
|
--db-bg-subtle: #262219;
|
|
@@ -138,7 +155,7 @@
|
|
|
138
155
|
--db-danger-bg: #1c1917;
|
|
139
156
|
--db-text-on-danger: #1c1917;
|
|
140
157
|
--db-shadow: rgba(0, 0, 0, 0.4);
|
|
141
|
-
--db-gutter-bg: #
|
|
158
|
+
--db-gutter-bg: #16110b;
|
|
142
159
|
--db-git-modified: #e5b567;
|
|
143
160
|
--db-git-added: #81c784;
|
|
144
161
|
--db-git-untracked: #81c784;
|
|
@@ -496,14 +513,25 @@
|
|
|
496
513
|
/* ── New Item Input ──────────────────────────────────────────── */
|
|
497
514
|
|
|
498
515
|
.db-new-item {
|
|
499
|
-
padding:
|
|
516
|
+
padding: 8px;
|
|
500
517
|
border-bottom: 1px solid var(--db-border);
|
|
501
518
|
}
|
|
502
519
|
|
|
503
520
|
.db-new-item-row {
|
|
504
521
|
display: flex;
|
|
505
522
|
align-items: center;
|
|
506
|
-
gap:
|
|
523
|
+
gap: 6px;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
.db-new-item-row--file {
|
|
527
|
+
display: grid;
|
|
528
|
+
align-items: stretch;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
.db-new-item-file-controls {
|
|
532
|
+
display: flex;
|
|
533
|
+
align-items: stretch;
|
|
534
|
+
gap: 6px;
|
|
507
535
|
}
|
|
508
536
|
|
|
509
537
|
.db-new-item-input {
|
|
@@ -533,15 +561,23 @@
|
|
|
533
561
|
border-color: var(--db-danger);
|
|
534
562
|
}
|
|
535
563
|
|
|
536
|
-
.db-new-item-add:focus-visible
|
|
564
|
+
.db-new-item-add:focus-visible,
|
|
565
|
+
.db-new-item-format:focus-visible {
|
|
537
566
|
outline: 2px solid var(--db-focus);
|
|
538
567
|
outline-offset: 1px;
|
|
539
568
|
}
|
|
540
569
|
|
|
541
|
-
.db-new-item-
|
|
570
|
+
.db-new-item-format {
|
|
571
|
+
flex: 1;
|
|
572
|
+
min-width: 0;
|
|
573
|
+
box-sizing: border-box;
|
|
574
|
+
padding: 4px 24px 4px 7px;
|
|
575
|
+
font: inherit;
|
|
542
576
|
font-size: 12px;
|
|
543
|
-
|
|
544
|
-
|
|
577
|
+
background: var(--db-bg);
|
|
578
|
+
color: var(--db-text);
|
|
579
|
+
border: 1px solid var(--db-input-border);
|
|
580
|
+
border-radius: 3px;
|
|
545
581
|
}
|
|
546
582
|
|
|
547
583
|
.db-new-item-add {
|
|
@@ -560,6 +596,7 @@
|
|
|
560
596
|
}
|
|
561
597
|
|
|
562
598
|
.db-new-item-input:disabled,
|
|
599
|
+
.db-new-item-format:disabled,
|
|
563
600
|
.db-new-item-add:disabled {
|
|
564
601
|
cursor: default;
|
|
565
602
|
opacity: 0.65;
|
|
@@ -1262,6 +1299,62 @@
|
|
|
1262
1299
|
flex-direction: column;
|
|
1263
1300
|
overflow: hidden;
|
|
1264
1301
|
flex-shrink: 0;
|
|
1302
|
+
position: relative;
|
|
1303
|
+
}
|
|
1304
|
+
|
|
1305
|
+
.db-sidebar-collapse-preview {
|
|
1306
|
+
position: absolute;
|
|
1307
|
+
inset: 0;
|
|
1308
|
+
z-index: 20;
|
|
1309
|
+
display: flex;
|
|
1310
|
+
flex-direction: column;
|
|
1311
|
+
align-items: center;
|
|
1312
|
+
justify-content: center;
|
|
1313
|
+
gap: 12px;
|
|
1314
|
+
pointer-events: none;
|
|
1315
|
+
visibility: hidden;
|
|
1316
|
+
opacity: 0;
|
|
1317
|
+
background: color-mix(in srgb, var(--db-bg) 78%, transparent);
|
|
1318
|
+
color: var(--db-text);
|
|
1319
|
+
backdrop-filter: blur(1px) grayscale(0.3);
|
|
1320
|
+
transition:
|
|
1321
|
+
opacity 120ms ease,
|
|
1322
|
+
visibility 0s linear 120ms;
|
|
1323
|
+
}
|
|
1324
|
+
|
|
1325
|
+
.db-shell-sidebar--collapse-preview .db-sidebar-collapse-preview {
|
|
1326
|
+
visibility: visible;
|
|
1327
|
+
opacity: 1;
|
|
1328
|
+
transition-delay: 0s;
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1331
|
+
.db-sidebar-collapse-preview-icon {
|
|
1332
|
+
box-sizing: border-box;
|
|
1333
|
+
display: flex;
|
|
1334
|
+
align-items: center;
|
|
1335
|
+
justify-content: center;
|
|
1336
|
+
width: 88px;
|
|
1337
|
+
height: 88px;
|
|
1338
|
+
border: 1px solid var(--db-border-strong);
|
|
1339
|
+
border-radius: 22px;
|
|
1340
|
+
background: var(--db-bg-subtle);
|
|
1341
|
+
color: var(--db-accent);
|
|
1342
|
+
box-shadow: 0 10px 30px var(--db-shadow);
|
|
1343
|
+
}
|
|
1344
|
+
|
|
1345
|
+
.db-sidebar-collapse-preview-icon svg {
|
|
1346
|
+
width: 64px;
|
|
1347
|
+
height: 64px;
|
|
1348
|
+
}
|
|
1349
|
+
|
|
1350
|
+
.db-sidebar-collapse-preview-label {
|
|
1351
|
+
padding: 5px 10px;
|
|
1352
|
+
border-radius: 999px;
|
|
1353
|
+
background: var(--db-bg-subtle);
|
|
1354
|
+
box-shadow: 0 4px 14px var(--db-shadow);
|
|
1355
|
+
color: var(--db-text-secondary);
|
|
1356
|
+
font-size: 13px;
|
|
1357
|
+
font-weight: 600;
|
|
1265
1358
|
}
|
|
1266
1359
|
|
|
1267
1360
|
/* Drag handle between sidebar and editor. The visible line is the
|
|
@@ -1511,10 +1604,10 @@ body.db-resizing-sidebar * {
|
|
|
1511
1604
|
}
|
|
1512
1605
|
|
|
1513
1606
|
/* The compact editor uses two deliberate toolbar rows: navigation/views on
|
|
1514
|
-
top and actions below.
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1607
|
+
top and actions below. The second row keeps versioning, document settings,
|
|
1608
|
+
Files, and DocBlocks' Export and share control at its right; Squisq's
|
|
1609
|
+
formatting actions fill whatever width is left over and spill the remainder
|
|
1610
|
+
into its measured More menu. */
|
|
1518
1611
|
.db-shell--mobile .squisq-toolbar {
|
|
1519
1612
|
min-height: 88px;
|
|
1520
1613
|
flex-wrap: wrap;
|
|
@@ -1538,25 +1631,26 @@ body.db-resizing-sidebar * {
|
|
|
1538
1631
|
height: 44px;
|
|
1539
1632
|
}
|
|
1540
1633
|
|
|
1634
|
+
/* A zero flex basis keeps the actions row out of flex line-breaking — its
|
|
1635
|
+
intrinsic width is far wider than the row, and breaking uses the base size,
|
|
1636
|
+
so any other basis would push the right-side controls onto a third row.
|
|
1637
|
+
Growing from zero then hands it every pixel the fixed controls leave. */
|
|
1541
1638
|
.db-shell--mobile .squisq-toolbar-actions {
|
|
1542
|
-
flex:
|
|
1543
|
-
width: 0;
|
|
1639
|
+
flex: 1 1 0;
|
|
1640
|
+
min-width: 0;
|
|
1544
1641
|
height: 44px;
|
|
1545
1642
|
}
|
|
1546
1643
|
|
|
1547
|
-
.db-shell--mobile .squisq-toolbar-actions > * {
|
|
1548
|
-
visibility: hidden;
|
|
1549
|
-
}
|
|
1550
|
-
|
|
1551
1644
|
.db-shell--mobile .squisq-toolbar-overflow,
|
|
1552
1645
|
.db-shell--mobile .squisq-toolbar > .squisq-toolbar-button,
|
|
1553
1646
|
.db-shell--mobile .squisq-toolbar > .db-toolbar-menu {
|
|
1554
1647
|
flex: 0 0 auto;
|
|
1555
1648
|
}
|
|
1556
1649
|
|
|
1557
|
-
/* The compact layout
|
|
1558
|
-
the
|
|
1559
|
-
the menu off-canvas, so anchor the mobile
|
|
1650
|
+
/* The compact layout puts Squisq's overflow trigger part-way along the second
|
|
1651
|
+
row, wherever the formatting buttons stop. Its desktop right-aligned
|
|
1652
|
+
placement would hang the menu off-canvas from there, so anchor the mobile
|
|
1653
|
+
popover to the viewport instead. */
|
|
1560
1654
|
.db-shell--mobile .squisq-editor-shell .squisq-toolbar-overflow-menu {
|
|
1561
1655
|
right: auto !important;
|
|
1562
1656
|
left: max(4px, env(safe-area-inset-left)) !important;
|
|
@@ -1565,6 +1659,32 @@ body.db-resizing-sidebar * {
|
|
|
1565
1659
|
overflow-y: auto;
|
|
1566
1660
|
}
|
|
1567
1661
|
|
|
1662
|
+
/* A wide sidebar or a narrow window can leave the editor pane too small for
|
|
1663
|
+
the view tabs, formatting controls, and host controls to share one row —
|
|
1664
|
+
the actions lane is the only flexible item, so it is what gets squeezed to
|
|
1665
|
+
nothing. Past the measured pane width the view tabs take a row of their own
|
|
1666
|
+
and everything else drops below them: the same two-row shape the compact
|
|
1667
|
+
layout uses, without giving up the split view. The shell class comes from a
|
|
1668
|
+
ResizeObserver on the editor pane, so dragging the sidebar is handled too.
|
|
1669
|
+
Electron overrides the row height to line these rows up with its native
|
|
1670
|
+
caption buttons; see packages/desktop/renderer/titlebar.css. */
|
|
1671
|
+
.db-shell--desktop-toolbar-wrapped:not(.db-shell--mobile) {
|
|
1672
|
+
--db-toolbar-wrapped-row: 44px;
|
|
1673
|
+
}
|
|
1674
|
+
|
|
1675
|
+
.db-shell--desktop-toolbar-wrapped:not(.db-shell--mobile) .squisq-toolbar {
|
|
1676
|
+
min-height: calc(var(--db-toolbar-wrapped-row) * 2);
|
|
1677
|
+
flex-wrap: wrap;
|
|
1678
|
+
align-content: stretch;
|
|
1679
|
+
}
|
|
1680
|
+
|
|
1681
|
+
.db-shell--desktop-toolbar-wrapped:not(.db-shell--mobile) .squisq-toolbar-view-tabs {
|
|
1682
|
+
box-sizing: border-box;
|
|
1683
|
+
flex: 0 0 100%;
|
|
1684
|
+
width: 100%;
|
|
1685
|
+
height: var(--db-toolbar-wrapped-row);
|
|
1686
|
+
}
|
|
1687
|
+
|
|
1568
1688
|
.db-mobile-back {
|
|
1569
1689
|
display: flex;
|
|
1570
1690
|
align-items: center;
|
|
@@ -2894,21 +3014,95 @@ body.db-resizing-sidebar * {
|
|
|
2894
3014
|
background: var(--db-editor-canvas);
|
|
2895
3015
|
}
|
|
2896
3016
|
|
|
2897
|
-
/*
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
3017
|
+
/* ── Squisq chrome palette → DocBlocks ────────────────────────── */
|
|
3018
|
+
/* Squisq declares its whole editor-chrome palette as `--squisq-*` tokens
|
|
3019
|
+
(see squisq's docs/theming.md), inside `:where()` at zero specificity so
|
|
3020
|
+
a host can rebind it. This block is that rebinding, and it is the seam the
|
|
3021
|
+
older per-selector patches below were standing in for — bind a token here
|
|
3022
|
+
rather than adding another `.db-shell .squisq-thing` rule.
|
|
3023
|
+
|
|
3024
|
+
The selector list mirrors squisq's own. `:root` covers the app; the bare
|
|
3025
|
+
`[data-theme]` covers the editor shell AND the menus, dialogs and flyouts
|
|
3026
|
+
that portal to <body>. Those stamp their own `data-theme`, which is what
|
|
3027
|
+
squisq keys its dark values off — and a declaration ON an element beats
|
|
3028
|
+
one inherited from an ancestor, so a `:root`-only binding would leave
|
|
3029
|
+
squisq's slate/blue winning inside the shell. */
|
|
3030
|
+
:root,
|
|
3031
|
+
[data-theme] {
|
|
3032
|
+
/* Ink. DocBlocks has four ink steps to squisq's five. */
|
|
3033
|
+
--squisq-text-strong: var(--db-text);
|
|
3034
|
+
--squisq-text: var(--db-text);
|
|
3035
|
+
--squisq-text-soft: var(--db-text-secondary);
|
|
3036
|
+
--squisq-text-muted: var(--db-text-muted);
|
|
3037
|
+
--squisq-text-faint: var(--db-text-placeholder);
|
|
3038
|
+
|
|
3039
|
+
/* Surfaces. */
|
|
3040
|
+
--squisq-bg: var(--db-bg-subtle);
|
|
3041
|
+
--squisq-surface: var(--db-bg);
|
|
3042
|
+
--squisq-surface-subtle: var(--db-bg-subtle);
|
|
3043
|
+
--squisq-surface-sunken: var(--db-bg-subtle);
|
|
3044
|
+
--squisq-surface-hover: var(--db-bg-hover);
|
|
3045
|
+
--squisq-surface-raised: var(--db-bg-hover);
|
|
3046
|
+
--squisq-input-bg: var(--db-bg);
|
|
3047
|
+
--squisq-row-hover: var(--db-bg-hover);
|
|
3048
|
+
--squisq-hover-bg: var(--db-bg-hover);
|
|
3049
|
+
--squisq-panel-bg: var(--db-bg);
|
|
3050
|
+
|
|
3051
|
+
/* The desk the editing page floats on — the WYSIWYG backing, the block
|
|
3052
|
+
card and its preview panel, the outline pane, the Monaco margin. */
|
|
3053
|
+
--squisq-desk-bg: var(--db-gutter-bg);
|
|
3054
|
+
--squisq-desk-rail: var(--db-bg-subtle);
|
|
3055
|
+
--squisq-desk-border: var(--db-border);
|
|
3056
|
+
|
|
3057
|
+
--squisq-border-subtle: var(--db-border);
|
|
3058
|
+
--squisq-border: var(--db-border-strong);
|
|
3059
|
+
--squisq-border-strong: var(--db-border-strong);
|
|
3060
|
+
|
|
3061
|
+
/* Accent. `--db-accent` is also the selected-row fill, so the focus ring
|
|
3062
|
+
deliberately points at `--db-focus` — a ring the same color as the fill
|
|
3063
|
+
it sits on is invisible. */
|
|
2903
3064
|
--squisq-accent: var(--db-accent);
|
|
2904
3065
|
--squisq-accent-hover: var(--db-accent-hover);
|
|
3066
|
+
--squisq-accent-strong: var(--db-accent-deep);
|
|
3067
|
+
--squisq-accent-soft: var(--db-accent-tint-strong);
|
|
3068
|
+
--squisq-accent-subtle: var(--db-accent-soft-12);
|
|
3069
|
+
--squisq-accent-border: var(--db-accent-soft-25);
|
|
2905
3070
|
--squisq-text-on-accent: var(--db-text-on-accent);
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
--squisq-hover
|
|
2910
|
-
--squisq-
|
|
2911
|
-
--squisq-
|
|
3071
|
+
--squisq-focus-ring: var(--db-focus);
|
|
3072
|
+
|
|
3073
|
+
--squisq-danger: var(--db-danger);
|
|
3074
|
+
--squisq-danger-hover: var(--db-danger);
|
|
3075
|
+
--squisq-danger-strong: var(--db-danger);
|
|
3076
|
+
--squisq-danger-soft: var(--db-danger-bg);
|
|
3077
|
+
--squisq-danger-border: var(--db-danger);
|
|
3078
|
+
--squisq-text-on-danger: var(--db-text-on-danger);
|
|
3079
|
+
|
|
3080
|
+
/* Advisory and success reuse the git-status hues, which are already the
|
|
3081
|
+
app's vocabulary for "changed" and "added". */
|
|
3082
|
+
--squisq-warning: var(--db-git-modified);
|
|
3083
|
+
--squisq-warning-hover: var(--db-git-modified);
|
|
3084
|
+
--squisq-warning-strong: var(--db-git-modified);
|
|
3085
|
+
--squisq-warning-soft: var(--db-bg-subtle);
|
|
3086
|
+
--squisq-warning-border: var(--db-git-modified);
|
|
3087
|
+
--squisq-success: var(--db-git-added);
|
|
3088
|
+
--squisq-success-border: var(--db-git-added);
|
|
3089
|
+
|
|
3090
|
+
--squisq-shadow-rgb: 40 30 15;
|
|
3091
|
+
|
|
3092
|
+
/* Monaco's canvas while its lazy load is in flight — without these,
|
|
3093
|
+
Source view paints squisq's white fallback before the requested Monaco
|
|
3094
|
+
theme is ready, which reads as a flash. */
|
|
3095
|
+
--squisq-editor-background: var(--db-editor-canvas);
|
|
3096
|
+
--squisq-editor-foreground: var(--db-text);
|
|
3097
|
+
}
|
|
3098
|
+
|
|
3099
|
+
/* Match Monaco's built-in vs-dark canvas exactly so replacing the loading
|
|
3100
|
+
textarea with Monaco does not introduce a second, subtler color flash. */
|
|
3101
|
+
:root:has(.db-shell[data-theme='dark']),
|
|
3102
|
+
.db-shell[data-theme='dark'],
|
|
3103
|
+
.squisq-editor-shell[data-theme='dark'] {
|
|
3104
|
+
--squisq-editor-background: #1e1e1e;
|
|
3105
|
+
--squisq-editor-foreground: #d4d4d4;
|
|
2912
3106
|
}
|
|
2913
3107
|
|
|
2914
3108
|
/* Squisq's segmented mode controls otherwise retain their standalone
|
|
@@ -2946,13 +3140,6 @@ body.db-resizing-sidebar * {
|
|
|
2946
3140
|
outline-offset: -2px;
|
|
2947
3141
|
}
|
|
2948
3142
|
|
|
2949
|
-
.db-shell .squisq-editor-shell[data-theme='dark'] {
|
|
2950
|
-
/* Match Monaco's built-in vs-dark canvas exactly so replacing the loading
|
|
2951
|
-
textarea with Monaco does not introduce a second, subtler color flash. */
|
|
2952
|
-
--squisq-editor-background: #1e1e1e;
|
|
2953
|
-
--squisq-editor-foreground: #d4d4d4;
|
|
2954
|
-
}
|
|
2955
|
-
|
|
2956
3143
|
/* The Write-canvas font picker is an explicit host preference, so its
|
|
2957
3144
|
variables must beat the active document theme in Write mode. Squisq's base
|
|
2958
3145
|
stylesheet intentionally puts theme fonts first; reverse that order only
|
|
@@ -2996,6 +3183,27 @@ body.db-resizing-sidebar * {
|
|
|
2996
3183
|
--squisq-text-muted: var(--db-text-muted);
|
|
2997
3184
|
}
|
|
2998
3185
|
|
|
3186
|
+
/* ── Editor desk ─────────────────────────────────────────────── */
|
|
3187
|
+
/* Squisq paints its outline pane, block card, block-preview panel, and the
|
|
3188
|
+
field behind the WYSIWYG page from one `--squisq-desk-bg` token — the
|
|
3189
|
+
"desk" the page floats on. Bind it to the DocBlocks desk tone once, and
|
|
3190
|
+
paint those surfaces from it here as well so the pairing also holds
|
|
3191
|
+
against a published squisq predating the token. Anything that wants to
|
|
3192
|
+
sit apart from the desk shades from `--db-gutter-bg`; it should not pick
|
|
3193
|
+
a tone of its own, which is how the panes drifted into slabs that read
|
|
3194
|
+
as brighter chrome rather than as the surface under the page.
|
|
3195
|
+
(The inline-preview gutter is left to `--squisq-preview-gutter-bg`,
|
|
3196
|
+
bound to the same value below, so hosts can still peel it off.) */
|
|
3197
|
+
.db-shell .squisq-editor-shell {
|
|
3198
|
+
--squisq-desk-bg: var(--db-gutter-bg);
|
|
3199
|
+
}
|
|
3200
|
+
|
|
3201
|
+
.db-shell
|
|
3202
|
+
.squisq-editor-shell
|
|
3203
|
+
:is(.squisq-wysiwyg-container, .squisq-block-card, .squisq-block-preview-panel, .squisq-outline) {
|
|
3204
|
+
background: var(--squisq-desk-bg);
|
|
3205
|
+
}
|
|
3206
|
+
|
|
2999
3207
|
/* ── Inline preview gutter: thematic green ──────────────────── */
|
|
3000
3208
|
/* Rebind squisq's `--squisq-preview-*` custom properties so the
|
|
3001
3209
|
gutter chrome (vertical bracket, diagonal connector + dots,
|
|
@@ -3055,10 +3263,6 @@ body.db-resizing-sidebar * {
|
|
|
3055
3263
|
background: var(--db-bg);
|
|
3056
3264
|
}
|
|
3057
3265
|
|
|
3058
|
-
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-wysiwyg-container {
|
|
3059
|
-
background: var(--db-editor-canvas);
|
|
3060
|
-
}
|
|
3061
|
-
|
|
3062
3266
|
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-wysiwyg-editor {
|
|
3063
3267
|
background: var(--db-bg);
|
|
3064
3268
|
}
|
|
@@ -3414,7 +3618,7 @@ html:has(.db-shell[data-theme='dark']) {
|
|
|
3414
3618
|
--db-accent-soft-25: rgba(200, 180, 143, 0.28);
|
|
3415
3619
|
--db-accent-tint-strong: #3a382e;
|
|
3416
3620
|
--db-accent-deep: #e6dcc0;
|
|
3417
|
-
--db-gutter-bg: #
|
|
3621
|
+
--db-gutter-bg: #16110b;
|
|
3418
3622
|
}
|
|
3419
3623
|
|
|
3420
3624
|
html:has(.db-shell[data-theme='light']) {
|
|
@@ -3515,7 +3719,7 @@ html:has(.db-shell[data-theme='dark'][data-accent='green']) {
|
|
|
3515
3719
|
--db-text-on-selected: #e2ebe4;
|
|
3516
3720
|
--db-accent-tint-strong: #2f4034;
|
|
3517
3721
|
--db-accent-deep: #d4e8d9;
|
|
3518
|
-
--db-gutter-bg: #
|
|
3722
|
+
--db-gutter-bg: #0e1510;
|
|
3519
3723
|
--db-input-border: #9ec2a8;
|
|
3520
3724
|
--db-editor-canvas: #0e1510;
|
|
3521
3725
|
--db-badge-bg: #294031;
|
|
@@ -3564,7 +3768,7 @@ html:has(.db-shell[data-theme='dark'][data-accent='blue']) {
|
|
|
3564
3768
|
--db-text-on-selected: #e2e8ef;
|
|
3565
3769
|
--db-accent-tint-strong: #2e3b49;
|
|
3566
3770
|
--db-accent-deep: #d8e5f2;
|
|
3567
|
-
--db-gutter-bg: #
|
|
3771
|
+
--db-gutter-bg: #0f1318;
|
|
3568
3772
|
--db-input-border: #a7bdd8;
|
|
3569
3773
|
--db-editor-canvas: #0f1318;
|
|
3570
3774
|
--db-badge-bg: #28394a;
|
|
@@ -3613,7 +3817,7 @@ html:has(.db-shell[data-theme='dark'][data-accent='purple']) {
|
|
|
3613
3817
|
--db-text-on-selected: #ece3ef;
|
|
3614
3818
|
--db-accent-tint-strong: #413348;
|
|
3615
3819
|
--db-accent-deep: #eadcf1;
|
|
3616
|
-
--db-gutter-bg: #
|
|
3820
|
+
--db-gutter-bg: #120f15;
|
|
3617
3821
|
--db-input-border: #c2a9d4;
|
|
3618
3822
|
--db-editor-canvas: #120f15;
|
|
3619
3823
|
--db-badge-bg: #3b2a44;
|
|
@@ -3662,7 +3866,7 @@ html:has(.db-shell[data-theme='dark'][data-accent='maroon']) {
|
|
|
3662
3866
|
--db-text-on-selected: #f0e3e7;
|
|
3663
3867
|
--db-accent-tint-strong: #473139;
|
|
3664
3868
|
--db-accent-deep: #f0d8e0;
|
|
3665
|
-
--db-gutter-bg: #
|
|
3869
|
+
--db-gutter-bg: #150e11;
|
|
3666
3870
|
--db-input-border: #d0a5b4;
|
|
3667
3871
|
--db-editor-canvas: #150e11;
|
|
3668
3872
|
--db-badge-bg: #442832;
|
|
@@ -3711,7 +3915,7 @@ html:has(.db-shell[data-theme='dark'][data-accent='orange']) {
|
|
|
3711
3915
|
--db-text-on-selected: #f0e7dc;
|
|
3712
3916
|
--db-accent-tint-strong: #493a2a;
|
|
3713
3917
|
--db-accent-deep: #f1dbc4;
|
|
3714
|
-
--db-gutter-bg: #
|
|
3918
|
+
--db-gutter-bg: #15100c;
|
|
3715
3919
|
--db-input-border: #d7b08a;
|
|
3716
3920
|
--db-editor-canvas: #15100c;
|
|
3717
3921
|
--db-badge-bg: #44301f;
|
|
@@ -3760,7 +3964,7 @@ html:has(.db-shell[data-theme='dark'][data-accent='gray']) {
|
|
|
3760
3964
|
--db-text-on-selected: #e8e8e8;
|
|
3761
3965
|
--db-accent-tint-strong: #383838;
|
|
3762
3966
|
--db-accent-deep: #e2e2e2;
|
|
3763
|
-
--db-gutter-bg: #
|
|
3967
|
+
--db-gutter-bg: #111111;
|
|
3764
3968
|
--db-input-border: #b8b8b8;
|
|
3765
3969
|
--db-editor-canvas: #111111;
|
|
3766
3970
|
--db-badge-bg: #333333;
|
|
@@ -3839,8 +4043,14 @@ html:has(.db-shell) .squisq-cover-slide-menu {
|
|
|
3839
4043
|
/* Custom layout authoring is portaled to document.body. Bind its host-facing
|
|
3840
4044
|
accent tokens at that portal boundary so selected layouts, palette states,
|
|
3841
4045
|
primary actions, and focus rings follow the active DocBlocks accent instead
|
|
3842
|
-
of Squisq's standalone indigo defaults.
|
|
3843
|
-
|
|
4046
|
+
of Squisq's standalone indigo defaults. Squisq repeats `data-theme` on the
|
|
4047
|
+
nested layout-manager panel, so that second theme root needs the same bridge. */
|
|
4048
|
+
html:has(.db-shell)
|
|
4049
|
+
:is(
|
|
4050
|
+
.squisq-template-designer-overlay,
|
|
4051
|
+
.squisq-layout-manager-overlay,
|
|
4052
|
+
.squisq-layout-manager-panel
|
|
4053
|
+
) {
|
|
3844
4054
|
--squisq-layout-accent-text: var(--db-accent-hover);
|
|
3845
4055
|
--squisq-layout-accent-bg: var(--db-accent);
|
|
3846
4056
|
--squisq-layout-accent-bg-hover: var(--db-accent-hover);
|
|
@@ -3852,13 +4062,21 @@ html:has(.db-shell) :is(.squisq-template-designer-overlay, .squisq-layout-manage
|
|
|
3852
4062
|
}
|
|
3853
4063
|
|
|
3854
4064
|
html:has(.db-shell)
|
|
3855
|
-
:is(
|
|
4065
|
+
:is(
|
|
4066
|
+
.squisq-template-designer-overlay,
|
|
4067
|
+
.squisq-layout-manager-overlay,
|
|
4068
|
+
.squisq-layout-manager-panel
|
|
4069
|
+
)
|
|
3856
4070
|
.squisq-template-designer-btn--primary {
|
|
3857
4071
|
color: var(--db-text-on-accent);
|
|
3858
4072
|
}
|
|
3859
4073
|
|
|
3860
4074
|
html:has(.db-shell)
|
|
3861
|
-
:is(
|
|
4075
|
+
:is(
|
|
4076
|
+
.squisq-template-designer-overlay,
|
|
4077
|
+
.squisq-layout-manager-overlay,
|
|
4078
|
+
.squisq-layout-manager-panel
|
|
4079
|
+
)
|
|
3862
4080
|
.squisq-template-designer-field
|
|
3863
4081
|
input:focus {
|
|
3864
4082
|
box-shadow: 0 0 0 3px var(--db-accent-soft-25);
|
|
@@ -4200,7 +4418,7 @@ html:has(.db-shell)
|
|
|
4200
4418
|
color: var(--squisq-template-gallery-section-title);
|
|
4201
4419
|
}
|
|
4202
4420
|
|
|
4203
|
-
html:has(.db-shell[data-theme='dark'])
|
|
4421
|
+
html:has(.db-shell[data-theme='dark']) [data-squisq-template-gallery-portal] {
|
|
4204
4422
|
background: var(--db-bg-subtle);
|
|
4205
4423
|
border-color: var(--db-border);
|
|
4206
4424
|
box-shadow:
|
|
@@ -4209,46 +4427,46 @@ html:has(.db-shell[data-theme='dark']) #squisq-template-gallery-portal {
|
|
|
4209
4427
|
}
|
|
4210
4428
|
|
|
4211
4429
|
html:has(.db-shell[data-theme='dark'])
|
|
4212
|
-
|
|
4430
|
+
[data-squisq-template-gallery-portal]
|
|
4213
4431
|
.squisq-template-gallery-none {
|
|
4214
4432
|
background: transparent;
|
|
4215
4433
|
border-color: var(--db-border);
|
|
4216
4434
|
}
|
|
4217
4435
|
|
|
4218
4436
|
html:has(.db-shell[data-theme='dark'])
|
|
4219
|
-
|
|
4437
|
+
[data-squisq-template-gallery-portal]
|
|
4220
4438
|
.squisq-template-gallery-none:hover {
|
|
4221
4439
|
background: var(--db-bg-hover);
|
|
4222
4440
|
}
|
|
4223
4441
|
|
|
4224
4442
|
html:has(.db-shell[data-theme='dark'])
|
|
4225
|
-
|
|
4443
|
+
[data-squisq-template-gallery-portal]
|
|
4226
4444
|
.squisq-template-gallery-none.squisq-template-gallery-card--selected {
|
|
4227
4445
|
background: var(--db-accent-tint-strong);
|
|
4228
4446
|
border-color: var(--db-accent);
|
|
4229
4447
|
}
|
|
4230
4448
|
|
|
4231
4449
|
html:has(.db-shell[data-theme='dark'])
|
|
4232
|
-
|
|
4450
|
+
[data-squisq-template-gallery-portal]
|
|
4233
4451
|
.squisq-template-gallery-none-label {
|
|
4234
4452
|
color: var(--db-text);
|
|
4235
4453
|
}
|
|
4236
4454
|
|
|
4237
4455
|
html:has(.db-shell[data-theme='dark'])
|
|
4238
|
-
|
|
4456
|
+
[data-squisq-template-gallery-portal]
|
|
4239
4457
|
.squisq-template-gallery-none-desc {
|
|
4240
4458
|
color: var(--db-text-muted);
|
|
4241
4459
|
}
|
|
4242
4460
|
|
|
4243
4461
|
html:has(.db-shell[data-theme='dark'])
|
|
4244
|
-
|
|
4462
|
+
[data-squisq-template-gallery-portal]
|
|
4245
4463
|
.squisq-template-gallery-card {
|
|
4246
4464
|
background: transparent;
|
|
4247
4465
|
border-color: var(--db-border);
|
|
4248
4466
|
}
|
|
4249
4467
|
|
|
4250
4468
|
html:has(.db-shell[data-theme='dark'])
|
|
4251
|
-
|
|
4469
|
+
[data-squisq-template-gallery-portal]
|
|
4252
4470
|
.squisq-template-gallery-card:hover {
|
|
4253
4471
|
background: var(--db-bg-hover);
|
|
4254
4472
|
border-color: var(--db-accent);
|
|
@@ -4256,7 +4474,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
4256
4474
|
}
|
|
4257
4475
|
|
|
4258
4476
|
html:has(.db-shell[data-theme='dark'])
|
|
4259
|
-
|
|
4477
|
+
[data-squisq-template-gallery-portal]
|
|
4260
4478
|
.squisq-template-gallery-card--selected {
|
|
4261
4479
|
background: var(--db-accent-tint-strong);
|
|
4262
4480
|
border-color: var(--db-accent-hover);
|
|
@@ -4264,27 +4482,27 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
4264
4482
|
}
|
|
4265
4483
|
|
|
4266
4484
|
html:has(.db-shell[data-theme='dark'])
|
|
4267
|
-
|
|
4485
|
+
[data-squisq-template-gallery-portal]
|
|
4268
4486
|
.squisq-template-gallery-card-icon {
|
|
4269
4487
|
background: var(--db-bg);
|
|
4270
4488
|
border-color: var(--db-border);
|
|
4271
4489
|
}
|
|
4272
4490
|
|
|
4273
4491
|
html:has(.db-shell[data-theme='dark'])
|
|
4274
|
-
|
|
4492
|
+
[data-squisq-template-gallery-portal]
|
|
4275
4493
|
.squisq-template-gallery-card-name {
|
|
4276
4494
|
color: var(--db-text);
|
|
4277
4495
|
}
|
|
4278
4496
|
|
|
4279
4497
|
html:has(.db-shell[data-theme='dark'])
|
|
4280
|
-
|
|
4498
|
+
[data-squisq-template-gallery-portal]
|
|
4281
4499
|
.squisq-template-gallery-card-desc {
|
|
4282
4500
|
color: var(--db-text-muted);
|
|
4283
4501
|
}
|
|
4284
4502
|
|
|
4285
4503
|
/* Recolor the indigo accent fills inside template thumbnail SVGs */
|
|
4286
4504
|
html:has(.db-shell[data-theme='dark'])
|
|
4287
|
-
|
|
4505
|
+
[data-squisq-template-gallery-portal]
|
|
4288
4506
|
.squisq-template-picker-icon
|
|
4289
4507
|
[fill='#818cf8'] {
|
|
4290
4508
|
fill: var(--db-accent-hover);
|
|
@@ -4546,38 +4764,28 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
4546
4764
|
opacity: 0.62;
|
|
4547
4765
|
}
|
|
4548
4766
|
|
|
4549
|
-
/* Outline pane (left of the editor)
|
|
4550
|
-
|
|
4551
|
-
|
|
4552
|
-
|
|
4553
|
-
.db-shell[data-theme='light'] .squisq-outline {
|
|
4554
|
-
background: var(--db-gutter-bg);
|
|
4555
|
-
color: var(--db-text);
|
|
4556
|
-
}
|
|
4557
|
-
|
|
4558
|
-
.db-shell[data-theme='light'] .squisq-outline-row:hover {
|
|
4559
|
-
background: var(--db-accent-soft-15);
|
|
4560
|
-
}
|
|
4561
|
-
|
|
4562
|
-
.db-shell[data-theme='dark'] .squisq-outline {
|
|
4563
|
-
background: var(--db-gutter-bg);
|
|
4767
|
+
/* Outline pane (left of the editor). Its background comes from
|
|
4768
|
+
`--squisq-desk-bg` above, same as every other desk surface — only the
|
|
4769
|
+
text and hover tint need binding to the DocBlocks palette. */
|
|
4770
|
+
.db-shell .squisq-outline {
|
|
4564
4771
|
color: var(--db-text);
|
|
4565
4772
|
}
|
|
4566
4773
|
|
|
4567
|
-
.db-shell
|
|
4774
|
+
.db-shell .squisq-outline-row:hover {
|
|
4568
4775
|
background: var(--db-accent-soft-15);
|
|
4569
4776
|
}
|
|
4570
4777
|
|
|
4571
|
-
/*
|
|
4572
|
-
|
|
4573
|
-
|
|
4574
|
-
|
|
4778
|
+
/* Hairlines on the canvas side of each chrome pane. The desk is one
|
|
4779
|
+
continuous tone across the panes and the field behind the page, so
|
|
4780
|
+
these mark where the panes end without the --db-border-strong stripe
|
|
4781
|
+
that used to divide two different surfaces — the page's own shadow
|
|
4782
|
+
does the heavier separating. */
|
|
4575
4783
|
.db-shell .squisq-outline {
|
|
4576
|
-
border-right: 1px solid var(--db-border
|
|
4784
|
+
border-right: 1px solid var(--db-border);
|
|
4577
4785
|
}
|
|
4578
4786
|
|
|
4579
4787
|
.db-shell .squisq-inline-preview-gutter {
|
|
4580
|
-
border-left: 1px solid var(--db-border
|
|
4788
|
+
border-left: 1px solid var(--db-border);
|
|
4581
4789
|
}
|
|
4582
4790
|
|
|
4583
4791
|
/* Toolbar overflow menu. Squisq intentionally ships a neutral slate
|
|
@@ -5241,6 +5449,55 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
5241
5449
|
flex-shrink: 0;
|
|
5242
5450
|
}
|
|
5243
5451
|
|
|
5452
|
+
/* The offer to turn Git on for a folder inside a larger repository. It sits
|
|
5453
|
+
directly above the sidebar footer and borrows its voice: muted, 11px, no
|
|
5454
|
+
icon and no accent — this is a default the user may change, not a fault. */
|
|
5455
|
+
.db-git-grant-notice {
|
|
5456
|
+
box-sizing: border-box;
|
|
5457
|
+
display: flex;
|
|
5458
|
+
align-items: center;
|
|
5459
|
+
gap: 6px;
|
|
5460
|
+
flex-shrink: 0;
|
|
5461
|
+
padding: 6px 12px 6px 18px;
|
|
5462
|
+
border-top: 1px solid var(--db-border);
|
|
5463
|
+
color: var(--db-text-muted);
|
|
5464
|
+
font-size: 11px;
|
|
5465
|
+
line-height: 1.3;
|
|
5466
|
+
}
|
|
5467
|
+
|
|
5468
|
+
.db-git-grant-notice-text {
|
|
5469
|
+
overflow: hidden;
|
|
5470
|
+
text-overflow: ellipsis;
|
|
5471
|
+
white-space: nowrap;
|
|
5472
|
+
}
|
|
5473
|
+
|
|
5474
|
+
.db-git-grant-notice-action {
|
|
5475
|
+
flex-shrink: 0;
|
|
5476
|
+
padding: 0;
|
|
5477
|
+
border: 0;
|
|
5478
|
+
background: transparent;
|
|
5479
|
+
color: inherit;
|
|
5480
|
+
font: inherit;
|
|
5481
|
+
line-height: inherit;
|
|
5482
|
+
text-decoration: underline;
|
|
5483
|
+
white-space: nowrap;
|
|
5484
|
+
cursor: pointer;
|
|
5485
|
+
}
|
|
5486
|
+
|
|
5487
|
+
.db-git-grant-notice-action:hover {
|
|
5488
|
+
color: var(--db-text-secondary);
|
|
5489
|
+
}
|
|
5490
|
+
|
|
5491
|
+
.db-git-grant-remember {
|
|
5492
|
+
display: flex;
|
|
5493
|
+
align-items: center;
|
|
5494
|
+
gap: 8px;
|
|
5495
|
+
margin: 12px 0;
|
|
5496
|
+
font-size: 13px;
|
|
5497
|
+
color: var(--db-text);
|
|
5498
|
+
cursor: pointer;
|
|
5499
|
+
}
|
|
5500
|
+
|
|
5244
5501
|
/* Actions dropdown (mirrors db-ws-settings-dropdown) */
|
|
5245
5502
|
.db-git-menu {
|
|
5246
5503
|
position: absolute;
|
|
@@ -5604,6 +5861,7 @@ button.db-git-file-row:hover {
|
|
|
5604
5861
|
.db-app-menu-caret,
|
|
5605
5862
|
.db-ws-settings-btn,
|
|
5606
5863
|
.db-shell-sidebar-resizer,
|
|
5864
|
+
.db-sidebar-collapse-preview,
|
|
5607
5865
|
.db-export-chip,
|
|
5608
5866
|
.db-git-progress-bar > span {
|
|
5609
5867
|
transition: none;
|
|
@@ -5684,6 +5942,16 @@ button.db-git-file-row:hover {
|
|
|
5684
5942
|
min-height: 0;
|
|
5685
5943
|
}
|
|
5686
5944
|
|
|
5945
|
+
/* The flexible actions lane owns the otherwise-empty gap between Squisq's
|
|
5946
|
+
formatting controls and the fixed document controls. Mark the child
|
|
5947
|
+
explicitly because its overflow clipping can prevent the toolbar's drag
|
|
5948
|
+
region from reaching those pixels. Controls opt out below. */
|
|
5949
|
+
.db-shell .squisq-toolbar-actions {
|
|
5950
|
+
app-region: drag;
|
|
5951
|
+
-webkit-app-region: drag;
|
|
5952
|
+
cursor: grab;
|
|
5953
|
+
}
|
|
5954
|
+
|
|
5687
5955
|
.db-shell .db-shell-sidebar-header {
|
|
5688
5956
|
padding-block: 0;
|
|
5689
5957
|
padding-left: max(4px, calc(env(titlebar-area-x, 0px) + 4px));
|