@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,166 @@
1
+ import { Collapsible } from "@kobalte/core/collapsible"
2
+ import { type ComponentProps, type JSX, Show, createMemo, splitProps } from "solid-js"
3
+ import "./tool-error-card-v2.css"
4
+
5
+ function BanIcon() {
6
+ return (
7
+ <svg
8
+ data-slot="tool-error-card-ban"
9
+ width="16"
10
+ height="16"
11
+ viewBox="0 0 16 16"
12
+ fill="none"
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ aria-hidden="true"
15
+ >
16
+ <path
17
+ d="M3.44283 12.5575L12.5495 3.45081M14.4446 8.00011C14.4446 11.5593 11.5593 14.4446 8.00011 14.4446C4.44094 14.4446 1.55566 11.5593 1.55566 8.00011C1.55566 4.44094 4.44094 1.55566 8.00011 1.55566C11.5593 1.55566 14.4446 4.44094 14.4446 8.00011Z"
18
+ stroke="currentColor"
19
+ />
20
+ </svg>
21
+ )
22
+ }
23
+
24
+ /** duo-progress-25: faint track ring + ~25% solid arc (Figma OpenCode DS) */
25
+ function LoaderIcon() {
26
+ const r = 5.9
27
+ return (
28
+ <svg
29
+ data-slot="tool-error-card-loader"
30
+ width="16"
31
+ height="16"
32
+ viewBox="0 0 16 16"
33
+ fill="none"
34
+ xmlns="http://www.w3.org/2000/svg"
35
+ aria-hidden="true"
36
+ >
37
+ <g transform="translate(8 8)">
38
+ <circle
39
+ r={r}
40
+ fill="none"
41
+ stroke="var(--v2-icon-icon-base)"
42
+ stroke-width="1"
43
+ stroke-opacity="0.3"
44
+ transform="rotate(-90)"
45
+ />
46
+ <circle
47
+ r={r}
48
+ fill="none"
49
+ stroke="var(--v2-icon-icon-base)"
50
+ stroke-width="1"
51
+ pathLength="100"
52
+ stroke-dasharray="25 75"
53
+ transform="rotate(-90)"
54
+ />
55
+ </g>
56
+ </svg>
57
+ )
58
+ }
59
+
60
+ function ChevronIcon() {
61
+ return (
62
+ <svg
63
+ data-slot="tool-error-card-chevron"
64
+ width="14"
65
+ height="14"
66
+ viewBox="0 0 14 14"
67
+ fill="none"
68
+ xmlns="http://www.w3.org/2000/svg"
69
+ aria-hidden="true"
70
+ >
71
+ <path
72
+ d="M5.90795 9.62425C5.61628 9.81865 5.25 9.57825 5.25 9.19235V4.80837C5.25 4.42247 5.61628 4.18204 5.90795 4.37648L9.1959 6.56846C9.48535 6.7614 9.48535 7.2393 9.1959 7.43224L5.90795 9.62425Z"
73
+ fill="currentColor"
74
+ />
75
+ </svg>
76
+ )
77
+ }
78
+
79
+ export interface ToolErrorCardV2Props extends Omit<ComponentProps<"div">, "children" | "title"> {
80
+ title: JSX.Element | string
81
+ subtitle: JSX.Element | string
82
+ suffix?: JSX.Element | string
83
+ loading?: boolean
84
+ open?: boolean
85
+ defaultOpen?: boolean
86
+ onOpenChange?: (open: boolean) => void
87
+ /** When set, subtitle renders as a link (clicks do not toggle expand). */
88
+ subtitleHref?: string
89
+ }
90
+
91
+ export function ToolErrorCardV2(props: ToolErrorCardV2Props) {
92
+ const [local, rest] = splitProps(props, [
93
+ "title",
94
+ "subtitle",
95
+ "suffix",
96
+ "loading",
97
+ "open",
98
+ "defaultOpen",
99
+ "onOpenChange",
100
+ "subtitleHref",
101
+ "class",
102
+ "classList",
103
+ ])
104
+
105
+ const hasSuffix = createMemo(() => {
106
+ const s = local.suffix
107
+ if (s == null) return false
108
+ if (typeof s === "string") return s.length > 0
109
+ return true
110
+ })
111
+
112
+ return (
113
+ <Collapsible
114
+ {...rest}
115
+ data-component="tool-error-card"
116
+ open={local.open}
117
+ defaultOpen={local.defaultOpen}
118
+ onOpenChange={local.onOpenChange}
119
+ disabled={!hasSuffix()}
120
+ aria-busy={local.loading ? true : undefined}
121
+ classList={{
122
+ ...local.classList,
123
+ [local.class ?? ""]: !!local.class,
124
+ }}
125
+ >
126
+ <Collapsible.Trigger as="div" role="button" data-slot="tool-error-card-trigger">
127
+ <span data-slot="tool-error-card-icon-wrap">
128
+ <Show when={local.loading} fallback={<BanIcon />}>
129
+ <LoaderIcon />
130
+ </Show>
131
+ </span>
132
+ <div data-slot="tool-error-card-main">
133
+ <div data-slot="tool-error-card-labels">
134
+ <span data-slot="tool-error-card-title">{local.title}</span>
135
+ <span data-slot="tool-error-card-sep" aria-hidden="true">
136
+ ·
137
+ </span>
138
+ <Show
139
+ when={local.subtitleHref}
140
+ fallback={<span data-slot="tool-error-card-subtitle">{local.subtitle}</span>}
141
+ >
142
+ <a
143
+ data-slot="tool-error-card-subtitle"
144
+ href={local.subtitleHref!}
145
+ onClick={(e) => e.stopPropagation()}
146
+ onPointerDown={(e) => e.stopPropagation()}
147
+ >
148
+ {local.subtitle}
149
+ </a>
150
+ </Show>
151
+ <Show when={hasSuffix()}>
152
+ <span data-slot="tool-error-card-chevron-wrap">
153
+ <ChevronIcon />
154
+ </span>
155
+ </Show>
156
+ </div>
157
+ </div>
158
+ </Collapsible.Trigger>
159
+ <Show when={hasSuffix()}>
160
+ <Collapsible.Content data-slot="tool-error-card-content">
161
+ <div data-slot="tool-error-card-suffix">{local.suffix}</div>
162
+ </Collapsible.Content>
163
+ </Show>
164
+ </Collapsible>
165
+ )
166
+ }
package/sst-env.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ /* This file is auto-generated by SST. Do not edit. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /* deno-fmt-ignore-file */
5
+ /* biome-ignore-all lint: auto-generated */
6
+
7
+ /// <reference path="../../sst-env.d.ts" />
8
+
9
+ import "sst"
10
+ export {}
package/tsconfig.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "@tsconfig/node22/tsconfig.json",
4
+ "compilerOptions": {
5
+ "jsx": "preserve",
6
+ "jsxImportSource": "solid-js",
7
+ "target": "ESNext",
8
+ "allowSyntheticDefaultImports": true,
9
+ "esModuleInterop": true,
10
+ "isolatedModules": true,
11
+ "module": "ESNext",
12
+ "moduleResolution": "bundler",
13
+ "noEmit": true,
14
+ "lib": ["es2023", "dom", "dom.iterable"],
15
+ "strict": true,
16
+ "types": ["vite/client", "bun"]
17
+ },
18
+ "exclude": ["**/*.stories.*", "**/*.mdx"]
19
+ }