botdocs 0.1.0 → 0.2.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.
@@ -0,0 +1,652 @@
1
+ /* Material Theme - Colorful, card-based, Material Design inspired */
2
+
3
+ * {
4
+ margin: 0;
5
+ padding: 0;
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ :root {
10
+ /* Material Design Colors */
11
+ --bg-primary: #fafafa;
12
+ --bg-secondary: #ffffff;
13
+ --bg-tertiary: #f5f5f5;
14
+ --text-primary: #212121;
15
+ --text-secondary: #757575;
16
+ --border-color: #e0e0e0;
17
+ --link-color: #1976d2;
18
+ --link-hover: #1565c0;
19
+ --code-bg: #eceff1;
20
+ --primary-color: #1976d2;
21
+ --accent-color: #26a69a;
22
+ --sidebar-width: 300px;
23
+ --content-max-width: 900px;
24
+ --shadow-1: 0 2px 4px rgba(0,0,0,0.1);
25
+ --shadow-2: 0 4px 8px rgba(0,0,0,0.12);
26
+ --shadow-3: 0 8px 16px rgba(0,0,0,0.15);
27
+ }
28
+
29
+ body {
30
+ font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
31
+ line-height: 1.7;
32
+ color: var(--text-primary);
33
+ background: var(--bg-primary);
34
+ }
35
+
36
+ .layout {
37
+ display: flex;
38
+ min-height: 100vh;
39
+ }
40
+
41
+ /* Sidebar with elevation */
42
+ .sidebar {
43
+ width: var(--sidebar-width);
44
+ background: var(--bg-secondary);
45
+ box-shadow: var(--shadow-2);
46
+ padding: 2rem;
47
+ overflow-y: auto;
48
+ position: fixed;
49
+ height: 100vh;
50
+ left: 0;
51
+ top: 0;
52
+ z-index: 10;
53
+ }
54
+
55
+ .sidebar-header {
56
+ margin-bottom: 2.5rem;
57
+ padding-bottom: 1.5rem;
58
+ border-bottom: 3px solid var(--primary-color);
59
+ }
60
+
61
+ .site-title {
62
+ font-size: 1.75rem;
63
+ font-weight: 500;
64
+ color: var(--primary-color);
65
+ margin-bottom: 0.5rem;
66
+ letter-spacing: 0.5px;
67
+ }
68
+
69
+ .site-description {
70
+ font-size: 0.9rem;
71
+ color: var(--text-secondary);
72
+ line-height: 1.5;
73
+ }
74
+
75
+ .sidebar-nav {
76
+ margin-top: 1.5rem;
77
+ }
78
+
79
+ .nav-list {
80
+ list-style: none;
81
+ }
82
+
83
+ .nav-list li {
84
+ margin-bottom: 0.25rem;
85
+ }
86
+
87
+ .nav-list a {
88
+ color: var(--text-primary);
89
+ text-decoration: none;
90
+ display: block;
91
+ padding: 0.75rem 1rem;
92
+ border-radius: 4px;
93
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
94
+ font-weight: 500;
95
+ }
96
+
97
+ .nav-list a:hover {
98
+ background: var(--bg-tertiary);
99
+ padding-left: 1.25rem;
100
+ }
101
+
102
+ .nav-list a.active {
103
+ background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
104
+ color: white;
105
+ box-shadow: var(--shadow-1);
106
+ }
107
+
108
+ /* Main Content */
109
+ .main-content {
110
+ margin-left: var(--sidebar-width);
111
+ flex: 1;
112
+ padding: 3rem;
113
+ background: var(--bg-primary);
114
+ }
115
+
116
+ .content-wrapper {
117
+ max-width: var(--content-max-width);
118
+ margin: 0 auto;
119
+ background: var(--bg-secondary);
120
+ padding: 3rem;
121
+ border-radius: 8px;
122
+ box-shadow: var(--shadow-2);
123
+ position: relative;
124
+ }
125
+
126
+ /* Major headings as Material Design headers */
127
+ .content-wrapper > h1,
128
+ .content-wrapper h1:first-child {
129
+ background: linear-gradient(135deg, #1976d2, #26a69a) !important;
130
+ color: #ffffff !important;
131
+ padding: 2rem 2.5rem;
132
+ margin: -3rem -3rem 2rem -3rem;
133
+ box-shadow: var(--shadow-2);
134
+ border-radius: 8px 8px 0 0;
135
+ }
136
+
137
+ .content-wrapper > h2 {
138
+ background: linear-gradient(135deg, #1976d2, #26a69a) !important;
139
+ color: #ffffff !important;
140
+ padding: 1.5rem 2.5rem;
141
+ margin: 3rem -3rem 2rem -3rem;
142
+ box-shadow: var(--shadow-1);
143
+ }
144
+
145
+ /* Force white text on gradient headers in both light and dark modes */
146
+ [data-theme='light'] .content-wrapper > h1,
147
+ [data-theme='light'] .content-wrapper > h2,
148
+ [data-theme='dark'] .content-wrapper > h1,
149
+ [data-theme='dark'] .content-wrapper > h2 {
150
+ color: #ffffff !important;
151
+ }
152
+
153
+ /* Typography with Material Design */
154
+ h1, h2, h3, h4, h5, h6 {
155
+ margin-top: 2.5rem;
156
+ margin-bottom: 1.25rem;
157
+ font-weight: 500;
158
+ line-height: 1.3;
159
+ color: var(--text-primary);
160
+ letter-spacing: 0.3px;
161
+ }
162
+
163
+ h1 {
164
+ font-size: 2.75rem;
165
+ margin-top: 0;
166
+ font-weight: 400;
167
+ border-bottom: none;
168
+ padding-bottom: 0;
169
+ }
170
+
171
+ h2 {
172
+ font-size: 2.25rem;
173
+ padding-bottom: 0;
174
+ border-bottom: none;
175
+ margin-top: 3rem;
176
+ margin-bottom: 2rem;
177
+ }
178
+
179
+ h3 {
180
+ font-size: 1.75rem;
181
+ color: var(--primary-color);
182
+ padding: 1rem 0 1rem 1.5rem;
183
+ margin-top: 2.5rem;
184
+ border-left: 4px solid var(--accent-color);
185
+ margin-left: -1rem;
186
+ }
187
+
188
+ h4 {
189
+ font-size: 1.375rem;
190
+ color: var(--accent-color);
191
+ font-weight: 600;
192
+ }
193
+
194
+ p {
195
+ margin-bottom: 1.25rem;
196
+ }
197
+
198
+ a {
199
+ color: var(--link-color);
200
+ text-decoration: none;
201
+ border-bottom: 2px solid transparent;
202
+ transition: border-color 0.2s;
203
+ }
204
+
205
+ a:hover {
206
+ border-bottom-color: var(--link-color);
207
+ }
208
+
209
+ /* Code with Material elevation */
210
+ code {
211
+ font-family: 'Roboto Mono', 'Monaco', monospace;
212
+ font-size: 0.9rem;
213
+ background: var(--code-bg);
214
+ padding: 0.25rem 0.5rem;
215
+ border-radius: 4px;
216
+ color: #c2185b;
217
+ }
218
+
219
+ pre {
220
+ background: #263238;
221
+ color: #aed581;
222
+ padding: 1.5rem;
223
+ border-radius: 8px;
224
+ overflow-x: auto;
225
+ margin: 2rem 0;
226
+ box-shadow: var(--shadow-2);
227
+ }
228
+
229
+ pre code {
230
+ background: none;
231
+ padding: 0;
232
+ color: inherit;
233
+ }
234
+
235
+ /* Blockquotes as Material cards */
236
+ blockquote {
237
+ border-left: 4px solid var(--accent-color);
238
+ background: var(--bg-tertiary);
239
+ padding: 1rem 1.5rem;
240
+ margin: 2rem 0;
241
+ color: var(--text-secondary);
242
+ border-radius: 4px;
243
+ box-shadow: var(--shadow-1);
244
+ }
245
+
246
+ /* Material Callouts */
247
+ .markdown-alert {
248
+ padding: 1.25rem 1.5rem;
249
+ margin: 2rem 0;
250
+ border-left: 5px solid;
251
+ border-radius: 4px;
252
+ box-shadow: var(--shadow-1);
253
+ }
254
+
255
+ .markdown-alert-title {
256
+ font-weight: 600;
257
+ margin-bottom: 0.75rem;
258
+ display: flex;
259
+ align-items: center;
260
+ gap: 0.75rem;
261
+ font-size: 1.1rem;
262
+ }
263
+
264
+ .markdown-alert-title svg {
265
+ display: none;
266
+ }
267
+
268
+ .markdown-alert-title::before {
269
+ font-size: 1.4rem;
270
+ }
271
+
272
+ .markdown-alert > *:last-child {
273
+ margin-bottom: 0;
274
+ }
275
+
276
+ .markdown-alert-note {
277
+ border-left-color: #2196f3;
278
+ background: linear-gradient(90deg, rgba(33, 150, 243, 0.15), rgba(33, 150, 243, 0.05));
279
+ }
280
+
281
+ .markdown-alert-note .markdown-alert-title {
282
+ color: #1976d2;
283
+ }
284
+
285
+ .markdown-alert-note .markdown-alert-title::before {
286
+ content: '📘';
287
+ }
288
+
289
+ .markdown-alert-tip {
290
+ border-left-color: #4caf50;
291
+ background: linear-gradient(90deg, rgba(76, 175, 80, 0.15), rgba(76, 175, 80, 0.05));
292
+ }
293
+
294
+ .markdown-alert-tip .markdown-alert-title {
295
+ color: #388e3c;
296
+ }
297
+
298
+ .markdown-alert-tip .markdown-alert-title::before {
299
+ content: '✨';
300
+ }
301
+
302
+ .markdown-alert-important {
303
+ border-left-color: #9c27b0;
304
+ background: linear-gradient(90deg, rgba(156, 39, 176, 0.15), rgba(156, 39, 176, 0.05));
305
+ }
306
+
307
+ .markdown-alert-important .markdown-alert-title {
308
+ color: #7b1fa2;
309
+ }
310
+
311
+ .markdown-alert-important .markdown-alert-title::before {
312
+ content: '⭐';
313
+ }
314
+
315
+ .markdown-alert-warning {
316
+ border-left-color: #ff9800;
317
+ background: linear-gradient(90deg, rgba(255, 152, 0, 0.15), rgba(255, 152, 0, 0.05));
318
+ }
319
+
320
+ .markdown-alert-warning .markdown-alert-title {
321
+ color: #f57c00;
322
+ }
323
+
324
+ .markdown-alert-warning .markdown-alert-title::before {
325
+ content: '⚡';
326
+ }
327
+
328
+ .markdown-alert-caution {
329
+ border-left-color: #f44336;
330
+ background: linear-gradient(90deg, rgba(244, 67, 54, 0.15), rgba(244, 67, 54, 0.05));
331
+ }
332
+
333
+ .markdown-alert-caution .markdown-alert-title {
334
+ color: #d32f2f;
335
+ }
336
+
337
+ .markdown-alert-caution .markdown-alert-title::before {
338
+ content: '🚨';
339
+ }
340
+
341
+ /* Lists */
342
+ ul, ol {
343
+ margin-left: 1.75rem;
344
+ margin-bottom: 1.25rem;
345
+ }
346
+
347
+ li {
348
+ margin-bottom: 0.75rem;
349
+ }
350
+
351
+ /* Task Lists */
352
+ .task-list-item {
353
+ list-style: none;
354
+ margin-left: -1.75rem;
355
+ }
356
+
357
+ .task-list-item-checkbox {
358
+ margin-right: 0.75rem;
359
+ margin-left: 0.25rem;
360
+ cursor: pointer;
361
+ width: 1.25rem;
362
+ height: 1.25rem;
363
+ }
364
+
365
+ .task-list-item-checkbox[checked] {
366
+ accent-color: var(--accent-color);
367
+ }
368
+
369
+ /* Tables with Material style */
370
+ table {
371
+ width: 100%;
372
+ border-collapse: collapse;
373
+ margin: 2rem 0;
374
+ box-shadow: var(--shadow-1);
375
+ border-radius: 8px;
376
+ overflow: hidden;
377
+ }
378
+
379
+ th, td {
380
+ padding: 1rem;
381
+ text-align: left;
382
+ border: none;
383
+ border-bottom: 1px solid var(--border-color);
384
+ }
385
+
386
+ th {
387
+ background: var(--primary-color);
388
+ color: white;
389
+ font-weight: 500;
390
+ text-transform: uppercase;
391
+ font-size: 0.875rem;
392
+ letter-spacing: 0.5px;
393
+ }
394
+
395
+ tr:hover {
396
+ background: var(--bg-tertiary);
397
+ }
398
+
399
+ /* Images with elevation */
400
+ img {
401
+ max-width: 100%;
402
+ height: auto;
403
+ border-radius: 8px;
404
+ margin: 1.5rem 0;
405
+ box-shadow: var(--shadow-2);
406
+ }
407
+
408
+ /* Theme Toggle with FAB style */
409
+ .theme-toggle {
410
+ position: fixed;
411
+ top: 1.5rem;
412
+ right: 1.5rem;
413
+ width: 3.5rem;
414
+ height: 3.5rem;
415
+ border-radius: 50%;
416
+ background: var(--accent-color);
417
+ border: none;
418
+ cursor: pointer;
419
+ display: flex;
420
+ align-items: center;
421
+ justify-content: center;
422
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
423
+ z-index: 100;
424
+ box-shadow: var(--shadow-2);
425
+ }
426
+
427
+ .theme-toggle:hover {
428
+ transform: scale(1.15);
429
+ box-shadow: var(--shadow-3);
430
+ }
431
+
432
+ .theme-toggle:active {
433
+ transform: scale(1.05);
434
+ }
435
+
436
+ .theme-icon::before {
437
+ content: '☀️';
438
+ font-size: 1.75rem;
439
+ }
440
+
441
+ [data-theme='dark'] .theme-icon::before {
442
+ content: '🌙';
443
+ }
444
+
445
+ /* Home page with Material cards */
446
+ .home-header {
447
+ text-align: center;
448
+ margin-bottom: 4rem;
449
+ }
450
+
451
+ .lead {
452
+ font-size: 1.375rem;
453
+ color: var(--text-secondary);
454
+ margin-top: 1.5rem;
455
+ line-height: 1.6;
456
+ }
457
+
458
+ .link-grid {
459
+ display: grid;
460
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
461
+ gap: 2rem;
462
+ margin-top: 3rem;
463
+ }
464
+
465
+ .link-card {
466
+ padding: 2rem;
467
+ background: var(--bg-secondary);
468
+ border-radius: 8px;
469
+ text-decoration: none;
470
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
471
+ box-shadow: var(--shadow-1);
472
+ border-top: 4px solid var(--primary-color);
473
+ }
474
+
475
+ .link-card:hover {
476
+ transform: translateY(-8px);
477
+ box-shadow: var(--shadow-3);
478
+ }
479
+
480
+ .link-card h3 {
481
+ margin: 0 0 0.75rem 0;
482
+ color: var(--primary-color);
483
+ font-size: 1.375rem;
484
+ }
485
+
486
+ .link-card p {
487
+ margin: 0;
488
+ color: var(--text-secondary);
489
+ font-size: 0.95rem;
490
+ line-height: 1.6;
491
+ }
492
+
493
+ /* Doc navigation */
494
+ .doc-navigation {
495
+ display: flex;
496
+ justify-content: space-between;
497
+ margin-top: 3rem;
498
+ padding-top: 2rem;
499
+ gap: 1rem;
500
+ }
501
+
502
+ .nav-prev,
503
+ .nav-next {
504
+ padding: 1rem 1.5rem;
505
+ background: var(--bg-secondary);
506
+ border-radius: 8px;
507
+ text-decoration: none;
508
+ color: var(--text-primary);
509
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
510
+ box-shadow: var(--shadow-1);
511
+ font-weight: 500;
512
+ }
513
+
514
+ .nav-prev:hover,
515
+ .nav-next:hover {
516
+ box-shadow: var(--shadow-2);
517
+ transform: translateY(-2px);
518
+ }
519
+
520
+ .nav-next {
521
+ margin-left: auto;
522
+ }
523
+
524
+ /* Chat Widget - Material Design Style */
525
+ .chat-toggle {
526
+ background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
527
+ border-radius: 50%;
528
+ box-shadow: var(--shadow-3);
529
+ width: 4rem;
530
+ height: 4rem;
531
+ }
532
+
533
+ .chat-toggle:hover {
534
+ box-shadow: 0 8px 24px rgba(25, 118, 210, 0.4);
535
+ transform: scale(1.15);
536
+ }
537
+
538
+ .chat-toggle:active {
539
+ transform: scale(1.05);
540
+ }
541
+
542
+ .chat-container {
543
+ border-radius: 8px;
544
+ box-shadow: var(--shadow-3);
545
+ overflow: hidden;
546
+ }
547
+
548
+ .chat-header {
549
+ background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
550
+ border-radius: 0;
551
+ padding: 1.25rem 1.5rem;
552
+ box-shadow: var(--shadow-1);
553
+ }
554
+
555
+ .chat-message.user .message-content {
556
+ background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
557
+ box-shadow: var(--shadow-1);
558
+ }
559
+
560
+ .chat-message.assistant .message-content {
561
+ box-shadow: var(--shadow-1);
562
+ }
563
+
564
+ .chat-send {
565
+ background: var(--accent-color);
566
+ box-shadow: var(--shadow-1);
567
+ }
568
+
569
+ .chat-send:hover:not(:disabled) {
570
+ background: #1e8e7a;
571
+ box-shadow: var(--shadow-2);
572
+ }
573
+
574
+ /* Dark mode chat styling */
575
+ [data-theme='dark'] .chat-container {
576
+ background: #1e1e1e;
577
+ border-color: #424242;
578
+ }
579
+
580
+ [data-theme='dark'] .chat-messages {
581
+ background: #1e1e1e;
582
+ }
583
+
584
+ [data-theme='dark'] .chat-message.assistant .message-content {
585
+ background: #2d2d2d;
586
+ color: #e0e0e0;
587
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
588
+ }
589
+
590
+ [data-theme='dark'] .chat-input-container {
591
+ background: #1a1a1a;
592
+ border-top-color: #424242;
593
+ }
594
+
595
+ [data-theme='dark'] .chat-input {
596
+ background: #2d2d2d;
597
+ border-color: #424242;
598
+ color: #e0e0e0;
599
+ }
600
+
601
+ [data-theme='dark'] .citation-link {
602
+ background: rgba(38, 166, 154, 0.15);
603
+ color: #4db6ac;
604
+ border-color: rgba(38, 166, 154, 0.3);
605
+ }
606
+
607
+ /* Responsive */
608
+ @media (max-width: 768px) {
609
+ .sidebar {
610
+ position: static;
611
+ width: 100%;
612
+ height: auto;
613
+ box-shadow: none;
614
+ border-bottom: 3px solid var(--primary-color);
615
+ }
616
+
617
+ .main-content {
618
+ margin-left: 0;
619
+ padding: 1.5rem;
620
+ }
621
+
622
+ .content-wrapper {
623
+ padding: 2rem 1.5rem;
624
+ }
625
+
626
+ .content-wrapper > h1 {
627
+ margin: -2rem -1.5rem 1.5rem -1.5rem;
628
+ padding: 1.5rem;
629
+ }
630
+
631
+ .content-wrapper > h2 {
632
+ margin: 2rem -1.5rem 1.5rem -1.5rem;
633
+ padding: 1.25rem 1.5rem;
634
+ }
635
+
636
+ .content-wrapper > h3 {
637
+ margin-left: -0.5rem;
638
+ padding-left: 1rem;
639
+ }
640
+
641
+ .layout {
642
+ flex-direction: column;
643
+ }
644
+
645
+ h1 {
646
+ font-size: 2rem;
647
+ }
648
+
649
+ h2 {
650
+ font-size: 1.75rem;
651
+ }
652
+ }