@neurocode-ai/session-ui 1.18.8

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 (114) hide show
  1. package/package.json +71 -0
  2. package/src/components/apply-patch-file.test.ts +43 -0
  3. package/src/components/apply-patch-file.ts +78 -0
  4. package/src/components/basic-tool.css +358 -0
  5. package/src/components/basic-tool.stories.tsx +133 -0
  6. package/src/components/basic-tool.tsx +343 -0
  7. package/src/components/dock-prompt.stories.tsx +62 -0
  8. package/src/components/dock-prompt.tsx +23 -0
  9. package/src/components/file-media.tsx +291 -0
  10. package/src/components/file-search.tsx +72 -0
  11. package/src/components/file-ssr.tsx +197 -0
  12. package/src/components/file.css +46 -0
  13. package/src/components/file.tsx +1202 -0
  14. package/src/components/line-comment-annotations.tsx +637 -0
  15. package/src/components/line-comment-styles.ts +292 -0
  16. package/src/components/line-comment.stories.tsx +115 -0
  17. package/src/components/line-comment.tsx +439 -0
  18. package/src/components/markdown-cache.tsx +78 -0
  19. package/src/components/markdown-code-state.test.ts +32 -0
  20. package/src/components/markdown-code-state.ts +22 -0
  21. package/src/components/markdown-inline-code-kind.test.ts +46 -0
  22. package/src/components/markdown-inline-code-kind.ts +1915 -0
  23. package/src/components/markdown-preload.test.ts +18 -0
  24. package/src/components/markdown-shiki.worker.ts +104 -0
  25. package/src/components/markdown-stream.test.ts +194 -0
  26. package/src/components/markdown-stream.ts +110 -0
  27. package/src/components/markdown-worker-protocol.test.ts +81 -0
  28. package/src/components/markdown-worker-protocol.ts +48 -0
  29. package/src/components/markdown-worker-queue.test.ts +49 -0
  30. package/src/components/markdown-worker-queue.ts +64 -0
  31. package/src/components/markdown-worker-transport.test.ts +56 -0
  32. package/src/components/markdown-worker-transport.ts +41 -0
  33. package/src/components/markdown-worker.ts +122 -0
  34. package/src/components/markdown.css +377 -0
  35. package/src/components/markdown.stories.tsx +53 -0
  36. package/src/components/markdown.tsx +678 -0
  37. package/src/components/message-file.test.ts +63 -0
  38. package/src/components/message-file.ts +34 -0
  39. package/src/components/message-nav.css +127 -0
  40. package/src/components/message-nav.stories.tsx +7 -0
  41. package/src/components/message-nav.tsx +102 -0
  42. package/src/components/message-part-text.ts +3 -0
  43. package/src/components/message-part.css +1569 -0
  44. package/src/components/message-part.stories.tsx +7 -0
  45. package/src/components/message-part.test.ts +28 -0
  46. package/src/components/message-part.tsx +2662 -0
  47. package/src/components/session-diff.test.ts +135 -0
  48. package/src/components/session-diff.ts +145 -0
  49. package/src/components/session-retry.tsx +74 -0
  50. package/src/components/session-review.css +247 -0
  51. package/src/components/session-review.stories.tsx +7 -0
  52. package/src/components/session-review.tsx +657 -0
  53. package/src/components/session-turn.css +241 -0
  54. package/src/components/session-turn.stories.tsx +7 -0
  55. package/src/components/session-turn.tsx +543 -0
  56. package/src/components/shell-submessage-motion.stories.tsx +346 -0
  57. package/src/components/shell-submessage.css +23 -0
  58. package/src/components/timeline-playground.stories.tsx +2090 -0
  59. package/src/components/tool-count-label.css +57 -0
  60. package/src/components/tool-count-label.tsx +58 -0
  61. package/src/components/tool-count-summary.css +102 -0
  62. package/src/components/tool-count-summary.stories.tsx +238 -0
  63. package/src/components/tool-count-summary.tsx +52 -0
  64. package/src/components/tool-error-card.css +91 -0
  65. package/src/components/tool-error-card.stories.tsx +92 -0
  66. package/src/components/tool-error-card.tsx +157 -0
  67. package/src/components/tool-status-title.css +89 -0
  68. package/src/components/tool-status-title.tsx +133 -0
  69. package/src/context/data.tsx +64 -0
  70. package/src/context/index.ts +1 -0
  71. package/src/pierre/comment-hover.ts +83 -0
  72. package/src/pierre/commented-lines.ts +91 -0
  73. package/src/pierre/diff-selection.ts +71 -0
  74. package/src/pierre/file-find.ts +485 -0
  75. package/src/pierre/file-runtime.ts +114 -0
  76. package/src/pierre/file-selection.ts +85 -0
  77. package/src/pierre/index.ts +186 -0
  78. package/src/pierre/media.ts +110 -0
  79. package/src/pierre/selection-bridge.ts +132 -0
  80. package/src/pierre/virtualizer.ts +100 -0
  81. package/src/pierre/worker.ts +52 -0
  82. package/src/styles/index.css +14 -0
  83. package/src/v2/components/attachment-card-v2.css +70 -0
  84. package/src/v2/components/attachment-card-v2.tsx +33 -0
  85. package/src/v2/components/basic-tool-v2.css +163 -0
  86. package/src/v2/components/basic-tool-v2.stories.tsx +137 -0
  87. package/src/v2/components/basic-tool-v2.tsx +139 -0
  88. package/src/v2/components/comment-card-v2.tsx +64 -0
  89. package/src/v2/components/line-comment-annotations-v2.tsx +220 -0
  90. package/src/v2/components/prompt-input/attachments.ts +266 -0
  91. package/src/v2/components/prompt-input/index.tsx +706 -0
  92. package/src/v2/components/prompt-input/interaction.ts +482 -0
  93. package/src/v2/components/prompt-input/machine.test.ts +164 -0
  94. package/src/v2/components/prompt-input/machine.ts +261 -0
  95. package/src/v2/components/prompt-input/prompt-input.stories.tsx +221 -0
  96. package/src/v2/components/prompt-input/store.test.ts +116 -0
  97. package/src/v2/components/prompt-input/store.ts +152 -0
  98. package/src/v2/components/prompt-input/types.ts +106 -0
  99. package/src/v2/components/session-file-panel-v2.tsx +43 -0
  100. package/src/v2/components/session-progress-indicator-v2.css +875 -0
  101. package/src/v2/components/session-progress-indicator-v2.stories.tsx +66 -0
  102. package/src/v2/components/session-progress-indicator-v2.tsx +32 -0
  103. package/src/v2/components/session-review-empty-changes-v2.tsx +17 -0
  104. package/src/v2/components/session-review-empty-no-git-v2.tsx +28 -0
  105. package/src/v2/components/session-review-file-preview-v2-virtualize.test.ts +13 -0
  106. package/src/v2/components/session-review-file-preview-v2-virtualize.ts +5 -0
  107. package/src/v2/components/session-review-file-preview-v2.tsx +290 -0
  108. package/src/v2/components/session-review-v2.css +458 -0
  109. package/src/v2/components/session-review-v2.tsx +340 -0
  110. package/src/v2/components/tool-error-card-v2.css +200 -0
  111. package/src/v2/components/tool-error-card-v2.stories.tsx +91 -0
  112. package/src/v2/components/tool-error-card-v2.tsx +166 -0
  113. package/sst-env.d.ts +10 -0
  114. package/tsconfig.json +19 -0
@@ -0,0 +1,458 @@
1
+ [data-component="session-review-v2"] {
2
+ display: flex;
3
+ flex-direction: column;
4
+ height: 100%;
5
+ min-height: 0;
6
+ overflow: hidden;
7
+ background: var(--v2-background-bg-base);
8
+ }
9
+
10
+ [data-component="session-review-v2"] [data-slot="session-review-v2-body"] {
11
+ display: flex;
12
+ flex: 1;
13
+ min-height: 0;
14
+ overflow: hidden;
15
+ }
16
+
17
+ [data-component="session-review-v2-sidebar-root"] {
18
+ position: relative;
19
+ display: flex;
20
+ flex-shrink: 0;
21
+ min-width: 0;
22
+ min-height: 0;
23
+ height: 100%;
24
+ overflow: hidden;
25
+ }
26
+
27
+ [data-component="session-review-v2-sidebar-root"] [data-slot="session-review-v2-sidebar"] {
28
+ display: flex;
29
+ flex-direction: column;
30
+ flex-shrink: 0;
31
+ min-height: 0;
32
+ overflow: hidden;
33
+ border-right: 1px solid var(--border-weaker-base, var(--v2-border-border-weak));
34
+ background: var(--v2-background-bg-base);
35
+ }
36
+
37
+ [data-component="session-review-v2-sidebar-root"] [data-slot="session-review-v2-sidebar"][aria-hidden="true"] {
38
+ border-right-width: 0;
39
+ }
40
+
41
+ [data-component="session-review-v2-sidebar-root"]
42
+ [data-slot="session-review-v2-sidebar"][data-transition]:not([data-resizing]) {
43
+ transition:
44
+ width 200ms cubic-bezier(0.22, 1, 0.36, 1),
45
+ border-right-width 200ms cubic-bezier(0.22, 1, 0.36, 1);
46
+ }
47
+
48
+ [data-component="session-review-v2-sidebar-root"] [data-slot="session-review-v2-sidebar-resize"] {
49
+ position: absolute;
50
+ inset-block: 0;
51
+ inset-inline-end: 0;
52
+ z-index: 20;
53
+ width: 0;
54
+ overflow: visible;
55
+ }
56
+
57
+ [data-component="session-review-v2-sidebar-root"] [data-component="resize-handle"]::after {
58
+ background: var(--v2-border-border-muted, var(--border-weak-base));
59
+ }
60
+
61
+ [data-component="session-review-v2-sidebar-root"] [data-slot="session-review-v2-sidebar-header"] {
62
+ display: flex;
63
+ align-items: center;
64
+ justify-content: space-between;
65
+ gap: 8px;
66
+ padding: 12px 16px 8px 8px;
67
+ flex-shrink: 0;
68
+ }
69
+
70
+ [data-component="session-review-v2-sidebar-root"] [data-slot="session-review-v2-sidebar-title"] {
71
+ display: flex;
72
+ align-items: center;
73
+ gap: 6px;
74
+ min-width: 0;
75
+ font-size: 13px;
76
+ font-weight: 500;
77
+ color: var(--text-strong, var(--v2-text-text-base));
78
+ }
79
+
80
+ [data-component="session-review-v2-sidebar-root"]
81
+ [data-slot="session-review-v2-sidebar-title"]:not(:has([data-component="select-v2-root"])) {
82
+ margin-left: 8px;
83
+ }
84
+
85
+ [data-component="session-review-v2-sidebar-root"]
86
+ [data-slot="session-review-v2-sidebar-title"]
87
+ [data-component="select-v2-root"] {
88
+ width: fit-content;
89
+ max-width: 100%;
90
+ min-width: 0;
91
+ }
92
+
93
+ [data-component="session-review-v2-sidebar-root"] [data-slot="session-review-v2-sidebar-filter"] {
94
+ padding: 0 8px 8px;
95
+ flex-shrink: 0;
96
+ min-width: 0;
97
+ box-sizing: border-box;
98
+ }
99
+
100
+ [data-component="session-review-v2-sidebar-root"]
101
+ [data-slot="session-review-v2-sidebar-filter"]
102
+ [data-component="text-input-v2"] {
103
+ width: 100%;
104
+ max-width: 100%;
105
+ min-width: 0;
106
+ margin-top: 3px;
107
+ }
108
+
109
+ [data-component="session-review-v2-sidebar-root"] [data-slot="session-review-v2-sidebar-tree"] {
110
+ flex: 1;
111
+ min-height: 0;
112
+ }
113
+
114
+ [data-component="session-review-v2-sidebar-root"] [data-slot="session-review-v2-sidebar-tree"] .scroll-view__viewport {
115
+ padding: 0 8px 12px;
116
+ }
117
+
118
+ [data-component="session-review-v2-sidebar-root"] [data-slot="session-review-v2-sidebar-tree"] .scroll-view__thumb {
119
+ width: 16px;
120
+ }
121
+
122
+ [data-component="session-review-v2-sidebar-root"]
123
+ [data-slot="session-review-v2-sidebar-tree"]
124
+ .scroll-view__thumb::after {
125
+ width: 6px;
126
+ background-color: var(--v2-border-border-muted, var(--border-weak-base));
127
+ }
128
+
129
+ [data-component="session-review-v2-sidebar-root"]
130
+ [data-slot="session-review-v2-sidebar-tree"]
131
+ .scroll-view__thumb:hover::after,
132
+ [data-component="session-review-v2-sidebar-root"]
133
+ [data-slot="session-review-v2-sidebar-tree"]
134
+ .scroll-view__thumb[data-dragging="true"]::after {
135
+ background-color: var(--v2-border-border-strong, var(--border-strong-base));
136
+ }
137
+
138
+ [data-component="session-review-v2"] [data-slot="session-review-v2-preview"] {
139
+ display: flex;
140
+ flex-direction: column;
141
+ flex: 1;
142
+ min-width: 0;
143
+ min-height: 0;
144
+ overflow: hidden;
145
+ }
146
+
147
+ [data-component="session-review-v2"] [data-slot="session-review-v2-toolbar"] {
148
+ display: flex;
149
+ align-items: center;
150
+ justify-content: space-between;
151
+ gap: 8px;
152
+ padding: 10px 12px;
153
+ padding-left: 8px;
154
+ flex-shrink: 0;
155
+ border-bottom: 1px solid var(--border-weaker-base, var(--v2-border-border-weak));
156
+ }
157
+
158
+ [data-component="session-review-v2"] [data-slot="session-review-v2-toolbar-group"] {
159
+ display: flex;
160
+ align-items: center;
161
+ gap: 0px;
162
+ }
163
+
164
+ [data-component="session-review-v2"] .session-review-v2-toolbar-group--start {
165
+ min-width: 0;
166
+ }
167
+
168
+ [data-component="session-review-v2"] [data-slot="session-review-v2-toolbar-collapsed-meta"] {
169
+ display: flex;
170
+ align-items: center;
171
+ gap: 8px;
172
+ min-width: 0;
173
+ padding-right: 8px;
174
+ }
175
+
176
+ [data-component="session-review-v2"] [data-slot="session-review-v2-toolbar-title"] {
177
+ display: flex;
178
+ align-items: center;
179
+ min-width: 0;
180
+ font-size: 13px;
181
+ font-weight: 500;
182
+ color: var(--text-strong, var(--v2-text-text-base));
183
+ }
184
+
185
+ [data-component="session-review-v2"] [data-slot="session-review-v2-toolbar-title"] [data-component="select-v2-root"] {
186
+ width: fit-content;
187
+ max-width: 100%;
188
+ min-width: 0;
189
+ }
190
+
191
+ [data-component="session-review-v2"] [data-slot="session-review-v2-file-position"] {
192
+ flex: none;
193
+ flex-grow: 0;
194
+ font-family: var(--v2-font-family-sans);
195
+ font-style: normal;
196
+ font-weight: 440;
197
+ font-size: 11px;
198
+ line-height: 100%;
199
+ letter-spacing: 0.05px;
200
+ text-transform: uppercase;
201
+ font-variant-numeric: tabular-nums lining-nums;
202
+ font-feature-settings:
203
+ "tnum" on,
204
+ "lnum" on;
205
+ font-variation-settings: "slnt" 0;
206
+ color: var(--v2-grey-600);
207
+ white-space: nowrap;
208
+ }
209
+
210
+ [data-component="session-review-v2"] .session-review-v2-file-nav-button {
211
+ width: 36px;
212
+ height: 28px;
213
+ min-width: 36px;
214
+ min-height: 28px;
215
+ padding: 0;
216
+ }
217
+
218
+ [data-component="session-review-v2"]
219
+ [data-slot="session-review-v2-toolbar-group"]
220
+ [data-component="tooltip-v2-trigger"] {
221
+ display: inline-flex;
222
+ }
223
+
224
+ [data-component="session-review-v2"] .session-review-v2-segmented-control [data-component="tooltip-v2-trigger"] {
225
+ display: flex;
226
+ flex: 0 0 auto;
227
+ min-width: 0;
228
+ }
229
+
230
+ [data-component="session-review-v2"]
231
+ .session-review-v2-segmented-control
232
+ [data-component="tooltip-v2-trigger"]
233
+ [data-slot="segmented-control-v2-item"] {
234
+ width: 100%;
235
+ }
236
+
237
+ [data-component="icon-button-v2"].session-review-v2-sidebar-toggle {
238
+ width: 36px;
239
+ height: 28px;
240
+ min-width: 36px;
241
+ min-height: 28px;
242
+ border-radius: 6px;
243
+ color: var(--v2-icon-icon-base);
244
+ }
245
+
246
+ [data-component="icon-button-v2"][data-variant="ghost"].session-review-v2-sidebar-toggle[aria-expanded="true"] {
247
+ background-color: var(--v2-overlay-simple-overlay-pressed);
248
+ }
249
+
250
+ [data-component="session-review-v2"] [data-slot="session-review-v2-file-header"] {
251
+ display: flex;
252
+ align-items: center;
253
+ gap: 8px;
254
+ padding: 8px 16px;
255
+ flex-shrink: 0;
256
+ border-bottom: 1px solid var(--border-weaker-base, var(--v2-border-border-weak));
257
+ }
258
+
259
+ [data-component="session-review-v2"] [data-slot="session-review-v2-file-title"] {
260
+ display: flex;
261
+ flex-direction: row;
262
+ align-items: center;
263
+ gap: 6px;
264
+ min-width: 0;
265
+ flex: 1;
266
+ }
267
+
268
+ [data-component="session-review-v2"] [data-slot="session-review-v2-file-diff"] {
269
+ position: relative;
270
+ flex-shrink: 0;
271
+ margin-left: auto;
272
+ background-color: var(--v2-background-bg-base);
273
+
274
+ &::before {
275
+ content: "";
276
+ position: absolute;
277
+ top: -8px;
278
+ bottom: -8px;
279
+ right: 100%;
280
+ width: 16px;
281
+ z-index: 1;
282
+ pointer-events: none;
283
+ background: linear-gradient(90deg, transparent, var(--v2-background-bg-base));
284
+ }
285
+
286
+ &::after {
287
+ content: "";
288
+ position: absolute;
289
+ inset: -8px -16px -8px 0;
290
+ z-index: 0;
291
+ pointer-events: none;
292
+ background-color: var(--v2-background-bg-base);
293
+ }
294
+
295
+ [data-component="diff-changes"] {
296
+ position: relative;
297
+ z-index: 1;
298
+ }
299
+ }
300
+
301
+ [data-component="session-review-v2"] [data-slot="session-review-v2-file-status"] {
302
+ display: flex;
303
+ align-items: center;
304
+ justify-content: center;
305
+ width: 16px;
306
+ height: 16px;
307
+ flex-shrink: 0;
308
+ font-size: 11px;
309
+ font-weight: 530;
310
+ line-height: 1;
311
+ letter-spacing: -0.04px;
312
+ text-transform: uppercase;
313
+ font-variant-numeric: tabular-nums lining-nums;
314
+ }
315
+
316
+ [data-component="session-review-v2"] [data-slot="session-review-v2-file-status"][data-type="added"] {
317
+ color: var(--icon-diff-add-base, var(--v2-state-fg-success));
318
+ }
319
+
320
+ [data-component="session-review-v2"] [data-slot="session-review-v2-file-status"][data-type="deleted"] {
321
+ color: var(--icon-diff-delete-base, var(--v2-state-fg-danger));
322
+ }
323
+
324
+ [data-component="session-review-v2"] [data-slot="session-review-v2-file-status"][data-type="modified"] {
325
+ color: var(--v2-state-fg-info);
326
+ }
327
+
328
+ [data-component="session-review-v2"] [data-slot="session-review-v2-file-name"] {
329
+ flex: none;
330
+ font-size: 13px;
331
+ font-weight: 530;
332
+ line-height: 1;
333
+ letter-spacing: -0.04px;
334
+ font-variant-numeric: tabular-nums lining-nums;
335
+ color: var(--v2-text-text-base);
336
+ white-space: nowrap;
337
+ }
338
+
339
+ [data-component="session-review-v2"] [data-slot="session-review-v2-file-path"] {
340
+ flex: none;
341
+ font-size: 13px;
342
+ font-weight: 440;
343
+ line-height: 1;
344
+ letter-spacing: -0.04px;
345
+ font-variant-numeric: tabular-nums lining-nums;
346
+ color: var(--v2-text-text-muted);
347
+ white-space: nowrap;
348
+ }
349
+
350
+ [data-component="session-review-v2"] [data-slot="session-review-v2-diff-scroll"] {
351
+ flex: 1;
352
+ min-height: 0;
353
+ overflow: auto;
354
+ --line-comment-z: 5;
355
+ --line-comment-popover-z: 30;
356
+ --line-comment-open-z: 6;
357
+ }
358
+
359
+ [data-component="session-review-v2"] .session-review-v2-toolbar-group--segments {
360
+ gap: 12px;
361
+ }
362
+
363
+ [data-component="session-review-v2"] .session-review-v2-toolbar-group--segments .session-review-v2-segmented-control {
364
+ width: auto;
365
+ }
366
+
367
+ [data-component="session-review-v2"]
368
+ .session-review-v2-toolbar-group--segments
369
+ .session-review-v2-segmented-control--icon
370
+ [data-slot="segmented-control-v2-item"] {
371
+ flex: 0 0 auto;
372
+ }
373
+
374
+ [data-component="session-review-v2"] [data-slot="session-review-v2-empty"] {
375
+ flex: 1;
376
+ display: flex;
377
+ align-items: center;
378
+ justify-content: center;
379
+ padding: 24px;
380
+ padding-bottom: 160px;
381
+ }
382
+
383
+ [data-slot="session-review-v2-empty-no-git"] {
384
+ flex: 1;
385
+ display: flex;
386
+ flex-direction: column;
387
+ align-items: center;
388
+ justify-content: center;
389
+ gap: 16px;
390
+ padding: 24px;
391
+ padding-bottom: 160px;
392
+ text-align: center;
393
+ }
394
+
395
+ [data-slot="session-review-v2-empty-no-git"] [data-component="file-icon"] {
396
+ width: 20px;
397
+ height: 20px;
398
+ color: var(--v2-icon-icon-muted);
399
+ }
400
+
401
+ [data-slot="session-review-v2-empty-no-git-title"] {
402
+ flex: none;
403
+ font-size: 13px;
404
+ font-weight: 530;
405
+ line-height: 100%;
406
+ letter-spacing: -0.04px;
407
+ color: var(--v2-text-text-base);
408
+ }
409
+
410
+ [data-slot="session-review-v2-empty-no-git-description"] {
411
+ flex: none;
412
+ margin: 0 0 4px;
413
+ max-width: 360px;
414
+ font-size: 13px;
415
+ font-weight: 440;
416
+ line-height: 20px;
417
+ text-align: center;
418
+ letter-spacing: -0.04px;
419
+ color: var(--v2-text-text-muted);
420
+ }
421
+
422
+ [data-slot="session-review-v2-empty-changes"] {
423
+ flex: 1;
424
+ display: flex;
425
+ flex-direction: column;
426
+ align-items: center;
427
+ justify-content: center;
428
+ gap: 16px;
429
+ padding: 24px;
430
+ padding-bottom: 160px;
431
+ text-align: center;
432
+ }
433
+
434
+ [data-slot="session-review-v2-empty-changes"] [data-slot="icon-svg"] {
435
+ flex: none;
436
+ color: var(--v2-icon-icon-muted);
437
+ }
438
+
439
+ [data-slot="session-review-v2-empty-changes-title"] {
440
+ flex: none;
441
+ margin-top: 4px;
442
+ font-size: 13px;
443
+ font-weight: 530;
444
+ line-height: 100%;
445
+ letter-spacing: -0.04px;
446
+ color: var(--v2-text-text-base);
447
+ }
448
+
449
+ [data-slot="session-review-v2-empty-changes-description"] {
450
+ flex: none;
451
+ max-width: 282px;
452
+ font-size: 13px;
453
+ font-weight: 440;
454
+ line-height: 20px;
455
+ text-align: center;
456
+ letter-spacing: -0.04px;
457
+ color: var(--v2-text-text-muted);
458
+ }