@kitnai/chat 0.6.0 → 0.8.0

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