@bendyline/docblocks-react 2.4.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 +457 -50
- package/dist/{ExportDialog-VBWHFJ2R.js → ExportDialog-Q4VWI43H.js} +2 -2
- package/dist/{ExportToolbarControls-N3TCL5DD.js → ExportToolbarControls-QYLBRWM7.js} +8 -8
- 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/{ShareDialog-PAMOQQFB.js → ShareDialog-4OX3UPJ4.js} +150 -3
- 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 +45 -8
- package/dist/index.js +952 -511
- 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 +22 -9
- package/src/styles/docblocks.css +443 -97
- 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;
|
|
@@ -2743,7 +2863,7 @@ body.db-resizing-sidebar * {
|
|
|
2743
2863
|
/* Shared-document links intentionally resemble export because they package a
|
|
2744
2864
|
bounded Markdown-only DBK; the warning is the critical distinction. */
|
|
2745
2865
|
.db-share-dialog {
|
|
2746
|
-
width:
|
|
2866
|
+
width: 560px;
|
|
2747
2867
|
}
|
|
2748
2868
|
|
|
2749
2869
|
.db-share-warning {
|
|
@@ -2783,10 +2903,88 @@ body.db-resizing-sidebar * {
|
|
|
2783
2903
|
color: var(--db-danger, #a33a35);
|
|
2784
2904
|
}
|
|
2785
2905
|
|
|
2906
|
+
.db-share-qr {
|
|
2907
|
+
margin: 18px 0 14px;
|
|
2908
|
+
padding-top: 16px;
|
|
2909
|
+
border-top: 1px solid var(--db-border);
|
|
2910
|
+
}
|
|
2911
|
+
|
|
2912
|
+
.db-share-qr-heading {
|
|
2913
|
+
display: flex;
|
|
2914
|
+
align-items: flex-start;
|
|
2915
|
+
justify-content: space-between;
|
|
2916
|
+
gap: 12px;
|
|
2917
|
+
}
|
|
2918
|
+
|
|
2919
|
+
.db-share-qr-heading h3 {
|
|
2920
|
+
margin: 0;
|
|
2921
|
+
color: var(--db-text);
|
|
2922
|
+
font-size: 14px;
|
|
2923
|
+
line-height: 1.4;
|
|
2924
|
+
}
|
|
2925
|
+
|
|
2926
|
+
.db-share-qr-actions {
|
|
2927
|
+
display: flex;
|
|
2928
|
+
flex-shrink: 0;
|
|
2929
|
+
flex-wrap: wrap;
|
|
2930
|
+
justify-content: flex-end;
|
|
2931
|
+
gap: 8px;
|
|
2932
|
+
}
|
|
2933
|
+
|
|
2934
|
+
.db-share-qr-image {
|
|
2935
|
+
display: block;
|
|
2936
|
+
box-sizing: border-box;
|
|
2937
|
+
width: min(100%, 360px);
|
|
2938
|
+
height: auto;
|
|
2939
|
+
margin: 14px auto 0;
|
|
2940
|
+
image-rendering: pixelated;
|
|
2941
|
+
background: #fff;
|
|
2942
|
+
border: 1px solid var(--db-border);
|
|
2943
|
+
border-radius: 4px;
|
|
2944
|
+
}
|
|
2945
|
+
|
|
2946
|
+
.db-share-qr-placeholder {
|
|
2947
|
+
display: flex;
|
|
2948
|
+
align-items: center;
|
|
2949
|
+
justify-content: center;
|
|
2950
|
+
box-sizing: border-box;
|
|
2951
|
+
min-height: 120px;
|
|
2952
|
+
margin-top: 14px;
|
|
2953
|
+
padding: 18px;
|
|
2954
|
+
color: var(--db-text-muted);
|
|
2955
|
+
text-align: center;
|
|
2956
|
+
background: var(--db-bg-subtle);
|
|
2957
|
+
border: 1px dashed var(--db-border);
|
|
2958
|
+
border-radius: 4px;
|
|
2959
|
+
}
|
|
2960
|
+
|
|
2961
|
+
.db-share-qr-placeholder--error {
|
|
2962
|
+
color: var(--db-danger, #a33a35);
|
|
2963
|
+
border-color: currentColor;
|
|
2964
|
+
}
|
|
2965
|
+
|
|
2966
|
+
.db-share-qr-status {
|
|
2967
|
+
display: block;
|
|
2968
|
+
min-height: 1.4em;
|
|
2969
|
+
margin-top: 6px;
|
|
2970
|
+
text-align: center;
|
|
2971
|
+
}
|
|
2972
|
+
|
|
2786
2973
|
.db-share-temporary-note {
|
|
2787
2974
|
color: var(--db-text-muted);
|
|
2788
2975
|
}
|
|
2789
2976
|
|
|
2977
|
+
@media (max-width: 560px) {
|
|
2978
|
+
.db-share-qr-heading {
|
|
2979
|
+
display: block;
|
|
2980
|
+
}
|
|
2981
|
+
|
|
2982
|
+
.db-share-qr-actions {
|
|
2983
|
+
justify-content: flex-start;
|
|
2984
|
+
margin-top: 10px;
|
|
2985
|
+
}
|
|
2986
|
+
}
|
|
2987
|
+
|
|
2790
2988
|
/* ── Squisq editor chrome separators ─────────────────────────── */
|
|
2791
2989
|
/* Strengthen the dividers so the toolbar, tabs, and editor body
|
|
2792
2990
|
read as three distinct zones instead of near-identical whites. */
|
|
@@ -2816,21 +3014,95 @@ body.db-resizing-sidebar * {
|
|
|
2816
3014
|
background: var(--db-editor-canvas);
|
|
2817
3015
|
}
|
|
2818
3016
|
|
|
2819
|
-
/*
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
|
|
2824
|
-
|
|
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. */
|
|
2825
3064
|
--squisq-accent: var(--db-accent);
|
|
2826
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);
|
|
2827
3070
|
--squisq-text-on-accent: var(--db-text-on-accent);
|
|
2828
|
-
|
|
2829
|
-
|
|
2830
|
-
|
|
2831
|
-
--squisq-hover
|
|
2832
|
-
--squisq-
|
|
2833
|
-
--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;
|
|
2834
3106
|
}
|
|
2835
3107
|
|
|
2836
3108
|
/* Squisq's segmented mode controls otherwise retain their standalone
|
|
@@ -2868,13 +3140,6 @@ body.db-resizing-sidebar * {
|
|
|
2868
3140
|
outline-offset: -2px;
|
|
2869
3141
|
}
|
|
2870
3142
|
|
|
2871
|
-
.db-shell .squisq-editor-shell[data-theme='dark'] {
|
|
2872
|
-
/* Match Monaco's built-in vs-dark canvas exactly so replacing the loading
|
|
2873
|
-
textarea with Monaco does not introduce a second, subtler color flash. */
|
|
2874
|
-
--squisq-editor-background: #1e1e1e;
|
|
2875
|
-
--squisq-editor-foreground: #d4d4d4;
|
|
2876
|
-
}
|
|
2877
|
-
|
|
2878
3143
|
/* The Write-canvas font picker is an explicit host preference, so its
|
|
2879
3144
|
variables must beat the active document theme in Write mode. Squisq's base
|
|
2880
3145
|
stylesheet intentionally puts theme fonts first; reverse that order only
|
|
@@ -2918,6 +3183,27 @@ body.db-resizing-sidebar * {
|
|
|
2918
3183
|
--squisq-text-muted: var(--db-text-muted);
|
|
2919
3184
|
}
|
|
2920
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
|
+
|
|
2921
3207
|
/* ── Inline preview gutter: thematic green ──────────────────── */
|
|
2922
3208
|
/* Rebind squisq's `--squisq-preview-*` custom properties so the
|
|
2923
3209
|
gutter chrome (vertical bracket, diagonal connector + dots,
|
|
@@ -2977,10 +3263,6 @@ body.db-resizing-sidebar * {
|
|
|
2977
3263
|
background: var(--db-bg);
|
|
2978
3264
|
}
|
|
2979
3265
|
|
|
2980
|
-
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-wysiwyg-container {
|
|
2981
|
-
background: var(--db-editor-canvas);
|
|
2982
|
-
}
|
|
2983
|
-
|
|
2984
3266
|
.db-shell[data-theme='dark'] .squisq-editor-shell[data-theme='dark'] .squisq-wysiwyg-editor {
|
|
2985
3267
|
background: var(--db-bg);
|
|
2986
3268
|
}
|
|
@@ -3336,7 +3618,7 @@ html:has(.db-shell[data-theme='dark']) {
|
|
|
3336
3618
|
--db-accent-soft-25: rgba(200, 180, 143, 0.28);
|
|
3337
3619
|
--db-accent-tint-strong: #3a382e;
|
|
3338
3620
|
--db-accent-deep: #e6dcc0;
|
|
3339
|
-
--db-gutter-bg: #
|
|
3621
|
+
--db-gutter-bg: #16110b;
|
|
3340
3622
|
}
|
|
3341
3623
|
|
|
3342
3624
|
html:has(.db-shell[data-theme='light']) {
|
|
@@ -3437,7 +3719,7 @@ html:has(.db-shell[data-theme='dark'][data-accent='green']) {
|
|
|
3437
3719
|
--db-text-on-selected: #e2ebe4;
|
|
3438
3720
|
--db-accent-tint-strong: #2f4034;
|
|
3439
3721
|
--db-accent-deep: #d4e8d9;
|
|
3440
|
-
--db-gutter-bg: #
|
|
3722
|
+
--db-gutter-bg: #0e1510;
|
|
3441
3723
|
--db-input-border: #9ec2a8;
|
|
3442
3724
|
--db-editor-canvas: #0e1510;
|
|
3443
3725
|
--db-badge-bg: #294031;
|
|
@@ -3486,7 +3768,7 @@ html:has(.db-shell[data-theme='dark'][data-accent='blue']) {
|
|
|
3486
3768
|
--db-text-on-selected: #e2e8ef;
|
|
3487
3769
|
--db-accent-tint-strong: #2e3b49;
|
|
3488
3770
|
--db-accent-deep: #d8e5f2;
|
|
3489
|
-
--db-gutter-bg: #
|
|
3771
|
+
--db-gutter-bg: #0f1318;
|
|
3490
3772
|
--db-input-border: #a7bdd8;
|
|
3491
3773
|
--db-editor-canvas: #0f1318;
|
|
3492
3774
|
--db-badge-bg: #28394a;
|
|
@@ -3535,7 +3817,7 @@ html:has(.db-shell[data-theme='dark'][data-accent='purple']) {
|
|
|
3535
3817
|
--db-text-on-selected: #ece3ef;
|
|
3536
3818
|
--db-accent-tint-strong: #413348;
|
|
3537
3819
|
--db-accent-deep: #eadcf1;
|
|
3538
|
-
--db-gutter-bg: #
|
|
3820
|
+
--db-gutter-bg: #120f15;
|
|
3539
3821
|
--db-input-border: #c2a9d4;
|
|
3540
3822
|
--db-editor-canvas: #120f15;
|
|
3541
3823
|
--db-badge-bg: #3b2a44;
|
|
@@ -3584,7 +3866,7 @@ html:has(.db-shell[data-theme='dark'][data-accent='maroon']) {
|
|
|
3584
3866
|
--db-text-on-selected: #f0e3e7;
|
|
3585
3867
|
--db-accent-tint-strong: #473139;
|
|
3586
3868
|
--db-accent-deep: #f0d8e0;
|
|
3587
|
-
--db-gutter-bg: #
|
|
3869
|
+
--db-gutter-bg: #150e11;
|
|
3588
3870
|
--db-input-border: #d0a5b4;
|
|
3589
3871
|
--db-editor-canvas: #150e11;
|
|
3590
3872
|
--db-badge-bg: #442832;
|
|
@@ -3633,7 +3915,7 @@ html:has(.db-shell[data-theme='dark'][data-accent='orange']) {
|
|
|
3633
3915
|
--db-text-on-selected: #f0e7dc;
|
|
3634
3916
|
--db-accent-tint-strong: #493a2a;
|
|
3635
3917
|
--db-accent-deep: #f1dbc4;
|
|
3636
|
-
--db-gutter-bg: #
|
|
3918
|
+
--db-gutter-bg: #15100c;
|
|
3637
3919
|
--db-input-border: #d7b08a;
|
|
3638
3920
|
--db-editor-canvas: #15100c;
|
|
3639
3921
|
--db-badge-bg: #44301f;
|
|
@@ -3682,7 +3964,7 @@ html:has(.db-shell[data-theme='dark'][data-accent='gray']) {
|
|
|
3682
3964
|
--db-text-on-selected: #e8e8e8;
|
|
3683
3965
|
--db-accent-tint-strong: #383838;
|
|
3684
3966
|
--db-accent-deep: #e2e2e2;
|
|
3685
|
-
--db-gutter-bg: #
|
|
3967
|
+
--db-gutter-bg: #111111;
|
|
3686
3968
|
--db-input-border: #b8b8b8;
|
|
3687
3969
|
--db-editor-canvas: #111111;
|
|
3688
3970
|
--db-badge-bg: #333333;
|
|
@@ -3761,8 +4043,14 @@ html:has(.db-shell) .squisq-cover-slide-menu {
|
|
|
3761
4043
|
/* Custom layout authoring is portaled to document.body. Bind its host-facing
|
|
3762
4044
|
accent tokens at that portal boundary so selected layouts, palette states,
|
|
3763
4045
|
primary actions, and focus rings follow the active DocBlocks accent instead
|
|
3764
|
-
of Squisq's standalone indigo defaults.
|
|
3765
|
-
|
|
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
|
+
) {
|
|
3766
4054
|
--squisq-layout-accent-text: var(--db-accent-hover);
|
|
3767
4055
|
--squisq-layout-accent-bg: var(--db-accent);
|
|
3768
4056
|
--squisq-layout-accent-bg-hover: var(--db-accent-hover);
|
|
@@ -3774,13 +4062,21 @@ html:has(.db-shell) :is(.squisq-template-designer-overlay, .squisq-layout-manage
|
|
|
3774
4062
|
}
|
|
3775
4063
|
|
|
3776
4064
|
html:has(.db-shell)
|
|
3777
|
-
:is(
|
|
4065
|
+
:is(
|
|
4066
|
+
.squisq-template-designer-overlay,
|
|
4067
|
+
.squisq-layout-manager-overlay,
|
|
4068
|
+
.squisq-layout-manager-panel
|
|
4069
|
+
)
|
|
3778
4070
|
.squisq-template-designer-btn--primary {
|
|
3779
4071
|
color: var(--db-text-on-accent);
|
|
3780
4072
|
}
|
|
3781
4073
|
|
|
3782
4074
|
html:has(.db-shell)
|
|
3783
|
-
:is(
|
|
4075
|
+
:is(
|
|
4076
|
+
.squisq-template-designer-overlay,
|
|
4077
|
+
.squisq-layout-manager-overlay,
|
|
4078
|
+
.squisq-layout-manager-panel
|
|
4079
|
+
)
|
|
3784
4080
|
.squisq-template-designer-field
|
|
3785
4081
|
input:focus {
|
|
3786
4082
|
box-shadow: 0 0 0 3px var(--db-accent-soft-25);
|
|
@@ -4122,7 +4418,7 @@ html:has(.db-shell)
|
|
|
4122
4418
|
color: var(--squisq-template-gallery-section-title);
|
|
4123
4419
|
}
|
|
4124
4420
|
|
|
4125
|
-
html:has(.db-shell[data-theme='dark'])
|
|
4421
|
+
html:has(.db-shell[data-theme='dark']) [data-squisq-template-gallery-portal] {
|
|
4126
4422
|
background: var(--db-bg-subtle);
|
|
4127
4423
|
border-color: var(--db-border);
|
|
4128
4424
|
box-shadow:
|
|
@@ -4131,46 +4427,46 @@ html:has(.db-shell[data-theme='dark']) #squisq-template-gallery-portal {
|
|
|
4131
4427
|
}
|
|
4132
4428
|
|
|
4133
4429
|
html:has(.db-shell[data-theme='dark'])
|
|
4134
|
-
|
|
4430
|
+
[data-squisq-template-gallery-portal]
|
|
4135
4431
|
.squisq-template-gallery-none {
|
|
4136
4432
|
background: transparent;
|
|
4137
4433
|
border-color: var(--db-border);
|
|
4138
4434
|
}
|
|
4139
4435
|
|
|
4140
4436
|
html:has(.db-shell[data-theme='dark'])
|
|
4141
|
-
|
|
4437
|
+
[data-squisq-template-gallery-portal]
|
|
4142
4438
|
.squisq-template-gallery-none:hover {
|
|
4143
4439
|
background: var(--db-bg-hover);
|
|
4144
4440
|
}
|
|
4145
4441
|
|
|
4146
4442
|
html:has(.db-shell[data-theme='dark'])
|
|
4147
|
-
|
|
4443
|
+
[data-squisq-template-gallery-portal]
|
|
4148
4444
|
.squisq-template-gallery-none.squisq-template-gallery-card--selected {
|
|
4149
4445
|
background: var(--db-accent-tint-strong);
|
|
4150
4446
|
border-color: var(--db-accent);
|
|
4151
4447
|
}
|
|
4152
4448
|
|
|
4153
4449
|
html:has(.db-shell[data-theme='dark'])
|
|
4154
|
-
|
|
4450
|
+
[data-squisq-template-gallery-portal]
|
|
4155
4451
|
.squisq-template-gallery-none-label {
|
|
4156
4452
|
color: var(--db-text);
|
|
4157
4453
|
}
|
|
4158
4454
|
|
|
4159
4455
|
html:has(.db-shell[data-theme='dark'])
|
|
4160
|
-
|
|
4456
|
+
[data-squisq-template-gallery-portal]
|
|
4161
4457
|
.squisq-template-gallery-none-desc {
|
|
4162
4458
|
color: var(--db-text-muted);
|
|
4163
4459
|
}
|
|
4164
4460
|
|
|
4165
4461
|
html:has(.db-shell[data-theme='dark'])
|
|
4166
|
-
|
|
4462
|
+
[data-squisq-template-gallery-portal]
|
|
4167
4463
|
.squisq-template-gallery-card {
|
|
4168
4464
|
background: transparent;
|
|
4169
4465
|
border-color: var(--db-border);
|
|
4170
4466
|
}
|
|
4171
4467
|
|
|
4172
4468
|
html:has(.db-shell[data-theme='dark'])
|
|
4173
|
-
|
|
4469
|
+
[data-squisq-template-gallery-portal]
|
|
4174
4470
|
.squisq-template-gallery-card:hover {
|
|
4175
4471
|
background: var(--db-bg-hover);
|
|
4176
4472
|
border-color: var(--db-accent);
|
|
@@ -4178,7 +4474,7 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
4178
4474
|
}
|
|
4179
4475
|
|
|
4180
4476
|
html:has(.db-shell[data-theme='dark'])
|
|
4181
|
-
|
|
4477
|
+
[data-squisq-template-gallery-portal]
|
|
4182
4478
|
.squisq-template-gallery-card--selected {
|
|
4183
4479
|
background: var(--db-accent-tint-strong);
|
|
4184
4480
|
border-color: var(--db-accent-hover);
|
|
@@ -4186,27 +4482,27 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
4186
4482
|
}
|
|
4187
4483
|
|
|
4188
4484
|
html:has(.db-shell[data-theme='dark'])
|
|
4189
|
-
|
|
4485
|
+
[data-squisq-template-gallery-portal]
|
|
4190
4486
|
.squisq-template-gallery-card-icon {
|
|
4191
4487
|
background: var(--db-bg);
|
|
4192
4488
|
border-color: var(--db-border);
|
|
4193
4489
|
}
|
|
4194
4490
|
|
|
4195
4491
|
html:has(.db-shell[data-theme='dark'])
|
|
4196
|
-
|
|
4492
|
+
[data-squisq-template-gallery-portal]
|
|
4197
4493
|
.squisq-template-gallery-card-name {
|
|
4198
4494
|
color: var(--db-text);
|
|
4199
4495
|
}
|
|
4200
4496
|
|
|
4201
4497
|
html:has(.db-shell[data-theme='dark'])
|
|
4202
|
-
|
|
4498
|
+
[data-squisq-template-gallery-portal]
|
|
4203
4499
|
.squisq-template-gallery-card-desc {
|
|
4204
4500
|
color: var(--db-text-muted);
|
|
4205
4501
|
}
|
|
4206
4502
|
|
|
4207
4503
|
/* Recolor the indigo accent fills inside template thumbnail SVGs */
|
|
4208
4504
|
html:has(.db-shell[data-theme='dark'])
|
|
4209
|
-
|
|
4505
|
+
[data-squisq-template-gallery-portal]
|
|
4210
4506
|
.squisq-template-picker-icon
|
|
4211
4507
|
[fill='#818cf8'] {
|
|
4212
4508
|
fill: var(--db-accent-hover);
|
|
@@ -4468,38 +4764,28 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
4468
4764
|
opacity: 0.62;
|
|
4469
4765
|
}
|
|
4470
4766
|
|
|
4471
|
-
/* Outline pane (left of the editor)
|
|
4472
|
-
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
.db-shell[data-theme='light'] .squisq-outline {
|
|
4476
|
-
background: var(--db-gutter-bg);
|
|
4477
|
-
color: var(--db-text);
|
|
4478
|
-
}
|
|
4479
|
-
|
|
4480
|
-
.db-shell[data-theme='light'] .squisq-outline-row:hover {
|
|
4481
|
-
background: var(--db-accent-soft-15);
|
|
4482
|
-
}
|
|
4483
|
-
|
|
4484
|
-
.db-shell[data-theme='dark'] .squisq-outline {
|
|
4485
|
-
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 {
|
|
4486
4771
|
color: var(--db-text);
|
|
4487
4772
|
}
|
|
4488
4773
|
|
|
4489
|
-
.db-shell
|
|
4774
|
+
.db-shell .squisq-outline-row:hover {
|
|
4490
4775
|
background: var(--db-accent-soft-15);
|
|
4491
4776
|
}
|
|
4492
4777
|
|
|
4493
|
-
/*
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
|
|
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. */
|
|
4497
4783
|
.db-shell .squisq-outline {
|
|
4498
|
-
border-right: 1px solid var(--db-border
|
|
4784
|
+
border-right: 1px solid var(--db-border);
|
|
4499
4785
|
}
|
|
4500
4786
|
|
|
4501
4787
|
.db-shell .squisq-inline-preview-gutter {
|
|
4502
|
-
border-left: 1px solid var(--db-border
|
|
4788
|
+
border-left: 1px solid var(--db-border);
|
|
4503
4789
|
}
|
|
4504
4790
|
|
|
4505
4791
|
/* Toolbar overflow menu. Squisq intentionally ships a neutral slate
|
|
@@ -5163,6 +5449,55 @@ html:has(.db-shell[data-theme='dark'])
|
|
|
5163
5449
|
flex-shrink: 0;
|
|
5164
5450
|
}
|
|
5165
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
|
+
|
|
5166
5501
|
/* Actions dropdown (mirrors db-ws-settings-dropdown) */
|
|
5167
5502
|
.db-git-menu {
|
|
5168
5503
|
position: absolute;
|
|
@@ -5526,6 +5861,7 @@ button.db-git-file-row:hover {
|
|
|
5526
5861
|
.db-app-menu-caret,
|
|
5527
5862
|
.db-ws-settings-btn,
|
|
5528
5863
|
.db-shell-sidebar-resizer,
|
|
5864
|
+
.db-sidebar-collapse-preview,
|
|
5529
5865
|
.db-export-chip,
|
|
5530
5866
|
.db-git-progress-bar > span {
|
|
5531
5867
|
transition: none;
|
|
@@ -5606,6 +5942,16 @@ button.db-git-file-row:hover {
|
|
|
5606
5942
|
min-height: 0;
|
|
5607
5943
|
}
|
|
5608
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
|
+
|
|
5609
5955
|
.db-shell .db-shell-sidebar-header {
|
|
5610
5956
|
padding-block: 0;
|
|
5611
5957
|
padding-left: max(4px, calc(env(titlebar-area-x, 0px) + 4px));
|