@neocode-ai/web 1.1.1

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 (86) hide show
  1. package/README.md +54 -0
  2. package/astro.config.mjs +145 -0
  3. package/config.mjs +14 -0
  4. package/package.json +41 -0
  5. package/public/robots.txt +6 -0
  6. package/public/theme.json +183 -0
  7. package/src/assets/lander/check.svg +2 -0
  8. package/src/assets/lander/copy.svg +2 -0
  9. package/src/assets/lander/screenshot-github.png +0 -0
  10. package/src/assets/lander/screenshot-splash.png +0 -0
  11. package/src/assets/lander/screenshot-vscode.png +0 -0
  12. package/src/assets/lander/screenshot.png +0 -0
  13. package/src/assets/logo-dark.svg +20 -0
  14. package/src/assets/logo-light.svg +20 -0
  15. package/src/assets/logo-ornate-dark.svg +18 -0
  16. package/src/assets/logo-ornate-light.svg +18 -0
  17. package/src/assets/web/web-homepage-active-session.png +0 -0
  18. package/src/assets/web/web-homepage-new-session.png +0 -0
  19. package/src/assets/web/web-homepage-see-servers.png +0 -0
  20. package/src/components/Head.astro +50 -0
  21. package/src/components/Header.astro +128 -0
  22. package/src/components/Hero.astro +11 -0
  23. package/src/components/Lander.astro +713 -0
  24. package/src/components/Share.tsx +634 -0
  25. package/src/components/SiteTitle.astro +59 -0
  26. package/src/components/icons/custom.tsx +87 -0
  27. package/src/components/icons/index.tsx +4454 -0
  28. package/src/components/share/common.tsx +77 -0
  29. package/src/components/share/content-bash.module.css +85 -0
  30. package/src/components/share/content-bash.tsx +67 -0
  31. package/src/components/share/content-code.module.css +26 -0
  32. package/src/components/share/content-code.tsx +32 -0
  33. package/src/components/share/content-diff.module.css +153 -0
  34. package/src/components/share/content-diff.tsx +231 -0
  35. package/src/components/share/content-error.module.css +64 -0
  36. package/src/components/share/content-error.tsx +24 -0
  37. package/src/components/share/content-markdown.module.css +154 -0
  38. package/src/components/share/content-markdown.tsx +75 -0
  39. package/src/components/share/content-text.module.css +63 -0
  40. package/src/components/share/content-text.tsx +37 -0
  41. package/src/components/share/copy-button.module.css +30 -0
  42. package/src/components/share/copy-button.tsx +28 -0
  43. package/src/components/share/part.module.css +428 -0
  44. package/src/components/share/part.tsx +780 -0
  45. package/src/components/share.module.css +832 -0
  46. package/src/content/docs/1-0.mdx +67 -0
  47. package/src/content/docs/acp.mdx +156 -0
  48. package/src/content/docs/agents.mdx +720 -0
  49. package/src/content/docs/cli.mdx +597 -0
  50. package/src/content/docs/commands.mdx +323 -0
  51. package/src/content/docs/config.mdx +683 -0
  52. package/src/content/docs/custom-tools.mdx +170 -0
  53. package/src/content/docs/ecosystem.mdx +76 -0
  54. package/src/content/docs/enterprise.mdx +170 -0
  55. package/src/content/docs/formatters.mdx +130 -0
  56. package/src/content/docs/github.mdx +321 -0
  57. package/src/content/docs/gitlab.mdx +195 -0
  58. package/src/content/docs/ide.mdx +48 -0
  59. package/src/content/docs/index.mdx +359 -0
  60. package/src/content/docs/keybinds.mdx +191 -0
  61. package/src/content/docs/lsp.mdx +188 -0
  62. package/src/content/docs/mcp-servers.mdx +511 -0
  63. package/src/content/docs/models.mdx +223 -0
  64. package/src/content/docs/modes.mdx +331 -0
  65. package/src/content/docs/network.mdx +57 -0
  66. package/src/content/docs/permissions.mdx +237 -0
  67. package/src/content/docs/plugins.mdx +362 -0
  68. package/src/content/docs/providers.mdx +1889 -0
  69. package/src/content/docs/rules.mdx +180 -0
  70. package/src/content/docs/sdk.mdx +391 -0
  71. package/src/content/docs/server.mdx +286 -0
  72. package/src/content/docs/share.mdx +128 -0
  73. package/src/content/docs/skills.mdx +220 -0
  74. package/src/content/docs/themes.mdx +369 -0
  75. package/src/content/docs/tools.mdx +345 -0
  76. package/src/content/docs/troubleshooting.mdx +300 -0
  77. package/src/content/docs/tui.mdx +390 -0
  78. package/src/content/docs/web.mdx +136 -0
  79. package/src/content/docs/windows-wsl.mdx +113 -0
  80. package/src/content/docs/zen.mdx +251 -0
  81. package/src/content.config.ts +7 -0
  82. package/src/pages/[...slug].md.ts +18 -0
  83. package/src/pages/s/[id].astro +113 -0
  84. package/src/styles/custom.css +405 -0
  85. package/src/types/lang-map.d.ts +27 -0
  86. package/tsconfig.json +9 -0
@@ -0,0 +1,832 @@
1
+ .root {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 2.5rem;
5
+ line-height: 1;
6
+ padding: 1.5rem;
7
+
8
+ @media (max-width: 30rem) {
9
+ padding: 1rem;
10
+ gap: 2rem;
11
+ }
12
+
13
+ --sm-tool-width: 28rem;
14
+ --md-tool-width: 40rem;
15
+ --lg-tool-width: 56rem;
16
+
17
+ --term-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2060%2016'%20preserveAspectRatio%3D'xMidYMid%20meet'%3E%3Ccircle%20cx%3D'8'%20cy%3D'8'%20r%3D'8'%2F%3E%3Ccircle%20cx%3D'30'%20cy%3D'8'%20r%3D'8'%2F%3E%3Ccircle%20cx%3D'52'%20cy%3D'8'%20r%3D'8'%2F%3E%3C%2Fsvg%3E");
18
+
19
+ [data-component="header"] {
20
+ display: flex;
21
+ flex-direction: column;
22
+ gap: 1rem;
23
+
24
+ @media (max-width: 30rem) {
25
+ gap: 1rem;
26
+ }
27
+ }
28
+
29
+ [data-component="header-title"] {
30
+ font-size: 2.75rem;
31
+ font-weight: 500;
32
+ line-height: 1.2;
33
+ letter-spacing: -0.05em;
34
+ display: -webkit-box;
35
+ -webkit-box-orient: vertical;
36
+ -webkit-line-clamp: 3;
37
+ line-clamp: 3;
38
+ overflow: hidden;
39
+
40
+ @media (max-width: 30rem) {
41
+ font-size: 1.75rem;
42
+ line-height: 1.25;
43
+ -webkit-line-clamp: 3;
44
+ }
45
+ }
46
+
47
+ [data-component="header-details"] {
48
+ display: flex;
49
+ flex-direction: column;
50
+ gap: 0.5rem;
51
+ }
52
+
53
+ [data-component="header-stats"] {
54
+ list-style-type: none;
55
+ padding: 0;
56
+ margin: 0;
57
+ display: flex;
58
+ gap: 0.5rem 0.875rem;
59
+ flex-wrap: wrap;
60
+ max-width: var(--lg-tool-width);
61
+
62
+ [data-slot="item"] {
63
+ display: flex;
64
+ align-items: center;
65
+ gap: 0.3125rem;
66
+ font-size: 0.875rem;
67
+
68
+ span[data-placeholder] {
69
+ color: var(--sl-color-text-dimmed);
70
+ }
71
+ }
72
+
73
+ [data-slot="icon"] {
74
+ flex: 0 0 auto;
75
+ color: var(--sl-color-text-dimmed);
76
+ opacity: 0.85;
77
+
78
+ svg {
79
+ display: block;
80
+ }
81
+ }
82
+
83
+ [data-slot="model"] {
84
+ color: var(--sl-color-text);
85
+ }
86
+ }
87
+
88
+ [data-component="header-time"] {
89
+ color: var(--sl-color-text-dimmed);
90
+ font-size: 0.875rem;
91
+ }
92
+
93
+ [data-component="text-button"] {
94
+ cursor: pointer;
95
+ appearance: none;
96
+ background-color: transparent;
97
+ border: none;
98
+ padding: 0;
99
+ color: var(--sl-color-text-secondary);
100
+
101
+ &:hover {
102
+ color: var(--sl-color-text);
103
+ }
104
+
105
+ &[data-element-button-more] {
106
+ display: flex;
107
+ align-items: center;
108
+ gap: 0.125rem;
109
+
110
+ span[data-button-icon] {
111
+ line-height: 1;
112
+ opacity: 0.85;
113
+
114
+ svg {
115
+ display: block;
116
+ }
117
+ }
118
+ }
119
+ }
120
+ }
121
+
122
+ .parts {
123
+ display: flex;
124
+ flex-direction: column;
125
+ gap: 0.625rem;
126
+
127
+ [data-section="part"] {
128
+ display: flex;
129
+ gap: 0.625rem;
130
+
131
+ & > [data-section="decoration"] {
132
+ flex: 0 0 auto;
133
+ display: flex;
134
+ flex-direction: column;
135
+ gap: 0.625rem;
136
+ align-items: center;
137
+ justify-content: flex-start;
138
+
139
+ [data-element-anchor] {
140
+ position: relative;
141
+
142
+ a:first-child {
143
+ display: block;
144
+ flex: 0 0 auto;
145
+ width: 18px;
146
+ opacity: 0.65;
147
+
148
+ svg {
149
+ color: var(--sl-color-text-secondary);
150
+ display: block;
151
+
152
+ &:nth-child(3) {
153
+ color: var(--sl-color-green-high);
154
+ }
155
+ }
156
+
157
+ svg:nth-child(2),
158
+ svg:nth-child(3) {
159
+ display: none;
160
+ }
161
+
162
+ &:hover {
163
+ svg:nth-child(1) {
164
+ display: none;
165
+ }
166
+
167
+ svg:nth-child(2) {
168
+ display: block;
169
+ }
170
+ }
171
+ }
172
+
173
+ [data-element-tooltip] {
174
+ position: absolute;
175
+ top: 50%;
176
+ left: calc(100% + 12px);
177
+ transform: translate(0, -50%);
178
+ line-height: 1.1;
179
+ padding: 0.375em 0.5em calc(0.375em + 2px);
180
+ background: var(--sl-color-white);
181
+ color: var(--sl-color-text-invert);
182
+ font-size: 0.6875rem;
183
+ border-radius: 7px;
184
+ white-space: nowrap;
185
+
186
+ z-index: 1;
187
+ opacity: 0;
188
+ visibility: hidden;
189
+
190
+ &::after {
191
+ content: "";
192
+ position: absolute;
193
+ top: 50%;
194
+ left: -15px;
195
+ transform: translateY(-50%);
196
+ border: 8px solid transparent;
197
+ border-right-color: var(--sl-color-white);
198
+ }
199
+ }
200
+
201
+ &[data-status="copied"] {
202
+ [data-element-tooltip] {
203
+ opacity: 1;
204
+ visibility: visible;
205
+ }
206
+
207
+ a,
208
+ a:hover {
209
+ svg:nth-child(1),
210
+ svg:nth-child(2) {
211
+ display: none;
212
+ }
213
+
214
+ svg:nth-child(3) {
215
+ display: block;
216
+ }
217
+ }
218
+ }
219
+ }
220
+
221
+ div:last-child {
222
+ width: 3px;
223
+ height: 100%;
224
+ border-radius: 1px;
225
+ background-color: var(--sl-color-hairline);
226
+ }
227
+ }
228
+
229
+ & > [data-section="content"] {
230
+ flex: 1 1 auto;
231
+ min-width: 0;
232
+ padding: 0 0 0.375rem;
233
+ display: flex;
234
+ flex-direction: column;
235
+ gap: 1rem;
236
+
237
+ [data-part-tool-body] {
238
+ display: flex;
239
+ flex-direction: column;
240
+ align-items: flex-start;
241
+ gap: 0.375rem;
242
+ }
243
+
244
+ [data-part-title] {
245
+ line-height: 18px;
246
+ font-size: 0.875rem;
247
+ color: var(--sl-color-text-secondary);
248
+ max-width: var(--md-tool-width);
249
+
250
+ display: flex;
251
+ align-items: flex-start;
252
+ gap: 0.375rem;
253
+
254
+ span[data-element-label] {
255
+ color: var(--sl-color-text-secondary);
256
+ }
257
+
258
+ b {
259
+ color: var(--sl-color-text);
260
+ word-break: break-all;
261
+ font-weight: 500;
262
+ }
263
+ }
264
+
265
+ span[data-part-footer] {
266
+ align-self: flex-start;
267
+ font-size: 0.75rem;
268
+ color: var(--sl-color-text-dimmed);
269
+ }
270
+
271
+ span[data-part-model] {
272
+ line-height: 1.5;
273
+ }
274
+
275
+ [data-part-tool-args] {
276
+ display: inline-grid;
277
+ align-items: center;
278
+ grid-template-columns: max-content max-content minmax(0, 1fr);
279
+ max-width: var(--md-tool-width);
280
+ gap: 0.25rem 0.375rem;
281
+
282
+ & > div:nth-child(3n + 1) {
283
+ width: 8px;
284
+ height: 2px;
285
+ border-radius: 1px;
286
+ background: var(--sl-color-divider);
287
+ }
288
+
289
+ & > div:nth-child(3n + 2),
290
+ & > div:nth-child(3n + 3) {
291
+ font-size: 0.75rem;
292
+ line-height: 1.5;
293
+ }
294
+
295
+ & > div:nth-child(3n + 3) {
296
+ padding-left: 0.125rem;
297
+ word-break: break-word;
298
+ color: var(--sl-color-text-secondary);
299
+ }
300
+ }
301
+
302
+ [data-part-tool-result] {
303
+ display: flex;
304
+ flex-direction: column;
305
+ align-items: flex-start;
306
+ gap: 0.5rem;
307
+
308
+ button {
309
+ font-size: 0.75rem;
310
+ }
311
+ }
312
+
313
+ [data-part-tool-edit] {
314
+ width: 100%;
315
+ max-width: var(--lg-tool-width);
316
+ }
317
+ }
318
+ }
319
+
320
+ /* Part types */
321
+ [data-part-type="user-text"],
322
+ [data-part-type="ai-text"],
323
+ [data-part-type="ai-model"],
324
+ [data-part-type="system-text"],
325
+ [data-part-type="fallback"] {
326
+ & > [data-section="content"] {
327
+ padding-bottom: 1rem;
328
+ }
329
+ }
330
+
331
+ [data-part-type="tool-list"],
332
+ [data-part-type="tool-glob"],
333
+ [data-part-type="tool-read"],
334
+ [data-part-type="tool-edit"],
335
+ [data-part-type="tool-write"],
336
+ [data-part-type="tool-fetch"] {
337
+ & > [data-section="content"] > [data-part-tool-body] {
338
+ gap: 0.5rem;
339
+ }
340
+ }
341
+
342
+ [data-part-type="tool-grep"] {
343
+ &:not(:has([data-part-tool-args])) > [data-section="content"] > [data-part-tool-body] {
344
+ gap: 0.5rem;
345
+ }
346
+ }
347
+
348
+ [data-part-type="tool-write"],
349
+ [data-part-type="tool-read"],
350
+ [data-part-type="tool-fetch"] {
351
+ [data-part-tool-result] {
352
+ [data-part-tool-code] {
353
+ max-width: var(--md-tool-width);
354
+ border: 1px solid var(--sl-color-divider);
355
+ background-color: var(--sl-color-bg-surface);
356
+ border-radius: 0.25rem;
357
+ padding: 0.5rem calc(0.5rem + 3px);
358
+
359
+ pre {
360
+ line-height: 1.6;
361
+ font-size: 0.75rem;
362
+ white-space: pre-wrap;
363
+ word-break: break-word;
364
+ }
365
+ }
366
+ }
367
+ }
368
+
369
+ [data-part-type="summary"] {
370
+ & > [data-section="decoration"] {
371
+ span:first-child {
372
+ flex: 0 0 auto;
373
+ display: block;
374
+ margin: 2px;
375
+ width: 14px;
376
+ height: 14px;
377
+ border-radius: 50%;
378
+ background-color: var(--sl-color-divider);
379
+
380
+ &[data-status="connected"] {
381
+ background-color: var(--sl-color-green);
382
+ }
383
+
384
+ &[data-status="connecting"] {
385
+ background-color: var(--sl-color-orange);
386
+ }
387
+
388
+ &[data-status="disconnected"] {
389
+ background-color: var(--sl-color-divider);
390
+ }
391
+
392
+ &[data-status="reconnecting"] {
393
+ background-color: var(--sl-color-orange);
394
+ }
395
+
396
+ &[data-status="error"] {
397
+ background-color: var(--sl-color-red);
398
+ }
399
+ }
400
+ }
401
+
402
+ & > [data-section="content"] {
403
+ display: flex;
404
+ flex-direction: column;
405
+ gap: 0.5rem;
406
+
407
+ p[data-section="copy"] {
408
+ display: block;
409
+ line-height: 18px;
410
+ font-size: 0.875rem;
411
+ color: var(--sl-color-text-dimmed);
412
+ }
413
+
414
+ [data-section="stats"] {
415
+ list-style-type: none;
416
+ padding: 0;
417
+ margin: 0;
418
+ display: flex;
419
+ gap: 0.5rem 0.875rem;
420
+ flex-wrap: wrap;
421
+
422
+ li {
423
+ display: flex;
424
+ align-items: center;
425
+ gap: 0.5rem;
426
+ font-size: 0.75rem;
427
+ color: var(--sl-color-text-secondary);
428
+
429
+ span[data-placeholder] {
430
+ color: var(--sl-color-text-dimmed);
431
+ }
432
+ }
433
+ }
434
+ }
435
+ }
436
+ }
437
+
438
+ .message-text {
439
+ background-color: var(--sl-color-bg-surface);
440
+ padding: 0.5rem calc(0.5rem + 3px);
441
+ border-radius: 0.25rem;
442
+ display: flex;
443
+ flex-direction: column;
444
+ align-items: flex-start;
445
+ gap: 1rem;
446
+ align-self: flex-start;
447
+ max-width: var(--md-tool-width);
448
+
449
+ &[data-size="sm"] {
450
+ pre {
451
+ font-size: 0.75rem;
452
+ }
453
+ }
454
+
455
+ &[data-color="dimmed"] {
456
+ pre {
457
+ color: var(--sl-color-text-dimmed);
458
+ }
459
+ }
460
+
461
+ pre {
462
+ line-height: 1.5;
463
+ font-size: 0.875rem;
464
+ white-space: pre-wrap;
465
+ overflow-wrap: anywhere;
466
+ color: var(--sl-color-text);
467
+ }
468
+
469
+ button {
470
+ flex: 0 0 auto;
471
+ padding: 2px 0;
472
+ font-size: 0.75rem;
473
+ }
474
+
475
+ &[data-invert="true"] {
476
+ background-color: var(--sl-color-blue-high);
477
+
478
+ pre {
479
+ color: var(--sl-color-text-invert);
480
+ }
481
+
482
+ button {
483
+ opacity: 0.85;
484
+ color: var(--sl-color-text-invert);
485
+
486
+ &:hover {
487
+ opacity: 1;
488
+ }
489
+ }
490
+ }
491
+
492
+ &[data-background="none"] {
493
+ background-color: transparent;
494
+ }
495
+
496
+ &[data-background="blue"] {
497
+ background-color: var(--sl-color-blue-low);
498
+ }
499
+
500
+ &[data-expanded="true"] {
501
+ pre {
502
+ display: block;
503
+ }
504
+ }
505
+
506
+ &[data-expanded="false"] {
507
+ pre {
508
+ display: -webkit-box;
509
+ -webkit-box-orient: vertical;
510
+ -webkit-line-clamp: 3;
511
+ overflow: hidden;
512
+ }
513
+ }
514
+ }
515
+
516
+ .message-error {
517
+ background-color: var(--sl-color-bg-surface);
518
+ padding: 0.5rem calc(0.5rem + 3px);
519
+ border-radius: 0.25rem;
520
+ display: flex;
521
+ flex-direction: column;
522
+ align-items: flex-start;
523
+ gap: 1rem;
524
+ align-self: flex-start;
525
+ max-width: var(--md-tool-width);
526
+
527
+ [data-section="content"] {
528
+ pre {
529
+ margin-bottom: 0.5rem;
530
+ line-height: 1.5;
531
+ font-size: 0.75rem;
532
+ white-space: pre-wrap;
533
+ word-break: break-word;
534
+
535
+ &:last-child {
536
+ margin-bottom: 0;
537
+ }
538
+
539
+ span {
540
+ margin-right: 0.25rem;
541
+
542
+ &:last-child {
543
+ margin-right: 0;
544
+ }
545
+ }
546
+
547
+ span[data-color="red"] {
548
+ color: var(--sl-color-red);
549
+ }
550
+
551
+ span[data-color="dimmed"] {
552
+ color: var(--sl-color-text-dimmed);
553
+ }
554
+
555
+ span[data-marker="label"] {
556
+ text-transform: uppercase;
557
+ letter-spacing: -0.5px;
558
+ }
559
+
560
+ span[data-separator] {
561
+ margin-right: 0.375rem;
562
+ }
563
+ }
564
+ }
565
+
566
+ &[data-expanded="true"] {
567
+ [data-section="content"] {
568
+ display: block;
569
+ }
570
+ }
571
+
572
+ &[data-expanded="false"] {
573
+ [data-section="content"] {
574
+ display: -webkit-box;
575
+ -webkit-box-orient: vertical;
576
+ -webkit-line-clamp: 7;
577
+ overflow: hidden;
578
+ }
579
+ }
580
+
581
+ button {
582
+ flex: 0 0 auto;
583
+ padding: 2px 0;
584
+ font-size: 0.75rem;
585
+ }
586
+ }
587
+
588
+ .message-terminal {
589
+ display: flex;
590
+ flex-direction: column;
591
+ align-items: flex-start;
592
+ gap: 0.5rem;
593
+ width: 100%;
594
+ max-width: var(--sm-tool-width);
595
+
596
+ & > [data-section="body"] {
597
+ width: 100%;
598
+ border: 1px solid var(--sl-color-divider);
599
+ border-radius: 0.25rem;
600
+
601
+ [data-section="header"] {
602
+ position: relative;
603
+ border-bottom: 1px solid var(--sl-color-divider);
604
+ width: 100%;
605
+ height: 1.625rem;
606
+ text-align: center;
607
+ padding: 0 3.25rem;
608
+
609
+ & > span {
610
+ max-width: min(100%, 140ch);
611
+ display: inline-block;
612
+ white-space: nowrap;
613
+ overflow: hidden;
614
+ line-height: 1.625rem;
615
+ font-size: 0.75rem;
616
+ text-overflow: ellipsis;
617
+ color: var(--sl-color-text-dimmed);
618
+ }
619
+
620
+ &::before {
621
+ content: "";
622
+ position: absolute;
623
+ pointer-events: none;
624
+ top: 8px;
625
+ left: 10px;
626
+ width: 2rem;
627
+ height: 0.5rem;
628
+ line-height: 0;
629
+ background-color: var(--sl-color-hairline);
630
+ mask-image: var(--term-icon);
631
+ mask-repeat: no-repeat;
632
+ }
633
+ }
634
+ }
635
+
636
+ [data-section="content"] {
637
+ padding: 0.5rem calc(0.5rem + 3px);
638
+
639
+ pre {
640
+ --shiki-dark-bg: var(--sl-color-bg) !important;
641
+ background-color: var(--sl-color-bg) !important;
642
+ line-height: 1.6;
643
+ font-size: 0.75rem;
644
+ white-space: pre-wrap;
645
+ word-break: break-word;
646
+ }
647
+ }
648
+
649
+ [data-section="error"] {
650
+ pre {
651
+ color: var(--sl-color-red) !important;
652
+ --shiki-dark: var(--sl-color-red) !important;
653
+ }
654
+ }
655
+
656
+ &[data-expanded="true"] {
657
+ pre {
658
+ display: block;
659
+ }
660
+ }
661
+
662
+ &[data-expanded="false"] {
663
+ pre {
664
+ display: -webkit-box;
665
+ -webkit-box-orient: vertical;
666
+ -webkit-line-clamp: 7;
667
+ overflow: hidden;
668
+ }
669
+ }
670
+
671
+ button {
672
+ flex: 0 0 auto;
673
+ padding-left: 1px;
674
+ font-size: 0.75rem;
675
+ }
676
+ }
677
+
678
+ .message-markdown {
679
+ border: 1px solid var(--sl-color-blue-high);
680
+ padding: 0.5rem calc(0.5rem + 3px);
681
+ border-radius: 0.25rem;
682
+ display: flex;
683
+ flex-direction: column;
684
+ align-items: flex-start;
685
+ gap: 1rem;
686
+ align-self: flex-start;
687
+ max-width: var(--md-tool-width);
688
+
689
+ button {
690
+ flex: 0 0 auto;
691
+ padding: 2px 0;
692
+ font-size: 0.75rem;
693
+ }
694
+
695
+ &[data-highlight="true"] {
696
+ background-color: var(--sl-color-blue-low);
697
+ }
698
+
699
+ &[data-expanded="true"] {
700
+ [data-element-markdown] {
701
+ display: block;
702
+ }
703
+ }
704
+
705
+ &[data-expanded="false"] {
706
+ [data-element-markdown] {
707
+ display: -webkit-box;
708
+ -webkit-box-orient: vertical;
709
+ -webkit-line-clamp: 3;
710
+ overflow: hidden;
711
+ }
712
+ }
713
+ }
714
+
715
+ .diff-code-block {
716
+ pre {
717
+ line-height: 1.25;
718
+ font-size: 0.75rem;
719
+ }
720
+ }
721
+
722
+ .todos {
723
+ list-style-type: none;
724
+ padding: 0;
725
+ margin: 0;
726
+ width: 100%;
727
+ max-width: var(--sm-tool-width);
728
+ border: 1px solid var(--sl-color-divider);
729
+ border-radius: 0.25rem;
730
+
731
+ li {
732
+ margin: 0;
733
+ position: relative;
734
+ padding-left: 1.5rem;
735
+ font-size: 0.75rem;
736
+ padding: 0.375rem 0.625rem 0.375rem 1.75rem;
737
+ border-bottom: 1px solid var(--sl-color-divider);
738
+ line-height: 1.5;
739
+ word-break: break-word;
740
+
741
+ &:last-child {
742
+ border-bottom: none;
743
+ }
744
+
745
+ & > span {
746
+ position: absolute;
747
+ display: inline-block;
748
+ left: 0.5rem;
749
+ top: calc(0.5rem + 1px);
750
+ width: 0.75rem;
751
+ height: 0.75rem;
752
+ border: 1px solid var(--sl-color-divider);
753
+ border-radius: 0.15rem;
754
+
755
+ &::before {
756
+ }
757
+ }
758
+
759
+ &[data-status="pending"] {
760
+ color: var(--sl-color-text);
761
+ }
762
+
763
+ &[data-status="in_progress"] {
764
+ color: var(--sl-color-text);
765
+
766
+ & > span {
767
+ border-color: var(--sl-color-orange);
768
+ }
769
+
770
+ & > span::before {
771
+ content: "";
772
+ position: absolute;
773
+ top: 2px;
774
+ left: 2px;
775
+ width: calc(0.75rem - 2px - 4px);
776
+ height: calc(0.75rem - 2px - 4px);
777
+ box-shadow: inset 1rem 1rem var(--sl-color-orange-low);
778
+ }
779
+ }
780
+
781
+ &[data-status="completed"] {
782
+ color: var(--sl-color-text-secondary);
783
+
784
+ & > span {
785
+ border-color: var(--sl-color-green-low);
786
+ }
787
+
788
+ & > span::before {
789
+ content: "";
790
+ position: absolute;
791
+ top: 2px;
792
+ left: 2px;
793
+ width: calc(0.75rem - 2px - 4px);
794
+ height: calc(0.75rem - 2px - 4px);
795
+ box-shadow: inset 1rem 1rem var(--sl-color-green);
796
+
797
+ transform-origin: bottom left;
798
+ clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
799
+ }
800
+ }
801
+ }
802
+ }
803
+
804
+ .scroll-button {
805
+ position: fixed;
806
+ bottom: 2rem;
807
+ right: 2rem;
808
+ width: 2.5rem;
809
+ height: 2.5rem;
810
+ border-radius: 0.25rem;
811
+ border: 1px solid var(--sl-color-divider);
812
+ background-color: var(--sl-color-bg-surface);
813
+ color: var(--sl-color-text-secondary);
814
+ cursor: pointer;
815
+ display: flex;
816
+ align-items: center;
817
+ justify-content: center;
818
+ transition:
819
+ all 0.15s ease,
820
+ opacity 0.5s ease;
821
+ z-index: 100;
822
+ appearance: none;
823
+ opacity: 1;
824
+
825
+ &:active {
826
+ transform: translateY(1px);
827
+ }
828
+
829
+ svg {
830
+ display: block;
831
+ }
832
+ }