@bendyline/docblocks-react 2.1.0 → 2.1.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.
Files changed (49) hide show
  1. package/README.md +12 -3
  2. package/dist/ExportDialog-VYATD5UC.js +9 -0
  3. package/dist/{ExportToolbarControls-GHAOJMH6.js → ExportToolbarControls-C46GMPKC.js} +70 -41
  4. package/dist/{GitToolbarControl-GNMRVKWQ.js → GitToolbarControl-FW3BZFXV.js} +2 -3
  5. package/dist/{GitUI-VHOBQY43.js → GitUI-GMH3PAYL.js} +3 -4
  6. package/dist/LazyEditorShell-LU4QFPDX.js +5 -0
  7. package/dist/{ShareDialog-63ENBEDZ.js → ShareDialog-PAMOQQFB.js} +0 -1
  8. package/dist/{chunk-UNYZQXWR.js → chunk-3CZ27FOA.js} +45 -10
  9. package/dist/{chunk-FEWQUQML.js → chunk-3QSZY74C.js} +1 -2
  10. package/dist/chunk-BI7NVU6T.js +31 -0
  11. package/dist/{chunk-VHDP4IPL.js → chunk-BPGEBGAN.js} +0 -1
  12. package/dist/{chunk-DD4VFJQI.js → chunk-EBWYGTN7.js} +2 -1
  13. package/dist/{chunk-ZI56BNB7.js → chunk-GHQ4X7KM.js} +27 -7
  14. package/dist/{chunk-5A4KEWKT.js → chunk-HFYPTTCH.js} +0 -1
  15. package/dist/{chunk-FMGTHSTX.js → chunk-LG6HAWCK.js} +0 -1
  16. package/dist/{chunk-57ZJJOC5.js → chunk-TFMO7EVO.js} +0 -1
  17. package/dist/{chunk-4XXSWN3T.js → chunk-YBEYTVU2.js} +0 -1
  18. package/dist/editor.js +1 -2
  19. package/dist/export/index.d.ts +18 -8
  20. package/dist/export/index.js +10 -7
  21. package/dist/index.d.ts +16 -7
  22. package/dist/index.js +359 -103
  23. package/dist/run-export-Z5BVFLIR.js +9 -0
  24. package/dist/settings/index.js +2 -3
  25. package/package.json +8 -8
  26. package/src/styles/docblocks.css +485 -9
  27. package/dist/ExportDialog-7LDIXJZ3.js +0 -10
  28. package/dist/ExportDialog-7LDIXJZ3.js.map +0 -1
  29. package/dist/ExportToolbarControls-GHAOJMH6.js.map +0 -1
  30. package/dist/GitToolbarControl-GNMRVKWQ.js.map +0 -1
  31. package/dist/GitUI-VHOBQY43.js.map +0 -1
  32. package/dist/LazyEditorShell-EF2BWRXU.js +0 -6
  33. package/dist/LazyEditorShell-EF2BWRXU.js.map +0 -1
  34. package/dist/ShareDialog-63ENBEDZ.js.map +0 -1
  35. package/dist/chunk-4XXSWN3T.js.map +0 -1
  36. package/dist/chunk-57ZJJOC5.js.map +0 -1
  37. package/dist/chunk-5A4KEWKT.js.map +0 -1
  38. package/dist/chunk-DD4VFJQI.js.map +0 -1
  39. package/dist/chunk-FEWQUQML.js.map +0 -1
  40. package/dist/chunk-FMGTHSTX.js.map +0 -1
  41. package/dist/chunk-UNYZQXWR.js.map +0 -1
  42. package/dist/chunk-VHDP4IPL.js.map +0 -1
  43. package/dist/chunk-ZI56BNB7.js.map +0 -1
  44. package/dist/editor.js.map +0 -1
  45. package/dist/export/index.js.map +0 -1
  46. package/dist/index.js.map +0 -1
  47. package/dist/run-export-ICTZITXC.js +0 -10
  48. package/dist/run-export-ICTZITXC.js.map +0 -1
  49. package/dist/settings/index.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ import {
2
+ buildExportFilename,
3
+ runExport
4
+ } from "./chunk-GHQ4X7KM.js";
5
+ import "./chunk-EBWYGTN7.js";
6
+ export {
7
+ buildExportFilename,
8
+ runExport
9
+ };
@@ -3,12 +3,11 @@ import {
3
3
  SettingsDialog,
4
4
  ThemeSettings,
5
5
  WriteCanvasSettingsControls
6
- } from "../chunk-FEWQUQML.js";
7
- import "../chunk-FMGTHSTX.js";
6
+ } from "../chunk-3QSZY74C.js";
7
+ import "../chunk-LG6HAWCK.js";
8
8
  export {
9
9
  AccentColorSettings,
10
10
  SettingsDialog,
11
11
  ThemeSettings,
12
12
  WriteCanvasSettingsControls
13
13
  };
14
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bendyline/docblocks-react",
3
- "version": "2.1.0",
3
+ "version": "2.1.2",
4
4
  "description": "React components for DocBlocks — file explorer, workspace picker, and editor shell",
5
5
  "license": "MIT",
6
6
  "author": "Bendyline",
@@ -65,13 +65,13 @@
65
65
  "react-dom": "^18.0.0 || ^19.0.0"
66
66
  },
67
67
  "dependencies": {
68
- "@bendyline/docblocks": "2.1.0",
69
- "@bendyline/squisq": "2.3.0",
70
- "@bendyline/squisq-editor-react": "2.3.1",
71
- "@bendyline/squisq-formats": "2.3.0",
72
- "@bendyline/squisq-react": "2.3.0",
73
- "@bendyline/squisq-video": "2.2.0",
74
- "@bendyline/squisq-video-react": "2.2.0"
68
+ "@bendyline/docblocks": "2.1.2",
69
+ "@bendyline/squisq": "2.3.2",
70
+ "@bendyline/squisq-editor-react": "2.3.3",
71
+ "@bendyline/squisq-formats": "2.3.2",
72
+ "@bendyline/squisq-react": "2.3.2",
73
+ "@bendyline/squisq-video": "2.2.2",
74
+ "@bendyline/squisq-video-react": "2.2.2"
75
75
  },
76
76
  "devDependencies": {
77
77
  "@happy-dom/global-registrator": "20.9.0",
@@ -1,3 +1,5 @@
1
+ @import '@bendyline/squisq-editor-react/styles';
2
+
1
3
  /* ── DocBlocks Styles ─────────────────────────────────────────── */
2
4
 
3
5
  /* ── Theme Tokens ────────────────────────────────────────────── */
@@ -763,6 +765,83 @@
763
765
  margin: 4px 0;
764
766
  }
765
767
 
768
+ .db-workspace-create {
769
+ box-sizing: border-box;
770
+ width: min(300px, calc(100vw - 24px));
771
+ padding: 10px;
772
+ }
773
+
774
+ .db-workspace-create-label {
775
+ display: block;
776
+ margin-bottom: 5px;
777
+ color: var(--db-text-secondary);
778
+ font-size: 12px;
779
+ font-weight: 600;
780
+ }
781
+
782
+ .db-workspace-create-input {
783
+ box-sizing: border-box;
784
+ width: 100%;
785
+ padding: 6px 8px;
786
+ border: 1px solid var(--db-input-border);
787
+ border-radius: 4px;
788
+ outline: none;
789
+ background: var(--db-bg);
790
+ color: var(--db-text);
791
+ font: inherit;
792
+ }
793
+
794
+ .db-workspace-create-input:focus-visible {
795
+ border-color: var(--db-accent);
796
+ outline: 2px solid var(--db-focus);
797
+ outline-offset: 1px;
798
+ }
799
+
800
+ .db-workspace-create-input[aria-invalid='true'] {
801
+ border-color: var(--db-danger);
802
+ }
803
+
804
+ .db-workspace-create-error {
805
+ margin: 6px 0 0;
806
+ color: var(--db-danger);
807
+ font-size: 11px;
808
+ line-height: 1.35;
809
+ }
810
+
811
+ .db-workspace-create-actions {
812
+ display: flex;
813
+ justify-content: flex-end;
814
+ gap: 6px;
815
+ margin-top: 9px;
816
+ }
817
+
818
+ .db-workspace-create-actions button {
819
+ padding: 5px 10px;
820
+ border: 1px solid var(--db-accent);
821
+ border-radius: 4px;
822
+ background: var(--db-accent);
823
+ color: var(--db-text-on-accent);
824
+ font: inherit;
825
+ font-weight: 600;
826
+ cursor: pointer;
827
+ }
828
+
829
+ .db-workspace-create-actions button:focus-visible {
830
+ outline: 2px solid var(--db-focus);
831
+ outline-offset: 1px;
832
+ }
833
+
834
+ .db-workspace-create-actions button:disabled {
835
+ cursor: default;
836
+ opacity: 0.6;
837
+ }
838
+
839
+ .db-workspace-create-actions .db-workspace-create-cancel {
840
+ border-color: var(--db-border-strong);
841
+ background: var(--db-bg);
842
+ color: var(--db-text-secondary);
843
+ }
844
+
766
845
  /* ── App Menu ────────────────────────────────────────────────── */
767
846
 
768
847
  .db-app-menu {
@@ -1126,6 +1205,142 @@ body.db-resizing-sidebar * {
1126
1205
  border-right: none;
1127
1206
  }
1128
1207
 
1208
+ .db-shell--mobile:has(.db-mobile-first-run) .db-file-explorer {
1209
+ flex: 0 0 170px;
1210
+ height: 170px;
1211
+ min-height: 170px;
1212
+ }
1213
+
1214
+ .db-mobile-first-run {
1215
+ flex: 0 0 auto;
1216
+ margin: 12px 12px auto;
1217
+ padding: 20px;
1218
+ border: 1px solid var(--db-border-strong);
1219
+ border-radius: 14px;
1220
+ background:
1221
+ radial-gradient(circle at 92% 4%, var(--db-accent-soft-15), transparent 42%),
1222
+ var(--db-bg-subtle);
1223
+ box-shadow: 0 12px 30px var(--db-shadow);
1224
+ }
1225
+
1226
+ .db-mobile-first-run-eyebrow {
1227
+ margin: 0 0 7px;
1228
+ color: var(--db-accent);
1229
+ font-size: 10px;
1230
+ font-weight: 700;
1231
+ letter-spacing: 0.1em;
1232
+ text-transform: uppercase;
1233
+ }
1234
+
1235
+ .db-mobile-first-run h1 {
1236
+ margin: 0;
1237
+ color: var(--db-text);
1238
+ font-size: 23px;
1239
+ line-height: 1.2;
1240
+ }
1241
+
1242
+ .db-mobile-first-run > p:not(.db-mobile-first-run-eyebrow) {
1243
+ margin: 10px 0 0;
1244
+ color: var(--db-text-secondary);
1245
+ font-size: 13px;
1246
+ line-height: 1.5;
1247
+ }
1248
+
1249
+ .db-mobile-first-run-actions {
1250
+ display: flex;
1251
+ flex-direction: column;
1252
+ gap: 8px;
1253
+ margin-top: 17px;
1254
+ }
1255
+
1256
+ .db-mobile-first-run-actions button {
1257
+ min-height: 42px;
1258
+ padding: 8px 12px;
1259
+ border: 1px solid var(--db-accent);
1260
+ border-radius: 7px;
1261
+ background: var(--db-accent);
1262
+ color: var(--db-text-on-accent);
1263
+ font: inherit;
1264
+ font-weight: 600;
1265
+ cursor: pointer;
1266
+ }
1267
+
1268
+ .db-mobile-first-run-actions button:hover {
1269
+ border-color: var(--db-accent-hover);
1270
+ background: var(--db-accent-hover);
1271
+ }
1272
+
1273
+ .db-mobile-first-run-actions .db-mobile-first-run-secondary {
1274
+ border-color: var(--db-border-strong);
1275
+ background: var(--db-bg);
1276
+ color: var(--db-text-secondary);
1277
+ }
1278
+
1279
+ .db-mobile-first-run-actions .db-mobile-first-run-secondary:hover {
1280
+ border-color: var(--db-accent);
1281
+ background: var(--db-bg-hover);
1282
+ }
1283
+
1284
+ .db-mobile-first-run-actions button:focus-visible {
1285
+ outline: 2px solid var(--db-focus);
1286
+ outline-offset: 2px;
1287
+ }
1288
+
1289
+ /* The compact editor uses two deliberate toolbar rows: navigation/views on
1290
+ top and actions below. Squisq's formatting actions remain available through
1291
+ its measured More menu; hiding their inline copies removes clipped,
1292
+ keyboard-focusable controls while leaving room for versioning, document
1293
+ settings, Files, and DocBlocks' Export and share control. */
1294
+ .db-shell--mobile .squisq-toolbar {
1295
+ min-height: 88px;
1296
+ flex-wrap: wrap;
1297
+ align-content: stretch;
1298
+ padding-right: 0;
1299
+ }
1300
+
1301
+ .db-shell--mobile .squisq-toolbar > .db-mobile-back {
1302
+ box-sizing: border-box;
1303
+ flex: 0 0 44px;
1304
+ height: 44px;
1305
+ justify-content: center;
1306
+ padding: 6px 10px;
1307
+ }
1308
+
1309
+ .db-shell--mobile .squisq-toolbar-view-tabs {
1310
+ box-sizing: border-box;
1311
+ flex: 1 0 calc(100% - 45px);
1312
+ width: calc(100% - 45px);
1313
+ min-width: 0;
1314
+ height: 44px;
1315
+ }
1316
+
1317
+ .db-shell--mobile .squisq-toolbar-actions {
1318
+ flex: 0 1 0;
1319
+ width: 0;
1320
+ height: 44px;
1321
+ }
1322
+
1323
+ .db-shell--mobile .squisq-toolbar-actions > * {
1324
+ visibility: hidden;
1325
+ }
1326
+
1327
+ .db-shell--mobile .squisq-toolbar-overflow,
1328
+ .db-shell--mobile .squisq-toolbar > .squisq-toolbar-button,
1329
+ .db-shell--mobile .squisq-toolbar > .db-toolbar-menu {
1330
+ flex: 0 0 auto;
1331
+ }
1332
+
1333
+ /* The compact layout moves Squisq's overflow trigger to the left edge of
1334
+ the second row. Its desktop right-aligned placement can consequently put
1335
+ the menu off-canvas, so anchor the mobile popover to the viewport instead. */
1336
+ .db-shell--mobile .squisq-editor-shell .squisq-toolbar-overflow-menu {
1337
+ right: auto !important;
1338
+ left: max(4px, env(safe-area-inset-left)) !important;
1339
+ max-width: calc(100vw - 8px);
1340
+ max-height: calc(100dvh - 96px);
1341
+ overflow-y: auto;
1342
+ }
1343
+
1129
1344
  .db-mobile-back {
1130
1345
  display: flex;
1131
1346
  align-items: center;
@@ -1156,6 +1371,112 @@ body.db-resizing-sidebar * {
1156
1371
  height: 24px;
1157
1372
  }
1158
1373
 
1374
+ .db-shell-empty--workspace {
1375
+ position: relative;
1376
+ box-sizing: border-box;
1377
+ flex-direction: column;
1378
+ padding: 32px;
1379
+ background:
1380
+ radial-gradient(circle at 50% 38%, var(--db-accent-soft-08), transparent 44%), var(--db-bg);
1381
+ }
1382
+
1383
+ .db-shell-empty--workspace > .db-mobile-back {
1384
+ position: absolute;
1385
+ top: 0;
1386
+ left: 0;
1387
+ right: 0;
1388
+ justify-content: flex-start;
1389
+ padding: 10px 12px;
1390
+ border-bottom: 1px solid var(--db-border);
1391
+ border-radius: 0;
1392
+ background: var(--db-bg-subtle);
1393
+ }
1394
+
1395
+ .db-workspace-empty-content {
1396
+ display: flex;
1397
+ width: min(460px, 100%);
1398
+ flex-direction: column;
1399
+ align-items: center;
1400
+ text-align: center;
1401
+ }
1402
+
1403
+ .db-workspace-empty-icon {
1404
+ display: inline-flex;
1405
+ align-items: center;
1406
+ justify-content: center;
1407
+ width: 52px;
1408
+ height: 52px;
1409
+ margin-bottom: 14px;
1410
+ border: 1px solid var(--db-border-strong);
1411
+ border-radius: 14px;
1412
+ background: var(--db-bg-subtle);
1413
+ color: var(--db-accent-deep);
1414
+ }
1415
+
1416
+ .db-workspace-empty-icon svg {
1417
+ width: 26px;
1418
+ height: 26px;
1419
+ }
1420
+
1421
+ .db-workspace-empty-content h1 {
1422
+ margin: 0;
1423
+ color: var(--db-text);
1424
+ font-size: 21px;
1425
+ line-height: 1.25;
1426
+ }
1427
+
1428
+ .db-workspace-empty-content > p {
1429
+ max-width: 390px;
1430
+ margin: 9px 0 0;
1431
+ color: var(--db-text-muted);
1432
+ line-height: 1.5;
1433
+ }
1434
+
1435
+ .db-workspace-empty-actions {
1436
+ display: flex;
1437
+ flex-wrap: wrap;
1438
+ justify-content: center;
1439
+ gap: 8px;
1440
+ margin-top: 20px;
1441
+ }
1442
+
1443
+ .db-workspace-empty-actions button {
1444
+ padding: 8px 13px;
1445
+ border: 1px solid var(--db-accent);
1446
+ border-radius: 5px;
1447
+ background: var(--db-accent);
1448
+ color: var(--db-text-on-accent);
1449
+ font: inherit;
1450
+ font-weight: 600;
1451
+ cursor: pointer;
1452
+ }
1453
+
1454
+ .db-workspace-empty-actions button:hover {
1455
+ border-color: var(--db-accent-hover);
1456
+ background: var(--db-accent-hover);
1457
+ }
1458
+
1459
+ .db-workspace-empty-actions button:focus-visible {
1460
+ outline: 2px solid var(--db-focus);
1461
+ outline-offset: 2px;
1462
+ }
1463
+
1464
+ .db-workspace-empty-actions .db-workspace-empty-secondary {
1465
+ border-color: var(--db-border-strong);
1466
+ background: var(--db-bg);
1467
+ color: var(--db-text-secondary);
1468
+ }
1469
+
1470
+ .db-workspace-empty-actions .db-workspace-empty-secondary:hover {
1471
+ border-color: var(--db-accent);
1472
+ background: var(--db-bg-hover);
1473
+ }
1474
+
1475
+ .db-workspace-empty-content .db-workspace-empty-hint {
1476
+ margin-top: 18px;
1477
+ font-size: 12px;
1478
+ }
1479
+
1159
1480
  /* In folder/empty views, the back button sits as a standalone bar */
1160
1481
  .db-folder-view > .db-mobile-back {
1161
1482
  padding: 10px 12px;
@@ -1273,10 +1594,35 @@ body.db-resizing-sidebar * {
1273
1594
 
1274
1595
  .db-dialog-links {
1275
1596
  display: flex;
1597
+ flex-wrap: wrap;
1276
1598
  align-items: center;
1277
1599
  gap: 6px;
1278
1600
  }
1279
1601
 
1602
+ .db-about-version {
1603
+ display: flex;
1604
+ align-items: center;
1605
+ gap: 8px;
1606
+ padding: 8px 10px;
1607
+ border: 1px solid var(--db-border);
1608
+ border-radius: 5px;
1609
+ background: var(--db-bg-subtle);
1610
+ }
1611
+
1612
+ .db-about-version span {
1613
+ color: var(--db-text-muted);
1614
+ font-size: 11px;
1615
+ font-weight: 600;
1616
+ letter-spacing: 0.04em;
1617
+ text-transform: uppercase;
1618
+ }
1619
+
1620
+ .db-about-version code {
1621
+ color: var(--db-text);
1622
+ font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
1623
+ user-select: all;
1624
+ }
1625
+
1280
1626
  .db-dialog-sep {
1281
1627
  color: var(--db-text-placeholder);
1282
1628
  }
@@ -1611,15 +1957,20 @@ body.db-resizing-sidebar * {
1611
1957
 
1612
1958
  .db-toolbar-menu {
1613
1959
  position: relative;
1960
+ margin-left: 6px;
1961
+ padding-left: 7px;
1962
+ border-left: 1px solid var(--db-border);
1614
1963
  }
1615
1964
 
1616
1965
  .db-toolbar-menu-trigger {
1617
1966
  display: flex;
1618
1967
  align-items: center;
1619
1968
  justify-content: center;
1620
- width: 28px;
1969
+ gap: 5px;
1970
+ width: auto;
1971
+ min-width: 28px;
1621
1972
  height: 28px;
1622
- padding: 0;
1973
+ padding: 0 8px;
1623
1974
  line-height: 1;
1624
1975
  border: 1px solid transparent;
1625
1976
  border-radius: 4px;
@@ -1629,10 +1980,30 @@ body.db-resizing-sidebar * {
1629
1980
  }
1630
1981
 
1631
1982
  .db-toolbar-menu-trigger svg {
1983
+ flex: 0 0 auto;
1632
1984
  width: 18px;
1633
1985
  height: 18px;
1634
1986
  }
1635
1987
 
1988
+ .db-toolbar-menu-trigger-label {
1989
+ font-size: 12px;
1990
+ font-weight: 600;
1991
+ }
1992
+
1993
+ .db-shell--mobile .db-toolbar-menu {
1994
+ margin-left: 2px;
1995
+ padding-left: 3px;
1996
+ }
1997
+
1998
+ .db-shell--mobile .db-toolbar-menu-trigger {
1999
+ width: 28px;
2000
+ padding: 0;
2001
+ }
2002
+
2003
+ .db-shell--mobile .db-toolbar-menu-trigger-label {
2004
+ display: none;
2005
+ }
2006
+
1636
2007
  .db-toolbar-menu-trigger:hover {
1637
2008
  background: var(--db-bg-hover);
1638
2009
  border-color: var(--db-border);
@@ -1771,6 +2142,10 @@ body.db-resizing-sidebar * {
1771
2142
  border-color: var(--db-accent);
1772
2143
  }
1773
2144
 
2145
+ .db-export-path-input[aria-invalid='true'] {
2146
+ border-color: var(--db-danger);
2147
+ }
2148
+
1774
2149
  .db-export-path-pick {
1775
2150
  flex: 0 0 auto;
1776
2151
  height: 30px;
@@ -1802,6 +2177,10 @@ body.db-resizing-sidebar * {
1802
2177
  color: var(--db-text-placeholder);
1803
2178
  }
1804
2179
 
2180
+ .db-export-hint--error {
2181
+ color: var(--db-danger);
2182
+ }
2183
+
1805
2184
  .db-export-checkbox {
1806
2185
  display: inline-flex;
1807
2186
  align-items: center;
@@ -1871,6 +2250,20 @@ body.db-resizing-sidebar * {
1871
2250
  border-top: 1px solid var(--db-border);
1872
2251
  }
1873
2252
 
2253
+ .db-export-more-formats {
2254
+ margin: 4px 0 0;
2255
+ padding-top: 12px;
2256
+ border-top: 1px solid var(--db-border);
2257
+ color: var(--db-text-muted);
2258
+ font-size: 12px;
2259
+ line-height: 1.5;
2260
+ }
2261
+
2262
+ .db-export-more-formats a {
2263
+ color: var(--db-accent);
2264
+ font-weight: 600;
2265
+ }
2266
+
1874
2267
  .db-export-btn {
1875
2268
  padding: 6px 16px;
1876
2269
  font-size: 13px;
@@ -2415,6 +2808,7 @@ html:has(.db-shell[data-theme='dark']) {
2415
2808
  --db-shadow: rgba(0, 0, 0, 0.4);
2416
2809
  --db-accent: #c8b48f;
2417
2810
  --db-accent-hover: #dec79d;
2811
+ --db-text-on-accent: #1a1812;
2418
2812
  --db-accent-soft-15: rgba(200, 180, 143, 0.18);
2419
2813
  --db-accent-soft-25: rgba(200, 180, 143, 0.28);
2420
2814
  --db-accent-tint-strong: #3a382e;
@@ -2436,6 +2830,7 @@ html:has(.db-shell[data-theme='light']) {
2436
2830
  --db-shadow: rgba(40, 30, 15, 0.12);
2437
2831
  --db-accent: #7d6948;
2438
2832
  --db-accent-hover: #5e4f37;
2833
+ --db-text-on-accent: #ffffff;
2439
2834
  --db-accent-soft-15: rgba(125, 105, 72, 0.15);
2440
2835
  --db-accent-soft-25: rgba(125, 105, 72, 0.25);
2441
2836
  --db-accent-tint-strong: #d8d0b5;
@@ -2770,6 +3165,63 @@ html:has(.db-shell[data-theme='dark'][data-accent='gray']) {
2770
3165
  --db-badge-text-hover: #ffffff;
2771
3166
  }
2772
3167
 
3168
+ /* Custom layout authoring is portaled to document.body. Bind its host-facing
3169
+ accent tokens at that portal boundary so selected layouts, palette states,
3170
+ primary actions, and focus rings follow the active DocBlocks accent instead
3171
+ of Squisq's standalone indigo defaults. */
3172
+ html:has(.db-shell) :is(.squisq-template-designer-overlay, .squisq-layout-manager-overlay) {
3173
+ --squisq-layout-accent-text: var(--db-accent-hover);
3174
+ --squisq-layout-accent-bg: var(--db-accent);
3175
+ --squisq-layout-accent-bg-hover: var(--db-accent-hover);
3176
+ --squisq-layout-accent-border: var(--db-accent);
3177
+ --squisq-layout-accent-soft: var(--db-accent-tint-strong);
3178
+ --squisq-layout-accent-soft-hover: var(--db-bg-hover);
3179
+ --squisq-layout-accent-soft-border: var(--db-accent);
3180
+ --squisq-layout-accent-hover-border: var(--db-accent-hover);
3181
+ }
3182
+
3183
+ html:has(.db-shell)
3184
+ :is(.squisq-template-designer-overlay, .squisq-layout-manager-overlay)
3185
+ .squisq-template-designer-btn--primary {
3186
+ color: var(--db-text-on-accent);
3187
+ }
3188
+
3189
+ html:has(.db-shell)
3190
+ :is(.squisq-template-designer-overlay, .squisq-layout-manager-overlay)
3191
+ .squisq-template-designer-field
3192
+ input:focus {
3193
+ box-shadow: 0 0 0 3px var(--db-accent-soft-25);
3194
+ }
3195
+
3196
+ /* Convert/Insert is portaled to document.body, so the editor shell's Squisq
3197
+ overrides cannot reach it. The active DocBlocks palette is already hoisted
3198
+ to html above; consume it here so every accent and appearance produces the
3199
+ same menu surfaces as the rest of the shell. The selector also covers the
3200
+ nested Mermaid and code-snippet menus, which share this portal class. */
3201
+ html:has(.db-shell) .squisq-insert-menu {
3202
+ background: var(--db-bg);
3203
+ border-color: var(--db-border);
3204
+ color: var(--db-text-secondary);
3205
+ box-shadow: 0 4px 12px var(--db-shadow);
3206
+ }
3207
+
3208
+ html:has(.db-shell) .squisq-insert-menu .squisq-toolbar-overflow-item {
3209
+ color: var(--db-text-secondary);
3210
+ }
3211
+
3212
+ html:has(.db-shell) .squisq-insert-menu .squisq-toolbar-overflow-item:hover,
3213
+ html:has(.db-shell) .squisq-insert-menu .squisq-toolbar-overflow-item:focus-visible {
3214
+ background: var(--db-bg-hover);
3215
+ }
3216
+
3217
+ html:has(.db-shell) .squisq-insert-menu .squisq-insert-menu-header {
3218
+ color: var(--db-text-muted);
3219
+ }
3220
+
3221
+ html:has(.db-shell) .squisq-insert-menu .squisq-insert-menu-header--separated {
3222
+ border-top-color: var(--db-border);
3223
+ }
3224
+
2773
3225
  html:has(.db-shell[data-theme='light']:not([data-accent='brown'])) .squisq-tooltip {
2774
3226
  background: var(--db-accent-deep);
2775
3227
  color: var(--db-bg-subtle);
@@ -4487,11 +4939,13 @@ button.db-git-file-row:hover {
4487
4939
  block turns that row into the titlebar: draggable empty space, insets for
4488
4940
  the caption buttons, and every interactive descendant opted back out.
4489
4941
 
4490
- Ported 1:1 from the Electron build — keep in sync with
4491
- packages/desktop/renderer/titlebar.css (which is scoped under
4492
- `.db-desktop-root`; Electron windows report `display-mode: browser`, so
4493
- this media query can never double-apply there). The media query is live:
4494
- toggling the overlay chevron flips it with no JS. */
4942
+ Shares its drag/inset structure with the Electron build in
4943
+ packages/desktop/renderer/titlebar.css. Its compact vertical metrics are
4944
+ intentionally PWA-specific because Electron uses a 42px overlay while this
4945
+ mode follows the OS-provided caption height (32px on Windows). Electron is
4946
+ scoped under `.db-desktop-root` and reports `display-mode: browser`, so this
4947
+ media query can never double-apply there. The media query is live: toggling
4948
+ the overlay chevron flips it with no JS. */
4495
4949
  @media (display-mode: window-controls-overlay) {
4496
4950
  .db-shell {
4497
4951
  --db-wco-titlebar-height: env(titlebar-area-height, 32px);
@@ -4525,11 +4979,33 @@ button.db-git-file-row:hover {
4525
4979
 
4526
4980
  .db-shell .squisq-toolbar-view-tab {
4527
4981
  padding-top: 4px;
4528
- padding-bottom: 4px;
4982
+ padding-bottom: 2px;
4983
+ }
4984
+
4985
+ /* The native 32px caption band leaves the labels slightly above its visual
4986
+ center. Move only the text down; the tab hit area and active underline
4987
+ stay anchored to the titlebar edges. */
4988
+ .db-shell .squisq-toolbar-view-tab-label {
4989
+ transform: translateY(4px);
4529
4990
  }
4530
4991
 
4531
4992
  .db-shell .squisq-use-mode-trigger {
4532
- padding-bottom: 9px;
4993
+ padding-bottom: 7px;
4994
+ }
4995
+
4996
+ /* The 32px caption row leaves little room around Squisq's 28px action
4997
+ buttons. Keep the selected background clear of the header's 1px bottom
4998
+ divider without moving the glyphs off their shared center line. */
4999
+ .db-shell .squisq-toolbar-actions .squisq-toolbar-button {
5000
+ box-sizing: border-box;
5001
+ height: 26px;
5002
+ }
5003
+
5004
+ /* Squisq's overflow measurement deliberately tolerates a 2px overhang.
5005
+ Reserve one pixel beyond that tolerance so the final Insert control
5006
+ moves into More actions instead of being clipped by the caption inset. */
5007
+ .db-shell .squisq-toolbar-actions {
5008
+ margin-right: 3px;
4533
5009
  }
4534
5010
 
4535
5011
  .db-shell .squisq-toolbar-button[aria-label='Insert image'] {
@@ -1,10 +0,0 @@
1
- import {
2
- ExportDialog
3
- } from "./chunk-UNYZQXWR.js";
4
- import "./chunk-4XXSWN3T.js";
5
- import "./chunk-FMGTHSTX.js";
6
- import "./chunk-DD4VFJQI.js";
7
- export {
8
- ExportDialog
9
- };
10
- //# sourceMappingURL=ExportDialog-7LDIXJZ3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}