react-embed-docs 0.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 (115) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +422 -0
  3. package/dist/client/components/Breadcrumbs.d.ts +21 -0
  4. package/dist/client/components/Breadcrumbs.d.ts.map +1 -0
  5. package/dist/client/components/Breadcrumbs.js +123 -0
  6. package/dist/client/components/DocsLayout.d.ts +20 -0
  7. package/dist/client/components/DocsLayout.d.ts.map +1 -0
  8. package/dist/client/components/DocsLayout.js +387 -0
  9. package/dist/client/components/DocumentContent.d.ts +5 -0
  10. package/dist/client/components/DocumentContent.d.ts.map +1 -0
  11. package/dist/client/components/DocumentContent.js +15 -0
  12. package/dist/client/components/DocumentEdit.d.ts +6 -0
  13. package/dist/client/components/DocumentEdit.d.ts.map +1 -0
  14. package/dist/client/components/DocumentEdit.js +153 -0
  15. package/dist/client/components/DocumentList.d.ts +5 -0
  16. package/dist/client/components/DocumentList.d.ts.map +1 -0
  17. package/dist/client/components/DocumentList.js +39 -0
  18. package/dist/client/components/DocumentProvider.d.ts +42 -0
  19. package/dist/client/components/DocumentProvider.d.ts.map +1 -0
  20. package/dist/client/components/DocumentProvider.js +47 -0
  21. package/dist/client/components/DocumentView.d.ts +6 -0
  22. package/dist/client/components/DocumentView.d.ts.map +1 -0
  23. package/dist/client/components/DocumentView.js +58 -0
  24. package/dist/client/components/DragOverlayItem.d.ts +5 -0
  25. package/dist/client/components/DragOverlayItem.d.ts.map +1 -0
  26. package/dist/client/components/DragOverlayItem.js +9 -0
  27. package/dist/client/components/EmojiPicker.d.ts +8 -0
  28. package/dist/client/components/EmojiPicker.d.ts.map +1 -0
  29. package/dist/client/components/EmojiPicker.js +48 -0
  30. package/dist/client/components/ExportButton.d.ts +22 -0
  31. package/dist/client/components/ExportButton.d.ts.map +1 -0
  32. package/dist/client/components/ExportButton.js +97 -0
  33. package/dist/client/components/Layout.d.ts +7 -0
  34. package/dist/client/components/Layout.d.ts.map +1 -0
  35. package/dist/client/components/Layout.js +172 -0
  36. package/dist/client/components/ReactEmbedDocs.d.ts +8 -0
  37. package/dist/client/components/ReactEmbedDocs.d.ts.map +1 -0
  38. package/dist/client/components/ReactEmbedDocs.js +8 -0
  39. package/dist/client/components/SearchInput.d.ts +2 -0
  40. package/dist/client/components/SearchInput.d.ts.map +1 -0
  41. package/dist/client/components/SearchInput.js +7 -0
  42. package/dist/client/components/Sidebar.d.ts +10 -0
  43. package/dist/client/components/Sidebar.d.ts.map +1 -0
  44. package/dist/client/components/Sidebar.js +176 -0
  45. package/dist/client/components/SortableTreeItem.d.ts +13 -0
  46. package/dist/client/components/SortableTreeItem.d.ts.map +1 -0
  47. package/dist/client/components/SortableTreeItem.js +24 -0
  48. package/dist/client/components/VersionHistory.d.ts +14 -0
  49. package/dist/client/components/VersionHistory.d.ts.map +1 -0
  50. package/dist/client/components/VersionHistory.js +102 -0
  51. package/dist/client/hooks/useCollaboration.d.ts +99 -0
  52. package/dist/client/hooks/useCollaboration.d.ts.map +1 -0
  53. package/dist/client/hooks/useCollaboration.js +180 -0
  54. package/dist/client/hooks/useDocsQuery.d.ts +84 -0
  55. package/dist/client/hooks/useDocsQuery.d.ts.map +1 -0
  56. package/dist/client/hooks/useDocsQuery.js +241 -0
  57. package/dist/client/hooks/useExport.d.ts +31 -0
  58. package/dist/client/hooks/useExport.d.ts.map +1 -0
  59. package/dist/client/hooks/useExport.js +66 -0
  60. package/dist/client/hooks/useFileUpload.d.ts +44 -0
  61. package/dist/client/hooks/useFileUpload.d.ts.map +1 -0
  62. package/dist/client/hooks/useFileUpload.js +193 -0
  63. package/dist/client/hooks/useSystemTheme.d.ts +2 -0
  64. package/dist/client/hooks/useSystemTheme.d.ts.map +1 -0
  65. package/dist/client/hooks/useSystemTheme.js +19 -0
  66. package/dist/client/hooks/useVersions.d.ts +105 -0
  67. package/dist/client/hooks/useVersions.d.ts.map +1 -0
  68. package/dist/client/hooks/useVersions.js +129 -0
  69. package/dist/client/index.d.ts +23 -0
  70. package/dist/client/index.d.ts.map +1 -0
  71. package/dist/client/index.js +18 -0
  72. package/dist/client/lib/blocknoteTheme.d.ts +13 -0
  73. package/dist/client/lib/blocknoteTheme.d.ts.map +1 -0
  74. package/dist/client/lib/blocknoteTheme.js +76 -0
  75. package/dist/client/lib/path.d.ts +8 -0
  76. package/dist/client/lib/path.d.ts.map +1 -0
  77. package/dist/client/lib/path.js +30 -0
  78. package/dist/client/providers/DocumentProvider.d.ts +1 -0
  79. package/dist/client/providers/DocumentProvider.d.ts.map +1 -0
  80. package/dist/client/providers/DocumentProvider.js +1 -0
  81. package/dist/server/CollaborationService.d.ts +134 -0
  82. package/dist/server/CollaborationService.d.ts.map +1 -0
  83. package/dist/server/CollaborationService.js +307 -0
  84. package/dist/server/DocsService.d.ts +115 -0
  85. package/dist/server/DocsService.d.ts.map +1 -0
  86. package/dist/server/DocsService.js +512 -0
  87. package/dist/server/ExportService.d.ts +106 -0
  88. package/dist/server/ExportService.d.ts.map +1 -0
  89. package/dist/server/ExportService.js +501 -0
  90. package/dist/server/FilesService.d.ts +44 -0
  91. package/dist/server/FilesService.d.ts.map +1 -0
  92. package/dist/server/FilesService.js +78 -0
  93. package/dist/server/VersioningService.d.ts +112 -0
  94. package/dist/server/VersioningService.d.ts.map +1 -0
  95. package/dist/server/VersioningService.js +264 -0
  96. package/dist/server/db.d.ts +7 -0
  97. package/dist/server/db.d.ts.map +1 -0
  98. package/dist/server/db.js +22 -0
  99. package/dist/server/index.d.ts +55 -0
  100. package/dist/server/index.d.ts.map +1 -0
  101. package/dist/server/index.js +36 -0
  102. package/dist/server/routes.d.ts +9 -0
  103. package/dist/server/routes.d.ts.map +1 -0
  104. package/dist/server/routes.js +483 -0
  105. package/dist/server/schema.d.ts +587 -0
  106. package/dist/server/schema.d.ts.map +1 -0
  107. package/dist/server/schema.js +126 -0
  108. package/dist/shared/types.d.ts +314 -0
  109. package/dist/shared/types.d.ts.map +1 -0
  110. package/dist/shared/types.js +48 -0
  111. package/drizzle/migrations/0000_gray_monster_badoon.sql +88 -0
  112. package/drizzle/migrations/meta/0000_snapshot.json +574 -0
  113. package/drizzle/migrations/meta/_journal.json +13 -0
  114. package/package.json +109 -0
  115. package/styles/docs.css +981 -0
@@ -0,0 +1,981 @@
1
+ /**
2
+ * react-embed-docs - Component Styles
3
+ *
4
+ * Import this file in your application:
5
+ * import 'react-embed-docs/styles';
6
+ *
7
+ * These are plain CSS styles that don't require Tailwind processing.
8
+ * They use CSS custom properties for theming that should be set by your app:
9
+ * - --docs-bg-primary: Primary background
10
+ * - --docs-bg-secondary: Secondary/sidebar background
11
+ * - --docs-border: Border color
12
+ * - --docs-text-primary: Primary text
13
+ * - --docs-text-secondary: Secondary/muted text
14
+ * - --docs-text-muted: Muted text
15
+ * - --docs-accent: Accent/primary color
16
+ */
17
+
18
+ /* Default light theme values */
19
+ :root {
20
+ --docs-bg-primary: #ffffff;
21
+ --docs-bg-secondary: #f9fafb;
22
+ --docs-bg-hover: #f3f4f6;
23
+ --docs-border: #e5e7eb;
24
+ --docs-text-primary: #111827;
25
+ --docs-text-secondary: #374151;
26
+ --docs-text-muted: #6b7280;
27
+ --docs-accent: #2563eb;
28
+ --docs-accent-hover: #1d4ed8;
29
+ --docs-ring: #3b82f6;
30
+ --docs-radius: 0.375rem;
31
+ }
32
+
33
+ /* Dark theme - applied when .dark class is on parent */
34
+ .dark,
35
+ .dark * {
36
+ --docs-bg-primary: #18181b;
37
+ --docs-bg-secondary: #27272a;
38
+ --docs-bg-hover: #3f3f46;
39
+ --docs-border: #3f3f46;
40
+ --docs-text-primary: #fafafa;
41
+ --docs-text-secondary: #e4e4e7;
42
+ --docs-text-muted: #a1a1aa;
43
+ --docs-accent: #3b82f6;
44
+ --docs-accent-hover: #2563eb;
45
+ }
46
+
47
+ /* Base styles for the documentation system */
48
+ .docs-container {
49
+ display: flex;
50
+ height: 100vh;
51
+ width: 100%;
52
+ }
53
+
54
+ /* Sidebar Styles */
55
+ .docs-sidebar {
56
+ width: 16rem;
57
+ flex-shrink: 0;
58
+ border-right: 1px solid var(--docs-border);
59
+ background-color: var(--docs-bg-secondary);
60
+ display: flex;
61
+ flex-direction: column;
62
+ }
63
+
64
+ .docs-sidebar-header {
65
+ padding: 1rem;
66
+ border-bottom: 1px solid var(--docs-border);
67
+ }
68
+
69
+ .docs-sidebar-title {
70
+ font-weight: 600;
71
+ font-size: 0.875rem;
72
+ color: var(--docs-text-muted);
73
+ }
74
+
75
+ .docs-sidebar-search {
76
+ position: relative;
77
+ margin-top: 0.75rem;
78
+ }
79
+
80
+ .docs-sidebar-search-input {
81
+ width: 100%;
82
+ padding-left: 2rem;
83
+ padding-right: 0.75rem;
84
+ padding-top: 0.5rem;
85
+ padding-bottom: 0.5rem;
86
+ font-size: 0.875rem;
87
+ border: 1px solid #d1d5db;
88
+ border-radius: var(--docs-radius);
89
+ background-color: var(--docs-bg-primary);
90
+ color: var(--docs-text-primary);
91
+ }
92
+
93
+ .docs-sidebar-search-input:focus {
94
+ outline: none;
95
+ border-color: var(--docs-ring);
96
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
97
+ }
98
+
99
+ .dark .docs-sidebar-search-input {
100
+ border-color: var(--docs-border);
101
+ background-color: var(--docs-bg-secondary);
102
+ }
103
+
104
+ .docs-sidebar-tree {
105
+ flex: 1;
106
+ overflow-y: auto;
107
+ padding: 0.5rem;
108
+ }
109
+
110
+ .docs-sidebar-tree > * + * {
111
+ margin-top: 0.25rem;
112
+ }
113
+
114
+ /* Tree Item Styles */
115
+ .docs-tree-item {
116
+ display: flex;
117
+ align-items: center;
118
+ gap: 0.25rem;
119
+ width: 100%;
120
+ padding: 0.375rem 0.5rem;
121
+ font-size: 0.875rem;
122
+ color: var(--docs-text-muted);
123
+ border-radius: var(--docs-radius);
124
+ transition: all 0.15s ease;
125
+ cursor: pointer;
126
+ }
127
+
128
+ .docs-tree-item:hover {
129
+ background-color: var(--docs-bg-hover);
130
+ color: var(--docs-text-primary);
131
+ }
132
+
133
+ .docs-tree-item.dragging {
134
+ opacity: 0.5;
135
+ background-color: var(--docs-bg-hover);
136
+ }
137
+
138
+ .docs-tree-item-toggle {
139
+ padding: 0.125rem;
140
+ border-radius: var(--docs-radius);
141
+ flex-shrink: 0;
142
+ }
143
+
144
+ .docs-tree-item-toggle:hover {
145
+ background-color: var(--docs-bg-hover);
146
+ }
147
+
148
+ .docs-tree-item-drag-handle {
149
+ cursor: grab;
150
+ padding: 0.125rem;
151
+ border-radius: var(--docs-radius);
152
+ opacity: 0;
153
+ transition: opacity 0.15s ease;
154
+ }
155
+
156
+ .docs-tree-item:hover .docs-tree-item-drag-handle {
157
+ opacity: 1;
158
+ }
159
+
160
+ .docs-tree-item-drag-handle:hover {
161
+ background-color: var(--docs-bg-hover);
162
+ }
163
+
164
+ .docs-tree-item-drag-handle:active {
165
+ cursor: grabbing;
166
+ }
167
+
168
+ /* Main Content Styles */
169
+ .docs-main {
170
+ flex: 1;
171
+ display: flex;
172
+ flex-direction: column;
173
+ min-width: 0;
174
+ overflow: hidden;
175
+ background-color: var(--docs-bg-primary);
176
+ }
177
+
178
+ .docs-header {
179
+ height: 4rem;
180
+ border-bottom: 1px solid var(--docs-border);
181
+ background-color: var(--docs-bg-primary);
182
+ display: flex;
183
+ align-items: center;
184
+ justify-content: space-between;
185
+ padding: 0 1.5rem;
186
+ flex-shrink: 0;
187
+ }
188
+
189
+ .docs-header-title {
190
+ font-size: 1.25rem;
191
+ font-weight: 600;
192
+ color: var(--docs-text-primary);
193
+ }
194
+
195
+ .docs-header-actions {
196
+ display: flex;
197
+ align-items: center;
198
+ gap: 1rem;
199
+ }
200
+
201
+ .docs-content {
202
+ flex: 1;
203
+ overflow: auto;
204
+ padding: 1.5rem;
205
+ }
206
+
207
+ /* Document Edit Styles */
208
+ .docs-editor-container {
209
+ max-width: 56rem;
210
+ margin: 0 auto;
211
+ height: 100%;
212
+ display: flex;
213
+ flex-direction: column;
214
+ }
215
+
216
+ .docs-editor-header {
217
+ margin-bottom: 1.5rem;
218
+ flex-shrink: 0;
219
+ }
220
+
221
+ .docs-editor-title-row {
222
+ display: flex;
223
+ align-items: flex-start;
224
+ justify-content: space-between;
225
+ gap: 1rem;
226
+ }
227
+
228
+ .docs-editor-title-input {
229
+ font-size: 1.5rem;
230
+ font-weight: 700;
231
+ border: none;
232
+ background: transparent;
233
+ padding: 0;
234
+ width: 100%;
235
+ color: var(--docs-text-primary);
236
+ }
237
+
238
+ .docs-editor-title-input:focus {
239
+ outline: none;
240
+ box-shadow: none;
241
+ }
242
+
243
+ .docs-editor-title-input::placeholder {
244
+ color: var(--docs-text-muted);
245
+ }
246
+
247
+ .docs-editor-slug {
248
+ font-size: 0.875rem;
249
+ color: var(--docs-text-muted);
250
+ margin-top: 0.25rem;
251
+ }
252
+
253
+ .docs-editor-parent {
254
+ display: flex;
255
+ align-items: center;
256
+ gap: 0.5rem;
257
+ font-size: 0.875rem;
258
+ color: var(--docs-text-muted);
259
+ margin-bottom: 0.5rem;
260
+ }
261
+
262
+ .docs-editor-actions {
263
+ display: flex;
264
+ align-items: center;
265
+ gap: 0.5rem;
266
+ flex-shrink: 0;
267
+ }
268
+
269
+ /* Cover Image Styles */
270
+ .docs-cover-container {
271
+ margin-bottom: 2rem;
272
+ position: relative;
273
+ }
274
+
275
+ .docs-cover-image {
276
+ width: 100%;
277
+ aspect-ratio: 3 / 1;
278
+ max-height: 300px;
279
+ object-fit: cover;
280
+ border-radius: var(--docs-radius);
281
+ }
282
+
283
+ .docs-cover-dropzone {
284
+ width: 100%;
285
+ aspect-ratio: 3 / 1;
286
+ max-height: 300px;
287
+ border: 2px dashed var(--docs-border);
288
+ border-radius: var(--docs-radius);
289
+ display: flex;
290
+ flex-direction: column;
291
+ align-items: center;
292
+ justify-content: center;
293
+ color: var(--docs-text-muted);
294
+ cursor: pointer;
295
+ transition: all 0.15s ease;
296
+ }
297
+
298
+ .docs-cover-dropzone:hover {
299
+ border-color: var(--docs-text-muted);
300
+ color: var(--docs-text-secondary);
301
+ }
302
+
303
+ .docs-cover-dropzone.dragover {
304
+ border-color: var(--docs-accent);
305
+ background-color: rgba(37, 99, 235, 0.05);
306
+ }
307
+
308
+ .dark .docs-cover-dropzone.dragover {
309
+ background-color: rgba(59, 130, 246, 0.1);
310
+ }
311
+
312
+ .docs-cover-remove {
313
+ position: absolute;
314
+ top: 0.5rem;
315
+ right: 0.5rem;
316
+ padding: 0.25rem;
317
+ background-color: rgba(255, 255, 255, 0.8);
318
+ border-radius: 9999px;
319
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
320
+ color: var(--docs-text-muted);
321
+ transition: all 0.15s ease;
322
+ }
323
+
324
+ .docs-cover-remove:hover {
325
+ background-color: white;
326
+ color: #dc2626;
327
+ }
328
+
329
+ .dark .docs-cover-remove {
330
+ background-color: rgba(39, 39, 42, 0.8);
331
+ }
332
+
333
+ .dark .docs-cover-remove:hover {
334
+ background-color: var(--docs-bg-secondary);
335
+ }
336
+
337
+ /* Emoji Picker Styles */
338
+ .docs-emoji-picker-trigger {
339
+ height: 2.5rem;
340
+ width: 2.5rem;
341
+ border-radius: var(--docs-radius);
342
+ border: 1px solid var(--docs-border);
343
+ background-color: var(--docs-bg-primary);
344
+ display: flex;
345
+ align-items: center;
346
+ justify-content: center;
347
+ font-size: 1.25rem;
348
+ cursor: pointer;
349
+ transition: all 0.15s ease;
350
+ }
351
+
352
+ .docs-emoji-picker-trigger:hover {
353
+ background-color: var(--docs-bg-hover);
354
+ }
355
+
356
+ .docs-emoji-picker-dropdown {
357
+ position: absolute;
358
+ z-index: 50;
359
+ background-color: var(--docs-bg-primary);
360
+ border-radius: var(--docs-radius);
361
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
362
+ border: 1px solid var(--docs-border);
363
+ padding: 0.5rem;
364
+ width: 16rem;
365
+ }
366
+
367
+ .docs-emoji-grid {
368
+ display: grid;
369
+ grid-template-columns: repeat(8, 1fr);
370
+ gap: 0.25rem;
371
+ }
372
+
373
+ .docs-emoji-item {
374
+ height: 2rem;
375
+ width: 2rem;
376
+ border-radius: var(--docs-radius);
377
+ display: flex;
378
+ align-items: center;
379
+ justify-content: center;
380
+ font-size: 1.125rem;
381
+ cursor: pointer;
382
+ transition: all 0.15s ease;
383
+ }
384
+
385
+ .docs-emoji-item:hover {
386
+ background-color: var(--docs-bg-hover);
387
+ }
388
+
389
+ .docs-emoji-item.selected {
390
+ background-color: var(--docs-bg-hover);
391
+ }
392
+
393
+ /* Document View Styles */
394
+ .docs-view-header {
395
+ margin-bottom: 2rem;
396
+ }
397
+
398
+ .docs-view-title-row {
399
+ display: flex;
400
+ align-items: flex-start;
401
+ justify-content: space-between;
402
+ gap: 1rem;
403
+ margin-bottom: 1rem;
404
+ }
405
+
406
+ .docs-view-title {
407
+ display: flex;
408
+ align-items: center;
409
+ gap: 0.75rem;
410
+ }
411
+
412
+ .docs-view-emoji {
413
+ font-size: 3rem;
414
+ line-height: 1;
415
+ }
416
+
417
+ .docs-view-heading {
418
+ font-size: 1.875rem;
419
+ font-weight: 700;
420
+ color: var(--docs-text-primary);
421
+ }
422
+
423
+ .docs-view-meta {
424
+ display: flex;
425
+ align-items: center;
426
+ gap: 1.5rem;
427
+ font-size: 0.875rem;
428
+ color: var(--docs-text-muted);
429
+ }
430
+
431
+ .docs-view-content {
432
+ border: 1px solid var(--docs-border);
433
+ border-radius: var(--docs-radius);
434
+ background-color: var(--docs-bg-primary);
435
+ }
436
+
437
+ /* Document List Styles */
438
+ .docs-list-container {
439
+ max-width: 64rem;
440
+ margin: 0 auto;
441
+ }
442
+
443
+ .docs-list-container > * + * {
444
+ margin-top: 1.5rem;
445
+ }
446
+
447
+ .docs-list-welcome > * + * {
448
+ margin-top: 0.5rem;
449
+ }
450
+
451
+ .docs-list-welcome h2 {
452
+ font-size: 1.5rem;
453
+ font-weight: 700;
454
+ color: var(--docs-text-primary);
455
+ }
456
+
457
+ .docs-list-welcome p {
458
+ color: var(--docs-text-secondary);
459
+ }
460
+
461
+ .docs-list-section > * + * {
462
+ margin-top: 1rem;
463
+ }
464
+
465
+ .docs-list-section-header {
466
+ display: flex;
467
+ align-items: center;
468
+ justify-content: space-between;
469
+ }
470
+
471
+ .docs-list-section-title {
472
+ font-size: 1.125rem;
473
+ font-weight: 600;
474
+ color: var(--docs-text-primary);
475
+ }
476
+
477
+ .docs-list-grid {
478
+ display: grid;
479
+ grid-template-columns: repeat(1, 1fr);
480
+ gap: 1rem;
481
+ }
482
+
483
+ @media (min-width: 640px) {
484
+ .docs-list-grid {
485
+ grid-template-columns: repeat(2, 1fr);
486
+ }
487
+ }
488
+
489
+ @media (min-width: 1024px) {
490
+ .docs-list-grid {
491
+ grid-template-columns: repeat(3, 1fr);
492
+ }
493
+ }
494
+
495
+ .docs-list-card {
496
+ border: 1px solid var(--docs-border);
497
+ border-radius: var(--docs-radius);
498
+ padding: 1rem;
499
+ background-color: var(--docs-bg-primary);
500
+ cursor: pointer;
501
+ transition: all 0.15s ease;
502
+ }
503
+
504
+ .docs-list-card:hover {
505
+ background-color: var(--docs-bg-hover);
506
+ }
507
+
508
+ .docs-list-card.dashed {
509
+ border-style: dashed;
510
+ }
511
+
512
+ .docs-list-card-header {
513
+ display: flex;
514
+ align-items: flex-start;
515
+ justify-content: space-between;
516
+ margin-bottom: 0.5rem;
517
+ }
518
+
519
+ .docs-list-card-icon {
520
+ height: 2rem;
521
+ width: 2rem;
522
+ color: var(--docs-accent);
523
+ }
524
+
525
+ .docs-list-card-count {
526
+ font-size: 0.75rem;
527
+ color: var(--docs-text-muted);
528
+ }
529
+
530
+ .docs-list-card-title {
531
+ font-size: 1rem;
532
+ font-weight: 500;
533
+ color: var(--docs-text-primary);
534
+ }
535
+
536
+ .docs-list-item {
537
+ display: flex;
538
+ align-items: center;
539
+ justify-content: space-between;
540
+ padding: 1rem;
541
+ border-radius: var(--docs-radius);
542
+ border: 1px solid var(--docs-border);
543
+ background-color: var(--docs-bg-primary);
544
+ cursor: pointer;
545
+ transition: all 0.15s ease;
546
+ }
547
+
548
+ .docs-list-item:hover {
549
+ background-color: var(--docs-bg-hover);
550
+ }
551
+
552
+ .docs-list-item-icon {
553
+ height: 1.25rem;
554
+ width: 1.25rem;
555
+ color: var(--docs-text-muted);
556
+ transition: color 0.15s ease;
557
+ }
558
+
559
+ .group:hover .docs-list-item-icon {
560
+ color: var(--docs-accent);
561
+ }
562
+
563
+ .docs-list-item-content {
564
+ flex: 1;
565
+ }
566
+
567
+ .docs-list-item-title {
568
+ font-weight: 500;
569
+ color: var(--docs-text-primary);
570
+ }
571
+
572
+ .docs-list-item-meta {
573
+ font-size: 0.875rem;
574
+ color: var(--docs-text-muted);
575
+ }
576
+
577
+ /* Empty State Styles */
578
+ .docs-empty {
579
+ border: 2px dashed var(--docs-border);
580
+ border-radius: var(--docs-radius);
581
+ padding: 2rem;
582
+ display: flex;
583
+ flex-direction: column;
584
+ align-items: center;
585
+ justify-content: center;
586
+ text-align: center;
587
+ }
588
+
589
+ .docs-empty-icon {
590
+ height: 3rem;
591
+ width: 3rem;
592
+ color: var(--docs-text-muted);
593
+ margin-bottom: 1rem;
594
+ }
595
+
596
+ .docs-empty-title {
597
+ font-size: 1.125rem;
598
+ font-weight: 500;
599
+ color: var(--docs-text-primary);
600
+ margin-bottom: 0.5rem;
601
+ }
602
+
603
+ .docs-empty-description {
604
+ font-size: 0.875rem;
605
+ color: var(--docs-text-muted);
606
+ margin-bottom: 1rem;
607
+ }
608
+
609
+ /* Search Results Styles */
610
+ .docs-search-results {
611
+ position: absolute;
612
+ top: 100%;
613
+ left: 0;
614
+ right: 0;
615
+ margin-top: 0.25rem;
616
+ background-color: var(--docs-bg-primary);
617
+ border-radius: var(--docs-radius);
618
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
619
+ border: 1px solid var(--docs-border);
620
+ max-height: 20rem;
621
+ overflow-y: auto;
622
+ z-index: 50;
623
+ }
624
+
625
+ .docs-search-result-item {
626
+ display: flex;
627
+ align-items: flex-start;
628
+ gap: 0.75rem;
629
+ padding: 0.75rem;
630
+ cursor: pointer;
631
+ border-bottom: 1px solid var(--docs-border);
632
+ transition: all 0.15s ease;
633
+ }
634
+
635
+ .docs-search-result-item:last-child {
636
+ border-bottom: none;
637
+ }
638
+
639
+ .docs-search-result-item:hover {
640
+ background-color: var(--docs-bg-hover);
641
+ }
642
+
643
+ .docs-search-result-icon {
644
+ height: 1.25rem;
645
+ width: 1.25rem;
646
+ color: var(--docs-text-muted);
647
+ margin-top: 0.125rem;
648
+ flex-shrink: 0;
649
+ }
650
+
651
+ .docs-search-result-content {
652
+ flex: 1;
653
+ min-width: 0;
654
+ }
655
+
656
+ .docs-search-result-title {
657
+ font-weight: 500;
658
+ color: var(--docs-text-primary);
659
+ white-space: nowrap;
660
+ overflow: hidden;
661
+ text-overflow: ellipsis;
662
+ }
663
+
664
+ .docs-search-result-breadcrumb {
665
+ font-size: 0.75rem;
666
+ color: var(--docs-text-muted);
667
+ white-space: nowrap;
668
+ overflow: hidden;
669
+ text-overflow: ellipsis;
670
+ }
671
+
672
+ .docs-search-result-highlight {
673
+ font-size: 0.875rem;
674
+ color: var(--docs-text-secondary);
675
+ margin-top: 0.25rem;
676
+ display: -webkit-box;
677
+ -webkit-line-clamp: 2;
678
+ -webkit-box-orient: vertical;
679
+ overflow: hidden;
680
+ }
681
+
682
+ .docs-search-result-match {
683
+ background-color: #fef08a;
684
+ padding: 0 0.125rem;
685
+ border-radius: 0.125rem;
686
+ }
687
+
688
+ .dark .docs-search-result-match {
689
+ background-color: rgba(250, 204, 21, 0.3);
690
+ }
691
+
692
+ /* Drag Overlay Styles */
693
+ .docs-drag-overlay {
694
+ background-color: var(--docs-bg-primary);
695
+ border-radius: var(--docs-radius);
696
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
697
+ border: 1px solid var(--docs-border);
698
+ opacity: 0.8;
699
+ cursor: grabbing;
700
+ z-index: 50;
701
+ }
702
+
703
+ /* Button Styles */
704
+ .docs-btn {
705
+ display: inline-flex;
706
+ align-items: center;
707
+ justify-content: center;
708
+ border-radius: var(--docs-radius);
709
+ font-size: 0.875rem;
710
+ font-weight: 500;
711
+ transition: all 0.15s ease;
712
+ padding: 0.5rem 1rem;
713
+ cursor: pointer;
714
+ }
715
+
716
+ .docs-btn:focus {
717
+ outline: none;
718
+ box-shadow: 0 0 0 2px var(--docs-ring), 0 0 0 4px rgba(59, 130, 246, 0.2);
719
+ }
720
+
721
+ .docs-btn:disabled {
722
+ pointer-events: none;
723
+ opacity: 0.5;
724
+ }
725
+
726
+ .docs-btn-primary {
727
+ background-color: var(--docs-accent);
728
+ color: white;
729
+ border: none;
730
+ }
731
+
732
+ .docs-btn-primary:hover {
733
+ background-color: var(--docs-accent-hover);
734
+ }
735
+
736
+ .docs-btn-secondary {
737
+ background-color: var(--docs-bg-hover);
738
+ color: var(--docs-text-primary);
739
+ border: none;
740
+ }
741
+
742
+ .docs-btn-secondary:hover {
743
+ background-color: var(--docs-border);
744
+ }
745
+
746
+ .docs-btn-ghost {
747
+ background-color: transparent;
748
+ color: var(--docs-text-primary);
749
+ border: none;
750
+ }
751
+
752
+ .docs-btn-ghost:hover {
753
+ background-color: var(--docs-bg-hover);
754
+ }
755
+
756
+ .docs-btn-sm {
757
+ height: 2rem;
758
+ padding: 0 0.75rem;
759
+ }
760
+
761
+ .docs-btn-md {
762
+ height: 2.5rem;
763
+ padding: 0 1rem;
764
+ }
765
+
766
+ /* Input Styles */
767
+ .docs-input {
768
+ display: flex;
769
+ width: 100%;
770
+ border-radius: var(--docs-radius);
771
+ border: 1px solid var(--docs-border);
772
+ background-color: var(--docs-bg-primary);
773
+ padding: 0.5rem 0.75rem;
774
+ font-size: 0.875rem;
775
+ color: var(--docs-text-primary);
776
+ }
777
+
778
+ .docs-input::placeholder {
779
+ color: var(--docs-text-muted);
780
+ }
781
+
782
+ .docs-input:focus {
783
+ outline: none;
784
+ border-color: var(--docs-ring);
785
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
786
+ }
787
+
788
+ .docs-input:disabled {
789
+ cursor: not-allowed;
790
+ opacity: 0.5;
791
+ }
792
+
793
+ /* Dropdown Styles */
794
+ .docs-dropdown {
795
+ position: absolute;
796
+ z-index: 50;
797
+ min-width: 8rem;
798
+ overflow: hidden;
799
+ border-radius: var(--docs-radius);
800
+ border: 1px solid var(--docs-border);
801
+ background-color: var(--docs-bg-primary);
802
+ padding: 0.25rem;
803
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
804
+ }
805
+
806
+ .docs-dropdown-item {
807
+ position: relative;
808
+ display: flex;
809
+ cursor: pointer;
810
+ user-select: none;
811
+ align-items: center;
812
+ border-radius: calc(var(--docs-radius) - 2px);
813
+ padding: 0.375rem 0.5rem;
814
+ font-size: 0.875rem;
815
+ transition: all 0.15s ease;
816
+ }
817
+
818
+ .docs-dropdown-item:hover,
819
+ .docs-dropdown-item:focus {
820
+ background-color: var(--docs-bg-hover);
821
+ outline: none;
822
+ }
823
+
824
+ /* Card Styles */
825
+ .docs-card {
826
+ border-radius: var(--docs-radius);
827
+ border: 1px solid var(--docs-border);
828
+ background-color: var(--docs-bg-primary);
829
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
830
+ }
831
+
832
+ .docs-card-content {
833
+ padding: 1.5rem;
834
+ }
835
+
836
+ /* BlockNote Editor Overrides */
837
+ .bn-editor {
838
+ font-family: inherit;
839
+ max-width: none;
840
+ }
841
+
842
+ /* Remove horizontal padding in view mode */
843
+ .bn-editor {
844
+ padding-left: 0 !important;
845
+ padding-right: 0 !important;
846
+ }
847
+
848
+ /* Also target the container */
849
+ .bn-container {
850
+ --bn-container-padding: 0;
851
+ }
852
+
853
+ /* Prose styles for content */
854
+ .prose {
855
+ color: var(--docs-text-primary);
856
+ line-height: 1.75;
857
+ }
858
+
859
+ .prose p {
860
+ margin-top: 1rem;
861
+ margin-bottom: 1rem;
862
+ }
863
+
864
+ .prose h1 {
865
+ font-size: 2.25rem;
866
+ font-weight: 800;
867
+ margin-top: 0;
868
+ margin-bottom: 1rem;
869
+ }
870
+
871
+ .prose h2 {
872
+ font-size: 1.5rem;
873
+ font-weight: 700;
874
+ margin-top: 2rem;
875
+ margin-bottom: 1rem;
876
+ }
877
+
878
+ .prose h3 {
879
+ font-size: 1.25rem;
880
+ font-weight: 600;
881
+ margin-top: 1.5rem;
882
+ margin-bottom: 0.75rem;
883
+ }
884
+
885
+ .prose ul {
886
+ list-style-type: disc;
887
+ padding-left: 1.5rem;
888
+ margin: 1rem 0;
889
+ }
890
+
891
+ .prose ol {
892
+ list-style-type: decimal;
893
+ padding-left: 1.5rem;
894
+ margin: 1rem 0;
895
+ }
896
+
897
+ .prose li {
898
+ margin: 0.25rem 0;
899
+ }
900
+
901
+ .prose blockquote {
902
+ border-left: 4px solid var(--docs-border);
903
+ padding-left: 1rem;
904
+ margin: 1rem 0;
905
+ font-style: italic;
906
+ color: var(--docs-text-secondary);
907
+ }
908
+
909
+ .prose code {
910
+ background-color: var(--docs-bg-hover);
911
+ padding: 0.125rem 0.25rem;
912
+ border-radius: 0.25rem;
913
+ font-family: ui-monospace, monospace;
914
+ font-size: 0.875em;
915
+ }
916
+
917
+ .prose pre {
918
+ background-color: var(--docs-bg-secondary);
919
+ padding: 1rem;
920
+ border-radius: var(--docs-radius);
921
+ overflow-x: auto;
922
+ margin: 1rem 0;
923
+ }
924
+
925
+ .prose pre code {
926
+ background-color: transparent;
927
+ padding: 0;
928
+ }
929
+
930
+ .prose a {
931
+ color: var(--docs-accent);
932
+ text-decoration: underline;
933
+ }
934
+
935
+ .prose a:hover {
936
+ color: var(--docs-accent-hover);
937
+ }
938
+
939
+ .prose img {
940
+ max-width: 100%;
941
+ border-radius: var(--docs-radius);
942
+ }
943
+
944
+ /* Dark mode prose adjustments */
945
+ .dark .prose-invert {
946
+ color: var(--docs-text-primary);
947
+ }
948
+
949
+ .dark .prose-invert h1,
950
+ .dark .prose-invert h2,
951
+ .dark .prose-invert h3 {
952
+ color: var(--docs-text-primary);
953
+ }
954
+
955
+ /* Responsive Adjustments */
956
+ @media (max-width: 768px) {
957
+ .docs-sidebar {
958
+ position: fixed;
959
+ inset-y: 0;
960
+ left: 0;
961
+ z-index: 40;
962
+ transform: translateX(-100%);
963
+ transition: transform 0.2s ease;
964
+ }
965
+
966
+ .docs-sidebar.open {
967
+ transform: translateX(0);
968
+ }
969
+
970
+ .docs-header {
971
+ padding: 0 1rem;
972
+ }
973
+
974
+ .docs-header-search {
975
+ display: none;
976
+ }
977
+
978
+ .docs-content {
979
+ padding: 1rem;
980
+ }
981
+ }