@bendyline/docblocks-react 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/AppMenu/AppMenu.d.ts +6 -1
  2. package/dist/AppMenu/AppMenu.d.ts.map +1 -1
  3. package/dist/AppMenu/AppMenu.js +3 -2
  4. package/dist/AppMenu/AppMenu.js.map +1 -1
  5. package/dist/AppMenu/index.d.ts +1 -1
  6. package/dist/AppMenu/index.d.ts.map +1 -1
  7. package/dist/DocBlocksShell/DocBlocksShell.d.ts +1 -1
  8. package/dist/DocBlocksShell/DocBlocksShell.d.ts.map +1 -1
  9. package/dist/DocBlocksShell/DocBlocksShell.js +410 -73
  10. package/dist/DocBlocksShell/DocBlocksShell.js.map +1 -1
  11. package/dist/FileExplorer/FileTreeNode.d.ts.map +1 -1
  12. package/dist/FileExplorer/FileTreeNode.js +34 -8
  13. package/dist/FileExplorer/FileTreeNode.js.map +1 -1
  14. package/dist/WorkspacePicker/WorkspacePicker.d.ts.map +1 -1
  15. package/dist/WorkspacePicker/WorkspacePicker.js +9 -3
  16. package/dist/WorkspacePicker/WorkspacePicker.js.map +1 -1
  17. package/dist/icons.d.ts +1 -0
  18. package/dist/icons.d.ts.map +1 -1
  19. package/dist/icons.js +3 -0
  20. package/dist/icons.js.map +1 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/package.json +8 -8
  24. package/src/AppMenu/AppMenu.tsx +78 -1
  25. package/src/AppMenu/index.ts +1 -1
  26. package/src/DocBlocksShell/DocBlocksShell.tsx +480 -87
  27. package/src/FileExplorer/FileTreeNode.tsx +68 -26
  28. package/src/WorkspacePicker/WorkspacePicker.tsx +18 -7
  29. package/src/fonts/fonts.css +362 -0
  30. package/src/fonts/licenses/LICENSE-cormorant-garamond.txt +93 -0
  31. package/src/fonts/licenses/LICENSE-crimson-text.txt +93 -0
  32. package/src/fonts/licenses/LICENSE-dm-sans.txt +93 -0
  33. package/src/fonts/licenses/LICENSE-dm-serif-display.txt +93 -0
  34. package/src/fonts/licenses/LICENSE-hanken-grotesk.txt +94 -0
  35. package/src/fonts/licenses/LICENSE-ibm-plex-sans.txt +93 -0
  36. package/src/fonts/licenses/LICENSE-inter.txt +93 -0
  37. package/src/fonts/licenses/LICENSE-jetbrains-mono.txt +93 -0
  38. package/src/fonts/licenses/LICENSE-lora.txt +93 -0
  39. package/src/fonts/licenses/LICENSE-merriweather.txt +93 -0
  40. package/src/fonts/licenses/LICENSE-oswald.txt +93 -0
  41. package/src/fonts/licenses/LICENSE-playfair-display.txt +93 -0
  42. package/src/fonts/licenses/LICENSE-pt-serif.txt +93 -0
  43. package/src/fonts/licenses/LICENSE-roboto.txt +93 -0
  44. package/src/fonts/licenses/LICENSE-source-serif-4.txt +93 -0
  45. package/src/fonts/woff2/cormorant-garamond-400.woff2 +0 -0
  46. package/src/fonts/woff2/cormorant-garamond-700.woff2 +0 -0
  47. package/src/fonts/woff2/crimson-text-400.woff2 +0 -0
  48. package/src/fonts/woff2/crimson-text-400i.woff2 +0 -0
  49. package/src/fonts/woff2/crimson-text-700.woff2 +0 -0
  50. package/src/fonts/woff2/dm-sans-400.woff2 +0 -0
  51. package/src/fonts/woff2/dm-sans-400i.woff2 +0 -0
  52. package/src/fonts/woff2/dm-sans-500.woff2 +0 -0
  53. package/src/fonts/woff2/dm-sans-700.woff2 +0 -0
  54. package/src/fonts/woff2/dm-serif-display-400.woff2 +0 -0
  55. package/src/fonts/woff2/hanken-grotesk-400.woff2 +0 -0
  56. package/src/fonts/woff2/hanken-grotesk-400i.woff2 +0 -0
  57. package/src/fonts/woff2/hanken-grotesk-500.woff2 +0 -0
  58. package/src/fonts/woff2/hanken-grotesk-600.woff2 +0 -0
  59. package/src/fonts/woff2/hanken-grotesk-700.woff2 +0 -0
  60. package/src/fonts/woff2/ibm-plex-sans-400.woff2 +0 -0
  61. package/src/fonts/woff2/ibm-plex-sans-400i.woff2 +0 -0
  62. package/src/fonts/woff2/ibm-plex-sans-500.woff2 +0 -0
  63. package/src/fonts/woff2/ibm-plex-sans-600.woff2 +0 -0
  64. package/src/fonts/woff2/ibm-plex-sans-700.woff2 +0 -0
  65. package/src/fonts/woff2/inter-400.woff2 +0 -0
  66. package/src/fonts/woff2/inter-400i.woff2 +0 -0
  67. package/src/fonts/woff2/inter-500.woff2 +0 -0
  68. package/src/fonts/woff2/inter-600.woff2 +0 -0
  69. package/src/fonts/woff2/inter-700.woff2 +0 -0
  70. package/src/fonts/woff2/jetbrains-mono-400.woff2 +0 -0
  71. package/src/fonts/woff2/jetbrains-mono-400i.woff2 +0 -0
  72. package/src/fonts/woff2/jetbrains-mono-700.woff2 +0 -0
  73. package/src/fonts/woff2/lora-400.woff2 +0 -0
  74. package/src/fonts/woff2/lora-400i.woff2 +0 -0
  75. package/src/fonts/woff2/lora-700.woff2 +0 -0
  76. package/src/fonts/woff2/merriweather-400.woff2 +0 -0
  77. package/src/fonts/woff2/merriweather-700.woff2 +0 -0
  78. package/src/fonts/woff2/oswald-400.woff2 +0 -0
  79. package/src/fonts/woff2/oswald-700.woff2 +0 -0
  80. package/src/fonts/woff2/playfair-display-400.woff2 +0 -0
  81. package/src/fonts/woff2/playfair-display-700.woff2 +0 -0
  82. package/src/fonts/woff2/pt-serif-400.woff2 +0 -0
  83. package/src/fonts/woff2/pt-serif-700.woff2 +0 -0
  84. package/src/fonts/woff2/roboto-400.woff2 +0 -0
  85. package/src/fonts/woff2/roboto-400i.woff2 +0 -0
  86. package/src/fonts/woff2/roboto-700.woff2 +0 -0
  87. package/src/fonts/woff2/source-serif-4-400.woff2 +0 -0
  88. package/src/fonts/woff2/source-serif-4-400i.woff2 +0 -0
  89. package/src/fonts/woff2/source-serif-4-700.woff2 +0 -0
  90. package/src/icons.tsx +10 -0
  91. package/src/index.ts +1 -1
  92. package/src/styles/docblocks.css +128 -13
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/src/icons.tsx CHANGED
@@ -46,6 +46,16 @@ export function RefreshIcon(props: SVGProps<SVGSVGElement>) {
46
46
  );
47
47
  }
48
48
 
49
+ export function MoreIcon(props: SVGProps<SVGSVGElement>) {
50
+ return (
51
+ <svg {...defaults} {...props}>
52
+ <circle cx="3.5" cy="8" r="1" fill="currentColor" stroke="none" />
53
+ <circle cx="8" cy="8" r="1" fill="currentColor" stroke="none" />
54
+ <circle cx="12.5" cy="8" r="1" fill="currentColor" stroke="none" />
55
+ </svg>
56
+ );
57
+ }
58
+
49
59
  export function WorkspaceIcon(props: SVGProps<SVGSVGElement>) {
50
60
  return (
51
61
  <svg {...defaults} {...props}>
package/src/index.ts CHANGED
@@ -19,7 +19,7 @@ export type { DocBlocksShellProps } from './DocBlocksShell/index.js';
19
19
 
20
20
  // AppMenu
21
21
  export { AppMenu } from './AppMenu/index.js';
22
- export type { AppMenuProps } from './AppMenu/index.js';
22
+ export type { AppMenuProps, ThemePreference } from './AppMenu/index.js';
23
23
 
24
24
  // Export
25
25
  export { ExportToolbarControls } from './Export/index.js';
@@ -8,7 +8,8 @@
8
8
  --db-bg-hover: #f3f4f6;
9
9
  --db-bg-selected: #dbeafe;
10
10
  --db-bg-selected-hover: #bfdbfe;
11
- --db-border: #e5e7eb;
11
+ --db-border: #cbd5e1;
12
+ --db-border-strong: #94a3b8;
12
13
  --db-text: #1f2937;
13
14
  --db-text-secondary: #374151;
14
15
  --db-text-muted: #6b7280;
@@ -27,7 +28,8 @@
27
28
  --db-bg-hover: #334155;
28
29
  --db-bg-selected: #1e3a5f;
29
30
  --db-bg-selected-hover: #1e4a7f;
30
- --db-border: #334155;
31
+ --db-border: #475569;
32
+ --db-border-strong: #64748b;
31
33
  --db-text: #e5e7eb;
32
34
  --db-text-secondary: #cbd5e1;
33
35
  --db-text-muted: #94a3b8;
@@ -47,7 +49,8 @@
47
49
  --db-bg-hover: #334155;
48
50
  --db-bg-selected: #1e3a5f;
49
51
  --db-bg-selected-hover: #1e4a7f;
50
- --db-border: #334155;
52
+ --db-border: #475569;
53
+ --db-border-strong: #64748b;
51
54
  --db-text: #e5e7eb;
52
55
  --db-text-secondary: #cbd5e1;
53
56
  --db-text-muted: #94a3b8;
@@ -94,7 +97,7 @@
94
97
  align-items: center;
95
98
  justify-content: space-between;
96
99
  padding: 6px 8px;
97
- border-bottom: 1px solid var(--db-border);
100
+ border-bottom: 1px solid var(--db-border-strong);
98
101
  flex-shrink: 0;
99
102
  }
100
103
 
@@ -218,8 +221,11 @@
218
221
  width: 16px;
219
222
  flex-shrink: 0;
220
223
  text-align: center;
221
- font-size: 10px;
222
- color: var(--db-text-placeholder);
224
+ font-size: 14px;
225
+ line-height: 1;
226
+ font-family:
227
+ ui-monospace, 'SF Mono', 'Menlo', 'Consolas', 'Liberation Mono', 'Courier New', monospace;
228
+ color: var(--db-text-secondary);
223
229
  }
224
230
 
225
231
  .db-tree-label {
@@ -239,6 +245,40 @@
239
245
  outline: none;
240
246
  }
241
247
 
248
+ .db-tree-more {
249
+ flex-shrink: 0;
250
+ display: inline-flex;
251
+ align-items: center;
252
+ justify-content: center;
253
+ width: 22px;
254
+ height: 22px;
255
+ margin-right: 4px;
256
+ padding: 0;
257
+ border: none;
258
+ border-radius: 3px;
259
+ background: transparent;
260
+ color: var(--db-text-secondary);
261
+ cursor: pointer;
262
+ visibility: hidden;
263
+ }
264
+
265
+ .db-tree-row:hover .db-tree-more,
266
+ .db-tree-row:focus-within .db-tree-more,
267
+ .db-tree-more:focus-visible,
268
+ .db-tree-more--active {
269
+ visibility: visible;
270
+ }
271
+
272
+ .db-tree-more:hover {
273
+ background: var(--db-bg-hover);
274
+ color: var(--db-text);
275
+ }
276
+
277
+ .db-tree-more--active {
278
+ background: var(--db-bg-selected);
279
+ color: var(--db-text);
280
+ }
281
+
242
282
  /* ── Context Menu ────────────────────────────────────────────── */
243
283
 
244
284
  .db-tree-node {
@@ -246,8 +286,8 @@
246
286
  }
247
287
 
248
288
  .db-tree-context {
249
- position: absolute;
250
- z-index: 50;
289
+ position: fixed;
290
+ z-index: 1000;
251
291
  background: var(--db-bg);
252
292
  border: 1px solid var(--db-border);
253
293
  border-radius: 4px;
@@ -552,7 +592,7 @@
552
592
 
553
593
  .db-shell-sidebar {
554
594
  width: 260px;
555
- border-right: 1px solid var(--db-border);
595
+ border-right: 1px solid var(--db-border-strong);
556
596
  display: flex;
557
597
  flex-direction: column;
558
598
  overflow: hidden;
@@ -562,7 +602,7 @@
562
602
  .db-shell-sidebar-header {
563
603
  display: flex;
564
604
  align-items: center;
565
- border-bottom: 1px solid var(--db-border);
605
+ border-bottom: 1px solid var(--db-border-strong);
566
606
  padding: 4px;
567
607
  gap: 4px;
568
608
  flex-shrink: 0;
@@ -571,7 +611,7 @@
571
611
 
572
612
  .db-shell-sidebar-footer {
573
613
  padding: 8px 12px;
574
- border-top: 1px solid var(--db-border);
614
+ border-top: 1px solid var(--db-border-strong);
575
615
  flex-shrink: 0;
576
616
  font-size: 11px;
577
617
  }
@@ -719,6 +759,38 @@
719
759
  color: var(--db-text-placeholder);
720
760
  }
721
761
 
762
+ /* ── Settings Dialog ─────────────────────────────────────────── */
763
+
764
+ .db-settings-fieldset {
765
+ border: none;
766
+ margin: 0;
767
+ padding: 0;
768
+ }
769
+
770
+ .db-settings-legend {
771
+ font-size: 12px;
772
+ font-weight: 600;
773
+ text-transform: uppercase;
774
+ letter-spacing: 0.03em;
775
+ color: var(--db-text-muted);
776
+ margin-bottom: 8px;
777
+ }
778
+
779
+ .db-settings-radio {
780
+ display: flex;
781
+ align-items: center;
782
+ gap: 8px;
783
+ padding: 6px 0;
784
+ font-size: 13px;
785
+ color: var(--db-text);
786
+ cursor: pointer;
787
+ }
788
+
789
+ .db-settings-radio input[type='radio'] {
790
+ margin: 0;
791
+ cursor: pointer;
792
+ }
793
+
722
794
  /* ── Folder View ─────────────────────────────────────────────── */
723
795
 
724
796
  .db-folder-view {
@@ -737,7 +809,14 @@
737
809
  }
738
810
 
739
811
  .db-folder-view-icon {
740
- font-size: 20px;
812
+ display: inline-flex;
813
+ align-items: center;
814
+ color: var(--db-text-secondary);
815
+ }
816
+
817
+ .db-folder-view-icon svg {
818
+ width: 24px;
819
+ height: 24px;
741
820
  }
742
821
 
743
822
  .db-folder-view-path {
@@ -773,8 +852,15 @@
773
852
  }
774
853
 
775
854
  .db-folder-view-item-icon {
776
- font-size: 16px;
855
+ display: inline-flex;
856
+ align-items: center;
777
857
  flex-shrink: 0;
858
+ color: var(--db-text-secondary);
859
+ }
860
+
861
+ .db-folder-view-item-icon svg {
862
+ width: 18px;
863
+ height: 18px;
778
864
  }
779
865
 
780
866
  /* ── Toolbar Image Button Override ─────────────────────────── */
@@ -959,3 +1045,32 @@
959
1045
  background: var(--db-accent-hover);
960
1046
  border-color: var(--db-accent-hover);
961
1047
  }
1048
+
1049
+ /* ── Squisq editor chrome separators ─────────────────────────── */
1050
+ /* Strengthen the dividers so the toolbar, tabs, and editor body
1051
+ read as three distinct zones instead of near-identical whites. */
1052
+
1053
+ .db-shell .squisq-editor-header {
1054
+ border-bottom-color: var(--db-border-strong);
1055
+ }
1056
+
1057
+ .db-shell .squisq-toolbar-view-tabs {
1058
+ border-right-color: var(--db-border-strong);
1059
+ }
1060
+
1061
+ .db-shell[data-theme='light'] .squisq-toolbar {
1062
+ background: #d8dee6;
1063
+ }
1064
+
1065
+ .db-shell[data-theme='light'] .squisq-toolbar-view-tabs {
1066
+ background: #ffffff;
1067
+ box-shadow: 1px 0 0 rgba(0, 0, 0, 0.04);
1068
+ }
1069
+
1070
+ .db-shell[data-theme='dark'] .squisq-toolbar {
1071
+ background: rgba(255, 255, 255, 0.04);
1072
+ }
1073
+
1074
+ .db-shell[data-theme='dark'] .squisq-toolbar-view-tabs {
1075
+ background: #0b1220;
1076
+ }