@kitnai/chat 0.7.0 → 0.8.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 (214) hide show
  1. package/README.md +9 -9
  2. package/dist/custom-elements.json +1626 -883
  3. package/dist/kitn-chat.es.js +36 -36
  4. package/dist/llms/llms-full.txt +303 -142
  5. package/dist/llms/llms.txt +18 -18
  6. package/dist/schemas/card-envelope.schema.json +14 -0
  7. package/dist/schemas/card-event.schema.json +12 -0
  8. package/dist/schemas/confirm.schema.json +65 -0
  9. package/dist/schemas/embed.schema.json +65 -0
  10. package/dist/schemas/form.result.schema.json +7 -0
  11. package/dist/schemas/form.schema.json +33 -0
  12. package/dist/schemas/link.schema.json +56 -0
  13. package/dist/schemas/task-list.result.schema.json +16 -0
  14. package/dist/schemas/task-list.schema.json +78 -0
  15. package/dist/theme.tokens.css +65 -65
  16. package/dist/tsx-B8rCNbgL.js +1 -0
  17. package/dist/typescript-RycA9KXf.js +1 -0
  18. package/frameworks/react/index.tsx +356 -189
  19. package/frameworks/react/runtime.tsx +2 -2
  20. package/llms-full.txt +303 -142
  21. package/llms.txt +18 -18
  22. package/package.json +5 -2
  23. package/src/components/artifact.stories.tsx +138 -0
  24. package/src/components/artifact.tsx +581 -0
  25. package/src/components/attachments.stories.tsx +7 -8
  26. package/src/components/attachments.tsx +2 -2
  27. package/src/components/card.tsx +110 -0
  28. package/src/components/chain-of-thought.stories.tsx +7 -8
  29. package/src/components/chat-container.stories.tsx +7 -8
  30. package/src/components/chat-container.tsx +4 -0
  31. package/src/components/checkpoint.stories.tsx +7 -8
  32. package/src/components/checkpoint.tsx +3 -0
  33. package/src/components/code-block.stories.tsx +8 -9
  34. package/src/components/code-block.tsx +5 -2
  35. package/src/components/component-meta.json +3419 -0
  36. package/src/components/confirm-card.stories.tsx +74 -0
  37. package/src/components/confirm-card.tsx +299 -0
  38. package/src/components/context.stories.tsx +7 -8
  39. package/src/components/conversation-item.stories.tsx +7 -8
  40. package/src/components/conversation-item.tsx +2 -2
  41. package/src/components/conversation-list.stories.tsx +7 -8
  42. package/src/components/conversation-list.tsx +1 -1
  43. package/src/components/embed.tsx +196 -0
  44. package/src/components/empty.stories.tsx +8 -9
  45. package/src/components/feedback-bar.stories.tsx +7 -8
  46. package/src/components/file-tree.stories.tsx +73 -0
  47. package/src/components/file-tree.tsx +383 -0
  48. package/src/components/file-upload.stories.tsx +7 -8
  49. package/src/components/form-widgets.tsx +461 -0
  50. package/src/components/form.tsx +796 -0
  51. package/src/components/image.stories.tsx +7 -8
  52. package/src/components/link-card.tsx +194 -0
  53. package/src/components/loader.stories.tsx +7 -8
  54. package/src/components/markdown.stories.tsx +7 -8
  55. package/src/components/message-narrow.stories.tsx +12 -13
  56. package/src/components/message-skills.stories.tsx +16 -17
  57. package/src/components/message.stories.tsx +17 -18
  58. package/src/components/model-switcher.stories.tsx +7 -8
  59. package/src/components/prompt-input.stories.tsx +8 -9
  60. package/src/components/prompt-suggestion.stories.tsx +7 -8
  61. package/src/components/prompt-suggestion.tsx +3 -3
  62. package/src/components/reasoning.stories.tsx +7 -8
  63. package/src/components/scroll-button.stories.tsx +7 -8
  64. package/src/components/slash-command.stories.tsx +8 -9
  65. package/src/components/slash-command.tsx +2 -2
  66. package/src/components/source.stories.tsx +7 -8
  67. package/src/components/source.tsx +1 -1
  68. package/src/components/task-list-card.stories.tsx +78 -0
  69. package/src/components/task-list-card.tsx +388 -0
  70. package/src/components/text-shimmer.stories.tsx +7 -8
  71. package/src/components/thinking-bar.stories.tsx +7 -8
  72. package/src/components/tool.stories.tsx +7 -8
  73. package/src/components/tool.tsx +2 -2
  74. package/src/components/voice-input.stories.tsx +7 -8
  75. package/src/elements/artifact.stories.tsx +291 -0
  76. package/src/elements/artifact.tsx +72 -0
  77. package/src/elements/{kitn-attachments.stories.tsx → attachments.stories.tsx} +11 -20
  78. package/src/elements/attachments.tsx +4 -4
  79. package/src/elements/card.stories.tsx +118 -0
  80. package/src/elements/card.tsx +40 -0
  81. package/src/elements/catalog.stories.tsx +491 -0
  82. package/src/elements/{kitn-chain-of-thought.stories.tsx → chain-of-thought.stories.tsx} +13 -22
  83. package/src/elements/chain-of-thought.tsx +3 -3
  84. package/src/elements/{kitn-chat-scope-picker.stories.tsx → chat-scope-picker.stories.tsx} +10 -19
  85. package/src/elements/chat-scope-picker.tsx +4 -4
  86. package/src/elements/{kitn-chat-workspace.stories.tsx → chat-workspace.stories.tsx} +15 -23
  87. package/src/elements/chat-workspace.tsx +2 -2
  88. package/src/elements/{kitn-chat.stories.tsx → chat.stories.tsx} +12 -20
  89. package/src/elements/chat.tsx +2 -2
  90. package/src/elements/{kitn-checkpoint.stories.tsx → checkpoint.stories.tsx} +11 -20
  91. package/src/elements/checkpoint.tsx +8 -4
  92. package/src/elements/{kitn-code-block.stories.tsx → code-block.stories.tsx} +10 -19
  93. package/src/elements/code-block.tsx +3 -3
  94. package/src/elements/compiled.css +1 -1
  95. package/src/elements/composed-shell.stories.tsx +316 -0
  96. package/src/elements/confirm-card.stories.tsx +186 -0
  97. package/src/elements/confirm-card.tsx +45 -0
  98. package/src/elements/{kitn-context-meter.stories.tsx → context-meter.stories.tsx} +10 -19
  99. package/src/elements/context-meter.tsx +3 -3
  100. package/src/elements/{kitn-conversation-list.stories.tsx → conversation-list.stories.tsx} +12 -20
  101. package/src/elements/conversation-list.tsx +2 -2
  102. package/src/elements/css.ts +1 -1
  103. package/src/elements/define.tsx +10 -10
  104. package/src/elements/element-meta.json +1379 -733
  105. package/src/elements/element-types.d.ts +251 -125
  106. package/src/elements/embed.stories.tsx +197 -0
  107. package/src/elements/embed.tsx +35 -0
  108. package/src/elements/{kitn-empty.stories.tsx → empty.stories.tsx} +12 -21
  109. package/src/elements/empty.tsx +3 -3
  110. package/src/elements/{kitn-feedback-bar.stories.tsx → feedback-bar.stories.tsx} +11 -20
  111. package/src/elements/feedback-bar.tsx +4 -4
  112. package/src/elements/file-tree.stories.tsx +133 -0
  113. package/src/elements/file-tree.tsx +52 -0
  114. package/src/elements/{kitn-file-upload.stories.tsx → file-upload.stories.tsx} +12 -21
  115. package/src/elements/file-upload.tsx +4 -4
  116. package/src/elements/form.stories.tsx +204 -0
  117. package/src/elements/form.tsx +37 -0
  118. package/src/elements/{kitn-image.stories.tsx → image.stories.tsx} +10 -19
  119. package/src/elements/image.tsx +3 -3
  120. package/src/elements/link-card.stories.tsx +193 -0
  121. package/src/elements/link-card.tsx +34 -0
  122. package/src/elements/{kitn-loader.stories.tsx → loader.stories.tsx} +11 -20
  123. package/src/elements/loader.tsx +3 -3
  124. package/src/elements/{kitn-markdown.stories.tsx → markdown.stories.tsx} +10 -19
  125. package/src/elements/markdown.tsx +3 -3
  126. package/src/elements/{kitn-message-skills.stories.tsx → message-skills.stories.tsx} +10 -19
  127. package/src/elements/message-skills.tsx +3 -3
  128. package/src/elements/{kitn-message.stories.tsx → message.stories.tsx} +12 -21
  129. package/src/elements/message.tsx +5 -5
  130. package/src/elements/{kitn-model-switcher.stories.tsx → model-switcher.stories.tsx} +10 -19
  131. package/src/elements/model-switcher.tsx +5 -5
  132. package/src/elements/{kitn-prompt-input.stories.tsx → prompt-input.stories.tsx} +14 -22
  133. package/src/elements/prompt-input.tsx +3 -3
  134. package/src/elements/{kitn-prompt-suggestions.stories.tsx → prompt-suggestions.stories.tsx} +13 -22
  135. package/src/elements/prompt-suggestions.tsx +4 -4
  136. package/src/elements/{kitn-reasoning.stories.tsx → reasoning.stories.tsx} +10 -19
  137. package/src/elements/reasoning.tsx +4 -4
  138. package/src/elements/register.ts +11 -1
  139. package/src/elements/resizable.stories.tsx +200 -0
  140. package/src/elements/resizable.tsx +264 -0
  141. package/src/elements/{kitn-response-stream.stories.tsx → response-stream.stories.tsx} +10 -19
  142. package/src/elements/response-stream.tsx +4 -4
  143. package/src/elements/{kitn-source-list.stories.tsx → source-list.stories.tsx} +11 -20
  144. package/src/elements/{kitn-source.stories.tsx → source.stories.tsx} +12 -21
  145. package/src/elements/source.tsx +5 -5
  146. package/src/elements/styles.css +140 -1
  147. package/src/elements/task-list-card.stories.tsx +194 -0
  148. package/src/elements/task-list-card.tsx +40 -0
  149. package/src/elements/{kitn-text-shimmer.stories.tsx → text-shimmer.stories.tsx} +10 -19
  150. package/src/elements/text-shimmer.tsx +3 -3
  151. package/src/elements/{kitn-thinking-bar.stories.tsx → thinking-bar.stories.tsx} +11 -20
  152. package/src/elements/thinking-bar.tsx +5 -5
  153. package/src/elements/{kitn-tool.stories.tsx → tool.stories.tsx} +10 -19
  154. package/src/elements/tool.tsx +3 -3
  155. package/src/elements/{kitn-voice-input.stories.tsx → voice-input.stories.tsx} +10 -19
  156. package/src/elements/voice-input.tsx +4 -4
  157. package/src/index.ts +94 -2
  158. package/src/primitives/card-contract.ts +60 -0
  159. package/src/primitives/card-host.tsx +35 -0
  160. package/src/primitives/card-routing.ts +79 -0
  161. package/src/primitives/card-schemas/card-envelope.schema.json +14 -0
  162. package/src/primitives/card-schemas/card-event.schema.json +12 -0
  163. package/src/primitives/card-schemas/confirm.schema.json +65 -0
  164. package/src/primitives/card-schemas/embed.schema.json +65 -0
  165. package/src/primitives/card-schemas/form.result.schema.json +7 -0
  166. package/src/primitives/card-schemas/form.schema.json +33 -0
  167. package/src/primitives/card-schemas/link.schema.json +56 -0
  168. package/src/primitives/card-schemas/task-list.result.schema.json +16 -0
  169. package/src/primitives/card-schemas/task-list.schema.json +78 -0
  170. package/src/primitives/card-validate.ts +95 -0
  171. package/src/primitives/embed-providers.ts +254 -0
  172. package/src/primitives/highlighter.ts +4 -0
  173. package/src/primitives/link-preview.ts +87 -0
  174. package/src/primitives/pdf-preview.ts +121 -0
  175. package/src/stories/chat-panel-layout.stories.tsx +2 -1
  176. package/src/stories/chat-scene.tsx +22 -21
  177. package/src/stories/checkpoint-restore.stories.tsx +10 -10
  178. package/src/stories/conversation-with-reasoning.stories.tsx +4 -4
  179. package/src/stories/conversation-with-sources.stories.tsx +7 -7
  180. package/src/stories/docs/Accessibility.mdx +2 -2
  181. package/src/stories/docs/ForAIAgents.mdx +3 -3
  182. package/src/stories/docs/GettingStarted.mdx +2 -2
  183. package/src/stories/docs/Installation.mdx +2 -2
  184. package/src/stories/docs/Integrations.mdx +29 -29
  185. package/src/stories/docs/Introduction.mdx +3 -3
  186. package/src/stories/docs/Theming.mdx +2 -2
  187. package/src/stories/docs/element-controls.ts +32 -0
  188. package/src/stories/docs/theme-editor/theme-editor.tsx +1 -0
  189. package/src/stories/examples/ChoosingComponents.mdx +94 -0
  190. package/src/stories/examples/sample-data.ts +79 -0
  191. package/src/stories/message-actions.stories.tsx +13 -13
  192. package/src/stories/pattern-centered-conversation.stories.tsx +3 -3
  193. package/src/stories/pattern-docked-widget.stories.tsx +1 -1
  194. package/src/stories/pattern-empty-state.stories.tsx +3 -3
  195. package/src/stories/prompt-input-variants.stories.tsx +13 -13
  196. package/src/stories/streaming-response.stories.tsx +3 -3
  197. package/src/stories/typography.stories.tsx +4 -4
  198. package/src/ui/avatar.stories.tsx +7 -8
  199. package/src/ui/badge.stories.tsx +7 -8
  200. package/src/ui/button.stories.tsx +8 -9
  201. package/src/ui/button.tsx +1 -0
  202. package/src/ui/collapsible.stories.tsx +6 -7
  203. package/src/ui/dropdown.stories.tsx +6 -7
  204. package/src/ui/hover-card.stories.tsx +6 -7
  205. package/src/ui/resizable.stories.tsx +74 -9
  206. package/src/ui/resizable.tsx +351 -71
  207. package/src/ui/scroll-area.stories.tsx +6 -7
  208. package/src/ui/scroll-area.tsx +3 -1
  209. package/src/ui/separator.stories.tsx +7 -8
  210. package/src/ui/skeleton.stories.tsx +7 -8
  211. package/src/ui/textarea.stories.tsx +6 -7
  212. package/src/ui/tooltip.stories.tsx +8 -9
  213. package/theme.css +65 -65
  214. package/src/stories/docs/element-spec.tsx +0 -86
@@ -0,0 +1,3419 @@
1
+ [
2
+ {
3
+ "name": "Artifact",
4
+ "group": "Components",
5
+ "sourceFile": "src/components/artifact.tsx",
6
+ "props": [
7
+ {
8
+ "name": "src",
9
+ "type": "undefined | string",
10
+ "displayType": "undefined | string",
11
+ "optional": true,
12
+ "scalar": true,
13
+ "description": "URL the preview iframe frames."
14
+ },
15
+ {
16
+ "name": "files",
17
+ "type": "undefined | { path: string; url?: undefined | string; code?: undefined | string; language?: undefined | string; type?: undefined | \"html\" | \"pdf\" | \"image\" | \"other\" }[]",
18
+ "displayType": "undefined | { path: string; url?: undefined | string; code?: undefined | string; language?: undefined | string; type?: undefined | \"html\" | \"pdf\" | \"image\" | \"other\" }[]",
19
+ "optional": true,
20
+ "scalar": false,
21
+ "description": "Files for the Code tab's tree (+ each file's preview `url`)."
22
+ },
23
+ {
24
+ "name": "tab",
25
+ "type": "undefined | \"preview\" | \"code\"",
26
+ "displayType": "undefined | \"preview\" | \"code\"",
27
+ "optional": true,
28
+ "scalar": true,
29
+ "description": "Active tab. Default `preview`."
30
+ },
31
+ {
32
+ "name": "activeFile",
33
+ "type": "undefined | string",
34
+ "displayType": "undefined | string",
35
+ "optional": true,
36
+ "scalar": true,
37
+ "description": "Selected file path (syncs tree highlight + Code source + preview)."
38
+ },
39
+ {
40
+ "name": "sandbox",
41
+ "type": "undefined | string",
42
+ "displayType": "undefined | string",
43
+ "optional": true,
44
+ "scalar": true,
45
+ "description": "iframe `sandbox` override. Default `allow-scripts allow-forms`."
46
+ },
47
+ {
48
+ "name": "iframeTitle",
49
+ "type": "undefined | string",
50
+ "displayType": "undefined | string",
51
+ "optional": true,
52
+ "scalar": true,
53
+ "description": "Accessible iframe title.",
54
+ "default": "'Artifact preview'"
55
+ }
56
+ ],
57
+ "callbacks": [
58
+ {
59
+ "name": "onNavigate",
60
+ "type": "undefined | (url: string) => void",
61
+ "displayType": "undefined | (url: string) => void",
62
+ "description": "Fired when the preview navigates (back/forward/reload/path-edit/file-click)."
63
+ },
64
+ {
65
+ "name": "onTabChange",
66
+ "type": "undefined | (tab: ArtifactTab) => void",
67
+ "displayType": "undefined | (tab: ArtifactTab) => void",
68
+ "description": "Fired when the Preview|Code tab changes."
69
+ },
70
+ {
71
+ "name": "onFileSelect",
72
+ "type": "undefined | (path: string) => void",
73
+ "displayType": "undefined | (path: string) => void",
74
+ "description": "Fired when a file is selected in the tree."
75
+ }
76
+ ],
77
+ "slots": [],
78
+ "tokens": [],
79
+ "extendsHtmlAttributes": true,
80
+ "description": "`Artifact` — a framed, switchable generated-artifact viewer. A functional nav toolbar (back · forward · reload · home + editable path field + Preview|Code toggle) over a sandboxed `<iframe>` (Preview) or a file-tree + `<kc-code-block>` (Code). The component self-navigates the iframe and emits `navigate` / `tabchange` / `fileselect` so a consumer can observe/sync."
81
+ },
82
+ {
83
+ "name": "Attachment",
84
+ "group": "Components",
85
+ "sourceFile": "src/components/attachments.tsx",
86
+ "props": [
87
+ {
88
+ "name": "data",
89
+ "type": "{ id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }",
90
+ "displayType": "{ id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }",
91
+ "optional": false,
92
+ "scalar": false,
93
+ "description": ""
94
+ }
95
+ ],
96
+ "callbacks": [
97
+ {
98
+ "name": "onRemove",
99
+ "type": "undefined | () => void",
100
+ "displayType": "undefined | () => void",
101
+ "description": ""
102
+ }
103
+ ],
104
+ "slots": [
105
+ {
106
+ "name": "children",
107
+ "description": ""
108
+ }
109
+ ],
110
+ "tokens": [],
111
+ "extendsHtmlAttributes": true,
112
+ "description": ""
113
+ },
114
+ {
115
+ "name": "AttachmentEmpty",
116
+ "group": "Components",
117
+ "sourceFile": "src/components/attachments.tsx",
118
+ "props": [],
119
+ "callbacks": [],
120
+ "slots": [
121
+ {
122
+ "name": "children",
123
+ "description": ""
124
+ }
125
+ ],
126
+ "tokens": [],
127
+ "extendsHtmlAttributes": true,
128
+ "description": ""
129
+ },
130
+ {
131
+ "name": "AttachmentHoverCard",
132
+ "group": "Components",
133
+ "sourceFile": "src/components/attachments.tsx",
134
+ "props": [
135
+ {
136
+ "name": "openDelay",
137
+ "type": "undefined | number",
138
+ "displayType": "undefined | number",
139
+ "optional": true,
140
+ "scalar": true,
141
+ "description": "",
142
+ "default": "0"
143
+ },
144
+ {
145
+ "name": "closeDelay",
146
+ "type": "undefined | number",
147
+ "displayType": "undefined | number",
148
+ "optional": true,
149
+ "scalar": true,
150
+ "description": "",
151
+ "default": "0"
152
+ }
153
+ ],
154
+ "callbacks": [],
155
+ "slots": [
156
+ {
157
+ "name": "children",
158
+ "description": ""
159
+ }
160
+ ],
161
+ "tokens": [],
162
+ "extendsHtmlAttributes": false,
163
+ "description": ""
164
+ },
165
+ {
166
+ "name": "AttachmentHoverCardContent",
167
+ "group": "Components",
168
+ "sourceFile": "src/components/attachments.tsx",
169
+ "props": [],
170
+ "callbacks": [],
171
+ "slots": [
172
+ {
173
+ "name": "children",
174
+ "description": ""
175
+ }
176
+ ],
177
+ "tokens": [],
178
+ "extendsHtmlAttributes": false,
179
+ "description": ""
180
+ },
181
+ {
182
+ "name": "AttachmentHoverCardTrigger",
183
+ "group": "Components",
184
+ "sourceFile": "src/components/attachments.tsx",
185
+ "props": [],
186
+ "callbacks": [],
187
+ "slots": [
188
+ {
189
+ "name": "children",
190
+ "description": ""
191
+ }
192
+ ],
193
+ "tokens": [],
194
+ "extendsHtmlAttributes": false,
195
+ "description": ""
196
+ },
197
+ {
198
+ "name": "AttachmentInfo",
199
+ "group": "Components",
200
+ "sourceFile": "src/components/attachments.tsx",
201
+ "props": [
202
+ {
203
+ "name": "showMediaType",
204
+ "type": "undefined | false | true",
205
+ "displayType": "undefined | false | true",
206
+ "optional": true,
207
+ "scalar": true,
208
+ "description": ""
209
+ }
210
+ ],
211
+ "callbacks": [],
212
+ "slots": [],
213
+ "tokens": [],
214
+ "extendsHtmlAttributes": true,
215
+ "description": ""
216
+ },
217
+ {
218
+ "name": "AttachmentPreview",
219
+ "group": "Components",
220
+ "sourceFile": "src/components/attachments.tsx",
221
+ "props": [],
222
+ "callbacks": [
223
+ {
224
+ "name": "fallbackIcon",
225
+ "type": "undefined | null | number | false | true | Node | { length: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => JSX.Element; push: (...items: JSX.Element[]) => number; concat: { (...items: ConcatArray<JSX.Element>[]): JSX.Element[]; (...items: (JSX.Element | ConcatArray<JSX.Element>)[]): JSX.Element[]; }; join: (separator?: string) => string; reverse: () => JSX.Element[]; shift: () => JSX.Element; slice: (start?: number, end?: number) => JSX.Element[]; sort: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.ArrayElement; splice: { (start: number, deleteCount?: number): JSX.Element[]; (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; }; unshift: (...items: JSX.Element[]) => number; indexOf: (searchElement: JSX.Element, fromIndex?: number) => number; lastIndexOf: (searchElement: JSX.Element, fromIndex?: number) => number; every: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => void, thisArg?: any) => void; map: <U>(callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => U, thisArg?: any) => U[]; filter: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element[]; }; reduce: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; find: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findIndex: (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any) => number; fill: (value: JSX.Element, start?: number, end?: number) => JSX.ArrayElement; copyWithin: (target: number, start: number, end?: number) => JSX.ArrayElement; entries: () => ArrayIterator<[number, JSX.Element]>; keys: () => ArrayIterator<number>; values: () => ArrayIterator<JSX.Element>; includes: (searchElement: JSX.Element, fromIndex?: number) => boolean; flatMap: <U, This = undefined>(callback: (this: This, value: JSX.Element, index: number, array: JSX.Element[]) => U | readonly U[], thisArg?: This | undefined) => U[]; flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]; at: (index: number) => JSX.Element; findLast: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findLastIndex: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => number; toReversed: () => JSX.Element[]; toSorted: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.Element[]; toSpliced: { (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; (start: number, deleteCount?: number): JSX.Element[]; }; with: (index: number, value: JSX.Element) => JSX.Element[]; __@iterator@1392: () => ArrayIterator<JSX.Element>; __@unscopables@1394: { [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; findLast?: boolean | undefined; findLastIndex?: boolean | undefined; toReversed?: boolean | undefined; toSorted?: boolean | undefined; toSpliced?: boolean | undefined; with?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; } } | string & {}",
226
+ "displayType": "undefined | null | number | false | true | Node | { length: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => JSX.Element; push: (...items: JSX.Element[]) => number; concat: { (...items: ConcatArray<JSX.Element>[]): JSX.Element[]; (...items: (JSX.Element | ConcatArray<JSX.Element>)[]): JSX.Element[]; }; join: (separator?: string) => string; reverse: () => JSX.Element[]; shift: () => JSX.Element; slice: (start?: number, end?: number) => JSX.Element[]; sort: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.ArrayElement; splice: { (start: number, deleteCount?: number): JSX.Element[]; (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; }; unshift: (...items: JSX.Element[]) => number; indexOf: (searchElement: JSX.Element, fromIndex?: number) => number; lastIndexOf: (searchElement: JSX.Element, fromIndex?: number) => number; every: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => void, thisArg?: any) => void; map: <U>(callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => U, thisArg?: any) => U[]; filter: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element[]; }; reduce: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; find: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findIndex: (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any) => number; fill: (value: JSX.Element, start?: number, end?: number) => JSX.ArrayElement; copyWithin: (target: number, start: number, end?: number) => JSX.ArrayElement; entries: () => ArrayIterator<[number, JSX.Element]>; keys: () => ArrayIterator<number>; values: () => ArrayIterator<JSX.Element>; includes: (searchElement: JSX.Element, fromIndex?: number) => boolean; flatMap: <U, This = undefined>(callback: (this: This, value: JSX.Element, index: number, array: JSX.Element[]) => U | readonly U[], thisArg?: This | undefined) => U[]; flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]; at: (index: number) => JSX.Element; findLast: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findLastIndex: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => number; toReversed: () => JSX.Element[]; toSorted: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.Element[]; toSpliced: { (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; (start: number, deleteCount?: number): JSX.Element[]; }; with: (index: number, value: JSX.Element) => JSX.Element[]; __@iterator@1392: () => ArrayIterator<JSX.Element>; __@unscopables@1394: { [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; findLast?: boolean | undefined; findLastIndex?: boolean | undefined; toReversed?: boolean | undefined; toSorted?: boolean | undefined; toSpliced?: boolean | undefined; with?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; } } | string & {}",
227
+ "description": ""
228
+ }
229
+ ],
230
+ "slots": [],
231
+ "tokens": [],
232
+ "extendsHtmlAttributes": true,
233
+ "description": ""
234
+ },
235
+ {
236
+ "name": "AttachmentRemove",
237
+ "group": "Components",
238
+ "sourceFile": "src/components/attachments.tsx",
239
+ "props": [
240
+ {
241
+ "name": "label",
242
+ "type": "undefined | string",
243
+ "displayType": "undefined | string",
244
+ "optional": true,
245
+ "scalar": true,
246
+ "description": "",
247
+ "default": "'Remove'"
248
+ }
249
+ ],
250
+ "callbacks": [],
251
+ "slots": [
252
+ {
253
+ "name": "children",
254
+ "description": ""
255
+ }
256
+ ],
257
+ "tokens": [],
258
+ "extendsHtmlAttributes": false,
259
+ "description": ""
260
+ },
261
+ {
262
+ "name": "Attachments",
263
+ "group": "Components",
264
+ "sourceFile": "src/components/attachments.tsx",
265
+ "props": [
266
+ {
267
+ "name": "variant",
268
+ "type": "undefined | \"grid\" | \"inline\" | \"list\"",
269
+ "displayType": "undefined | \"grid\" | \"inline\" | \"list\"",
270
+ "optional": true,
271
+ "scalar": true,
272
+ "description": "",
273
+ "default": "'grid'"
274
+ }
275
+ ],
276
+ "callbacks": [],
277
+ "slots": [
278
+ {
279
+ "name": "children",
280
+ "description": ""
281
+ }
282
+ ],
283
+ "tokens": [],
284
+ "extendsHtmlAttributes": true,
285
+ "description": ""
286
+ },
287
+ {
288
+ "name": "BarsLoader",
289
+ "group": "Components",
290
+ "sourceFile": "src/components/loader.tsx",
291
+ "props": [
292
+ {
293
+ "name": "size",
294
+ "type": "undefined | \"sm\" | \"md\" | \"lg\"",
295
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\"",
296
+ "optional": true,
297
+ "scalar": true,
298
+ "description": "",
299
+ "default": "'md'"
300
+ }
301
+ ],
302
+ "callbacks": [],
303
+ "slots": [],
304
+ "tokens": [],
305
+ "extendsHtmlAttributes": false,
306
+ "description": ""
307
+ },
308
+ {
309
+ "name": "Card",
310
+ "group": "Components",
311
+ "sourceFile": "src/components/card.tsx",
312
+ "props": [
313
+ {
314
+ "name": "heading",
315
+ "type": "undefined | string",
316
+ "displayType": "undefined | string",
317
+ "optional": true,
318
+ "scalar": true,
319
+ "description": "Heading rendered in the card chrome (the contract's CardEnvelope.title). NB: NOT `title` — `title` is a reserved IDL attr (see define.tsx RESERVED)."
320
+ },
321
+ {
322
+ "name": "description",
323
+ "type": "undefined | string",
324
+ "displayType": "undefined | string",
325
+ "optional": true,
326
+ "scalar": true,
327
+ "description": "Optional supporting text under the heading."
328
+ },
329
+ {
330
+ "name": "errorMessage",
331
+ "type": "undefined | string",
332
+ "displayType": "undefined | string",
333
+ "optional": true,
334
+ "scalar": true,
335
+ "description": "When set, the card renders its standard inline error state INSTEAD of body."
336
+ },
337
+ {
338
+ "name": "dense",
339
+ "type": "undefined | false | true",
340
+ "displayType": "undefined | false | true",
341
+ "optional": true,
342
+ "scalar": true,
343
+ "description": "Compact spacing for dense lists of cards."
344
+ },
345
+ {
346
+ "name": "headingId",
347
+ "type": "undefined | string",
348
+ "displayType": "undefined | string",
349
+ "optional": true,
350
+ "scalar": true,
351
+ "description": "Stable id for the heading (so composing cards can `aria-labelledby` it). Auto-generated when omitted."
352
+ }
353
+ ],
354
+ "callbacks": [
355
+ {
356
+ "name": "media",
357
+ "type": "undefined | null | number | false | true | Node | { length: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => JSX.Element; push: (...items: JSX.Element[]) => number; concat: { (...items: ConcatArray<JSX.Element>[]): JSX.Element[]; (...items: (JSX.Element | ConcatArray<JSX.Element>)[]): JSX.Element[]; }; join: (separator?: string) => string; reverse: () => JSX.Element[]; shift: () => JSX.Element; slice: (start?: number, end?: number) => JSX.Element[]; sort: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.ArrayElement; splice: { (start: number, deleteCount?: number): JSX.Element[]; (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; }; unshift: (...items: JSX.Element[]) => number; indexOf: (searchElement: JSX.Element, fromIndex?: number) => number; lastIndexOf: (searchElement: JSX.Element, fromIndex?: number) => number; every: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => void, thisArg?: any) => void; map: <U>(callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => U, thisArg?: any) => U[]; filter: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element[]; }; reduce: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; find: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findIndex: (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any) => number; fill: (value: JSX.Element, start?: number, end?: number) => JSX.ArrayElement; copyWithin: (target: number, start: number, end?: number) => JSX.ArrayElement; entries: () => ArrayIterator<[number, JSX.Element]>; keys: () => ArrayIterator<number>; values: () => ArrayIterator<JSX.Element>; includes: (searchElement: JSX.Element, fromIndex?: number) => boolean; flatMap: <U, This = undefined>(callback: (this: This, value: JSX.Element, index: number, array: JSX.Element[]) => U | readonly U[], thisArg?: This | undefined) => U[]; flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]; at: (index: number) => JSX.Element; findLast: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findLastIndex: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => number; toReversed: () => JSX.Element[]; toSorted: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.Element[]; toSpliced: { (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; (start: number, deleteCount?: number): JSX.Element[]; }; with: (index: number, value: JSX.Element) => JSX.Element[]; __@iterator@1392: () => ArrayIterator<JSX.Element>; __@unscopables@1394: { [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; findLast?: boolean | undefined; findLastIndex?: boolean | undefined; toReversed?: boolean | undefined; toSorted?: boolean | undefined; toSpliced?: boolean | undefined; with?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; } } | string & {}",
358
+ "displayType": "undefined | null | number | false | true | Node | { length: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => JSX.Element; push: (...items: JSX.Element[]) => number; concat: { (...items: ConcatArray<JSX.Element>[]): JSX.Element[]; (...items: (JSX.Element | ConcatArray<JSX.Element>)[]): JSX.Element[]; }; join: (separator?: string) => string; reverse: () => JSX.Element[]; shift: () => JSX.Element; slice: (start?: number, end?: number) => JSX.Element[]; sort: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.ArrayElement; splice: { (start: number, deleteCount?: number): JSX.Element[]; (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; }; unshift: (...items: JSX.Element[]) => number; indexOf: (searchElement: JSX.Element, fromIndex?: number) => number; lastIndexOf: (searchElement: JSX.Element, fromIndex?: number) => number; every: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => void, thisArg?: any) => void; map: <U>(callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => U, thisArg?: any) => U[]; filter: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element[]; }; reduce: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; find: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findIndex: (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any) => number; fill: (value: JSX.Element, start?: number, end?: number) => JSX.ArrayElement; copyWithin: (target: number, start: number, end?: number) => JSX.ArrayElement; entries: () => ArrayIterator<[number, JSX.Element]>; keys: () => ArrayIterator<number>; values: () => ArrayIterator<JSX.Element>; includes: (searchElement: JSX.Element, fromIndex?: number) => boolean; flatMap: <U, This = undefined>(callback: (this: This, value: JSX.Element, index: number, array: JSX.Element[]) => U | readonly U[], thisArg?: This | undefined) => U[]; flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]; at: (index: number) => JSX.Element; findLast: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findLastIndex: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => number; toReversed: () => JSX.Element[]; toSorted: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.Element[]; toSpliced: { (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; (start: number, deleteCount?: number): JSX.Element[]; }; with: (index: number, value: JSX.Element) => JSX.Element[]; __@iterator@1392: () => ArrayIterator<JSX.Element>; __@unscopables@1394: { [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; findLast?: boolean | undefined; findLastIndex?: boolean | undefined; toReversed?: boolean | undefined; toSorted?: boolean | undefined; toSpliced?: boolean | undefined; with?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; } } | string & {}",
359
+ "description": "Media region (image/icon) rendered above the heading."
360
+ },
361
+ {
362
+ "name": "actions",
363
+ "type": "undefined | null | number | false | true | Node | { length: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => JSX.Element; push: (...items: JSX.Element[]) => number; concat: { (...items: ConcatArray<JSX.Element>[]): JSX.Element[]; (...items: (JSX.Element | ConcatArray<JSX.Element>)[]): JSX.Element[]; }; join: (separator?: string) => string; reverse: () => JSX.Element[]; shift: () => JSX.Element; slice: (start?: number, end?: number) => JSX.Element[]; sort: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.ArrayElement; splice: { (start: number, deleteCount?: number): JSX.Element[]; (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; }; unshift: (...items: JSX.Element[]) => number; indexOf: (searchElement: JSX.Element, fromIndex?: number) => number; lastIndexOf: (searchElement: JSX.Element, fromIndex?: number) => number; every: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => void, thisArg?: any) => void; map: <U>(callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => U, thisArg?: any) => U[]; filter: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element[]; }; reduce: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; find: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findIndex: (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any) => number; fill: (value: JSX.Element, start?: number, end?: number) => JSX.ArrayElement; copyWithin: (target: number, start: number, end?: number) => JSX.ArrayElement; entries: () => ArrayIterator<[number, JSX.Element]>; keys: () => ArrayIterator<number>; values: () => ArrayIterator<JSX.Element>; includes: (searchElement: JSX.Element, fromIndex?: number) => boolean; flatMap: <U, This = undefined>(callback: (this: This, value: JSX.Element, index: number, array: JSX.Element[]) => U | readonly U[], thisArg?: This | undefined) => U[]; flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]; at: (index: number) => JSX.Element; findLast: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findLastIndex: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => number; toReversed: () => JSX.Element[]; toSorted: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.Element[]; toSpliced: { (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; (start: number, deleteCount?: number): JSX.Element[]; }; with: (index: number, value: JSX.Element) => JSX.Element[]; __@iterator@1392: () => ArrayIterator<JSX.Element>; __@unscopables@1394: { [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; findLast?: boolean | undefined; findLastIndex?: boolean | undefined; toReversed?: boolean | undefined; toSorted?: boolean | undefined; toSpliced?: boolean | undefined; with?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; } } | string & {}",
364
+ "displayType": "undefined | null | number | false | true | Node | { length: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => JSX.Element; push: (...items: JSX.Element[]) => number; concat: { (...items: ConcatArray<JSX.Element>[]): JSX.Element[]; (...items: (JSX.Element | ConcatArray<JSX.Element>)[]): JSX.Element[]; }; join: (separator?: string) => string; reverse: () => JSX.Element[]; shift: () => JSX.Element; slice: (start?: number, end?: number) => JSX.Element[]; sort: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.ArrayElement; splice: { (start: number, deleteCount?: number): JSX.Element[]; (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; }; unshift: (...items: JSX.Element[]) => number; indexOf: (searchElement: JSX.Element, fromIndex?: number) => number; lastIndexOf: (searchElement: JSX.Element, fromIndex?: number) => number; every: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => void, thisArg?: any) => void; map: <U>(callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => U, thisArg?: any) => U[]; filter: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element[]; }; reduce: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; find: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findIndex: (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any) => number; fill: (value: JSX.Element, start?: number, end?: number) => JSX.ArrayElement; copyWithin: (target: number, start: number, end?: number) => JSX.ArrayElement; entries: () => ArrayIterator<[number, JSX.Element]>; keys: () => ArrayIterator<number>; values: () => ArrayIterator<JSX.Element>; includes: (searchElement: JSX.Element, fromIndex?: number) => boolean; flatMap: <U, This = undefined>(callback: (this: This, value: JSX.Element, index: number, array: JSX.Element[]) => U | readonly U[], thisArg?: This | undefined) => U[]; flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]; at: (index: number) => JSX.Element; findLast: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findLastIndex: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => number; toReversed: () => JSX.Element[]; toSorted: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.Element[]; toSpliced: { (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; (start: number, deleteCount?: number): JSX.Element[]; }; with: (index: number, value: JSX.Element) => JSX.Element[]; __@iterator@1392: () => ArrayIterator<JSX.Element>; __@unscopables@1394: { [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; findLast?: boolean | undefined; findLastIndex?: boolean | undefined; toReversed?: boolean | undefined; toSorted?: boolean | undefined; toSpliced?: boolean | undefined; with?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; } } | string & {}",
365
+ "description": "Footer action region (buttons)."
366
+ }
367
+ ],
368
+ "slots": [],
369
+ "tokens": [],
370
+ "extendsHtmlAttributes": true,
371
+ "description": "`Card` — the shared presentational chrome every native card composes from: an optional media region, a heading + description, a body (default slot), an actions footer, and one consistent inline **error** state (the contract's \"never a broken/partial card\" rule). It is intentionally chrome-only: it reads no `CardContext` and emits no `CardEvent` — the cards that compose it (e.g. `kc-form`) own the contract interaction."
372
+ },
373
+ {
374
+ "name": "ChainOfThought",
375
+ "group": "Components",
376
+ "sourceFile": "src/components/chain-of-thought.tsx",
377
+ "props": [],
378
+ "callbacks": [],
379
+ "slots": [
380
+ {
381
+ "name": "children",
382
+ "description": ""
383
+ }
384
+ ],
385
+ "tokens": [],
386
+ "extendsHtmlAttributes": false,
387
+ "description": ""
388
+ },
389
+ {
390
+ "name": "ChainOfThoughtContent",
391
+ "group": "Components",
392
+ "sourceFile": "src/components/chain-of-thought.tsx",
393
+ "props": [],
394
+ "callbacks": [],
395
+ "slots": [
396
+ {
397
+ "name": "children",
398
+ "description": ""
399
+ }
400
+ ],
401
+ "tokens": [],
402
+ "extendsHtmlAttributes": false,
403
+ "description": ""
404
+ },
405
+ {
406
+ "name": "ChainOfThoughtItem",
407
+ "group": "Components",
408
+ "sourceFile": "src/components/chain-of-thought.tsx",
409
+ "props": [],
410
+ "callbacks": [],
411
+ "slots": [
412
+ {
413
+ "name": "children",
414
+ "description": ""
415
+ }
416
+ ],
417
+ "tokens": [],
418
+ "extendsHtmlAttributes": true,
419
+ "description": ""
420
+ },
421
+ {
422
+ "name": "ChainOfThoughtStep",
423
+ "group": "Components",
424
+ "sourceFile": "src/components/chain-of-thought.tsx",
425
+ "props": [
426
+ {
427
+ "name": "isLast",
428
+ "type": "undefined | false | true",
429
+ "displayType": "undefined | false | true",
430
+ "optional": true,
431
+ "scalar": true,
432
+ "description": "",
433
+ "default": "false"
434
+ }
435
+ ],
436
+ "callbacks": [],
437
+ "slots": [
438
+ {
439
+ "name": "children",
440
+ "description": ""
441
+ }
442
+ ],
443
+ "tokens": [],
444
+ "extendsHtmlAttributes": false,
445
+ "description": ""
446
+ },
447
+ {
448
+ "name": "ChainOfThoughtTrigger",
449
+ "group": "Components",
450
+ "sourceFile": "src/components/chain-of-thought.tsx",
451
+ "props": [
452
+ {
453
+ "name": "swapIconOnHover",
454
+ "type": "undefined | false | true",
455
+ "displayType": "undefined | false | true",
456
+ "optional": true,
457
+ "scalar": true,
458
+ "description": "",
459
+ "default": "true"
460
+ }
461
+ ],
462
+ "callbacks": [
463
+ {
464
+ "name": "leftIcon",
465
+ "type": "undefined | null | number | false | true | Node | { length: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => JSX.Element; push: (...items: JSX.Element[]) => number; concat: { (...items: ConcatArray<JSX.Element>[]): JSX.Element[]; (...items: (JSX.Element | ConcatArray<JSX.Element>)[]): JSX.Element[]; }; join: (separator?: string) => string; reverse: () => JSX.Element[]; shift: () => JSX.Element; slice: (start?: number, end?: number) => JSX.Element[]; sort: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.ArrayElement; splice: { (start: number, deleteCount?: number): JSX.Element[]; (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; }; unshift: (...items: JSX.Element[]) => number; indexOf: (searchElement: JSX.Element, fromIndex?: number) => number; lastIndexOf: (searchElement: JSX.Element, fromIndex?: number) => number; every: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => void, thisArg?: any) => void; map: <U>(callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => U, thisArg?: any) => U[]; filter: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element[]; }; reduce: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; find: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findIndex: (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any) => number; fill: (value: JSX.Element, start?: number, end?: number) => JSX.ArrayElement; copyWithin: (target: number, start: number, end?: number) => JSX.ArrayElement; entries: () => ArrayIterator<[number, JSX.Element]>; keys: () => ArrayIterator<number>; values: () => ArrayIterator<JSX.Element>; includes: (searchElement: JSX.Element, fromIndex?: number) => boolean; flatMap: <U, This = undefined>(callback: (this: This, value: JSX.Element, index: number, array: JSX.Element[]) => U | readonly U[], thisArg?: This | undefined) => U[]; flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]; at: (index: number) => JSX.Element; findLast: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findLastIndex: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => number; toReversed: () => JSX.Element[]; toSorted: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.Element[]; toSpliced: { (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; (start: number, deleteCount?: number): JSX.Element[]; }; with: (index: number, value: JSX.Element) => JSX.Element[]; __@iterator@1392: () => ArrayIterator<JSX.Element>; __@unscopables@1394: { [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; findLast?: boolean | undefined; findLastIndex?: boolean | undefined; toReversed?: boolean | undefined; toSorted?: boolean | undefined; toSpliced?: boolean | undefined; with?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; } } | string & {}",
466
+ "displayType": "undefined | null | number | false | true | Node | { length: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => JSX.Element; push: (...items: JSX.Element[]) => number; concat: { (...items: ConcatArray<JSX.Element>[]): JSX.Element[]; (...items: (JSX.Element | ConcatArray<JSX.Element>)[]): JSX.Element[]; }; join: (separator?: string) => string; reverse: () => JSX.Element[]; shift: () => JSX.Element; slice: (start?: number, end?: number) => JSX.Element[]; sort: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.ArrayElement; splice: { (start: number, deleteCount?: number): JSX.Element[]; (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; }; unshift: (...items: JSX.Element[]) => number; indexOf: (searchElement: JSX.Element, fromIndex?: number) => number; lastIndexOf: (searchElement: JSX.Element, fromIndex?: number) => number; every: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => void, thisArg?: any) => void; map: <U>(callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => U, thisArg?: any) => U[]; filter: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element[]; }; reduce: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; find: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findIndex: (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any) => number; fill: (value: JSX.Element, start?: number, end?: number) => JSX.ArrayElement; copyWithin: (target: number, start: number, end?: number) => JSX.ArrayElement; entries: () => ArrayIterator<[number, JSX.Element]>; keys: () => ArrayIterator<number>; values: () => ArrayIterator<JSX.Element>; includes: (searchElement: JSX.Element, fromIndex?: number) => boolean; flatMap: <U, This = undefined>(callback: (this: This, value: JSX.Element, index: number, array: JSX.Element[]) => U | readonly U[], thisArg?: This | undefined) => U[]; flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]; at: (index: number) => JSX.Element; findLast: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findLastIndex: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => number; toReversed: () => JSX.Element[]; toSorted: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.Element[]; toSpliced: { (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; (start: number, deleteCount?: number): JSX.Element[]; }; with: (index: number, value: JSX.Element) => JSX.Element[]; __@iterator@1392: () => ArrayIterator<JSX.Element>; __@unscopables@1394: { [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; findLast?: boolean | undefined; findLastIndex?: boolean | undefined; toReversed?: boolean | undefined; toSorted?: boolean | undefined; toSpliced?: boolean | undefined; with?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; } } | string & {}",
467
+ "description": ""
468
+ }
469
+ ],
470
+ "slots": [
471
+ {
472
+ "name": "children",
473
+ "description": ""
474
+ }
475
+ ],
476
+ "tokens": [],
477
+ "extendsHtmlAttributes": false,
478
+ "description": ""
479
+ },
480
+ {
481
+ "name": "ChatContainer",
482
+ "group": "Components",
483
+ "sourceFile": "src/components/chat-container.tsx",
484
+ "props": [],
485
+ "callbacks": [],
486
+ "slots": [
487
+ {
488
+ "name": "children",
489
+ "description": ""
490
+ }
491
+ ],
492
+ "tokens": [],
493
+ "extendsHtmlAttributes": true,
494
+ "description": ""
495
+ },
496
+ {
497
+ "name": "ChatContainerContent",
498
+ "group": "Components",
499
+ "sourceFile": "src/components/chat-container.tsx",
500
+ "props": [],
501
+ "callbacks": [],
502
+ "slots": [
503
+ {
504
+ "name": "children",
505
+ "description": ""
506
+ }
507
+ ],
508
+ "tokens": [],
509
+ "extendsHtmlAttributes": true,
510
+ "description": ""
511
+ },
512
+ {
513
+ "name": "ChatContainerRoot",
514
+ "group": "Components",
515
+ "sourceFile": "src/components/chat-container.tsx",
516
+ "props": [],
517
+ "callbacks": [],
518
+ "slots": [
519
+ {
520
+ "name": "children",
521
+ "description": ""
522
+ }
523
+ ],
524
+ "tokens": [],
525
+ "extendsHtmlAttributes": true,
526
+ "description": ""
527
+ },
528
+ {
529
+ "name": "ChatContainerScrollAnchor",
530
+ "group": "Components",
531
+ "sourceFile": "src/components/chat-container.tsx",
532
+ "props": [],
533
+ "callbacks": [
534
+ {
535
+ "name": "ref",
536
+ "type": "undefined | HTMLDivElement | (el: HTMLDivElement) => void",
537
+ "displayType": "undefined | HTMLDivElement | (el: HTMLDivElement) => void",
538
+ "description": ""
539
+ }
540
+ ],
541
+ "slots": [],
542
+ "tokens": [],
543
+ "extendsHtmlAttributes": true,
544
+ "description": ""
545
+ },
546
+ {
547
+ "name": "ChatScopePicker",
548
+ "group": "Components",
549
+ "sourceFile": "src/components/chat-scope-picker.tsx",
550
+ "props": [
551
+ {
552
+ "name": "currentLabel",
553
+ "type": "string",
554
+ "displayType": "string",
555
+ "optional": false,
556
+ "scalar": true,
557
+ "description": ""
558
+ },
559
+ {
560
+ "name": "availableAuthors",
561
+ "type": "undefined | string[]",
562
+ "displayType": "undefined | string[]",
563
+ "optional": true,
564
+ "scalar": false,
565
+ "description": ""
566
+ },
567
+ {
568
+ "name": "availableTags",
569
+ "type": "undefined | string[]",
570
+ "displayType": "undefined | string[]",
571
+ "optional": true,
572
+ "scalar": false,
573
+ "description": ""
574
+ }
575
+ ],
576
+ "callbacks": [
577
+ {
578
+ "name": "onScopeChange",
579
+ "type": "(filters: SearchFilters | undefined) => void",
580
+ "displayType": "(filters: SearchFilters | undefined) => void",
581
+ "description": ""
582
+ }
583
+ ],
584
+ "slots": [],
585
+ "tokens": [],
586
+ "extendsHtmlAttributes": false,
587
+ "description": ""
588
+ },
589
+ {
590
+ "name": "Checkpoint",
591
+ "group": "Components",
592
+ "sourceFile": "src/components/checkpoint.tsx",
593
+ "props": [],
594
+ "callbacks": [],
595
+ "slots": [
596
+ {
597
+ "name": "children",
598
+ "description": ""
599
+ }
600
+ ],
601
+ "tokens": [],
602
+ "extendsHtmlAttributes": true,
603
+ "description": ""
604
+ },
605
+ {
606
+ "name": "CheckpointIcon",
607
+ "group": "Components",
608
+ "sourceFile": "src/components/checkpoint.tsx",
609
+ "props": [],
610
+ "callbacks": [],
611
+ "slots": [
612
+ {
613
+ "name": "children",
614
+ "description": ""
615
+ }
616
+ ],
617
+ "tokens": [],
618
+ "extendsHtmlAttributes": false,
619
+ "description": ""
620
+ },
621
+ {
622
+ "name": "CheckpointTrigger",
623
+ "group": "Components",
624
+ "sourceFile": "src/components/checkpoint.tsx",
625
+ "props": [
626
+ {
627
+ "name": "tooltip",
628
+ "type": "undefined | string",
629
+ "displayType": "undefined | string",
630
+ "optional": true,
631
+ "scalar": true,
632
+ "description": ""
633
+ },
634
+ {
635
+ "name": "aria-label",
636
+ "type": "undefined | string",
637
+ "displayType": "undefined | string",
638
+ "optional": true,
639
+ "scalar": true,
640
+ "description": "Accessible name for the button — required when it has no visible text (icon-only)."
641
+ },
642
+ {
643
+ "name": "variant",
644
+ "type": "undefined | \"default\" | \"ghost\" | \"outline\"",
645
+ "displayType": "undefined | \"default\" | \"ghost\" | \"outline\"",
646
+ "optional": true,
647
+ "scalar": true,
648
+ "description": "",
649
+ "default": "'ghost'"
650
+ },
651
+ {
652
+ "name": "size",
653
+ "type": "undefined | \"sm\" | \"md\" | \"lg\" | \"icon\" | \"icon-sm\"",
654
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\" | \"icon\" | \"icon-sm\"",
655
+ "optional": true,
656
+ "scalar": true,
657
+ "description": "",
658
+ "default": "'sm'"
659
+ }
660
+ ],
661
+ "callbacks": [
662
+ {
663
+ "name": "onClick",
664
+ "type": "undefined | () => void",
665
+ "displayType": "undefined | () => void",
666
+ "description": ""
667
+ }
668
+ ],
669
+ "slots": [
670
+ {
671
+ "name": "children",
672
+ "description": ""
673
+ }
674
+ ],
675
+ "tokens": [],
676
+ "extendsHtmlAttributes": false,
677
+ "description": ""
678
+ },
679
+ {
680
+ "name": "CircularLoader",
681
+ "group": "Components",
682
+ "sourceFile": "src/components/loader.tsx",
683
+ "props": [
684
+ {
685
+ "name": "size",
686
+ "type": "undefined | \"sm\" | \"md\" | \"lg\"",
687
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\"",
688
+ "optional": true,
689
+ "scalar": true,
690
+ "description": "",
691
+ "default": "'md'"
692
+ }
693
+ ],
694
+ "callbacks": [],
695
+ "slots": [],
696
+ "tokens": [],
697
+ "extendsHtmlAttributes": false,
698
+ "description": ""
699
+ },
700
+ {
701
+ "name": "ClassicLoader",
702
+ "group": "Components",
703
+ "sourceFile": "src/components/loader.tsx",
704
+ "props": [
705
+ {
706
+ "name": "size",
707
+ "type": "undefined | \"sm\" | \"md\" | \"lg\"",
708
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\"",
709
+ "optional": true,
710
+ "scalar": true,
711
+ "description": "",
712
+ "default": "'md'"
713
+ }
714
+ ],
715
+ "callbacks": [],
716
+ "slots": [],
717
+ "tokens": [],
718
+ "extendsHtmlAttributes": false,
719
+ "description": ""
720
+ },
721
+ {
722
+ "name": "CodeBlock",
723
+ "group": "Components",
724
+ "sourceFile": "src/components/code-block.tsx",
725
+ "props": [],
726
+ "callbacks": [],
727
+ "slots": [
728
+ {
729
+ "name": "children",
730
+ "description": ""
731
+ }
732
+ ],
733
+ "tokens": [
734
+ "--color-code-foreground"
735
+ ],
736
+ "extendsHtmlAttributes": true,
737
+ "description": ""
738
+ },
739
+ {
740
+ "name": "CodeBlockCode",
741
+ "group": "Components",
742
+ "sourceFile": "src/components/code-block.tsx",
743
+ "props": [
744
+ {
745
+ "name": "code",
746
+ "type": "string",
747
+ "displayType": "string",
748
+ "optional": false,
749
+ "scalar": true,
750
+ "description": ""
751
+ },
752
+ {
753
+ "name": "language",
754
+ "type": "undefined | string",
755
+ "displayType": "undefined | string",
756
+ "optional": true,
757
+ "scalar": true,
758
+ "description": "",
759
+ "default": "'tsx'"
760
+ },
761
+ {
762
+ "name": "theme",
763
+ "type": "undefined | string",
764
+ "displayType": "undefined | string",
765
+ "optional": true,
766
+ "scalar": true,
767
+ "description": ""
768
+ }
769
+ ],
770
+ "callbacks": [],
771
+ "slots": [],
772
+ "tokens": [
773
+ "--color-code-foreground"
774
+ ],
775
+ "extendsHtmlAttributes": true,
776
+ "description": ""
777
+ },
778
+ {
779
+ "name": "CodeBlockGroup",
780
+ "group": "Components",
781
+ "sourceFile": "src/components/code-block.tsx",
782
+ "props": [],
783
+ "callbacks": [],
784
+ "slots": [
785
+ {
786
+ "name": "children",
787
+ "description": ""
788
+ }
789
+ ],
790
+ "tokens": [],
791
+ "extendsHtmlAttributes": true,
792
+ "description": ""
793
+ },
794
+ {
795
+ "name": "ConfirmCard",
796
+ "group": "Components",
797
+ "sourceFile": "src/components/confirm-card.tsx",
798
+ "props": [
799
+ {
800
+ "name": "data",
801
+ "type": "undefined | { heading?: undefined | string; body?: undefined | string; tone?: undefined | \"default\" | \"warning\" | \"danger\"; actions: { id: string; label: string; style?: undefined | \"default\" | \"primary\" | \"destructive\"; payload?: unknown; default?: undefined | false | true }[]; dismissible?: undefined | false | true }",
802
+ "displayType": "undefined | { heading?: undefined | string; body?: undefined | string; tone?: undefined | \"default\" | \"warning\" | \"danger\"; actions: { id: string; label: string; style?: undefined | \"default\" | \"primary\" | \"destructive\"; payload?: unknown; default?: undefined | false | true }[]; dismissible?: undefined | false | true }",
803
+ "optional": true,
804
+ "scalar": false,
805
+ "description": "The confirm definition (CardEnvelope.data)."
806
+ },
807
+ {
808
+ "name": "cardId",
809
+ "type": "undefined | string",
810
+ "displayType": "undefined | string",
811
+ "optional": true,
812
+ "scalar": true,
813
+ "description": "The card id used to correlate every emitted CardEvent."
814
+ },
815
+ {
816
+ "name": "heading",
817
+ "type": "undefined | string",
818
+ "displayType": "undefined | string",
819
+ "optional": true,
820
+ "scalar": true,
821
+ "description": "The envelope title rendered in the card chrome."
822
+ },
823
+ {
824
+ "name": "hostElement",
825
+ "type": "undefined | HTMLElement",
826
+ "displayType": "undefined | HTMLElement",
827
+ "optional": true,
828
+ "scalar": false,
829
+ "description": "The custom-element host node, for the bubbling `kc-card` fallback emit."
830
+ },
831
+ {
832
+ "name": "autofocus",
833
+ "type": "undefined | false | true",
834
+ "displayType": "undefined | false | true",
835
+ "optional": true,
836
+ "scalar": true,
837
+ "description": "Focus the default action on mount. Default OFF (no focus-stealing mid-stream)."
838
+ }
839
+ ],
840
+ "callbacks": [
841
+ {
842
+ "name": "host",
843
+ "type": "undefined | { context: () => import(\"/home/runner/work/chat/chat/src/index\").CardContext; emit: (event: CardEvent) => void }",
844
+ "displayType": "undefined | { context: () => import(\"/home/runner/work/chat/chat/src/index\").CardContext; emit: (event: CardEvent) => void }",
845
+ "description": "Optional explicit CardHost (otherwise read from a CardProvider, otherwise the bubbling `kc-card` CustomEvent off `hostElement`)."
846
+ }
847
+ ],
848
+ "slots": [],
849
+ "tokens": [],
850
+ "extendsHtmlAttributes": false,
851
+ "description": "`ConfirmCard` — a named-intent approval card. Renders a title + body + a small set of action buttons inside `Card` chrome. Activating an action emits the Card contract's `action` verb (`{ kind:'action', cardId, action, payload }`) and resolves the card (other actions disabled, the chosen one marked) so the same approval can't double-fire. Emits `ready` on mount, `dismiss` for the optional close affordance, and `error` for an unusable definition (inline error state)."
852
+ },
853
+ {
854
+ "name": "Context",
855
+ "group": "Components",
856
+ "sourceFile": "src/components/context.tsx",
857
+ "props": [
858
+ {
859
+ "name": "usedTokens",
860
+ "type": "number",
861
+ "displayType": "number",
862
+ "optional": false,
863
+ "scalar": true,
864
+ "description": ""
865
+ },
866
+ {
867
+ "name": "maxTokens",
868
+ "type": "number",
869
+ "displayType": "number",
870
+ "optional": false,
871
+ "scalar": true,
872
+ "description": ""
873
+ },
874
+ {
875
+ "name": "inputTokens",
876
+ "type": "undefined | number",
877
+ "displayType": "undefined | number",
878
+ "optional": true,
879
+ "scalar": true,
880
+ "description": ""
881
+ },
882
+ {
883
+ "name": "outputTokens",
884
+ "type": "undefined | number",
885
+ "displayType": "undefined | number",
886
+ "optional": true,
887
+ "scalar": true,
888
+ "description": ""
889
+ },
890
+ {
891
+ "name": "reasoningTokens",
892
+ "type": "undefined | number",
893
+ "displayType": "undefined | number",
894
+ "optional": true,
895
+ "scalar": true,
896
+ "description": ""
897
+ },
898
+ {
899
+ "name": "cacheTokens",
900
+ "type": "undefined | number",
901
+ "displayType": "undefined | number",
902
+ "optional": true,
903
+ "scalar": true,
904
+ "description": ""
905
+ },
906
+ {
907
+ "name": "estimatedCost",
908
+ "type": "undefined | number",
909
+ "displayType": "undefined | number",
910
+ "optional": true,
911
+ "scalar": true,
912
+ "description": ""
913
+ }
914
+ ],
915
+ "callbacks": [],
916
+ "slots": [
917
+ {
918
+ "name": "children",
919
+ "description": ""
920
+ }
921
+ ],
922
+ "tokens": [],
923
+ "extendsHtmlAttributes": false,
924
+ "description": ""
925
+ },
926
+ {
927
+ "name": "ContextCacheUsage",
928
+ "group": "Components",
929
+ "sourceFile": "src/components/context.tsx",
930
+ "props": [],
931
+ "callbacks": [],
932
+ "slots": [
933
+ {
934
+ "name": "children",
935
+ "description": ""
936
+ }
937
+ ],
938
+ "tokens": [],
939
+ "extendsHtmlAttributes": false,
940
+ "description": ""
941
+ },
942
+ {
943
+ "name": "ContextContent",
944
+ "group": "Components",
945
+ "sourceFile": "src/components/context.tsx",
946
+ "props": [],
947
+ "callbacks": [],
948
+ "slots": [
949
+ {
950
+ "name": "children",
951
+ "description": ""
952
+ }
953
+ ],
954
+ "tokens": [],
955
+ "extendsHtmlAttributes": false,
956
+ "description": ""
957
+ },
958
+ {
959
+ "name": "ContextContentBody",
960
+ "group": "Components",
961
+ "sourceFile": "src/components/context.tsx",
962
+ "props": [],
963
+ "callbacks": [],
964
+ "slots": [
965
+ {
966
+ "name": "children",
967
+ "description": ""
968
+ }
969
+ ],
970
+ "tokens": [],
971
+ "extendsHtmlAttributes": false,
972
+ "description": ""
973
+ },
974
+ {
975
+ "name": "ContextContentFooter",
976
+ "group": "Components",
977
+ "sourceFile": "src/components/context.tsx",
978
+ "props": [],
979
+ "callbacks": [],
980
+ "slots": [
981
+ {
982
+ "name": "children",
983
+ "description": ""
984
+ }
985
+ ],
986
+ "tokens": [],
987
+ "extendsHtmlAttributes": false,
988
+ "description": ""
989
+ },
990
+ {
991
+ "name": "ContextContentHeader",
992
+ "group": "Components",
993
+ "sourceFile": "src/components/context.tsx",
994
+ "props": [],
995
+ "callbacks": [],
996
+ "slots": [
997
+ {
998
+ "name": "children",
999
+ "description": ""
1000
+ }
1001
+ ],
1002
+ "tokens": [],
1003
+ "extendsHtmlAttributes": false,
1004
+ "description": ""
1005
+ },
1006
+ {
1007
+ "name": "ContextInputUsage",
1008
+ "group": "Components",
1009
+ "sourceFile": "src/components/context.tsx",
1010
+ "props": [],
1011
+ "callbacks": [],
1012
+ "slots": [
1013
+ {
1014
+ "name": "children",
1015
+ "description": ""
1016
+ }
1017
+ ],
1018
+ "tokens": [],
1019
+ "extendsHtmlAttributes": false,
1020
+ "description": ""
1021
+ },
1022
+ {
1023
+ "name": "ContextOutputUsage",
1024
+ "group": "Components",
1025
+ "sourceFile": "src/components/context.tsx",
1026
+ "props": [],
1027
+ "callbacks": [],
1028
+ "slots": [
1029
+ {
1030
+ "name": "children",
1031
+ "description": ""
1032
+ }
1033
+ ],
1034
+ "tokens": [],
1035
+ "extendsHtmlAttributes": false,
1036
+ "description": ""
1037
+ },
1038
+ {
1039
+ "name": "ContextReasoningUsage",
1040
+ "group": "Components",
1041
+ "sourceFile": "src/components/context.tsx",
1042
+ "props": [],
1043
+ "callbacks": [],
1044
+ "slots": [
1045
+ {
1046
+ "name": "children",
1047
+ "description": ""
1048
+ }
1049
+ ],
1050
+ "tokens": [],
1051
+ "extendsHtmlAttributes": false,
1052
+ "description": ""
1053
+ },
1054
+ {
1055
+ "name": "ContextTrigger",
1056
+ "group": "Components",
1057
+ "sourceFile": "src/components/context.tsx",
1058
+ "props": [],
1059
+ "callbacks": [],
1060
+ "slots": [
1061
+ {
1062
+ "name": "children",
1063
+ "description": ""
1064
+ }
1065
+ ],
1066
+ "tokens": [],
1067
+ "extendsHtmlAttributes": false,
1068
+ "description": ""
1069
+ },
1070
+ {
1071
+ "name": "ConversationItem",
1072
+ "group": "Components",
1073
+ "sourceFile": "src/components/conversation-item.tsx",
1074
+ "props": [
1075
+ {
1076
+ "name": "conversation",
1077
+ "type": "{ id: string; title: string; groupId?: undefined | string; scope: { type: \"document\" | \"collection\"; documentId?: undefined | string; filters?: undefined | { tags?: undefined | string[]; authors?: undefined | string[]; contentType?: undefined | \"transcript\" | \"markdown\"; dateRange?: undefined | { from: string; to: string } } }; messageCount: number; lastMessageAt: string; updatedAt: string }",
1078
+ "displayType": "{ id: string; title: string; groupId?: undefined | string; scope: { type: \"document\" | \"collection\"; documentId?: undefined | string; filters?: undefined | { tags?: undefined | string[]; authors?: undefined | string[]; contentType?: undefined | \"transcript\" | \"markdown\"; dateRange?: undefined | { from: string; to: string } } }; messageCount: number; lastMessageAt: string; updatedAt: string }",
1079
+ "optional": false,
1080
+ "scalar": false,
1081
+ "description": ""
1082
+ },
1083
+ {
1084
+ "name": "isActive",
1085
+ "type": "false | true",
1086
+ "displayType": "false | true",
1087
+ "optional": false,
1088
+ "scalar": true,
1089
+ "description": ""
1090
+ }
1091
+ ],
1092
+ "callbacks": [
1093
+ {
1094
+ "name": "onSelect",
1095
+ "type": "(id: string) => void",
1096
+ "displayType": "(id: string) => void",
1097
+ "description": ""
1098
+ }
1099
+ ],
1100
+ "slots": [],
1101
+ "tokens": [
1102
+ "--color-sidebar"
1103
+ ],
1104
+ "extendsHtmlAttributes": false,
1105
+ "description": ""
1106
+ },
1107
+ {
1108
+ "name": "ConversationList",
1109
+ "group": "Components",
1110
+ "sourceFile": "src/components/conversation-list.tsx",
1111
+ "props": [
1112
+ {
1113
+ "name": "groups",
1114
+ "type": "{ id: string; userId?: undefined | string; teamId?: undefined | string; name: string; sortOrder: number; createdAt: string }[]",
1115
+ "displayType": "ConversationGroup[]",
1116
+ "optional": false,
1117
+ "scalar": false,
1118
+ "description": ""
1119
+ },
1120
+ {
1121
+ "name": "conversations",
1122
+ "type": "{ id: string; title: string; groupId?: undefined | string; scope: { type: \"document\" | \"collection\"; documentId?: undefined | string; filters?: undefined | { tags?: undefined | string[]; authors?: undefined | string[]; contentType?: undefined | \"transcript\" | \"markdown\"; dateRange?: undefined | { from: string; to: string } } }; messageCount: number; lastMessageAt: string; updatedAt: string }[]",
1123
+ "displayType": "ConversationSummary[]",
1124
+ "optional": false,
1125
+ "scalar": false,
1126
+ "description": ""
1127
+ },
1128
+ {
1129
+ "name": "activeId",
1130
+ "type": "undefined | string",
1131
+ "displayType": "undefined | string",
1132
+ "optional": true,
1133
+ "scalar": true,
1134
+ "description": ""
1135
+ }
1136
+ ],
1137
+ "callbacks": [
1138
+ {
1139
+ "name": "onSelect",
1140
+ "type": "(id: string) => void",
1141
+ "displayType": "(id: string) => void",
1142
+ "description": ""
1143
+ },
1144
+ {
1145
+ "name": "onNewChat",
1146
+ "type": "() => void",
1147
+ "displayType": "() => void",
1148
+ "description": ""
1149
+ },
1150
+ {
1151
+ "name": "onToggleSidebar",
1152
+ "type": "undefined | () => void",
1153
+ "displayType": "undefined | () => void",
1154
+ "description": ""
1155
+ }
1156
+ ],
1157
+ "slots": [],
1158
+ "tokens": [
1159
+ "--color-sidebar",
1160
+ "--color-scrollbar-thumb",
1161
+ "--color-scrollbar-thumb-hover"
1162
+ ],
1163
+ "extendsHtmlAttributes": false,
1164
+ "description": ""
1165
+ },
1166
+ {
1167
+ "name": "DotsLoader",
1168
+ "group": "Components",
1169
+ "sourceFile": "src/components/loader.tsx",
1170
+ "props": [
1171
+ {
1172
+ "name": "size",
1173
+ "type": "undefined | \"sm\" | \"md\" | \"lg\"",
1174
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\"",
1175
+ "optional": true,
1176
+ "scalar": true,
1177
+ "description": "",
1178
+ "default": "'md'"
1179
+ }
1180
+ ],
1181
+ "callbacks": [],
1182
+ "slots": [],
1183
+ "tokens": [],
1184
+ "extendsHtmlAttributes": false,
1185
+ "description": ""
1186
+ },
1187
+ {
1188
+ "name": "Embed",
1189
+ "group": "Components",
1190
+ "sourceFile": "src/components/embed.tsx",
1191
+ "props": [
1192
+ {
1193
+ "name": "cardId",
1194
+ "type": "string",
1195
+ "displayType": "string",
1196
+ "optional": false,
1197
+ "scalar": true,
1198
+ "description": "The card id correlating every emitted event."
1199
+ },
1200
+ {
1201
+ "name": "data",
1202
+ "type": "{ provider: \"youtube\" | \"vimeo\" | \"generic\"; id?: undefined | string; url?: undefined | string; title?: undefined | string; poster?: undefined | string; start?: undefined | number; aspectRatio?: undefined | \"16:9\" | \"4:3\" | \"1:1\" | \"9:16\" }",
1203
+ "displayType": "{ provider: \"youtube\" | \"vimeo\" | \"generic\"; id?: undefined | string; url?: undefined | string; title?: undefined | string; poster?: undefined | string; start?: undefined | number; aspectRatio?: undefined | \"16:9\" | \"4:3\" | \"1:1\" | \"9:16\" }",
1204
+ "optional": false,
1205
+ "scalar": false,
1206
+ "description": "The embed payload (data-down)."
1207
+ }
1208
+ ],
1209
+ "callbacks": [
1210
+ {
1211
+ "name": "onEmit",
1212
+ "type": "undefined | (event: CardEvent) => void",
1213
+ "displayType": "undefined | (event: CardEvent) => void",
1214
+ "description": "Emit a contract CardEvent up (host routes it)."
1215
+ }
1216
+ ],
1217
+ "slots": [],
1218
+ "tokens": [],
1219
+ "extendsHtmlAttributes": true,
1220
+ "description": "`Embed` — a privacy-first lazy media facade. Initial render is a poster + a play button: NO provider iframe, NO provider JS, NO cookies until the user opts in. On play it swaps in the provider `<iframe>` (youtube-nocookie / vimeo dnt / allowlisted generic). A persistent \"Open on {provider}\" affordance routes the contract `open` verb so a blocked embed is never a dead end. The only verbs it emits are lifecycle `ready`, `open`, and failure `error`."
1221
+ },
1222
+ {
1223
+ "name": "Empty",
1224
+ "group": "Components",
1225
+ "sourceFile": "src/components/empty.tsx",
1226
+ "props": [],
1227
+ "callbacks": [],
1228
+ "slots": [
1229
+ {
1230
+ "name": "children",
1231
+ "description": ""
1232
+ }
1233
+ ],
1234
+ "tokens": [],
1235
+ "extendsHtmlAttributes": true,
1236
+ "description": ""
1237
+ },
1238
+ {
1239
+ "name": "EmptyContent",
1240
+ "group": "Components",
1241
+ "sourceFile": "src/components/empty.tsx",
1242
+ "props": [],
1243
+ "callbacks": [],
1244
+ "slots": [
1245
+ {
1246
+ "name": "children",
1247
+ "description": ""
1248
+ }
1249
+ ],
1250
+ "tokens": [],
1251
+ "extendsHtmlAttributes": true,
1252
+ "description": ""
1253
+ },
1254
+ {
1255
+ "name": "EmptyDescription",
1256
+ "group": "Components",
1257
+ "sourceFile": "src/components/empty.tsx",
1258
+ "props": [],
1259
+ "callbacks": [],
1260
+ "slots": [
1261
+ {
1262
+ "name": "children",
1263
+ "description": ""
1264
+ }
1265
+ ],
1266
+ "tokens": [],
1267
+ "extendsHtmlAttributes": true,
1268
+ "description": ""
1269
+ },
1270
+ {
1271
+ "name": "EmptyHeader",
1272
+ "group": "Components",
1273
+ "sourceFile": "src/components/empty.tsx",
1274
+ "props": [],
1275
+ "callbacks": [],
1276
+ "slots": [
1277
+ {
1278
+ "name": "children",
1279
+ "description": ""
1280
+ }
1281
+ ],
1282
+ "tokens": [],
1283
+ "extendsHtmlAttributes": true,
1284
+ "description": ""
1285
+ },
1286
+ {
1287
+ "name": "EmptyMedia",
1288
+ "group": "Components",
1289
+ "sourceFile": "src/components/empty.tsx",
1290
+ "props": [
1291
+ {
1292
+ "name": "variant",
1293
+ "type": "undefined | null | \"default\" | \"icon\"",
1294
+ "displayType": "undefined | null | \"default\" | \"icon\"",
1295
+ "optional": true,
1296
+ "scalar": false,
1297
+ "description": "",
1298
+ "default": "'default'"
1299
+ }
1300
+ ],
1301
+ "callbacks": [],
1302
+ "slots": [
1303
+ {
1304
+ "name": "children",
1305
+ "description": ""
1306
+ }
1307
+ ],
1308
+ "tokens": [],
1309
+ "extendsHtmlAttributes": true,
1310
+ "description": ""
1311
+ },
1312
+ {
1313
+ "name": "EmptyTitle",
1314
+ "group": "Components",
1315
+ "sourceFile": "src/components/empty.tsx",
1316
+ "props": [],
1317
+ "callbacks": [],
1318
+ "slots": [
1319
+ {
1320
+ "name": "children",
1321
+ "description": ""
1322
+ }
1323
+ ],
1324
+ "tokens": [],
1325
+ "extendsHtmlAttributes": true,
1326
+ "description": ""
1327
+ },
1328
+ {
1329
+ "name": "FeedbackBar",
1330
+ "group": "Components",
1331
+ "sourceFile": "src/components/feedback-bar.tsx",
1332
+ "props": [
1333
+ {
1334
+ "name": "title",
1335
+ "type": "undefined | string",
1336
+ "displayType": "undefined | string",
1337
+ "optional": true,
1338
+ "scalar": true,
1339
+ "description": ""
1340
+ }
1341
+ ],
1342
+ "callbacks": [
1343
+ {
1344
+ "name": "icon",
1345
+ "type": "undefined | null | number | false | true | Node | { length: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => JSX.Element; push: (...items: JSX.Element[]) => number; concat: { (...items: ConcatArray<JSX.Element>[]): JSX.Element[]; (...items: (JSX.Element | ConcatArray<JSX.Element>)[]): JSX.Element[]; }; join: (separator?: string) => string; reverse: () => JSX.Element[]; shift: () => JSX.Element; slice: (start?: number, end?: number) => JSX.Element[]; sort: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.ArrayElement; splice: { (start: number, deleteCount?: number): JSX.Element[]; (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; }; unshift: (...items: JSX.Element[]) => number; indexOf: (searchElement: JSX.Element, fromIndex?: number) => number; lastIndexOf: (searchElement: JSX.Element, fromIndex?: number) => number; every: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => void, thisArg?: any) => void; map: <U>(callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => U, thisArg?: any) => U[]; filter: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element[]; }; reduce: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; find: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findIndex: (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any) => number; fill: (value: JSX.Element, start?: number, end?: number) => JSX.ArrayElement; copyWithin: (target: number, start: number, end?: number) => JSX.ArrayElement; entries: () => ArrayIterator<[number, JSX.Element]>; keys: () => ArrayIterator<number>; values: () => ArrayIterator<JSX.Element>; includes: (searchElement: JSX.Element, fromIndex?: number) => boolean; flatMap: <U, This = undefined>(callback: (this: This, value: JSX.Element, index: number, array: JSX.Element[]) => U | readonly U[], thisArg?: This | undefined) => U[]; flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]; at: (index: number) => JSX.Element; findLast: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findLastIndex: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => number; toReversed: () => JSX.Element[]; toSorted: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.Element[]; toSpliced: { (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; (start: number, deleteCount?: number): JSX.Element[]; }; with: (index: number, value: JSX.Element) => JSX.Element[]; __@iterator@1392: () => ArrayIterator<JSX.Element>; __@unscopables@1394: { [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; findLast?: boolean | undefined; findLastIndex?: boolean | undefined; toReversed?: boolean | undefined; toSorted?: boolean | undefined; toSpliced?: boolean | undefined; with?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; } } | string & {}",
1346
+ "displayType": "undefined | null | number | false | true | Node | { length: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => JSX.Element; push: (...items: JSX.Element[]) => number; concat: { (...items: ConcatArray<JSX.Element>[]): JSX.Element[]; (...items: (JSX.Element | ConcatArray<JSX.Element>)[]): JSX.Element[]; }; join: (separator?: string) => string; reverse: () => JSX.Element[]; shift: () => JSX.Element; slice: (start?: number, end?: number) => JSX.Element[]; sort: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.ArrayElement; splice: { (start: number, deleteCount?: number): JSX.Element[]; (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; }; unshift: (...items: JSX.Element[]) => number; indexOf: (searchElement: JSX.Element, fromIndex?: number) => number; lastIndexOf: (searchElement: JSX.Element, fromIndex?: number) => number; every: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => void, thisArg?: any) => void; map: <U>(callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => U, thisArg?: any) => U[]; filter: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element[]; }; reduce: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; find: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findIndex: (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any) => number; fill: (value: JSX.Element, start?: number, end?: number) => JSX.ArrayElement; copyWithin: (target: number, start: number, end?: number) => JSX.ArrayElement; entries: () => ArrayIterator<[number, JSX.Element]>; keys: () => ArrayIterator<number>; values: () => ArrayIterator<JSX.Element>; includes: (searchElement: JSX.Element, fromIndex?: number) => boolean; flatMap: <U, This = undefined>(callback: (this: This, value: JSX.Element, index: number, array: JSX.Element[]) => U | readonly U[], thisArg?: This | undefined) => U[]; flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]; at: (index: number) => JSX.Element; findLast: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findLastIndex: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => number; toReversed: () => JSX.Element[]; toSorted: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.Element[]; toSpliced: { (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; (start: number, deleteCount?: number): JSX.Element[]; }; with: (index: number, value: JSX.Element) => JSX.Element[]; __@iterator@1392: () => ArrayIterator<JSX.Element>; __@unscopables@1394: { [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; findLast?: boolean | undefined; findLastIndex?: boolean | undefined; toReversed?: boolean | undefined; toSorted?: boolean | undefined; toSpliced?: boolean | undefined; with?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; } } | string & {}",
1347
+ "description": ""
1348
+ },
1349
+ {
1350
+ "name": "onHelpful",
1351
+ "type": "undefined | () => void",
1352
+ "displayType": "undefined | () => void",
1353
+ "description": ""
1354
+ },
1355
+ {
1356
+ "name": "onNotHelpful",
1357
+ "type": "undefined | () => void",
1358
+ "displayType": "undefined | () => void",
1359
+ "description": ""
1360
+ },
1361
+ {
1362
+ "name": "onClose",
1363
+ "type": "undefined | () => void",
1364
+ "displayType": "undefined | () => void",
1365
+ "description": ""
1366
+ }
1367
+ ],
1368
+ "slots": [],
1369
+ "tokens": [],
1370
+ "extendsHtmlAttributes": false,
1371
+ "description": ""
1372
+ },
1373
+ {
1374
+ "name": "FileTree",
1375
+ "group": "Components",
1376
+ "sourceFile": "src/components/file-tree.tsx",
1377
+ "props": [
1378
+ {
1379
+ "name": "files",
1380
+ "type": "{ path: string; url?: undefined | string; code?: undefined | string; language?: undefined | string; type?: undefined | \"html\" | \"pdf\" | \"image\" | \"other\" }[]",
1381
+ "displayType": "{ path: string; url?: undefined | string; code?: undefined | string; language?: undefined | string; type?: undefined | \"html\" | \"pdf\" | \"image\" | \"other\" }[]",
1382
+ "optional": false,
1383
+ "scalar": false,
1384
+ "description": "Flat file list; folders are derived from `/`-delimited paths."
1385
+ },
1386
+ {
1387
+ "name": "activeFile",
1388
+ "type": "undefined | string",
1389
+ "displayType": "undefined | string",
1390
+ "optional": true,
1391
+ "scalar": true,
1392
+ "description": "Currently-selected file path (highlighted)."
1393
+ },
1394
+ {
1395
+ "name": "defaultExpanded",
1396
+ "type": "undefined | string[]",
1397
+ "displayType": "undefined | string[]",
1398
+ "optional": true,
1399
+ "scalar": false,
1400
+ "description": "Folder paths expanded by default. When omitted, all folders start open.",
1401
+ "default": "[]"
1402
+ }
1403
+ ],
1404
+ "callbacks": [
1405
+ {
1406
+ "name": "onSelect",
1407
+ "type": "undefined | (path: string, file: FileTreeFile) => void",
1408
+ "displayType": "undefined | (path: string, file: FileTreeFile) => void",
1409
+ "description": "Called with a file's path when the user selects it."
1410
+ }
1411
+ ],
1412
+ "slots": [],
1413
+ "tokens": [],
1414
+ "extendsHtmlAttributes": true,
1415
+ "description": "`FileTree` — a collapsible, keyboard-navigable file explorer built from a flat list of `/`-delimited paths. ARIA `tree`/`treeitem`/`group`. Selecting a file calls `onSelect(path, file)`."
1416
+ },
1417
+ {
1418
+ "name": "FileUpload",
1419
+ "group": "Components",
1420
+ "sourceFile": "src/components/file-upload.tsx",
1421
+ "props": [
1422
+ {
1423
+ "name": "multiple",
1424
+ "type": "undefined | false | true",
1425
+ "displayType": "undefined | false | true",
1426
+ "optional": true,
1427
+ "scalar": true,
1428
+ "description": "",
1429
+ "default": "true"
1430
+ },
1431
+ {
1432
+ "name": "accept",
1433
+ "type": "undefined | string",
1434
+ "displayType": "undefined | string",
1435
+ "optional": true,
1436
+ "scalar": true,
1437
+ "description": ""
1438
+ },
1439
+ {
1440
+ "name": "disabled",
1441
+ "type": "undefined | false | true",
1442
+ "displayType": "undefined | false | true",
1443
+ "optional": true,
1444
+ "scalar": true,
1445
+ "description": ""
1446
+ }
1447
+ ],
1448
+ "callbacks": [
1449
+ {
1450
+ "name": "onFilesAdded",
1451
+ "type": "(files: File[]) => void",
1452
+ "displayType": "(files: File[]) => void",
1453
+ "description": ""
1454
+ }
1455
+ ],
1456
+ "slots": [
1457
+ {
1458
+ "name": "children",
1459
+ "description": ""
1460
+ }
1461
+ ],
1462
+ "tokens": [],
1463
+ "extendsHtmlAttributes": false,
1464
+ "description": ""
1465
+ },
1466
+ {
1467
+ "name": "FileUploadContent",
1468
+ "group": "Components",
1469
+ "sourceFile": "src/components/file-upload.tsx",
1470
+ "props": [],
1471
+ "callbacks": [],
1472
+ "slots": [],
1473
+ "tokens": [],
1474
+ "extendsHtmlAttributes": true,
1475
+ "description": ""
1476
+ },
1477
+ {
1478
+ "name": "FileUploadTrigger",
1479
+ "group": "Components",
1480
+ "sourceFile": "src/components/file-upload.tsx",
1481
+ "props": [],
1482
+ "callbacks": [],
1483
+ "slots": [
1484
+ {
1485
+ "name": "children",
1486
+ "description": ""
1487
+ }
1488
+ ],
1489
+ "tokens": [],
1490
+ "extendsHtmlAttributes": true,
1491
+ "description": ""
1492
+ },
1493
+ {
1494
+ "name": "Form",
1495
+ "group": "Components",
1496
+ "sourceFile": "src/components/form.tsx",
1497
+ "props": [
1498
+ {
1499
+ "name": "data",
1500
+ "type": "undefined | { type: \"object\"; title?: undefined | string; description?: undefined | string; required?: undefined | string[]; properties: Record<string, FormField>; x-kc-order?: undefined | string[]; x-kc-inlineMax?: undefined | number; x-kc-submitLabel?: undefined | string; x-kc-dismissible?: undefined | false | true; x-kc-actions?: undefined | { id: string; label: string; variant?: undefined | \"default\" | \"ghost\" | \"outline\" }[] }",
1501
+ "displayType": "undefined | { type: \"object\"; title?: undefined | string; description?: undefined | string; required?: undefined | string[]; properties: Record<string, FormField>; x-kc-order?: undefined | string[]; x-kc-inlineMax?: undefined | number; x-kc-submitLabel?: undefined | string; x-kc-dismissible?: undefined | false | true; x-kc-actions?: undefined | { id: string; label: string; variant?: undefined | \"default\" | \"ghost\" | \"outline\" }[] }",
1502
+ "optional": true,
1503
+ "scalar": false,
1504
+ "description": "The form definition (CardEnvelope.data)."
1505
+ },
1506
+ {
1507
+ "name": "cardId",
1508
+ "type": "undefined | string",
1509
+ "displayType": "undefined | string",
1510
+ "optional": true,
1511
+ "scalar": true,
1512
+ "description": "The card id used to correlate every emitted CardEvent."
1513
+ },
1514
+ {
1515
+ "name": "heading",
1516
+ "type": "undefined | string",
1517
+ "displayType": "undefined | string",
1518
+ "optional": true,
1519
+ "scalar": true,
1520
+ "description": "The envelope title rendered in the card chrome."
1521
+ },
1522
+ {
1523
+ "name": "hostElement",
1524
+ "type": "undefined | HTMLElement",
1525
+ "displayType": "undefined | HTMLElement",
1526
+ "optional": true,
1527
+ "scalar": false,
1528
+ "description": "The custom-element host node, for the bubbling `kc-card` fallback emit."
1529
+ }
1530
+ ],
1531
+ "callbacks": [
1532
+ {
1533
+ "name": "host",
1534
+ "type": "undefined | { context: () => import(\"/home/runner/work/chat/chat/src/index\").CardContext; emit: (event: CardEvent) => void }",
1535
+ "displayType": "undefined | { context: () => import(\"/home/runner/work/chat/chat/src/index\").CardContext; emit: (event: CardEvent) => void }",
1536
+ "description": "Optional explicit CardHost (otherwise read from a CardProvider, otherwise the bubbling `kc-card` CustomEvent off `hostElement`)."
1537
+ }
1538
+ ],
1539
+ "slots": [],
1540
+ "tokens": [],
1541
+ "extendsHtmlAttributes": false,
1542
+ "description": "`Form` — renders a JSON-Schema form definition into themed, accessible widgets inside `Card` chrome, validates input against that schema, and emits the collected, coerced, validated object up the Card contract as `submit-data`. Reads context/emits via a `CardProvider` when present, else the bubbling `kc-card` CustomEvent."
1543
+ },
1544
+ {
1545
+ "name": "Image",
1546
+ "group": "Components",
1547
+ "sourceFile": "src/components/image.tsx",
1548
+ "props": [
1549
+ {
1550
+ "name": "alt",
1551
+ "type": "string",
1552
+ "displayType": "string",
1553
+ "optional": false,
1554
+ "scalar": true,
1555
+ "description": ""
1556
+ },
1557
+ {
1558
+ "name": "base64",
1559
+ "type": "undefined | string",
1560
+ "displayType": "undefined | string",
1561
+ "optional": true,
1562
+ "scalar": true,
1563
+ "description": ""
1564
+ },
1565
+ {
1566
+ "name": "uint8Array",
1567
+ "type": "undefined | Uint8Array<ArrayBufferLike>",
1568
+ "displayType": "undefined | Uint8Array<ArrayBufferLike>",
1569
+ "optional": true,
1570
+ "scalar": false,
1571
+ "description": ""
1572
+ },
1573
+ {
1574
+ "name": "mediaType",
1575
+ "type": "undefined | string",
1576
+ "displayType": "undefined | string",
1577
+ "optional": true,
1578
+ "scalar": true,
1579
+ "description": "",
1580
+ "default": "'image/png'"
1581
+ }
1582
+ ],
1583
+ "callbacks": [],
1584
+ "slots": [],
1585
+ "tokens": [],
1586
+ "extendsHtmlAttributes": false,
1587
+ "description": ""
1588
+ },
1589
+ {
1590
+ "name": "LinkCard",
1591
+ "group": "Components",
1592
+ "sourceFile": "src/components/link-card.tsx",
1593
+ "props": [
1594
+ {
1595
+ "name": "cardId",
1596
+ "type": "string",
1597
+ "displayType": "string",
1598
+ "optional": false,
1599
+ "scalar": true,
1600
+ "description": "The card id correlating every emitted event."
1601
+ },
1602
+ {
1603
+ "name": "data",
1604
+ "type": "{ url: string; title?: undefined | string; description?: undefined | string; image?: undefined | string; imageAlt?: undefined | string; favicon?: undefined | string; domain?: undefined | string; siteName?: undefined | string }",
1605
+ "displayType": "{ url: string; title?: undefined | string; description?: undefined | string; image?: undefined | string; imageAlt?: undefined | string; favicon?: undefined | string; domain?: undefined | string; siteName?: undefined | string }",
1606
+ "optional": false,
1607
+ "scalar": false,
1608
+ "description": "The link payload (data-down)."
1609
+ }
1610
+ ],
1611
+ "callbacks": [
1612
+ {
1613
+ "name": "onEmit",
1614
+ "type": "undefined | (event: CardEvent) => void",
1615
+ "displayType": "undefined | (event: CardEvent) => void",
1616
+ "description": "Emit a contract CardEvent up (host routes it)."
1617
+ }
1618
+ ],
1619
+ "slots": [],
1620
+ "tokens": [],
1621
+ "extendsHtmlAttributes": false,
1622
+ "description": "`LinkCard` — a pure, themed, accessible rich link / OG preview. Renders from the supplied metadata; it never fetches the network itself. When the payload is a bare `{ url }` and an app has registered a `configureLinkPreview` fetcher, it shows a skeleton, calls the hook, merges the result, and renders. Activating the card (click / Enter / Space) emits the contract `open` verb (`target:'tab'`); the host policy performs the navigation so it can veto/redirect."
1623
+ },
1624
+ {
1625
+ "name": "Loader",
1626
+ "group": "Components",
1627
+ "sourceFile": "src/components/loader.tsx",
1628
+ "props": [
1629
+ {
1630
+ "name": "variant",
1631
+ "type": "undefined | \"circular\" | \"classic\" | \"pulse\" | \"pulse-dot\" | \"dots\" | \"typing\" | \"wave\" | \"bars\" | \"terminal\" | \"text-blink\" | \"text-shimmer\" | \"loading-dots\"",
1632
+ "displayType": "LoaderVariant | undefined",
1633
+ "optional": true,
1634
+ "scalar": true,
1635
+ "description": ""
1636
+ },
1637
+ {
1638
+ "name": "size",
1639
+ "type": "undefined | \"sm\" | \"md\" | \"lg\"",
1640
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\"",
1641
+ "optional": true,
1642
+ "scalar": true,
1643
+ "description": ""
1644
+ },
1645
+ {
1646
+ "name": "text",
1647
+ "type": "undefined | string",
1648
+ "displayType": "undefined | string",
1649
+ "optional": true,
1650
+ "scalar": true,
1651
+ "description": ""
1652
+ }
1653
+ ],
1654
+ "callbacks": [],
1655
+ "slots": [],
1656
+ "tokens": [],
1657
+ "extendsHtmlAttributes": false,
1658
+ "description": ""
1659
+ },
1660
+ {
1661
+ "name": "Markdown",
1662
+ "group": "Components",
1663
+ "sourceFile": "src/components/markdown.tsx",
1664
+ "props": [
1665
+ {
1666
+ "name": "content",
1667
+ "type": "string",
1668
+ "displayType": "string",
1669
+ "optional": false,
1670
+ "scalar": true,
1671
+ "description": ""
1672
+ },
1673
+ {
1674
+ "name": "id",
1675
+ "type": "undefined | string",
1676
+ "displayType": "undefined | string",
1677
+ "optional": true,
1678
+ "scalar": true,
1679
+ "description": ""
1680
+ },
1681
+ {
1682
+ "name": "codeTheme",
1683
+ "type": "undefined | string",
1684
+ "displayType": "undefined | string",
1685
+ "optional": true,
1686
+ "scalar": true,
1687
+ "description": ""
1688
+ }
1689
+ ],
1690
+ "callbacks": [],
1691
+ "slots": [],
1692
+ "tokens": [],
1693
+ "extendsHtmlAttributes": false,
1694
+ "description": ""
1695
+ },
1696
+ {
1697
+ "name": "Message",
1698
+ "group": "Components",
1699
+ "sourceFile": "src/components/message.tsx",
1700
+ "props": [],
1701
+ "callbacks": [],
1702
+ "slots": [
1703
+ {
1704
+ "name": "children",
1705
+ "description": ""
1706
+ }
1707
+ ],
1708
+ "tokens": [],
1709
+ "extendsHtmlAttributes": true,
1710
+ "description": ""
1711
+ },
1712
+ {
1713
+ "name": "MessageAction",
1714
+ "group": "Components",
1715
+ "sourceFile": "src/components/message.tsx",
1716
+ "props": [
1717
+ {
1718
+ "name": "tooltip",
1719
+ "type": "string",
1720
+ "displayType": "string",
1721
+ "optional": false,
1722
+ "scalar": true,
1723
+ "description": ""
1724
+ },
1725
+ {
1726
+ "name": "side",
1727
+ "type": "undefined | \"top\" | \"bottom\" | \"left\" | \"right\"",
1728
+ "displayType": "undefined | \"top\" | \"bottom\" | \"left\" | \"right\"",
1729
+ "optional": true,
1730
+ "scalar": true,
1731
+ "description": ""
1732
+ }
1733
+ ],
1734
+ "callbacks": [],
1735
+ "slots": [
1736
+ {
1737
+ "name": "children",
1738
+ "description": ""
1739
+ }
1740
+ ],
1741
+ "tokens": [],
1742
+ "extendsHtmlAttributes": false,
1743
+ "description": ""
1744
+ },
1745
+ {
1746
+ "name": "MessageActions",
1747
+ "group": "Components",
1748
+ "sourceFile": "src/components/message.tsx",
1749
+ "props": [],
1750
+ "callbacks": [],
1751
+ "slots": [
1752
+ {
1753
+ "name": "children",
1754
+ "description": ""
1755
+ }
1756
+ ],
1757
+ "tokens": [],
1758
+ "extendsHtmlAttributes": true,
1759
+ "description": ""
1760
+ },
1761
+ {
1762
+ "name": "MessageAvatar",
1763
+ "group": "Components",
1764
+ "sourceFile": "src/components/message.tsx",
1765
+ "props": [
1766
+ {
1767
+ "name": "src",
1768
+ "type": "string",
1769
+ "displayType": "string",
1770
+ "optional": false,
1771
+ "scalar": true,
1772
+ "description": ""
1773
+ },
1774
+ {
1775
+ "name": "alt",
1776
+ "type": "string",
1777
+ "displayType": "string",
1778
+ "optional": false,
1779
+ "scalar": true,
1780
+ "description": ""
1781
+ },
1782
+ {
1783
+ "name": "fallback",
1784
+ "type": "undefined | string",
1785
+ "displayType": "undefined | string",
1786
+ "optional": true,
1787
+ "scalar": true,
1788
+ "description": ""
1789
+ }
1790
+ ],
1791
+ "callbacks": [],
1792
+ "slots": [],
1793
+ "tokens": [],
1794
+ "extendsHtmlAttributes": false,
1795
+ "description": ""
1796
+ },
1797
+ {
1798
+ "name": "MessageContent",
1799
+ "group": "Components",
1800
+ "sourceFile": "src/components/message.tsx",
1801
+ "props": [
1802
+ {
1803
+ "name": "markdown",
1804
+ "type": "undefined | false | true",
1805
+ "displayType": "undefined | false | true",
1806
+ "optional": true,
1807
+ "scalar": true,
1808
+ "description": ""
1809
+ }
1810
+ ],
1811
+ "callbacks": [],
1812
+ "slots": [
1813
+ {
1814
+ "name": "children",
1815
+ "description": ""
1816
+ }
1817
+ ],
1818
+ "tokens": [],
1819
+ "extendsHtmlAttributes": true,
1820
+ "description": ""
1821
+ },
1822
+ {
1823
+ "name": "MessageCopyButton",
1824
+ "group": "Components",
1825
+ "sourceFile": "src/components/message.tsx",
1826
+ "props": [
1827
+ {
1828
+ "name": "content",
1829
+ "type": "string",
1830
+ "displayType": "string",
1831
+ "optional": false,
1832
+ "scalar": true,
1833
+ "description": ""
1834
+ },
1835
+ {
1836
+ "name": "size",
1837
+ "type": "undefined | number",
1838
+ "displayType": "undefined | number",
1839
+ "optional": true,
1840
+ "scalar": true,
1841
+ "description": "",
1842
+ "default": "14"
1843
+ }
1844
+ ],
1845
+ "callbacks": [],
1846
+ "slots": [],
1847
+ "tokens": [],
1848
+ "extendsHtmlAttributes": false,
1849
+ "description": ""
1850
+ },
1851
+ {
1852
+ "name": "MessageSkills",
1853
+ "group": "Components",
1854
+ "sourceFile": "src/components/message-skills.tsx",
1855
+ "props": [
1856
+ {
1857
+ "name": "skills",
1858
+ "type": "{ id: string; name: string }[]",
1859
+ "displayType": "{ id: string; name: string }[]",
1860
+ "optional": false,
1861
+ "scalar": false,
1862
+ "description": ""
1863
+ }
1864
+ ],
1865
+ "callbacks": [],
1866
+ "slots": [],
1867
+ "tokens": [],
1868
+ "extendsHtmlAttributes": false,
1869
+ "description": "Displays skill badges above a message to indicate which skills were active when the message was generated."
1870
+ },
1871
+ {
1872
+ "name": "ModelSwitcher",
1873
+ "group": "Components",
1874
+ "sourceFile": "src/components/model-switcher.tsx",
1875
+ "props": [
1876
+ {
1877
+ "name": "models",
1878
+ "type": "{ id: string; name: string; provider?: undefined | string }[]",
1879
+ "displayType": "{ id: string; name: string; provider?: undefined | string }[]",
1880
+ "optional": false,
1881
+ "scalar": false,
1882
+ "description": ""
1883
+ },
1884
+ {
1885
+ "name": "currentModelId",
1886
+ "type": "string",
1887
+ "displayType": "string",
1888
+ "optional": false,
1889
+ "scalar": true,
1890
+ "description": ""
1891
+ }
1892
+ ],
1893
+ "callbacks": [
1894
+ {
1895
+ "name": "onModelChange",
1896
+ "type": "(modelId: string) => void",
1897
+ "displayType": "(modelId: string) => void",
1898
+ "description": ""
1899
+ }
1900
+ ],
1901
+ "slots": [],
1902
+ "tokens": [],
1903
+ "extendsHtmlAttributes": false,
1904
+ "description": ""
1905
+ },
1906
+ {
1907
+ "name": "PromptInput",
1908
+ "group": "Components",
1909
+ "sourceFile": "src/components/prompt-input.tsx",
1910
+ "props": [
1911
+ {
1912
+ "name": "isLoading",
1913
+ "type": "undefined | false | true",
1914
+ "displayType": "undefined | false | true",
1915
+ "optional": true,
1916
+ "scalar": true,
1917
+ "description": "",
1918
+ "default": "false"
1919
+ },
1920
+ {
1921
+ "name": "value",
1922
+ "type": "undefined | string",
1923
+ "displayType": "undefined | string",
1924
+ "optional": true,
1925
+ "scalar": true,
1926
+ "description": "",
1927
+ "default": "''"
1928
+ },
1929
+ {
1930
+ "name": "maxHeight",
1931
+ "type": "undefined | string | number",
1932
+ "displayType": "undefined | string | number",
1933
+ "optional": true,
1934
+ "scalar": true,
1935
+ "description": "",
1936
+ "default": "240"
1937
+ },
1938
+ {
1939
+ "name": "disabled",
1940
+ "type": "undefined | false | true",
1941
+ "displayType": "undefined | false | true",
1942
+ "optional": true,
1943
+ "scalar": true,
1944
+ "description": ""
1945
+ }
1946
+ ],
1947
+ "callbacks": [
1948
+ {
1949
+ "name": "onValueChange",
1950
+ "type": "undefined | (value: string) => void",
1951
+ "displayType": "undefined | (value: string) => void",
1952
+ "description": ""
1953
+ },
1954
+ {
1955
+ "name": "onSubmit",
1956
+ "type": "undefined | () => void",
1957
+ "displayType": "undefined | () => void",
1958
+ "description": ""
1959
+ }
1960
+ ],
1961
+ "slots": [
1962
+ {
1963
+ "name": "children",
1964
+ "description": ""
1965
+ }
1966
+ ],
1967
+ "tokens": [],
1968
+ "extendsHtmlAttributes": true,
1969
+ "description": ""
1970
+ },
1971
+ {
1972
+ "name": "PromptInputAction",
1973
+ "group": "Components",
1974
+ "sourceFile": "src/components/prompt-input.tsx",
1975
+ "props": [
1976
+ {
1977
+ "name": "tooltip",
1978
+ "type": "undefined | string",
1979
+ "displayType": "undefined | string",
1980
+ "optional": true,
1981
+ "scalar": true,
1982
+ "description": ""
1983
+ },
1984
+ {
1985
+ "name": "side",
1986
+ "type": "undefined | \"top\" | \"bottom\" | \"left\" | \"right\"",
1987
+ "displayType": "undefined | \"top\" | \"bottom\" | \"left\" | \"right\"",
1988
+ "optional": true,
1989
+ "scalar": true,
1990
+ "description": ""
1991
+ }
1992
+ ],
1993
+ "callbacks": [],
1994
+ "slots": [
1995
+ {
1996
+ "name": "children",
1997
+ "description": ""
1998
+ }
1999
+ ],
2000
+ "tokens": [],
2001
+ "extendsHtmlAttributes": false,
2002
+ "description": ""
2003
+ },
2004
+ {
2005
+ "name": "PromptInputActions",
2006
+ "group": "Components",
2007
+ "sourceFile": "src/components/prompt-input.tsx",
2008
+ "props": [],
2009
+ "callbacks": [],
2010
+ "slots": [
2011
+ {
2012
+ "name": "children",
2013
+ "description": ""
2014
+ }
2015
+ ],
2016
+ "tokens": [],
2017
+ "extendsHtmlAttributes": true,
2018
+ "description": ""
2019
+ },
2020
+ {
2021
+ "name": "PromptInputTextarea",
2022
+ "group": "Components",
2023
+ "sourceFile": "src/components/prompt-input.tsx",
2024
+ "props": [
2025
+ {
2026
+ "name": "disableAutosize",
2027
+ "type": "undefined | false | true",
2028
+ "displayType": "undefined | false | true",
2029
+ "optional": true,
2030
+ "scalar": true,
2031
+ "description": ""
2032
+ }
2033
+ ],
2034
+ "callbacks": [],
2035
+ "slots": [],
2036
+ "tokens": [],
2037
+ "extendsHtmlAttributes": true,
2038
+ "description": ""
2039
+ },
2040
+ {
2041
+ "name": "PromptSuggestion",
2042
+ "group": "Components",
2043
+ "sourceFile": "src/components/prompt-suggestion.tsx",
2044
+ "props": [
2045
+ {
2046
+ "name": "variant",
2047
+ "type": "undefined | \"default\" | \"ghost\" | \"outline\"",
2048
+ "displayType": "undefined | \"default\" | \"ghost\" | \"outline\"",
2049
+ "optional": true,
2050
+ "scalar": true,
2051
+ "description": "",
2052
+ "default": "'outline'"
2053
+ },
2054
+ {
2055
+ "name": "size",
2056
+ "type": "undefined | \"sm\" | \"md\" | \"lg\" | \"icon\" | \"icon-sm\"",
2057
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\" | \"icon\" | \"icon-sm\"",
2058
+ "optional": true,
2059
+ "scalar": true,
2060
+ "description": "",
2061
+ "default": "'lg'"
2062
+ },
2063
+ {
2064
+ "name": "highlight",
2065
+ "type": "undefined | string",
2066
+ "displayType": "undefined | string",
2067
+ "optional": true,
2068
+ "scalar": true,
2069
+ "description": ""
2070
+ },
2071
+ {
2072
+ "name": "block",
2073
+ "type": "undefined | false | true",
2074
+ "displayType": "undefined | false | true",
2075
+ "optional": true,
2076
+ "scalar": true,
2077
+ "description": "Render as a full-width, left-aligned list row (the \"suggested questions\" idiom) instead of a rounded pill. Wraps long text. Ignored in highlight mode, which is always a list row."
2078
+ }
2079
+ ],
2080
+ "callbacks": [],
2081
+ "slots": [
2082
+ {
2083
+ "name": "children",
2084
+ "description": ""
2085
+ }
2086
+ ],
2087
+ "tokens": [],
2088
+ "extendsHtmlAttributes": true,
2089
+ "description": ""
2090
+ },
2091
+ {
2092
+ "name": "PulseDotLoader",
2093
+ "group": "Components",
2094
+ "sourceFile": "src/components/loader.tsx",
2095
+ "props": [
2096
+ {
2097
+ "name": "size",
2098
+ "type": "undefined | \"sm\" | \"md\" | \"lg\"",
2099
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\"",
2100
+ "optional": true,
2101
+ "scalar": true,
2102
+ "description": "",
2103
+ "default": "'md'"
2104
+ }
2105
+ ],
2106
+ "callbacks": [],
2107
+ "slots": [],
2108
+ "tokens": [],
2109
+ "extendsHtmlAttributes": false,
2110
+ "description": ""
2111
+ },
2112
+ {
2113
+ "name": "PulseLoader",
2114
+ "group": "Components",
2115
+ "sourceFile": "src/components/loader.tsx",
2116
+ "props": [
2117
+ {
2118
+ "name": "size",
2119
+ "type": "undefined | \"sm\" | \"md\" | \"lg\"",
2120
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\"",
2121
+ "optional": true,
2122
+ "scalar": true,
2123
+ "description": "",
2124
+ "default": "'md'"
2125
+ }
2126
+ ],
2127
+ "callbacks": [],
2128
+ "slots": [],
2129
+ "tokens": [],
2130
+ "extendsHtmlAttributes": false,
2131
+ "description": ""
2132
+ },
2133
+ {
2134
+ "name": "Reasoning",
2135
+ "group": "Components",
2136
+ "sourceFile": "src/components/reasoning.tsx",
2137
+ "props": [
2138
+ {
2139
+ "name": "open",
2140
+ "type": "undefined | false | true",
2141
+ "displayType": "undefined | false | true",
2142
+ "optional": true,
2143
+ "scalar": true,
2144
+ "description": ""
2145
+ },
2146
+ {
2147
+ "name": "isStreaming",
2148
+ "type": "undefined | false | true",
2149
+ "displayType": "undefined | false | true",
2150
+ "optional": true,
2151
+ "scalar": true,
2152
+ "description": ""
2153
+ }
2154
+ ],
2155
+ "callbacks": [
2156
+ {
2157
+ "name": "onOpenChange",
2158
+ "type": "undefined | (open: boolean) => void",
2159
+ "displayType": "undefined | (open: boolean) => void",
2160
+ "description": ""
2161
+ }
2162
+ ],
2163
+ "slots": [
2164
+ {
2165
+ "name": "children",
2166
+ "description": ""
2167
+ }
2168
+ ],
2169
+ "tokens": [],
2170
+ "extendsHtmlAttributes": false,
2171
+ "description": ""
2172
+ },
2173
+ {
2174
+ "name": "ReasoningContent",
2175
+ "group": "Components",
2176
+ "sourceFile": "src/components/reasoning.tsx",
2177
+ "props": [
2178
+ {
2179
+ "name": "markdown",
2180
+ "type": "undefined | false | true",
2181
+ "displayType": "undefined | false | true",
2182
+ "optional": true,
2183
+ "scalar": true,
2184
+ "description": ""
2185
+ },
2186
+ {
2187
+ "name": "contentClass",
2188
+ "type": "undefined | string",
2189
+ "displayType": "undefined | string",
2190
+ "optional": true,
2191
+ "scalar": true,
2192
+ "description": ""
2193
+ }
2194
+ ],
2195
+ "callbacks": [],
2196
+ "slots": [
2197
+ {
2198
+ "name": "children",
2199
+ "description": ""
2200
+ }
2201
+ ],
2202
+ "tokens": [],
2203
+ "extendsHtmlAttributes": true,
2204
+ "description": ""
2205
+ },
2206
+ {
2207
+ "name": "ReasoningTrigger",
2208
+ "group": "Components",
2209
+ "sourceFile": "src/components/reasoning.tsx",
2210
+ "props": [],
2211
+ "callbacks": [],
2212
+ "slots": [
2213
+ {
2214
+ "name": "children",
2215
+ "description": ""
2216
+ }
2217
+ ],
2218
+ "tokens": [],
2219
+ "extendsHtmlAttributes": true,
2220
+ "description": ""
2221
+ },
2222
+ {
2223
+ "name": "ResponseStream",
2224
+ "group": "Components",
2225
+ "sourceFile": "src/components/response-stream.tsx",
2226
+ "props": [
2227
+ {
2228
+ "name": "textStream",
2229
+ "type": "string | AsyncIterable<string>",
2230
+ "displayType": "string | AsyncIterable<string>",
2231
+ "optional": false,
2232
+ "scalar": false,
2233
+ "description": ""
2234
+ },
2235
+ {
2236
+ "name": "mode",
2237
+ "type": "undefined | \"typewriter\" | \"fade\"",
2238
+ "displayType": "undefined | \"typewriter\" | \"fade\"",
2239
+ "optional": true,
2240
+ "scalar": true,
2241
+ "description": "",
2242
+ "default": "'typewriter'"
2243
+ },
2244
+ {
2245
+ "name": "speed",
2246
+ "type": "undefined | number",
2247
+ "displayType": "undefined | number",
2248
+ "optional": true,
2249
+ "scalar": true,
2250
+ "description": "",
2251
+ "default": "20"
2252
+ },
2253
+ {
2254
+ "name": "as",
2255
+ "type": "undefined | string",
2256
+ "displayType": "undefined | string",
2257
+ "optional": true,
2258
+ "scalar": true,
2259
+ "description": ""
2260
+ },
2261
+ {
2262
+ "name": "fadeDuration",
2263
+ "type": "undefined | number",
2264
+ "displayType": "undefined | number",
2265
+ "optional": true,
2266
+ "scalar": true,
2267
+ "description": ""
2268
+ },
2269
+ {
2270
+ "name": "segmentDelay",
2271
+ "type": "undefined | number",
2272
+ "displayType": "undefined | number",
2273
+ "optional": true,
2274
+ "scalar": true,
2275
+ "description": ""
2276
+ },
2277
+ {
2278
+ "name": "characterChunkSize",
2279
+ "type": "undefined | number",
2280
+ "displayType": "undefined | number",
2281
+ "optional": true,
2282
+ "scalar": true,
2283
+ "description": ""
2284
+ }
2285
+ ],
2286
+ "callbacks": [
2287
+ {
2288
+ "name": "onComplete",
2289
+ "type": "undefined | () => void",
2290
+ "displayType": "undefined | () => void",
2291
+ "description": ""
2292
+ }
2293
+ ],
2294
+ "slots": [],
2295
+ "tokens": [],
2296
+ "extendsHtmlAttributes": false,
2297
+ "description": ""
2298
+ },
2299
+ {
2300
+ "name": "ScrollButton",
2301
+ "group": "Components",
2302
+ "sourceFile": "src/components/scroll-button.tsx",
2303
+ "props": [
2304
+ {
2305
+ "name": "variant",
2306
+ "type": "undefined | \"default\" | \"ghost\" | \"outline\"",
2307
+ "displayType": "undefined | \"default\" | \"ghost\" | \"outline\"",
2308
+ "optional": true,
2309
+ "scalar": true,
2310
+ "description": "",
2311
+ "default": "'outline'"
2312
+ },
2313
+ {
2314
+ "name": "size",
2315
+ "type": "undefined | \"sm\" | \"md\" | \"lg\" | \"icon\" | \"icon-sm\"",
2316
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\" | \"icon\" | \"icon-sm\"",
2317
+ "optional": true,
2318
+ "scalar": true,
2319
+ "description": "",
2320
+ "default": "'sm'"
2321
+ }
2322
+ ],
2323
+ "callbacks": [],
2324
+ "slots": [],
2325
+ "tokens": [],
2326
+ "extendsHtmlAttributes": false,
2327
+ "description": ""
2328
+ },
2329
+ {
2330
+ "name": "SlashCommand",
2331
+ "group": "Components",
2332
+ "sourceFile": "src/components/slash-command.tsx",
2333
+ "props": [
2334
+ {
2335
+ "name": "commands",
2336
+ "type": "{ id: string; label: string; description?: undefined | string; category?: undefined | string }[]",
2337
+ "displayType": "{ id: string; label: string; description?: undefined | string; category?: undefined | string }[]",
2338
+ "optional": false,
2339
+ "scalar": false,
2340
+ "description": ""
2341
+ },
2342
+ {
2343
+ "name": "activeIds",
2344
+ "type": "undefined | string[]",
2345
+ "displayType": "undefined | string[]",
2346
+ "optional": true,
2347
+ "scalar": false,
2348
+ "description": ""
2349
+ },
2350
+ {
2351
+ "name": "compact",
2352
+ "type": "undefined | false | true",
2353
+ "displayType": "undefined | false | true",
2354
+ "optional": true,
2355
+ "scalar": true,
2356
+ "description": ""
2357
+ }
2358
+ ],
2359
+ "callbacks": [
2360
+ {
2361
+ "name": "onSelect",
2362
+ "type": "(command: SlashCommandItem) => void",
2363
+ "displayType": "(command: SlashCommandItem) => void",
2364
+ "description": ""
2365
+ }
2366
+ ],
2367
+ "slots": [],
2368
+ "tokens": [],
2369
+ "extendsHtmlAttributes": false,
2370
+ "description": ""
2371
+ },
2372
+ {
2373
+ "name": "Source",
2374
+ "group": "Components",
2375
+ "sourceFile": "src/components/source.tsx",
2376
+ "props": [
2377
+ {
2378
+ "name": "href",
2379
+ "type": "string",
2380
+ "displayType": "string",
2381
+ "optional": false,
2382
+ "scalar": true,
2383
+ "description": ""
2384
+ }
2385
+ ],
2386
+ "callbacks": [],
2387
+ "slots": [
2388
+ {
2389
+ "name": "children",
2390
+ "description": ""
2391
+ }
2392
+ ],
2393
+ "tokens": [],
2394
+ "extendsHtmlAttributes": false,
2395
+ "description": ""
2396
+ },
2397
+ {
2398
+ "name": "SourceContent",
2399
+ "group": "Components",
2400
+ "sourceFile": "src/components/source.tsx",
2401
+ "props": [
2402
+ {
2403
+ "name": "title",
2404
+ "type": "string",
2405
+ "displayType": "string",
2406
+ "optional": false,
2407
+ "scalar": true,
2408
+ "description": ""
2409
+ },
2410
+ {
2411
+ "name": "description",
2412
+ "type": "string",
2413
+ "displayType": "string",
2414
+ "optional": false,
2415
+ "scalar": true,
2416
+ "description": ""
2417
+ }
2418
+ ],
2419
+ "callbacks": [],
2420
+ "slots": [],
2421
+ "tokens": [],
2422
+ "extendsHtmlAttributes": false,
2423
+ "description": ""
2424
+ },
2425
+ {
2426
+ "name": "SourceList",
2427
+ "group": "Components",
2428
+ "sourceFile": "src/components/source.tsx",
2429
+ "props": [],
2430
+ "callbacks": [],
2431
+ "slots": [
2432
+ {
2433
+ "name": "children",
2434
+ "description": ""
2435
+ }
2436
+ ],
2437
+ "tokens": [],
2438
+ "extendsHtmlAttributes": false,
2439
+ "description": ""
2440
+ },
2441
+ {
2442
+ "name": "SourceTrigger",
2443
+ "group": "Components",
2444
+ "sourceFile": "src/components/source.tsx",
2445
+ "props": [
2446
+ {
2447
+ "name": "label",
2448
+ "type": "undefined | string | number",
2449
+ "displayType": "undefined | string | number",
2450
+ "optional": true,
2451
+ "scalar": true,
2452
+ "description": ""
2453
+ },
2454
+ {
2455
+ "name": "showFavicon",
2456
+ "type": "undefined | false | true",
2457
+ "displayType": "undefined | false | true",
2458
+ "optional": true,
2459
+ "scalar": true,
2460
+ "description": ""
2461
+ }
2462
+ ],
2463
+ "callbacks": [],
2464
+ "slots": [],
2465
+ "tokens": [],
2466
+ "extendsHtmlAttributes": false,
2467
+ "description": ""
2468
+ },
2469
+ {
2470
+ "name": "TaskListCard",
2471
+ "group": "Components",
2472
+ "sourceFile": "src/components/task-list-card.tsx",
2473
+ "props": [
2474
+ {
2475
+ "name": "data",
2476
+ "type": "undefined | { mode?: undefined | \"select\"; heading?: undefined | string; tasks: { id: string; label: string; description?: undefined | string; checked?: undefined | false | true; disabled?: undefined | false | true }[]; selectAll?: undefined | false | true; confirmLabel?: undefined | string; allowEmpty?: undefined | false | true; min?: undefined | number; max?: undefined | number }",
2477
+ "displayType": "undefined | { mode?: undefined | \"select\"; heading?: undefined | string; tasks: { id: string; label: string; description?: undefined | string; checked?: undefined | false | true; disabled?: undefined | false | true }[]; selectAll?: undefined | false | true; confirmLabel?: undefined | string; allowEmpty?: undefined | false | true; min?: undefined | number; max?: undefined | number }",
2478
+ "optional": true,
2479
+ "scalar": false,
2480
+ "description": "The task-list definition (CardEnvelope.data)."
2481
+ },
2482
+ {
2483
+ "name": "cardId",
2484
+ "type": "undefined | string",
2485
+ "displayType": "undefined | string",
2486
+ "optional": true,
2487
+ "scalar": true,
2488
+ "description": "The card id used to correlate every emitted CardEvent."
2489
+ },
2490
+ {
2491
+ "name": "heading",
2492
+ "type": "undefined | string",
2493
+ "displayType": "undefined | string",
2494
+ "optional": true,
2495
+ "scalar": true,
2496
+ "description": "The envelope title rendered in the card chrome."
2497
+ },
2498
+ {
2499
+ "name": "hostElement",
2500
+ "type": "undefined | HTMLElement",
2501
+ "displayType": "undefined | HTMLElement",
2502
+ "optional": true,
2503
+ "scalar": false,
2504
+ "description": "The custom-element host node, for the bubbling `kc-card` fallback emit."
2505
+ }
2506
+ ],
2507
+ "callbacks": [
2508
+ {
2509
+ "name": "host",
2510
+ "type": "undefined | { context: () => import(\"/home/runner/work/chat/chat/src/index\").CardContext; emit: (event: CardEvent) => void }",
2511
+ "displayType": "undefined | { context: () => import(\"/home/runner/work/chat/chat/src/index\").CardContext; emit: (event: CardEvent) => void }",
2512
+ "description": "Optional explicit CardHost (otherwise read from a CardProvider, otherwise the bubbling `kc-card` CustomEvent off `hostElement`)."
2513
+ }
2514
+ ],
2515
+ "slots": [],
2516
+ "tokens": [],
2517
+ "extendsHtmlAttributes": false,
2518
+ "description": "`TaskListCard` — a selectable task/plan list (checkbox rows + optional select-all + a confirm button) inside `Card` chrome. Row toggling and select-all are local UI state; only the final confirm emits the Card contract's `submit-data` verb (`{ kind:'submit-data', cardId, data:{ selected } }`) with the checked ids in input order. Emits `ready` on mount and `error` for an unusable definition."
2519
+ },
2520
+ {
2521
+ "name": "TerminalLoader",
2522
+ "group": "Components",
2523
+ "sourceFile": "src/components/loader.tsx",
2524
+ "props": [
2525
+ {
2526
+ "name": "size",
2527
+ "type": "undefined | \"sm\" | \"md\" | \"lg\"",
2528
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\"",
2529
+ "optional": true,
2530
+ "scalar": true,
2531
+ "description": "",
2532
+ "default": "'md'"
2533
+ }
2534
+ ],
2535
+ "callbacks": [],
2536
+ "slots": [],
2537
+ "tokens": [],
2538
+ "extendsHtmlAttributes": false,
2539
+ "description": ""
2540
+ },
2541
+ {
2542
+ "name": "TextBlinkLoader",
2543
+ "group": "Components",
2544
+ "sourceFile": "src/components/loader.tsx",
2545
+ "props": [
2546
+ {
2547
+ "name": "text",
2548
+ "type": "undefined | string",
2549
+ "displayType": "undefined | string",
2550
+ "optional": true,
2551
+ "scalar": true,
2552
+ "description": "",
2553
+ "default": "'Thinking'"
2554
+ },
2555
+ {
2556
+ "name": "size",
2557
+ "type": "undefined | \"sm\" | \"md\" | \"lg\"",
2558
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\"",
2559
+ "optional": true,
2560
+ "scalar": true,
2561
+ "description": "",
2562
+ "default": "'md'"
2563
+ }
2564
+ ],
2565
+ "callbacks": [],
2566
+ "slots": [],
2567
+ "tokens": [],
2568
+ "extendsHtmlAttributes": false,
2569
+ "description": ""
2570
+ },
2571
+ {
2572
+ "name": "TextDotsLoader",
2573
+ "group": "Components",
2574
+ "sourceFile": "src/components/loader.tsx",
2575
+ "props": [
2576
+ {
2577
+ "name": "text",
2578
+ "type": "undefined | string",
2579
+ "displayType": "undefined | string",
2580
+ "optional": true,
2581
+ "scalar": true,
2582
+ "description": "",
2583
+ "default": "'Thinking'"
2584
+ },
2585
+ {
2586
+ "name": "size",
2587
+ "type": "undefined | \"sm\" | \"md\" | \"lg\"",
2588
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\"",
2589
+ "optional": true,
2590
+ "scalar": true,
2591
+ "description": "",
2592
+ "default": "'md'"
2593
+ }
2594
+ ],
2595
+ "callbacks": [],
2596
+ "slots": [],
2597
+ "tokens": [],
2598
+ "extendsHtmlAttributes": false,
2599
+ "description": ""
2600
+ },
2601
+ {
2602
+ "name": "TextShimmer",
2603
+ "group": "Components",
2604
+ "sourceFile": "src/components/text-shimmer.tsx",
2605
+ "props": [
2606
+ {
2607
+ "name": "as",
2608
+ "type": "undefined | string",
2609
+ "displayType": "undefined | string",
2610
+ "optional": true,
2611
+ "scalar": true,
2612
+ "description": "",
2613
+ "default": "'span'"
2614
+ },
2615
+ {
2616
+ "name": "duration",
2617
+ "type": "undefined | number",
2618
+ "displayType": "undefined | number",
2619
+ "optional": true,
2620
+ "scalar": true,
2621
+ "description": "",
2622
+ "default": "4"
2623
+ },
2624
+ {
2625
+ "name": "spread",
2626
+ "type": "undefined | number",
2627
+ "displayType": "undefined | number",
2628
+ "optional": true,
2629
+ "scalar": true,
2630
+ "description": "",
2631
+ "default": "20"
2632
+ }
2633
+ ],
2634
+ "callbacks": [],
2635
+ "slots": [
2636
+ {
2637
+ "name": "children",
2638
+ "description": ""
2639
+ }
2640
+ ],
2641
+ "tokens": [],
2642
+ "extendsHtmlAttributes": true,
2643
+ "description": ""
2644
+ },
2645
+ {
2646
+ "name": "TextShimmerLoader",
2647
+ "group": "Components",
2648
+ "sourceFile": "src/components/loader.tsx",
2649
+ "props": [
2650
+ {
2651
+ "name": "text",
2652
+ "type": "undefined | string",
2653
+ "displayType": "undefined | string",
2654
+ "optional": true,
2655
+ "scalar": true,
2656
+ "description": "",
2657
+ "default": "'Thinking'"
2658
+ },
2659
+ {
2660
+ "name": "size",
2661
+ "type": "undefined | \"sm\" | \"md\" | \"lg\"",
2662
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\"",
2663
+ "optional": true,
2664
+ "scalar": true,
2665
+ "description": "",
2666
+ "default": "'md'"
2667
+ }
2668
+ ],
2669
+ "callbacks": [],
2670
+ "slots": [],
2671
+ "tokens": [],
2672
+ "extendsHtmlAttributes": false,
2673
+ "description": ""
2674
+ },
2675
+ {
2676
+ "name": "ThinkingBar",
2677
+ "group": "Components",
2678
+ "sourceFile": "src/components/thinking-bar.tsx",
2679
+ "props": [
2680
+ {
2681
+ "name": "text",
2682
+ "type": "undefined | string",
2683
+ "displayType": "undefined | string",
2684
+ "optional": true,
2685
+ "scalar": true,
2686
+ "description": "",
2687
+ "default": "'Thinking'"
2688
+ },
2689
+ {
2690
+ "name": "stopLabel",
2691
+ "type": "undefined | string",
2692
+ "displayType": "undefined | string",
2693
+ "optional": true,
2694
+ "scalar": true,
2695
+ "description": "",
2696
+ "default": "'Answer now'"
2697
+ }
2698
+ ],
2699
+ "callbacks": [
2700
+ {
2701
+ "name": "onStop",
2702
+ "type": "undefined | () => void",
2703
+ "displayType": "undefined | () => void",
2704
+ "description": ""
2705
+ },
2706
+ {
2707
+ "name": "onClick",
2708
+ "type": "undefined | () => void",
2709
+ "displayType": "undefined | () => void",
2710
+ "description": ""
2711
+ }
2712
+ ],
2713
+ "slots": [],
2714
+ "tokens": [],
2715
+ "extendsHtmlAttributes": false,
2716
+ "description": ""
2717
+ },
2718
+ {
2719
+ "name": "Tool",
2720
+ "group": "Components",
2721
+ "sourceFile": "src/components/tool.tsx",
2722
+ "props": [
2723
+ {
2724
+ "name": "toolPart",
2725
+ "type": "{ type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }",
2726
+ "displayType": "{ type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }",
2727
+ "optional": false,
2728
+ "scalar": false,
2729
+ "description": ""
2730
+ },
2731
+ {
2732
+ "name": "defaultOpen",
2733
+ "type": "undefined | false | true",
2734
+ "displayType": "undefined | false | true",
2735
+ "optional": true,
2736
+ "scalar": true,
2737
+ "description": "",
2738
+ "default": "false"
2739
+ }
2740
+ ],
2741
+ "callbacks": [],
2742
+ "slots": [],
2743
+ "tokens": [
2744
+ "--color-tool-blue",
2745
+ "--color-tool-amber",
2746
+ "--color-tool-green",
2747
+ "--color-tool-red"
2748
+ ],
2749
+ "extendsHtmlAttributes": false,
2750
+ "description": ""
2751
+ },
2752
+ {
2753
+ "name": "TypingLoader",
2754
+ "group": "Components",
2755
+ "sourceFile": "src/components/loader.tsx",
2756
+ "props": [
2757
+ {
2758
+ "name": "size",
2759
+ "type": "undefined | \"sm\" | \"md\" | \"lg\"",
2760
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\"",
2761
+ "optional": true,
2762
+ "scalar": true,
2763
+ "description": "",
2764
+ "default": "'md'"
2765
+ }
2766
+ ],
2767
+ "callbacks": [],
2768
+ "slots": [],
2769
+ "tokens": [],
2770
+ "extendsHtmlAttributes": false,
2771
+ "description": ""
2772
+ },
2773
+ {
2774
+ "name": "VoiceInput",
2775
+ "group": "Components",
2776
+ "sourceFile": "src/components/voice-input.tsx",
2777
+ "props": [
2778
+ {
2779
+ "name": "disabled",
2780
+ "type": "undefined | false | true",
2781
+ "displayType": "undefined | false | true",
2782
+ "optional": true,
2783
+ "scalar": true,
2784
+ "description": ""
2785
+ }
2786
+ ],
2787
+ "callbacks": [
2788
+ {
2789
+ "name": "onTranscribe",
2790
+ "type": "(audio: Blob) => Promise<string>",
2791
+ "displayType": "(audio: Blob) => Promise<string>",
2792
+ "description": ""
2793
+ },
2794
+ {
2795
+ "name": "onTranscription",
2796
+ "type": "(text: string) => void",
2797
+ "displayType": "(text: string) => void",
2798
+ "description": ""
2799
+ }
2800
+ ],
2801
+ "slots": [],
2802
+ "tokens": [],
2803
+ "extendsHtmlAttributes": false,
2804
+ "description": ""
2805
+ },
2806
+ {
2807
+ "name": "WaveLoader",
2808
+ "group": "Components",
2809
+ "sourceFile": "src/components/loader.tsx",
2810
+ "props": [
2811
+ {
2812
+ "name": "size",
2813
+ "type": "undefined | \"sm\" | \"md\" | \"lg\"",
2814
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\"",
2815
+ "optional": true,
2816
+ "scalar": true,
2817
+ "description": "",
2818
+ "default": "'md'"
2819
+ }
2820
+ ],
2821
+ "callbacks": [],
2822
+ "slots": [],
2823
+ "tokens": [],
2824
+ "extendsHtmlAttributes": false,
2825
+ "description": ""
2826
+ },
2827
+ {
2828
+ "name": "Avatar",
2829
+ "group": "UI",
2830
+ "sourceFile": "src/ui/avatar.tsx",
2831
+ "props": [
2832
+ {
2833
+ "name": "src",
2834
+ "type": "undefined | string",
2835
+ "displayType": "undefined | string",
2836
+ "optional": true,
2837
+ "scalar": true,
2838
+ "description": ""
2839
+ },
2840
+ {
2841
+ "name": "alt",
2842
+ "type": "undefined | string",
2843
+ "displayType": "undefined | string",
2844
+ "optional": true,
2845
+ "scalar": true,
2846
+ "description": ""
2847
+ },
2848
+ {
2849
+ "name": "fallback",
2850
+ "type": "string",
2851
+ "displayType": "string",
2852
+ "optional": false,
2853
+ "scalar": true,
2854
+ "description": ""
2855
+ },
2856
+ {
2857
+ "name": "size",
2858
+ "type": "undefined | \"sm\" | \"md\" | \"lg\"",
2859
+ "displayType": "undefined | \"sm\" | \"md\" | \"lg\"",
2860
+ "optional": true,
2861
+ "scalar": true,
2862
+ "description": "",
2863
+ "default": "'md'"
2864
+ }
2865
+ ],
2866
+ "callbacks": [],
2867
+ "slots": [],
2868
+ "tokens": [],
2869
+ "extendsHtmlAttributes": true,
2870
+ "description": ""
2871
+ },
2872
+ {
2873
+ "name": "Badge",
2874
+ "group": "UI",
2875
+ "sourceFile": "src/ui/badge.tsx",
2876
+ "props": [
2877
+ {
2878
+ "name": "variant",
2879
+ "type": "undefined | null | \"default\" | \"count\" | \"citation\"",
2880
+ "displayType": "undefined | null | \"default\" | \"count\" | \"citation\"",
2881
+ "optional": true,
2882
+ "scalar": false,
2883
+ "description": ""
2884
+ }
2885
+ ],
2886
+ "callbacks": [],
2887
+ "slots": [
2888
+ {
2889
+ "name": "children",
2890
+ "description": ""
2891
+ }
2892
+ ],
2893
+ "tokens": [],
2894
+ "extendsHtmlAttributes": true,
2895
+ "description": ""
2896
+ },
2897
+ {
2898
+ "name": "Button",
2899
+ "group": "UI",
2900
+ "sourceFile": "src/ui/button.tsx",
2901
+ "props": [
2902
+ {
2903
+ "name": "variant",
2904
+ "type": "undefined | null | \"default\" | \"ghost\" | \"outline\" | \"destructive\"",
2905
+ "displayType": "undefined | null | \"default\" | \"ghost\" | \"outline\" | \"destructive\"",
2906
+ "optional": true,
2907
+ "scalar": false,
2908
+ "description": ""
2909
+ },
2910
+ {
2911
+ "name": "size",
2912
+ "type": "undefined | null | \"sm\" | \"md\" | \"lg\" | \"icon\" | \"icon-sm\"",
2913
+ "displayType": "undefined | null | \"sm\" | \"md\" | \"lg\" | \"icon\" | \"icon-sm\"",
2914
+ "optional": true,
2915
+ "scalar": false,
2916
+ "description": ""
2917
+ }
2918
+ ],
2919
+ "callbacks": [],
2920
+ "slots": [
2921
+ {
2922
+ "name": "children",
2923
+ "description": ""
2924
+ }
2925
+ ],
2926
+ "tokens": [],
2927
+ "extendsHtmlAttributes": true,
2928
+ "description": ""
2929
+ },
2930
+ {
2931
+ "name": "Collapsible",
2932
+ "group": "UI",
2933
+ "sourceFile": "src/ui/collapsible.tsx",
2934
+ "props": [
2935
+ {
2936
+ "name": "open",
2937
+ "type": "undefined | false | true",
2938
+ "displayType": "undefined | false | true",
2939
+ "optional": true,
2940
+ "scalar": true,
2941
+ "description": ""
2942
+ },
2943
+ {
2944
+ "name": "defaultOpen",
2945
+ "type": "undefined | false | true",
2946
+ "displayType": "undefined | false | true",
2947
+ "optional": true,
2948
+ "scalar": true,
2949
+ "description": "",
2950
+ "default": "false"
2951
+ }
2952
+ ],
2953
+ "callbacks": [
2954
+ {
2955
+ "name": "onOpenChange",
2956
+ "type": "undefined | (open: boolean) => void",
2957
+ "displayType": "undefined | (open: boolean) => void",
2958
+ "description": ""
2959
+ }
2960
+ ],
2961
+ "slots": [
2962
+ {
2963
+ "name": "children",
2964
+ "description": ""
2965
+ }
2966
+ ],
2967
+ "tokens": [],
2968
+ "extendsHtmlAttributes": false,
2969
+ "description": ""
2970
+ },
2971
+ {
2972
+ "name": "CollapsibleContent",
2973
+ "group": "UI",
2974
+ "sourceFile": "src/ui/collapsible.tsx",
2975
+ "props": [],
2976
+ "callbacks": [],
2977
+ "slots": [
2978
+ {
2979
+ "name": "children",
2980
+ "description": ""
2981
+ }
2982
+ ],
2983
+ "tokens": [],
2984
+ "extendsHtmlAttributes": false,
2985
+ "description": ""
2986
+ },
2987
+ {
2988
+ "name": "CollapsibleTrigger",
2989
+ "group": "UI",
2990
+ "sourceFile": "src/ui/collapsible.tsx",
2991
+ "props": [],
2992
+ "callbacks": [
2993
+ {
2994
+ "name": "as",
2995
+ "type": "undefined | (props: Record<string, any>) => JSX.Element",
2996
+ "displayType": "undefined | (props: Record<string, any>) => JSX.Element",
2997
+ "description": ""
2998
+ },
2999
+ {
3000
+ "name": "onClick",
3001
+ "type": "undefined | JSX.EventHandler<HTMLButtonElement, MouseEvent> | { 0: (data: any, e: MouseEvent & { currentTarget: HTMLButtonElement; target: import(\"/home/runner/work/chat/chat/node_modules/solid-js/types/jsx\").DOMElement; }) => void; 1: any }",
3002
+ "displayType": "undefined | JSX.EventHandler<HTMLButtonElement, MouseEvent> | { 0: (data: any, e: MouseEvent & { currentTarget: HTMLButtonElement; target: import(\"/home/runner/work/chat/chat/node_modules/solid-js/types/jsx\").DOMElement; }) => void; 1: any }",
3003
+ "description": ""
3004
+ }
3005
+ ],
3006
+ "slots": [
3007
+ {
3008
+ "name": "children",
3009
+ "description": ""
3010
+ }
3011
+ ],
3012
+ "tokens": [],
3013
+ "extendsHtmlAttributes": false,
3014
+ "description": ""
3015
+ },
3016
+ {
3017
+ "name": "Dropdown",
3018
+ "group": "UI",
3019
+ "sourceFile": "src/ui/dropdown.tsx",
3020
+ "props": [],
3021
+ "callbacks": [],
3022
+ "slots": [
3023
+ {
3024
+ "name": "children",
3025
+ "description": ""
3026
+ }
3027
+ ],
3028
+ "tokens": [],
3029
+ "extendsHtmlAttributes": false,
3030
+ "description": ""
3031
+ },
3032
+ {
3033
+ "name": "DropdownContent",
3034
+ "group": "UI",
3035
+ "sourceFile": "src/ui/dropdown.tsx",
3036
+ "props": [],
3037
+ "callbacks": [],
3038
+ "slots": [
3039
+ {
3040
+ "name": "children",
3041
+ "description": ""
3042
+ }
3043
+ ],
3044
+ "tokens": [],
3045
+ "extendsHtmlAttributes": false,
3046
+ "description": ""
3047
+ },
3048
+ {
3049
+ "name": "DropdownItem",
3050
+ "group": "UI",
3051
+ "sourceFile": "src/ui/dropdown.tsx",
3052
+ "props": [],
3053
+ "callbacks": [
3054
+ {
3055
+ "name": "onSelect",
3056
+ "type": "undefined | () => void",
3057
+ "displayType": "undefined | () => void",
3058
+ "description": ""
3059
+ }
3060
+ ],
3061
+ "slots": [
3062
+ {
3063
+ "name": "children",
3064
+ "description": ""
3065
+ }
3066
+ ],
3067
+ "tokens": [],
3068
+ "extendsHtmlAttributes": false,
3069
+ "description": ""
3070
+ },
3071
+ {
3072
+ "name": "DropdownTrigger",
3073
+ "group": "UI",
3074
+ "sourceFile": "src/ui/dropdown.tsx",
3075
+ "props": [],
3076
+ "callbacks": [
3077
+ {
3078
+ "name": "as",
3079
+ "type": "undefined | string | (props: Record<string, any>) => JSX.Element",
3080
+ "displayType": "undefined | string | (props: Record<string, any>) => JSX.Element",
3081
+ "description": ""
3082
+ }
3083
+ ],
3084
+ "slots": [
3085
+ {
3086
+ "name": "children",
3087
+ "description": ""
3088
+ }
3089
+ ],
3090
+ "tokens": [],
3091
+ "extendsHtmlAttributes": false,
3092
+ "description": ""
3093
+ },
3094
+ {
3095
+ "name": "HoverCard",
3096
+ "group": "UI",
3097
+ "sourceFile": "src/ui/hover-card.tsx",
3098
+ "props": [
3099
+ {
3100
+ "name": "openDelay",
3101
+ "type": "undefined | number",
3102
+ "displayType": "undefined | number",
3103
+ "optional": true,
3104
+ "scalar": true,
3105
+ "description": ""
3106
+ },
3107
+ {
3108
+ "name": "closeDelay",
3109
+ "type": "undefined | number",
3110
+ "displayType": "undefined | number",
3111
+ "optional": true,
3112
+ "scalar": true,
3113
+ "description": ""
3114
+ }
3115
+ ],
3116
+ "callbacks": [
3117
+ {
3118
+ "name": "trigger",
3119
+ "type": "undefined | null | number | false | true | Node | { length: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => JSX.Element; push: (...items: JSX.Element[]) => number; concat: { (...items: ConcatArray<JSX.Element>[]): JSX.Element[]; (...items: (JSX.Element | ConcatArray<JSX.Element>)[]): JSX.Element[]; }; join: (separator?: string) => string; reverse: () => JSX.Element[]; shift: () => JSX.Element; slice: (start?: number, end?: number) => JSX.Element[]; sort: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.ArrayElement; splice: { (start: number, deleteCount?: number): JSX.Element[]; (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; }; unshift: (...items: JSX.Element[]) => number; indexOf: (searchElement: JSX.Element, fromIndex?: number) => number; lastIndexOf: (searchElement: JSX.Element, fromIndex?: number) => number; every: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => void, thisArg?: any) => void; map: <U>(callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => U, thisArg?: any) => U[]; filter: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element[]; }; reduce: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; find: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findIndex: (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any) => number; fill: (value: JSX.Element, start?: number, end?: number) => JSX.ArrayElement; copyWithin: (target: number, start: number, end?: number) => JSX.ArrayElement; entries: () => ArrayIterator<[number, JSX.Element]>; keys: () => ArrayIterator<number>; values: () => ArrayIterator<JSX.Element>; includes: (searchElement: JSX.Element, fromIndex?: number) => boolean; flatMap: <U, This = undefined>(callback: (this: This, value: JSX.Element, index: number, array: JSX.Element[]) => U | readonly U[], thisArg?: This | undefined) => U[]; flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]; at: (index: number) => JSX.Element; findLast: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findLastIndex: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => number; toReversed: () => JSX.Element[]; toSorted: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.Element[]; toSpliced: { (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; (start: number, deleteCount?: number): JSX.Element[]; }; with: (index: number, value: JSX.Element) => JSX.Element[]; __@iterator@1392: () => ArrayIterator<JSX.Element>; __@unscopables@1394: { [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; findLast?: boolean | undefined; findLastIndex?: boolean | undefined; toReversed?: boolean | undefined; toSorted?: boolean | undefined; toSpliced?: boolean | undefined; with?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; } } | string & {}",
3120
+ "displayType": "undefined | null | number | false | true | Node | { length: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => JSX.Element; push: (...items: JSX.Element[]) => number; concat: { (...items: ConcatArray<JSX.Element>[]): JSX.Element[]; (...items: (JSX.Element | ConcatArray<JSX.Element>)[]): JSX.Element[]; }; join: (separator?: string) => string; reverse: () => JSX.Element[]; shift: () => JSX.Element; slice: (start?: number, end?: number) => JSX.Element[]; sort: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.ArrayElement; splice: { (start: number, deleteCount?: number): JSX.Element[]; (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; }; unshift: (...items: JSX.Element[]) => number; indexOf: (searchElement: JSX.Element, fromIndex?: number) => number; lastIndexOf: (searchElement: JSX.Element, fromIndex?: number) => number; every: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => void, thisArg?: any) => void; map: <U>(callbackfn: (value: JSX.Element, index: number, array: JSX.Element[]) => U, thisArg?: any) => U[]; filter: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S[]; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element[]; }; reduce: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element): JSX.Element; (callbackfn: (previousValue: JSX.Element, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => JSX.Element, initialValue: JSX.Element): JSX.Element; <U>(callbackfn: (previousValue: U, currentValue: JSX.Element, currentIndex: number, array: JSX.Element[]) => U, initialValue: U): U; }; find: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findIndex: (predicate: (value: JSX.Element, index: number, obj: JSX.Element[]) => unknown, thisArg?: any) => number; fill: (value: JSX.Element, start?: number, end?: number) => JSX.ArrayElement; copyWithin: (target: number, start: number, end?: number) => JSX.ArrayElement; entries: () => ArrayIterator<[number, JSX.Element]>; keys: () => ArrayIterator<number>; values: () => ArrayIterator<JSX.Element>; includes: (searchElement: JSX.Element, fromIndex?: number) => boolean; flatMap: <U, This = undefined>(callback: (this: This, value: JSX.Element, index: number, array: JSX.Element[]) => U | readonly U[], thisArg?: This | undefined) => U[]; flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]; at: (index: number) => JSX.Element; findLast: { <S extends JSX.Element>(predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any): JSX.Element; }; findLastIndex: (predicate: (value: JSX.Element, index: number, array: JSX.Element[]) => unknown, thisArg?: any) => number; toReversed: () => JSX.Element[]; toSorted: (compareFn?: ((a: JSX.Element, b: JSX.Element) => number) | undefined) => JSX.Element[]; toSpliced: { (start: number, deleteCount: number, ...items: JSX.Element[]): JSX.Element[]; (start: number, deleteCount?: number): JSX.Element[]; }; with: (index: number, value: JSX.Element) => JSX.Element[]; __@iterator@1392: () => ArrayIterator<JSX.Element>; __@unscopables@1394: { [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; findLast?: boolean | undefined; findLastIndex?: boolean | undefined; toReversed?: boolean | undefined; toSorted?: boolean | undefined; toSpliced?: boolean | undefined; with?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; } } | string & {}",
3121
+ "description": ""
3122
+ }
3123
+ ],
3124
+ "slots": [
3125
+ {
3126
+ "name": "children",
3127
+ "description": ""
3128
+ }
3129
+ ],
3130
+ "tokens": [],
3131
+ "extendsHtmlAttributes": false,
3132
+ "description": ""
3133
+ },
3134
+ {
3135
+ "name": "Resizable",
3136
+ "group": "UI",
3137
+ "sourceFile": "src/ui/resizable.tsx",
3138
+ "props": [
3139
+ {
3140
+ "name": "orientation",
3141
+ "type": "undefined | \"horizontal\" | \"vertical\"",
3142
+ "displayType": "undefined | \"horizontal\" | \"vertical\"",
3143
+ "optional": true,
3144
+ "scalar": true,
3145
+ "description": "",
3146
+ "default": "'horizontal'"
3147
+ },
3148
+ {
3149
+ "name": "withHandle",
3150
+ "type": "undefined | false | true",
3151
+ "displayType": "undefined | false | true",
3152
+ "optional": true,
3153
+ "scalar": true,
3154
+ "description": "Show a visible grip on each interactive handle."
3155
+ }
3156
+ ],
3157
+ "callbacks": [
3158
+ {
3159
+ "name": "onChange",
3160
+ "type": "undefined | (sizes: number[]) => void",
3161
+ "displayType": "undefined | (sizes: number[]) => void",
3162
+ "description": "Fired on drag-end / keyboard resize / visibility change with the current panel sizes (percent)."
3163
+ }
3164
+ ],
3165
+ "slots": [
3166
+ {
3167
+ "name": "children",
3168
+ "description": "`ResizablePanel` children."
3169
+ }
3170
+ ],
3171
+ "tokens": [],
3172
+ "extendsHtmlAttributes": false,
3173
+ "description": "Convenience group that takes `ResizablePanel` children and AUTO-INSERTS a `ResizableHandle` between each pair of visible (non-`hidden`) panels. A handle is interactive only between two unlocked neighbors; otherwise it renders as a static divider. Power users who need manual control can keep using `ResizablePanelGroup` + explicit `ResizableHandle`s."
3174
+ },
3175
+ {
3176
+ "name": "ResizableHandle",
3177
+ "group": "UI",
3178
+ "sourceFile": "src/ui/resizable.tsx",
3179
+ "props": [
3180
+ {
3181
+ "name": "withHandle",
3182
+ "type": "undefined | false | true",
3183
+ "displayType": "undefined | false | true",
3184
+ "optional": true,
3185
+ "scalar": true,
3186
+ "description": ""
3187
+ },
3188
+ {
3189
+ "name": "keyboardStep",
3190
+ "type": "undefined | number",
3191
+ "displayType": "undefined | number",
3192
+ "optional": true,
3193
+ "scalar": true,
3194
+ "description": "Keyboard nudge step in pixels (default 16). Home/End jump to min/max.",
3195
+ "default": "16"
3196
+ },
3197
+ {
3198
+ "name": "static",
3199
+ "type": "undefined | false | true",
3200
+ "displayType": "undefined | false | true",
3201
+ "optional": true,
3202
+ "scalar": true,
3203
+ "description": "Render as a static, non-interactive divider (e.g. between locked panels)."
3204
+ },
3205
+ {
3206
+ "name": "orientation",
3207
+ "type": "undefined | \"horizontal\" | \"vertical\"",
3208
+ "displayType": "undefined | \"horizontal\" | \"vertical\"",
3209
+ "optional": true,
3210
+ "scalar": true,
3211
+ "description": "Explicit axis; overrides `ResizableContext`. Needed by facades that render handles outside a context provider (e.g. `<kc-resizable>`)."
3212
+ }
3213
+ ],
3214
+ "callbacks": [
3215
+ {
3216
+ "name": "onPanelResize",
3217
+ "type": "undefined | (delta: number) => void",
3218
+ "displayType": "undefined | (delta: number) => void",
3219
+ "description": ""
3220
+ }
3221
+ ],
3222
+ "slots": [],
3223
+ "tokens": [],
3224
+ "extendsHtmlAttributes": true,
3225
+ "description": ""
3226
+ },
3227
+ {
3228
+ "name": "ResizablePanel",
3229
+ "group": "UI",
3230
+ "sourceFile": "src/ui/resizable.tsx",
3231
+ "props": [
3232
+ {
3233
+ "name": "defaultSize",
3234
+ "type": "undefined | string | number",
3235
+ "displayType": "undefined | string | number",
3236
+ "optional": true,
3237
+ "scalar": true,
3238
+ "description": "Initial main-axis size: number/`\"25%\"` (percent) or `\"280px\"` (pixels). Omitted → flexible."
3239
+ },
3240
+ {
3241
+ "name": "minSize",
3242
+ "type": "undefined | string | number",
3243
+ "displayType": "undefined | string | number",
3244
+ "optional": true,
3245
+ "scalar": true,
3246
+ "description": "Minimum size during resize (px or %)."
3247
+ },
3248
+ {
3249
+ "name": "maxSize",
3250
+ "type": "undefined | string | number",
3251
+ "displayType": "undefined | string | number",
3252
+ "optional": true,
3253
+ "scalar": true,
3254
+ "description": "Maximum size during resize (px or %)."
3255
+ },
3256
+ {
3257
+ "name": "locked",
3258
+ "type": "undefined | false | true",
3259
+ "displayType": "undefined | false | true",
3260
+ "optional": true,
3261
+ "scalar": true,
3262
+ "description": "When true, the panel's size is fixed and adjacent handles are non-draggable."
3263
+ },
3264
+ {
3265
+ "name": "hidden",
3266
+ "type": "undefined | false | true",
3267
+ "displayType": "undefined | false | true",
3268
+ "optional": true,
3269
+ "scalar": true,
3270
+ "description": "When true, the panel is not visible (used by the `Resizable` convenience to drop dividers)."
3271
+ }
3272
+ ],
3273
+ "callbacks": [],
3274
+ "slots": [
3275
+ {
3276
+ "name": "children",
3277
+ "description": ""
3278
+ }
3279
+ ],
3280
+ "tokens": [],
3281
+ "extendsHtmlAttributes": true,
3282
+ "description": ""
3283
+ },
3284
+ {
3285
+ "name": "ResizablePanelGroup",
3286
+ "group": "UI",
3287
+ "sourceFile": "src/ui/resizable.tsx",
3288
+ "props": [
3289
+ {
3290
+ "name": "orientation",
3291
+ "type": "undefined | \"horizontal\" | \"vertical\"",
3292
+ "displayType": "undefined | \"horizontal\" | \"vertical\"",
3293
+ "optional": true,
3294
+ "scalar": true,
3295
+ "description": "",
3296
+ "default": "'horizontal'"
3297
+ }
3298
+ ],
3299
+ "callbacks": [],
3300
+ "slots": [
3301
+ {
3302
+ "name": "children",
3303
+ "description": ""
3304
+ }
3305
+ ],
3306
+ "tokens": [],
3307
+ "extendsHtmlAttributes": true,
3308
+ "description": ""
3309
+ },
3310
+ {
3311
+ "name": "ScrollArea",
3312
+ "group": "UI",
3313
+ "sourceFile": "src/ui/scroll-area.tsx",
3314
+ "props": [],
3315
+ "callbacks": [],
3316
+ "slots": [
3317
+ {
3318
+ "name": "children",
3319
+ "description": ""
3320
+ }
3321
+ ],
3322
+ "tokens": [],
3323
+ "extendsHtmlAttributes": true,
3324
+ "description": ""
3325
+ },
3326
+ {
3327
+ "name": "Separator",
3328
+ "group": "UI",
3329
+ "sourceFile": "src/ui/separator.tsx",
3330
+ "props": [
3331
+ {
3332
+ "name": "orientation",
3333
+ "type": "undefined | \"horizontal\" | \"vertical\"",
3334
+ "displayType": "undefined | \"horizontal\" | \"vertical\"",
3335
+ "optional": true,
3336
+ "scalar": true,
3337
+ "description": ""
3338
+ }
3339
+ ],
3340
+ "callbacks": [],
3341
+ "slots": [],
3342
+ "tokens": [],
3343
+ "extendsHtmlAttributes": true,
3344
+ "description": ""
3345
+ },
3346
+ {
3347
+ "name": "Skeleton",
3348
+ "group": "UI",
3349
+ "sourceFile": "src/ui/skeleton.tsx",
3350
+ "props": [],
3351
+ "callbacks": [],
3352
+ "slots": [],
3353
+ "tokens": [],
3354
+ "extendsHtmlAttributes": true,
3355
+ "description": ""
3356
+ },
3357
+ {
3358
+ "name": "Textarea",
3359
+ "group": "UI",
3360
+ "sourceFile": "src/ui/textarea.tsx",
3361
+ "props": [
3362
+ {
3363
+ "name": "maxHeight",
3364
+ "type": "undefined | number",
3365
+ "displayType": "undefined | number",
3366
+ "optional": true,
3367
+ "scalar": true,
3368
+ "description": ""
3369
+ },
3370
+ {
3371
+ "name": "autoResize",
3372
+ "type": "undefined | false | true",
3373
+ "displayType": "undefined | false | true",
3374
+ "optional": true,
3375
+ "scalar": true,
3376
+ "description": ""
3377
+ }
3378
+ ],
3379
+ "callbacks": [],
3380
+ "slots": [],
3381
+ "tokens": [],
3382
+ "extendsHtmlAttributes": true,
3383
+ "description": ""
3384
+ },
3385
+ {
3386
+ "name": "Tooltip",
3387
+ "group": "UI",
3388
+ "sourceFile": "src/ui/tooltip.tsx",
3389
+ "props": [
3390
+ {
3391
+ "name": "content",
3392
+ "type": "string",
3393
+ "displayType": "string",
3394
+ "optional": false,
3395
+ "scalar": true,
3396
+ "description": ""
3397
+ },
3398
+ {
3399
+ "name": "openDelay",
3400
+ "type": "undefined | number",
3401
+ "displayType": "undefined | number",
3402
+ "optional": true,
3403
+ "scalar": true,
3404
+ "description": "",
3405
+ "default": "600"
3406
+ }
3407
+ ],
3408
+ "callbacks": [],
3409
+ "slots": [
3410
+ {
3411
+ "name": "children",
3412
+ "description": ""
3413
+ }
3414
+ ],
3415
+ "tokens": [],
3416
+ "extendsHtmlAttributes": false,
3417
+ "description": ""
3418
+ }
3419
+ ]